:root{color-scheme:dark;--ink:#e9ebe3;--muted:#95a29e;--accent:#d4bc85;--border:#b6c4ba24;font-family:'Avenir Next',Avenir,-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;color:var(--ink);background:#030708}*{box-sizing:border-box}body{margin:0;overflow:hidden;overscroll-behavior:none}button,input{font:inherit}button{cursor:pointer;color:inherit;background:transparent;border:1px solid var(--border);border-radius:2px;padding:9px 15px}button:hover{background:#dbe8dc08;border-color:#b6c4ba55}button:disabled{opacity:.4;cursor:default}button:focus-visible,input:focus-visible,a:focus-visible{outline:1px solid var(--accent);outline-offset:3px}a{color:inherit;text-decoration:none}h1,h2,h3,p{margin:0}h1,h2{font-weight:400;letter-spacing:-.045em}h2{font-size:32px;line-height:1.2}p{line-height:1.65;color:#bbc7bf}.eyebrow{font-size:10px;font-weight:500;letter-spacing:.2em;text-transform:uppercase;color:var(--accent)}.primary{background:var(--accent);color:#0e1714;border-color:var(--accent)}.primary:hover{background:#eee2c7;color:#0e1714}.quiet{border-color:transparent;color:var(--muted);background:transparent}small{font-size:11px;color:var(--muted)}
#app{width:100%;height:100dvh;display:grid;grid-template-rows:minmax(0,1fr) auto 40px;grid-template-columns:minmax(0,1fr);overflow:hidden}.scene-wrap{grid-row:1;min-width:0;min-height:0;display:grid;place-items:center;container-type:size;background:#030708;overflow:hidden}.scene{position:relative;width:min(100cqw,calc(100cqh * 16 / 9));aspect-ratio:16/9;isolation:isolate;overflow:hidden}.scene-photo{position:absolute;inset:0;width:100%;height:100%;object-fit:fill;pointer-events:none;user-select:none}.scene-hit{position:absolute;z-index:2;margin:0;padding:0;border:0!important;background:none!important;box-shadow:none!important;border-radius:0;cursor:pointer;color:transparent;outline:0}.scene-hit.detail{z-index:3;cursor:crosshair}.scene-hit.locked{cursor:help}.scene-hit:focus-visible{outline:1px dotted #fff7;outline-offset:-1px}.scene-hit::before,.scene-hit::after{display:none!important}.world-bar{grid-row:3;min-width:0;display:flex;align-items:center;gap:18px;height:40px;padding:0 20px;background:#070e10;border-top:1px solid #ffffff0b;z-index:5}.world-bar button{border:0;border-radius:0;font-size:11px;padding:10px 7px;white-space:nowrap;color:#9caaa3}.world-bar button:hover{color:#eceddf;background:none}.room-name{padding-left:0!important;max-width:28%;overflow:hidden;text-overflow:ellipsis;color:#d9dfd5!important;text-align:left}.hover-label{flex:1;min-width:0;color:#dccb9b;font-size:11px;white-space:nowrap;text-overflow:ellipsis;overflow:hidden;opacity:0}.hover-label.visible{opacity:1}.tools{display:flex;align-items:center;gap:3px;flex-shrink:0}.save-note{font-size:9px;letter-spacing:.04em;color:#7b9588;white-space:nowrap}.observation-tray{grid-row:2;display:grid;grid-template-columns:minmax(0,1fr) auto;grid-template-areas:'title close' 'text close';column-gap:24px;padding:15px max(24px,calc((100vw - 1100px)/2));background:#0b1416;border-top:1px solid #b8c8bb20;max-height:24dvh;overflow:auto;animation:appear .16s ease-out}.observation-title{grid-area:title;color:#d9dfd3;font-size:11px;margin-bottom:5px;letter-spacing:.04em}.observation-tray p{grid-area:text;font-size:13px;line-height:1.65;white-space:pre-line;color:#aebbaf}.observation-actions{grid-area:close;align-self:center;display:flex;flex-direction:column;align-items:flex-end;gap:5px}.observation-tray button{font-size:10px;white-space:nowrap}.reading .scene-wrap{background:#020608}@keyframes appear{from{opacity:0}to{opacity:1}}
.splash{position:fixed;inset:0;z-index:40;display:grid;align-items:center;padding:8vw;background:#051014}.splash-bg{position:absolute;inset:0;background-position:center;background-size:cover}.splash:after{content:'';position:absolute;inset:0;background:linear-gradient(90deg,#020a0deb,#04101285 57%,#05101315),linear-gradient(0deg,#010508bb,transparent)}.splash-content{position:relative;z-index:2;max-width:650px}.splash .eyebrow{font-size:11px;letter-spacing:.3em}.splash h1{font-size:clamp(54px,6.6vw,106px);line-height:.99;margin:25px 0;color:#f3eee1}.splash p{font-size:14px;max-width:460px;margin:24px 0 30px;color:#bfcbbf}.start-buttons{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.start-buttons button{padding:13px 25px}.start-buttons .quiet{padding-inline:15px;font-size:12px}.splash-detail{display:flex;gap:24px;margin-top:40px;font-size:9px;letter-spacing:.12em;text-transform:uppercase;color:#9fb1a6}.splash-link{position:absolute;z-index:2;top:28px;left:34px;font-size:10px;letter-spacing:.15em;color:#a5b5a9}.splash-credit{position:absolute;z-index:2;right:34px;bottom:24px;font-size:9px;letter-spacing:.08em;color:#9ba99f}
/* Requested utility views replace the world rather than floating cards over it. */
.modal-shade{position:fixed;inset:0;z-index:70;background:#081214;display:grid;place-items:start center;overflow:auto;animation:appear .12s ease-out}.modal{position:relative;width:100%;max-width:850px;min-height:100%;padding:65px 40px 90px;background:none;border:0;box-shadow:none}.modal.wide{max-width:1080px}.modal .close{position:absolute;left:32px;top:17px;font-size:11px;padding:6px 9px;border:0;color:#a5b7ab}.modal h2{margin:12px 0 25px}.modal p{font-size:14px;white-space:pre-line}.modal .body{font-size:14px;line-height:1.75;color:#bdcabe}.modal .actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:28px}.subtle{font-size:11px!important;color:#8fa294!important;margin-top:15px}.journal-search{width:100%;margin-bottom:15px;padding:12px 0;color:#e0e6db;background:transparent;border:0;border-bottom:1px solid #a8c1ac33;border-radius:0}.journal-entry{padding:19px 0;border-bottom:1px solid #b0c3b119}.journal-entry h3{font-size:16px;letter-spacing:-.02em;font-weight:400;margin-bottom:8px}.journal-entry p{font-size:13px}.journal-entry small{display:block;margin-top:9px;font-size:10px;letter-spacing:.03em}.map-chapter{margin:25px 0}.map-chapter h3{font-size:10px;text-transform:uppercase;letter-spacing:.16em;font-weight:500;color:var(--accent);margin-bottom:12px}.map-rooms{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px}.map-room{font-size:12px;text-align:left;min-height:56px;padding:12px 15px}.map-room small{display:block;margin-top:6px;font-size:9px;color:#829a8b}.map-room.here{border-color:var(--accent);color:var(--accent)}.settings-row{display:flex;justify-content:space-between;align-items:center;gap:20px;margin:24px 0;font-size:13px;color:#b8c9bb}.settings-row input{accent-color:var(--accent)}.file-input{display:none}.stats{display:flex;gap:30px;padding-top:24px;margin-top:30px;border-top:1px solid #b0c3b120;color:#9caf9f;font-size:11px}.stats strong{display:block;font-size:30px;color:#e4e9db;font-weight:400}.win h2{font-size:44px}.travel-map{position:relative;aspect-ratio:1.7;border:1px solid #a9c4af22;background:radial-gradient(ellipse at 35% 50%,#657e6030,transparent 45%),repeating-linear-gradient(0deg,transparent 0 39px,#81a49b10 39px 40px),repeating-linear-gradient(90deg,#0b1718 0 39px,#81a49b10 39px 40px);overflow:hidden;margin:25px 0}.destination{position:absolute;transform:translate(-50%,-50%);border:0;background:#102127e0;display:grid;gap:4px;padding:9px;font-size:10px;max-width:28%;text-align:center}.destination:before{content:'·';font-size:26px;color:var(--accent);line-height:1}.destination.current:before{content:'◆';font-size:16px}.destination.locked{opacity:.4}.route-line{position:absolute;inset:0;pointer-events:none;width:100%;height:100%}.route-line line{stroke:#8aac9766;stroke-width:.4;stroke-dasharray:1 1}
/* Inspection scenes: controls coincide with actual pictured hardware, with only face printing and state light. */
.device-view{position:fixed;inset:0;z-index:45;display:grid;grid-template-rows:minmax(0,1fr) auto 44px;background:#030708;animation:appear .18s ease-out}.device-viewport{min-height:0;min-width:0;display:grid;place-items:center;overflow:hidden;container-type:size}.device-scene{position:relative;width:min(100cqw,calc(100cqh * 16 / 9));aspect-ratio:16/9}.device-photo{position:absolute;inset:0;width:100%;height:100%;object-fit:fill;pointer-events:none;user-select:none}.device-control{position:absolute;display:grid;place-items:center;padding:0;border:0!important;background:transparent!important;box-shadow:none;border-radius:2px;cursor:pointer;color:#1d2826;text-shadow:0 1px #ffffff33}.device-control:hover{background:transparent!important}.device-control:focus-visible{outline:1px dotted #f4e7ca80;outline-offset:-2px}.device-print{pointer-events:none;padding:5%;font-size:clamp(8px,1.15vw,17px);font-weight:600;letter-spacing:.035em;text-transform:uppercase;line-height:1.1;text-align:center}.device-legend{position:absolute;left:-25%;right:-25%;top:100%;padding-top:5px;text-align:center;line-height:1.1;font-size:clamp(7px,.78vw,12px);font-weight:600;text-transform:uppercase;letter-spacing:.03em;pointer-events:none;color:#26322e;text-shadow:0 1px #fff3}.device-digit{pointer-events:none;font-family:'Courier New',monospace;font-size:clamp(15px,3vw,42px);font-weight:700;color:#121e19;text-shadow:0 1px #ffffff55}.device-control.selected .device-print{color:#4c1d10;text-decoration:underline;text-underline-offset:6px}.device-control.pressed{background:#def4d212!important;box-shadow:inset 0 0 20px #e0e8a218}.device-cell{border-radius:5px}.device-cell.on{background:#cff4ab77!important;box-shadow:inset 0 0 18px #f4ffda88,0 0 18px #b8f1a333}.device-switch.on{background:linear-gradient(0deg,#e6ffab33,transparent 24%)!important}.device-readout{position:absolute;display:grid;place-items:center;background:transparent;border:0;border-radius:0;padding:1% 2%;color:#d9e9c6;text-shadow:0 0 10px #90d19a55;font-family:'Courier New',monospace;font-weight:500;box-shadow:none;text-align:center}.device-code{font-size:clamp(15px,3vw,42px);letter-spacing:.18em;text-transform:uppercase;outline:0!important;caret-color:#d9e9c6}.device-sequence-readout{font-size:clamp(8px,.92vw,15px);line-height:1.2}.device-caption{padding:12px 30px;background:#0a1417;border-top:1px solid #bfd3bf18;color:#afc2b1;font-size:13px;line-height:1.55;min-height:43px;max-height:22dvh;overflow:auto;text-align:center}.device-toolbar{height:44px;display:flex;align-items:center;gap:12px;padding:0 22px;background:#071013;border-top:1px solid #bfd3bf12}.device-toolbar button{border:0;padding:10px 8px;font-size:11px;color:#b6c8b8;white-space:nowrap}.device-toolbar button:hover{background:none;color:#fff0cb}.device-name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;font-size:11px;color:#799684;white-space:nowrap}.device-toolbar .device-test{color:var(--accent)}.device-control:disabled{opacity:1}.accepted .device-caption{color:#dbeeb9}.device-lunar .device-print,.device-lunar .device-legend{color:#172b32}.device-lunar .device-digit{color:#121f22}.toast-line{padding:12px 0;font-size:12px;color:var(--accent)}
.drive-overlay{position:fixed;inset:0;z-index:46;display:grid;grid-template-rows:1fr;background:#020608}.drive-canvas{width:100%;height:100%;min-height:0}.drive-status{position:absolute;top:28px;left:32px;right:32px;display:flex;justify-content:space-between;font-size:10px;letter-spacing:.1em;color:#bbcfc1;text-shadow:0 2px 8px #000}.drive-controls{position:absolute;bottom:26px;left:50%;transform:translateX(-50%);display:flex;gap:10px}.drive-controls button{background:#0b171bcc;min-height:42px;font-size:11px;color:#b9c9bd}.drive-info{position:absolute;left:32px;bottom:30px;max-width:280px;font-size:10px;line-height:1.8;color:#8ea59d}.reduce-motion *{animation:none!important;transition:none!important}
@media(max-width:900px){.world-bar{padding:0 10px;gap:7px}.world-bar button{font-size:10px;padding:10px 5px}.hover-label{font-size:10px}.room-name{max-width:24%}.save-note{display:none}.modal{padding:60px 24px 70px}.modal .close{left:18px}.map-rooms{grid-template-columns:repeat(2,minmax(0,1fr))}.observation-tray{padding:12px 18px;column-gap:12px}.observation-tray p{font-size:12px}.device-toolbar{gap:5px;padding:0 10px}.device-toolbar button{font-size:10px;padding:10px 6px}.device-caption{padding:10px 18px;font-size:12px}.drive-info{display:none}.drive-controls{bottom:15px;width:95%;justify-content:center}.drive-controls button{padding:10px 12px}.splash{padding:8vw}.splash h1{font-size:58px}.splash-detail{gap:14px;font-size:8px}.splash p{font-size:13px}.destination{font-size:8px;min-width:55px}.device-name{font-size:9px}}
@media(max-width:600px){.hover-label{display:none}.tools{margin-left:auto}.world-bar .room-name{max-width:28%}.world-bar #sound{display:none}.world-bar button{font-size:9px}.observation-tray{grid-template-columns:1fr;grid-template-areas:'title' 'text' 'close';max-height:32dvh}.observation-actions{align-items:flex-start;flex-direction:row;gap:15px}.observation-tray button{padding:4px 0;margin-top:8px}.splash h1{font-size:48px}.device-name{display:none}.device-toolbar{justify-content:space-between}.map-rooms{grid-template-columns:1fr}}
@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}

.sr-only{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.observation-title{font-weight:500;letter-spacing:.02em}.ending-details{font-size:10px!important}

.passage-choices{grid-column:1;display:flex;gap:8px;flex-wrap:wrap;margin-top:10px}.passage-choices button{padding:7px 12px;font-size:11px;border:1px solid var(--border);color:#d9dfd3}.passage-choices button:hover{color:var(--accent)}

.device-face-label{position:absolute;display:grid;place-items:center;pointer-events:none;text-transform:uppercase;text-align:center;font-size:clamp(7px,.85vw,13px);font-weight:600;letter-spacing:.035em;line-height:1.1;color:#202c25;text-shadow:0 1px #fff3;padding:1px}.device-lunar .device-face-label{color:#172b32}

/* Moving hardware stays inside the photographed scene. */
.door-motion{position:absolute;z-index:1;overflow:hidden;pointer-events:none;background:#030808;perspective:700px}.door-motion.pressure-door{border-radius:10%}.door-beyond{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;filter:brightness(.5);pointer-events:none}.door-leaf{position:absolute;inset:0;overflow:hidden;transform-origin:left center;backface-visibility:hidden;will-change:transform}.opening-guide{grid-row:2;margin:0;padding:10px 24px;background:#0b1416;border-top:1px solid #b8c8bb20;color:#d4dfcb;font-size:13px;line-height:1.5;text-align:center}.reading .opening-guide{display:none}
/* Registered photo crops: these are the actual key faces and lever slots. */
.device-hardware-patch{position:absolute;inset:0;display:block;background-repeat:no-repeat;pointer-events:none;user-select:none;transform-origin:50% 50%;transition:transform 90ms ease-out,filter 90ms ease-out;z-index:0}
.device-control .device-print{position:relative;z-index:1;transition:transform 90ms ease-out}
.device-control.is-depressed .device-hardware-patch{transform:translateY(4%) scale(.985);filter:brightness(.78)}
.device-control.is-depressed .device-print{transform:translateY(4%)}
.device-switch .device-hardware-patch{opacity:0;transform:none;filter:none;transition:opacity 150ms ease-in-out}
.device-switch.on .device-hardware-patch{opacity:1}
.device-switch.on{background:transparent!important;box-shadow:none}
.device-switch-label{display:flex;flex-direction:column;justify-content:center;align-items:center;gap:1px}
.device-switch-state{display:block;font-size:.68em;line-height:1;letter-spacing:.12em;font-weight:700}
.device-spare-label{opacity:.62;font-size:clamp(6px,.7vw,11px)}
.device-input-status{display:block;margin-top:3px;color:#859d8c;font-size:11px;line-height:1.4}
.device-cell.on .device-hardware-patch{filter:brightness(1.45) saturate(1.2);box-shadow:inset 0 0 18px #cff4ab66}
.device-cell.on.is-depressed .device-hardware-patch{filter:brightness(1.1) saturate(1.2)}
@media(prefers-reduced-motion:reduce){.device-hardware-patch,.device-control .device-print{transition:none}}
.reduce-motion .device-hardware-patch,.reduce-motion .device-control .device-print{transition:none}
