:root{
  --bg:#0a0a0b;--bg2:#121213;--ink:#f3efe8;--mute:#a8a29a;--line:rgba(255,255,255,.12);
  --red:#b5121b;--red2:#e0252f;--gold:#d8b896;--sand:#e9d7c2;
  --serif:"Cormorant Garamond",Georgia,serif;--cinzel:"Cinzel",var(--serif);--sans:"Noto Sans JP",system-ui,sans-serif;--brush:"Yuji Syuku","Hiragino Mincho ProN","Yu Mincho",serif;
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{background:var(--bg);color:var(--ink);font-family:var(--sans);font-weight:300;line-height:1.6;overflow-x:hidden}
img,video{display:block;max-width:100%}
a{color:inherit;text-decoration:none}
h1,h2,h3{font-family:var(--serif);font-weight:500;line-height:1.02;letter-spacing:-.01em}
section{position:relative}

/* loader */
.loader{position:fixed;inset:0;background:#050505;z-index:100;display:grid;place-content:center;gap:18px;justify-items:center;transition:opacity .8s,visibility .8s}
.loader img{width:120px;height:120px;object-fit:cover;border-radius:50%;animation:pulse 1.6s ease-in-out infinite}
.loader span{font-family:var(--cinzel);letter-spacing:.4em;font-size:11px;color:var(--sand)}
.loader.done{opacity:0;visibility:hidden}
@keyframes pulse{0%,100%{transform:scale(.96);opacity:.7}50%{transform:scale(1);opacity:1}}

/* nav */
.nav{position:fixed;top:0;left:0;right:0;z-index:50;height:76px;display:flex;align-items:center;justify-content:space-between;padding:0 36px;transition:background .4s,backdrop-filter .4s;background:linear-gradient(#000c,#0000)}
.nav.solid{background:rgba(10,10,11,.82);backdrop-filter:blur(14px);border-bottom:1px solid var(--line)}
.brand{display:flex;align-items:center;gap:12px;font-family:var(--cinzel);font-size:13px;letter-spacing:.28em}
.brand img{width:36px;height:36px;border-radius:50%;object-fit:cover;object-position:center 35%}
.nav nav{display:flex;gap:28px;align-items:center;font-size:11px;letter-spacing:.22em;text-transform:uppercase}
.nav nav a:not(.navCta){opacity:.75}.nav nav a:hover{opacity:1}
.navCta{background:var(--red);border:1px solid var(--red);color:#fff;padding:12px 26px;font-weight:500;box-shadow:0 6px 24px rgba(181,18,27,.45);transition:.3s;animation:ctaPulse 2.6s ease-in-out infinite}.navCta:hover{background:var(--red2);border-color:var(--red2);box-shadow:0 8px 32px rgba(224,37,47,.6);transform:translateY(-1px)}
@keyframes ctaPulse{0%,100%{box-shadow:0 6px 24px rgba(181,18,27,.45)}50%{box-shadow:0 6px 34px rgba(224,37,47,.8)}}
@media(prefers-reduced-motion:reduce){.navCta{animation:none}}

/* buttons */
.button{display:inline-flex;align-items:center;justify-content:center;padding:17px 34px;font-size:11px;letter-spacing:.24em;text-transform:uppercase;font-weight:500;transition:.35s;position:relative;overflow:hidden}
.button.red{background:var(--red);color:#fff}.button.red:hover{background:var(--red2);box-shadow:0 10px 40px rgba(224,37,47,.35)}
.button.line{border:1px solid rgba(255,255,255,.4)}.button.line:hover{border-color:#fff;background:rgba(255,255,255,.06)}
.button.big{padding:22px 48px;font-size:12px}.button.compact{padding:13px 24px}

/* utilities */
.sectionNo{font-size:11px;letter-spacing:.3em;color:var(--mute)}
.overline{font-size:11px;letter-spacing:.3em;color:var(--gold);margin-bottom:18px}
.jp{font-family:var(--brush);font-size:20px;color:var(--sand);letter-spacing:.08em}
.reveal{opacity:0;transform:translateY(28px);transition:opacity .9s cubic-bezier(.2,.7,.2,1),transform .9s cubic-bezier(.2,.7,.2,1)}
.reveal.in{opacity:1;transform:none}
@media(prefers-reduced-motion:reduce){.reveal{opacity:1;transform:none;transition:none}html{scroll-behavior:auto}}

/* ============ HERO ============ */
.hero{min-height:100svh;display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);grid-template-areas:"copy ." "facts facts";grid-template-rows:1fr auto;align-items:center;padding:110px 6vw 60px;gap:4vw;overflow:hidden;background:#050505}
.heroBg{position:absolute;inset:0;z-index:0;overflow:hidden}
.heroBg picture{display:contents}.heroBg video,.heroBg img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:50% 30%;transform:translateX(16%) scale(1.03);will-change:transform}
.heroBg video{z-index:2;opacity:0;transition:opacity 1.4s}.heroBg.playing video{opacity:1}
.heroVeil{position:absolute;inset:0;z-index:1;background:linear-gradient(90deg,rgba(5,5,5,.92) 0%,rgba(5,5,5,.75) 38%,rgba(5,5,5,.15) 70%,rgba(5,5,5,.35) 100%),linear-gradient(180deg,rgba(5,5,5,.55) 0%,transparent 30%,transparent 60%,#0a0a0b 100%)}
#embers{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;z-index:2}
.heroCopy{grid-area:copy;position:relative;z-index:3;align-self:center;max-width:680px}
.eyebrow{font-family:var(--cinzel);font-size:11px;letter-spacing:.4em;color:var(--gold);margin-bottom:14px}
.intlNote{display:inline-block;border:1px solid rgba(216,184,150,.45);padding:9px 16px;font-family:var(--cinzel);font-size:10px;letter-spacing:.3em;color:var(--sand);margin-bottom:24px}
.hero h1{font-size:clamp(44px,5.6vw,86px);font-weight:400;margin-bottom:22px;text-shadow:0 4px 30px rgba(0,0,0,.6)}
.hero h1 .line{display:block}.hero h1 .line:last-child{font-style:italic;color:var(--sand)}
.hero .jp{margin-bottom:32px}
.heroHost{display:flex;flex-direction:column;gap:6px;margin-bottom:36px}
.heroHost small{font-size:10px;letter-spacing:.35em;color:var(--mute)}
.heroHost strong{font-family:var(--cinzel);font-size:clamp(26px,3vw,44px);font-weight:700;letter-spacing:.14em;text-shadow:0 0 34px rgba(224,37,47,.45)}
.heroHost strong b{font-family:var(--brush);font-weight:400;font-size:.85em;color:var(--sand);margin-left:14px;letter-spacing:.1em}
.actions{display:flex;gap:14px;flex-wrap:wrap}
.facts{grid-area:facts;margin-top:40px;display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid var(--line);padding-top:26px;z-index:3;position:relative}
.facts div{display:flex;flex-direction:column;gap:6px;padding-right:20px}
.facts small{font-size:10px;letter-spacing:.3em;color:var(--mute)}
.facts strong{font-family:var(--serif);font-size:22px;font-weight:500}
.scrollHint{position:absolute;right:36px;bottom:34px;font-size:9px;letter-spacing:.4em;color:var(--mute);display:flex;flex-direction:column;align-items:center;gap:10px;z-index:3}
.scrollHint span{width:1px;height:48px;background:linear-gradient(var(--gold),transparent);animation:drop 2s ease-in-out infinite}
@keyframes drop{0%{transform:scaleY(0);transform-origin:top}50%{transform:scaleY(1);transform-origin:top}51%{transform-origin:bottom}100%{transform:scaleY(0);transform-origin:bottom}}

/* ============ STATEMENT ============ */
.statement{display:grid;grid-template-columns:220px 1fr;gap:40px;padding:18vh 8vw;overflow:hidden;border-top:1px solid var(--line)}
.statement h2{font-size:clamp(36px,4.6vw,68px);margin-bottom:28px}
.statement p{max-width:640px;font-size:17px;color:#d9d3ca}
.statement i{font-family:var(--brush);font-style:normal;color:var(--gold)}
.brushBg{position:absolute;right:-2vw;bottom:-8vh;font-family:var(--brush);font-size:46vw;line-height:1;color:rgba(181,18,27,.08);pointer-events:none;user-select:none}

/* ============ STAGE ============ */
.stage{height:100svh;min-height:640px;overflow:hidden;background:#050505}
.stageMosaic{position:absolute;inset:-8% 0;display:grid;grid-template-columns:1.4fr 1fr 1fr;grid-template-rows:1fr 1fr;gap:6px;will-change:transform}
.stageMosaic figure{overflow:hidden;position:relative}
.stageMosaic img{width:100%;height:100%;object-fit:cover;filter:saturate(.85) contrast(1.05);transition:transform 1.6s ease}
.stageMosaic figure:hover img{transform:scale(1.05)}
.p1{grid-row:1/3}.p2{grid-column:2/4}
.stage::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,#0a0a0b 0%,transparent 30%,transparent 55%,#0a0a0b 100%),linear-gradient(90deg,rgba(10,10,11,.85),transparent 50%)}
.stageText{position:absolute;left:8vw;bottom:12vh;z-index:2}
.stageText span{font-size:11px;letter-spacing:.32em;color:var(--gold)}
.stageText h2{font-size:clamp(56px,9vw,140px);line-height:.95;margin:14px 0}
.stageText h2 b{font-weight:500;display:block}.stageText h2 i{font-family:var(--brush);font-style:normal;font-size:.42em;color:var(--sand);display:block;margin-top:10px;letter-spacing:.1em}
.stageText p{font-family:var(--serif);font-size:22px;font-style:italic;color:#d9d3ca}

.stageSlider{display:none}
@keyframes slide{to{transform:translateX(-50%)}}
/* ============ PROGRAM ============ */
.program{padding:16vh 8vw}
.programHead{display:grid;grid-template-columns:220px 1fr;gap:40px;margin-bottom:8vh}
.program h2{font-size:clamp(40px,5.4vw,84px)}
.film{position:relative;height:70vh;min-height:420px;overflow:hidden;margin-bottom:10vh;border:1px solid var(--line)}
.film video{width:100%;height:100%;object-fit:cover}
.filmShade{position:absolute;inset:0;background:linear-gradient(0deg,#0a0a0bcc,transparent 45%)}
.filmLabel{position:absolute;left:40px;bottom:34px;display:flex;flex-direction:column;gap:6px}
.filmLabel span{font-size:10px;letter-spacing:.35em;color:var(--gold)}.filmLabel b{font-family:var(--serif);font-size:26px;font-weight:500}

.days{display:grid;gap:0;border-top:1px solid var(--line)}
.day{display:grid;grid-template-columns:260px 1fr;gap:40px;padding:7vh 0;border-bottom:1px solid var(--line);position:relative}
.dayMeta{display:flex;flex-direction:column;gap:6px;font-size:11px;letter-spacing:.25em;color:var(--mute);position:relative}
.dayMeta b{font-family:var(--cinzel);font-size:34px;letter-spacing:.1em;color:var(--ink);margin-bottom:8px}
.dayMeta .brush{position:absolute;left:0;top:96px;font-family:var(--brush);font-size:96px;line-height:1;color:rgba(216,184,150,.12);font-style:normal;pointer-events:none;letter-spacing:.05em}
.dayBody{display:grid;grid-template-columns:1fr 1fr;gap:20px 48px}
.dayBody .label{grid-column:1/-1;font-family:var(--cinzel);font-size:clamp(30px,3.4vw,50px);font-weight:600;letter-spacing:.12em;color:var(--sand);line-height:1.1}
.dayBody h3{font-size:clamp(22px,2.2vw,32px);color:#e8e2d8;font-style:italic;font-weight:500}
.dayBody .labelDesc{grid-column:1/-1;font-family:var(--serif);font-style:italic;font-size:19px;color:#cfc8bd;margin-top:-10px;padding-bottom:6px;border-bottom:1px solid rgba(216,184,150,.25)}
.dayBody .sub{grid-column:1/-1;font-family:var(--serif);font-style:italic;font-size:22px;color:var(--sand);margin-top:-6px}.dayBody .sub.pre{grid-column:1/-1;margin-top:0;margin-bottom:-8px;font-style:normal;font-family:var(--cinzel);font-size:14px;letter-spacing:.3em;color:var(--ink)}
.dayBody .copy{color:#d9d3ca;font-size:16px}
.dayBody ul{grid-column:1/-1;columns:2;column-gap:48px;list-style:none;margin-top:10px}
.dayBody li{padding:11px 0 11px 24px;border-top:1px solid var(--line);position:relative;font-size:15px;break-inside:avoid}
.dayBody .dayNote{grid-column:1/-1;margin-top:14px;padding:14px 18px;border:1px solid rgba(216,184,150,.3);background:rgba(216,184,150,.05);font-size:14px;color:#d9d3ca}.dayBody .dayNote b{font-family:var(--cinzel);font-weight:600;font-size:10px;letter-spacing:.3em;color:var(--gold);margin-right:14px}
.dayBody li::before{content:"";position:absolute;left:0;top:19px;width:10px;height:1px;background:var(--red2)}

/* ============ CASES ============ */
.cases{padding:14vh 8vw;background:var(--bg2);border-top:1px solid var(--line)}
.caseIntro{max-width:720px;margin:5vh 0 8vh}
.cases h2{font-size:clamp(40px,5.2vw,78px);margin-bottom:22px}
.cases p:not(.overline){color:#d9d3ca;font-size:17px}
.caseGallery{display:grid;grid-template-columns:1fr 1fr;gap:28px}
.caseGallery figure{position:relative;overflow:hidden;border:1px solid var(--line);aspect-ratio:4/3;background:#000}
.caseGallery img{width:100%;height:100%;object-fit:cover;transition:transform 1.2s ease}
.caseGallery figure:hover img{transform:scale(1.04)}
.caseGallery figcaption{position:absolute;left:0;right:0;bottom:0;padding:22px 26px;background:linear-gradient(0deg,#000d,transparent);display:grid;grid-template-columns:auto 1fr auto;gap:14px;align-items:baseline}
.caseGallery figcaption span{font-family:var(--cinzel);color:var(--gold)}.caseGallery figcaption b{font-family:var(--serif);font-size:24px;font-weight:500}.caseGallery figcaption small{font-size:10px;letter-spacing:.3em;color:var(--mute)}

/* ============ FACULTY ============ */
.faculty{padding:16vh 8vw}
.facultyHead{display:grid;grid-template-columns:220px 1fr;gap:40px;margin-bottom:8vh}
.faculty h2{font-size:clamp(40px,5.4vw,84px)}
.facultyGrid{display:grid;grid-template-columns:repeat(4,1fr);gap:22px}
.person{border:1px solid var(--line);background:var(--bg2);display:flex;flex-direction:column;overflow:hidden}
.person.lead{grid-column:1/3;grid-row:1/3}
.portrait{aspect-ratio:.82;overflow:hidden;background:#000}
.person.lead .portrait{aspect-ratio:1.05}
.portrait img{width:100%;height:100%;object-fit:cover;object-position:center 18%;filter:saturate(.9);transition:transform 1.2s ease}
.person:hover .portrait img{transform:scale(1.04)}
.personText{padding:22px;position:relative;flex:1}
.personText>span{font-size:10px;letter-spacing:.3em;color:var(--gold)}
.personText h3{margin:10px 0 12px;font-size:26px;display:flex;flex-direction:column}
.person.lead .personText h3{font-size:40px}
.personText .kanji{font-family:var(--brush);font-size:.6em;color:var(--sand);letter-spacing:.12em;margin-top:4px}
.personText p{font-size:14px;color:#cfc8bd}
.personText b{position:absolute;right:20px;top:18px;font-family:var(--cinzel);color:rgba(255,255,255,.18);font-size:14px}

/* ============ EVIDENCE ============ */
.evidence{display:grid;grid-template-columns:220px 1fr;gap:40px;padding:14vh 8vw;background:linear-gradient(180deg,var(--bg2),#1a0c0d);border-top:1px solid var(--line)}
.evidence h2{font-size:clamp(36px,4.6vw,68px);margin-bottom:24px}
.evidence p{max-width:620px;color:#d9d3ca;font-size:17px;margin-bottom:40px}
.papers{display:grid;grid-template-columns:1fr 1fr;gap:22px;max-width:760px}
.papersGrid{grid-template-columns:1fr 1fr;max-width:900px}
.paper{border:1px solid rgba(216,184,150,.3);padding:26px 28px;display:flex;flex-direction:column;gap:8px;justify-content:flex-start;background:rgba(0,0,0,.3);transition:.3s;position:relative}
.paper:hover{border-color:var(--gold);background:rgba(216,184,150,.08);transform:translateY(-3px)}
.paper b{font-family:var(--cinzel);font-size:23px;letter-spacing:.04em;line-height:1.3;color:var(--sand)}
.paper b.long{font-family:var(--serif);font-size:27px;font-weight:500;letter-spacing:0;line-height:1.25}
.paper span{font-size:12px;letter-spacing:.06em;color:var(--mute);line-height:1.5}
.paper i{font-style:normal;font-size:10px;letter-spacing:.28em;color:var(--gold);margin-top:8px;border:1px solid rgba(216,184,150,.4);align-self:flex-start;padding:8px 16px;transition:.3s}
.paper:hover i{background:var(--red);border-color:var(--red);color:#fff}
.papers div{border:1px solid rgba(216,184,150,.3);padding:30px;display:flex;flex-direction:column;gap:10px;background:rgba(0,0,0,.3)}
.papers b{font-family:var(--cinzel);font-size:34px;letter-spacing:.08em;color:var(--sand)}
.papers span{font-size:12px;letter-spacing:.15em;color:var(--mute)}

/* ============ TOKYO ============ */
.tokyo{padding:16vh 8vw}
.tokyoHead{margin-bottom:8vh}.tokyo h2{font-size:clamp(40px,5.4vw,84px)}
.tokyoCollage{display:grid;grid-template-columns:1.5fr 1fr;grid-template-rows:auto auto;gap:22px}
.asakusaMain{grid-row:1/3;position:relative;overflow:hidden;border:1px solid var(--line);min-height:70vh}
.expImage{position:absolute;inset:0}.expImage img{width:100%;height:120%;object-fit:cover;will-change:transform}
.expText{position:relative;z-index:2;padding:36px;background:linear-gradient(0deg,#000e,transparent);margin-top:auto}
.asakusaMain .expText{position:absolute;left:0;right:0;bottom:0}
.expText span{font-size:10px;letter-spacing:.32em;color:var(--gold)}
.expText h3{font-size:clamp(28px,3vw,44px);margin:10px 0}
.expText p{font-size:15px;color:#d9d3ca;max-width:480px}
.asakusaDetail{position:relative;overflow:hidden;border:1px solid var(--line);aspect-ratio:4/3}
.asakusaDetail img{width:100%;height:100%;object-fit:cover}
.asakusaDetail span{position:absolute;left:22px;bottom:18px;font-size:11px;letter-spacing:.3em;color:var(--sand);background:#000a;padding:8px 14px}
.sushiCard{border:1px solid var(--line);display:flex;flex-direction:column;background:var(--bg2)}
.sushiDuo{display:grid;grid-template-columns:1fr 1fr;gap:4px}
.sushiDuo div{aspect-ratio:1;overflow:hidden}.sushiDuo img{width:100%;height:100%;object-fit:cover}
.sushiCard .expText{background:none}

/* ============ VENUE ============ */
.venue{min-height:80vh;display:grid;grid-template-columns:220px 1fr;gap:40px;padding:16vh 8vw;overflow:hidden;align-content:center}
.venueVideo{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;filter:saturate(.8)}
.venueVeil{position:absolute;inset:0;background:linear-gradient(90deg,#0a0a0bf2 30%,#0a0a0b99 70%,#0a0a0b66)}
.venue .sectionNo,.venueBody{position:relative;z-index:2}
.venue h2{font-size:clamp(44px,6vw,96px);margin-bottom:20px}
.venueBody p:not(.overline){color:#d9d3ca;margin-bottom:28px}

/* ============ REGISTER ============ */
.register{padding:18vh 8vw;text-align:center;overflow:hidden;background:radial-gradient(ellipse at 50% 120%,#3a0a0e,#0a0a0b 60%);border-top:1px solid var(--line)}
.registerMark{position:absolute;left:50%;top:50%;width:min(100vw,1200px);height:100%;object-fit:cover;transform:translate(-50%,-50%);opacity:.14;filter:blur(1px);pointer-events:none;mask-image:radial-gradient(circle,#000 40%,transparent 70%);-webkit-mask-image:radial-gradient(circle,#000 40%,transparent 70%)}
.register>*{position:relative}.register>.registerMark{position:absolute}
.register h2{font-size:clamp(56px,9vw,140px);margin-bottom:22px}
.register p:not(.overline){max-width:560px;margin:0 auto 40px;color:#d9d3ca;font-size:17px}
.price{display:flex;flex-direction:column;gap:8px;margin-bottom:30px}
.price small{font-size:10px;letter-spacing:.35em;color:var(--mute)}
.price strong{font-family:var(--serif);font-size:clamp(44px,5vw,72px);font-weight:500}
.seats{display:flex;flex-direction:column;align-items:center;gap:12px;margin:0 auto 36px;max-width:360px}
.seatBar{width:100%;height:2px;background:rgba(255,255,255,.15);position:relative}
.seatBar i{position:absolute;left:0;top:0;bottom:0;width:var(--fill);background:var(--red2);transition:width 1.5s ease}
.seats small{font-size:11px;letter-spacing:.25em;color:var(--mute)}.seats small b{color:var(--ink)}
.register .contact{font-size:13px;margin-top:26px;margin-bottom:10px}
.register .contact a{text-decoration:underline;text-underline-offset:4px}
.assist{font-size:13px;color:var(--mute)}.assist b{color:var(--ink);font-weight:500}.assist a{color:var(--gold);text-decoration:underline;text-underline-offset:4px}

footer{display:flex;justify-content:space-between;align-items:center;padding:40px 8vw;border-top:1px solid var(--line);font-size:11px;letter-spacing:.22em;color:var(--mute);gap:20px}
footer .brand{color:var(--ink)}

/* tilt */
.tilt{transition:transform .5s ease,opacity .9s,box-shadow .5s}.tilt.in:hover{box-shadow:0 30px 60px #0008}

/* ============ RESPONSIVE ============ */
@media(max-width:960px){
  .facultyGrid{grid-template-columns:1fr 1fr}.person.lead{grid-column:1/3;grid-row:auto}
  .tokyoCollage{grid-template-columns:1fr}.asakusaMain{grid-row:auto;min-height:60vh}
  .statement,.programHead,.facultyHead,.evidence,.venue{grid-template-columns:1fr;gap:20px}
}
@media(max-width:800px){
  .nav{height:64px;padding:0 20px}.nav nav a:not(.navCta){display:none}
  .hero{grid-template-columns:1fr;grid-template-areas:"copy" "facts";grid-template-rows:1fr auto;padding:52svh 22px 28px;gap:22px;align-content:end;min-height:100svh}
  .intlNote{font-size:9px;letter-spacing:.18em;padding:8px 12px;white-space:nowrap}.hero h1{font-size:clamp(34px,9.4vw,48px);margin-bottom:14px}.hero .jp{font-size:16px;margin-bottom:18px}.eyebrow{margin-bottom:14px;font-size:10px}.heroHost{margin-bottom:22px}.heroHost strong{font-size:22px}.heroHost strong b{display:inline;margin-left:10px;font-size:.8em}.facts{margin-top:8px;padding-top:18px}.heroBg video,.heroBg img{object-position:50% 0%;transform:none}.heroVeil{background:linear-gradient(180deg,rgba(5,5,5,.25) 0%,rgba(5,5,5,0) 22%,rgba(5,5,5,.15) 42%,rgba(5,5,5,.88) 60%,#0a0a0b 100%)}
  .hero{text-align:left}.heroHost{align-items:flex-start}.heroHost strong b{display:block;margin:6px 0 0}
  .actions{flex-direction:row;gap:10px}.actions .button{flex:1;padding:15px 8px;font-size:9.5px;letter-spacing:.12em;white-space:nowrap}
  .facts{grid-template-columns:1fr 1fr;gap:18px 12px;text-align:left}.facts strong{font-size:17px}
  .scrollHint{display:none}
  .statement,.program,.cases,.faculty,.tokyo,.venue,.register,.evidence{padding:12vh 22px}
  .stage{height:auto;min-height:0;padding:0 0 8vh}.stageMosaic{display:none}.stage::after{display:none}
  .stageSlider{display:block;overflow:hidden;padding:8px 0;mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent);-webkit-mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent)}
  .stageSlider .track{display:flex;gap:10px;width:max-content;animation:slide 38s linear infinite}
  .stageSlider img{height:62vw;max-height:360px;width:auto;aspect-ratio:4/3;object-fit:cover;filter:saturate(.9)}
  .p1{grid-column:1/3;grid-row:auto}.p2{grid-column:auto}.p4{display:none}
  .stageText{position:relative;left:auto;bottom:auto;padding:28px 22px 0}
  .film{height:48vh;min-height:260px}.filmLabel{left:20px;bottom:18px}.filmLabel b{font-size:18px}
  .day{grid-template-columns:1fr;gap:14px;padding:32px 0}.days{margin-bottom:0}.program{padding-bottom:6vh}.cases{padding-top:8vh}.caseIntro{margin:0 0 5vh}.film{margin-bottom:6vh}.programHead{margin-bottom:5vh}.dayMeta .brush{font-size:72px;top:-10px;left:auto;right:0}
  .dayBody{grid-template-columns:1fr}.dayBody ul{columns:1}
  .caseGallery{grid-template-columns:1fr}.caseGallery figcaption{grid-template-columns:auto 1fr;padding:16px}.caseGallery figcaption small{grid-column:2}.caseGallery figcaption b{font-size:20px}
  .facultyGrid{gap:12px}.personText{padding:14px}.personText h3,.person.lead .personText h3{font-size:22px}.personText p{font-size:13px}
  .papers,.papersGrid{grid-template-columns:1fr}
  .big{width:100%}
  .registerMark{width:140vw}
  footer{flex-direction:column;align-items:flex-start}
}

/* debug: ?shot renders all reveals and fixes viewport-relative heights for full-page capture */
html.shot .reveal{opacity:1;transform:none;transition:none}
html.shot .hero{min-height:900px;height:900px}html.shot .stage{height:900px}html.shot .film{height:630px}html.shot .statement,html.shot .program,html.shot .cases,html.shot .faculty,html.shot .tokyo,html.shot .venue,html.shot .register,html.shot .evidence{padding-top:140px;padding-bottom:140px}html.shot .loader{display:none}
