:root{color-scheme:dark;--bg:#0b0e0b;--ink:#c9d2bc;--bright:#e0e7d4;--dim:#89917e;--line:#374031;--accent:#c4ad70;--green:#a8c18b;font-family:'Courier New',Courier,monospace;font-synthesis:none;background:#111410;color:var(--ink)}*{box-sizing:border-box}body{margin:0;font-size:16px}button,input{font:inherit}button{color:inherit;cursor:pointer}button:focus-visible,a:focus-visible,input:focus-visible,[tabindex]:focus-visible{outline:2px solid var(--accent);outline-offset:4px}button:hover{color:var(--bright)}.machine{max-width:1480px;margin:0 auto;padding:30px 42px 18px}.masthead{display:flex;justify-content:space-between;gap:16px;border-bottom:1px solid var(--line);padding-bottom:17px;font-size:13px;letter-spacing:1px}.imprint{color:var(--bright)}.imprint span,.edition{color:var(--dim)}.edition span{padding:0 10px;color:var(--accent)}.title-row{display:flex;justify-content:space-between;align-items:center;padding:30px 0 28px}h1{font-size:48px;font-weight:normal;letter-spacing:-2.5px;line-height:1;margin:0;color:var(--bright);text-shadow:0 0 16px #d4e5aa12}.block{font-size:37px;color:var(--green);margin-left:13px}p{line-height:1.6}.title-row p{font-size:14px;color:var(--dim);margin:10px 0 0}.chapter-label{font-size:13px;color:var(--dim);text-align:right;line-height:1.8;letter-spacing:1px}.chapter-label strong{color:var(--ink);font-weight:normal}.console-layout{display:grid;grid-template-columns:200px minmax(360px,1fr) 222px;align-items:stretch;gap:22px}.panel{border-top:1px solid var(--line);padding-top:14px;min-width:0}h2{font-size:14px;font-weight:normal;letter-spacing:1px;margin:0 0 20px;display:flex;justify-content:space-between;color:var(--ink)}h2 span{color:var(--dim)}h3{font-size:12px;letter-spacing:.7px;font-weight:normal;color:var(--dim);margin:0 0 16px}.terminal{background:var(--bg);border:1px solid #536048;display:flex;flex-direction:column;min-width:0;height:580px;box-shadow:0 0 35px #0003;position:relative}.status-bar{background:var(--ink);color:#141910;display:flex;justify-content:space-between;gap:12px;padding:9px 15px;font-size:13px;letter-spacing:.4px}.status-bar strong{font-weight:bold}.status-bar span{white-space:nowrap}.transcript{position:relative;overflow:auto;overscroll-behavior:contain;flex:1;padding:26px 28px 20px;scrollbar-width:thin;scrollbar-color:#4a5441 var(--bg);font-size:16px;line-height:1.55;min-height:180px}.entry{white-space:pre-wrap;margin:0 0 22px;overflow-wrap:anywhere}.entry p{margin:0;line-height:inherit}.entry .room-heading{color:var(--bright);font-weight:bold;letter-spacing:1px;margin:0 0 14px;font-size:16px}.entry.command{color:var(--accent);margin-bottom:10px}.entry.system{color:var(--dim);font-size:14px}.entry.ending{border-top:1px dashed var(--line);padding-top:22px;color:var(--accent)}.input-area{padding:16px 22px 13px;border-top:1px solid var(--line)}form{display:flex;align-items:center;gap:12px}form label{color:var(--green);font-size:21px}input{background:transparent;color:var(--bright);width:100%;border:0;outline:none;min-width:0;caret-color:var(--green);font-size:16px;padding:6px 0}input::placeholder{color:#7c8573}input:focus-visible{outline:none}form:focus-within label{color:var(--bright)}form button{background:transparent;border:1px solid var(--line);font-size:22px;line-height:1;padding:4px 9px}.input-help{display:flex;justify-content:space-between;align-items:center;font-size:11px;letter-spacing:.3px;margin-top:13px;color:var(--dim);gap:8px}.input-help button{background:none;border:0;padding:0;font-size:12px;color:var(--ink)}#inventory{display:grid;grid-template-columns:1fr 1fr;gap:9px}.item{height:112px;border:1px solid var(--line);background:var(--bg);padding:7px 3px 9px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;min-width:0}.item:hover{border-color:var(--accent)}.item span:last-child{font-size:12px;text-align:center}.sprite{display:block;width:60px;height:60px;background-image:url('./assets/inventory.png');background-size:300% 300%;background-repeat:no-repeat;image-rendering:pixelated}.slot{height:112px;border:1px dotted #30372b;display:flex;align-items:center;justify-content:center;color:#4a5442;font-size:18px}.inventory-foot{font-size:10px;color:var(--dim);line-height:1.6;letter-spacing:.3px;margin:13px 0 25px}.valuables{padding-top:18px;border-top:1px solid var(--line)}.treasures{display:flex;gap:8px}.treasure{border:1px solid var(--line);height:28px;width:28px;display:grid;place-items:center;color:#646f58;font-size:14px}.treasure.found{color:var(--accent);border-color:var(--accent)}.valuables p{font-size:13px;color:var(--dim);margin-top:10px}.chapter-progress{margin:24px 0}.progress-heading{display:flex;justify-content:space-between;font-size:11px;color:var(--dim);letter-spacing:.4px}.progress-heading b{font-weight:normal;color:var(--ink)}.progress-bar{height:8px;border:1px solid var(--line);margin-top:11px;padding:1px}.progress-bar i{display:block;width:0;height:100%;background:var(--green);transition:width .3s}#objectives{list-style:none;padding:0;margin:0 0 27px}#objectives li{position:relative;padding:0 0 19px 24px;font-size:14px;line-height:1.45;color:var(--dim)}#objectives li:before{content:'□';position:absolute;left:0;top:0;color:var(--dim)}#objectives li.done{color:var(--green)}#objectives li.done:before{content:'✓';color:var(--green)}#objectives li.current{color:var(--bright)}.where-next{padding-top:20px;border-top:1px solid var(--line)}#exits{display:flex;flex-direction:column;gap:10px}#exits button{border:0;background:none;text-align:left;padding:0;font-size:13px;line-height:1.4}#exits button span{color:var(--accent);display:inline-block;width:26px}.hint-button{width:100%;margin-top:24px;padding:11px 5px;border:1px solid var(--line);background:transparent;font-size:12px;color:var(--dim)}footer{display:flex;justify-content:space-between;align-items:center;gap:16px;border-bottom:1px solid var(--line);padding:19px 0 17px;font-size:11px;color:var(--dim)}.utilities{display:flex;flex-wrap:wrap;gap:19px}.utilities button{background:none;border:0;padding:4px 0;font-size:12px;color:var(--dim)}#save-status{font-size:10px;text-align:right;line-height:1.6}.below-note{font-size:10px;text-align:center;color:#717b65;letter-spacing:1.2px;padding:18px 0 0}dialog{background:var(--bg);color:var(--ink);border:1px solid var(--ink);max-width:400px;padding:28px}dialog::backdrop{background:#000b}dialog p{font-size:14px}dialog>div{display:flex;gap:18px}dialog button{background:transparent;border:1px solid var(--line);padding:10px;font-size:12px}dialog #confirm-restart{color:var(--accent)}@media(min-width:1450px){.terminal{height:620px}.transcript{font-size:17px;line-height:1.65}}@media(max-width:1100px){.machine{padding:24px}.console-layout{grid-template-columns:156px minmax(320px,1fr) 184px;gap:16px}.transcript{padding:22px 20px}.item,.slot{height:96px}.sprite{width:49px;height:49px}.status-bar{font-size:12px}.input-help{font-size:10px}.input-help span{letter-spacing:0}.inventory-foot{font-size:10px}}@media(max-width:850px){.machine{padding:20px}.console-layout{grid-template-columns:1fr 1fr;gap:22px}.terminal{grid-column:1/-1;grid-row:1;height:580px}.inventory-panel{grid-column:1}.journal-panel{grid-column:2}#inventory{grid-template-columns:repeat(3,1fr)}.item,.slot{height:94px}.title-row{padding:25px 0}.chapter-label{font-size:11px}.edition{font-size:11px}.masthead{font-size:12px}.inventory-foot{margin-bottom:17px}.chapter-progress{margin:20px 0}.where-next{padding-top:16px}.hint-button{margin-top:15px}.utilities{gap:13px}footer{align-items:flex-start}.below-note{font-size:9px}}@media(max-width:480px){.machine{padding:15px 12px}.masthead{font-size:10px;letter-spacing:.3px;gap:8px}.edition{font-size:9px}.edition span{padding:0 4px}.title-row{padding:24px 0 20px;align-items:flex-end}h1{font-size:36px;letter-spacing:-2px}.block{font-size:28px;margin-left:7px}.title-row p{font-size:11px;max-width:190px}.chapter-label{font-size:9px;letter-spacing:0;max-width:112px}.terminal{height:560px;height:min(620px,74svh);min-height:420px}.transcript{font-size:16px;padding:21px 17px}.status-bar{font-size:11px;padding:9px 10px}.console-layout{gap:22px 16px}.input-area{padding:12px 15px}.input-help{font-size:9px}.input-help button{font-size:11px}h2{font-size:12px;letter-spacing:.4px}#inventory{grid-template-columns:repeat(2,1fr);gap:7px}.sprite{height:49px;width:49px}.item span:last-child{font-size:10px}.item,.slot{height:90px}#objectives li{font-size:12px;padding-left:20px;padding-bottom:16px}h3{font-size:10px}#exits button{font-size:12px}.treasures{gap:5px}.treasure{width:24px;height:24px}.progress-heading{font-size:10px}.inventory-foot{font-size:9px}footer{flex-direction:column;gap:12px}.utilities{width:100%;justify-content:space-between;gap:5px}.utilities button{font-size:11px}#save-status{text-align:left}.below-note{font-size:8px;letter-spacing:.5px}}@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}
@media(min-width:851px) and (max-height:850px){.machine{padding-top:20px}.masthead{padding-bottom:13px}.title-row{padding:23px 0}h1{font-size:42px}.terminal{height:max(420px,calc(100svh - 270px));max-height:620px}.item,.slot{height:86px}.sprite{height:49px;width:49px}.panel h2{margin-bottom:16px}.inventory-foot{margin:10px 0 19px}#objectives li{padding-bottom:15px}.chapter-progress{margin:20px 0}.hint-button{margin-top:18px}}

/* Low-resolution room map: squares, coordinate dots, and stepped passages. */
.map-panel{margin-bottom:23px;padding-bottom:20px;border-bottom:1px solid var(--line)}.map-panel h2{margin-bottom:12px}.map-frame{position:relative;background:var(--bg);border:1px solid var(--line);padding:8px}.map-north{position:absolute;top:10px;right:10px;text-align:center;font-size:10px;line-height:1.2;color:var(--dim)}#valley-map{display:block;width:100%;height:190px;shape-rendering:crispEdges}.map-grid-dot{fill:#1e261b}.map-path{fill:none;stroke:#252e20;stroke-width:2;stroke-dasharray:2 3}.map-path.explored{stroke:#718461;stroke-dasharray:none}.map-room>rect{fill:#10150e;stroke:#35412c;stroke-width:1}.map-room.explored>rect{fill:#405336;stroke:#a8c18b;stroke-width:2}.map-room.current>rect{fill:#677b4e;stroke:var(--bright)}.map-room.current>.map-player{fill:#f0ddb0;stroke:none}.map-room text{font-family:'Courier New',monospace;font-size:7px;letter-spacing:.3px;fill:#a8c18b}.map-room.current text{fill:#f0ddb0}.map-position{margin:12px 0 9px;font-size:11px;line-height:1.5;color:var(--ink);overflow-wrap:anywhere}.map-position>span:first-child{color:#f0ddb0}.map-legend{display:flex;justify-content:space-between;gap:5px;font-size:9px;color:var(--dim)}.map-legend span{display:flex;align-items:center;gap:5px}.map-legend i{display:inline-block;width:6px;height:6px;border:1px solid #526144;background:#10150e}.map-legend i.lit{background:#a8c18b;border-color:#a8c18b}.journal-panel .chapter-progress{margin:16px 0}.journal-panel #objectives{margin-bottom:15px}.journal-panel #objectives li{padding-bottom:12px}@media(max-width:480px){#valley-map{height:165px}.map-position{font-size:10px}.map-legend{font-size:8px;gap:4px}.map-frame{padding:4px}.map-north{font-size:9px;right:7px;top:7px}}
/* Full cartridge: keep the terminal central as pockets and geography grow. */
.sprite.new-art{background-image:url('./assets/items-full.png');background-size:600% 400%;image-rendering:pixelated}
#inventory{max-height:470px;overflow-y:auto;scrollbar-width:thin;scrollbar-color:#43543c #0b0e0b}
.map-frame{padding:10px 2px 0}
#valley-map{width:100%;height:auto;display:block;image-rendering:pixelated}
.map-room text{font-size:7px}
.entry.chapter,.entry.reward{color:#e4c784;border-left:2px solid #9e8958;padding-left:14px}
.entry.ending{color:#f0dca9;font-weight:bold;font-size:18px}
@media(min-width:1100px){.console-layout{grid-template-columns:190px minmax(450px,1fr) 270px}}
@media(max-width:850px){#inventory{max-height:220px}.map-frame{max-width:360px;margin:auto}}

/* A room's center records completion; the outer frame locates the player. */
.map-room.explored>rect{fill:#10150e}.map-room.current>rect{fill:#10150e}
.map-room.explored>rect.map-complete,.map-room.current>rect.map-complete{fill:#a8c18b;stroke:none}
.map-room>.map-location,.map-room.current>.map-location{fill:none;stroke:#f0ddb0;stroke-width:1}
.map-legend i.finished{background:#a8c18b;box-shadow:inset 0 0 0 1px #10150e}
#room-progress{border-bottom:1px solid var(--line);padding:0 0 13px;margin:0 0 15px}
#room-progress h3{color:var(--green);margin:0 0 8px}#room-progress p{font-size:11px;line-height:1.6;margin:0;color:var(--dim)}
#recent-discoveries:empty{display:none}#recent-discoveries{margin-bottom:18px}
#recent-discoveries h3{margin-bottom:7px}#recent-discoveries button{display:block;text-align:left;background:none;border:0;padding:5px 0;color:var(--accent);font-size:10px;line-height:1.4}

.map-tooltip{position:absolute;bottom:5px;left:5px;right:5px;padding:7px 9px;background:#0b0e0bf5;border:1px solid var(--accent);color:var(--bright);font-size:11px;line-height:1.4;text-align:center;pointer-events:none;z-index:2}
.map-tooltip[hidden]{display:none}.map-room{cursor:help}.map-room:focus{outline:none}.map-room:focus-visible>rect:first-of-type{stroke:var(--accent);stroke-width:2}

#room-progress p{white-space:pre-line}
/* Phone play surface: the story stays central, with one reachable panel at a time. */
.mobile-only{display:none}
@media(max-width:850px){
 body.mobile-ready{overflow:hidden}
 .mobile-ready .machine{position:fixed;top:var(--phone-top,0px);left:0;right:0;height:var(--phone-height,100dvh);max-width:none;margin:0;padding:max(8px,env(safe-area-inset-top)) max(12px,env(safe-area-inset-right)) max(6px,env(safe-area-inset-bottom)) max(12px,env(safe-area-inset-left));display:flex;flex-direction:column;gap:0}
 .mobile-ready .masthead{font-size:12px;letter-spacing:0;padding-bottom:8px;flex-shrink:0}
 .mobile-ready .imprint span,.mobile-ready .edition{display:none}
 .mobile-ready .title-row{padding:12px 0;gap:10px;flex-shrink:0}
 .mobile-ready h1{font-size:30px;letter-spacing:-1.5px}.mobile-ready .block{font-size:24px;margin-left:8px}
 .mobile-ready .title-row p{display:none}.mobile-ready .chapter-label{font-size:12px;line-height:1.4;max-width:48%;letter-spacing:0}
 .mobile-ready .console-layout{display:block;flex:1;min-height:0;overflow:hidden}
 .mobile-ready .terminal{height:100%;min-height:0;max-height:none;box-shadow:none}
 .mobile-ready .transcript{font-size:16px;line-height:1.55;padding:18px 16px;min-height:0;-webkit-overflow-scrolling:touch}
 .mobile-ready .entry{margin-bottom:20px}.mobile-ready .entry.system{font-size:14px}
 .mobile-ready .status-bar{font-size:12px;line-height:1.4;padding:9px 11px;align-items:center}
 .mobile-ready .status-bar strong{overflow-wrap:anywhere}.mobile-ready .status-bar span{font-size:12px}
 .mobile-ready .input-area{padding:8px 10px 4px;flex-shrink:0}
 .mobile-ready form{gap:8px}.mobile-ready input{font-size:16px;min-height:44px}.mobile-ready form button{min-width:44px;min-height:44px}
 .mobile-ready .input-help{margin:0;display:flex;justify-content:space-between;gap:8px}
 .mobile-ready .input-help>span{display:none}.mobile-ready .input-help button{display:block;min-height:44px;min-width:60px;font-size:14px;padding:8px}
 .mobile-ready #mobile-exits{display:flex;gap:6px;overflow:auto;scrollbar-width:thin}
 .mobile-ready #mobile-exits button{flex:1;min-width:58px;min-height:44px;background:transparent;border:1px solid var(--line);font-size:12px;padding:6px;white-space:nowrap}
 .mobile-ready .mobile-tabs{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:5px;flex-shrink:0;order:10;padding-top:8px}
 .mobile-ready .mobile-tabs button{min-height:48px;background:var(--bg);border:1px solid var(--line);font-size:12px;padding:6px 2px;touch-action:manipulation}
 .mobile-ready .mobile-tabs button[aria-pressed=true]{border-color:var(--accent);color:var(--bright);box-shadow:inset 0 -3px var(--accent)}
 .mobile-ready .panel{height:100%;overflow:auto;overscroll-behavior:contain;padding:16px 8px 24px;-webkit-overflow-scrolling:touch}
 .mobile-ready .inventory-panel,.mobile-ready .journal-panel{display:none}
 .mobile-ready[data-mobile-view=pockets] .terminal,.mobile-ready[data-mobile-view=map] .terminal,.mobile-ready[data-mobile-view=notes] .terminal{display:none}
 .mobile-ready[data-mobile-view=pockets] .inventory-panel{display:block}
 .mobile-ready[data-mobile-view=map] .journal-panel,.mobile-ready[data-mobile-view=notes] .journal-panel{display:block}
 .mobile-ready[data-mobile-view=map] .journal-panel>:not(.map-panel){display:none}
 .mobile-ready[data-mobile-view=notes] .map-panel{display:none}
 .mobile-ready .panel h2{font-size:16px;margin-bottom:18px}.mobile-ready .panel h3{font-size:14px}
 .mobile-ready #inventory{grid-template-columns:repeat(auto-fit,minmax(92px,1fr));max-height:none;overflow:visible;gap:10px}
 .mobile-ready .item,.mobile-ready .slot{height:124px}.mobile-ready .sprite{width:64px;height:64px}.mobile-ready .item span:last-child{font-size:14px}
 .mobile-ready .inventory-foot{font-size:12px}.mobile-ready .treasure{height:34px;width:34px}.mobile-ready #treasure-count{font-size:14px}
 .mobile-ready .map-panel{border:0;margin:0;padding:0}.mobile-ready .map-frame{max-width:520px;margin:auto}
 .mobile-ready #valley-map{height:auto;min-height:0;width:100%}
 .mobile-ready .map-position{font-size:14px}.mobile-ready .map-legend{font-size:12px;flex-wrap:wrap;justify-content:flex-start;gap:18px}
 .mobile-ready .map-tooltip{font-size:14px;padding:10px}.mobile-ready .map-picker{display:block;font-size:12px;margin:16px 0 10px;line-height:1.5}
 .mobile-ready .map-picker select{display:block;width:100%;font:inherit;font-size:16px;min-height:48px;margin-top:5px;padding:8px;background:var(--bg);color:var(--bright);border:1px solid var(--line);border-radius:0}
 .mobile-ready #room-progress p{font-size:16px;line-height:1.6}.mobile-ready #objectives li{font-size:14px;line-height:1.5;padding-bottom:14px}
 .mobile-ready #recent-discoveries button{font-size:14px;min-height:44px;padding:10px 0}
 .mobile-ready .progress-heading{font-size:14px}.mobile-ready #exits button{font-size:14px;min-height:48px;padding:10px 0}
 .mobile-ready .hint-button{font-size:16px;min-height:48px}
 .mobile-ready footer{display:none;flex-shrink:0;margin:0;padding:8px 0 0}
 .mobile-ready[data-mobile-view=notes] footer{display:block}
 .mobile-ready .utilities{display:flex;flex-wrap:wrap;gap:4px;justify-content:flex-start}
 .mobile-ready .utilities button{font-size:12px;min-height:44px;padding:8px;border:1px solid var(--line)}
 .mobile-ready #save-status{display:block;font-size:12px;line-height:1.4;margin-top:6px;text-align:left}
 .mobile-ready .below-note{display:none}
 dialog{width:calc(100% - 32px);max-width:420px;max-height:calc(100dvh - 32px);overflow:auto;padding:20px}
 dialog p{font-size:16px}dialog button{min-height:48px;font-size:14px;padding:10px}dialog>div{display:flex;flex-wrap:wrap;gap:10px}
 .keyboard-open .masthead,.keyboard-open .title-row,.keyboard-open #mobile-exits{display:none}
}
@media(max-width:850px) and (max-height:500px){
 .mobile-ready .masthead,.mobile-ready .title-row{display:none}.mobile-ready .input-help{display:none}
 .mobile-ready .mobile-tabs{padding-top:4px}.mobile-ready .mobile-tabs button{min-height:44px}
}

.device-status{display:flex;flex-direction:column;gap:4px;text-align:right;line-height:1.6}#offline-status{font-size:10px;color:var(--green)}
@media(max-width:850px){.device-status{width:100%;text-align:left}#offline-status{font-size:12px}}

#recent-discoveries{max-height:420px;overflow:auto;overscroll-behavior:contain}.journal-entry{padding:14px 0;border-bottom:1px solid var(--line)}.journal-entry h3{margin:0 0 8px;color:var(--accent);font-size:11px}.journal-entry p{font-size:13px;line-height:1.6;margin:0;white-space:pre-line}#room-progress{margin-bottom:12px}@media(max-width:850px){#recent-discoveries{max-height:none;overflow:visible}.journal-entry p{font-size:16px}.journal-entry h3{font-size:12px}}

.story-column{min-width:0}.environment-vista{margin:14px 0 0;border:1px solid var(--line);background:var(--bg);color:var(--accent)}.environment-vista[hidden]{display:none}.environment-vista img{display:block;width:100%;height:auto;image-rendering:pixelated}.environment-vista figcaption{display:flex;justify-content:space-between;gap:12px;padding:9px 12px;border-top:1px solid var(--line);font-size:9px;letter-spacing:1px;line-height:1.4}
@media(max-width:850px){.mobile-ready .story-column{height:100%;display:flex;flex-direction:column;min-height:0}.mobile-ready .story-column .terminal{flex:1;height:auto;min-height:0}.mobile-ready .environment-vista{flex-shrink:0;margin-top:8px}.mobile-ready .environment-vista figcaption{font-size:8px;padding:5px 8px;letter-spacing:.5px}.mobile-ready[data-mobile-view=pockets] .story-column,.mobile-ready[data-mobile-view=map] .story-column,.mobile-ready[data-mobile-view=notes] .story-column{display:none}.keyboard-open .environment-vista{display:none}}
@media(max-width:850px) and (max-height:600px){.mobile-ready .environment-vista{display:none}}

.awaiting-arrival .inventory-panel,.awaiting-arrival .journal-panel,.awaiting-arrival .mobile-tabs,.awaiting-arrival .chapter-label,.awaiting-arrival .input-help,.awaiting-arrival #mobile-exits,.awaiting-arrival .status-bar>span,.awaiting-arrival footer{display:none!important}.awaiting-arrival .console-layout{display:block;max-width:820px;margin:0 auto}.awaiting-arrival .terminal{height:650px}.awaiting-arrival .story-column{width:100%}.awaiting-arrival .entry.system{color:var(--accent)}.awaiting-arrival .room-heading{color:var(--accent)}
@media(max-width:850px){.mobile-ready.awaiting-arrival .console-layout{width:100%;margin:0}.mobile-ready.awaiting-arrival .terminal{height:100%}.mobile-ready.awaiting-arrival .input-area{padding-bottom:10px}.mobile-ready.awaiting-arrival .title-row p{display:block;font-size:11px;margin-top:6px}}

/* Room completion belongs to the scene, separate from the discovery journal. */
.environment-vista{position:relative}
.environment-vista #room-progress{position:absolute;top:8px;right:8px;z-index:1;margin:0;padding:5px 7px;border:1px solid var(--line);background:#0b0e0bef;color:var(--accent);font-size:10px;line-height:1.3;letter-spacing:.5px;max-width:calc(100% - 16px)}
.environment-vista #room-progress.complete{color:var(--green)}
@media(max-width:850px){.environment-vista #room-progress{top:4px;right:4px;font-size:9px;padding:3px 5px;letter-spacing:0}}

.environment-vista #room-progress.waiting{color:var(--accent)}
#room-status-detail{margin:0;padding:8px 10px;border-top:1px solid var(--line);font-size:11px;line-height:1.5;color:var(--accent)}
.map-room.explored>rect.map-waiting{fill:none;stroke:var(--accent);stroke-width:1}
.map-legend i.waiting{background:none;border-color:var(--accent)}

.environment-vista #room-progress.waiting{max-width:min(420px,calc(100% - 16px));white-space:normal;text-align:right}

.entry.cutscene{border-left:2px solid var(--accent);padding-left:16px;margin:20px 0}.entry.cutscene .room-heading{color:var(--accent)}

.map-route-key{display:flex;align-items:center;gap:6px;margin:9px 0 0;font-size:9px;color:var(--dim)}.map-route-key svg{width:28px;height:12px;flex:none;fill:none;stroke:#718461;stroke-width:2;shape-rendering:crispEdges}

.update-game{margin:8px 0;padding:8px 12px;border:1px solid var(--accent);background:transparent;color:var(--accent);font:inherit;font-size:11px;cursor:pointer;min-height:36px}.update-game:focus-visible{outline:2px solid var(--bright);outline-offset:3px}

.goal-checklist{list-style:none;margin:12px 0;padding:0;font-size:12px;line-height:1.55}.goal-checklist li{padding:7px 0;color:var(--dim)}.goal-checklist .goal-done{color:var(--ink)}
.mobile-ready .mobile-tabs{grid-template-columns:repeat(3,minmax(0,1fr))}
.entry.ending{padding:30px 16px;margin:24px 0 0;border-top:1px solid var(--accent);color:var(--bright);text-align:center;font-size:17px;line-height:1.9}.entry.credits{padding:18px 12px 30px;text-align:center;color:var(--accent);font-size:12px;letter-spacing:1px}
.environment-vista.finale-view{overflow:hidden}.finale-gate{position:absolute;inset:0 0 24px;display:flex;pointer-events:none;perspective:700px}.finale-gate span{width:50%;height:100%;background:repeating-linear-gradient(90deg,#0b0e0b 0 18px,#c4ad70 18px 20px);border:3px solid #c4ad70;box-sizing:border-box;transform-origin:left center;animation:open-gate-left 2.8s ease-in-out forwards}.finale-gate span+span{transform-origin:right center;animation-name:open-gate-right}.finale-view>img{animation:arrive-home 3s ease-out}
@keyframes open-gate-left{to{transform:rotateY(-100deg);opacity:0}}@keyframes open-gate-right{to{transform:rotateY(100deg);opacity:0}}@keyframes arrive-home{from{transform:scale(.8);filter:brightness(.35)}to{transform:scale(1);filter:brightness(1)}}
@media(prefers-reduced-motion:reduce){.finale-gate{display:none}.finale-view>img{animation:none}}
