:root{
  --bg:#f6f2ea;
  --paper:#fbfaf7;
  --ink:#22211f;
  --muted:#777168;
  --line:#ded7cc;
  --gold:#aa9158;
  --gold-soft:#e8dcc0;
  --dark:#262522;
  --radius:34px;
  --radius-sm:22px;
  --shadow:0 16px 50px rgba(45,40,32,.07);
  --max:1180px;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth;background:var(--bg)}
body{margin:0;background:var(--bg);color:var(--ink);font-family:-apple-system,BlinkMacSystemFont,"Hiragino Kaku Gothic ProN","Yu Gothic","Noto Sans JP","Segoe UI",sans-serif;line-height:1.7;-webkit-font-smoothing:antialiased}
a{color:inherit;text-decoration:none}
button,input,textarea{font:inherit}
img{display:block;max-width:100%}
.wrap{width:min(calc(100% - 48px),var(--max));margin-inline:auto}

/* Header */
.site-header{position:sticky;top:0;z-index:50;background:rgba(246,242,234,.88);backdrop-filter:blur(18px);border-bottom:1px solid rgba(222,215,204,.72)}
.header-inner{height:74px;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:24px}
.brand{justify-self:start}.brand img{width:126px;height:auto}
.main-nav{justify-self:center;display:flex;gap:30px;align-items:center}
.main-nav a,.lang-switch{font-size:11px;letter-spacing:.06em;font-weight:750}
.main-nav a{position:relative;white-space:nowrap}
.main-nav a::after{content:"";position:absolute;left:0;bottom:-7px;width:0;height:1px;background:var(--gold);transition:.25s}
.main-nav a:hover::after{width:100%}
.lang-switch{justify-self:end;display:flex;gap:6px;align-items:center;color:#9a948b}
.lang-switch a.active{color:var(--ink)}

/* Hero */
.hero{position:relative;overflow:hidden;padding:68px 0 84px;min-height:610px;display:flex;align-items:center;isolation:isolate}
.hero::before{content:"";position:absolute;width:520px;height:520px;border-radius:50%;right:8%;top:-110px;background:radial-gradient(circle at 45% 45%,rgba(170,145,88,.18) 0,rgba(170,145,88,.08) 40%,rgba(170,145,88,0) 72%);filter:blur(5px);z-index:-2}
.hero::after{content:"";position:absolute;width:390px;height:390px;border:1px solid rgba(170,145,88,.19);border-radius:50%;right:21%;bottom:-180px;z-index:-1}
.hero-orbit{position:absolute;border-radius:50%;pointer-events:none;z-index:-1}
.hero-orbit-a{width:150px;height:150px;border:1px solid rgba(170,145,88,.12);right:43%;top:35%}
.hero-orbit-b{width:700px;height:700px;border:1px solid rgba(170,145,88,.055);left:-420px;bottom:-470px}
.hero-orbit-c{width:230px;height:230px;right:2.5%;bottom:8%;border:1px solid rgba(170,145,88,.075);box-shadow:0 0 70px rgba(170,145,88,.035) inset;transform:translate(42%,22%)}
.hero-grid{display:grid;grid-template-columns:minmax(0,760px) minmax(320px,1fr);gap:52px;align-items:end}
.hero-main{min-width:0}.hero-logo{width:min(520px,78%);margin-bottom:34px}
.hero-copy{font-weight:650;letter-spacing:-.04em;line-height:1.2;font-size:clamp(30px,3.1vw,44px)}
.hero-copy span{display:block;white-space:nowrap}.hero-copy .hero-small{font-size:.62em;letter-spacing:-.02em;margin-top:18px;font-weight:560}
.news-panel{border-top:1px solid var(--ink);align-self:end}.news-label{padding:13px 0 12px;font-size:10px;letter-spacing:.18em;font-weight:800;color:var(--gold)}
.news-row{display:grid;grid-template-columns:112px 1fr auto;gap:16px;align-items:start;padding:16px 0;border-top:1px solid var(--line);transition:.2s}.news-row:hover{padding-left:4px}
.news-date{font-size:10px;color:var(--gold);font-weight:800;letter-spacing:.04em;white-space:nowrap}.news-title{font-size:13px;line-height:1.55;font-weight:650}.external{font-size:12px;color:var(--gold)}

/* Sections */
.section{padding:96px 0;scroll-margin-top:78px}
.services-section{background:#efe9df;border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding-bottom:42px}
.section-head{display:grid;grid-template-columns:minmax(0,1fr) minmax(520px,620px);justify-content:space-between;gap:56px;align-items:center;margin-bottom:34px}
.eyebrow{font-size:10px;letter-spacing:.18em;text-transform:uppercase;color:var(--gold);font-weight:850;margin-bottom:8px}
.section-head h2,.contact-form-side h2{font-size:clamp(38px,5vw,66px);line-height:1.02;letter-spacing:-.045em;margin:0}
.section-intro{font-size:13px;color:var(--muted);max-width:560px}.section-intro p,.contact-intro p,.service-copy p,.team-copy p{margin:0}
.price-note{margin:0;font-size:10.5px;line-height:1.65;color:#858077;text-align:right;width:100%;max-width:620px;justify-self:end;align-self:end}.price-note span{display:block;white-space:nowrap}.no-break{white-space:nowrap}

/* Services */
.services-stack{display:flex;flex-direction:column;gap:24px}
.service-card{background:var(--paper);border:1px solid var(--line);border-radius:var(--radius);padding:30px;box-shadow:0 8px 30px rgba(45,40,32,.035);min-width:0;overflow:hidden}
.full-service{display:grid;grid-template-columns:minmax(310px,.88fr) minmax(0,1.12fr);gap:38px;align-items:stretch}
.service-info-pane{display:flex;flex-direction:column;min-width:0;padding-right:8px}
.service-showcase{border-left:1px solid var(--line);padding-left:28px;min-width:0;display:flex;flex-direction:column}
.service-top{display:flex;gap:15px;align-items:flex-start}.service-no{width:34px;height:34px;border-radius:50%;display:grid;place-items:center;background:var(--gold-soft);color:#6f5f3c;font-size:10px;font-weight:850;flex:0 0 auto}
.service-card h3{font-size:28px;line-height:1.06;margin:2px 0 2px;letter-spacing:-.025em;word-break:keep-all;text-wrap:balance}.service-sub{font-size:11px;color:var(--muted);margin-top:3px}
.service-copy{font-size:14.5px;line-height:1.78;color:#615d57;margin:17px 0 14px;max-width:650px;line-break:strict}.phrase-unit{display:inline-block;white-space:nowrap;margin-right:.18em}.service-items{display:grid;grid-template-columns:1fr 1fr;gap:7px 18px;padding:0;margin:0 0 18px;list-style:none;font-size:11.5px;line-height:1.7;color:#5f5b55;line-break:strict;word-break:keep-all}
.service-items li::before{content:"•";color:var(--gold);margin-right:7px}
.price-box{border-top:1px solid var(--line);padding-top:14px;margin-top:auto}.price-label{font-size:9px;letter-spacing:.16em;text-transform:uppercase;color:var(--gold);font-weight:850;margin-bottom:5px}
.price-row{display:flex;justify-content:space-between;gap:18px;padding:6px 0;border-top:1px dotted #d8d1c5;font-size:10.5px;line-break:strict}.price-row:first-of-type{border-top:0}.price-row strong{text-align:right;font-weight:750;white-space:nowrap}
.work-block-head{display:flex;justify-content:space-between;gap:16px;align-items:flex-end;margin-bottom:14px}.work-block-head p{font-size:10.5px;color:var(--muted);margin:3px 0 0;line-height:1.5}.micro-label{font-size:10px;letter-spacing:.12em;color:var(--gold);font-weight:850}
.carousel-controls{display:flex;gap:6px;flex:0 0 auto}.carousel-controls button{width:31px;height:31px;border:1px solid var(--line);border-radius:50%;background:transparent;color:var(--ink);cursor:pointer}.carousel-controls button:hover{border-color:var(--gold);color:var(--gold)}
.event-carousel,.video-carousel,.sound-carousel{display:flex;gap:12px;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;padding-bottom:2px}.event-carousel::-webkit-scrollbar,.video-carousel::-webkit-scrollbar,.sound-carousel::-webkit-scrollbar{display:none}
.event-card{flex:0 0 62%;scroll-snap-align:start;min-width:0;display:block}.event-image{aspect-ratio:16/10;border-radius:16px;overflow:hidden;background:#ded7ca}.event-image img{width:100%;height:100%;object-fit:cover}.event-title{font-size:10.5px;font-weight:760;line-height:1.4;margin-top:8px}.event-title span{color:var(--gold)}
.event-placeholder{width:100%;height:100%;display:flex;align-items:center;justify-content:center;gap:11px;background:radial-gradient(circle at 30% 30%,#f6edda 0,#e7d8b5 44%,#d5c08f 100%);color:#6d5a35;font-size:10px;letter-spacing:.16em;font-weight:850}.event-placeholder i{width:28px;height:28px;border:1px solid rgba(109,90,53,.55);border-radius:50% 48% 56% 44%}
.video-work{border:0;background:transparent;padding:0;text-align:left;color:inherit;min-width:0;cursor:pointer;display:block}.video-work.compact{flex:0 0 62%;scroll-snap-align:start}.video-thumb{position:relative;aspect-ratio:16/10;overflow:hidden;background:#ddd}.video-thumb img{width:100%;height:100%;object-fit:cover}.video-carousel .video-work,.sound-carousel .video-work{flex:0 0 62%;scroll-snap-align:start}.video-carousel .work-title,.sound-carousel .work-title{display:block;margin-top:8px}
.play{position:absolute;left:12px;bottom:12px;width:34px;height:34px;border-radius:50%;display:grid;place-items:center;background:rgba(255,255,255,.93);font-size:11px;box-shadow:0 5px 16px rgba(0,0,0,.12)}.work-title{font-size:10.5px;line-height:1.4;font-weight:760;margin:0}
.sound-carousel>.vimeo-work,.sound-carousel>.video-work{flex:0 0 62%;scroll-snap-align:start}.vimeo-work{min-width:0}.vimeo-frame{position:relative;aspect-ratio:16/10;overflow:hidden;background:#141414}.vimeo-frame iframe{width:100%;height:100%;border:0;display:block}.media-link-row{display:flex;align-items:flex-start;gap:7px;margin-top:8px}.title-arrow{font-size:12px;line-height:1;color:var(--gold);font-weight:850;transform:translateY(2px)}
.image-work{border:1px solid var(--line);border-radius:17px;overflow:hidden;background:#fff}.work-image{position:relative;aspect-ratio:16/10;overflow:hidden;background:#ddd}.work-image img{width:100%;height:100%;object-fit:cover}.work-text{padding:11px 12px 12px}.work-text h4{font-size:10.5px;line-height:1.4;font-weight:760;margin:0}.work-text a{display:inline-block;margin-top:7px;font-size:9.5px;color:var(--gold);border-bottom:1px solid var(--gold-soft)}

/* Contact + team */
.contact-section{padding-top:38px;padding-bottom:38px}.contact-grid{display:grid;grid-template-columns:minmax(0,.92fr) minmax(420px,1.08fr);gap:64px;align-items:start}.contact-form-side{position:relative}.contact-form-side h2{margin-bottom:14px}.contact-intro{font-size:12px;color:var(--muted);max-width:520px;margin-bottom:10px}
.placeholder-form{background:var(--paper);border:1px solid var(--line);border-radius:var(--radius);padding:14px 18px 15px;box-shadow:var(--shadow)}.placeholder-form label{display:block;margin-bottom:6px}.placeholder-form label span{display:block;font-size:9.5px;letter-spacing:.08em;color:#6f695f;font-weight:800;margin-bottom:2px}.placeholder-form input,.placeholder-form textarea{width:100%;border:0;border-bottom:1px solid #cfc7bb;background:transparent;padding:3px 1px 5px;outline:none;border-radius:0;color:var(--ink)}.placeholder-form input{height:34px}.placeholder-form textarea{resize:vertical;min-height:52px;height:52px;line-height:1.45}.placeholder-form input:focus,.placeholder-form textarea:focus{border-color:var(--gold)}.placeholder-form button{border:0;background:var(--dark);color:#fff;padding:8px 18px;border-radius:999px;font-size:10.5px;letter-spacing:.06em;font-weight:760;cursor:pointer;margin-top:1px}.form-notice{font-size:10px;color:var(--gold);margin-top:5px;min-height:0}.form-notice:empty{display:none}
.team-side{min-width:0;padding-top:0}.team-heading{margin-bottom:14px}.team-heading h3{font-size:25px;line-height:1.15;letter-spacing:-.025em;margin:0}.team-list{display:flex;flex-direction:column;gap:12px;margin-top:0}.team-person{display:grid;grid-template-columns:108px 1fr;gap:17px;align-items:center;background:var(--paper);border:1px solid var(--line);border-radius:20px;padding:12px}.team-photo{width:108px;aspect-ratio:1;border-radius:15px;overflow:hidden;background:#ddd}.team-photo img{width:100%;height:100%;object-fit:cover}.team-name-row{display:flex;align-items:baseline;justify-content:space-between;gap:14px;margin-bottom:6px}.team-name-row h4{font-size:17px;margin:0;letter-spacing:-.015em}.team-name-row span{font-size:9px;color:var(--gold);font-weight:850;text-align:right}.team-copy{font-size:10.5px;color:#625e58;line-height:1.6}
.contact-strip{margin-top:38px;border-top:1px solid var(--line);padding:18px 0 0;display:flex;justify-content:space-between;align-items:center;gap:20px;font-size:10px;color:#777168}.contact-strip div{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.contact-strip strong{color:var(--ink);font-size:11px}.contact-strip a{font-size:12px;color:var(--gold);font-weight:800;border-bottom:1px solid var(--gold-soft)}
.site-footer{padding:0 0 26px;text-align:center;color:#9a948b;font-size:9px}

/* Video modal */
.modal{position:fixed;inset:0;background:rgba(20,19,18,.8);display:none;align-items:center;justify-content:center;z-index:100;padding:28px}.modal.open{display:flex}.modal-inner{width:min(1040px,96vw);aspect-ratio:16/9;background:#000;border-radius:20px;overflow:hidden;position:relative}.modal iframe{width:100%;height:100%;border:0}.modal-close{position:absolute;right:12px;top:12px;z-index:2;width:36px;height:36px;border:0;border-radius:50%;background:rgba(255,255,255,.95);font-size:20px;cursor:pointer}.modal-open{overflow:hidden}

@media(max-width:1000px){
  .hero-grid{grid-template-columns:1fr;gap:48px}.hero{min-height:auto}.news-panel{max-width:760px}.hero::before{right:-80px;top:-130px}.hero::after{right:-80px}
  .section-head{grid-template-columns:1fr;gap:12px}.section-intro{max-width:700px}.price-note{justify-self:end;margin-top:0;max-width:620px;text-align:right}.price-note span{white-space:normal}
  .full-service{grid-template-columns:1fr}.service-info-pane{padding-right:0}.service-showcase{border-left:0;border-top:1px solid var(--line);padding:22px 0 0}.sound-carousel>.vimeo-work,.sound-carousel>.video-work,.event-card,.video-carousel .video-work{flex-basis:62%}
  .contact-grid{grid-template-columns:1fr;gap:44px}.team-side{max-width:760px;padding-top:0}.team-heading{margin-bottom:12px}.team-list{margin-top:0}
}
@media(max-width:700px){
  .wrap{width:min(calc(100% - 28px),var(--max))}.header-inner{height:64px;grid-template-columns:1fr auto 1fr;gap:9px}.brand img{width:96px}.main-nav{gap:13px}.main-nav a{font-size:9px}.lang-switch{font-size:9px;gap:4px}
  .hero{padding:52px 0 60px}.hero-logo{width:76%;margin-bottom:26px}.hero-copy{font-size:28px}.hero-copy span{white-space:normal;word-break:keep-all}.hero-copy .hero-small{font-size:.72em;line-height:1.45;margin-top:13px}.hero::before{width:390px;height:390px;right:-170px;top:-60px}.hero::after{width:290px;height:290px;right:-120px;bottom:-100px}.hero-orbit-a,.hero-orbit-c{display:none}
  .news-row{grid-template-columns:94px 1fr auto;gap:10px}.news-date{font-size:9px}.news-title{font-size:11px}
  .section{padding:72px 0}.section-head h2,.contact-form-side h2{font-size:39px}.section-head{margin-bottom:28px}.price-note{text-align:left;justify-self:start}.service-card{padding:22px;border-radius:25px}.service-card h3{font-size:24px}.service-copy{font-size:13.5px}.phrase-unit{display:inline;white-space:normal;word-break:keep-all}.service-items{grid-template-columns:1fr}.price-row{font-size:10px}.sound-carousel>.vimeo-work,.sound-carousel>.video-work,.event-card,.video-carousel .video-work{flex-basis:82%}
  .contact-grid{gap:36px}.placeholder-form{padding:16px 18px}.placeholder-form label{margin-bottom:8px}.placeholder-form textarea{min-height:70px;height:70px}.team-list{margin-top:24px}.team-person{grid-template-columns:84px 1fr;gap:13px}.team-photo{width:84px}.team-name-row{display:block}.team-name-row span{display:block;text-align:left;margin-top:1px}.team-copy{font-size:10px}.contact-strip{display:block}.contact-strip a{display:inline-block;margin-top:8px}.site-footer{padding-top:2px}
}
@media(max-width:560px){
  .header-inner{grid-template-columns:auto 1fr auto}.brand img{width:88px}.main-nav{justify-self:center;gap:10px}.main-nav a{font-size:8.5px;letter-spacing:.025em}.lang-switch{font-size:8.5px}.lang-switch span{display:none}.lang-switch{gap:5px}
}
@media(max-width:480px){
  .hero-copy{font-size:25px}.hero-logo{width:82%}.news-row{grid-template-columns:1fr auto}.news-date{grid-column:1/3}.news-title{font-size:11.5px}
  .sound-carousel>.vimeo-work,.sound-carousel>.video-work,.event-card,.video-carousel .video-work{flex-basis:88%}.team-person{grid-template-columns:74px 1fr}.team-photo{width:74px}
  .main-nav a:first-child{max-width:86px;line-height:1.15;text-align:center}
}

/* v17 English copy tuning */
html[lang="en"] .hero-main{max-width:760px}
html[lang="en"] .hero-copy{font-size:clamp(27px,2.65vw,39px);max-width:720px}
html[lang="en"] .hero-copy span{white-space:normal;text-wrap:balance}
html[lang="en"] .hero-copy .hero-small{max-width:520px}
@media(max-width:1000px){
  html[lang="en"] .hero-main{max-width:800px}
  html[lang="en"] .hero-copy{max-width:760px}
}
@media(max-width:700px){
  html[lang="en"] .hero-copy{font-size:26px;max-width:100%}
  html[lang="en"] .hero-copy .hero-small{max-width:100%}
}
