:root { --paper:#EBE9E7; --ink:#111111; --red:#FF5247; --pink:#F6C9C4; }
body { overflow-x:hidden; }
body > div { max-width:1800px; margin:0 auto; }
.hero-wordmark { display:flex; flex-direction:column; align-items:center; gap:6px; text-align:center; }
.hero-wordmark .word { margin-right:-.26em; }
.hero-wordmark .m { font-size:10px; letter-spacing:.12em; margin-right:-.12em; }
/* Keep the navigation still while the maker's mark briefly takes the wordmark's place. */
.home-link { display:inline-flex; align-items:center; flex:none; color:var(--ink); }
.brand-cycle { position:relative; display:block; width:132px; height:36px; }
.brand-name,.brand-symbol { position:absolute; inset:0; display:flex; align-items:center; transform-origin:left center; }
.brand-name { font-size:24px; font-weight:600; letter-spacing:-.045em; line-height:1; animation:brand-name 16s cubic-bezier(.4,0,.2,1) infinite; }
.brand-symbol { opacity:0; animation:brand-symbol 16s cubic-bezier(.4,0,.2,1) infinite; }
.brand-symbol svg { flex:none; }
.home-link:focus-visible { outline:1px solid var(--red); outline-offset:5px; }
@keyframes brand-name {
  0%,72%,100% { opacity:1; transform:translateY(0); }
  80%,92% { opacity:0; transform:translateY(-4px); }
}
@keyframes brand-symbol {
  0%,72%,100% { opacity:0; transform:translateY(4px); }
  80%,92% { opacity:1; transform:translateY(0); }
}
@media(prefers-reduced-motion:reduce) {
  .brand-name,.brand-symbol { animation:none; transform:none; }
  .brand-name { opacity:1; }
  .brand-symbol { display:none; }
}
@media(max-width:400px) { .brand-cycle { width:116px; } .brand-name { font-size:22px; } }
.voice-plate { display:flex; flex-direction:column; justify-content:space-between; padding:5px 18px 26px 0; box-sizing:border-box; }
.spoken-prompt { font-size:clamp(27px,2.3vw,38px); font-weight:400; letter-spacing:-.025em; line-height:1.16; }
.voice-cue { display:flex; align-items:center; gap:16px; color:var(--red); margin-top:24px; }
.voice-cue .m { color:var(--red); font-size:9px; letter-spacing:.09em; white-space:nowrap; }
.voice-wave { display:flex; gap:3px; align-items:center; height:32px; }
.voice-wave i { display:block; width:3px; height:25px; background:var(--red); border-radius:2px; transform:scaleY(.25); animation:voice-wave 1.2s ease-in-out infinite; }
.voice-wave i:nth-child(3n) { animation-delay:-.65s; height:31px; }
.voice-wave i:nth-child(3n+1) { animation-delay:-.23s; height:19px; }
.voice-wave i:nth-child(5n) { animation-delay:-.9s; height:12px; }
@keyframes voice-wave { 0%,100% { transform:scaleY(.25); } 50% { transform:scaleY(1); } }
.reference-plate { display:flex; flex-direction:column; gap:18px; }
.reference-photo { position:relative; height:66%; min-height:0; }
.reference-photo > img { width:100%; height:100%; object-fit:cover; filter:grayscale(1); }
.keep-tag { display:flex; align-items:center; gap:7px; position:absolute; bottom:10px; left:10px; padding:8px 10px; background:var(--paper); color:var(--ink); font:9px 'Geist Mono',monospace; text-transform:uppercase; letter-spacing:.06em; }
.keep-tag span { width:6px; height:6px; border-radius:50%; background:var(--red); }
.booth-trace { position:absolute; inset:0; width:100%; height:100%; pointer-events:none; }
.booth-trace path { fill:rgba(255,82,71,.12); stroke:var(--red); stroke-width:1.5; }
.reference-bottom { display:flex; align-items:center; justify-content:space-between; gap:18px; flex:1; min-height:0; }
.reference-notes { display:flex; flex-direction:column; gap:9px; flex-shrink:0; }
.reference-notes .m { font-size:9px; letter-spacing:.05em; }
.reference-notes .kept-note { color:var(--red); }
.plan-inset { display:block; width:49%; height:100%; overflow:visible; }
.m.g { color:#5E5857; }
.tile .m.g { font-size:12px; line-height:1.65; letter-spacing:.01em; max-width:38em; color:#484241; }
.tile .tname { margin-top:18px; }
.tile { min-width:0; }
.tile .timg { overflow:visible; transform:none; }
.tile:hover .timg { transform:none; }
.tile .pair { animation:levitate 8s ease-in-out infinite; animation-play-state:paused; }
.tile.in-view .pair { animation-play-state:running; }
.tile:nth-child(3n+2) .pair { animation-delay:-2.6s; }
.tile:nth-child(3n+3) .pair { animation-delay:-5.1s; }
.tile .pair img { filter:drop-shadow(0 13px 10px rgba(29,13,13,.065)); }
.pair img { object-fit:contain; }
@keyframes levitate { 0%,100% { transform:translateY(0); } 50% { transform:translateY(-3px); } }
.pair video { opacity:0; background:var(--paper); transition:opacity .16s linear; }
.pair:hover video { opacity:0; }
.pair.is-playing video, .pair.is-playing:hover video { opacity:1; }
.orbit-cover { cursor:pointer; outline-offset:5px; }
.orbit-cover:focus-visible { outline:2px solid var(--ink); }
.orbit-toggle { position:absolute; right:12px; bottom:10px; z-index:2; border:1px solid #B3AAA7; border-radius:2px; background:var(--paper); padding:9px 11px; cursor:pointer; font:10px 'Geist Mono',monospace; color:var(--ink); letter-spacing:.08em; text-transform:uppercase; }
.orbit-toggle:hover { border-color:var(--ink); }
.orbit-toggle:focus-visible { outline:2px solid var(--red); outline-offset:3px; }
.beat .plate > img[src*="photo"] { filter:grayscale(1); }
body > div > .wrap:first-child a { color:var(--ink); }
body > div > .wrap:first-child a:hover { color:var(--red); }
@media (max-width:900px) {
  .wrap { padding-left:24px!important; padding-right:24px!important; }
  body > div > .in { padding-left:24px!important; padding-right:24px!important; }
  body > div > .wrap:first-child > .m { gap:14px!important; }
  body > div > .wrap:first-child > .m > span { display:none; }
  .grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:40px 24px; }
  .h2 { font-size:28px; }
  .body { font-size:16px; }
  .beat .plate > div[style*="font-size: 34px"] { font-size:25px!important; }
}
@media (max-width:600px) {
  .wrap { padding-left:20px!important; padding-right:20px!important; }
  body > div > .in { padding-left:20px!important; padding-right:20px!important; }
  .hero-wordmark { flex-direction:column; gap:6px; }
  .hero-wordmark .word { font-size:18px!important; }
  .h1 { font-size:54px!important; }
  .h2 { font-size:27px; }
  .grid { grid-template-columns:1fr; gap:42px; }
  #how > div[style*="display: grid"], #why > div[style*="display: grid"] { grid-template-columns:1fr!important; gap:36px!important; }
  #how .beat:first-child .plate { aspect-ratio:auto; min-height:90px; }
  .beat .plate > div[style*="font-size: 34px"] { font-size:30px!important; }
  body > div > .in > div[style*="justify-content: space-between"] { flex-direction:column; gap:6px; }
  body > div > div > .wrap[style*="padding: 72px"] { flex-direction:column; align-items:flex-start!important; padding:44px 20px!important; }
  body > div > .wrap:last-child { height:auto!important; min-height:84px; gap:18px; padding-top:22px; padding-bottom:22px; flex-wrap:wrap; }
  .orbit-toggle { font-size:8px; padding:6px; right:0; bottom:0; }
}
@media (prefers-reduced-motion:reduce) {
  html { scroll-behavior:auto; }
  .in, .tile .pair, .voice-wave i { animation:none!important; }
  .pair video { transition:none; }
}
/* Align both source and result to the shared image-row datum. */
#how .beat:last-child .plate img { object-position:center top; }

/* A quiet diagonal dot field, moving behind the paper at a slower rate. */
body::before { content:""; position:fixed; inset:-60vmax; pointer-events:none; z-index:0; background-image:radial-gradient(circle,rgba(255,82,71,var(--grid-alpha,.78)) 1.25px,transparent 1.55px); background-size:36px 36px; transform:rotate(45deg) translate3d(0,var(--grid-y,0px),0); transform-origin:center; }
body > div { position:relative; z-index:1; background:transparent!important; }
body > div > .in { background:transparent!important; }
.btn { cursor:pointer; transition:background-color .25s ease,color .25s ease; }
.btn:hover { background:var(--red)!important; color:var(--ink)!important; }
@media (hover:hover) and (pointer:fine) {
  .tile .timg { transition:transform .75s cubic-bezier(.22,.61,.36,1); transform-origin:50% 65%; }
  .tile .pair img { transition:filter .75s cubic-bezier(.22,.61,.36,1); }
  .tile:hover .timg { transform:translateY(-7px) scale(1.065); }
  .tile:hover .pair img { filter:drop-shadow(0 24px 18px rgba(29,13,13,.18)); }
}
@media (prefers-reduced-motion:reduce) {
  .tile .timg,.tile .pair img { transition:none; }
  .tile:hover .timg { transform:none; }
  body::before { background-position:0 0; }
}
.language-switch { display:flex; align-items:center; gap:7px; white-space:nowrap; margin-left:24px; }
.language-switch a { color:var(--ink); opacity:.48; padding:12px 0; }
.language-switch a[aria-current=true] { opacity:1; box-shadow:0 1px 0 var(--red); }
.language-switch a:hover { color:var(--red); opacity:1; }
.language-switch a:focus-visible { outline:1px solid var(--red); outline-offset:4px; }
html[lang=ja] body { font-family:'Instrument Sans','Hiragino Kaku Gothic ProN','Noto Sans JP','Yu Gothic',sans-serif; }
html[lang=ja] .m { letter-spacing:.04em; text-transform:none; }
html[lang=ja] .h1 { font-size:clamp(36px,5.5vw,78px)!important; line-height:1.22; letter-spacing:-.045em; }
html[lang=ja] .h2 { font-size:clamp(25px,2.4vw,34px); line-height:1.4; }
html[lang=ja] .body { line-height:1.85; }
html[lang=ja] .spoken-prompt { font-size:clamp(24px,2.25vw,34px); line-height:1.55; }
html[lang=ja] .tile .tname { font-size:24px; }
html[lang=ja] .site-nav { gap:20px!important; }
@media(max-width:1100px){ .site-nav>span { display:none; } .site-nav { margin-left:auto; } }
@media(max-width:600px){.language-switch {font-size:10px;margin-left:12px} body > div > .wrap:first-child {gap:8px}.language-switch span{display:inline} }
/* Native part layers: the page scroll drives the diagram, without scroll hijacking. */
.explode-story { height:320svh; position:relative; }
.explode-sticky { height:100svh; position:sticky; top:0; display:grid; grid-template-columns:minmax(230px,.28fr) minmax(0,.72fr); align-items:center; gap:30px; padding:0 48px; box-sizing:border-box; overflow:hidden; }
.explode-copy { align-self:center; position:relative; z-index:5; }
.explode-heading { font-size:clamp(30px,3.6vw,55px); line-height:1.05; font-weight:500; letter-spacing:-.04em; margin:22px 0 20px; max-width:8em; }
.explode-eyebrow { color:var(--red); }
.explode-intro { margin:0 0 26px; }
.explode-steps { position:relative; min-height:170px; }
.explode-step { position:absolute; top:0; opacity:0; transform:translateY(12px); transition:opacity .4s,transform .55s; pointer-events:none; max-width:29em; }
.explode-step.is-active { opacity:1; transform:translateY(0); }
.explode-step .m { color:var(--red); font-size:10px; }
.explode-step h3 { font-size:clamp(22px,2vw,30px); line-height:1.15; margin:16px 0 12px; font-weight:500; letter-spacing:-.02em; }
.explode-step p { font-size:15px; line-height:1.65; color:#56504e; margin:0; max-width:25em; }
.explode-control { border:0; border-bottom:1px solid var(--ink); padding:9px 0; background:none; cursor:pointer; text-align:left; }
.explode-control:hover { color:var(--red); border-color:var(--red); }
.explode-control:focus-visible { outline:2px solid var(--red);outline-offset:5px; }
.explode-stage { position:relative; width:100%; height:100%; min-width:0; --spread:0; --reveal:0; }
.explode-whole,.explode-layer { position:absolute; width:100%; left:0; top:50%; transform:translateY(-50%); }
.explode-stage img { width:100%; height:auto; display:block; }
.explode-whole { opacity:calc(1 - var(--reveal)); }
.explode-layer { opacity:var(--reveal); will-change:transform; transform-origin:center; }
.explode-layer[data-layer="0"] { transform:translateY(calc(-50% + var(--spread)*25%)) scale(calc(1 - var(--spread)*.15));z-index:1; }
.explode-layer[data-layer="1"] { transform:translateY(-50%) scale(calc(1 - var(--spread)*.15));z-index:2; }
.explode-layer[data-layer="2"] { transform:translateY(calc(-50% - var(--spread)*33%)) scale(calc(1 - var(--spread)*.15));z-index:3; }
.explode-layer img { transition:filter .5s ease,opacity .5s ease;filter:drop-shadow(0 8px 8px rgba(40,20,20,.05)); }
.explode-layer.is-active img { filter:drop-shadow(0 13px 13px rgba(255,82,71,.22)); }
.layer-label { position:absolute; right:3%; top:54%; border-top:1px dashed var(--red); width:15%; padding-top:5px; color:var(--red); opacity:var(--spread); text-align:right; }
.explode-layer[data-layer="0"] .layer-label {top:75%}.explode-layer[data-layer="1"] .layer-label {top:70%}.explode-layer[data-layer="2"] .layer-label {top:60%}
html[lang=ja] .explode-heading {line-height:1.35;font-size:clamp(28px,3vw,43px);max-width:10em}
html[lang=ja] .explode-step h3 {line-height:1.5;font-size:24px}
html[lang=ja] .explode-steps {min-height:190px}
@media(max-width:900px){.explode-sticky {padding:0 24px;gap:16px;grid-template-columns:minmax(200px,.32fr) minmax(0,.68fr)} .explode-heading {font-size:34px}.explode-step p{font-size:13px}}
@media(max-width:600px){.explode-story {height:290svh}.explode-sticky{padding:24px 20px;display:flex;flex-direction:column;gap:0;align-items:stretch}.explode-copy{align-self:stretch;width:100%;padding-top:12px}.explode-heading{font-size:30px;max-width:100%;margin:12px 0}.explode-intro{font-size:14px;margin:0 0 15px}.explode-eyebrow{font-size:9px}.explode-steps{min-height:115px}.explode-step h3{font-size:22px;margin:9px 0}.explode-step p{font-size:13px;max-width:29em}.explode-stage{height:auto;min-height:0;flex:1}.explode-control{font-size:9px}.explode-whole,.explode-layer{width:110%;left:-5%}.layer-label{right:2%;width:10%}html[lang=ja] .explode-heading{font-size:27px}html[lang=ja] .explode-steps{min-height:150px}html[lang=ja] .explode-step h3{font-size:20px}}
@media(prefers-reduced-motion:reduce){.explode-story{height:100svh;min-height:800px}.explode-sticky{position:relative;height:100%}.explode-step,.explode-layer img{transition:none}.explode-layer{will-change:auto}}
.part-callouts {position:absolute;inset:0;width:100%;height:100%;overflow:visible;opacity:var(--spread);color:var(--red);pointer-events:none;}
.part-callouts path {stroke:currentColor;stroke-width:1.2;vector-effect:non-scaling-stroke}.part-callouts circle{fill:currentColor}.part-callouts text{fill:currentColor;font:18px 'Geist Mono','Hiragino Kaku Gothic ProN',monospace;letter-spacing:.055em;text-transform:uppercase;paint-order:stroke;stroke:var(--paper);stroke-width:5px;stroke-linejoin:round}
.air-volume {opacity:.8}.air-volume path {stroke-width:1}
.layer-relations {position:absolute;inset:0;width:100%;height:100%;pointer-events:none;z-index:4;opacity:var(--spread);overflow:visible}
.layer-relations path{stroke:var(--red);stroke-width:1;stroke-dasharray:5 6;fill:none;opacity:.6}
@media(max-width:600px){.part-callouts text{font-size:24px;letter-spacing:0}.part-callouts path{stroke-width:1}.part-callouts .air-volume text{font-size:20px}}
/* The original full-width cover stays intact. Notes sit around the later diagram. */
.explode-sticky {display:block;padding:0 48px}
.explode-stage {height:100%;width:100%;max-width:1500px;margin:auto}
.explode-copy {position:absolute;top:34px;left:48px;max-width:300px;pointer-events:none}
.explode-heading {font:11px 'Geist Mono',monospace;text-transform:uppercase;letter-spacing:.1em;line-height:1.7;max-width:none;color:var(--red);margin:12px 0}
.explode-intro {font:10px 'Geist Mono',monospace;letter-spacing:.07em;color:var(--red);margin-bottom:18px}
.explode-step h3 {display:none}.explode-step p{font:10px 'Geist Mono',monospace;line-height:1.8;letter-spacing:.03em;color:var(--red);max-width:26em}.explode-step .m{font-size:10px;line-height:1.8}.explode-steps{min-height:100px}
.explode-control {pointer-events:auto;font-size:9px}
.explode-whole,.explode-layer {width:min(100%,125vh);left:50%;transform:translate(-50%,-50%)}
.explode-layer[data-layer="0"] {transform:translate(-50%,calc(-50% + var(--spread)*25%)) scale(calc(1 - var(--spread)*.23))}
.explode-layer[data-layer="1"] {transform:translate(-50%,-50%) scale(calc(1 - var(--spread)*.23))}
.explode-layer[data-layer="2"] {transform:translate(-50%,calc(-50% - var(--spread)*33%)) scale(calc(1 - var(--spread)*.23))}
html[lang=ja] .explode-heading {font-size:12px;line-height:1.8;max-width:25em}html[lang=ja] .explode-steps{min-height:130px}
@media(max-width:900px){.explode-sticky{padding:0 24px}.explode-copy{left:24px;max-width:230px}}
@media(max-width:600px){.explode-sticky{padding:0 20px}.explode-copy{top:18px;left:20px;max-width:90%}.explode-heading{font-size:10px}.explode-intro{display:none}.explode-steps{min-height:70px}.explode-step p{max-width:29em}.explode-stage{top:60px;height:calc(100% - 80px)}.explode-whole,.explode-layer{width:110%;left:50%}.explode-control{font-size:8px}html[lang=ja] .explode-heading{font-size:11px}html[lang=ja] .explode-steps{min-height:100px}}
.origin-pin{position:absolute;width:0;height:0;pointer-events:none}
.layer-relations path{stroke-width:1.1;stroke-dasharray:5 6;opacity:.8}

/* One shared image frame: scale and separation are continuous from the first pixel. */
.explode-stage {max-width:none}
.explode-layer,.explode-front {position:absolute;width:min(100%,130svh);left:50%;top:50%;opacity:1;transform-origin:center;will-change:transform}
.explode-layer[data-layer="0"],.explode-front {transform:translate(-50%,calc(-50% + var(--spread)*18%)) scale(calc(1 - var(--spread)*.30))}
.explode-layer[data-layer="1"] {transform:translate(-50%,-50%) scale(calc(1 - var(--spread)*.30))}
.explode-layer[data-layer="2"] {transform:translate(-50%,calc(-50% - var(--spread)*27%)) scale(calc(1 - var(--spread)*.30))}
.explode-front {z-index:4;pointer-events:none}
.explode-front img {width:100%;height:auto;display:block}
.explode-layer img,.explode-layer.is-active img {filter:none;transition:none}
.layer-relations {z-index:5}
.layer-relations path {stroke-width:.7;stroke-dasharray:3 5;opacity:.36}
.object-relations {position:absolute;inset:0;width:100%;height:100%;overflow:visible;pointer-events:none;z-index:6;color:var(--red)}
.object-relations path {fill:none;stroke:currentColor;stroke-width:.8;opacity:.66}
.object-relations circle {fill:currentColor}
.object-relations .object-highlight {fill:rgba(255,82,71,.1);stroke:currentColor;stroke-width:.8;opacity:.25}
.object-relations .is-highlighted .object-highlight {opacity:1}
.object-relations .is-highlighted path {stroke-width:1;opacity:1}
.object-relations text {fill:currentColor;font:10px 'Geist Mono','Hiragino Kaku Gothic ProN',monospace;letter-spacing:.065em;text-transform:uppercase;paint-order:stroke;stroke:var(--paper);stroke-width:4px;stroke-linejoin:round}
.part-callouts .object-note {display:none}
@media(max-width:650px){.explode-stage{top:0;height:100%}.explode-layer,.explode-front{width:115%}.object-relations text{font-size:8px;letter-spacing:0}.object-relations path{stroke-width:.6}.layer-relations path{stroke-width:.5;opacity:.25}}
@media(prefers-reduced-motion:reduce){.explode-story{height:100svh;min-height:0}.explode-layer,.explode-front{will-change:auto}}

.scroll-editorial {position:absolute;left:48px;top:48px;width:clamp(240px,23vw,360px);z-index:7;pointer-events:none}
.scroll-editorial article {position:absolute;inset:0 auto auto 0;width:100%;opacity:0;transform:translateY(22px);transition:opacity .45s ease,transform .6s cubic-bezier(.2,.7,.2,1)}
.scroll-editorial article.is-current {opacity:1;transform:none}
.scroll-editorial .m {font-size:10px;color:var(--red)}
.scroll-editorial h2 {font-size:clamp(32px,3.2vw,54px);font-weight:500;letter-spacing:-.04em;line-height:1.06;margin:20px 0}
.scroll-editorial p {font-size:15px;line-height:1.65;max-width:24em;margin:0;color:#554e4b}
html[lang=ja] .scroll-editorial h2 {font-size:clamp(28px,2.8vw,46px);line-height:1.35;letter-spacing:-.04em}
@media(max-width:900px){.scroll-editorial{left:24px;top:30px;width:220px}.scroll-editorial h2{font-size:32px}.scroll-editorial p{font-size:13px}}
@media(max-width:650px){.scroll-editorial{left:20px;top:20px;width:175px}.scroll-editorial h2{font-size:25px;margin:12px 0}.scroll-editorial p{font-size:11px;line-height:1.5}.scroll-editorial .m{font-size:8px}html[lang=ja] .scroll-editorial h2{font-size:24px}}
@media(prefers-reduced-motion:reduce){.scroll-editorial article{transition:none}}

.scroll-editorial {top:34px;width:clamp(235px,22vw,340px)}
.scroll-editorial article {position:relative;inset:auto;max-height:0;overflow:hidden;opacity:0;transform:translateY(15px);transition:max-height .65s ease,opacity .45s ease,transform .65s ease,padding .65s ease}
.scroll-editorial article.is-visible {max-height:250px;opacity:1;transform:none;padding-bottom:22px}
.scroll-editorial .m {display:flex;align-items:center;gap:10px}
.chapter-icon {width:22px;height:22px;flex:none}
.scroll-editorial h2 {font-size:clamp(23px,1.8vw,30px);line-height:1.08;margin:10px 0;transition:font-size .6s ease}
.scroll-editorial .is-current h2 {font-size:clamp(28px,2.4vw,41px)}
.scroll-editorial p {font-size:12px;line-height:1.55;max-width:27em}
html[lang=ja] .scroll-editorial h2 {font-size:clamp(22px,1.65vw,28px);line-height:1.3}
html[lang=ja] .scroll-editorial .is-current h2 {font-size:clamp(26px,2.1vw,35px)}
@media(max-height:800px) and (min-width:651px){.scroll-editorial article.is-visible{padding-bottom:14px}.scroll-editorial h2{font-size:23px}.scroll-editorial .is-current h2{font-size:30px}.scroll-editorial p{font-size:11px}.chapter-icon{width:18px;height:18px}}
@media(max-width:650px){.scroll-editorial{top:16px;width:160px}.scroll-editorial article.is-visible{padding-bottom:12px;max-height:180px}.scroll-editorial h2{font-size:18px}.scroll-editorial .is-current h2{font-size:23px}.scroll-editorial p{font-size:10px}.chapter-icon{width:17px;height:17px}.scroll-editorial .m{gap:6px;font-size:7px}html[lang=ja] .scroll-editorial h2{font-size:17px}html[lang=ja] .scroll-editorial .is-current h2{font-size:21px}}

.object-relations .note-number{fill:#55514f}.object-relations .note-object{font-weight:700;fill:#d7473d}.object-relations .note-location{fill:#ae342d}
.object-relations{color:#b83d34}.object-relations path{opacity:.9;stroke-width:1}.object-relations .is-highlighted path{stroke-width:1.15}.layer-relations path{stroke:#b83d34;opacity:.56;stroke-width:.8}.part-callouts path{stroke:#b83d34}
.scroll-editorial{top:40px;bottom:40px;display:grid;grid-template-rows:repeat(4,minmax(0,1fr));align-items:start}
.scroll-editorial article,.scroll-editorial article.is-visible{max-height:none;overflow:visible;padding:0}
.scroll-editorial h2,.scroll-editorial .is-current h2{font-size:clamp(26px,2.4vw,41px)}
.scroll-editorial h2 strong {font-weight:inherit}
.scroll-editorial p{font-size:13px;line-height:1.6}
html[lang=ja] .scroll-editorial h2,html[lang=ja] .scroll-editorial .is-current h2{font-size:clamp(24px,2.1vw,35px)}
@media(max-height:800px){.scroll-editorial{top:24px;bottom:24px}.scroll-editorial h2,.scroll-editorial .is-current h2{font-size:25px;margin:8px 0}.scroll-editorial p{font-size:11px}.chapter-icon{width:18px;height:18px}}
@media(max-width:650px){.scroll-editorial{top:20px;bottom:20px}.scroll-editorial h2,.scroll-editorial .is-current h2{font-size:21px}.scroll-editorial p{font-size:10px}.scroll-editorial .chapter-icon{width:16px;height:16px}}

.language-switch{position:fixed;top:14px;right:22px;padding:8px 10px;background:rgba(235,233,231,.94);z-index:40}
.restaurant-motion{position:relative;width:100%;aspect-ratio:16/9;overflow:hidden}.restaurant-motion video{width:100%;height:100%;display:block;object-fit:cover}.motion-toggle{position:absolute;bottom:8px;right:8px;width:26px;height:26px;border:1px solid #b83d34;color:#b83d34;background:rgba(235,233,231,.85);cursor:pointer;font-size:12px}.motion-toggle:hover{background:var(--red);color:white}.motion-toggle:focus-visible{outline:2px solid var(--red);outline-offset:3px}

.explode-rig{position:absolute;left:50%;top:50%;width:min(100%,130svh);aspect-ratio:4224/3098;transform:translate3d(-50%,-50%,0) scale(calc(1 - var(--spread)*.30));transform-origin:center;will-change:transform;isolation:isolate}
.explode-rig .explode-layer,.explode-rig .explode-front{position:absolute;width:100%;left:0;top:0;transform-origin:center;backface-visibility:hidden}
.explode-rig .explode-layer[data-layer="0"],.explode-rig .explode-front{transform:translate3d(0,calc(var(--spread)*26%),0)}
.explode-rig .explode-layer[data-layer="1"]{transform:translate3d(0,0,0)}
.explode-rig .explode-layer[data-layer="2"]{transform:translate3d(0,calc(var(--spread)*-39%),0)}
.explode-rig img{backface-visibility:hidden}
@media(max-width:650px){.explode-rig{width:115%}}
@media(prefers-reduced-motion:reduce){.explode-rig{will-change:auto}}

html.lenis,html.lenis body{height:auto}.lenis.lenis-smooth{scroll-behavior:auto!important}.lenis.lenis-stopped{overflow:hidden}.lenis.lenis-smooth [data-lenis-prevent]{overscroll-behavior:contain}
.tile .timg,.tile .pair{transition-duration:1.1s;transition-timing-function:cubic-bezier(.2,.7,.2,1)}
.scroll-editorial article{transition:opacity .65s ease,transform 1.1s cubic-bezier(.2,.7,.2,1)}

.panel-detail{position:relative;width:100%;height:100%}.panel-detail .panel-overview{position:absolute;width:60%;height:100%;left:0;top:0;object-fit:contain}.panel-detail>svg{position:absolute;inset:0;width:100%;height:100%;overflow:visible;z-index:2;pointer-events:none}.panel-detail>svg path{fill:none;stroke:#b83d34;stroke-width:1.2;stroke-dasharray:5 5}.panel-detail>svg circle{fill:var(--paper);stroke:#b83d34;stroke-width:1.2}.panel-detail>svg text{font:11px 'Geist Mono',monospace;fill:#b83d34}.panel-inset{position:absolute;right:0;top:2%;width:43%;margin:0}.panel-inset img{width:100%;height:auto;display:block}.panel-inset figcaption{font-size:8px;letter-spacing:.04em;line-height:1.7;color:#b83d34;border-top:1px solid #b83d34;padding-top:8px}.panel-inset figcaption b,.panel-inset figcaption span{display:block}.panel-inset figcaption span{color:#5c5350;font-size:7px}

/* The model is painted atomically on one stable retina surface. */
.explode-rig{display:none}
.explode-canvas{position:absolute;inset:0;width:100%;height:100%;display:block;pointer-events:none;z-index:1}
.air-relations{position:absolute;inset:0;width:100%;height:100%;z-index:4;pointer-events:none;overflow:visible;color:#b83d34}
.air-relations path{fill:none;stroke:currentColor;stroke-width:.8}
.air-relations .air-edges{stroke-dasharray:6 5}
.air-relations text{fill:currentColor;font:10px monospace;text-anchor:end;paint-order:stroke;stroke:#ebe9e7;stroke-width:3px}
.object-relations circle:not(.object-highlight){fill:#393634;stroke:var(--paper);stroke-width:1.1px;r:3px}
.is-hoverable .object-relations text,.is-hoverable .object-relations circle{pointer-events:all;cursor:pointer}
.object-relations .is-hovered path{stroke-width:1.5px;opacity:1}
.object-relations .is-hovered .object-highlight{stroke:#a82d24;stroke-width:1.4px;opacity:1;r:12px}
.object-relations .is-hovered .note-object{fill:#b52d24}

/* Native controls retain the quiet drawing-led layout. */
button{font:inherit;color:inherit;cursor:pointer}button:disabled{cursor:default}
button.tile{appearance:none;border:0;background:transparent;text-align:left;padding:0;font:inherit;color:var(--ink);width:100%}
.tile-open{float:right;font-size:20px;color:#a63b33;opacity:0;transform:translate(-4px,4px);transition:opacity .3s,transform .3s}.tile:hover .tile-open,.tile:focus-visible .tile-open{opacity:1;transform:none}
a:focus-visible,button:focus-visible,summary:focus-visible,select:focus-visible,input:focus-visible,.drawing-viewport:focus-visible{outline:2px solid #b83d34;outline-offset:5px}
.home-link{color:var(--ink)}.site-nav button,.text-button{appearance:none;background:none;border:0;padding:0;font:inherit;letter-spacing:inherit;text-transform:inherit;color:inherit}.text-button:hover,.site-nav button:hover{color:var(--red)}
.site-header{position:relative;box-sizing:border-box;padding-right:185px}.menu-toggle{display:none}.voice-cue{background:none;border:0;padding:0;text-align:left}.voice-cue:hover{color:#b83d34}
.footer-links{display:flex;align-items:center;gap:24px;flex-wrap:wrap}.footer-links a{color:inherit}.footer-links a:hover{color:var(--red)}
.model-actions{position:absolute;bottom:18px;left:50%;transform:translateX(-50%);z-index:10;display:flex;align-items:center;gap:24px;padding:10px 16px;background:rgba(235,233,231,.92);white-space:nowrap}.model-actions .m{font-size:9px;letter-spacing:.075em}.model-actions [disabled]{opacity:.4}.model-actions a{color:#b83d34}
.dialog-open{overflow:hidden!important}.site-dialog{position:fixed;inset:0;margin:auto;width:min(1180px,calc(100vw - 64px));max-width:none;max-height:calc(100svh - 64px);padding:0;background:var(--paper);color:var(--ink);border:1px solid #a63b33;overflow:hidden;box-sizing:border-box}
.site-dialog::backdrop{background:rgba(25,22,21,.38);backdrop-filter:blur(5px)}
.dialog-shell{display:flex;flex-direction:column;max-height:calc(100svh - 66px)}.dialog-head{display:flex;align-items:center;justify-content:space-between;gap:24px;padding:24px 32px;border-bottom:1px solid #c7c0bd;flex-shrink:0}.dialog-head h2{font-size:clamp(24px,3vw,38px);letter-spacing:-.035em;font-weight:500;line-height:1.15;margin:0;outline:none}.dialog-close{border:0;background:transparent;color:#b83d34;padding:12px 0;white-space:nowrap}
.dialog-body{overflow:auto;overscroll-behavior:contain;padding:24px 32px 28px;min-height:0}.dialog-caption{font-size:16px;line-height:1.55;color:#554e4b;margin:0 0 22px;max-width:48em}.dialog-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-top:18px}.ui-button{display:inline-flex;align-items:center;justify-content:center;min-height:42px;box-sizing:border-box;background:none;border:1px solid #99918d;color:var(--ink);padding:10px 16px;font:10px 'Geist Mono','Hiragino Kaku Gothic ProN',monospace;letter-spacing:.055em;text-transform:uppercase;line-height:1.5;cursor:pointer}.ui-button:hover{background:#f6c9c4;border-color:#b83d34;color:#a52f26}.ui-primary{background:var(--ink);border-color:var(--ink);color:white}.ui-primary:hover{background:var(--red);border-color:var(--red);color:white}
.drawing-viewport{height:min(52svh,600px);position:relative;overflow:hidden;touch-action:pan-y;background:rgba(255,255,255,.12)}.drawing-viewport img{width:100%;height:100%;object-fit:contain;display:block;transform-origin:center;user-select:none}.drawing-viewport[data-zoomed=true]{cursor:grab;touch-action:none}.drawing-viewport[data-zoomed=true]:active{cursor:grabbing}.zoom-readout{font:11px monospace;min-width:48px;text-align:center}.gallery-pagination{justify-content:space-between;border-top:1px solid #c7c0bd;padding-top:18px}.model-notice{color:#6b514b;font-size:12px;line-height:1.6;max-width:65em;margin:16px 0 0}
.site-dialog[data-mode=docs],.site-dialog[data-mode=launch],.site-dialog[data-mode=demo],.site-dialog[data-mode=part]{width:min(720px,calc(100vw - 64px))}.guide-section{border-top:1px solid #bcb4b0;padding:18px 0}.guide-section summary{font-size:23px;font-weight:500;letter-spacing:-.02em;cursor:pointer}.guide-section p,.launch-help{font-size:16px;line-height:1.7;color:#554e4b}.guide-section:last-of-type{border-bottom:1px solid #bcb4b0;margin-bottom:24px}.field-label{display:block;font:11px monospace;color:#a63b33;margin-bottom:10px}.dialog-body select{width:100%;font:14px 'Geist Mono',monospace;line-height:1.5;padding:12px;background:var(--paper);color:var(--ink);border:1px solid #a69c96}.part-facts{display:grid;grid-template-columns:135px minmax(0,1fr);gap:18px 24px;margin:28px 0}.part-facts dt{color:#7a625a;font-size:13px}.part-facts dd{margin:0;font:13px 'Geist Mono',monospace;line-height:1.5;overflow-wrap:anywhere}.ui-status{font-size:13px;color:#a63b33;min-height:1.5em}
.is-hoverable .object-relations [role=button]:focus-visible{outline:none}.is-hoverable .object-relations [role=button]:focus-visible path{stroke-width:2}.is-hoverable .object-relations [role=button]:focus-visible text{fill:#8d211b}
.drawing-load-status{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);z-index:15;background:var(--paper);padding:14px;color:#9c332b;font:12px monospace}
.dialog-body textarea{display:block;width:100%;box-sizing:border-box;resize:vertical;padding:16px;background:rgba(255,255,255,.3);border:1px solid #a69c96;color:var(--ink);font:18px/1.55 'Instrument Sans','Hiragino Kaku Gothic ProN',sans-serif}.dialog-body textarea:focus-visible{outline:2px solid #b83d34;outline-offset:3px}.ui-button:disabled{opacity:.5;cursor:default}
.drawing-fallback .explode-rig{display:block;top:calc(50% - var(--spread)*5.5%)}.drawing-fallback .explode-canvas{display:none}
.dialog-head-actions{display:flex;align-items:center;gap:22px}.dialog-languages{display:flex;gap:8px;white-space:nowrap}.dialog-languages button{border:0;padding:4px;background:none;color:#8b807b;font:inherit}.dialog-languages [aria-pressed=true]{color:#b83d34;text-decoration:underline;text-underline-offset:5px}
@media(max-width:1000px){.site-header{padding-right:175px}.site-nav{gap:14px!important;font-size:9px}.site-header .home-link .m{display:none}}
@media(max-width:760px){.site-header{padding-left:20px!important;padding-right:160px!important}.menu-toggle{display:block;background:none;border:0;padding:10px;color:#b83d34}.site-nav{display:none!important;position:absolute;top:72px;left:0;right:0;z-index:35;background:var(--paper);padding:24px;border-top:1px solid #b83d34;border-bottom:1px solid #b83d34;align-items:stretch!important;gap:22px!important}.site-nav.is-open{display:flex!important;flex-direction:column}.site-nav a,.site-nav button{font-size:12px;text-align:left}.site-header .word{font-size:10px!important;letter-spacing:.18em}.language-switch{right:10px}.footer-links{gap:14px;font-size:8px}.tile-open{opacity:1;transform:none}.site-dialog,.site-dialog[data-mode]{width:calc(100vw - 24px);max-height:calc(100svh - 24px)}.dialog-shell{max-height:calc(100svh - 26px)}.dialog-head{padding:18px 20px;gap:12px}.dialog-body{padding:20px}.dialog-caption{font-size:14px}.drawing-viewport{height:40svh}.ui-button{font-size:9px;padding:9px 12px}.dialog-actions{gap:8px}.part-facts{grid-template-columns:1fr;gap:6px}.part-facts dd{margin-bottom:14px}.model-actions{bottom:8px;gap:16px;padding:8px}.model-actions .m{font-size:8px}.hero-actions{flex-wrap:wrap;justify-content:center}}
@media(prefers-reduced-motion:reduce){.tile-open{transition:none}.site-dialog::backdrop{backdrop-filter:none}}

/* Phone: the whole drawing first, then a centred zoom and a quiet caption. */
@media(max-width:650px){
  body > div > .in {padding-bottom:12px!important}
  .explode-story {height:280svh;min-height:0}
  .explode-sticky {--mobile-pin:clamp(80px,calc(45svh - 36.67vw + 8.8px),360px);top:var(--mobile-pin);height:calc(100svh - var(--mobile-pin));padding:0;overflow:visible}
  .explode-stage {position:absolute;top:calc(-1 * var(--mobile-pin));width:100%;height:100svh}
  .scroll-editorial {left:24px;right:24px;top:calc(-1 * var(--mobile-pin));bottom:0;width:auto;max-width:none;display:block;isolation:isolate}
  .scroll-editorial::before {content:"";position:absolute;inset:auto -24px 40px;height:185px;z-index:-1;pointer-events:none;background:linear-gradient(rgba(235,233,231,0),rgba(235,233,231,.98) 28%,var(--paper));opacity:var(--mobile-copy,0);transition:opacity .3s ease}
  .scroll-editorial article {position:absolute;inset:auto;width:calc(50% - 3px);max-height:none;padding:0;opacity:0;visibility:hidden;transform:translate3d(0,18px,0);transition:opacity .3s ease,transform .55s cubic-bezier(.2,.7,.2,1),visibility 0s .3s}
  .scroll-editorial article.is-visible {position:absolute;visibility:visible;opacity:1;transform:none;padding:0;transition-delay:0s}
  .scroll-editorial [data-chapter="0"] {top:max(20px,env(safe-area-inset-top));left:0;width:92%;max-width:350px}
  .scroll-editorial [data-chapter="1"] {left:0;bottom:136px}
  .scroll-editorial [data-chapter="2"] {right:0;bottom:48px;text-align:right}
  .scroll-editorial [data-chapter="3"] {display:none}
  .explode-story[data-mobile-chapter="0"] .scroll-editorial::before {display:none}
  .scroll-editorial [data-chapter="2"] .m {justify-content:flex-end}
  .scroll-editorial h2,.scroll-editorial .is-current h2 {font-size:clamp(30px,8vw,39px);line-height:1.04;letter-spacing:-.05em;margin:10px 0 0}
  .scroll-editorial [data-chapter="0"] h2 {font-size:clamp(38px,10.5vw,50px)}
  .scroll-editorial h2 strong {font-weight:750}
  .scroll-editorial p {display:none}
  .scroll-editorial .m {font-size:9px;gap:8px}
  .scroll-editorial .chapter-icon {width:40px;height:40px;stroke-width:1.4}
  html[lang=ja] .scroll-editorial h2,html[lang=ja] .scroll-editorial .is-current h2 {font-size:clamp(27px,6.8vw,32px);line-height:1.2}
  html[lang=ja] .scroll-editorial [data-chapter="0"] h2 {font-size:clamp(34px,9.5vw,44px)}
  .object-relations text {font-size:12px;letter-spacing:.015em;stroke-width:5px}
  .object-relations path {stroke-width:1px}
  .layer-relations {display:block}
  .air-relations {display:none}
  .model-actions {bottom:max(18px,env(safe-area-inset-bottom));visibility:hidden;opacity:0;transition:opacity .3s ease}
  .is-hoverable .model-actions {visibility:visible;opacity:1}
}
@media(max-width:650px) and (prefers-reduced-motion:reduce){
  .explode-story {height:auto}
  .explode-sticky {position:relative;top:0;height:auto;display:flex;flex-direction:column;overflow:visible}
  .explode-stage {position:relative;top:0;height:95vw;flex:none;order:0}
  .scroll-editorial {position:relative;inset:auto;order:1;width:auto;max-width:none;margin:20px 24px 36px}
  .explode-story[data-mobile-chapter] .scroll-editorial {inset:auto;width:auto;max-width:none;text-align:left}
  .explode-story[data-mobile-chapter] .scroll-editorial .m {justify-content:flex-start}
  .scroll-editorial::before {display:none}
  .scroll-editorial article,.scroll-editorial article.is-visible {position:relative;inset:auto;visibility:visible;opacity:1;transform:none;transition:none;margin-bottom:30px}
  .scroll-editorial [data-chapter] {inset:auto;width:100%;max-width:none;text-align:left}
  .scroll-editorial [data-chapter] .m {justify-content:flex-start}
  .scroll-editorial p {display:block;font-size:14px;line-height:1.55;margin-top:12px}
  .model-actions {visibility:visible;opacity:1;transition:none}
}

/* Public preview release: retain the source composition with a longer CTA. */
.preview-note {max-width:540px;margin:8px auto 0;font-size:13px;line-height:1.6;text-align:center;color:#615956}
.preview-date {font-size:10px;line-height:1.7;max-width:280px}
.hero-actions {justify-content:center;flex-wrap:wrap}
.model-actions {max-width:calc(100% - 24px);box-sizing:border-box;white-space:normal;text-align:center}
.model-actions [data-waitlist-link] {max-width:190px}
.site-header .site-nav [data-waitlist-link] {white-space:nowrap;line-height:1.6}
@media(max-width:760px){.preview-note{max-width:340px;padding:0 18px;font-size:12px}.preview-date{max-width:260px}.hero-actions{gap:10px!important}.hero-actions .btn{max-width:100%;box-sizing:border-box;text-align:center;white-space:normal}.site-nav [data-waitlist-link]{max-width:none!important}}

/* Keep the preview action below the drawing and clear of browser safe areas. */
html {--waitlist-bar-height:calc(98px + env(safe-area-inset-bottom,0px));scroll-padding-bottom:calc(var(--waitlist-bar-height) + 16px)}
body.has-waitlist-bar {padding-bottom:var(--waitlist-bar-height)}
/* The primary action remains fixed and centred at every scroll position. */
.waitlist-bar {position:fixed;inset:auto 0 0;z-index:100;display:flex;flex-direction:column;align-items:center;gap:7px;box-sizing:border-box;padding:12px max(20px,env(safe-area-inset-right,0px)) calc(18px + env(safe-area-inset-bottom,0px)) max(20px,env(safe-area-inset-left,0px));pointer-events:none;background:linear-gradient(transparent,rgba(235,233,231,.92));}
.waitlist-bar .preview-date {max-width:none;text-align:center;color:#413936;font-size:10px;line-height:1.7;pointer-events:auto;background:#ebe9e7;padding:1px 8px;}
.waitlist-bar .btn {min-width:360px;max-width:100%;box-sizing:border-box;padding:20px 30px;text-align:center;white-space:normal;font-size:12px;line-height:1.5;letter-spacing:.12em;background:#ff5247!important;color:#111!important;pointer-events:auto;box-shadow:0 6px 24px rgba(30,10,5,.15);}
.waitlist-bar .btn:hover {background:#ff6a60!important;}

.dialog-open .waitlist-bar {visibility:hidden;pointer-events:none}
body.has-waitlist-bar .explode-sticky {height:calc(100svh - var(--waitlist-bar-height))}
@media(max-width:650px){
  .waitlist-bar .btn {min-width:0;width:min(100%,320px)}
  .waitlist-bar .preview-date {font-size:9px}
  body.has-waitlist-bar .explode-sticky {height:calc(100svh - var(--mobile-pin) - var(--waitlist-bar-height))}
  body.has-waitlist-bar .explode-stage {height:calc(100svh - var(--waitlist-bar-height))}
}
@media(max-width:650px) and (prefers-reduced-motion:reduce){
  body.has-waitlist-bar .explode-sticky {height:auto}
  body.has-waitlist-bar .explode-stage {height:95vw}
}

/* Platform and format availability follows the preview implementation. */
.platforms { padding-bottom: 72px; }
.platforms-eyebrow { border-top: 1px solid var(--ink, #111); padding-top: 12px; margin: 0 0 28px; }
.platforms-layout { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.1fr); gap: clamp(32px, 4vw, 64px); align-items: start; }
.platforms h2 { margin: 0 0 20px; max-width: 15em; }
.platforms h2 strong { color: #ff5247; font-weight: inherit; }
.platforms .body { max-width: 40em; }
@media (max-width: 1000px) {
  .platforms-layout { grid-template-columns: minmax(0, 1fr); gap: 28px; }
  }

/* Downloads are siblings of the gallery button, with no eager model fetch. */
.model-example { min-width: 0; display: flex; flex-direction: column; }
.model-example .tile { flex: 1; }
.model-example:nth-child(3n+2) .pair { animation-delay: -2.6s; }
.model-example:nth-child(3n+3) .pair { animation-delay: -5.1s; }
.example-downloads { display: flex; flex-wrap: wrap; gap: 20px; margin-top: 20px; }
.example-downloads:empty { display: none; }
.example-downloads a { display: inline-flex; align-items: baseline; gap: 8px; padding: 9px 0; border-bottom: 1px solid #b5aaa4; font-family: 'IBM Plex Mono', monospace; font-size: 12px; color: #111; }
.example-downloads a:hover { color: #b83d34; border-color: currentColor; }
.example-downloads small { color: #655d58; font-size: 10px; }
.model-download-note { font-size: 12px; color: #655d58; line-height: 1.6; }

/* Membership priority and date remain readable above the permanent action. */
.preview-note { color:#292321; }
.preview-note strong { display:block; font-weight:600; }
.formas-early-access { display:block; width:fit-content; margin:9px auto 0; color:#111; font-size:12px; line-height:1.5; font-weight:600; text-decoration:underline; text-underline-offset:3px; }
.waitlist-bar { gap:5px; }
.waitlist-priority { font:600 10px/1.5 'IBM Plex Mono',monospace; letter-spacing:.035em; color:#111; text-align:center; background:#ebe9e7; padding:2px 8px; }
.waitlist-bar .preview-date { font-size:11px; color:#111; font-weight:600; }
.waitlist-bar .formas-early-access { pointer-events:auto; margin:2px 0 0; padding:1px 8px; background:#ebe9e7; }
@media(max-width:650px){ .waitlist-priority { max-width:340px; font-size:9px; } .waitlist-bar .preview-date { font-size:10px; } .waitlist-bar .formas-early-access { font-size:11px; } }
