:root {
  --red:#ed3d36; --blue:#1479be; --yellow:#f2b91b; --green:#2b9a66; --purple:#7653a6; --line-black:#282828;
  --ink:#141414; --paper:#eee9dc; --metal:#b8b7b0; --night:#090b0d;
}
*{box-sizing:border-box}
[aria-hidden="true"],[aria-hidden="true"] *{pointer-events:none!important}
[hidden]{display:none!important}
html,body{height:100%;margin:0;background:#050505;color:#171717;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;overflow:hidden}
button,a{font:inherit}
button{color:inherit}
.noise{position:fixed;inset:0;z-index:99;pointer-events:none;opacity:.075;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.5'/%3E%3C/svg%3E");animation:grain .18s steps(2) infinite}
.prologue{position:fixed;z-index:70;inset:0;color:#eee;display:flex;align-items:flex-end;padding:6vw;transition:opacity 1.2s,transform 1.2s;overflow:hidden;background:#07090a}.prologue::before{content:"";position:absolute;inset:-5%;background:url('assets/world-london-1863-v1.png') 50% 48%/cover no-repeat;filter:saturate(.6) contrast(1.2) brightness(.58);animation:prologueCinema 20s ease-in-out infinite alternate}.prologue::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,#020303e8 0 25%,#0002 70%),linear-gradient(0deg,#020303e8,transparent 65%)}.prologue.departed{opacity:0;transform:scale(1.04);pointer-events:none}.prologue>div{position:relative;z-index:2;width:min(780px,92%);border-left:1px solid #d6b84d;padding:1.5vw 3vw;text-shadow:0 3px 18px #000}.prologue p,.prologue small{font:9px monospace;letter-spacing:3px;color:#d6b84d}.prologue h1{font:clamp(45px,8vw,110px)/.82 Georgia,serif;font-weight:400;letter-spacing:-5px;margin:18px 0}.prologue blockquote{font:italic clamp(16px,2vw,25px)/1.5 Georgia,serif;max-width:650px;margin:22px 0}.prologue button{border:1px solid #aaa;background:#ebe5d6;color:#111;padding:13px 18px;margin:0 8px 14px 0;font:9px monospace;letter-spacing:1.5px;cursor:pointer}.prologue button+button{background:#0005;color:#eee;backdrop-filter:blur(4px)}.prologue button:hover{background:#d6b84d;color:#111}@keyframes prologueCinema{0%{transform:scale(1.04) translate(0,0)}100%{transform:scale(1.18) translate(-2.5%,1.5%)}}
@keyframes grain{0%{transform:translate(0)}25%{transform:translate(-2%,2%)}50%{transform:translate(2%,-1%)}75%{transform:translate(1%,2%)}100%{transform:translate(-1%,-2%)}}
.train{height:100%;display:grid;grid-template-rows:74px 1fr 28px;background:linear-gradient(90deg,#777,#d6d4ca 8%,#aaa 50%,#ddd 92%,#727272);animation:sway 3.8s ease-in-out infinite;transform-origin:50% 100%}
@keyframes sway{0%,100%{transform:rotate(-.08deg) translateY(0)}50%{transform:rotate(.08deg) translateY(1px)}}
.car-top{display:grid;grid-template-columns:210px 1fr 160px;align-items:center;background:#17191a;color:#f2f0e8;border-bottom:5px solid #373a3a;box-shadow:0 4px 15px #0008;z-index:20}
.brand{height:100%;border:0;background:#050505;color:#fff;padding:9px 18px;text-align:left;cursor:pointer}.brand span{display:block;font-size:25px;line-height:.9;font-weight:900;letter-spacing:-1.5px}.brand small{font-size:8px;letter-spacing:1.8px;color:#aaa}
.route-readout{justify-self:center;display:flex;gap:13px;align-items:center;font-family:monospace;letter-spacing:1.6px;font-size:12px}.route-badge{display:grid;place-items:center;width:33px;height:33px;border-radius:50%;background:var(--blue);font:800 19px Arial;color:#fff;box-shadow:inset 0 0 0 2px #fff}.token-count{border-left:1px solid #666;padding-left:12px;color:#f2b91b}
.sound-tools{height:100%;display:grid;grid-template-columns:1fr 42px}.sound-button,.mix-button{height:100%;border:0;border-left:1px solid #444;background:#0e0f10;color:#ccc;cursor:pointer;font:11px monospace;letter-spacing:1px}.sound-button:hover,.sound-button[aria-pressed="true"],.mix-button:hover{background:#2e713d;color:#fff}.sound-icon{margin-right:7px}.mix-button{font-size:8px;padding:0}
.carriage{position:relative;overflow:hidden;background:linear-gradient(#9b9c97 0 3%,#d4d0c4 3% 79%,#fff 79%);perspective:1000px}
.map-frame{position:absolute;z-index:6;left:5%;right:5%;top:4%;height:74%;padding:16px 20px 13px;background:#e9e5d9;border:9px solid #5c5a54;box-shadow:0 8px 17px #1118,inset 0 0 25px #7d766a55;transition:transform .6s ease,opacity .4s}
.map-header{height:70px;display:flex;justify-content:space-between;align-items:start;border-bottom:2px solid #111;padding-bottom:8px}.map-header h1{font-size:clamp(22px,3vw,40px);margin:1px 0;letter-spacing:-2px}.map-kicker,.map-instruction{font:9px monospace;letter-spacing:1.5px;margin:0}.map-instruction{margin-top:12px;max-width:170px;text-align:right}.legacy-archive{display:block;margin-top:9px;color:#111;font:700 7px/1.2 monospace;letter-spacing:1.4px;text-decoration:none;text-underline-offset:3px}.legacy-archive:hover,.legacy-archive:focus-visible{text-decoration:underline}.noscript-message{position:fixed;z-index:200;inset:0;display:grid;place-content:center;margin:0;padding:12vw;background:#090a0a;color:#eee;font:20px/1.6 Georgia,serif;text-align:center}.noscript-message a{color:#e3c347}
.system-map{height:calc(100% - 70px);position:relative}.map-lines{position:absolute;inset:0;width:100%;height:100%;overflow:visible}.track{fill:none;stroke-width:16;stroke-linecap:round;stroke-linejoin:round;vector-effect:non-scaling-stroke}.track-red{stroke:var(--red)}.track-blue{stroke:var(--blue)}.track-yellow{stroke:var(--yellow)}.track-green{stroke:var(--green)}.track-purple{stroke:var(--purple)}.track-black{stroke:var(--line-black)}.track-transfer{stroke:#918b7e;stroke-width:5;stroke-dasharray:8 8}
.ghost-train{stroke:#fff;stroke-width:3}.red-train{fill:#611}.blue-train{fill:#014b78}
.station{--station-color:#111;position:absolute;left:var(--x);top:var(--y);width:1px;height:1px;border:0;background:transparent;cursor:pointer;display:block;z-index:3;padding:0;white-space:nowrap}.station::before{content:"";position:absolute;left:0;top:0;width:44px;height:44px;transform:translate(-50%,-50%)}.station i{position:absolute;left:0;top:0;width:16px;height:16px;transform:translate(-50%,-50%);border-radius:50%;background:#f5f0e3;border:4px solid var(--station-color);box-shadow:0 0 0 2px #f5f0e3;transition:.2s}.station span{position:absolute;left:0;top:14px;transform:translateX(-50%);background:#f0ecdf;padding:2px 4px;font-size:clamp(8px,.68vw,10px);font-weight:800}.station.label-up span{top:auto;bottom:14px}.station b{position:absolute;left:0;top:36px;transform:translateX(-50%);font-size:6px;letter-spacing:1px;background:#111;color:#fff;padding:2px 4px}.station.label-up b{top:auto;bottom:36px}.station:hover i,.station:focus-visible i{transform:translate(-50%,-50%) scale(1.5);background:#111}.station.red{--station-color:var(--red)}.station.blue{--station-color:var(--blue)}.station.yellow{--station-color:var(--yellow)}.station.green{--station-color:var(--green)}.station.purple{--station-color:var(--purple)}.station.black{--station-color:var(--line-black)}.station.transfer{--station-color:#111}
.station[data-station="future"]{opacity:.2;filter:grayscale(1);transition:.6s}.station[data-station="future"].unlocked{opacity:1;filter:none;animation:unlocked 1.2s ease-in-out infinite alternate}@keyframes unlocked{to{filter:drop-shadow(0 0 8px #2b9a66)}}
.map-legend{position:absolute;right:1%;bottom:-20px;display:flex;gap:10px;background:#ebe6d8;padding:4px;font:7px monospace}.map-legend i{display:inline-block;width:7px;height:7px;border-radius:50%}.red-dot{background:var(--red)}.blue-dot{background:var(--blue)}.yellow-dot{background:var(--yellow)}.green-dot{background:var(--green)}.purple-dot{background:var(--purple)}.black-dot{background:var(--line-black)}
.doors{position:absolute;z-index:12;inset:0;display:flex;pointer-events:none;transform:translateY(105%);transition:transform .72s cubic-bezier(.2,.8,.3,1)}.doors.active{transform:translateY(0)}.door{width:50%;background:linear-gradient(90deg,#6a6c69,#d1d2cc 14%,#a1a29e 88%,#555);border:2px solid #555;display:grid;place-items:center;position:relative}.door span{position:absolute;bottom:8%;font:10px monospace;letter-spacing:2px}.door-seam{width:7px;background:#252525}.window{width:58%;height:45%;border:14px solid #4b4d4b;background:#060707;overflow:hidden}.tunnel{width:300%;height:100%;background:repeating-linear-gradient(90deg,#050505 0 130px,#d7b434 131px 134px,#0c0d0e 135px 250px);animation:tunnel 1s linear infinite}.doors:not(.active) .tunnel{animation-play-state:paused}@keyframes tunnel{to{transform:translateX(-250px)}}
.station-world{position:absolute;z-index:8;inset:0;padding:5% 8%;background:#101315;color:#eee;opacity:0;pointer-events:none;transition:opacity .5s;overflow:hidden}.station-world.visible{opacity:1;pointer-events:auto}.platform-lights{position:absolute;inset:0;background:linear-gradient(#ecebd9 0 2%,transparent 2% 75%,#38393b 75%),repeating-linear-gradient(90deg,transparent 0 18%,#ffffff0b 18% 18.3%);animation:lightPulse 5s infinite}@keyframes lightPulse{48%{filter:brightness(1)}50%{filter:brightness(.5)}52%{filter:brightness(1)}}
.station-world.theme-newyork{background:#121414}.theme-newyork .platform-lights{background:linear-gradient(#d9d59c 0 2%,transparent 2% 75%,#282828 75%),repeating-linear-gradient(90deg,#32302b 0 12%,#171817 12% 12.4%)}.theme-newyork::after{content:"";position:absolute;inset:0;pointer-events:none;background:repeating-linear-gradient(0deg,transparent 0 3px,#0002 4px);mix-blend-mode:multiply}
.station-world.theme-paris{background:#173132}.theme-paris .platform-lights{background:linear-gradient(#f1e7c9 0 3%,transparent 3% 75%,#1b2727 75%),repeating-linear-gradient(90deg,#e7e0cb0b 0 6%,#1110 6% 6.3%)}.theme-paris .station-sign{border-color:#184d49}
.station-world.theme-moscow{background:radial-gradient(circle at 50% 0,#714e23,#1c1410 55%)}.theme-moscow .platform-lights{background:linear-gradient(#f3cf78 0 3%,transparent 3% 74%,#291b12 74%),repeating-linear-gradient(90deg,transparent 0 14%,#d9a44118 14% 15%)}.theme-moscow .station-sign{border-color:#b68a2d;box-shadow:0 0 0 3px #5f3510,0 10px 30px #000}
.station-world.theme-london{background:#18222c}.theme-london .platform-lights{background:linear-gradient(#e9e1ca 0 2%,transparent 2% 75%,#252b33 75%),repeating-linear-gradient(90deg,#183d5c44 0 11%,#eee1 11% 11.4%)}.theme-london .station-sign{border-color:#213e75}.theme-london .station-sign::before{content:"";position:absolute;width:130%;height:8px;background:#e53f3f;z-index:-1}
.station-world.theme-china{background:#0e191a}.theme-china .station-sign{border-color:#7b1515}.theme-china .station-poster img{filter:saturate(.68) contrast(1.12) brightness(.68)}
.back-map{position:relative;z-index:4;background:transparent;color:#ddd;border:1px solid #777;padding:8px 13px;font:10px monospace;letter-spacing:1px;cursor:pointer}.back-map:hover{background:#eee;color:#111}
.era-clock{position:absolute;z-index:5;right:4%;top:4%;width:112px;min-height:88px;border:1px solid #eee7;border-radius:0;background:#0808085c;color:#f0eadb;display:flex;flex-direction:column;justify-content:center;align-items:flex-start;text-align:left;padding:11px 13px;cursor:pointer;box-shadow:0 8px 30px #0006;backdrop-filter:blur(9px);transition:.3s}.era-clock:hover{background:#e9e2d5d9;color:#111;transform:translateY(-2px)}.era-clock small,.era-clock em{display:block;font:6px/1.2 monospace;letter-spacing:1.5px}.era-clock strong{display:block;font:29px/.95 Arial,sans-serif;margin:7px 0}.era-clock em{position:static;color:#d7b942;white-space:nowrap}.era-clock:hover em{color:#7a641b}
.station-sign{position:absolute;z-index:3;left:7%;top:20%;display:flex;align-items:center;gap:13px;background:#eee;color:#111;border:5px solid #111;padding:8px 20px;box-shadow:0 0 0 3px #ddd;cursor:pointer}.station-sign span{display:grid;place-items:center;border-radius:50%;width:35px;height:35px;background:var(--station-accent,var(--blue));color:#fff;font-weight:900}.station-sign strong{font-size:clamp(17px,2vw,30px);letter-spacing:-1px}.station-sign em{position:absolute;top:calc(100% + 7px);left:0;color:#ddd;font:8px monospace;letter-spacing:2px;white-space:nowrap}
.station-card{position:absolute;z-index:5;left:8%;bottom:10%;width:min(500px,48%);background:#e8e4d9;color:#161616;border-left:10px solid var(--station-accent,var(--blue));padding:18px 22px;box-shadow:10px 12px 30px #0009;transition:.7s cubic-bezier(.2,.8,.2,1)}.station-card.sealed{opacity:0;transform:translateY(40px) rotate(-2deg);pointer-events:none}.station-card h2{font-size:clamp(25px,3.3vw,48px);line-height:.91;letter-spacing:-2px;margin:6px 0 12px}.station-card p{font-family:Georgia,serif;line-height:1.4;margin:8px 0;font-size:clamp(12px,1.15vw,16px)}.station-card .station-eyebrow{font:9px monospace;letter-spacing:2px}.station-card a{display:inline-block;color:#111;font:bold 10px monospace;letter-spacing:1px;margin-top:8px;text-decoration-thickness:2px;text-underline-offset:4px}
.station-poster{position:absolute;z-index:2;right:7%;top:14%;width:36%;height:58%;padding:0;margin:0;overflow:hidden;border:11px solid #d5d2c7;background:#111;box-shadow:0 13px 25px #000b;transform:rotate(1deg);cursor:zoom-in}.station-poster img{width:100%;height:100%;object-fit:cover;filter:saturate(.8) contrast(1.1);animation:posterBreath 9s ease-in-out infinite alternate}.station-poster small{position:absolute;left:8px;bottom:7px;background:#111;color:#fff;padding:4px 7px;font:7px monospace;letter-spacing:1px}.station-poster.dreaming{z-index:6;transform:rotate(-1deg) scale(1.45) translate(-10%,4%);transition:transform 1s;filter:saturate(1.5)}.poster-reflection{position:absolute;inset:-100% 10%;background:linear-gradient(100deg,transparent 40%,#fff3 50%,transparent 60%);animation:reflection 8s ease-in-out infinite}@keyframes posterBreath{to{transform:scale(1.07) translate(-1%,1%)}}@keyframes reflection{0%,30%{transform:translateX(-180%)}70%,100%{transform:translateX(180%)}}
.waiting-people{position:absolute;z-index:14;left:0;right:0;bottom:4%;height:100px;pointer-events:none}.person{position:absolute;bottom:0;border:0;background:transparent;padding:0;filter:drop-shadow(2px 5px 3px #0005);animation:passengerSway 2.8s ease-in-out infinite;pointer-events:auto;cursor:pointer}.person:hover{filter:drop-shadow(0 0 8px #ffe28c);transform:translateY(-3px)}.person i{display:block;width:28px;height:28px;border-radius:50%;background:#34312e;margin:auto}.person b{display:block;width:60px;height:72px;border-radius:25px 25px 4px 4px;background:#292b2d}@keyframes passengerSway{50%{margin-left:2px;transform:rotate(.7deg)}}
.waiting-people{z-index:2;left:auto;right:2%;width:35%;opacity:.35}.person{transform:scale(.7)}.p1{left:10%}.p2{left:40%;transform:scale(.55)}.p3{right:5%;transform:scale(.8)}
.era-1863 .person i{border-radius:50% 50% 35% 35%}.era-1863 .person i::before{content:"";display:block;width:42px;height:9px;background:#161616;transform:translate(-7px,-2px);border-radius:50%}.era-1863 .person b{height:88px;border-radius:16px 16px 0 0;background:#1e2020}.era-1863 .p3 b{width:76px;background:#302b28}
.era-1900 .person i::before{content:"";display:block;width:44px;height:12px;background:#30251e;transform:translate(-8px,-4px);border-radius:50%}.era-1900 .person b{height:82px;background:#38433a}.era-1900 .p1 b{width:78px;border-radius:38px 38px 3px 3px}
.era-1935 .person b{height:86px;width:68px;background:#3f342a}.era-1935 .person i::before{content:"";display:block;width:34px;height:14px;background:#25211e;transform:translate(-3px,-5px);border-radius:50% 50% 20% 20%}
.era-1977 .person b{background:#6b3c25}.era-1977 .p2 b{background:#21495a}.era-1977 .person i{box-shadow:0 -7px 0 5px #28211c;border-radius:45%}
.era-2026 .person b{background:#272b31}.era-2086 .person{filter:drop-shadow(0 0 8px #57ddff);opacity:.7}.era-2086 .person b{background:linear-gradient(#203847,#07191f);clip-path:polygon(20% 0,80% 0,100% 100%,0 100%)}.era-2086 .person i{background:#a2d9df}
.floor{position:absolute;z-index:10;left:0;right:0;bottom:0;height:20%;background:#fff;transform-origin:top;transform:perspective(400px) rotateX(32deg)}.floor span{display:none}
.ticker{overflow:hidden;background:#060606;color:#e8b91d;font:11px monospace;letter-spacing:2px;display:flex;align-items:center;white-space:nowrap}.ticker div{display:inline-block;padding-left:100%;animation:ticker 27s linear infinite}@keyframes ticker{to{transform:translateX(-100%)}}
.arrival-flash{position:fixed;z-index:80;inset:0;background:#f2eedf;opacity:0;pointer-events:none}.arrival-flash.flash{animation:arrival .65s ease-out}@keyframes arrival{0%{opacity:0}18%{opacity:.9}100%{opacity:0}}
.whisper{position:fixed;z-index:230;inset:0;background:#020405a8;color:#eae5d6;display:grid;place-content:center;text-align:center;padding:8%;opacity:0;pointer-events:none;transition:opacity .35s;backdrop-filter:blur(9px) saturate(.55)}.whisper.visible{opacity:1;pointer-events:auto}.whisper>button{position:absolute;right:4%;top:4%;border:0;background:transparent;color:#fff;font-size:35px;cursor:pointer}.whisper-sheet{width:min(980px,86vw);padding:32px 42px;background:#090b0ca8;border:1px solid #eee2;box-shadow:0 25px 80px #0008}.whisper p{font:9px monospace;letter-spacing:3px;color:#e2b829}.whisper blockquote{font:italic clamp(22px,4vw,55px) Georgia,serif;max-width:900px;margin:15px auto}.whisper-continue{position:static;display:inline-block;margin-top:22px;padding:13px 18px;border:1px solid #d7bd5b;background:#0b0d0dd9;color:#e2c852;font:bold 8px ui-monospace,SFMono-Regular,Menlo,monospace;letter-spacing:2px;cursor:pointer}.whisper-continue:hover,.whisper-continue:focus-visible{background:#d7bd5b;color:#111}.whisper-actions{display:flex;justify-content:center;gap:12px;margin-top:24px}.whisper-actions button{position:static;border:1px solid #d7bd5b;background:#d7bd5be8;color:#111;padding:12px 16px;font:bold 8px monospace;letter-spacing:1.6px;cursor:pointer}.whisper-actions button+button{background:#0b0d0dbd;color:#eee}.whisper-actions button:hover{background:#fff}
.audio-drawer{position:fixed;z-index:92;right:0;top:74px;bottom:28px;width:min(340px,88vw);padding:25px;background:#111;color:#e9e2d2;border-left:6px solid #e4b828;transform:translateX(110%);transition:.45s cubic-bezier(.2,.8,.2,1);box-shadow:-12px 0 30px #0009}.audio-drawer.visible{transform:none}.audio-drawer header{display:flex;justify-content:space-between;border-bottom:1px solid #555;padding-bottom:12px;margin-bottom:28px;font:12px monospace;letter-spacing:2px}.audio-drawer header button{border:0;background:transparent;color:#fff;font-size:25px;cursor:pointer}.audio-drawer label{display:grid;gap:9px;margin:22px 0;font:9px monospace;letter-spacing:1.5px}.audio-drawer input[type="file"]{font:10px monospace;color:#aaa;border:1px dashed #777;padding:14px}.audio-drawer input[type="range"]{accent-color:#e4b828}.audio-drawer p,.audio-drawer span{font:10px/1.5 monospace;color:#888}.audio-drawer span{color:#e4b828}
.audio-drawer select{width:100%;border:1px solid #666;background:#1b1b1b;color:#eee;padding:10px;font:10px monospace}
.audio-drawer .conductor-switch{grid-template-columns:1fr auto;align-items:center;padding:12px;border:1px solid #666}.audio-drawer .conductor-switch input{width:17px;height:17px;accent-color:#e4b828}
.audio-drawer .field-recording-note{display:grid;gap:7px;margin:26px 0;padding:14px;border:1px solid #7776;border-left:3px solid #e4b828;background:#05060666}.audio-drawer .field-recording-note b{font:9px monospace;letter-spacing:1.4px;color:#e4b828}.audio-drawer .field-recording-note span{color:#aaa}.audio-drawer .field-recording-note small{font:6px/1.5 monospace;letter-spacing:1px;color:#666}

/* Destination worlds deliberately break the carriage frame. */
.station-world{--px:0px;--py:0px;padding:0;background:#050505;isolation:isolate}
.station-world::before{content:attr(data-word);position:absolute;z-index:4;left:-1vw;top:54%;width:100%;overflow:hidden;color:#fff;font:900 clamp(70px,15vw,220px)/.72 Arial,sans-serif;letter-spacing:-.09em;white-space:nowrap;mix-blend-mode:overlay;opacity:.42;pointer-events:none;transform:translate(calc(var(--px) * -.35),calc(var(--py) * -.35));transition:transform .18s ease-out}
.station-world .station-poster{position:absolute;z-index:1;inset:-3%;width:106%;height:106%;border:0;box-shadow:none;transform:translate(var(--px),var(--py));transition:transform .2s ease-out;cursor:crosshair}
.station-world .station-poster img{filter:saturate(.72) contrast(1.18) brightness(.72);animation:worldBreath 14s ease-in-out infinite alternate}
@keyframes worldBreath{0%{transform:scale(1.025) translate(0,0)}32%{transform:scale(1.09) translate(-1.8%,-.7%)}68%{transform:scale(1.14) translate(1.2%,1.1%)}100%{transform:scale(1.19) translate(-2.4%,.4%)}}
.station-world .platform-lights{z-index:2;pointer-events:none;background:linear-gradient(90deg,#000b 0 22%,transparent 55%,#0004),linear-gradient(0deg,#000b,transparent 48%,#0006);mix-blend-mode:multiply}
.station-world.theme-newyork .platform-lights,.station-world.theme-paris .platform-lights,.station-world.theme-moscow .platform-lights,.station-world.theme-london .platform-lights{background:linear-gradient(90deg,#000d 0 16%,transparent 55%,#0006),linear-gradient(0deg,#000c,transparent 55%,#0005)}
.station-world.theme-paris .station-poster img{filter:sepia(.2) saturate(.72) contrast(1.08) brightness(.68)}
.station-world.theme-moscow .station-poster img{filter:sepia(.35) saturate(1.1) contrast(1.18) brightness(.67)}
.station-world.theme-london .station-poster img{filter:saturate(.55) hue-rotate(8deg) contrast(1.15) brightness(.68)}
.station-world .back-map{position:absolute;z-index:8;left:3%;top:4%;background:#08080877;backdrop-filter:blur(5px)}
.station-world .era-clock{z-index:8;right:3%;top:4%}
.station-world .station-sign{z-index:7;left:4%;top:19%;background:#eee9;backdrop-filter:blur(8px);transform:rotate(-1deg);box-shadow:0 8px 35px #0009}
.station-world .station-card{z-index:8;left:4%;bottom:5%;width:min(560px,45%);background:#e8e2d9e8;backdrop-filter:blur(12px);transform:rotate(.4deg)}
.station-world .station-card.sealed{transform:translateY(50px) rotate(-3deg)}
.station-world .station-poster small{left:auto;right:4%;bottom:5%;background:#0009;padding:8px 10px}
.station-world .station-poster.dreaming{z-index:1;transform:scale(1.04) translate(calc(var(--px) * -1),calc(var(--py) * -1));filter:saturate(1.6)}
.station-world .waiting-people{display:none}
.station-world .person{filter:drop-shadow(0 10px 15px #000)}
.world-hotspots{position:absolute;z-index:9;inset:0;pointer-events:none}.world-hotspot{--hx:50%;--hy:50%;position:absolute;left:var(--hx);top:var(--hy);width:30px;height:30px;transform:translate(-50%,-50%);border:0;border-radius:50%;background:#fff0;box-shadow:0 0 0 1px #fff0;pointer-events:auto;cursor:pointer;transition:.25s}.world-hotspot::before{content:"";position:absolute;inset:12px;border-radius:50%;background:#e7c45d;box-shadow:0 0 11px #e7c45d;opacity:.35;animation:hotspotPulse 2.8s ease-in-out infinite}.world-hotspot::after{content:attr(data-label);position:absolute;left:50%;top:100%;transform:translate(-50%,8px);background:#080808d9;color:#fff;padding:5px 7px;white-space:nowrap;font:7px monospace;letter-spacing:1.5px;opacity:0;transition:.2s}.world-hotspot:hover,.world-hotspot:focus-visible{box-shadow:0 0 0 1px #fff8;background:#fff1}.world-hotspot:hover::after,.world-hotspot:focus-visible::after{opacity:1}.world-hotspot:hover::before{opacity:1;transform:scale(1.5)}@keyframes hotspotPulse{50%{opacity:.8;transform:scale(1.35)}}
.world-hotspot.follow::before{background:#a21918;box-shadow:0 0 12px #ff3b34}.world-hotspot.sound::before{background:#45a8bd;box-shadow:0 0 12px #45a8bd}
.world-hotspot.film::before{inset:10px;background:transparent;border:1px solid #f4df94;box-shadow:0 0 14px #f4df94;animation-duration:4.2s}.world-hotspot.film::after{color:#f4df94;border:1px solid #f4df9466}
.wave-overlay{position:absolute;z-index:5;inset:-8%;width:116%;height:116%;object-fit:cover;pointer-events:none;mix-blend-mode:screen;filter:grayscale(1) contrast(1.8) brightness(.72) blur(.6px);opacity:0;transition:opacity 1.5s}.station-world.visible .wave-flow{opacity:.10}body[data-track="illusion"] .station-world.visible .wave-flow{opacity:0}body[data-track="illusion"] .station-world.visible .wave-scan{opacity:.19}body[data-track="philosophy"] .station-world.visible .wave-flow,body[data-track="mellow"] .station-world.visible .wave-flow{opacity:.16}body[data-track="ancient"] .station-world.visible .wave-flow{opacity:.07;filter:grayscale(1) contrast(2.2) blur(1.5px)}
.disturbance{position:fixed;z-index:110;inset:0;background:#000;opacity:0;pointer-events:none;transition:opacity .7s;display:grid;place-items:center}.disturbance.visible{opacity:1;pointer-events:auto}.disturbance video{width:100%;height:100%;object-fit:cover;filter:grayscale(1) contrast(1.35) brightness(.72)}.disturbance::after{content:"";position:absolute;inset:0;pointer-events:none;background:repeating-linear-gradient(0deg,transparent 0 3px,#0004 4px),radial-gradient(circle,transparent 25%,#000b)}.disturbance button{position:absolute;z-index:2;right:3%;top:4%;border:1px solid #aaa;background:#0009;color:#eee;padding:10px 14px;font:9px monospace;letter-spacing:2px;cursor:pointer}
.vision-room{position:fixed;z-index:108;inset:0;background:#020303;color:#f1ecdd;opacity:0;pointer-events:none;transition:opacity .65s;overflow:hidden}.vision-room.visible{opacity:1;pointer-events:auto}.vision-room video{position:absolute;inset:-3%;width:106%;height:106%;object-fit:cover;filter:saturate(.72) contrast(1.15) brightness(.78);animation:visionDrift 16s ease-in-out infinite alternate}.vision-shade{position:absolute;inset:0;background:linear-gradient(90deg,#000d 0 19%,transparent 58%),linear-gradient(0deg,#000d,transparent 45%),repeating-linear-gradient(0deg,transparent 0 3px,#0002 4px);pointer-events:none}.vision-room header{position:absolute;z-index:2;left:5%;top:7%;max-width:min(760px,70vw)}.vision-room header p{font:8px monospace;letter-spacing:3px;color:#e1bd45}.vision-room h2{font:400 clamp(42px,8vw,118px)/.78 Georgia,serif;letter-spacing:-.055em;margin:16px 0;text-shadow:0 5px 30px #000}.vision-room blockquote{position:absolute;z-index:2;left:5%;bottom:7%;max-width:620px;margin:0;font:italic clamp(16px,2vw,25px)/1.4 Georgia,serif;text-shadow:0 3px 15px #000}.vision-room>button{position:absolute;z-index:3;right:3%;top:4%;border:1px solid #aaa;background:#0009;color:#eee;padding:11px 15px;font:8px monospace;letter-spacing:2px;cursor:pointer}.vision-index{position:absolute;z-index:2;right:4%;bottom:6%;display:grid;grid-template-columns:auto 90px;align-items:center;gap:10px;font-family:monospace}.vision-index span{font-size:30px}.vision-index i{height:1px;background:#e1bd45}.vision-index small{grid-column:1/3;text-align:right;letter-spacing:2px;color:#e1bd45}@keyframes visionDrift{to{transform:scale(1.045) translate(-.8%,.5%)}}
.reading-car{position:fixed;z-index:115;inset:0;background:#080a0a;color:#eee;transform:translateX(105%);transition:transform .7s cubic-bezier(.2,.8,.2,1);display:grid;grid-template-rows:78px 1fr}.reading-car.visible{transform:none}.reading-car header{display:grid;grid-template-columns:190px 1fr 150px;align-items:center;background:#0b0c0c;color:#eee;border-bottom:5px solid #d9b729;box-shadow:0 7px 26px #000;z-index:2}.reading-car header button,.reading-car header a{height:100%;display:grid;place-items:center;border:0;background:#d9b729;color:#111;text-decoration:none;font:8px monospace;letter-spacing:1.5px;cursor:pointer}.reading-car header div{padding:0 24px;min-width:0}.reading-car header small,.reading-car header strong{display:block}.reading-car header small{color:#d9b729;font:7px monospace;letter-spacing:2px}.reading-car header strong{margin-top:4px;font:18px/1 Georgia,serif;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.reading-car header a{background:#252525;color:#bbb}.reading-car iframe{width:100%;height:100%;border:0;background:#080a0a}
.prologue-film{position:absolute;z-index:0;inset:-4%;width:108%;height:108%;object-fit:cover;filter:grayscale(1) contrast(1.18) brightness(.62);animation:prologueCinema 20s ease-in-out infinite alternate}.prologue::after{z-index:1}.prologue>div{z-index:2}
.station-atmosphere{position:absolute;z-index:1;inset:-5%;width:110%;height:110%;object-fit:cover;opacity:0;pointer-events:none;filter:saturate(.55) contrast(1.3) brightness(.62);mix-blend-mode:screen;transition:opacity 2s;animation:atmosphereDrift 18s ease-in-out infinite alternate}.station-world.has-atmosphere .station-atmosphere{opacity:.48}.station-world.has-atmosphere .station-poster{opacity:.72;mix-blend-mode:multiply}@keyframes atmosphereDrift{to{transform:scale(1.08) translate(-1.2%,.6%)}}
.station-memory{position:absolute;z-index:2;inset:-4%;width:108%;height:108%;object-fit:cover;object-position:62% 42%;opacity:0;pointer-events:none;filter:grayscale(.38) contrast(1.25) brightness(.58);mix-blend-mode:screen;transform:scale(1.03);transition:opacity 2.6s ease;animation:memoryFocus 17s ease-in-out infinite alternate}.station-memory.remembering{opacity:.32}@keyframes memoryFocus{to{transform:scale(1.2) translate(-3%,1%);object-position:42% 38%}}
.vision-room.with-sound::before{content:"ORIGINAL FILM SOUND";position:absolute;z-index:3;right:4%;top:10%;color:#e1bd45;font:7px monospace;letter-spacing:2px}
.vision-room.framed{background:radial-gradient(circle at 62% 50%,#221d19,#030404 58%)}.vision-room.framed video{inset:6% 35% 6% auto;width:30%;height:88%;object-fit:contain;animation:none;filter:saturate(.78) contrast(1.05) brightness(.82);box-shadow:0 0 0 1px #e1bd4566,0 30px 90px #000}.vision-room.framed .vision-shade{background:linear-gradient(90deg,#020303 0 32%,transparent 58%,#0008),radial-gradient(circle at 64% 50%,transparent 20%,#0009 72%)}.vision-room.framed header{max-width:32vw}.vision-room.framed blockquote{max-width:28vw}
.voice-chamber{position:fixed;z-index:114;inset:0;background:#050505;color:#eee;opacity:0;pointer-events:none;transition:opacity .7s;overflow:hidden}.voice-chamber.visible{opacity:1;pointer-events:auto}.voice-chamber>img{position:absolute;inset:-2%;width:104%;height:104%;object-fit:cover;object-position:50% 32%;filter:grayscale(.35) sepia(.15) contrast(1.2) brightness(.62);animation:philosopherFace 42s ease-out both}.voice-dark{position:absolute;inset:0;background:linear-gradient(90deg,#020303ed 0 28%,transparent 66%),linear-gradient(0deg,#000c,transparent 55%)}.voice-chamber section{position:absolute;z-index:2;left:5%;top:9%;width:min(610px,42vw)}.voice-chamber section>p,.voice-chamber section>span{font:8px monospace;letter-spacing:3px;color:#d6b843}.voice-chamber h2{font:400 clamp(48px,8vw,120px)/.78 Georgia,serif;letter-spacing:-.055em;margin:20px 0}.voice-chamber blockquote{margin:0;font:italic clamp(16px,2vw,25px)/1.45 Georgia,serif}.voice-chamber section>span{display:block;margin-top:24px;color:#aaa}.voice-chamber>button{position:absolute;z-index:3;right:3%;top:4%;border:1px solid #aaa;background:#0009;color:#eee;padding:11px 15px;font:8px monospace;letter-spacing:2px;cursor:pointer}@keyframes philosopherFace{0%{transform:scale(1);object-position:50% 32%}100%{transform:scale(1.08) translate(1%,0);object-position:52% 32%}}
.voice-chamber[data-voice="pythagoras"]>img{inset:0;width:100%;height:100%;animation:none;object-fit:cover;object-position:50% 50%;transform:none}
.world-hotspot.voice::before{inset:9px;background:#5f3c91;border:1px solid #d9baff;box-shadow:0 0 15px #9c6ee9}.world-hotspot.voice::after{color:#e5d7ff;border:1px solid #9c6ee966}
.journey-transition{position:absolute;z-index:11;inset:0;background:#020303;opacity:0;pointer-events:none;transition:opacity .18s;overflow:hidden}.journey-transition.active{opacity:1}.journey-transition video{width:100%;height:100%;object-fit:cover;filter:grayscale(.8) contrast(1.35) brightness(.55);animation:journeyZoom 2.2s ease-out both}.journey-transition>div{position:absolute;inset:0;background:radial-gradient(circle,transparent 15%,#000d),repeating-linear-gradient(0deg,transparent 0 3px,#0003 4px)}.journey-transition p{position:absolute;z-index:2;left:5%;bottom:7%;margin:0;color:#eee}.journey-transition small,.journey-transition em{display:block;font:7px monospace;letter-spacing:3px;color:#d7b942}.journey-transition strong{display:block;margin:8px 0;font:400 clamp(32px,6vw,82px)/.85 Georgia,serif;letter-spacing:-.04em}.journey-transition em{color:#aaa}@keyframes journeyZoom{from{transform:scale(1)}to{transform:scale(1.16) translate(-1%,.5%)}}
/* Photographic doors replace the former CSS loader illustration. */
.doors{z-index:16;transform:none;background:#020303;overflow:hidden}.doors.active{transform:none}.door{width:50%;border:0;background-image:url('assets/subway-doors-photographic-v1.png');background-repeat:no-repeat;background-size:200% 100%;transition:transform .72s cubic-bezier(.72,0,.24,1);will-change:transform}.door-left{background-position:left center;transform:translateX(-101%)}.door-right{background-position:right center;transform:translateX(101%)}.doors.active .door{transform:translateX(0)}.doors .window,.doors .door span{display:none}.door-seam{position:absolute;z-index:2;left:calc(50% - 3px);top:0;bottom:0;width:6px;background:#090909;opacity:0;transition:opacity .25s}.doors.active .door-seam{opacity:1}.doors::after{content:"";position:absolute;inset:0;pointer-events:none;background:radial-gradient(circle,transparent 45%,#0008);opacity:0;transition:opacity .5s}.doors.active::after{opacity:1}
.station-world.visible{z-index:13}.doors.active{z-index:16}.station-world.visible~.passengers,.station-world.visible~.floor{opacity:0;pointer-events:none;transition:opacity .5s}
.station-world.visible::before{animation:wordArrival 1.7s cubic-bezier(.2,.8,.2,1) both}
@keyframes wordArrival{from{opacity:0;letter-spacing:.3em;transform:translateX(30vw) scale(.7)}to{opacity:.42;letter-spacing:-.09em}}
body.traveling .map-frame{transform:scale(.92);opacity:.2}
@media(max-width:720px){.train{grid-template-rows:62px 1fr 24px}.car-top{grid-template-columns:120px 1fr 72px}.brand{padding:6px 10px}.brand span{font-size:18px}.brand small{font-size:5px}.route-readout{font-size:8px;gap:6px}.route-badge{width:26px;height:26px;font-size:14px}.token-count{display:none}.sound-label,.mix-button{display:none}.sound-tools{display:block}.map-frame{left:2%;right:2%;top:3%;height:72%;padding:10px;border-width:5px;overflow-x:auto;overflow-y:hidden;overscroll-behavior-x:contain;scrollbar-color:#1479be #d4d0c4}.map-header{height:52px;width:980px}.map-header h1{letter-spacing:-1px}.map-instruction{display:block;position:sticky;right:10px;margin-left:auto}.map-instruction::first-line{font-size:0}.map-instruction::before{content:'SWIPE THE MAP →';font-size:7px}.map-instruction .legacy-archive{display:none}.system-map{height:calc(100% - 52px);width:980px;min-width:980px}.station span{font-size:7px;max-width:80px;white-space:normal;text-align:center}.philosophy-stop span{white-space:nowrap;max-width:none}.station i{width:12px;height:12px;border-width:3px}.map-legend{display:none}.track{stroke-width:22}.passenger-c{display:none}.station-world{padding:4%}.station-sign{left:4%;top:10%;padding:5px 10px}.era-clock{width:108px;height:48px;padding:6px 8px}.era-clock strong{font-size:20px}.station-card{left:4%;bottom:8%;width:92%;padding:13px 16px}.station-poster{right:4%;top:20%;width:68%;height:42%;opacity:.75}.station-card h2{font-size:28px}.station-card p{font-size:12px}.window{width:76%}.audio-drawer{top:62px;bottom:24px}.reading-car{grid-template-rows:64px 1fr}.reading-car header{grid-template-columns:120px 1fr}.reading-car header a{display:none}.reading-car header div{padding:0 12px}.reading-car header strong{font-size:13px}}
@media(max-width:720px),(pointer:coarse){.train{animation:none}.station{min-width:44px;min-height:44px;touch-action:manipulation}.station i,.station span,.station b{pointer-events:none}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:.001ms!important;animation-iteration-count:1!important;scroll-behavior:auto!important}}
@media(max-width:720px){.vision-room.framed video{inset:16% 10% auto;width:80%;height:58%}.vision-room.framed header{max-width:80vw}.vision-room.framed h2{font-size:38px}.vision-room.framed blockquote{left:8%;bottom:5%;max-width:84vw;font-size:15px}.vision-index{display:none}.prologue{padding:7vw 5vw}.prologue>div{width:100%;padding:5vw}.prologue h1{letter-spacing:-2px}}

/* Final legibility and layering overrides. */
.doors{background:transparent}
.station{white-space:normal}.station span{width:max-content;max-width:145px;white-space:normal;text-align:center;line-height:1.05;box-shadow:0 2px 8px #eee8}.philosophy-stop span{white-space:nowrap;max-width:none}
.audio-drawer{width:min(315px,86vw);background:#090b0dcc;backdrop-filter:blur(18px) saturate(.7);border-left-color:#e4b828aa;box-shadow:-16px 0 45px #0008}.audio-drawer select,.audio-drawer input[type="file"]{background:#0a0b0bbb}
.document-actions{display:flex;flex-wrap:wrap;gap:9px 18px;margin-top:12px}.document-actions a{margin-top:0}.document-actions button{border:0;border-bottom:2px solid #111;background:transparent;padding:0 0 3px;color:#111;font:bold 10px monospace;letter-spacing:1px;cursor:pointer}.document-actions button:hover,.station-card a:hover{color:var(--station-accent)}
.vision-actions{position:absolute;z-index:3;right:4%;bottom:6%;width:min(330px,34vw);padding:16px 18px;background:#e9e3d7e8;color:#111;border-left:7px solid #e1bd45;backdrop-filter:blur(12px);box-shadow:0 12px 35px #000a}.vision-actions small,.vision-actions strong{display:block}.vision-actions small{font:7px monospace;letter-spacing:2px}.vision-actions strong{font:20px/1.05 Georgia,serif;margin:7px 0 13px}.vision-actions button{display:block;width:100%;border:0;border-top:1px solid #888;background:transparent;padding:8px 0;text-align:left;font:bold 8px monospace;letter-spacing:1.4px;cursor:pointer}.vision-actions button:hover{color:#8e6e00}
@media(max-width:720px){.whisper-sheet{padding:24px 18px}.whisper-actions{flex-direction:column}.era-clock{width:96px;min-height:76px}.era-clock strong{font-size:24px}.station-memory.remembering{opacity:.22}.vision-actions{left:5%;right:5%;bottom:4%;width:auto}}

/* One visual identity: documentary cards, never novelty-shaped signs. */
.station-world .station-sign,.station-world.theme-paris .station-sign,.station-world.theme-moscow .station-sign,.station-world.theme-london .station-sign,.station-world.theme-china .station-sign{border-radius:0;padding:9px 18px;border:1px solid #eee7;border-left:8px solid var(--station-accent);background:#090b0cb8;color:#f2eee3;box-shadow:0 14px 42px #000b;backdrop-filter:blur(12px);transform:none}
.station-world .station-sign::before{display:none}.station-world .station-sign span{border-radius:0;width:31px;height:31px}.station-world .station-sign strong{letter-spacing:-.04em}.station-world.has-atmosphere .station-atmosphere{opacity:.68}.station-world.has-atmosphere .station-poster{opacity:.54}
.reading-car header{grid-template-columns:190px 1fr auto auto}.reading-car header div{padding-right:36px}.reading-car header>button:last-child{border:0;border-left:1px solid #555;background:#111;color:#d9bd4d;padding:0 20px;font:7px monospace;letter-spacing:1.5px;cursor:pointer}.reading-car header>button:last-child:hover{background:#d9bd4d;color:#111}.reading-car iframe{overscroll-behavior:contain}

.collection-car{position:fixed;z-index:113;inset:0;background:#050606;color:#eee;transform:translateY(105%);transition:transform .8s cubic-bezier(.2,.8,.2,1);display:grid;grid-template-rows:auto 1fr 30px;overflow:hidden}.collection-car.visible{transform:none}.collection-car::before{content:"";position:absolute;inset:0;background:linear-gradient(90deg,#000b,transparent 50%,#0008),url('assets/world-london-1863-v1.png') center/cover;opacity:.3;filter:grayscale(1);pointer-events:none}.collection-car header{position:relative;z-index:2;display:flex;justify-content:space-between;align-items:end;padding:25px 4% 18px;border-bottom:1px solid #aaa5;background:#070808a8;backdrop-filter:blur(12px)}.collection-car header small{font:7px monospace;letter-spacing:3px;color:#d6b83f}.collection-car h2{font:400 clamp(35px,6vw,78px)/.8 Georgia,serif;margin:8px 0 4px;letter-spacing:-.05em}.collection-car header p{margin:0;font:italic 15px Georgia,serif;color:#aaa}.collection-car header button{border:1px solid #aaa;background:#090a0acc;color:#eee;padding:11px 14px;font:8px monospace;letter-spacing:2px;cursor:pointer}.collection-track{position:relative;z-index:2;display:grid;grid-auto-flow:column;grid-auto-columns:minmax(245px,26vw);gap:14px;overflow-x:auto;overflow-y:hidden;padding:22px 4% 28px;scroll-snap-type:x mandatory}.collection-card{position:relative;scroll-snap-align:start;min-height:100%;overflow:hidden;border:1px solid #ddd4;border-left:7px solid #d6b83f;background:#111;color:#eee;padding:0;text-align:left;cursor:pointer;box-shadow:0 16px 45px #000a}.collection-card video,.collection-card::before{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;filter:grayscale(.55) contrast(1.2) brightness(.52);transition:transform 1.2s,filter .6s}.collection-card.still::before{content:"";background:var(--card-image) center/cover}.collection-card::after{content:"";position:absolute;inset:0;background:linear-gradient(0deg,#040505f5 0 28%,transparent 75%)}.collection-card span,.collection-card strong,.collection-card em{position:absolute;z-index:2;left:18px;right:16px}.collection-card span{top:18px;font:7px monospace;letter-spacing:2.5px;color:#e0c454}.collection-card strong{bottom:54px;font:400 clamp(23px,2.4vw,38px)/.88 Georgia,serif;letter-spacing:-.035em}.collection-card em{bottom:22px;font:8px monospace;letter-spacing:1.3px;color:#aaa}.collection-card:hover video,.collection-card:hover::before{transform:scale(1.1);filter:grayscale(.1) contrast(1.15) brightness(.72)}.collection-car footer{position:relative;z-index:2;padding:7px 4%;background:#d6b83f;color:#111;font:7px monospace;letter-spacing:2px}.collection-track::-webkit-scrollbar{height:7px}.collection-track::-webkit-scrollbar-thumb{background:#d6b83f}.collection-track::-webkit-scrollbar-track{background:#181818}
@media(max-width:720px){.collection-car header{align-items:start}.collection-car header p{display:none}.collection-car h2{font-size:38px}.collection-track{grid-auto-columns:78vw}.collection-card strong{font-size:30px}}

/* Clues remain mysterious, but their breathing rings are readable. */
.world-hotspot{width:46px;height:46px}.world-hotspot::before{inset:17px;opacity:.62;animation:hotspotBeacon 3.1s ease-out infinite}.world-hotspot::after{top:82%}.world-hotspot:hover::before,.world-hotspot:focus-visible::before{opacity:1;animation-duration:1.45s}@keyframes hotspotBeacon{0%{transform:scale(.55);box-shadow:0 0 0 0 #e7c45daa,0 0 8px #e7c45d;opacity:.8}65%{transform:scale(1.35);box-shadow:0 0 0 14px #e7c45d22,0 0 0 27px #e7c45d0a,0 0 15px #e7c45d;opacity:.5}100%{transform:scale(1.55);box-shadow:0 0 0 22px #e7c45d00,0 0 0 38px #e7c45d00;opacity:.18}}

.conductor-button{border:1px solid #777;background:#090a0a88;color:#d6bc55;padding:7px 9px;font:7px monospace;letter-spacing:1.3px;cursor:pointer}.conductor{position:fixed;z-index:118;inset:0;background:#030404;color:#eee;opacity:0;pointer-events:none;transition:opacity .65s;overflow:hidden}.conductor.visible{opacity:1;pointer-events:auto}.conductor>video{position:absolute;inset:-4%;width:108%;height:108%;object-fit:cover;filter:grayscale(1) contrast(1.3) brightness(.44);animation:conductorDrift 24s ease-in-out infinite alternate}.conductor-shade{position:absolute;inset:0;background:linear-gradient(90deg,#020303ed 0 38%,#0005),linear-gradient(0deg,#000d,transparent 60%)}.conductor section{position:relative;z-index:2;width:min(1080px,90vw);margin:5vh auto}.conductor section>small{font:7px monospace;letter-spacing:3px;color:#d9bd4d}.conductor h2{max-width:850px;margin:14px 0 30px;font:400 clamp(40px,6.5vw,92px)/.86 Georgia,serif;letter-spacing:-.055em}.intent-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:#aaa4;border:1px solid #aaa4}.intent-grid button{min-height:112px;border:0;background:#080a0bc7;color:#eee;padding:16px;text-align:left;cursor:pointer;backdrop-filter:blur(10px);transition:.25s}.intent-grid b,.intent-grid strong,.intent-grid em{display:block}.intent-grid b{font:7px monospace;color:#d9bd4d}.intent-grid strong{margin:10px 0 6px;font:16px Arial,sans-serif}.intent-grid em{font:italic 12px Georgia,serif;color:#999}.intent-grid button:hover{background:#d9bd4de8;color:#111;transform:translateY(-4px)}.intent-grid button:hover em{color:#333}.conductor>button{position:absolute;z-index:3;right:3%;top:4%;border:1px solid #aaa;background:#050606bb;color:#eee;padding:10px 13px;font:7px monospace;letter-spacing:2px;cursor:pointer}@keyframes conductorDrift{to{transform:scale(1.12) translate(-2%,1%)}}
.vision-actions{top:44%;bottom:auto;background:#080a0bc7;color:#eee;border:1px solid #ddd4;border-left:7px solid #e1bd45;backdrop-filter:blur(14px);opacity:0;transform:translateY(18px);animation:decisionArrives .8s 1.2s ease forwards}.vision-actions button{color:#eee;border-top-color:#777}.vision-actions button:hover{color:#e1bd45}@keyframes decisionArrives{to{opacity:1;transform:none}}
.now-playing{position:fixed;z-index:130;right:18px;bottom:38px;display:grid;grid-template-columns:31px minmax(155px,1fr) auto auto auto;align-items:center;width:min(490px,calc(100vw - 36px));min-height:48px;background:#070909c4;color:#eee;border:1px solid #aaa5;border-left:6px solid #d9bd4d;box-shadow:0 10px 35px #0009;backdrop-filter:blur(14px);opacity:0;pointer-events:none;transform:translateY(15px);transition:.45s}.boarded .now-playing{opacity:1;pointer-events:auto;transform:none}.now-playing>i{display:flex;align-items:end;justify-content:center;gap:2px;height:21px}.now-playing>i span{width:2px;background:#d9bd4d;animation:meter .8s ease-in-out infinite alternate}.now-playing>i span:nth-child(1){height:30%;animation-delay:-.2s}.now-playing>i span:nth-child(2){height:80%;animation-delay:-.5s}.now-playing>i span:nth-child(3){height:48%;animation-delay:-.1s}.now-playing>i span:nth-child(4){height:100%;animation-delay:-.7s}.now-playing div{min-width:0;padding:6px 10px}.now-playing small,.now-playing strong{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.now-playing small{font:6px monospace;letter-spacing:1.4px;color:#aaa}.now-playing strong{margin-top:4px;font:10px monospace;letter-spacing:1px}.now-playing button{align-self:stretch;border:0;border-left:1px solid #555;background:transparent;color:#ccc;padding:0 9px;font:7px monospace;letter-spacing:1px;cursor:pointer}.now-playing button:hover{background:#d9bd4d;color:#111}@keyframes meter{to{height:15%}}.audio-drawer{z-index:132}
@media(max-width:720px){.conductor section{margin:3vh auto}.conductor h2{font-size:42px;margin-bottom:18px}.intent-grid{grid-template-columns:1fr 1fr}.intent-grid button{min-height:92px;padding:12px}.intent-grid em{display:none}.conductor-button{display:none}.now-playing{right:8px;bottom:29px;width:calc(100vw - 16px);grid-template-columns:28px 1fr auto auto}.now-playing #nowAsk{display:none}}

.voice-actions{display:flex;flex-wrap:wrap;gap:1px;margin-top:22px;background:#aaa4;border:1px solid #aaa4}.voice-actions button{flex:1 1 150px;border:0;background:#090a0ac7;color:#eee;padding:11px 12px;text-align:left;font:7px monospace;letter-spacing:1.4px;cursor:pointer}.voice-actions button:hover{background:#d6b843;color:#111}.station-world[data-station="stories"] .station-sign{top:9%}
.voice-mix{display:grid;grid-template-columns:1fr 1fr;gap:1px;margin-top:16px;border:1px solid #aaa4;background:#aaa4}.voice-mix label{display:grid;grid-template-columns:auto 1fr 42px;align-items:center;gap:10px;padding:9px 11px;background:#080a0acc;color:#d6b843;font:7px ui-monospace,SFMono-Regular,Menlo,monospace;letter-spacing:1.7px}.voice-mix input{width:100%;accent-color:#d6b843;cursor:pointer}.voice-mix output{color:#eee;text-align:right;letter-spacing:.5px}@media(max-width:720px){.voice-mix{grid-template-columns:1fr}}
.voice-mix .voice-progress{grid-column:1/-1;grid-template-columns:auto minmax(90px,1fr) 78px}.voice-progress output{white-space:nowrap}
.voice-decision{position:absolute;z-index:5;left:50%;top:50%;width:min(760px,86vw);transform:translate(-50%,-48%);padding:26px;background:#070909e8;color:#eee;border:1px solid #ddd6;border-left:7px solid #d9bd4d;box-shadow:0 28px 90px #000;backdrop-filter:blur(18px)}.voice-decision[hidden]{display:none}.voice-decision small{font:7px monospace;letter-spacing:3px;color:#d9bd4d}.voice-decision h3{margin:12px 0 22px;font:400 clamp(30px,4vw,55px)/.92 Georgia,serif;letter-spacing:-.04em}.voice-decision>div{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:#7776}.voice-decision>div button{min-height:105px;border:0;background:#101212;color:#eee;padding:15px;text-align:left;font:8px monospace;letter-spacing:1.2px;cursor:pointer}.voice-decision>div button span{display:block;margin-top:9px;color:#999;font:italic 12px/1.3 Georgia,serif;letter-spacing:0}.voice-decision>div button:hover{background:#d9bd4d;color:#111}.voice-decision>div button:hover span{color:#333}.voice-decision>button{margin-top:14px;border:1px solid #777;background:transparent;color:#aaa;padding:9px 11px;font:7px monospace;letter-spacing:1.4px;cursor:pointer}@media(max-width:720px){.voice-decision>div{grid-template-columns:1fr}.voice-decision>div button{min-height:67px}.voice-decision>div button span{display:none}}
.now-playing{left:50%;right:auto;top:82px;bottom:auto;grid-template-columns:31px minmax(155px,1fr) auto auto auto auto;width:min(530px,calc(100vw - 36px));transform:translate(-50%,-14px)}
.boarded .now-playing{transform:translate(-50%,0)}
@media(max-width:720px){.now-playing{left:50%;right:auto;top:68px;bottom:auto;width:calc(100vw - 16px);grid-template-columns:28px 1fr auto auto auto}.boarded .now-playing{transform:translate(-50%,0)}.now-playing #nowAsk{display:none}}
@media(max-width:720px){.reading-car{grid-template-rows:96px 1fr}.reading-car header{grid-template-columns:110px 1fr;grid-template-rows:64px 32px}.reading-car #readerThink{grid-column:1;grid-row:2}.reading-car header>button:last-child{grid-column:2;grid-row:2;border-left:1px solid #555;border-top:1px solid #555;padding:0 10px}.reading-car header div{padding-right:10px}}

/* The reading carriage stays dark before and during document navigation. */
#readerFrame{background:#080a0a!important;color-scheme:dark}
.reading-car:has(.reader-downloads a:not([hidden])){grid-template-rows:72px 38px 1fr}
.reader-downloads{display:flex;justify-content:flex-end;gap:1px;background:#101212;border-bottom:1px solid #4a4d49;min-height:0}
.reader-downloads:has(a:not([hidden])){min-height:38px}
.reader-downloads a{display:flex;align-items:center;padding:0 18px;background:#1a1d1c;color:#d9bd4d;text-decoration:none;font:700 8px/1 monospace;letter-spacing:1.5px;border-left:1px solid #4a4d49}
.reader-downloads a:hover{background:#d9bd4d;color:#111}
@media(max-width:720px){.reading-car:has(.reader-downloads a:not([hidden])){grid-template-rows:94px 38px 1fr}.reader-downloads{justify-content:stretch}.reader-downloads a{flex:1;justify-content:center;padding:0 8px;font-size:7px}}

/* Persistent sound controls belong below the story, never across its title. */
.now-playing{left:50%;right:auto;top:auto;bottom:34px;transform:translate(-50%,15px)}
.boarded .now-playing{transform:translate(-50%,0)}
.now-playing>i,.now-playing>div{cursor:grab;user-select:none;touch-action:none}.now-playing.dragging{transition:none}.now-playing.dragging>i,.now-playing.dragging>div{cursor:grabbing}.now-playing.user-placed,.boarded .now-playing.user-placed{right:auto;bottom:auto;transform:none}
.now-playing .now-timeline{grid-column:1/-1;grid-row:2;display:grid;grid-template-columns:minmax(80px,1fr) 76px;align-items:center;gap:9px;width:100%;padding:4px 9px 6px;border-top:1px solid #555;background:#090b0bd9;cursor:default;touch-action:auto}.now-timeline input{width:100%;margin:0;accent-color:#d9bd4d;cursor:pointer}.now-timeline output{color:#ddd;text-align:right;white-space:nowrap;font:7px ui-monospace,SFMono-Regular,Menlo,monospace;letter-spacing:.5px}.now-playing>i,.now-playing>.now-meta,.now-playing>button{grid-row:1}
@media(max-width:720px){.now-playing{left:50%;right:auto;top:auto;bottom:28px}.boarded .now-playing{transform:translate(-50%,0)}}

/* The opening behaves like a changing transmission, not a fixed splash page. */
.prologue-film,.prologue-still{transition:opacity 1.5s ease,filter 1.5s ease}.prologue-still{position:absolute;z-index:0;inset:-4%;width:108%;height:108%;object-fit:cover;opacity:0;filter:grayscale(1) sepia(.08) contrast(1.2) brightness(.54);animation:prologueCinema 20s ease-in-out infinite alternate}.prologue.show-still .prologue-film{opacity:0}.prologue.show-still .prologue-still{opacity:1}.prologue>div{transition:opacity .65s ease,transform .65s ease}.prologue.scene-changing>div{opacity:0;transform:translateY(12px)}
@media(prefers-reduced-motion:reduce){.prologue-film,.prologue-still,.prologue>div{transition:none;animation:none}}

/* Moving images contain explorable evidence before they become exits. */
.vision-clues{position:absolute;z-index:3;inset:0;pointer-events:none}.vision-clues button{--cx:17%;--cy:51%;position:absolute;left:var(--cx);top:var(--cy);width:54px;height:54px;transform:translate(-50%,-50%);border:0;background:transparent;color:#eee;cursor:pointer;pointer-events:auto}.vision-clues button:nth-child(2){--cx:42%;--cy:57%}.vision-clues button:nth-child(3){--cx:66%;--cy:35%}.vision-clues i{position:absolute;inset:18px;border-radius:50%;background:#d9bd4d;box-shadow:0 0 0 8px #d9bd4d22,0 0 0 19px #d9bd4d0c;animation:filmClue 3.4s ease-out infinite}.vision-clues span{position:absolute;left:50%;top:58px;min-width:105px;transform:translateX(-50%);padding:5px 7px;background:#050707c9;border:1px solid #7777;color:#ddd;font:6px ui-monospace,SFMono-Regular,Menlo,monospace;letter-spacing:1.7px;opacity:0;transition:.3s}.vision-clues button:hover span,.vision-clues button:focus-visible span{opacity:1}.vision-clues button.collected i{background:#2b9a66;box-shadow:0 0 0 8px #2b9a6630}.vision-clues button.collected span::after{content:' / KEPT';color:#6ec99b}@keyframes filmClue{0%{transform:scale(.6);opacity:.9}72%{transform:scale(1.35);box-shadow:0 0 0 17px #d9bd4d08,0 0 0 30px transparent;opacity:.55}100%{transform:scale(.72);opacity:.8}}
.vision-evidence{position:absolute;z-index:5;left:50%;top:55%;width:min(590px,82vw);transform:translate(-50%,-50%);padding:25px 28px;background:#070909d9;color:#eee;border:1px solid #ddd5;border-left:7px solid #d9bd4d;box-shadow:0 30px 90px #000;backdrop-filter:blur(18px) saturate(.7)}.vision-evidence>button:first-child{position:absolute;right:9px;top:7px;border:0;background:transparent;color:#aaa;font:22px Arial;cursor:pointer}.vision-evidence small{font:7px monospace;letter-spacing:2.5px;color:#d9bd4d}.vision-evidence h3{margin:12px 30px 14px 0;font:400 clamp(28px,4vw,52px)/.92 Georgia,serif;letter-spacing:-.04em}.vision-evidence p{margin:0 0 22px;color:#c9c6bd;font:italic 17px/1.45 Georgia,serif}.vision-evidence #keepVisionEvidence{border:1px solid #d9bd4d;background:transparent;color:#d9bd4d;padding:10px 13px;font:7px monospace;letter-spacing:1.6px;cursor:pointer}.vision-evidence #keepVisionEvidence:hover{background:#d9bd4d;color:#111}@media(max-width:720px){.vision-clues button{--cx:14%;--cy:43%}.vision-clues button:nth-child(2){--cx:43%;--cy:47%}.vision-clues button:nth-child(3){--cx:70%;--cy:38%}.vision-evidence{top:52%;padding:21px}}

.lesson-chamber{position:fixed;z-index:142;inset:0;background:#040505;color:#eee;opacity:0;pointer-events:none;transition:opacity .55s;overflow:hidden}.lesson-chamber.visible{opacity:1;pointer-events:auto}.lesson-chamber>img{position:absolute;inset:-5%;width:110%;height:110%;object-fit:cover;filter:grayscale(.7) contrast(1.25) brightness(.28);animation:lessonDrift 28s ease-in-out infinite alternate}.lesson-dark{position:absolute;inset:0;background:linear-gradient(90deg,#020303f2 0 48%,#0005 82%),linear-gradient(0deg,#000e,transparent 65%),repeating-linear-gradient(0deg,transparent 0 3px,#0002 4px)}.lesson-chamber section{position:relative;z-index:2;width:min(900px,84vw);margin:9vh 0 0 7vw}.lesson-chamber section>small,.lesson-chamber section>p{font:7px monospace;letter-spacing:3px;color:#d9bd4d}.lesson-chamber blockquote{max-width:820px;margin:7vh 0 3vh;font:italic clamp(27px,4.3vw,67px)/1.02 Georgia,serif;letter-spacing:-.035em}.lesson-chamber h2{max-width:760px;margin:0 0 4vh;font:400 clamp(18px,2.2vw,31px)/1.3 Georgia,serif;color:#c9c5bc}.lesson-actions{display:grid;grid-template-columns:repeat(3,minmax(150px,1fr));max-width:860px;gap:1px;background:#aaa4;border:1px solid #aaa4}.lesson-actions button{min-height:52px;border:0;background:#090a0acc;color:#eee;padding:10px 13px;text-align:left;font:7px monospace;letter-spacing:1.4px;cursor:pointer}.lesson-actions button:hover{background:#d9bd4d;color:#111}.lesson-chamber>button{position:absolute;z-index:3;right:3%;top:4%;border:1px solid #aaa;background:#050606bb;color:#eee;padding:11px 14px;font:7px monospace;letter-spacing:2px;cursor:pointer}@keyframes lessonDrift{to{transform:scale(1.12) translate(2%,-1%)}}
@media(max-width:720px){.lesson-chamber section{width:90vw;margin:11vh auto 0}.lesson-chamber blockquote{margin-top:6vh;font-size:35px}.lesson-chamber h2{font-size:18px}.lesson-actions{grid-template-columns:1fr}.lesson-actions button{min-height:39px}.lesson-chamber>button{right:5%;top:2%}}
.lesson-chamber>video{position:absolute;inset:-5%;width:110%;height:110%;object-fit:cover;filter:grayscale(.7) contrast(1.25) brightness(.28);animation:lessonDrift 28s ease-in-out infinite alternate}

.platform-fragment{position:absolute;z-index:18;left:50%;top:70px;width:min(500px,58vw);padding:16px 18px 13px;background:#080a0bd6;color:#eee;border:1px solid #ddd5;border-top:6px solid var(--station-accent);box-shadow:0 18px 50px #000c;backdrop-filter:blur(15px);opacity:0;pointer-events:none;transform:translate(-50%,-12px);transition:.55s}.platform-fragment.visible{opacity:1;pointer-events:auto;transform:translate(-50%,0)}.platform-fragment>button{position:absolute;right:7px;top:6px;border:0;background:transparent;color:#aaa;font:18px Arial;cursor:pointer}.platform-fragment small,.platform-fragment>p{display:block;font:6px monospace;letter-spacing:2px;color:#d9bd4d}.platform-fragment blockquote{margin:10px 20px 10px 0;font:italic 16px/1.25 Georgia,serif}.platform-fragment>p{margin:0 0 10px;color:#777;letter-spacing:1.2px}.platform-fragment>div{display:flex;gap:1px;background:#7776}.platform-fragment>div button{flex:1;border:0;background:#101212;color:#eee;padding:7px 8px;text-align:left;font:7px monospace;letter-spacing:1.2px;cursor:pointer}.platform-fragment>div button:hover{background:#d9bd4d;color:#111}
@media(max-width:720px){.platform-fragment{top:62px;width:88vw;padding:13px 14px 11px}.platform-fragment blockquote{font-size:14px}.platform-fragment>p{display:none}}

/* Reading remains inside the scene as a scrollable smoked-glass drawer. */
.reading-car{inset:5vh 2vw 5vh auto;width:min(850px,76vw);height:90vh;grid-template-rows:72px 1fr;background:#080a0ae8;border:1px solid #7777;border-top:6px solid #d9b729;box-shadow:0 25px 90px #000;backdrop-filter:blur(16px);transform:translateX(calc(100% + 4vw));overflow:hidden}.reading-car.visible{transform:none}.reading-car header{grid-template-columns:155px minmax(150px,1fr) auto auto;border-bottom:1px solid #555;background:#090b0bea;box-shadow:none}.reading-car iframe{background:#101212!important;color-scheme:dark}

/* Compact decisions stay on one line; the six Conductor choices use a balanced 3 × 2 grid. */
.whisper-controls{display:flex;align-items:stretch;justify-content:center;gap:10px;max-width:100%;margin-top:24px;overflow-x:auto}.whisper-actions:not([hidden]){display:contents}.whisper-controls .whisper-continue,.whisper-controls .whisper-actions button{flex:0 0 auto;margin:0;white-space:nowrap}.intent-grid{grid-template-columns:repeat(3,minmax(0,1fr));grid-auto-flow:row;overflow:hidden}.intent-grid button{min-height:112px}

/* The station plaque may be moved when it blocks the scene. */
.station-sign{touch-action:none}.station-sign.dragging{cursor:grabbing!important}.station-sign.user-placed{right:auto;bottom:auto;transform:none!important}
.token-count{border:0;background:transparent;cursor:pointer}.token-count:hover,.token-count:focus-visible{color:#fff;text-shadow:0 0 12px #f2b91b}
@media(max-width:720px){.reading-car{inset:2vh 2vw;width:96vw;height:96vh;grid-template-rows:94px 1fr}.reading-car header{grid-template-columns:105px 1fr;grid-template-rows:60px 34px}.whisper-controls{justify-content:flex-start}.intent-grid{grid-template-columns:1fr 1fr}}

/* Keep station clues visible and clickable beneath the document summary. */
.station-world .station-card{width:min(430px,34%);background:#090b0cae;color:#f2eee3;border:1px solid #eee6;border-left:8px solid var(--station-accent);box-shadow:0 14px 48px #000c;pointer-events:none}
.station-world .station-card h2{font-size:clamp(24px,2.7vw,39px)}
.station-world .station-card .station-eyebrow,.station-world .station-card p{color:#e5dfd2}
.station-world .station-card .document-actions,.station-world .station-card .document-actions *{pointer-events:auto}
.station-world .station-card a,.station-world .station-card .document-actions button{color:#f2eee3;border-color:#f2eee3}

/* Header, optional downloads, then the document: never allocate the document row to an empty toolbar. */
.reading-car{grid-template-rows:72px 0 minmax(0,1fr)}
.reading-car:has(.reader-downloads a:not([hidden])){grid-template-rows:72px 38px minmax(0,1fr)}
.reader-downloads{overflow:hidden}
@media(max-width:720px){.station-world .station-card{left:3%;bottom:4%;width:62%;padding:12px 14px}.station-world .station-card h2{font-size:24px}.station-world .station-card>p:not(.station-eyebrow){display:none}.reading-car{grid-template-rows:94px 0 minmax(0,1fr)}.reading-car:has(.reader-downloads a:not([hidden])){grid-template-rows:94px 38px minmax(0,1fr)}}

/* The large voice decision card can be moved away from the portrait and remembers its position. */
.voice-decision small,.voice-decision h3{cursor:grab;user-select:none;touch-action:none}.voice-decision.dragging small,.voice-decision.dragging h3{cursor:grabbing}.voice-decision.user-placed{transform:none}

/* Film titles yield more of the image; film decisions can be moved out of the way. */
.vision-room h2{font-size:clamp(34px,6.4vw,94px)}
.vision-actions{touch-action:none;cursor:grab}
.vision-actions.dragging{cursor:grabbing}
.vision-actions.user-placed{right:auto;bottom:auto;transform:none;animation:none;opacity:1}
.vision-actions button{touch-action:auto}

/* Clues stay mysterious at rest and become legible when approached. */
.vision-clues button{transition:transform .28s ease;transform-origin:center}
.vision-clues button:hover,.vision-clues button:focus-visible{z-index:4;transform:translate(-50%,-50%) scale(1.35)}
.vision-clues button:hover span,.vision-clues button:focus-visible span{min-width:112px;padding:6px 8px;background:#050707e8;border-color:#aaa8;color:#fff;font-size:7px}
@media(max-width:720px){.vision-room h2{font-size:clamp(30px,10vw,58px)}}

body.opening-journey .train{position:relative;z-index:80}body.opening-journey .doors{pointer-events:auto;cursor:wait}.door-status{position:absolute;z-index:5;left:50%;top:50%;width:min(510px,78vw);margin:0;padding:18px 22px;transform:translate(-50%,-50%);background:#070909d9;color:#eee;border:1px solid #bbb6;border-left:7px solid #d9bd4d;box-shadow:0 18px 60px #000d;backdrop-filter:blur(12px);text-align:left;opacity:0;transition:opacity .35s;pointer-events:none}.opening-journey .doors.active .door-status{opacity:1}.door-status small,.door-status strong,.door-status em{display:block}.door-status small,.door-status em{font:7px monospace;letter-spacing:2.5px;color:#d9bd4d}.door-status strong{margin:11px 0 8px;font:400 clamp(26px,4vw,54px)/.9 Georgia,serif;letter-spacing:-.04em}.door-status em{color:#999;font-style:normal}.opening-journey .map-instruction{animation:mapInvitation 1.2s 2s ease both}@keyframes mapInvitation{from{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:none}}

/* Persistent controls must remain reachable in every carriage. */
.now-playing{z-index:190}
@media(min-width:721px){
  .collection-car.visible~.now-playing:not(.user-placed){left:auto;right:18px;top:8px;bottom:auto;transform:translateY(-14px)}
  body.boarded .collection-car.visible~.now-playing:not(.user-placed){transform:none}
}
.audio-drawer{z-index:192}

/* Portrait encounters keep their scale without swallowing the page. */
.voice-chamber h2{font-size:clamp(30px,4.4vw,66px)}

/* Every circular link becomes a readable invitation on approach. */
.world-hotspot:hover,.world-hotspot:focus-visible{z-index:20;transform:translate(-50%,-50%) scale(1.7)}
.world-hotspot:hover::after,.world-hotspot:focus-visible::after{font-size:8px;padding:7px 9px;border:1px solid #aaa8;background:#050707f0}
.vision-clues button:hover,.vision-clues button:focus-visible{z-index:20;transform:translate(-50%,-50%) scale(1.7)}
.vision-clues button:hover span,.vision-clues button:focus-visible span{min-width:125px;font-size:8px;padding:7px 9px}
.station:hover i,.station:focus-visible i{transform:scale(1.8)}

/* Conductor: a calm two-row choice board, never a horizontal carousel. */
.conductor section{width:min(900px,86vw);margin:6vh auto 0}
.conductor h2{max-width:660px;margin:12px 0 24px;font-size:clamp(34px,4.5vw,64px);line-height:.9}
.conductor .intent-grid{display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr))!important;grid-auto-flow:row!important;grid-auto-columns:auto!important;width:100%;max-width:900px;overflow:visible!important;overflow-x:hidden!important;scrollbar-width:none}
.conductor .intent-grid::-webkit-scrollbar{display:none}
.conductor .intent-grid button{min-width:0!important;min-height:104px}
.conductor .intent-grid #resumeJourney:not([hidden]){grid-column:1/-1;min-height:68px}
@media(max-width:720px){.conductor section{width:90vw;margin:4vh auto 0}.conductor h2{max-width:82vw;font-size:clamp(34px,10vw,48px);margin-bottom:18px}.conductor .intent-grid{grid-template-columns:1fr 1fr!important}.conductor .intent-grid button{min-height:88px}.conductor .intent-grid #resumeJourney:not([hidden]){grid-column:1/-1}}

/* Closed stations begin as damaged marks; evidence restores the map before it restores service. */
.station.lost-station{--station-color:#8e792f;z-index:2;opacity:.24;filter:grayscale(1);transition:opacity .5s,filter .5s}.station.lost-station i{border-radius:0;transform:rotate(45deg);background:#111;border-style:dashed}.station.lost-station span{background:#111;color:#c8c3b4;border:1px dashed #777;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-weight:500;letter-spacing:1px}.station.lost-station b{background:#111;color:#877c58;border:1px dashed #655}.station.lost-station.traced{opacity:.62;filter:grayscale(.45)}.station.lost-station.unlocked{opacity:1;filter:none;z-index:5;animation:lostStationSignal 1.7s ease-in-out infinite alternate}.station.lost-station.unlocked i{background:#d6b843;border-style:solid;box-shadow:0 0 0 3px #111,0 0 22px #d6b843}.station.lost-station.unlocked span{color:#f1ead5;border-style:solid}.station.lost-station:hover,.station.lost-station:focus-visible{opacity:1;filter:none}@keyframes lostStationSignal{to{filter:drop-shadow(0 0 9px #d6b843)}}

/* Catalog filters must override the card grid's explicit display rules. */
.collection-card[hidden]{display:none!important}

/* Full-episode narration transport: large enough to seek precisely in Safari and on touch screens. */
.voice-mix .voice-progress{grid-column:1/-1;display:grid;grid-template-columns:auto auto minmax(180px,1fr) auto 92px;align-items:center;gap:10px;padding:10px 11px;background:#050606e8;border-top:1px solid #7776}.voice-progress>span{font:7px ui-monospace,SFMono-Regular,Menlo,monospace;letter-spacing:1.5px;color:#d9bd4d}.voice-progress button{height:28px;border:1px solid #777;background:#111;color:#ddd;padding:0 9px;font:7px ui-monospace,SFMono-Regular,Menlo,monospace;letter-spacing:1px;cursor:pointer}.voice-progress button:hover,.voice-progress button:focus-visible{background:#d9bd4d;color:#111}.voice-progress input{width:100%;height:28px;margin:0;accent-color:#d9bd4d;cursor:pointer}.voice-progress input::-webkit-slider-runnable-track{height:7px;background:#454843;border-radius:0}.voice-progress input::-webkit-slider-thumb{margin-top:-5px;width:17px;height:17px}.voice-progress output{font:9px ui-monospace,SFMono-Regular,Menlo,monospace;letter-spacing:.3px;text-align:right;color:#fff}.voice-progress input:disabled{cursor:wait;opacity:.55}@media(max-width:720px){.voice-mix .voice-progress{grid-template-columns:auto 1fr auto}.voice-progress>span,.voice-progress output{grid-column:1/-1}.voice-progress output{grid-row:1;text-align:right}.voice-progress button{min-width:60px}.voice-progress input{min-width:0}}

/* Give the episode scrubber a full row on phones so the entire timeline remains usable. */
@media(max-width:720px){.voice-mix .voice-progress{grid-template-columns:1fr 1fr;gap:9px}.voice-progress>span{grid-column:1;grid-row:1}.voice-progress output{grid-column:2;grid-row:1;text-align:right}.voice-progress input{grid-column:1/-1;grid-row:2;width:100%;min-width:0}.voice-progress #voiceBack{grid-column:1;grid-row:3}.voice-progress #voiceForward{grid-column:2;grid-row:3}.voice-progress button{width:100%;min-width:0}}

/* The film archive is a network: related films remain visible as circular transfers. */
.vision-orbit{position:absolute;z-index:3;inset:0;pointer-events:none}.vision-orbit button{position:absolute;left:var(--ox);top:var(--oy);width:48px;height:48px;transform:translate(-50%,-50%);border:2px solid #e1bd45;border-radius:50%;background:#080a0aaa;color:#f4eddb;box-shadow:0 0 0 7px #e1bd4522,0 8px 28px #000;backdrop-filter:blur(7px);cursor:pointer;pointer-events:auto;transition:transform .2s,background .2s,box-shadow .2s}.vision-orbit button>span{font:10px ui-monospace,SFMono-Regular,Menlo,monospace;letter-spacing:1px}.vision-orbit button em{position:absolute;left:50%;top:56px;width:max-content;max-width:150px;transform:translateX(-50%);padding:4px 6px;background:#050606d9;border:1px solid #e1bd4566;color:#eee;font:normal 7px/1.2 ui-monospace,SFMono-Regular,Menlo,monospace;letter-spacing:1px;opacity:.82}.vision-orbit button:hover,.vision-orbit button:focus-visible{z-index:5;transform:translate(-50%,-50%) scale(1.22);background:#e1bd45;color:#111;box-shadow:0 0 0 10px #e1bd4533,0 10px 32px #000}.vision-orbit button:hover em,.vision-orbit button:focus-visible em{opacity:1;background:#e1bd45;color:#111}
@media(max-width:720px){.vision-orbit button{width:39px;height:39px}.vision-orbit button em{display:none}.vision-orbit button:nth-child(n+7){display:none}}
.vision-quote{position:absolute;z-index:6;left:5%;top:53%;width:min(430px,35vw);padding:15px 17px 13px;background:#080a0bd9;border:1px solid #eee4;border-left:6px solid #e1bd45;color:#f4eddb;box-shadow:0 14px 42px #000b;backdrop-filter:blur(14px);touch-action:none;cursor:grab;user-select:none}.vision-quote.dragging{cursor:grabbing}.vision-quote.user-placed{right:auto;bottom:auto}.vision-quote>small{display:block;color:#e1bd45;font:7px/1.3 ui-monospace,SFMono-Regular,Menlo,monospace;letter-spacing:2px}.vision-room .vision-quote blockquote{position:static;max-width:none;margin:10px 0 8px;font:italic clamp(15px,1.4vw,21px)/1.25 Georgia,serif;text-shadow:none}.vision-quote cite{display:block;color:#c7c2b6;font:normal 7px/1.45 ui-monospace,SFMono-Regular,Menlo,monospace;letter-spacing:1.2px;text-transform:uppercase}.vision-quote nav{display:flex;gap:8px;margin-top:11px}.vision-quote button{flex:1;border:1px solid #777;background:#111a;color:#eee;padding:8px 7px;font:7px ui-monospace,SFMono-Regular,Menlo,monospace;letter-spacing:1px;cursor:pointer}.vision-quote button:hover,.vision-quote button:focus-visible{background:#e1bd45;color:#111;border-color:#e1bd45}.vision-room.framed .vision-quote{left:5%;top:49%;width:min(390px,30vw)}
@media(max-width:720px){.vision-quote,.vision-room.framed .vision-quote{left:5%;top:45%;width:80vw;max-height:34vh;overflow:auto}.vision-room .vision-quote blockquote{font-size:15px}.vision-quote nav{flex-direction:column}.vision-quote button{padding:7px}.vision-room>blockquote#visionText{display:none}}

.story-service{display:grid;grid-template-columns:auto 1fr auto;gap:1px;margin-top:13px;background:#7778;border:1px solid #555}.story-service button,.story-service span{min-height:32px;border:0;background:#0a0c0c;color:#eee;padding:8px 10px;font:7px ui-monospace,SFMono-Regular,Menlo,monospace;letter-spacing:1.2px}.story-service button{cursor:pointer}.story-service button:hover,.story-service button:focus-visible{background:var(--station-accent);color:#fff}.story-service span{display:grid;place-items:center;color:#d9bd4d}.story-service #storyRandom,.story-service #storyAll{grid-column:span 1;border-top:1px solid #555}.story-service #storyRandom{grid-column:1/3}.story-service #storyAll{grid-column:3}
@media(max-width:720px){.story-service{grid-template-columns:1fr 1fr}.story-service span{grid-column:1/-1;grid-row:1}.story-service #storyPrevious{grid-column:1}.story-service #storyNext{grid-column:2}.story-service #storyRandom,.story-service #storyAll{grid-column:auto}.station-world[data-station="stories"] .station-card{width:72%}}

/* Tall archival photographs need person-specific crops; keep Jung's face, not his hands, in view. */
.voice-chamber[data-voice="jung"]>img{animation:none;object-position:50% 7%;transform:scale(1.55);transform-origin:50% 8%}

/* Relations stay quiet until approached; podcast transfers use their own signal color. */
.vision-orbit button em{opacity:0;pointer-events:none}
.vision-orbit button.podcast-transfer{border-color:#9c6ee9;box-shadow:0 0 0 7px #9c6ee922,0 8px 28px #000}
.vision-orbit button.podcast-transfer:hover,.vision-orbit button.podcast-transfer:focus-visible{background:#9c6ee9;color:#fff;box-shadow:0 0 0 10px #9c6ee933,0 10px 32px #000}
.vision-orbit button.podcast-transfer:hover em,.vision-orbit button.podcast-transfer:focus-visible em{opacity:1;background:#33224d;color:#fff;border-color:#9c6ee9}

/* Restrained editorial scale: preserve the cinema and give the navigation room. */
.prologue h1{font-size:clamp(42px,6vw,76px)}
.map-header h1{font-size:clamp(22px,2.4vw,34px)}
.station-world .station-card h2{font-size:clamp(22px,2.2vw,34px)}
.vision-room h2{font-size:clamp(32px,5vw,72px);line-height:.84;max-width:min(680px,62vw)}
.voice-chamber h2{font-size:clamp(30px,3.8vw,56px);line-height:.9}
.collection-car h2{font-size:clamp(32px,4.5vw,60px)}
.conductor h2{font-size:clamp(32px,4vw,54px)}
/* The guide must open above the existing thought/reading chambers. */
.collection-card[data-ref="heraclitus"]::before,.collection-card[data-ref="socrates"]::before{background-position:80% center}
.collection-card[data-ref="plato"]::before{background-position:center;background-size:100% auto;background-repeat:no-repeat}
.conductor{z-index:180;overflow-y:auto}
.conductor>img{position:fixed;inset:0;width:100%;height:100%;object-fit:cover;filter:brightness(.48)}
.conductor section{padding-top:36px;padding-bottom:110px}
.welcome-quote{margin-top:22px;padding:18px 22px;background:#080a0be8;border-left:5px solid #d9bd4d;max-width:760px}
.welcome-quote blockquote{margin:0 0 12px;font:italic 22px/1.35 Georgia,serif;color:#fffaf1}
.welcome-quote small{display:block;color:#d9bd4d;font:10px/1.5 monospace}
.welcome-quote button{margin:12px 12px 0 0;padding:10px 14px;border:1px solid #888;background:#080a0a;color:#fffaf1;cursor:pointer}
.welcome-quote button:hover,.welcome-quote button:focus-visible{background:#d9bd4d;color:#080808}
body:has(.conductor.visible) .reading-car.visible{z-index:181}
@media(max-width:720px){.conductor section{padding-top:48px}.welcome-quote blockquote{font-size:18px}.conductor .intent-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}}
/* Phone arrival: keep the artwork atmospheric while making every choice readable and tappable. */
@media(max-width:720px){
  .route-readout #routeReadout{display:none}
  .route-readout .conductor-button{display:block;padding:7px 8px;white-space:nowrap;font-size:6px;letter-spacing:.8px}
  .conductor-shade{background:linear-gradient(180deg,#020303f5 0,#020303e8 64%,#020303fa 100%)}
  .conductor>button{position:fixed;top:12px;right:12px;padding:10px 11px;background:#050606f2}
  .conductor section{box-sizing:border-box;width:calc(100vw - 24px);margin:54px auto 0;padding:0 0 125px}
  .conductor section>small{display:block;max-width:54vw;line-height:1.5}
  .conductor h2{max-width:100%;margin:10px 0 16px;font-size:clamp(30px,9.2vw,38px);line-height:.91}
  .conductor .intent-grid{width:100%;background:#aaa6}
  .conductor .intent-grid button{min-height:82px;padding:11px;background:#080a0bf2}
  .conductor .intent-grid strong{margin:7px 0 0;font-size:14px;line-height:1.05}
  .welcome-quote{box-sizing:border-box;width:100%;margin-top:16px;padding:15px 16px;background:#080a0bf5}
  .welcome-quote blockquote{font-size:17px;line-height:1.3}
  .welcome-quote small{font-size:8px}
}
/* Phone narration: preserve the portrait chamber, but give the words and transport the full width. */
@media(max-width:720px){
  .voice-chamber{overflow-y:auto;overscroll-behavior:contain}
  .voice-chamber>img,.voice-chamber>img[src*="assets/voices/composers/"]{position:fixed;inset:0 0 auto;width:100%;height:230px;animation:none;transform:none;object-fit:cover;object-position:62% 27%;filter:grayscale(.28) sepia(.1) contrast(1.12) brightness(.65)}
  .voice-dark{position:fixed;background:linear-gradient(180deg,#02030322 0,#02030388 34%,#020303f2 100%)}
  .voice-chamber section{position:relative;left:auto;top:auto;box-sizing:border-box;width:auto;max-height:none;margin:205px 12px 110px;padding:17px 16px 20px;overflow:visible;background:#050606ed;border-left:5px solid #d6b843;backdrop-filter:blur(8px)}
  .voice-chamber h2{margin:12px 0 16px;font-size:clamp(31px,10vw,42px);line-height:.88}
  .voice-chamber blockquote{font-size:17px;line-height:1.38}
  .voice-chamber section>span{margin-top:16px;font-size:7px;line-height:1.45}
  .voice-chamber>button{position:fixed;top:12px;right:12px;padding:9px 10px;background:#050606ef}
}
/* Keep the approved video hotspots small, and their labels inside the viewport. */
#visionOrbit .world-hotspot{left:clamp(36px,var(--hx),calc(100% - 36px));top:clamp(36px,var(--hy),calc(100% - 90px))}
#visionOrbit .world-hotspot:hover,#visionOrbit .world-hotspot:focus-visible{transform:translate(-50%,-50%) scale(1.05)}
#visionOrbit .world-hotspot:hover::before,#visionOrbit .world-hotspot:focus-visible::before{animation:none;transform:scale(1);opacity:1}
#visionOrbit .world-hotspot::after{box-sizing:border-box;width:max-content;max-width:min(180px,55vw);white-space:normal;line-height:1.4;letter-spacing:.6px;font-size:10px;color:#fff;background:#080a0a;padding:6px 8px;pointer-events:none}
#visionOrbit .world-hotspot[data-label-side="left"]::after{left:0;transform:translateY(8px)}
#visionOrbit .world-hotspot[data-label-side="right"]::after{left:auto;right:0;transform:translateY(8px)}
/* Individual framing only: preserve the chamber layout and original image files. */
.voice-chamber[data-voice="mill"]>img{animation:none;transform-origin:0 50%;transform:translateX(30%) scale(1.4)}
.voice-chamber[data-voice="kant"]>img{animation:none;object-position:50% 25%;transform:translateX(30%)}
.voice-chamber[data-voice="hume"]>img{animation:none;object-position:50% 18%;transform:translateX(28%)}
.voice-chamber[data-voice="sartre"]>img{animation:none;object-fit:contain;object-position:50% 50%;transform:translateX(28%)}
/* A user-positioned music bar must not cover the reader's return control. */
body:has(.reading-car.visible) #nowPlaying{z-index:114}
.voice-chamber>img[src$="/franklin-commons-v1.jpg"],
.voice-chamber>img[src$="/copernicus-commons-v1.jpg"],
.voice-chamber>img[src$="/planck-commons-v1.jpg"],
.voice-chamber>img[src$="/galileo-commons-v1.jpg"],
.voice-chamber>img[src$="/kepler-commons-v1.jpg"],
.voice-chamber>img[src$="/maxwell-commons-v1.jpg"],
.voice-chamber>img[src$="/faraday-commons-v1.jpg"],
.voice-chamber>img[src$="/meitner-commons-v1.jpg"],
.voice-chamber>img[src$="/schrodinger-commons-v1.jpg"],
.voice-chamber>img[src$="/einstein-commons-v1.jpg"],
.voice-chamber>img[src$="/curie-commons-v1.jpg"],
.voice-chamber>img[src$="/mendel-commons-v1.jpg"],
.voice-chamber>img[src$="/lavoisier-commons-v1.jpg"]{animation:none;object-fit:contain;object-position:center;transform:translateX(28%)}
.voice-chamber[data-voice="darwin"]>img,.voice-chamber[data-voice="podcast-science-charles-darwin-father-of-natural-selection-and-evolution"]>img{animation:none;object-position:50% 55%;transform:translateX(22%)}
.lesson-chamber blockquote{font-size:clamp(25px,3.3vw,48px)}
.journey-transition strong{font-size:clamp(30px,4.6vw,62px)}
@media(max-width:720px){.prologue h1{font-size:44px}.vision-room h2{font-size:clamp(30px,9vw,48px);max-width:80vw}.voice-chamber h2{font-size:clamp(30px,9vw,46px)}.collection-car h2{font-size:34px}.conductor h2{font-size:38px}.lesson-chamber blockquote{font-size:31px}}

/* Short fiction is a field of choices, not one featured story followed by the old site. */
.collection-track.story-orbit{grid-auto-flow:row;grid-auto-columns:auto;grid-auto-rows:230px;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));align-content:start;gap:clamp(18px,2.4vw,34px);overflow-y:auto;overflow-x:hidden;padding:28px 5% 55px;scroll-snap-type:none}
.collection-car.story-mode .shelf-routes{display:none}
.collection-track.story-orbit .collection-card{width:100%;max-width:230px;min-height:0;aspect-ratio:1;border:2px solid #d6b83f;border-left-width:2px;border-radius:50%;justify-self:center;scroll-snap-align:none;box-shadow:0 0 0 8px #d6b83f12,0 18px 45px #000b;transition:transform .25s,box-shadow .25s}
.collection-track.story-orbit .collection-card::after{background:radial-gradient(circle at 50% 34%,transparent 0 20%,#050606aa 59%,#050606f5 100%)}
.collection-track.story-orbit .collection-card span{top:22%;left:14%;right:14%;text-align:center;font-size:6px;line-height:1.35}
.collection-track.story-orbit .collection-card strong{left:12%;right:12%;bottom:40%;transform:translateY(50%);text-align:center;font-size:clamp(18px,1.8vw,28px);line-height:.92}
.collection-track.story-orbit .collection-card em{left:16%;right:16%;bottom:19%;text-align:center;font-size:6px;line-height:1.35}
/* Long introductions retain their text; scroll only when controls exceed the available height. */
.voice-chamber[data-voice="arendt"]>img,.voice-chamber[data-voice="nietzsche"]>img{animation:none;object-position:50% 25%;transform:translateX(30%)}
.voice-chamber[data-voice="nietzsche"]>img{object-position:50% 15%}
.voice-chamber[data-voice="marx"]>img,.voice-chamber[data-voice="beauvoir"]>img,.voice-chamber[data-voice="camus"]>img{animation:none;object-position:50% 18%;transform:translateX(30%)}
/* Individual archive-image framing; existing cards and chambers are unchanged. */
.collection-card[data-ref*="classical-music-richard-strauss"]::before{background-position:73% center}
.collection-card[data-ref*="classical-music-robert-schumann"]::before{background-size:auto 220%;background-position:76% 48%;background-repeat:no-repeat}
.collection-card[data-ref*="classical-music-pyotr-ilyich-tchaikovsky"]::before{background-size:auto 210%;background-position:44% 45%;background-repeat:no-repeat}
.voice-chamber>img[src*="assets/voices/composers/"]{animation:none;object-position:50% 18%;transform:translateX(28%)}
.voice-chamber section{max-height:calc(91dvh - 110px);overflow-y:auto;overscroll-behavior:contain;scroll-padding-block:12px;padding-bottom:8px}
/* Desktop drag coordinates must not obstruct phone navigation. */
@media(max-width:720px){
 .vision-actions,.vision-actions.user-placed{left:5%!important;right:5%!important;top:26%!important;bottom:auto!important;width:auto;max-height:16dvh;overflow-y:auto;touch-action:pan-y}
 .now-playing.user-placed,.boarded .now-playing.user-placed{left:8px!important;top:auto!important;right:8px!important;bottom:28px!important;transform:none;width:calc(100vw - 16px)}
 .vision-quote.user-placed,.vision-room.framed .vision-quote.user-placed{left:5%!important;top:45%!important;right:auto!important;bottom:auto!important;max-height:30dvh}
}
.collection-track.story-orbit .collection-card:hover,.collection-track.story-orbit .collection-card:focus-visible{transform:scale(1.06);box-shadow:0 0 0 11px #d6b83f28,0 22px 52px #000}
@media(max-width:720px){.collection-track.story-orbit{grid-template-columns:repeat(2,minmax(125px,1fr));grid-auto-rows:170px;gap:18px;padding-inline:6%}.collection-track.story-orbit .collection-card{max-width:170px}.collection-track.story-orbit .collection-card strong{bottom:47%;font-size:16px;line-height:.88}.collection-track.story-orbit .collection-card span{top:17%;font-size:5.5px}.collection-track.story-orbit .collection-card em{display:none}}
@media(max-width:720px){.voice-chamber>img{animation:none!important;transform:none!important}}

/* Closed-line expansion extends the established map and hotspot treatments. */
#closedLines[hidden]{display:none}
.closed-track{stroke:#d6b843;stroke-width:7}
.map-frame:has(.system-map.expanded){overflow-y:auto}
.system-map.expanded{height:calc(100% + 150px);min-height:580px}
.world-hotspot.journey-clue{z-index:6}
.world-hotspot.journey-clue[hidden]{display:none}
@media(max-width:720px){.world-hotspot.journey-clue{--hx:85%!important;--hy:18%!important}.system-map.expanded{height:620px;min-height:620px}}
@media(prefers-reduced-motion:reduce){.station.lost-station.unlocked{animation:none}}

/* Keep upper labels above the station even when its touch target grows. */
@media(max-width:720px),(pointer:coarse){.station.label-up span{bottom:calc(100% + 14px)}.station.label-up b{bottom:calc(100% + 36px)}}

/* Existing cards retain their typography and borders while showing the scene. */
.conductor #conductorArtwork{opacity:.5}
.conductor .intent-grid{background:transparent;gap:7px;border:0}
.conductor .intent-grid button{background:rgba(8,10,11,.48);border:1px solid #aaa6;backdrop-filter:blur(6px)}
.welcome-quote,.voice-chamber section,.lesson-chamber section{background:rgba(8,10,11,.55);backdrop-filter:blur(6px)}
.station-world .station-card{background:rgba(232,226,217,.72);backdrop-filter:blur(6px)}
.reading-car{background:rgba(8,10,10,.65)}
[data-panel-handle]{cursor:grab;touch-action:none;user-select:none}
[data-panel-handle]:focus-visible{outline:2px solid #d9bd4d;outline-offset:5px}
.panel-moving{transition:none!important;z-index:190!important}
.panel-moving [data-panel-handle]{cursor:grabbing}

#openingSound{display:inline-block;margin:12px 0} .conductor #conductorFilm{position:fixed;inset:0;width:100%;height:100%;object-fit:cover;animation:none}

/* Let the moving image arrive before its accompanying passage. */
.vision-quote{background:rgba(8,10,11,.46);backdrop-filter:blur(5px);transition:opacity 1.1s ease}
.vision-quote.quote-waiting{opacity:0;pointer-events:none}
.vision-quote.dragging{transition:none}
@media(prefers-reduced-motion:reduce){.vision-quote{transition:none}}

#entrySummary{position:fixed;z-index:220;inset:0;overflow:auto;padding:7vh max(24px,calc((100vw - 700px)/2));background:#101212;color:#ddd9ce;font:19px/1.6 Georgia,serif}#entrySummary h1{color:#f0ede5}#entrySummary a{color:#e0c24f}#entrySummary video,#entrySummary audio{display:block;width:100%;max-height:55vh;margin-top:24px}.transit-ready #entrySummary{display:none}

/* Keep the return label legible over moving images. */
#closeVision,#closeConductor{font-size:12px;letter-spacing:.5px;min-height:44px}

/* Feather the displayed film rectangle, including portrait letterboxing. */
#visionVideo{
 -webkit-mask-image:linear-gradient(90deg,transparent,#000 14%,#000 86%,transparent),linear-gradient(0deg,transparent,#000 10%,#000 90%,transparent);
 mask-image:linear-gradient(90deg,transparent,#000 14%,#000 86%,transparent),linear-gradient(0deg,transparent,#000 10%,#000 90%,transparent);
 -webkit-mask-size:var(--film-image-width,100%) var(--film-image-height,100%);
 mask-size:var(--film-image-width,100%) var(--film-image-height,100%);
 -webkit-mask-position:center;mask-position:center;
 -webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;
 -webkit-mask-composite:source-in;mask-composite:intersect;
 box-shadow:none;
}

/* Let the image and authored quotation carry the film encounter. */
#visionText{display:none!important}
.vision-room[data-film^="snow"] #visionVideo{object-position:center 78%}

/* Film-first view: secondary tools are available on request. */
.vision-room #visionVideo,.vision-room.framed #visionVideo{inset:0;width:100%;height:100%;object-fit:cover;animation:none}
.vision-room header,.vision-room.framed header{top:5%;left:4%;max-width:55vw}
.vision-room h2,.vision-room.framed h2{font-size:clamp(18px,2vw,24px);line-height:1.1;margin:0;letter-spacing:-.03em}
#visionRoute,.vision-index{display:none}
.vision-room:not(.controls-open) #visionActions,.vision-room:not(.controls-open) #visionOrbit,.vision-room:not(.controls-open) #visionClues,.vision-room:not(.controls-open) #visionEvidence{display:none!important}
body:has(.vision-room.visible:not(.controls-open)) .now-playing{display:none!important}
.vision-room .vision-shade,.vision-room.framed .vision-shade{background:linear-gradient(0deg,#0007,transparent 40%,transparent 80%,#0005)}
.vision-room .vision-quote,.vision-room.framed .vision-quote{top:auto;bottom:100px;left:4%;width:min(420px,80vw);background:#0004;border:0;border-left:3px solid #e1bd45;box-shadow:none;backdrop-filter:none}
.vision-quote>small{display:none}
.vision-quote nav{display:none}
.vision-quote:hover nav,.vision-quote:focus-within nav,.controls-open .vision-quote nav{display:flex}
.vision-toolbar{position:absolute;z-index:12;bottom:24px;left:50%;transform:translateX(-50%);display:flex;gap:8px;white-space:nowrap}
.vision-toolbar button{border:1px solid #aaa;background:#0008;color:#eee;padding:12px;font:10px monospace;min-height:44px;cursor:pointer}
.vision-room.controls-open .vision-toolbar{bottom:100px}
@media(max-width:720px){
 .vision-room .vision-quote,.vision-room.framed .vision-quote,.vision-quote.user-placed,.vision-room.framed .vision-quote.user-placed{top:auto!important;bottom:94px!important;max-height:32dvh;width:88vw}
 .vision-toolbar{gap:4px;width:94%;justify-content:center}
 .vision-toolbar button{font-size:9px;padding:8px}
 .vision-room.controls-open #visionActions{top:16%!important;max-height:28dvh}
 .vision-quote nav{display:flex}
}

/* Compact film typography: the moving image remains the lead. */
.vision-room h2,.vision-room.framed h2{font-size:18px;line-height:1.2;letter-spacing:0}
.vision-room .vision-quote{padding:9px 12px;width:min(340px,80vw)}
.vision-room .vision-quote blockquote{font-size:16px;line-height:1.35;margin:0 0 6px}
.vision-quote cite{font-size:8px;letter-spacing:.5px}
@media(max-width:720px){.vision-room h2,.vision-room.framed h2{font-size:16px}.vision-room .vision-quote blockquote{font-size:14px}.vision-room .vision-quote{width:86vw}}

.vision-context{display:flex;flex-wrap:wrap;gap:6px 14px;margin-top:12px}
.vision-context button{background:#0005;color:#eee;border:0;border-bottom:1px solid #aaa;padding:7px 2px;font:10px monospace;letter-spacing:.4px;cursor:pointer;min-height:32px}
.vision-context button:hover,.vision-context button:focus-visible{color:#e1bd45;border-color:#e1bd45}

/* A quiet moving caption: leave the image dominant, keep the source within reach. */
.vision-quote:not(.quote-waiting) #visionQuoteText{animation:film-caption-drift 18s ease-in-out both}
@keyframes film-caption-drift{from{translate:0 7px;opacity:0}10%{opacity:1}to{translate:0 -3px;opacity:1}}
.vision-quote{background:rgba(0,0,0,.24);box-shadow:none;backdrop-filter:none}
@media(prefers-reduced-motion:reduce){.vision-quote:not(.quote-waiting) #visionQuoteText{animation:none}}
.vision-toolbar a{font:10px monospace;color:inherit;text-decoration:none;border:1px solid #aaa;background:rgba(0,0,0,.45);padding:13px 10px;min-height:44px;box-sizing:border-box;display:inline-flex;align-items:center}
.vision-toolbar a[hidden]{display:none}

/* Original recording: readable captions and music credit. */
.vision-room[data-film="bee"] #visionTitle::after{content:"Music by Niklas S. Osterman / Selenius";display:block;font:14px/1.5 Georgia,serif;margin-top:5px}
.vision-room[data-film="wakingRising"] #visionTitle::after,.vision-room[data-film="minusNine"] #visionTitle::after{content:"Music by Niklas S. Osterman";display:block;font:14px/1.5 Georgia,serif;margin-top:5px;color:#e7e1d6;text-shadow:0 1px 4px #000}
.vision-room[data-film="bee"] .vision-quote{width:min(640px,88vw)}
.vision-room[data-film="bee"] .vision-quote blockquote{font-size:clamp(24px,3vw,36px);line-height:1.25}
.vision-room[data-film="bee"] .vision-quote cite{font-size:11px}

/* Keep Dante's tall historical portrait visible instead of zooming into the robe. */
.voice-chamber[data-voice="dante"]>img{animation:none;object-fit:contain;object-position:center;transform:translateX(28%);background:#090705}
@media(max-width:720px){.voice-chamber[data-voice="dante"]>img{object-fit:contain;object-position:center;transform:none;background:#090705}}

/* The clue is part of the scene, not the chamber's upper-right close control. */
.voice-chamber>#voiceClue{position:absolute;left:var(--hx);top:var(--hy);right:auto;width:46px;height:46px;padding:0;border:0;border-radius:50%;background:transparent;transform:translate(-50%,-50%)}

/* Hide source-video credits that collide with the Transit film interface. */
.film-source-mask{display:none;position:absolute;z-index:2;pointer-events:none;background:#000}
.vision-room[data-film="wakingRising"] .film-source-mask{display:block;left:0;right:0;top:0;height:154px;background:linear-gradient(180deg,#000 0 56%,rgba(0,0,0,.88) 70%,transparent 100%)}
.vision-room[data-film="firefliesVideo"] .film-source-mask,.vision-room[data-film="lightSkyVideo"] .film-source-mask{display:block;left:0;bottom:0;width:min(56vw,900px);height:25vh;background:linear-gradient(0deg,#000 0 74%,transparent 100%)}
