
:root{color-scheme:dark;--ink:#e9e9df;--mute:#a9b2ad;--amber:#c6aa77;--zoom:1;--camera:1}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:#0a1010;color:var(--ink);font:15px/1.5 Arial,Helvetica,sans-serif}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;color:inherit;cursor:pointer}a{color:inherit;text-decoration:none}button:focus-visible,a:focus-visible{outline:2px solid #e0c58d;outline-offset:7px}header{position:fixed;z-index:10;top:0;width:100%;display:flex;align-items:center;justify-content:space-between;padding:26px 4vw;background:linear-gradient(#080d10ad,transparent);font-size:12px;letter-spacing:.08em}.brand{font-weight:800;letter-spacing:.18em}.brand span{color:var(--amber);margin:0 12px}nav{display:flex;gap:32px}nav a{opacity:.65;padding:8px 0;border-bottom:1px solid transparent}nav a:hover,nav a[aria-current]{opacity:1;border-color:var(--amber)}#motion{background:none;border:0;font-size:10px;opacity:.7}#stage{position:fixed;inset:0;overflow:hidden}.scene{position:absolute;inset:0;opacity:0;pointer-events:none;overflow:hidden}.scene.active{pointer-events:auto}.plane{position:absolute;top:50%;left:50%;width:max(100vw,177.68vh);height:max(100vh,56.28vw);transform:translate(-50%,-50%) scale(calc(var(--camera)*var(--zoom)));transform-origin:68% 48%;transition:transform 1s cubic-bezier(.2,.75,.2,1)}.plane>img{width:100%;height:100%;object-fit:cover;display:block}.scene:after{content:'';position:absolute;inset:0;pointer-events:none;background:linear-gradient(0deg,#030809dd,transparent 35%,transparent 80%,#050b0d30)}.sky-title{position:absolute;top:11%;left:10%;width:80%;text-align:center;text-shadow:0 3px 18px #0d15172b}.sky-title>span{font-size:10px;letter-spacing:.36em;opacity:.7}.sky-title h1{font-size:clamp(90px,14.8vw,260px);line-height:1;margin:20px 0 12px;font-weight:800;letter-spacing:.12em;color:#d3dcdbd6}.sky-title p{font-size:13px;letter-spacing:.12em;opacity:.8}.intro,.caption{position:absolute;z-index:2;left:6vw;bottom:14vh;max-width:410px;text-shadow:0 2px 15px #000}.eyebrow{color:var(--amber);font-size:10px;letter-spacing:.2em}h2{font-size:clamp(30px,3.3vw,56px);line-height:1.07;letter-spacing:-.04em;font-weight:500;margin:18px 0}.caption p{max-width:300px;color:#c7ceca;font-size:13px}.caption button,.enter{display:inline-block;background:none;border:0;border-bottom:1px solid #a89c78;color:#ebe5d4;padding:12px 0;font-size:12px;text-align:left}.enter{min-width:210px;display:flex;justify-content:space-between}.caption .quiet{display:block;border:0;color:#9ca8a3;font-size:11px}.world-label{position:absolute;background:#c9c1a9e6;color:#282d29;border:0;box-shadow:1px 3px 10px #0008;padding:22px 25px;transform:rotate(-2deg);width:15%;min-height:22%;text-align:left;display:flex;flex-direction:column;justify-content:space-between;gap:15px}.world-label:before,.note:before{content:'';position:absolute;top:6px;left:49%;width:7px;height:7px;border-radius:50%;background:#55452d;box-shadow:1px 2px 3px #0009}.world-label:hover{filter:brightness(1.12);transform:rotate(0deg)}.world-label strong{font-size:clamp(14px,1.4vw,24px);line-height:1.1;letter-spacing:-.03em}.world-label span{font-size:11px}.world-label .paper-id{font-size:9px;letter-spacing:.13em;border-bottom:1px solid #5557;padding-bottom:10px}.gate-label{left:62%;top:33%}.radio-label{left:63%;top:31%}.pinned{position:absolute;left:49%;top:35%;width:39%;display:flex;gap:4%;align-items:center}.note{position:relative;color:#292d28;background:#c6bea4;border:0;width:30%;padding:25px 15px 20px;min-height:170px;box-shadow:1px 4px 8px #0009;font-size:20px;line-height:1.3;transform:rotate(-3deg);text-align:left}.note:nth-child(2){transform:rotate(3deg);background:#b8b8a2}.note:nth-child(3){transform:rotate(-1deg);background:#c4b59b}.note small,.note span{display:block;font-size:9px;letter-spacing:.12em;margin-bottom:17px}.note span{margin-top:16px;margin-bottom:0}.note:hover{transform:translateY(-7px) rotate(0deg)}.shelf-label{position:absolute;left:75%;top:38%;width:17%;padding:20px;background:#171c1cdd;border:1px solid #88796185;text-align:left;box-shadow:0 6px 12px #0008}.shelf-label strong{font-size:24px;display:block;line-height:1.1;margin:14px 0}.shelf-label span{font-size:10px;letter-spacing:.08em;color:#ccb68d}#scroll-route{height:650vh;pointer-events:none}footer{position:fixed;z-index:9;bottom:0;display:flex;align-items:center;gap:24px;width:100%;padding:24px 4vw;font-size:9px;letter-spacing:.16em;background:linear-gradient(transparent,#080d10b3)}footer>a{font-size:24px}.route-line{height:1px;background:#65746e55;flex:1}.route-line i{display:block;height:1px;width:0;background:var(--amber)}#location{min-width:165px}#mode-label{font-size:8px;color:#a2aaa4}.scroll-cue{position:fixed;bottom:88px;right:4vw;font-size:8px;letter-spacing:.15em;writing-mode:vertical-rl;color:#acb4ae;pointer-events:none}.scroll-cue span{font-size:24px;margin-top:10px}dialog{padding:0;border:0;color:var(--ink);background:transparent;max-width:none;max-height:none}dialog::backdrop{background:#08101488;backdrop-filter:blur(3px)}#board{width:min(1080px,90vw);height:min(750px,86vh);overflow:visible}.board-shell{height:100%;overflow:auto;background:linear-gradient(140deg,#36382fee,#181f1df5),url('assets/03_council.jpg') center/cover;border:12px solid #302f24;outline:1px solid #7a78624d;box-shadow:0 30px 100px #000a;padding:28px 44px;scrollbar-color:#8c8067 #252b25}.board-top{display:flex;justify-content:space-between;gap:20px;font-size:9px;letter-spacing:.15em;color:#b4ae96}.board-top button{background:none;border:0;color:#d9dacb;font-size:11px}.board-shell h2{font-size:43px}.board-shell p{color:#bbc3b7;max-width:660px}.demo-tag{display:inline-block;font-size:9px;letter-spacing:.1em;background:#b3a07524;color:#d2bd8e;padding:5px 9px}.tabs{display:flex;gap:8px;flex-wrap:wrap;margin:24px 0}.tabs button{background:none;border:1px solid #76816b45;padding:9px 15px;font-size:12px}.tabs button.selected{background:#c9bea2;color:#222a22;border-color:#c9bea2}.paper{background:#d0c7ad;color:#2a3029;box-shadow:2px 5px 15px #0006;padding:25px 30px;margin:22px 0;max-width:760px;transform:rotate(-.5deg)}.paper p{color:#41483b;line-height:1.75}.paper h3{font-size:24px;font-weight:500;margin:0 0 12px}.paper small{font-size:10px;letter-spacing:.1em}.paper ul{padding-left:18px;line-height:1.8}.paper button{background:#333d30;color:#eee8d5;border:0;padding:10px 18px;font-size:12px}.vote-list{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin-top:26px}.vote-list .paper{margin:0;padding:23px 18px;display:flex;flex-direction:column;gap:16px}.vote-list h3{font-size:20px;flex:1}.vote-list button[disabled]{opacity:.65;cursor:default}.vote-count{font:30px Georgia,serif}.vote-list small{font-size:9px}.proposal{display:flex;gap:10px;flex-wrap:wrap;margin-top:22px}textarea{width:100%;min-height:100px;resize:vertical;background:#111b16;color:#e3e5d6;border:1px solid #788270;padding:15px;font:inherit}.proposal button{padding:10px 18px;background:#c9bea2;color:#232a22;border:0}.catalog{display:grid;grid-template-columns:1fr 1.4fr;align-items:center;gap:35px;margin-top:25px}.crate{height:240px;border:10px solid #3b4033;box-shadow:inset 0 0 0 1px #9995,inset 0 0 35px #0008,0 18px 15px #0004;background:repeating-linear-gradient(0deg,#454b3c,#454b3c 48px,#292f25 49px,#292f25 51px);display:grid;place-items:center}.crate span{color:#c1b89d99;font-size:48px;letter-spacing:.1em;font-weight:800}.catalog h3{font-size:28px;line-height:1.15}.catalog p{font-size:14px}.catalog button{padding:9px 15px;background:none;border:1px solid #a3aa8a70}.catalog .counter{margin:0 17px;font-size:12px}#cinema{width:min(1200px,96vw);background:#080b0c;padding:15px}#cinema video{display:block;width:100%;max-height:77vh}#cinema button{float:right;border:0;background:none;padding:8px}#cinema p{font-size:11px;color:#a0aaa3;margin:12px}#toast{position:fixed;z-index:30;left:50%;bottom:75px;transform:translateX(-50%);background:#d0c7ad;color:#263024;padding:12px 22px;opacity:0;pointer-events:none;transition:opacity .2s;max-width:90vw;font-size:13px}#toast.show{opacity:1}.focused .scene.active .plane{--zoom:1.36}.focused .caption{opacity:0}.reduced .plane{transition:none!important;--camera:1!important}.reduced{scroll-behavior:auto}.reduced *{scroll-behavior:auto!important}
@media(max-width:700px){header{padding:20px 5vw;flex-wrap:wrap;gap:15px}.brand{font-size:11px}nav{order:3;width:100%;justify-content:space-between;gap:15px;font-size:11px}#motion{font-size:9px}.plane{transform:translate(calc(var(--anchor)*-1%),-50%) scale(calc(var(--camera)*var(--zoom)))}.sky-title{top:21%;left:0;width:100%}.sky-title h1{font-size:clamp(42px,16vw,70px);letter-spacing:.06em}.sky-title>span{font-size:7px;letter-spacing:.14em}.sky-title p{font-size:10px}.intro,.caption{left:6vw;bottom:16vh;max-width:85vw}.caption h2{font-size:32px}.caption p{font-size:12px;max-width:270px}.world-label{width:13%;padding:18px;top:31%;min-height:170px}.world-label strong{font-size:16px}.world-label span{font-size:10px}.pinned{top:29%}.note{font-size:19px;min-height:150px}.shelf-label{left:65%;top:29%;width:18%}.shelf-label strong{font-size:22px}.scroll-cue{display:none}footer{gap:12px;padding:20px 5vw}#mode-label{display:none}#location{min-width:125px;font-size:8px}.board-shell{padding:20px 17px;border-width:6px}#board{width:96vw;height:86dvh}.board-shell h2{font-size:31px}.board-top{gap:8px}.board-top>span{font-size:8px}.board-top button{font-size:10px}.paper{padding:20px}.vote-list{grid-template-columns:1fr}.vote-list .paper{gap:8px}.vote-count{font-size:22px}.catalog{grid-template-columns:1fr;gap:10px}.crate{height:130px}.catalog h3{font-size:24px}.tabs button{padding:8px 10px;font-size:11px}#cinema p{font-size:10px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.plane{transition:none}}



.reset-demo{background:none;border:1px solid #9d9f8470;padding:8px 12px;color:#babda8;font-size:11px}
.board-top{position:sticky;top:0;z-index:3;background:#252c25f5;padding:10px 0;box-shadow:0 5px 12px #252c2599}

/* One continuous film; only interface labels fade at stops. */
html{scrollbar-gutter:stable}#scroll-route{height:500vh}
#travel,#route-poster{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;pointer-events:none}
#route-poster[hidden]{display:none}.scene{z-index:1}.scene:after{background:linear-gradient(0deg,#030809c9,transparent 38%,transparent 82%,#050b0d20)}
.plane,.focused .scene.active .plane{top:0;left:0;width:100%;height:100%;transform:none;transition:none;pointer-events:none}
.hotspot{position:absolute;display:flex;align-items:center;gap:12px;transform:translate(-50%,-50%);background:transparent;border:0;padding:12px;color:#e5e1d4;pointer-events:auto;text-shadow:0 2px 6px #000;font-size:9px;letter-spacing:.14em}
.hotspot i{display:grid;place-items:center;border:1px solid #dddbba99;border-radius:50%;width:35px;height:35px;background:#101a1699;font-size:21px;font-style:normal}.hotspot span{background:#101a1688;padding:7px}.hotspot:hover i{background:#79775dbb}
.gate-label{left:28%;top:43%}.radio-label{left:53%;top:43%}.council-label{left:24%;top:43%}.shadow-label{left:76%;top:52%}
.sky-title{top:13%;pointer-events:none}.sky-title h1{font-size:clamp(72px,12vw,200px)}
.scene:not(.active) .hotspot{pointer-events:none}.focused .hotspot{opacity:0}.scroll-cue{transition:opacity .3s}
@media(max-width:700px){#scroll-route{height:500svh}.plane{transform:none}.hotspot{display:none}.sky-title{top:25%;left:5%;width:90%}.sky-title h1{font-size:16vw}.sky-title>span{font-size:7px}.intro,.caption{bottom:15svh}.caption h2{font-size:32px}.caption p{max-width:270px}#travel,#route-poster{object-position:50% 50%}}

/* Section navigation: no page scrubbing, play the flight between fixed stops. */
html,body{height:100%;overflow:hidden;overscroll-behavior:none}#scroll-route{display:none}
#return-flight{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;pointer-events:none;visibility:hidden}
.section-arrows{display:flex;gap:12px}.section-arrows button{border:1px solid #b9b29460;background:#10181588;width:34px;height:34px;font-size:20px}.section-arrows button:disabled{opacity:.25;cursor:default}
@media(max-width:700px){.section-arrows{gap:6px}.section-arrows button{width:32px;height:32px}footer{gap:10px}}

html{scrollbar-gutter:auto}
/* Idle atmosphere stays below controls and never intercepts input. */
#atmosphere{position:absolute;inset:0;width:100%;height:100%;z-index:0;pointer-events:none}
#atmosphere[hidden]{display:none}
@media(prefers-reduced-motion:reduce){#atmosphere{display:none}}
/* V5: blend only the boundary between approved film and enhanced still. */
#travel,#return-flight{z-index:0}
#arrival-frame{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:1;pointer-events:none}
#arrival-frame[hidden]{display:none}
#route-poster{z-index:2;transition:opacity 340ms ease-in-out}
#atmosphere{z-index:3;transition:opacity 240ms ease-in}
.scene{z-index:4}
.reduced #route-poster{transition:none!important}
