:root{--bg:#08070b;--panel:#1f1c29;--text:#e8e3d5;--muted:#a8a2b4;--accent:#d9a441;--air:#4fd6e8;--danger:#e8604f}*{box-sizing:border-box}html,body{background:var(--bg);height:100%;color:var(--text);margin:0;font-family:Georgia,Times New Roman,serif}#app{flex-direction:column;height:100%;display:flex}#topbar{z-index:2;text-shadow:0 0 3px #000;pointer-events:none;background:linear-gradient(#1f1c29d9,#1f1c298c 70%,#1f1c2900);padding:8px 16px 14px;line-height:1.3;position:absolute;top:0;left:0;right:0}#topbar>div{justify-content:space-between;align-items:flex-start;gap:24px;max-width:960px;margin:0 auto;display:flex}.meter{flex:0 280px}#topbar .countdown{text-align:right;white-space:nowrap;margin:0}#topbar .clock{font-size:2.2em}#topbar .bar{margin-bottom:2px}.dots{gap:4px;min-height:10px;margin:3px 0;display:flex}#topbar .countdown .dot-groups{justify-content:flex-end}.dot-groups{align-items:center;gap:10px;min-height:16px;display:flex}.dot-groups .dots:empty{display:none}.dots span{border-radius:50%;width:10px;height:10px}.medkit-dots span{background:var(--danger)}.canister-dots span{background:var(--air)}.setting{align-items:flex-start;gap:10px;margin-bottom:8px;display:flex}.ailments{min-height:0;color:var(--danger);font-size:.8em;font-weight:700}.tap-menu .tap-result{border-left:3px solid var(--accent);background:#2a2636;margin-bottom:8px;padding:8px}.tap-menu .tap-result p{margin:0 0 4px}.tap-menu h3{color:var(--muted);margin:10px 0 4px;font-size:.9em}.tap-options{grid-template-columns:repeat(auto-fill,minmax(130px,1fr));gap:6px;display:grid}.text-card .tap-options button{width:auto;margin:0}.ration-dots span{background:#c9a14a}.empty-dots span{box-sizing:border-box;border:2px solid var(--air)}.tank-gauge{border:2px solid var(--air);box-sizing:border-box;border-radius:5px;width:26px;height:10px;overflow:hidden}.tank-gauge .fill{background:var(--air);height:100%}.tank-gauge[hidden]{display:none}#center-map{z-index:5;border:1px solid var(--accent);width:44px;height:44px;color:var(--accent);cursor:pointer;background:#1f1c29e6;border-radius:50%;padding:0;font-size:1.5em;line-height:1;position:absolute;bottom:12px;left:130px}#center-map[hidden]{display:none}#topbar .meter,#topbar .countdown,#map-label,#center-map,#actions-button,#wait-button{transition:opacity .2s}.see-through{opacity:.25}#actions-button{z-index:5;border:1px solid var(--accent);width:48px;height:48px;color:var(--accent);cursor:pointer;background:#1f1c29e6;border-radius:50%;padding:0;font:700 .9em inherit;position:absolute;bottom:12px;left:12px}#wait-button{z-index:5;border:1px solid var(--accent);width:48px;height:48px;color:var(--accent);cursor:pointer;background:#1f1c29e6;border-radius:50%;padding:0;font-size:1.3em;position:absolute;bottom:12px;left:72px}#wait-button[hidden],#actions-button[hidden],.aim-hint[hidden]{display:none}.aim-hint{z-index:5;border:1px solid var(--accent);color:var(--text);pointer-events:none;background:#1f1c29eb;border-radius:6px;padding:6px 12px;font-size:.9em;position:absolute;bottom:16px;left:50%;transform:translate(-50%)}#game{flex:1;min-width:0;min-height:0;position:relative}#game canvas{touch-action:none;display:block}#map-label{z-index:1;color:var(--text);text-align:center;text-shadow:0 0 4px #000,0 0 2px #000;pointer-events:none;font-size:1.2em;position:absolute;top:64px;left:0;right:0}#hud{background:var(--panel);flex:none;height:22%;padding:12px 16px;line-height:1.4;position:relative;overflow:hidden}#hud.log-open{z-index:6;overflow:visible}#hud{--log-rise:280%}#hud.log-open:before{content:"";height:var(--log-rise);background:var(--panel);border-top:1px solid #4a4558;position:absolute;bottom:0;left:0;right:0;box-shadow:0 -6px 16px #00000080}#hud.log-open>div{height:calc(var(--log-rise) - 24px);position:absolute;bottom:12px;left:16px;right:16px}#hud [data-field=end]{display:contents}#hud>div{grid-template-rows:minmax(0,1fr) auto;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));align-items:start;gap:0 24px;max-width:960px;height:100%;margin:0 auto;display:grid}@media (width>=701px){#hud>div:has(>.stack){grid-template-columns:minmax(0,1fr) minmax(0,1fr);max-width:none}#hud>div:has(>.stack)>.stack{grid-area:1/1/-1}#hud>div:has(>.stack)>.action{grid-column:2;width:280px;margin:0 0 10px}}#hud p{margin:0 0 8px}.goal{color:var(--accent)}.row{justify-content:space-between;gap:12px;display:flex}.note.warning{color:var(--danger)}.note{color:var(--muted);font-size:.8em}.oxygen,.log{margin-bottom:14px;display:block}#pace-control{z-index:5;text-shadow:0 0 3px #08070b,0 0 3px #08070b;text-align:center;background:0 0;border:1px solid #0000;border-radius:6px;flex-direction:column;align-items:center;gap:4px;width:52px;padding:8px 2px;font-size:.75em;transition:opacity .2s;display:flex;position:absolute;top:50%;right:8px;transform:translateY(-50%)}#pace-control input{writing-mode:vertical-lr;width:36px;height:170px;accent-color:var(--accent);cursor:pointer;direction:rtl;margin:0}#pace-control span{line-height:1.2}.bar{background:#0e0c13;border-radius:3px;height:14px;margin:4px 0;overflow:hidden}.fill{background:var(--air);height:100%}.fill.low{background:var(--danger)}.health{margin-top:10px}.food{align-items:center;font-size:.8em}.bar.small{flex:1;height:6px;margin:0}.fill.food-fill{background:#c9a14a}.fill.food-fill.low,.fill.health-fill{background:var(--danger)}.experience{align-items:center;gap:10px;margin-bottom:4px;font-size:.85em;display:flex}.experience .note{text-align:right;min-width:6em}.fill.xp-fill{background:#9a7ae0}#rover-charge{z-index:5;pointer-events:none;background:#1f1c29d9;border:1px solid #3a3448;border-radius:6px;width:150px;padding:6px 8px;font-size:.8em;transition:opacity .2s;position:absolute;bottom:12px;right:68px}#rover-charge[hidden]{display:none}#rover-charge .bar.small{margin:4px 0 2px}.fill.rover-fill{background:#c8843a}.fill.rover-fill.low{background:var(--danger)}.quest{margin-bottom:8px}.quest summary{cursor:pointer;font-weight:700}.quest p{margin:6px 0 0 18px}.quest .quest-notes{color:var(--muted);margin:4px 0 0 18px;padding-left:18px}.log{min-height:0;font-size:.9em}.end{border:1px solid var(--accent);border-radius:4px;margin-bottom:14px;padding:12px}.end h2{margin:0 0 4px}.end button{border:1px solid var(--accent);width:100%;min-height:44px;color:var(--accent);font:inherit;cursor:pointer;background:0 0;border-radius:4px;margin-top:8px;display:block}[hidden]{display:none!important}.countdown{text-align:center;margin-bottom:14px}.clock{color:var(--accent);font-variant-numeric:tabular-nums;font-size:3em;line-height:1.1}.clock.urgent{color:var(--danger)}.action,.text-card button,.character-screen button{border:1px solid var(--accent);width:100%;min-height:44px;color:var(--accent);font:inherit;cursor:pointer;background:0 0;border-radius:4px;margin:10px 0;display:block}.text-card.menu-card{white-space:normal}.text-card.menu-card p{margin:0 0 8px}.text-card.menu-card button{margin:6px 0}.action-status{color:var(--accent)}.carried{color:var(--muted);font-size:.9em}#hud .log{white-space:pre-line;scrollbar-width:thin;scrollbar-color:#4a4558 transparent;min-height:0;max-height:100%;margin-bottom:0;overflow-y:auto}#hud .stack{flex-direction:column;min-height:0;max-height:100%;display:flex}#hud .stack .log{flex:1}.text-box{z-index:10;background:#08070b99;justify-content:center;align-items:center;padding:16px;display:flex;position:fixed;inset:0}.text-card{border:1px solid var(--accent);background:var(--panel);white-space:pre-line;border-radius:4px;width:100%;max-width:480px;max-height:100%;padding:18px;overflow-y:auto}.character-screen{z-index:20;background:var(--bg);padding:16px;position:fixed;inset:0;overflow-y:auto}.character-screen h1{color:var(--accent);margin:0 0 12px;font-weight:400}.character-screen fieldset{border:1px solid #3a3548;border-radius:4px;max-width:640px;margin:0 0 12px;padding:8px 12px}.character-screen button{max-width:640px}.choice{cursor:pointer;align-items:center;gap:10px;min-height:44px;padding:4px 0;display:flex}.choice input{width:20px;height:20px;accent-color:var(--accent);flex:none}#menu{background:var(--panel);border-top:1px solid #3a3548;flex:none;display:flex}#menu button{min-height:48px;color:var(--muted);font:inherit;cursor:pointer;background:0 0;border:0;flex:1}#menu button.main-menu-button{flex:0 0 56px;font-size:1.4em}.menu-sheet h3{color:var(--text);margin:12px 0 4px;font-size:1em}.menu-sheet button[data-action=new-game]{border:1px solid var(--danger);width:100%;min-height:44px;color:var(--danger);font:inherit;cursor:pointer;background:0 0;border-radius:4px;margin:6px 0;display:block}#menu button.active{color:var(--accent);box-shadow:inset 0 2px 0 var(--accent)}.menu-sheet{z-index:15;background:#08070b99;justify-content:center;align-items:flex-end;padding:16px;display:flex;position:fixed;inset:0 0 49px}.text-card .sheet-close{z-index:1;background:var(--panel);width:44px;height:44px;min-height:0;color:var(--muted);border:0;border-radius:50%;margin:-10px -10px -34px auto;padding:0;font-size:1.2em;display:block;position:sticky;top:-8px}.text-card .sheet-close:hover{color:var(--accent)}.menu-sheet h2{color:var(--accent);margin:0 0 10px;font-weight:400}.menu-sheet .text-card{white-space:normal}.menu-list{margin:0 0 12px;padding:0;list-style:none}.menu-list li{margin-bottom:8px}.left-handed #pace-control{left:8px;right:auto}.left-handed #actions-button{left:auto;right:12px}.left-handed #wait-button{left:auto;right:72px}.left-handed #center-map{left:auto;right:130px}.left-handed #rover-charge{left:68px;right:auto}.hand-options .setting{margin:0 16px 8px 0}@media (width<=700px){#topbar>div{gap:16px}#hud{height:20%}#map-label{top:84px}#hud{--log-rise:240%}#pace-control input{height:120px}}.item-cards{grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:8px;margin:8px 0 12px;display:grid}.text-card .item-card{width:auto;color:var(--text);font:inherit;text-align:left;cursor:pointer;background:#2a2636;border:1px solid #3a3548;border-radius:6px;flex-direction:column;align-items:flex-start;gap:4px;margin:0;padding:10px;display:flex}.text-card .item-card:hover{border-color:var(--accent)}.item-card.static{cursor:default}.item-swatch{vertical-align:middle;border-radius:3px;width:14px;height:14px;display:inline-block}.item-detail button{width:100%;margin-top:8px;display:block}.item-row{justify-content:space-between;align-items:center;gap:10px;min-width:0;display:flex}.small-button{border:1px solid var(--accent);min-height:44px;color:var(--accent);font:inherit;cursor:pointer;background:0 0;border-radius:4px;flex:none;padding:0 10px;font-size:.85em}.warning{color:var(--danger)}.text-card .small-button{width:auto;margin:0;display:inline-block}.item-row>span{min-width:0}
