:root{--murk:#55695c;--ink:#f1f3ec;--ink-soft:#c9d2c6;--panel:#101a16bd;--accent:#f2b134;--accent-ink:#1d1a12;--line:#f1f3ec38;color:var(--ink);font-family:system-ui,Segoe UI,Roboto,Ubuntu,sans-serif;font-size:16px}*{box-sizing:border-box}html,body{background:var(--murk);height:100%;margin:0;overflow:hidden}#scene{width:100%;height:100%;display:block;position:fixed;inset:0}#ui{position:fixed;inset:0}.screen{flex-direction:column;justify-content:center;align-items:center;gap:20px;padding:24px;display:flex;position:absolute;inset:0}.title-screen{background:radial-gradient(#101a1600 30%,#101a168c 100%);justify-content:flex-start;padding-top:12vh}.game-name{letter-spacing:-.02em;text-shadow:0 2px 24px #00000059;margin:0 0 12px;font-size:clamp(48px,8vw,96px);font-weight:800}.pause-screen,.message-screen{background:#0a100d73}.panel{background:var(--panel);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);border-radius:12px;flex-direction:column;gap:12px;width:min(420px,100%);padding:28px;display:flex}.pause-screen .panel{max-height:100%;overflow-y:auto}.panel h1,.panel h2{margin:0 0 4px;font-size:24px}.panel p{color:var(--ink-soft);margin:0;line-height:1.5}button{border:1px solid var(--line);background:var(--panel);min-height:44px;color:var(--ink);font:inherit;cursor:pointer;border-radius:8px;padding:10px 20px}button:hover{border-color:var(--ink-soft)}button:focus-visible{outline:3px solid var(--accent);outline-offset:2px}button.primary{background:var(--accent);color:var(--accent-ink);border-color:#0000;font-weight:700}.title-screen>button.primary{min-width:200px;font-size:20px}.language-picker{align-items:center;gap:8px;display:flex}.language-picker span{color:var(--ink-soft);margin-right:4px}.language-picker button[aria-pressed=true]{border-color:var(--accent);box-shadow:inset 0 0 0 1px var(--accent)}.title-screen>button:not(.primary){min-width:200px}.loading-screen{background:radial-gradient(#101a1600 30%,#101a168c 100%)}.loading-bar{border:1px solid var(--line);background:var(--panel);border-radius:7px;width:min(360px,80%);height:14px;overflow:hidden}.loading-fill{background:var(--accent);width:0;height:100%;transition:width .2s ease-out}.loading-text{color:var(--ink-soft);margin:0}.credits-screen{background:#0a100d73}.credits-panel{width:min(560px,100%);max-height:100%;overflow-y:auto}.credits-head{justify-content:space-between;align-items:center;gap:16px;display:flex}.credits-head h1{margin:0}.credits-panel h2{margin:12px 0 0;font-size:18px}.credit-list{flex-direction:column;gap:12px;margin:0;padding:0;list-style:none;display:flex}.credit-list li{flex-direction:column;gap:2px;display:flex}.credit-list li span,.credit-none,.credit-pending{color:var(--ink-soft)}.credit-pending{font-style:italic}.credit-list a{color:var(--accent);overflow-wrap:anywhere}.credit-notice summary{cursor:pointer}.credit-notice pre{white-space:pre-wrap;background:#0000004d;border-radius:8px;max-height:220px;margin:8px 0 0;padding:12px;font-size:16px;overflow:auto}.notice{background:var(--panel);color:var(--accent);border-radius:8px;margin:0;padding:8px 14px}.controls{grid-template-columns:max-content 1fr;gap:10px 16px;margin:0 0 8px;display:grid}.controls dt,.controls dd{align-self:center;margin:0}kbd{border:1px solid var(--line);font:inherit;border-radius:6px;padding:2px 8px;font-weight:600;display:inline-block}.hud{pointer-events:none;position:absolute;inset:0}.crosshair{border:2px solid #f1f3ecd9;border-radius:50%;width:22px;height:22px;margin:-11px 0 0 -11px;position:absolute;top:50%;left:50%;box-shadow:0 0 0 1px #00000059}.crosshair:after{content:"";background:#f1f3ecf2;border-radius:50%;width:4px;height:4px;margin:-2px 0 0 -2px;position:absolute;top:50%;left:50%}.visually-hidden{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.hud-panel{background:var(--panel);border-radius:10px;flex-direction:column;gap:6px;padding:12px 16px;line-height:1.35;display:flex;position:absolute}.hud-panel h2{color:var(--ink-soft);margin:0 0 2px;font-size:16px}.hud-goals{max-width:300px;top:16px;left:16px}.goal-list{flex-direction:column;gap:4px;margin:0;padding:0;list-style:none;display:flex}.goal-list[hidden]{display:none}.goal-list-phase2{border-top:1px solid var(--line);margin-top:6px;padding-top:8px}.goal-list-phase2[hidden]{display:none}.goal{gap:8px;display:flex}.goal-mark{text-align:center;flex:none;width:1.1em}.goal.done .goal-text{color:var(--ink-soft);text-decoration:line-through}.goal-alert{color:var(--accent);gap:8px;font-weight:700;display:flex}.goal-alert-mark{text-align:center;flex:none;width:1.1em}.goal-alert-list{margin:0 0 4px;padding:0;list-style:none}.goal-alert-list[hidden]{display:none}.goal-alert-body{flex-direction:column;gap:2px;display:flex}.goal-alert-hint{color:var(--ink);font-weight:400}.goal.done .goal-mark{color:var(--accent);font-weight:800}.hud-stats{top:calc(16px + var(--map-size) + 10px + 8px);min-width:210px;right:16px}.stat{justify-content:space-between;gap:16px;display:flex}.stat-label{color:var(--ink-soft)}.stat.full .stat-value{color:var(--accent)}.stat.full .stat-value:after{content:" !"}.tank-meter{background:#f1f3ec2e;border-radius:4px;height:8px;overflow:hidden}.tank-meter-fill{background:var(--ink);height:100%}.hud-bottom{flex-direction:column;align-items:center;gap:8px;width:min(90vw,560px,100vw - 476px);display:flex;position:absolute;bottom:16px;left:50%;transform:translate(-50%)}.hud-messages{flex-direction:column;align-items:center;gap:8px;display:flex}.hotbar{--slot:56px;position:relative}@media (height<=560px){.hotbar{--slot:46px}}.hotbar[hidden]{display:none}.hotbar-caption{background:var(--panel);text-align:center;opacity:0;border-radius:8px;flex-direction:column;align-items:center;width:max-content;max-width:min(90vw,560px,100vw - 476px);padding:6px 14px;line-height:1.35;transition:opacity .6s;display:flex;position:absolute;bottom:calc(100% + 8px);left:50%;transform:translate(-50%)}.hud-bottom:has(.message:not([hidden])) .hotbar-caption{visibility:hidden}.hotbar-caption.shown{opacity:1;transition-duration:.15s}.tool-hint{color:var(--ink-soft)}.hotbar-slots{background:var(--panel);border-radius:10px;gap:6px;padding:6px;display:flex}.hotbar-slot{width:var(--slot);height:var(--slot);border:2px solid var(--line);min-height:0;color:var(--ink);background:#f1f3ec0f;border-radius:8px;place-items:center;padding:0;display:grid;position:relative}.hotbar-slot.held{border:4px solid var(--accent)}.hotbar-slot.working{background:var(--accent);color:var(--accent-ink)}.hotbar-slot.locked{color:#f1f3ec66}.hotbar-icon{width:calc(var(--slot) * .5);height:calc(var(--slot) * .5);fill:none;stroke:currentColor;stroke-width:2px;stroke-linecap:round;stroke-linejoin:round}.hotbar-key{font-size:16px;font-weight:700;line-height:1.1;position:absolute;top:1px;left:5px}.hotbar-lock{width:20px;height:20px;fill:var(--panel);stroke:var(--ink);stroke-width:2px;stroke-linejoin:round;display:none;position:absolute;bottom:2px;right:2px}.hotbar-slot.locked .hotbar-lock{display:block}.message{background:var(--panel);text-align:center;border-radius:8px;margin:0;padding:8px 16px}.message[hidden]{display:none}.message-full{border:2px solid var(--accent);color:var(--accent);font-weight:700}.station-marker,.dumper-marker{white-space:nowrap;text-shadow:0 1px 4px #000c;flex-direction:column;align-items:center;gap:2px;display:flex;position:absolute;top:0;left:0}.marker-arrow,.dumper-marker-arrow{color:var(--ink);font-size:22px;line-height:1}.marker-label,.dumper-marker-label{background:var(--panel);border-radius:6px;padding:2px 10px}.station-marker.urgent .marker-arrow,.station-marker.urgent .marker-label{color:var(--accent);font-weight:700}.station-marker.urgent .marker-label{border:1px solid var(--accent)}.station-marker.on-screen .marker-arrow,.dumper-marker.on-screen .dumper-marker-arrow{transform:rotate(180deg)!important}.dumper-marker[hidden]{display:none}.dumper-marker-arrow,.dumper-marker-label{color:var(--accent);font-weight:700}.dumper-marker-label{border:1px solid var(--accent);align-items:center;gap:6px;display:flex}.dumper-marker-mark{background:var(--accent);width:1.3em;height:1.3em;color:var(--accent-ink);text-shadow:none;border-radius:50%;place-items:center;animation:1s step-end infinite dumper-blink;display:inline-grid}@keyframes dumper-blink{50%{opacity:.15}}.cut-progress{width:54px;height:54px;margin:-27px 0 0 -27px;position:absolute;top:50%;left:50%}.cut-progress[hidden]{display:none}.cut-ring{background:conic-gradient(var(--accent) calc(var(--cut,0) * 360deg), #f1f3ec38 0);border-radius:50%;position:absolute;inset:0;-webkit-mask:radial-gradient(circle,#0000 22px,#000 23px);mask:radial-gradient(circle,#0000 22px,#000 23px)}.cut-label{background:var(--panel);white-space:nowrap;border-radius:8px;padding:4px 12px;font-weight:700;position:absolute;bottom:calc(100% + 9px);left:50%;transform:translate(-50%)}.hud{--map-size:clamp(140px, 34vh, 200px)}.hud-minimap{padding:5px;top:16px;right:16px}.hud-minimap[hidden]{display:none}.mm-map{width:var(--map-size);height:var(--map-size);display:block}.mm-terrain{shape-rendering:crispedges}.mm-terrain[data-shade=land]{fill:#deca929e}.mm-terrain[data-shade=depth-0]{fill:#b0e2ec57}.mm-terrain[data-shade=depth-1]{fill:#96cee23d}.mm-terrain[data-shade=depth-2]{fill:#78b4d626}.mm-terrain[data-shade=depth-3]{fill:#5a96c812}.mm-rock{fill:#f1f3ec3d}.mm-shape{fill:none;stroke:var(--ink);stroke-width:2px;stroke-linejoin:round}.mm-solid{fill:var(--ink)}.mm-site[data-status=started] .mm-shape{fill:#f1f3ec80}.mm-site[data-status=planted] .mm-shape{fill:var(--ink)}.mm-check{fill:none;stroke:var(--accent-ink);stroke-width:2.4px;stroke-linecap:round;stroke-linejoin:round;display:none}.mm-site[data-status=planted] .mm-check{display:block}.mm-dumper{fill:#ff9a7a;stroke:#1d1a12;stroke-width:1.5px;stroke-linejoin:round}.mm-x{fill:none;stroke:#ff9a7a;stroke-width:3px;stroke-linecap:round}.mm-dot{fill:var(--ink-soft);stroke:#0000008c;stroke-width:.8px}.mm-edge{fill:none;stroke:var(--ink);stroke-opacity:.55;stroke-width:1px;stroke-linejoin:round}.mm-mouth{fill:#041222e6}.mm-tunnel{fill:none;stroke:var(--ink);stroke-opacity:.28;stroke-width:2.4px;stroke-dasharray:3 2.5;stroke-linecap:round;stroke-linejoin:round}.mm-dock{stroke:#c9a46e;stroke-width:3px;stroke-linecap:round}.mm-sub{fill:var(--accent);stroke:var(--accent-ink);stroke-width:1.2px}.mm-rov{fill:var(--accent);stroke:var(--accent-ink);stroke-width:1.4px;stroke-linejoin:round}.mm-north{color:var(--ink-soft);font-size:16px;font-weight:700;line-height:1;position:absolute;top:6px;left:9px}.logbook-screen{background:#0a100d8c}.panel.logbook{gap:14px;width:min(1080px,100%);max-height:100%;padding:20px 24px}.logbook-head{flex-wrap:wrap;align-items:center;gap:8px 20px;display:flex}.logbook-head h2{margin:0 auto 0 0}.logbook-count{color:var(--accent);font-weight:700}.logbook-hint{color:var(--ink-soft)}.logbook-body{grid-template-columns:minmax(200px,270px) 1fr;gap:20px;min-height:0;display:grid}.slots{align-content:start;gap:6px;margin:0;padding:0;list-style:none;display:grid}.slot{text-align:left;align-items:center;gap:12px;width:100%;padding:6px 12px 6px 8px;display:flex}.slot[aria-pressed=true]{border-color:var(--accent);box-shadow:inset 0 0 0 1px var(--accent)}.slot:disabled{cursor:default;color:var(--ink-soft)}.slot:disabled:hover{border-color:var(--line)}.slot-name{font-weight:600}.slot:disabled .slot-name{letter-spacing:.2em}.entry-image{border-radius:6px;flex:none;width:56px;height:36px;padding:4px;display:inline-flex}.entry-image svg{width:100%;height:100%}.entry-image.locked{color:#0a100d;background:#f1f3ec29}.entry-image.open{color:var(--ink);background:#f1f3ec1a}.entry{min-height:0;padding-right:6px;overflow-y:auto}.entry h3{margin:0 0 2px;font-size:22px}.entry h4{color:var(--accent);margin:14px 0 2px;font-size:16px}.entry h3+h4{margin-top:8px}.entry p{margin:0}.entry-latin{margin-bottom:4px}.entry-sources{color:var(--ink-soft);margin:0;padding-left:20px;line-height:1.4}.entry-sources a{color:var(--ink)}.entry-sources a:focus-visible{outline:3px solid var(--accent);outline-offset:2px}@media (height<=560px){.panel.logbook{gap:8px;padding:12px 16px}.logbook-body{grid-template-columns:minmax(250px,300px) 1fr;gap:14px}.slots{grid-template-columns:1fr 1fr}.slot{gap:6px;padding:4px 6px}.entry-image{width:40px;height:28px;padding:3px}}.end-screen{background:#0a100d59}.panel.end{width:min(460px,100%);max-height:100%;overflow-y:auto}.end-stats{flex-direction:column;margin:4px 0;display:flex}.end-stats>div{border-bottom:1px solid var(--line);justify-content:space-between;gap:16px;padding:7px 0;display:flex}.end-stats dt,.end-stats dd{margin:0}.end-stats dt{color:var(--ink-soft)}.end-stats dd{font-variant-numeric:tabular-nums;font-weight:700}.end-actions{flex-wrap:wrap;gap:10px;display:flex}.end-actions button{flex:160px}.end-real{background:#00000040;border-radius:8px;flex-direction:column;gap:6px;padding:12px 14px;display:flex}.panel .end-real h2{margin:0;font-size:17px}.end-real ul{color:var(--ink-soft);margin:0;padding-left:20px;line-height:1.45}.end-real a{color:var(--ink)}.end-real a:focus-visible{outline:3px solid var(--accent);outline-offset:2px}@media (height<=520px){.panel.end{gap:8px;padding:18px 22px}.end-stats>div{padding:3px 0}.end-real{padding:8px 12px}}.mission-screen{background:#0a100d59;animation:.5s ease-out mission-in}@keyframes mission-in{0%{background:#050908f2}}.panel.mission{width:min(600px,100%);max-height:100%;overflow-y:auto}.panel.mission h2{margin:8px 0 0;font-size:18px}.mission-list{color:var(--ink-soft);flex-direction:column;gap:8px;margin:0;padding-left:1.4em;line-height:1.5;display:flex}.mission-list li::marker{color:var(--accent);font-weight:700}.panel p.mission-controls{background:#00000040;border-radius:8px;padding:8px 12px;font-size:14px}@media (height<=760px){.panel.mission{padding-top:22px;padding-bottom:22px}}.panel p.mission-sdg{color:var(--accent);margin-top:-6px;font-weight:700}.panel p.mission-closing{color:var(--ink);font-weight:700}.panel.mission>button{align-self:stretch}@media (height<=640px){.mission-screen{padding:12px}.panel.mission{gap:8px;width:min(680px,100%);padding:16px 22px}.panel.mission h1{font-size:21px}.panel.mission p,.mission-list{font-size:14px;line-height:1.4}.mission-list{gap:4px}.panel p.mission-controls{padding:6px 10px;font-size:13px}.panel.mission>button{flex:none;min-height:40px}}@media (prefers-reduced-motion:reduce){.mission-screen,.dumper-marker-mark{animation:none}}.hud-fade{opacity:0;pointer-events:none;background:#0b1c26;position:fixed;inset:0}.hud.cinematic>:not(.cine):not(.hud-fade):not(.touch),.hud.cinematic .touch>:not(.touch-surface){visibility:hidden}.cine{pointer-events:none;position:absolute;inset:0}.cine[hidden]{display:none}.cine-bar{background:#000;align-items:center;display:flex;position:absolute;left:0;right:0;overflow:hidden}.cine-bar-top{justify-content:flex-end;padding:0 24px;top:0}.cine-bar-bottom{justify-content:center;padding:0 24px;bottom:0}.cine-skip{color:var(--ink-soft);white-space:nowrap;margin:0;font-size:16px}.cine-caption{text-align:center;max-width:min(90vw,1000px);color:var(--ink);opacity:0;margin:0;font-size:clamp(18px,2.1vw,28px);line-height:1.25}.slider-row{grid-template-columns:8.5em minmax(160px,1fr) 3.5em;align-items:center;gap:12px;display:grid}.slider-row input[type=range]{min-height:44px;accent-color:var(--accent)}.slider-row output{text-align:right}.sound-off{background:var(--panel);color:var(--accent);border-radius:8px;margin:0;padding:6px 12px;font-weight:700;position:absolute;bottom:16px;right:16px}.sound-off[hidden]{display:none}html.touch{touch-action:pan-x pan-y;-webkit-tap-highlight-color:transparent}.touch-hud{--map-size:clamp(96px, 28vh, 200px);--stick:112px;--knob:52px;--use:84px;--pad:52px;--act:56px;--menu:44px}.touch-hud .hud-panel:not(.hud-minimap){gap:4px;padding:8px 12px}.touch-hud .hud-stats{top:16px;right:calc(16px + var(--map-size) + 10px + 8px + var(--menu) + 8px);width:176px;min-width:0}.touch-hud .hud-goals{max-width:min(300px, calc(100vw - var(--map-size) - 286px))}@media (width>=720px){.touch-hud .hud-stats{width:214px}.touch-hud .stat-label{white-space:nowrap}.touch-hud .hud-goals{max-width:min(300px, calc(100vw - var(--map-size) - 324px))}}@media (height<=480px){.touch-hud .tank-meter{display:none}}.touch-hud .hud-bottom{--lane:calc(100vw - (16px + var(--stick) + 16px) - (16px + var(--use) + 12px + var(--pad) + 8px));left:calc(16px + var(--stick) + 16px);width:var(--lane);align-items:flex-start;transform:none}.touch-hud .hud-messages{align-self:stretch}.touch-hud .hotbar-caption{max-width:var(--lane);text-align:left;align-items:flex-start;left:0;transform:none}.touch-hud .hotbar-slot{pointer-events:auto;touch-action:none}.touch{-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;position:absolute;inset:0}.touch-surface{pointer-events:auto;touch-action:none;position:absolute;inset:0}.stick{left:calc(16px + var(--stick) / 2);top:calc(100% - 16px - var(--stick) / 2);width:var(--stick);height:var(--stick);border:2px solid var(--line);pointer-events:none;background:#101a1652;border-radius:50%;position:absolute;transform:translate(-50%,-50%)}.stick.active{background:#101a1680}.stick-knob{width:var(--knob);height:var(--knob);margin:calc(var(--knob) / -2) 0 0 calc(var(--knob) / -2);background:#f1f3ec99;border-radius:50%;position:absolute;top:50%;left:50%}.touch-control,.touch-menu-button{pointer-events:auto;touch-action:none;min-height:0;padding:0;font-weight:700}.touch-actions .touch-control{border-radius:50%;position:absolute}.touch-control[hidden]{display:none}.touch-control.held{background:var(--accent);color:var(--accent-ink);border-color:#0000}.touch-use{width:var(--use);height:var(--use);border-color:var(--accent);color:var(--accent);bottom:16px;right:16px}.touch-interact{right:calc(16px + (var(--use) - var(--act)) / 2);bottom:calc(16px + var(--use) + 10px);width:var(--act);height:var(--act);font-size:20px}.touch-rise,.touch-dive{right:calc(16px + var(--use) + 12px);width:var(--pad);height:var(--pad)}.touch-rise{bottom:calc(16px + var(--pad) + 10px)}.touch-dive{bottom:16px}.touch-menu{top:16px;right:calc(16px + var(--map-size) + 10px + 8px);flex-direction:column;gap:6px;display:flex;position:absolute}.touch-menu-button{width:var(--menu);height:var(--menu);place-items:center;display:grid}.touch-icon{fill:none;stroke:currentColor;stroke-width:2px;stroke-linecap:round;stroke-linejoin:round;width:24px;height:24px}@media (height<=480px){.touch-hud{--map-size:clamp(84px, 26vh, 200px);--stick:96px;--knob:44px;--use:68px;--pad:44px;--act:46px;--menu:36px;font-size:13px}.touch-hud .hud-panel:not(.hud-minimap){border-radius:8px;gap:2px;padding:6px 10px}.touch-hud .hud-panel h2{font-size:13px}.touch-hud .goal{gap:6px}.touch-hud .goal-list{gap:2px}.touch-hud .hud-stats{width:162px}.touch-hud .stat-label{white-space:nowrap}.touch-hud .hud-goals{max-width:min(260px, calc(100vw - var(--map-size) - var(--menu) - 162px - 82px))}.touch-hud .touch-menu{gap:4px}.touch-hud .touch-icon{width:20px;height:20px}.touch-hud .touch-interact{font-size:17px}.touch-hud .message{padding:6px 12px}.touch-hud .hotbar{--slot:40px}.touch-hud .hotbar-slots{gap:4px;padding:4px}.touch-hud .hotbar-slot.held{border-width:3px}.touch-hud .hotbar-key{font-size:12px;top:0;left:3px}.touch-hud .hotbar-lock{width:15px;height:15px}.touch-hud .hotbar-caption{padding:4px 10px}}.rotate-screen{z-index:10;text-align:center;background:#0e1813}.rotate-screen h1{margin:0;font-size:24px}.rotate-screen p{max-width:320px;color:var(--ink-soft);margin:0;line-height:1.5}.rotate-icon{border:3px solid var(--ink);border-radius:10px;width:44px;height:72px;transform:rotate(-90deg)}.presenter-tag{background:var(--panel);color:var(--ink-soft);pointer-events:none;z-index:20;border-radius:6px;margin:0;padding:4px 10px;font-size:14px;position:fixed;bottom:10px;left:12px}.fps{z-index:20;color:#fff;pointer-events:none;background:#0009;border-radius:6px;padding:2px 8px;font:14px/1.4 ui-monospace,monospace;position:fixed;bottom:4px;left:50%;transform:translate(-50%)}
