: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:0}
.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(320px,.84fr) minmax(0,1.16fr);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;justify-content:center}
.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:30px;line-height:1.04;margin:2px 0 2px;letter-spacing:-.03em;word-break:keep-all;text-wrap:balance}.service-sub{font-size:11px;color:var(--muted);margin-top:4px}
.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:11px}.micro-label{font-size:9px;letter-spacing:.14em;color:var(--gold);font-weight:850;text-transform:uppercase}
.service-flow{height:30px;display:grid;place-items:center;color:var(--gold);font-size:15px;line-height:1}.service-flow span{width:24px;height:24px;border:1px solid rgba(170,145,88,.34);border-radius:50%;display:grid;place-items:center;background:#efe9df}

/* Compact event poster wall */
.poster-wall{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:9px;align-items:center;max-width:100%;padding:1px 0}
.poster-tile{display:block;min-width:0;transition:transform .2s ease,opacity .2s ease}.poster-tile:hover{transform:translateY(-2px)}
.poster-frame{height:188px;border-radius:10px;overflow:hidden;background:#f2eee7;border:1px solid rgba(222,215,204,.8);box-shadow:0 5px 18px rgba(45,40,32,.05);display:flex;align-items:center;justify-content:center}
.poster-frame img{width:100%;height:100%;object-fit:contain;object-position:center;background:#f7f4ee}
.poster-tile:nth-child(2n) .poster-frame{height:178px}.poster-tile:nth-child(3n) .poster-frame{height:184px}

/* Capture works: fixed two-up layout, no carousel */
.capture-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px;align-items:start}
.capture-work{min-width:0}.capture-frame{position:relative;aspect-ratio:16/10;overflow:hidden;background:#151515;border-radius:16px;box-shadow:0 10px 28px rgba(45,40,32,.08)}.capture-frame iframe{width:100%;height:100%;border:0;display:block}
.media-link-row{display:flex;align-items:flex-start;gap:7px;margin-top:8px}.work-title{font-size:10.5px;line-height:1.4;font-weight:760;margin:0}.title-arrow{font-size:12px;line-height:1;color:var(--gold);font-weight:850;transform:translateY(2px)}

/* 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}
.contact-form{background:var(--paper);border:1px solid var(--line);border-radius:var(--radius);padding:14px 18px 15px;box-shadow:var(--shadow)}.contact-form label{display:block;margin-bottom:6px}.contact-form label span{display:block;font-size:9.5px;letter-spacing:.08em;color:#6f695f;font-weight:800;margin-bottom:2px}.contact-form input,.contact-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)}.contact-form input{height:34px}.contact-form textarea{resize:vertical;min-height:52px;height:52px;line-height:1.45}.contact-form input:focus,.contact-form textarea:focus{border-color:var(--gold)}.contact-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}.contact-form button:disabled{opacity:.55;cursor:wait}.turnstile-wrap{min-height:0;margin:1px 0 2px;overflow:visible}.form-notice.success{color:#667554}.form-notice.error{color:#9a5e55}
.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{display:block;width:108px;aspect-ratio:1;border-radius:15px;overflow:hidden;background:#ddd}.team-photo img{width:100%;height:100%;object-fit:cover;transition:transform .25s ease}.team-photo:hover img{transform:scale(1.015)}.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-link{color:inherit;text-decoration:none}.team-name-link:hover{color:var(--gold)}.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}.team-portfolio{display:inline-flex;align-items:center;gap:4px;margin-top:5px;font-size:9.5px;line-height:1.3;color:var(--gold);font-weight:780;border-bottom:1px solid var(--gold-soft);text-decoration:none}.team-portfolio span{transition:transform .2s ease}.team-portfolio:hover span{transform:translate(2px,-1px)}
.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}.poster-wall{grid-template-columns:repeat(6,minmax(0,1fr))}.poster-frame,.poster-tile:nth-child(2n) .poster-frame,.poster-tile:nth-child(3n) .poster-frame{height:176px}
  .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}.poster-wall{grid-template-columns:repeat(4,minmax(0,1fr));gap:7px}.poster-frame,.poster-tile:nth-child(2n) .poster-frame,.poster-tile:nth-child(3n) .poster-frame{height:164px}.capture-grid{grid-template-columns:1fr}
  .contact-grid{gap:36px}.contact-form{padding:16px 18px}.contact-form label{margin-bottom:8px}.contact-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}
  .poster-wall{grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}.poster-frame,.poster-tile:nth-child(2n) .poster-frame,.poster-tile:nth-child(3n) .poster-frame{height:158px}.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}
}

/* v19 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%}
}
