:root{--green:#4ae24a;--green-dim:#2f8f38;--green-deep:#14361b;--amber:#ffb627;--amber-dim:#9a6c18;--red:#e2564a;--panel:#06100bdb;--panel-solid:#060f0b;--panel-edge:#4ae24a57;--panel-edge-strong:#4ae24ab8;--text:#cfeccf;--text-dim:#6f9a76;--stat-health:#e2564a;--stat-energy:#f5ba49;--stat-hygiene:#48baa7;--stat-morale:#9d7ce2;--stat-dose:#c9e24a;--hud-font:ui-monospace, "SFMono-Regular", "Cascadia Mono", "Consolas", "Courier New", monospace}*{box-sizing:border-box}html,body{height:100%;color:var(--text);font-family:var(--hud-font);-webkit-user-select:none;user-select:none;background:#04070a;margin:0;padding:0;overflow:hidden}#app{width:100vw;height:100vh;position:relative;overflow:hidden}#game-canvas{width:100%;height:100%;display:block;position:absolute;inset:0}.hud{pointer-events:none;text-transform:uppercase;letter-spacing:.08em;grid-template-rows:auto 1fr auto auto;gap:8px;padding:14px 16px;font-size:12px;display:grid;position:absolute;inset:0}.hud[hidden]{display:none}.hud button{pointer-events:auto}.hud-top{align-items:flex-start;gap:14px;display:flex}.date-tile{color:#1d1a14;text-align:center;background:#f3ece0;border:1px solid #1d1a14;width:46px;line-height:1;display:grid}.date-month{color:#f7efe3;letter-spacing:.14em;background:#b8452f;padding:3px 0 2px;font-size:10px}.date-day{padding:4px 0 5px;font-size:20px;font-weight:700}.weather-dial{flex:none;width:44px;height:44px;position:relative}.weather-dial svg{width:44px;height:44px;transform:rotate(-90deg)}.dial-track{fill:none;stroke:#4ae24a2e;stroke-width:3px}.dial-value{fill:none;stroke:var(--amber);stroke-width:3px;stroke-dasharray:107;stroke-dashoffset:107px;transition:stroke-dashoffset .4s ease-out,stroke .4s ease-out}.dial-core{background:var(--amber);opacity:.55;transition:background .4s ease-out,opacity .4s ease-out;position:absolute;inset:13px}.days-chip{color:#eaf3ff;letter-spacing:.1em;background:#2a5fb8;border:1px solid #8fc0ff;align-self:center;padding:3px 10px;font-size:12px}.hud-stats{align-items:center;gap:22px;margin-left:auto;display:flex}.stat{color:var(--green);flex-direction:column;align-items:center;gap:3px;min-width:60px;display:flex}.stat-icon{font-size:16px;line-height:1}.stat-label{letter-spacing:.08em;font-size:11px}.stat.is-warning{color:var(--amber)}.stat.is-critical{color:var(--red)}.waypoint-ticker{place-self:start;align-items:center;gap:8px;margin-top:40px;display:flex}.ticker-chevrons{color:var(--green);letter-spacing:-.12em;font-size:11px}.ticker-text{gap:2px;display:grid}.ticker-name{color:var(--green);letter-spacing:.06em;text-shadow:0 0 8px #4ae24a59;font-size:17px}.ticker-distance{color:var(--text-dim);font-size:12px}.center-banner{background:var(--panel);border:1px solid var(--panel-edge-strong);color:var(--green);letter-spacing:.1em;text-shadow:0 0 10px #4ae24a66;white-space:nowrap;padding:8px 18px;font-size:14px;position:absolute;top:58%;left:50%;transform:translate(-50%,-50%)}.center-banner[hidden]{display:none}.center-banner.is-bad{color:var(--red);text-shadow:0 0 10px #e2564a66;border-color:#e2564ab3}.hud-bottom{align-items:flex-end;gap:10px;display:flex}.crew-bar{flex:auto;gap:6px;display:flex}.crew-card{background:var(--panel);border:1px solid var(--panel-edge);flex:1 1 0;align-items:stretch;gap:7px;min-width:0;padding:5px 7px;display:flex}.crew-card.is-dead{opacity:.42;border-color:#e2564a66}.crew-portrait{object-fit:cover;width:40px;height:46px;image-rendering:pixelated;filter:saturate(.85);background:#16241d;border:1px solid #4ae24a33;flex:none}.crew-card.is-dead .crew-portrait{filter:grayscale()brightness(.6)}.crew-body{flex:auto;align-content:start;gap:3px;min-width:0;display:grid}.crew-name-row{align-items:baseline;gap:6px;min-width:0;display:flex}.crew-name{color:var(--text);letter-spacing:.06em;text-overflow:ellipsis;white-space:nowrap;font-size:12px;overflow:hidden}.crew-tag{letter-spacing:.1em;color:var(--red);border:1px solid;flex:none;padding:1px 4px;font-size:9px}.crew-tag.is-dead{color:var(--text-dim)}.crew-bars{gap:2px;display:grid}.crew-bar-track{background:#ffffff17;height:4px;overflow:hidden}.crew-bar-fill{width:0;height:100%;transition:width .35s ease-out}.dot-matrix{background:var(--panel);border:1px solid var(--panel-edge);flex:none;grid-template-columns:repeat(8,6px);grid-auto-rows:6px;gap:3px;padding:7px;display:grid}.dot{background:#ffffff1f;border-radius:50%;width:6px;height:6px}.dot.is-on{background:var(--green)}.dot.is-warn{background:var(--amber)}.dot.is-bad{background:var(--red)}.travel-controls{justify-content:center;align-items:center;gap:18px;padding-top:4px;display:flex}.control-group{align-items:center;gap:5px;display:flex}.control-caption{color:var(--text-dim);letter-spacing:.12em;margin-right:3px;font-size:10px}.control-actions{margin-left:8px}button{text-transform:uppercase;letter-spacing:.1em;color:var(--green);background:var(--panel);border:1px solid var(--panel-edge);cursor:pointer;padding:6px 12px;font-family:inherit;font-size:11px;transition:background .12s linear,color .12s linear,border-color .12s linear}button:hover:not(:disabled){border-color:var(--panel-edge-strong);background:#4ae24a29}button:focus-visible{outline:1px solid var(--green);outline-offset:1px}button[aria-pressed=true]{border-color:var(--green);color:#eaffea;background:#4ae24a3d}button.primary{border-color:var(--green);color:#eaffea;background:#4ae24a33}button.info{color:var(--amber);border-color:#ffb62773}button.info:hover:not(:disabled){border-color:var(--amber);background:#ffb62729}button:disabled{color:var(--text-dim);cursor:not-allowed;opacity:.65;border-color:#ffffff1f}.overlay{-webkit-backdrop-filter:blur(1px);backdrop-filter:blur(1px);background:#0307058c;justify-content:center;align-items:center;padding:24px;display:flex;position:absolute;inset:0;overflow-y:auto}.overlay[hidden]{display:none}.overlay-card{background:var(--panel);border:1px solid var(--panel-edge-strong);text-transform:none;letter-spacing:.01em;width:min(820px,100%);max-height:calc(100vh - 48px);padding:20px 22px;font-size:13px;line-height:1.55;overflow-y:auto}.overlay.is-event{-webkit-backdrop-filter:none;backdrop-filter:none;background:0 0;align-items:flex-end;padding:0}.overlay.is-event .overlay-card{background:#040b08f0;border-bottom:0;border-left:0;border-right:0;width:100%;max-width:none;padding:18px 26px 20px}.card-eyebrow{color:var(--green);text-transform:uppercase;letter-spacing:.16em;margin-bottom:6px;font-size:11px}.card-title{color:#eaffea;text-transform:uppercase;letter-spacing:.1em;text-shadow:0 0 12px #4ae24a4d;margin:0 0 10px;font-size:20px}.card-title.is-bad{color:#ffd9d4;text-shadow:0 0 12px #e2564a59}.card-title .cursor{background:var(--green);width:.55em;animation:1.05s step-end infinite blink;display:inline-block}@keyframes blink{0%,49%{opacity:1}50%,to{opacity:0}}.card-body{color:var(--text);max-width:68ch;margin:0 0 14px}.card-body em{color:var(--amber);font-style:normal}.card-note{color:var(--text-dim);text-transform:uppercase;letter-spacing:.1em;margin-bottom:12px;font-size:11px}.card-choices{flex-wrap:wrap;gap:8px;display:flex}.card-choices button{flex:0 auto;padding:9px 16px;font-size:12px}.choice-detail{letter-spacing:.06em;color:var(--text-dim);text-transform:none;margin-top:3px;font-size:10px;display:block}.title-screen{text-align:center}.title-mark{letter-spacing:.22em;color:#eaffea;text-transform:uppercase;text-shadow:0 0 24px #4ae24a66;margin:0 0 6px;font-size:clamp(30px,6.2vw,62px)}.title-sub{color:var(--green);text-transform:uppercase;letter-spacing:.3em;margin-bottom:22px;font-size:12px}.title-blurb{color:var(--text);max-width:56ch;margin:0 auto 22px;font-size:13px;line-height:1.6}.howto{border-top:1px solid var(--panel-edge);text-align:left;margin-top:26px;padding-top:20px}.howto-heading{color:var(--green);text-transform:uppercase;letter-spacing:.22em;text-align:center;margin:0 0 14px;font-size:11px}.howto-grid{grid-template-columns:repeat(3,1fr);gap:10px;display:grid}.howto-card{background:#00000038;border:1px solid #4ae24a2e;padding:12px 13px 13px}.howto-step{border:1px solid var(--green);width:18px;height:18px;color:var(--green);justify-content:center;align-items:center;margin-bottom:8px;font-size:10px;display:inline-flex}.howto-card-title{color:#eaffea;text-transform:uppercase;letter-spacing:.09em;margin:0 0 6px;font-size:11px;line-height:1.35}.howto-card-text{color:var(--text-dim);margin:0;font-size:11px;line-height:1.55}.howto-footnote{color:var(--amber);text-align:center;margin:14px 0 0;font-size:11px;line-height:1.55}.tutorial-section{margin-bottom:18px}.tutorial-heading{color:var(--green);text-transform:uppercase;letter-spacing:.18em;border-bottom:1px solid #4ae24a2e;margin:0 0 8px;padding-bottom:5px;font-size:11px}.tutorial-list{grid-template-columns:170px 1fr;gap:6px 16px;margin:0;display:grid}.tutorial-list dt{color:#eaffea;text-transform:uppercase;letter-spacing:.08em;font-size:11px;line-height:1.5}.tutorial-list dd{color:var(--text-dim);margin:0;font-size:12px;line-height:1.55}.option-list{gap:8px;margin-bottom:16px;display:grid}.option-row{text-align:left;text-transform:none;letter-spacing:.02em;align-items:flex-start;gap:12px;width:100%;padding:11px 14px;font-size:13px;line-height:1.5;display:flex}.option-row .option-name{color:#eaffea;text-transform:uppercase;letter-spacing:.08em;flex:none;min-width:190px;font-size:12px}.option-row .option-detail{color:var(--text-dim);flex:auto}.option-row .option-cost{color:var(--amber);text-transform:uppercase;letter-spacing:.08em;white-space:nowrap;flex:none;font-size:11px}.store-grid{gap:6px;margin-bottom:14px;display:grid}.store-row{border:1px solid #4ae24a29;grid-template-columns:1fr auto auto auto;align-items:center;gap:12px;padding:8px 10px;display:grid}.store-stepper{border:1px solid var(--panel-edge);align-items:stretch;display:inline-flex}.store-step-button{border:0;min-width:30px;padding:5px 11px;font-size:14px;line-height:1}.store-step-button:first-child{border-right:1px solid var(--panel-edge)}.store-step-button:last-child{border-left:1px solid var(--panel-edge)}.store-step-size{letter-spacing:.08em;min-width:44px;color:var(--text-dim);background:#00000040;justify-content:center;align-items:center;padding:0 8px;font-size:10px;display:inline-flex}.store-refund-note{color:var(--text-dim);text-transform:uppercase;letter-spacing:.1em;margin-bottom:12px;font-size:10px}.store-row .store-name{color:#eaffea;text-transform:uppercase;letter-spacing:.08em;font-size:11px}.store-row .store-desc{color:var(--text-dim);grid-column:1/-1;margin-top:-2px;font-size:11px;line-height:1.45}.store-row .store-owned{color:var(--green);text-align:right;min-width:78px;font-size:11px}.store-row .store-price{color:var(--amber);text-align:right;min-width:92px;font-size:11px}.store-summary{border-top:1px solid var(--panel-edge);text-transform:uppercase;letter-spacing:.1em;color:var(--text-dim);flex-wrap:wrap;gap:16px;margin-bottom:14px;padding-top:12px;font-size:11px;display:flex}.store-summary strong{color:var(--green);font-weight:400}.store-warning{color:var(--amber);text-transform:uppercase;letter-spacing:.1em;min-height:14px;margin-bottom:10px;font-size:11px}.leg-chart{border:1px solid var(--panel-edge);background:linear-gradient(#14281c8c,#060e0abf);margin-bottom:16px;padding:18px 16px;position:relative;overflow-x:auto}.leg-track{align-items:center;gap:0;min-width:max-content;display:flex}.leg-node{flex:none;justify-items:center;gap:5px;padding:0 10px;display:grid}.leg-node .node-mark{border:1px solid var(--green);background:var(--panel-solid);width:13px;height:13px}.leg-node.is-station .node-mark{background:var(--green)}.leg-node.is-hazard .node-mark{border-color:var(--red);transform:rotate(45deg)}.leg-node.is-harvest .node-mark{border-color:var(--amber);border-radius:50%}.leg-node.is-finale .node-mark{background:var(--amber);border-color:var(--amber)}.leg-node .node-label{color:var(--text);text-transform:uppercase;letter-spacing:.06em;white-space:nowrap;font-size:10px}.leg-node .node-distance{color:var(--text-dim);letter-spacing:.06em;font-size:9px}.leg-link{background:repeating-linear-gradient(90deg, var(--green-dim) 0 4px, transparent 4px 8px);flex:26px;min-width:26px;height:1px}.score-lines{gap:3px;margin-bottom:14px;display:grid}.score-line{border-bottom:1px dotted #4ae24a24;grid-template-columns:1fr auto;align-items:baseline;gap:12px;padding:3px 0;font-size:12px;display:grid}.score-line .score-label{color:var(--text)}.score-line .score-detail{color:var(--text-dim);text-transform:uppercase;letter-spacing:.08em;font-size:10px;display:block}.score-line .score-points{color:var(--green);font-variant-numeric:tabular-nums}.score-total{border-top:1px solid var(--panel-edge-strong);text-transform:uppercase;letter-spacing:.1em;color:#eaffea;justify-content:space-between;align-items:baseline;margin-bottom:6px;padding-top:10px;font-size:15px;display:flex}.score-rating{color:var(--amber);text-transform:uppercase;letter-spacing:.14em;margin-bottom:18px;font-size:13px}.memorial{border-top:1px solid #e2564a4d;margin-bottom:16px;padding-top:10px}.memorial-entry{color:var(--text-dim);letter-spacing:.04em;font-size:11px}.log-card{flex-direction:column;max-height:calc(100vh - 60px);display:flex}.log-list{flex:auto;align-content:start;gap:4px;min-height:0;margin-bottom:14px;padding-right:8px;display:grid;overflow-y:auto}.log-list::-webkit-scrollbar{width:8px}.log-list::-webkit-scrollbar-thumb{background:#4ae24a52}.log-card .card-choices{flex:none;margin-top:auto}.log-entry{grid-template-columns:96px 1fr;gap:10px;font-size:11px;line-height:1.45;display:grid}.log-entry .log-date{color:var(--text-dim);text-transform:uppercase;letter-spacing:.06em}.log-entry.is-good .log-text{color:var(--green)}.log-entry.is-bad .log-text{color:var(--amber)}.log-entry.is-fatal .log-text{color:var(--red)}.harvest-meter{border:1px solid var(--panel-edge-strong);background:#0006;height:26px;margin-bottom:6px;position:relative;overflow:hidden}.harvest-zone{border-left:1px solid var(--green);border-right:1px solid var(--green);background:#4ae24a38;position:absolute;top:0;bottom:0}.harvest-needle{background:var(--amber);width:2px;position:absolute;top:-2px;bottom:-2px;box-shadow:0 0 8px #ffb627cc}.harvest-readout{text-transform:uppercase;letter-spacing:.1em;color:var(--text-dim);justify-content:space-between;margin-bottom:14px;font-size:11px;display:flex}.harvest-readout strong{color:var(--green);font-weight:400}.name-grid{gap:8px;margin-bottom:16px;display:grid}.name-row{grid-template-columns:90px 1fr;align-items:center;gap:10px;display:grid}.name-row label{color:var(--text-dim);text-transform:uppercase;letter-spacing:.1em;font-size:10px}.name-row input{color:#eaffea;border:1px solid var(--panel-edge);-webkit-user-select:text;user-select:text;background:#00000059;padding:7px 10px;font-family:inherit;font-size:13px}.name-row input:focus-visible{outline:1px solid var(--green);outline-offset:0;border-color:var(--green)}.boot-status{color:var(--text-dim);text-transform:uppercase;letter-spacing:.16em;pointer-events:none;font-size:10px;position:absolute;bottom:18px;left:50%;transform:translate(-50%)}.boot-status[hidden]{display:none}.boot-status.is-error{color:var(--red)}.mars-progress{letter-spacing:.12em;color:var(--text-dim);pointer-events:none;align-items:center;gap:8px;font-size:10px;display:flex;position:absolute;top:68px;right:16px}.mars-track{border:1px solid var(--panel-edge);background:#ffffff1f;width:180px;height:4px;position:relative}.mars-fill{background:var(--green);width:0;height:100%;transition:width .4s ease-out}.mars-marker{background:var(--amber);width:2px;height:10px;transition:left .4s ease-out;position:absolute;top:-3px;left:0}.mars-value{color:var(--green);text-align:right;min-width:32px}.crew-legend{letter-spacing:.1em;color:var(--text-dim);align-items:center;gap:12px;font-size:9px;display:flex}.crew-legend span{align-items:center;gap:4px;display:inline-flex}.crew-legend i{width:8px;height:3px;display:inline-block}.flight-hud{pointer-events:none;text-transform:uppercase;letter-spacing:.1em;grid-template-rows:auto 1fr auto;padding:18px 22px;display:grid;position:absolute;inset:0}.flight-hud[hidden]{display:none}.flight-top{justify-items:center;gap:6px;display:grid}.flight-place{color:var(--amber);letter-spacing:.4em;opacity:.72;text-transform:uppercase;font-size:10px}.flight-title{color:var(--green);letter-spacing:.22em;text-shadow:0 0 10px #4ae24a66;font-size:13px}.flight-progress{background:#ffffff24;width:min(420px,60vw);height:3px}.flight-progress-fill{background:var(--green);width:0;height:100%;box-shadow:0 0 8px #4ae24ab3}.flight-health{letter-spacing:.14em;color:var(--text-dim);place-self:start center;align-items:center;gap:8px;margin-top:10px;font-size:10px;display:flex}.flight-health-track{border:1px solid var(--panel-edge);background:#ffffff24;width:min(300px,40vw);height:6px}.flight-health-fill{background:var(--green);width:100%;height:100%;transition:width .25s ease-out,background .25s ease-out}.flight-prompt{color:var(--amber);letter-spacing:.16em;text-shadow:0 0 12px #ffb62766;place-self:center;font-size:17px}.flight-prompt[hidden]{display:none}.flight-sign{color:var(--red);letter-spacing:.24em;text-shadow:0 0 18px #e2564aa6;border:2px solid var(--red);background:#1404048c;place-self:center;padding:10px 26px;font-size:26px}.flight-sign[hidden]{display:none}.flight-warning{color:var(--red);letter-spacing:.18em;text-shadow:0 0 12px #e2564a80;place-self:center;font-size:15px;animation:.5s step-end infinite flight-blink}.flight-warning[hidden]{display:none}@keyframes flight-blink{0%,49%{opacity:1}50%,to{opacity:.25}}.flight-bottom{align-items:flex-end;gap:26px;display:flex}.flight-stat{color:var(--green);align-items:baseline;gap:5px;font-size:19px;display:flex}.flight-stat small{color:var(--text-dim);letter-spacing:.12em;font-size:10px}.flight-hint{color:var(--text-dim);letter-spacing:.1em;margin-left:auto;font-size:10px}.settings-toggle{pointer-events:auto;letter-spacing:.12em;position:absolute;bottom:14px;right:16px}.setting-group{margin-bottom:20px}.setting-heading{color:var(--green);text-transform:uppercase;letter-spacing:.18em;border-bottom:1px solid #4ae24a2e;margin:0 0 5px;padding-bottom:5px;font-size:11px}.setting-explain{color:var(--text-dim);max-width:70ch;margin:0 0 10px;font-size:11px;line-height:1.5}.setting-options{grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:8px;display:grid}.setting-option{text-align:left;text-transform:none;letter-spacing:.01em;gap:4px;padding:10px 12px;display:grid}.setting-option-label{color:#eaffea;text-transform:uppercase;letter-spacing:.08em;font-size:11px}.setting-option-detail{color:var(--text-dim);font-size:10px;line-height:1.45}.setting-option[aria-pressed=true] .setting-option-detail{color:var(--text)}@media (width<=900px){.hud{padding:10px;font-size:11px}.hud-stats{gap:12px}.stat{min-width:46px}.crew-portrait{width:30px;height:36px}.crew-bar{gap:4px}.travel-controls{flex-wrap:wrap;gap:8px}.option-row{flex-direction:column;gap:4px}.option-row .option-name{min-width:0}.howto-grid{grid-template-columns:1fr}.tutorial-list{grid-template-columns:1fr;gap:2px}.tutorial-list dd{margin-bottom:8px}}
