:root{color-scheme:dark;--ink:#edf1f8;--muted:#9ba7b9;--blue:#76a3ff;--line:#ffffff26}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:#111821;color:var(--ink);font-family:"Avenir Next","PingFang SC",sans-serif;-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}button{font:inherit;color:inherit;cursor:pointer}button,a{-webkit-tap-highlight-color:transparent}button:focus-visible,a:focus-visible,canvas:focus-visible{outline:2px solid var(--blue);outline-offset:5px}header{position:fixed;z-index:10;top:0;left:0;width:100%;padding:26px 40px;display:flex;justify-content:space-between;align-items:center;background:linear-gradient(#111821b3,transparent)}.wordmark{font-size:23px;font-weight:750;letter-spacing:3px;line-height:1}.wordmark span{display:block;font:9px monospace;letter-spacing:2.3px;color:var(--muted);margin-top:9px}nav{display:flex;gap:28px;align-items:center;font-size:12px}nav button{border:0;background:none;padding:8px 0}#world{position:fixed;inset:0;overflow:hidden;background:radial-gradient(ellipse at 55% 36%,#39485b 0%,#1c2736 39%,#0d141e 80%)}#viewport{position:absolute;inset:0;z-index:2;width:100%;height:100%;touch-action:pan-y;cursor:grab}#viewport:active{cursor:grabbing}body.free #viewport{touch-action:none}.word-backdrop{position:absolute;top:16%;left:50%;transform:translateX(-50%);font-size:15.8vw;font-weight:800;font-style:italic;letter-spacing:-.08em;line-height:1;color:#9eafc51c;white-space:nowrap;user-select:none;pointer-events:none}.grain{position:absolute;inset:0;background:linear-gradient(transparent 69%,#050b1590);z-index:3;pointer-events:none}.floor-caption{position:absolute;bottom:148px;left:40px;font:9px monospace;letter-spacing:2.5px;color:#8291a466;z-index:3}.floor-caption span{margin-left:40px}main{position:relative;z-index:4;pointer-events:none}.chapter{height:110vh;min-height:720px;position:relative;padding:0 6.4vw;display:flex;align-items:center}.chapter:last-child{height:100vh}.eyebrow{font:10px monospace;letter-spacing:2px;color:var(--blue);margin-bottom:26px}h1,h2{font-size:clamp(32px,3.1vw,58px);font-weight:500;line-height:1.3;letter-spacing:-1.5px;margin:0 0 24px}.chapter p{font-size:13px;color:#b5c0ce;line-height:2.1;letter-spacing:.5px}.chapter p span{display:block;font-size:12px;color:#8e9eb2;margin-top:3px}.scroll-hint{display:inline-flex;align-items:center;gap:28px;border-top:1px solid var(--line);margin-top:43px;padding-top:17px;font-size:12px;pointer-events:auto}.scroll-hint span{color:var(--blue)}.edition{position:absolute;right:40px;top:145px;text-align:right;font:9px/1.8 monospace;color:#8190a5;letter-spacing:1px}.small-spec{display:flex;gap:38px;margin-top:30px}.small-spec span{font-size:31px;font-weight:300}.small-spec small{display:block;font-size:10px;color:var(--muted);margin-top:6px}.boost-action{pointer-events:auto;background:#ffffff0d;border:1px solid #ffffff45;border-radius:3px;padding:13px 19px;margin-top:25px;font-size:12px;transition:background .2s}.boost-action:hover{background:#ffffff1b}.boost-action span{margin-left:30px;color:var(--blue)}.archive-link{display:block;pointer-events:auto;font-size:10px;color:#8d9fb6;margin-top:25px;max-width:300px;line-height:1.8}.rail{position:fixed;right:30px;top:45%;z-index:8;display:flex;flex-direction:column;gap:13px}.rail button{border:0;background:none;font:10px monospace;color:#758499;padding:8px 10px;position:relative}.rail button.active{color:#fff}.rail button.active:before{content:'';position:absolute;right:100%;top:50%;width:17px;height:1px;background:var(--blue)}.console{z-index:9;position:fixed;bottom:25px;left:40px;right:40px;display:flex;align-items:center;justify-content:space-between;padding:20px 0 0;border-top:1px solid var(--line);gap:20px}.model-id{display:flex;align-items:center;gap:17px}.model-id b{font-size:38px;font-weight:500;font-style:italic}.model-id>span{font:11px monospace;letter-spacing:1.4px}.model-id small{display:block;color:#90a0b5;font:10px "PingFang SC",sans-serif;letter-spacing:.6px;margin-top:6px}.interaction{display:flex;align-items:center;gap:25px}#modeLabel{font-size:10px;color:#9baabd}.controls{display:flex;border:1px solid #ffffff30;border-radius:5px;overflow:hidden;background:#16202ed9;backdrop-filter:blur(20px)}.controls button{background:transparent;border:0;border-right:1px solid #ffffff20;font-size:11px;padding:11px 16px;transition:background .2s}.controls button:last-child{border-right:0}.controls button:hover{background:#ffffff13}.controls button[aria-pressed=true]{background:#749fe62e;color:#b7d2ff}.local-label{font:9px monospace;letter-spacing:1.5px;color:#91a1b5}.local-label i{display:inline-block;width:4px;height:4px;border-radius:50%;background:#92b6df;vertical-align:middle;margin-right:8px}#loading{position:fixed;inset:0;z-index:20;background:#111821;display:flex;flex-direction:column;align-items:center;justify-content:center;transition:opacity .6s}#loading.done{opacity:0;pointer-events:none}#loading p{font-size:15px;letter-spacing:3px;margin-top:25px}#loading small{color:#8391a6;font-size:10px}.loading-bar{width:140px;height:1px;background:linear-gradient(90deg,transparent,#6c9cee,transparent);animation:load 1.5s infinite}@keyframes load{50%{opacity:.2;transform:scaleX(.5)}}dialog{width:min(550px,90vw);max-height:86vh;padding:46px;background:#151f2d;border:1px solid #ffffff26;color:var(--ink);border-radius:5px}dialog::backdrop{background:#03070dab;backdrop-filter:blur(12px)}dialog h2{font-size:30px}dialog p{font-size:13px;color:#aebacc;line-height:1.9}dialog a{display:inline-block;font-size:12px;color:#a5c5ff;margin:15px 0}dialog small{display:block;color:#6e8099;font-size:10px;line-height:1.8}#closeNotes{position:absolute;right:18px;top:12px;border:0;background:none;font-size:25px}body.free .chapter-copy{opacity:.12}body.free .chapter-copy:hover{opacity:.9}body.free #modeLabel{color:#bfd6ff}.error-link{pointer-events:auto;color:#a5c5ff;padding:20px;font-size:13px}
@media(min-width:1600px){.chapter{padding-left:7vw}.chapter-copy{width:380px}}
@media(max-width:760px){header{padding:22px}.wordmark{font-size:18px}nav{gap:18px;font-size:10px}.wordmark span{font-size:7px}.chapter{padding:100px 25px 0;align-items:flex-start;height:110svh;min-height:690px}.chapter-copy{width:82%;margin-top:22px}h1,h2{font-size:31px;line-height:1.35;margin-bottom:14px}.eyebrow{font-size:8px;margin-bottom:15px}.chapter p{font-size:11px;line-height:1.9}.scroll-hint{margin-top:12px;font-size:10px;padding-top:12px}.word-backdrop{top:40%;font-size:18vw}.edition{display:none}.small-spec{margin-top:16px;gap:28px}.small-spec span{font-size:25px}.boost-action{margin-top:10px;font-size:11px;padding:10px 14px}.archive-link{font-size:9px;margin-top:12px}.rail{right:6px;top:42%;gap:5px}.rail button{font-size:8px;padding:8px}.console{left:22px;right:22px;bottom:20px;align-items:flex-end;gap:10px;padding-top:15px}.model-id{gap:7px}.model-id b{font-size:29px}.model-id>span{font-size:8px;letter-spacing:.4px}.model-id small{font-size:8px}.interaction{gap:8px;flex-direction:column;align-items:flex-end}#modeLabel{font-size:9px}.controls button{font-size:10px;padding:10px}.local-label,.floor-caption{display:none}dialog{padding:35px 26px}.chapter:last-child{height:100svh}.archive-link{max-width:230px}body.free .chapter-copy{opacity:.08}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition:none!important}}
/* Keep narration in one reading position while the physical camera moves. */
.chapter-copy{position:fixed;left:6.4vw;top:47%;width:min(440px,36vw);margin:0;opacity:0;visibility:hidden;pointer-events:none;transform:translateY(calc(-1*min(188px,21vh) + 18px));transition:opacity .45s,transform .6s,visibility 0s .6s}.chapter.visible .chapter-copy{opacity:1;visibility:visible;transform:translateY(calc(-1*min(188px,21vh)));transition:opacity .45s,transform .6s,visibility 0s 0s}.chapter-copy a,.chapter-copy button{pointer-events:auto}.chapter:not(.visible) .chapter-copy a,.chapter:not(.visible) .chapter-copy button{pointer-events:none}.word-backdrop{color:#9eafc512}
@media(min-width:1600px){.chapter-copy{left:7vw}}
@media(max-width:760px){.chapter-copy{left:25px;top:126px;width:82%;transform:translateY(18px)}.chapter.visible .chapter-copy{transform:translateY(0)}}
h1,h2{font-size:clamp(32px,2.8vw,52px)}
@media(max-width:760px){h1,h2{font-size:31px}}
/* Keep both motion controls usable without squeezing the mobile footer. */
@media(max-width:520px){.console{align-items:stretch;flex-wrap:wrap;gap:8px}.model-id{position:absolute;left:0;bottom:46px}.model-id b{font-size:24px}.interaction{width:100%}.controls{width:100%}.controls button{flex:1;padding:10px 6px;white-space:nowrap}.controls #rotate,.controls #boostQuick{flex:2}#modeLabel{min-height:25px;padding-top:3px;max-width:58%;font-size:8px}}

body.detail-view .chapter.visible .chapter-copy{opacity:0;visibility:hidden;pointer-events:none}body.detail-view .chapter-copy button,body.detail-view .chapter-copy a{pointer-events:none}
