*{box-sizing:border-box}html{background:#07171c;color:#f3e7d4;font-family:Georgia,serif}body{margin:0}main{max-width:1200px;margin:auto;padding:20px}.mast{display:flex;justify-content:space-between;font:11px system-ui;letter-spacing:.23em;color:#c1a776;padding:8px 0 24px;border-bottom:1px solid #b4a27d33}header{text-align:center;padding:35px 10px 25px}h1{font-size:clamp(34px,6vw,68px);font-weight:400;letter-spacing:-.035em;margin:12px 0}header p{color:#b6c7c8;line-height:1.6}.eyebrow{font:10px system-ui;letter-spacing:.2em;color:#c1a776!important}.scene{height:600px;max-height:75svh;min-height:410px;position:relative;background:#183743;border:1px solid #a18d663d;border-radius:8px;overflow:hidden}canvas{width:100%;height:100%;display:block}.scene-top{position:absolute;top:16px;left:16px;right:16px;display:flex;gap:20px;justify-content:space-between;font:9px system-ui;letter-spacing:.1em;text-shadow:0 1px 5px #000}.toolbar{position:absolute;bottom:45px;left:10px;right:10px;display:flex;justify-content:center;gap:6px;flex-wrap:wrap}button{border:1px solid #c3ab75;background:#e6d6b8;color:#1e2d2e;min-height:44px;padding:10px 14px;cursor:pointer;border-radius:4px;font:13px system-ui}button:disabled{opacity:.4;cursor:default}.subtitle{position:absolute;bottom:15px;left:14px;right:14px;text-align:center;font:12px system-ui;text-shadow:0 2px 5px #000}.ticket{margin:28px auto;max-width:530px;text-align:center;border:1px solid #af986433;padding:28px;background:#10282b;border-radius:6px}.ticket small{font:10px system-ui;color:#c1a776;letter-spacing:.2em}h2{font-weight:400;font-size:25px}.ticket p{font:14px/1.7 system-ui;color:#b6c7c8}.marks{display:flex;justify-content:center;gap:8px}#start{padding:12px 30px;background:#c2a164}footer{padding:20px 0;font:12px/1.8 system-ui;color:#98adaf}summary{cursor:pointer;min-height:44px}a{color:#d5ba7e}#load{position:absolute;inset:0;display:grid;place-items:center;background:#102b36;font:14px system-ui}#load.hidden{display:none}@media(max-width:500px){main{padding:14px}.mast{font-size:9px}header{padding:25px 0 20px}.scene{height:540px;max-height:72svh}.toolbar button{font-size:11px;padding:8px}.scene-top{font-size:8px;left:10px;right:10px}.ticket{padding:24px 12px}.subtitle{font-size:11px}.scene-top span:last-child{max-width:120px;text-align:right}}

#inspect-layer{position:absolute;inset:0;pointer-events:none}.object-spot{position:absolute;pointer-events:auto;border-radius:50%;width:36px;height:36px;min-height:36px;padding:0;transform:translate(-50%,-50%);background:#14292bd9;color:#edd29b;border:1px solid #d7b36b;font-size:22px;box-shadow:0 0 0 5px #152c2d55}.object-spot[hidden]{display:none}.clue{position:absolute;z-index:4;left:50%;top:50%;transform:translate(-50%,-50%);width:min(380px,90%);background:#eee1c7;color:#243034;border:1px solid #bea36c;padding:30px;box-shadow:0 15px 80px #0009}.clue small{font:9px system-ui;letter-spacing:.14em}.clue h3{font-size:24px;font-weight:400}.clue p{font:14px/1.7 system-ui}#close-clue{position:absolute;top:4px;right:4px;background:none;border:0;font-size:22px}

.mast span:first-child{letter-spacing:0;font-family:Georgia,"Apple Color Emoji","Segoe UI Emoji",serif;font-size:12px}

.scene-portal{position:absolute;transform:translate(-50%,-50%);width:56px;height:74px;border:1px solid #e5c98855;background:linear-gradient(90deg,transparent,#f0d8a20d,transparent);border-radius:14px 14px 3px 3px;box-shadow:0 0 18px #edca7730;cursor:pointer;animation:invitation 4s ease-in-out infinite}.scene-portal:after{content:"";position:absolute;right:8px;top:42%;height:4px;width:4px;border-radius:50%;background:#ead2a0}.scene-portal:hover,.scene-portal:focus-visible{outline:2px solid #f0d295;background:#edce8625}.scene-portal.window-portal{width:70px;height:90px;border-radius:20px 20px 7px 7px}.object-spot{width:28px;height:28px;min-height:28px;font-size:15px;background:#14292b80;border-color:#d7b36b66;box-shadow:0 0 12px #eac47b30}.subtitle:empty{display:none}@keyframes invitation{50%{border-color:#e5c98899;box-shadow:0 0 24px #edca7745}}@media(prefers-reduced-motion:reduce){.scene-portal{animation:none}}

.object-spot,.scene-portal,.scene-portal.window-portal{background:transparent;border:0;box-shadow:none;animation:none;border-radius:0;min-width:36px;min-height:36px;padding:0}.scene-portal:after{display:none}.object-spot:hover,.scene-portal:hover{background:transparent;border:0;box-shadow:none}.object-spot:focus-visible,.scene-portal:focus-visible{outline:1px solid #d7b36b99;outline-offset:2px}

.object-spot,.scene-portal{pointer-events:none}.object-spot:focus-visible,.scene-portal:focus-visible{pointer-events:auto}

#ticket-action{position:absolute;bottom:15%;left:50%;transform:translateX(-50%);background:#c8af78;color:#122b2b;font-family:Georgia,serif;z-index:2;white-space:nowrap}#boarding-pass{position:absolute;left:8%;right:8%;bottom:6%;padding:18px;background:#e8d8b4;color:#19332f;border:1px solid #ad8d50;box-shadow:0 8px 22px #0007;pointer-events:none;transform:rotate(-2deg)}#boarding-pass small,#boarding-pass span{display:block;font:10px system-ui;letter-spacing:.06em}#boarding-pass strong{display:block;font:20px Georgia;margin:9px 0}[hidden]{display:none!important}
.clue{width:min(560px,94%);max-height:94%;overflow:auto;padding:24px 18px;background:linear-gradient(120deg,#e4d0a8,#f0e4c9 40%,#d3bc90);box-shadow:0 10px 80px #000c}.clue h3{font-size:21px;margin:10px 0 20px}.clue p{font-family:Georgia,serif}.notebook{padding:15px 10px;border-left:2px solid #a38656;background:repeating-linear-gradient(0deg,transparent,transparent 27px,#a28d5d22 28px);min-height:280px}.notebook nav{display:flex;gap:6px;justify-content:center}.notebook nav button{background:transparent;border-color:#ac976f;padding:8px;min-width:44px}.notebook nav [aria-current]{background:#b8a27a}.hand{font-style:italic}.mirror-drawing{display:flex;justify-content:center;gap:16px;padding:15px 0}.mirror-drawing span{width:70px;height:90px;position:relative;text-align:center;font-size:24px}.mirror-drawing i{display:block;width:58px;height:58px;border:1px solid #7c6848;border-radius:50%;position:absolute;bottom:0;left:6px;transform:rotate(var(--r))}.mirror-drawing i:after{content:'';position:absolute;left:25px;top:4px;border-left:4px solid transparent;border-right:4px solid transparent;border-bottom:12px solid #5c4b32}.mirror-text,.reflected-plate{transform:scaleX(-1);text-align:center}.reflected-plate{background:#233b32;border:3px double #b49a5d;color:#d7c28e;padding:22px;font-size:32px}.chest{background:repeating-linear-gradient(90deg,#39291d,#4c3321 12px,#39291d 14px);border:8px ridge #715a35;border-radius:45px 45px 8px 8px;padding:36px 8px 15px;box-shadow:inset 0 5px 25px #0008,0 12px 25px #0005}.chest-lid{height:30px;border-bottom:5px solid #ae8d49;margin-bottom:20px}.lock{background:linear-gradient(130deg,#a68b53,#493e26 40%,#8d7440);padding:15px 4px;border:3px ridge #b59b62}.dials{display:flex;justify-content:space-around;gap:6px}.dial-wrap{text-align:center;color:#e6d29b}.dial-wrap>span{font-size:25px;text-shadow:0 2px #382811}.dial{display:block;min-height:0;padding:0;width:min(22vw,100px);height:min(22vw,100px);border-radius:50%;border:0;background:transparent;touch-action:none}.dial svg{width:100%;height:100%;fill:#9f8449;stroke:#342c1c;stroke-width:2;filter:drop-shadow(0 4px 3px #0008)}.dial .ticks{stroke:#ded09e;stroke-width:2}.needle{transform-origin:50px 50px;fill:#e3d7a5}.needle path:last-child{stroke:#e3d7a5}.lock #latch{display:block;margin:16px auto 0;background:#b49a62;border:3px outset #c3ad7f}.lock p{margin:8px 0 0;text-align:center;color:#e2d6b8;min-height:18px;font-size:12px}.crystal,.lamp-socket{text-align:center;font-size:100px;color:#4b7180;text-shadow:0 0 12px #acdbdc}.crystal.lit{color:#d1a949;text-shadow:0 0 20px #f4bd56}#clue-body>p{font-size:16px}
.record-slots{display:grid;grid-template-columns:1fr 1fr;gap:8px}.record-slot{background:#d3bd94;border:1px dashed #8d754e;min-height:80px;padding:8px;color:#3b3020}.record-slot small,.record-slot span{display:block}.record-slot small{font-size:10px;margin-bottom:8px}.record-cards{display:grid;gap:8px;margin:15px 0}.record-card{text-align:left;background:#eee1c3;border-color:#b8a27a;box-shadow:0 3px 8px #0002}.record-card strong,.record-card span{display:block}.record-card span{font:13px/1.6 Georgia;margin-top:8px}.record-card.selected{outline:2px solid #4d716d}.record-hint{font-size:12px!important}.route-view{height:240px;position:relative;overflow:hidden;background:linear-gradient(#071420 48%,#2c414b 49%,#081b29 51%,#17262c 100%);border:10px ridge #62452e}.distant-moon{position:absolute;left:20%;top:15px;color:#cddce0;font-size:38px}.horizon{position:absolute;top:50%;width:100%;height:1px;background:#aababc55}.beacon{position:absolute;top:46%;height:110px;color:#b9a671}.beacon i{display:block;width:8px;height:8px;background:#f1da91;box-shadow:0 0 20px #ffca65,0 0 40px #ffba53;border-radius:50%}.beacon span{font-size:45px;opacity:.3}.beacon.real{left:27%}.beacon.reflection{left:75%;top:40%;opacity:.75;filter:blur(1px)}.starboard .beacon.reflection{left:45%;top:35%}.starboard .distant-moon{left:18%}.window-mullion{position:absolute;left:54%;height:100%;width:10px;background:#68472f}.window-rain{position:absolute;inset:0;background:repeating-linear-gradient(100deg,transparent,transparent 28px,#adced915 29px,transparent 30px);pointer-events:none}.route-choices{display:flex;gap:8px;margin:18px 0}.route-choices button{flex:1}.switch-console{padding:18px;background:#4c4030;color:#eee0bc;border:5px ridge #9b8354}.switch-console>button{margin:4px}.route-motion{height:160px;position:relative;background:linear-gradient(#0d1d29,#172a35);overflow:hidden}.route-motion i{position:absolute;left:90%;top:30%;width:4px;height:4px;background:#f8dc8a;box-shadow:0 0 15px #fbce65;animation:travel-lights 3s linear infinite}.route-motion i:nth-child(2){top:60%;animation-delay:1s}.route-motion i:nth-child(3){top:42%;animation-delay:2s}@keyframes travel-lights{to{left:-10%;transform:scale(3)}}.route-motion.loop b{position:absolute;color:#b65339;top:40%;left:45%;font-size:50px;animation:loop-light 3s ease-in-out infinite}@keyframes loop-light{50%{transform:translateX(70px);opacity:.2}}.development-note{font:12px/1.6 system-ui!important;color:#655942}.chest{background:repeating-linear-gradient(0deg,#482329,#542b30 8px,#482329 10px)}
canvas{transition:filter .5s,transform .7s}.passing{filter:brightness(.2);transform:scale(1.08)}

.film-credits{position:fixed;inset:0;background:#020809;color:#e6d6b8;z-index:100;overflow:hidden;text-align:center;font:16px/1.9 Georgia}.credits-scroll{position:absolute;top:100%;left:max(24px,10%);right:max(24px,10%);animation:film-roll 65s linear forwards}.credits-scroll h2{font-size:40px;font-weight:400}.credits-scroll section{margin:100px 0}.credits-scroll small{font:10px/2 system-ui;letter-spacing:.2em}.credits-scroll a{font-size:12px;color:#c6af7e}.credits-close,.credits-pause{position:absolute;z-index:1;color:#d8c497;background:#071619cc;border:1px solid #697569}.credits-close{right:18px;top:18px}.credits-pause{bottom:20px;left:50%;transform:translateX(-50%);font-size:12px}.film-credits.paused .credits-scroll{animation-play-state:paused}@keyframes film-roll{to{transform:translateY(calc(-100% - 110vh))}}@media(prefers-reduced-motion:reduce){.credits-scroll{position:relative;top:0;animation:none}.film-credits{overflow:auto}.credits-pause{display:none}}
.film-credits{--credit-top:74px;--credit-bottom:80px}.credits-window{position:absolute;top:var(--credit-top);bottom:var(--credit-bottom);left:0;right:0;overflow:hidden}.credits-window .credits-scroll{top:100%}.credits-close{top:14px}.credits-pause{bottom:18px;height:42px}@media(prefers-reduced-motion:reduce){.credits-window{position:relative;top:auto;bottom:auto;margin:74px 0 80px;overflow:visible}.credits-window .credits-scroll{top:0}}

.legal-credits{font:11px/1.9 Georgia;color:#a79e89}.legal-credits a{font-size:11px}.credits-scroll .legal-credits{margin-top:130px}

.clue.observing{top:auto;bottom:10px;transform:translateX(-50%);max-height:39%;padding:12px 16px;background:#102327ed;color:#e5d6b5;border:1px solid #a18b59;box-shadow:0 5px 25px #0008}.clue.observing h3{margin:0 24px 8px 0;font-size:17px}.clue.observing p{font-size:12px!important;line-height:1.5;margin:6px 0}.clue.observing button:not(#close-clue){font-size:11px;padding:8px;min-height:34px}.clue.observing #close-clue{color:#e5d6b5}

@media(max-width:500px){.scene{height:min(540px,calc(100svh - 280px));min-height:360px}.clue.observing{max-height:48%;bottom:8px}.clue.observing button:not(#close-clue){font-size:10px;padding:7px 8px}.clue.observing p{font-size:11px!important}}
#money-hud{position:absolute;right:14px;top:40px;z-index:4;display:flex;flex-direction:column;text-align:right;text-shadow:0 2px 3px #000;background:#081718b8;border-radius:5px;padding:5px 9px;pointer-events:none}#money-hud small{font:8px system-ui;letter-spacing:.12em;color:#c5d3cb}#money-hud strong{font:700 22px ui-monospace,monospace;color:#a0d390}#station-ui{position:absolute;inset:0;pointer-events:none;z-index:5}#station-ui button,#station-ui .station-panel{pointer-events:auto}.station-shop{position:absolute;left:5%;bottom:10%;padding:12px;background:#a88c52;color:#112a28;border:1px solid #d2bd82}.terminal-preview{position:absolute;left:8%;right:8%;top:20%;background:#081213;border:4px solid #725d37;color:#d6bf7a;padding:12px;text-align:left}.terminal-preview small{display:block;font:9px system-ui;letter-spacing:.1em}.terminal-preview span{display:flex;justify-content:space-between;font:12px ui-monospace,monospace;margin:10px 0}.terminal-preview b{font-size:9px;max-width:55%;text-align:right}.terminal-preview em{font:9px system-ui;color:#a8b5aa}.station-panel{position:absolute;inset:12% 4% 3%;overflow:auto;background:#0b2021f8;border:1px solid #8d7c51;color:#e1d3b3;padding:26px 20px;box-sizing:border-box;box-shadow:0 12px 40px #0009}.station-panel h3{font:28px Georgia;margin:16px 0}.station-panel p{font:17px/1.55 Georgia}.station-panel small{font:10px system-ui;letter-spacing:.1em}.station-panel button{background:#d0ba82;color:#122b29;border:0;padding:12px;font:15px system-ui}.station-panel .panel-close{float:right;background:transparent;color:#e1d3b3;font-size:24px;padding:0}.departure-head,.departure-row{display:grid;grid-template-columns:1fr 1fr;gap:16px;padding:15px 0;border-bottom:1px solid #65716a}.departure-head{font:9px system-ui}.departure-row{font:13px ui-monospace,monospace;color:#dec987}.station-note{font-size:13px!important;color:#9caca5}.shop-items{display:grid;grid-template-columns:1fr 1fr;gap:15px}.shop-items article{background:#152f30;padding:14px 9px;text-align:center}.shop-items h4{font:20px Georgia;margin:10px 0}.shop-items p{font-size:13px}.shop-items small{display:block;margin-top:10px}.supply-icon{display:block;margin:12px auto;height:65px;width:24px;border:2px solid #a7c8c2;border-radius:6px 6px 9px 9px;background:linear-gradient(transparent 25%,#31778a99 26%)}.supply-icon.water:before{content:'';display:block;margin:-7px auto 0;width:15px;height:8px;background:#b3c7b5}.supply-icon.crackers{width:50px;height:61px;border:2px solid #b18e53;border-radius:0;background:repeating-linear-gradient(0deg,#a77b35 0px,#e1b76c 5px,#b38a47 7px)}.physical-ticket{margin:25px 0;background:#dcc996;color:#18312c;padding:28px 15px;border:2px dashed #927d4c;display:flex;flex-direction:column;gap:22px}.physical-ticket strong{font:22px Georgia}.physical-ticket span{font:13px system-ui}#station-ui blockquote{margin:22px 0;font:23px/1.4 Georgia;color:#b7d0a9}
#physical-ui{position:absolute;inset:0;z-index:6;pointer-events:none}#physical-ui button{pointer-events:auto;background:#d0ba82;color:#122b29;border:1px solid #ab945f;padding:12px;font:14px system-ui}.physical-back{position:absolute;left:4%;top:11%;max-width:65%}.physical-actions{position:absolute;left:5%;right:5%;bottom:4%;text-align:center;background:#071719e8;padding:10px;color:#dfd1b1}.physical-actions:empty{display:none}.physical-actions p{font:16px/1.4 Georgia;margin:8px}.physical-actions button{width:100%}
.sentinel-avatar{height:190px;max-width:100%;object-fit:contain;display:block;margin:0 auto}.arrival-resolution{position:absolute;inset:6% 2% 2%;z-index:8;overflow:auto;padding:25px 15px;background:#081a1cf7;color:#dfd3b6;border:1px solid #a8925f}.arrival-resolution>img{height:180px;float:left;width:35%;object-fit:contain}.arrival-board{border:4px solid #796644;background:#071012;padding:15px;display:flex;flex-direction:column;text-align:center;gap:10px;color:#d6c382;margin:10px 0}.arrival-board strong{font:700 30px ui-monospace,monospace;color:#b5d39c}.arrival-board small,.arrival-board span{font:10px system-ui;letter-spacing:.15em}.resolution-text h3{font:26px Georgia}.resolution-text p{font:17px/1.5 Georgia}.resolution-text blockquote{font:22px Georgia;margin:20px 0}.arrival-resolution button{background:#cbb47b;color:#122b29;border:0;padding:12px;font:14px system-ui}.arrival-resolution .resolution-close{float:right;background:none;color:#dfd3b6;font-size:24px;padding:0}.validated-ticket{border:2px dashed #baa36a;padding:18px;background:#dac795;color:#18332d;font:12px system-ui}.validated-ticket strong{display:block;font:20px Georgia;margin-top:15px}
#physical-ui .physical-actions{bottom:52px;background:#071c20e8;padding:9px 10px;max-height:180px;overflow:auto}#physical-ui .physical-actions p{margin:0 0 10px;line-height:1.4}#physical-ui .physical-actions p:last-child{margin:0}#physical-ui .physical-back{top:48px;font-size:12px;padding:10px}.scene:has(#physical-ui .physical-actions) #subtitle{display:none}.scene:has(#physical-ui .physical-actions) .object-spot,.scene:has(#physical-ui .physical-actions) #portal{pointer-events:none}
#station-ui .terminal-preview{transform:translate(-50%,-50%);right:auto;min-height:0;padding:0;background:none;border:0;color:transparent}.station-panel.opening-scene{inset:auto 4% 5%;max-height:65%;background:#08191ee8}.station-panel.opening-scene p{font-size:15px;margin:10px 0}.station-panel.opening-scene h3{font-size:24px;margin:10px 0}.station-panel.sentinel-scene{inset:auto 3% 4%;max-height:88%;background:linear-gradient(transparent,#07191df0 42%);border:0;box-shadow:none;padding:0 14px 10px}.sentinel-scene>small:first-of-type,.sentinel-scene h3,.sentinel-scene>p{display:none}.sentinel-scene .sentinel-avatar{height:240px;max-width:80%;margin:auto;object-fit:contain}.sentinel-scene blockquote{font-size:21px!important;text-align:center;margin:10px 0!important}.sentinel-scene>small{display:block;text-align:center;margin:8px}.sentinel-scene>#choose-board{display:block;margin:auto}
.sentinel-sound{position:absolute;left:10px;bottom:10px;z-index:7;min-height:30px;padding:6px 9px;font:10px system-ui;color:#b9c8bf;background:#071b1ccf;border:1px solid #667262}.scene:has(.physical-actions) .sentinel-sound,.scene:has(.clue:not([hidden])) .sentinel-sound{display:none}
.brand-wave,.brand-moon{font-family:'Noto Color Emoji','Apple Color Emoji','Segoe UI Emoji',sans-serif!important;font-size:14px!important}.sentinel-scene .sentinel-avatar{mix-blend-mode:screen;height:220px;margin-left:auto;margin-right:0}.station-panel.sentinel-scene{inset:auto 3% 4%;background:linear-gradient(transparent,#07191dcc 65%)}.arrival-resolution .resolution-close{position:sticky;top:0;z-index:2;background:#07191c}.arrival-resolution>img{mix-blend-mode:screen}.scene:has(.arrival-resolution) #money-hud,.scene:has(.arrival-resolution) .sentinel-sound{display:none}
.sentinel-scene .sentinel-avatar,.arrival-resolution>img{mix-blend-mode:normal}
.arrival-staged{background:linear-gradient(0deg,#07191ced,transparent 85%);border:0;padding-top:10px}.arrival-staged .arrival-board{max-width:560px;margin:10px auto 18px}.arrival-staged>img{height:250px;width:32%;margin:0 2% 0 0}.arrival-staged .resolution-text{max-width:800px;margin:auto}.arrival-staged .resolution-text>p{font-size:18px}.final-log{background:#d4c59b;color:#26312a;max-width:430px;padding:20px;margin:18px 0;box-shadow:0 3px 15px #0008;transform:rotate(-1deg)}.final-log small{font:9px system-ui;letter-spacing:.15em}.final-log p{font:17px/1.5 Georgia!important}.log-finish{font-style:italic!important;animation:finish-line 1.4s both}.closing-cause{font-size:14px!important}.ticket-returned>img{height:150px}.ticket-returned .final-log{display:none}.ticket-returned .validated-ticket{animation:ticket-stamp .7s both}@keyframes finish-line{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}@keyframes ticket-stamp{from{opacity:0;transform:rotate(-5deg) scale(1.12)}to{opacity:1;transform:rotate(-1deg) scale(1)}}@media(max-width:600px){.arrival-staged>img{height:175px;width:35%;margin-top:12px}.arrival-staged .resolution-text blockquote{font-size:19px}.arrival-staged .resolution-text>p{font-size:16px}.final-log{clear:both;margin-top:20px}.arrival-staged .arrival-board{padding:10px;gap:5px}.arrival-staged .arrival-board strong{font-size:24px}}
.arrival-staged.record-written .resolution-text>p,.arrival-staged.record-written .resolution-text>blockquote{display:none}.arrival-staged.record-written>img{height:140px}.arrival-staged.record-written .final-log{clear:none}.arrival-staged.ticket-returned .closing-cause{display:none}.arrival-staged.ticket-returned>img{height:130px}.arrival-staged .development-note{font:12px/1.5 system-ui;color:#abb7ad}.arrival-staged .validated-ticket{text-align:center;line-height:1.6}.arrival-staged.record-written #final-record{padding-top:5px}@media(max-width:600px){.arrival-staged.record-written>img{float:right;width:28%;height:115px}.arrival-staged.record-written .final-log{margin-top:0;padding:16px;min-height:160px}.arrival-staged.record-written .final-log p{font-size:16px!important}.arrival-staged.ticket-returned>img{display:none}}
@font-face{font-family:OleadaBrand;src:url('assets/brand-math.ttf') format('truetype');font-display:swap}.mast .brand-exact{font-family:OleadaBrand,serif;letter-spacing:0;font-size:16px;font-weight:400;white-space:nowrap}.mast .brand-exact .brand-wave,.mast .brand-exact .brand-moon{font-size:16px!important}
.arrival-staged.record-written>img{display:none}.arrival-staged.record-written .final-log{display:flow-root;max-width:430px}.arrival-staged .final-log p{float:none;width:auto}.arrival-staged .final-log p.log-finish{clear:both}
.arrival-staged.record-written.ticket-returned .final-log{display:none}

#signal-marks{position:absolute;inset:0;pointer-events:none;z-index:5}#signal-marks button{position:absolute;transform:translate(-50%,-50%);width:42px;height:42px;min-height:42px;border:1px solid #d9bc7277;border-radius:50%;padding:0;background:radial-gradient(circle,#fff2ad 0 3px,#efc56444 4px,transparent 17px);box-shadow:0 0 12px #edd58355;pointer-events:auto}#signal-marks button.chosen{outline:2px solid #bdd5b1}#signal-selection{font:12px/1.5 Georgia;margin:6px 0;color:#d9cba7}.physical-route{margin-top:18px;border:2px ridge #ad9764;padding:14px;background:#263332}.physical-route label,.physical-route small{display:block;font:12px/1.5 Georgia}.physical-route input{width:100%;margin:16px 0;accent-color:#c4ac76;min-height:44px;touch-action:pan-x}.clue.observing{z-index:6}#signal-marks button[hidden]{display:none}

.conductor-note{clear:both;background:#d7c8a3;color:#23312d;border:1px solid #a28d5d;padding:12px 16px;margin:14px 0;font:14px/1.6 Georgia}.conductor-note summary{min-height:44px;display:list-item;cursor:pointer;padding:8px 0}.arrival-staged .conductor-note p{font:15px/1.6 Georgia}.arrival-staged.record-written .conductor-note{display:none}

/* Immersive viewport layout. Browser bars remain under the browser's control. */
html,body{width:100%;height:100%;overflow:hidden;background:#07171c}main{max-width:none;width:100%;height:100%;margin:0;padding:0}main>.mast,main>header{display:none}.scene{position:fixed;inset:0;width:100%;height:100vh;height:100dvh;min-height:0;max-height:none;border:0;border-radius:0}.scene-top{top:max(16px,env(safe-area-inset-top));left:max(14px,env(safe-area-inset-left));right:max(14px,env(safe-area-inset-right));font-size:9px}.sentinel-sound{bottom:max(10px,env(safe-area-inset-bottom));left:max(10px,env(safe-area-inset-left))}main>footer{position:fixed;right:max(10px,env(safe-area-inset-right));bottom:max(10px,env(safe-area-inset-bottom));z-index:20;padding:0;font:12px/1.6 system-ui}main>footer>details{position:relative}main>footer summary{list-style:none;width:44px;height:44px;min-height:44px;border:1px solid #9eafa877;background:#071b1cd9;color:#dfd6ba;border-radius:50%;font-size:0;text-align:center;display:grid;place-items:center}main>footer summary::-webkit-details-marker{display:none}main>footer summary:after{content:'i';font:italic 22px Georgia}main>footer details[open]{width:min(520px,calc(100vw - 24px));max-height:calc(100dvh - 28px);overflow:auto;background:#071b1cf5;border:1px solid #9eafa877;border-radius:8px;padding:16px;color:#cfdbd7;box-shadow:0 8px 40px #000a}main>footer details[open] summary{position:sticky;top:0;margin-left:auto}main>footer details p{padding:0 4px}main:has(.physical-actions)>footer,main:has(.clue:not([hidden]))>footer,main:has(.arrival-resolution)>footer,main:has(.station-panel)>footer{display:none}.clue{max-height:calc(100% - 28px)}

.mirror-use{margin:18px 0}.mirror-use>button{width:100%;min-height:44px}.pocket-reflection{margin:16px auto;padding:18px 8px 10px;border:8px ridge #a78c4d;border-radius:28px;background:linear-gradient(130deg,#afc3cb,#eef4ee 45%,#8eaab9);box-shadow:0 5px 18px #0005;color:#213641}.pocket-reflection>small{display:block;text-align:center}.pocket-reflection .mirror-drawing{gap:12px}.pocket-reflection p{font-size:13px!important;margin:12px 6px 0}.pocket-mirror-object{width:120px;height:160px;margin:10px auto 20px;border:8px ridge #a78c4d;border-radius:28px;background:linear-gradient(130deg,#718e9d,#e3eee9 45%,#8aabbc);position:relative}.pocket-mirror-object:after{content:'';position:absolute;width:24px;height:40px;top:148px;left:40px;background:linear-gradient(90deg,#7b612f,#d5b873,#7b612f);border-radius:0 0 12px 12px}.pocket-mirror-object+ p{margin-top:50px}.mirror-use~footer{color:#59655a}

#station-ui .terminal-preview{pointer-events:none}#station-ui .terminal-preview:focus-visible{pointer-events:auto}

.clue.moon-reading{inset:0;left:0;top:0;transform:none;width:100%;height:100%;max-height:none;padding:0;border:0;overflow:hidden;background:linear-gradient(0deg,#02090dd9,transparent 80%);color:#eee1c7;box-shadow:none}.moon-reading>small,.moon-reading>h3{position:absolute;left:20px;top:55px;z-index:2;text-shadow:0 2px 5px #000}.moon-reading>h3{top:72px;font-size:22px}.moon-reading #close-clue{z-index:10;top:10px;right:10px;color:#eee1c7;background:#071b1ccc}.moon-reading #clue-body{margin:0;height:100%;font-family:Georgia}.moon-workbench{position:relative;height:100%;overflow:hidden}.moon-paper{position:absolute;left:7%;right:7%;top:28%;height:35%;padding:18px 12px;background:repeating-linear-gradient(0deg,#c5b48c,#c5b48c 27px,#a7957422 28px);color:#302e27;box-shadow:0 12px 30px #000b;transform:perspective(850px) rotateX(18deg) rotateZ(-5deg);filter:brightness(.38);transition:transform .8s,filter .8s}.moon-paper>small{font:9px system-ui;letter-spacing:.14em}.moon-paper .hand{font:15px Georgia;margin:12px 0}.moon-paper .mirror-drawing{gap:8px;padding:10px 0}.moon-paper .mirror-drawing span{width:70px;height:85px}.moon-paper .paper-caption{font:12px Georgia;margin-top:5px}.placed-mirror{position:absolute;left:4%;right:4%;top:30%;height:58%;border:9px ridge #a58a4d;border-radius:22px;background:linear-gradient(125deg,#08151f,#25353f 55%,#111b26);box-shadow:5px 8px 12px #0008;z-index:2}.placed-mirror:after{content:'';position:absolute;right:40%;top:100%;height:35px;width:30px;background:linear-gradient(90deg,#6d532c,#b79a58,#6d532c);border-radius:0 0 10px 10px}.lunar-reflection{opacity:0;transition:opacity .65s}.moonlit .moon-paper{transform:perspective(850px) rotateX(18deg) rotateZ(-2deg) translateY(-5%);filter:brightness(1.12)}.moonlit .placed-mirror{background:linear-gradient(125deg,#778e9d,#d0dce0 55%,#7897ae);box-shadow:0 0 28px #c3e0fa66,5px 8px 12px #0008}.moonlit .lunar-reflection{opacity:1}.moon-beam{position:absolute;inset:10% 2% 25%;background:linear-gradient(125deg,transparent 20%,#c5e1ff05 30%,#c5e1ff45 48%,#b0ceef15 60%,transparent 65%);clip-path:polygon(5% 0,30% 0,100% 100%,0 100%);opacity:.18;transition:opacity .8s;pointer-events:none}.moonlit .moon-beam{opacity:1}.moon-actions{position:absolute;left:5%;right:5%;bottom:max(12px,env(safe-area-inset-bottom));padding:12px;background:#041319d9;border:1px solid #97b2bc55;display:flex;flex-wrap:wrap;gap:8px}.moon-actions p{width:100%;margin:0 0 4px;font:14px/1.5 Georgia}.moon-actions button{flex:1;min-width:135px;font-size:12px}.moon-actions #return-notebook{background:transparent;color:#e7ddc5}.scene:has(.moon-reading) #money-hud,.scene:has(.moon-reading) .scene-top{visibility:hidden}@media(min-width:700px){.moon-paper{left:25%;right:25%;top:24%;height:40%;padding:25px}.moon-actions{left:25%;right:25%}.moon-reading>small,.moon-reading>h3{left:25%}.moon-paper .mirror-drawing{justify-content:space-around}.placed-mirror{top:32%}}@media(max-height:550px){.moon-paper{left:7%;right:48%;top:20%;height:68%;padding:8px}.moon-actions{left:55%;right:3%;bottom:10px}.moon-reading>small,.moon-reading>h3{display:none}.moon-paper .hand{margin:6px 0;font-size:12px}.moon-paper .mirror-drawing{padding:0}.moon-paper .paper-caption{display:none}.placed-mirror{top:28%;height:62%}}
/* The mirror rests on the upper edge of the paper, angled toward the exposed drawing. */
.moon-paper{top:24%;height:43%;padding:14px 12px;overflow:visible}.moon-paper>.hand{margin:8px 0}.moon-paper>.moon-original{position:absolute;left:2%;right:2%;bottom:18px;padding:0;filter:brightness(.48);transition:filter .8s}.moon-paper>.paper-caption{position:absolute;left:12px;bottom:-2px;margin:0;font-size:10px}.placed-mirror{left:3%;right:3%;top:23%;height:43%;transform:perspective(700px) rotateX(-22deg);transform-origin:bottom center;border-width:7px}.placed-mirror:after{height:24px;width:22px;right:44%;background:linear-gradient(90deg,#6d532c,#b79a58,#6d532c)}.placed-mirror>.mirror-drawing{height:100%;padding:0;align-items:center;justify-content:space-around}.placed-mirror .mirror-drawing span{height:76px;width:62px}.placed-mirror .mirror-drawing i{width:52px;height:52px;left:5px}.placed-mirror .mirror-drawing i:after{left:22px}.moonlit .moon-original{filter:brightness(1)}.moonlit .moon-paper{filter:brightness(1.05)}@media(min-width:700px){.moon-paper{top:22%;height:47%}.placed-mirror{top:20%;height:45%}.moon-paper>.moon-original{bottom:30px}.moon-paper>.paper-caption{bottom:4px}}@media(max-height:550px){.moon-paper{top:12%;height:78%}.placed-mirror{top:25%;height:43%}.moon-paper>.moon-original{bottom:10px}.moon-paper>.hand{font-size:11px}.moon-paper>.paper-caption{display:none}.moon-paper>small{font-size:8px}.moon-paper .mirror-drawing span{height:65px}.placed-mirror .mirror-drawing span{height:60px}.placed-mirror .mirror-drawing i{height:43px;width:43px}.placed-mirror .mirror-drawing i:after{left:17px;top:3px}}
.lunar-aperture{position:absolute;left:4%;top:13%;width:105px;height:110px;background:linear-gradient(#06152c,#152a3c);border:8px ridge #263c44;box-shadow:0 0 22px #8ebbe233;transform:perspective(500px) rotateY(12deg);opacity:.8}.lunar-aperture:after{content:'';position:absolute;inset:0;border-left:4px solid #263c44;left:48%}.lunar-aperture i{position:absolute;left:18px;top:15px;width:22px;height:22px;background:#d1dde4;border-radius:50%;box-shadow:0 0 20px #dae9ff77}.placed-mirror{transform:perspective(500px) rotateX(-38deg);box-shadow:8px 19px 12px #0009}.moonlit .placed-mirror{box-shadow:1px 1px 10px #c3e0fa33,8px 19px 12px #0009}@media(min-width:700px){.lunar-aperture{left:19%;top:11%;width:130px;height:140px}}@media(max-height:550px){.lunar-aperture{left:1%;top:3%;width:80px;height:75px}}
.placed-mirror>.mirror-drawing{flex-direction:row-reverse}
#backpack-button{position:absolute;left:14px;bottom:66px;z-index:24;width:58px;height:61px;min-height:0;border:1px solid #9ba99d77;border-radius:12px;background:#091d21e8;color:#eee2c7;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:3px;box-shadow:0 3px 12px #0007}#backpack-button span{font-size:27px;line-height:32px}#backpack-button small{font:10px Georgia}.inventory-panel{position:absolute;z-index:80;left:5%;right:5%;top:12%;bottom:12%;max-width:440px;margin:auto;overflow:auto;background:linear-gradient(130deg,#182d31f5,#06151bf8);border:1px solid #ad9870;color:#eaddc1;box-shadow:0 12px 60px #000c;padding:28px 20px;box-sizing:border-box;border-radius:14px}.inventory-panel>small{font:9px system-ui;letter-spacing:.15em;color:#bdcbbd}.inventory-panel h3{font:27px Georgia;margin:8px 0 18px}.inventory-close{position:absolute;right:10px;top:10px;border:0;background:transparent;color:#eee2c7;font-size:26px;min-height:40px;width:40px;padding:0}.inventory-coins{padding:10px 0;border-bottom:1px solid #ac9c6f55;font:14px Georgia}.inventory-list article{display:flex;gap:15px;padding:16px 0;border-bottom:1px solid #ac9c6f33}.inventory-list article>span{display:grid;place-items:center;flex:0 0 42px;height:42px;border:1px solid #a7976755;border-radius:8px;font-size:26px;background:#fff1}.inventory-list h4{font:17px Georgia;margin:0 0 6px}.inventory-list p,.inventory-empty{font:13px/1.5 Georgia;margin:0;color:#cad0c7}.inventory-foot{font:11px/1.6 Georgia;color:#b4bfb5;margin-top:24px}.scene:has(.moon-reading) #backpack-button{visibility:hidden}@media(min-width:700px){#backpack-button{left:18px;bottom:70px}.inventory-panel{top:14%;bottom:14%}}
/* Upright mirror along the left edge: left/right reversal, same symbol order. */
.moon-paper{top:24%;height:44%}.moon-paper>.moon-original{left:53%;right:1%;top:22%;bottom:20px;display:flex;flex-direction:column;justify-content:space-around;align-items:center;gap:0}.moon-original span,.placed-mirror .mirror-drawing span{height:68px!important;width:68px!important;font-size:17px}.moon-original i,.placed-mirror .mirror-drawing i{width:48px!important;height:48px!important;left:10px!important;top:18px!important}.moon-original i:after,.placed-mirror .mirror-drawing i:after{left:20px!important;top:4px!important}.placed-mirror{left:2%;right:50%;top:22%;height:68%;border-radius:17px;transform:perspective(450px) rotateY(22deg);transform-origin:right center}.placed-mirror>.mirror-drawing{display:flex;flex-direction:column;justify-content:space-around;height:100%;gap:0}.placed-mirror:after{right:38%;height:20px;width:20px}.moon-paper>.paper-caption{bottom:-4px;font-size:9px}.moon-paper .hand{font-size:13px}.moonlit .moon-paper{transform:perspective(850px) rotateX(10deg) rotateZ(-2deg) translateY(-5%)}@media(min-width:700px){.moon-paper{left:32%;right:32%;top:20%;height:49%}.moon-paper>.moon-original{bottom:20px}.placed-mirror{top:22%;height:68%}.moon-paper>.paper-caption{bottom:0}}@media(max-height:550px){.moon-paper{left:5%;right:49%;top:10%;height:80%}.moon-original span,.placed-mirror .mirror-drawing span{height:54px!important}.moon-original i,.placed-mirror .mirror-drawing i{height:38px!important;width:38px!important;left:15px!important;top:14px!important}.moon-original i:after,.placed-mirror .mirror-drawing i:after{left:15px!important}.placed-mirror{height:68%}}
.moon-paper>.paper-caption{bottom:0;left:8px;right:4px;white-space:nowrap;font-size:10px;line-height:15px;background:#c5b48c;color:#242b2a;text-align:center;z-index:3;padding:1px}.placed-mirror:after{height:14px}@media(min-width:700px){.moon-paper>.paper-caption{font-size:12px;line-height:18px}}
#backpack-button{left:auto;right:14px;top:108px;bottom:auto}.scene:has(.station-panel) #backpack-button{visibility:hidden}
#backpack-button svg{height:31px;width:28px;color:#dfd2ad}.inventory-list article>span svg{width:23px;height:29px}.scene:has(.inventory-panel) #backpack-button{visibility:hidden}
#needs-hud{position:absolute;left:14px;top:43px;z-index:20;width:117px;padding:8px;background:#081b20d9;border:1px solid #9fa98955;border-radius:7px;pointer-events:none}#needs-hud>div{display:flex;align-items:center;gap:8px;margin:3px 0}#needs-hud span{font:10px Georgia;width:37px;color:#e7ddc8}#needs-hud meter{width:68px;height:9px;appearance:none}#needs-hud meter::-webkit-meter-bar{background:#354340;border:0}#needs-hud meter::-webkit-meter-optimum-value{background:#b8a36a}.inventory-needs{font:13px Georgia;color:#cfd8c5}.inventory-feedback{font:13px/1.6 Georgia;color:#d8c394;min-height:20px}.inventory-list button{font:12px Georgia;margin-top:8px;padding:8px 15px;background:#d4be86;color:#183130;border:0;border-radius:4px}.inventory-list button:disabled{opacity:.4}.scene:has(.moon-reading) #needs-hud{visibility:hidden}.inventory-panel{top:10%;bottom:8%}.inventory-list article{padding:12px 0}.inventory-foot{margin-top:12px}
