@import url('https://fonts.googleapis.com/css2?family=Barlow+Condensed:wght@400;500;600;700;800&family=IBM+Plex+Mono:wght@400;500;600&display=swap');
:root{font-family:'Barlow Condensed',Arial,sans-serif;color:#def6f6;background:#03131d;font-synthesis:none}*{box-sizing:border-box}body{margin:0;overflow:hidden}button{font:inherit;cursor:pointer}#game,canvas{display:block}#game{position:fixed;inset:0}#game canvas{width:100%;height:100%}#vignette{pointer-events:none;position:fixed;inset:0;background:radial-gradient(ellipse at 50% 42%,transparent 28%,rgba(0,7,17,.53) 100%);z-index:1}.hidden{display:none!important}#hud{position:fixed;inset:0;z-index:2;pointer-events:none}.topbar{height:86px;padding:20px 30px;display:flex;justify-content:space-between;align-items:flex-start;background:linear-gradient(#031722dc,#03172200);gap:20px}.brand{display:flex;align-items:center;gap:13px;min-width:260px}.brand-mark{font-size:39px;line-height:1;color:#6ceadf;text-shadow:0 0 24px #5fdac8}.brand strong{font-size:29px;letter-spacing:.18em;line-height:1;font-weight:800}.brand small{display:block;color:#7db5bd;font:10px 'IBM Plex Mono',monospace;letter-spacing:.12em;margin-top:4px}.eyebrow{display:block;color:#71b4ba;font:10px 'IBM Plex Mono',monospace;letter-spacing:.18em;margin-bottom:9px}.mission{text-align:center;width:330px}.mission strong{font-weight:600;font-size:19px;letter-spacing:.03em}.mission-track,.bar{height:4px;background:#ffffff25;border:1px solid #8fd5d129;overflow:hidden}.mission-track{margin-top:9px}.mission-track i,.bar i{display:block;height:100%;width:0;background:#57e6d7;box-shadow:0 0 12px #50e5cf;transition:width .2s}.top-actions{display:flex;align-items:center;gap:9px;justify-content:flex-end;min-width:260px;pointer-events:auto}.top-actions>span{font:11px 'IBM Plex Mono',monospace;color:#8bbdc1;margin-right:12px}.top-actions button{width:32px;height:32px;border:1px solid #8dc8c653;background:#0a2937bb;color:#b5ece6;border-radius:2px;font:600 16px 'IBM Plex Mono',monospace}.top-actions button:hover{background:#135166}.left-stack{position:absolute;top:118px;left:30px;width:250px;display:grid;gap:15px}.panel{background:linear-gradient(130deg,#071e2bd9,#061922b8);border:1px solid #72b3b244;box-shadow:inset 0 1px #b1ffff19,0 14px 40px #00101755;backdrop-filter:blur(13px);padding:17px}.telemetry{padding:18px 18px 15px}.tele-row{display:flex;align-items:baseline;justify-content:space-between;margin:11px 0}.tele-row span{font:10px 'IBM Plex Mono',monospace;color:#89b7bb;letter-spacing:.08em}.tele-row strong{font-size:27px;font-weight:600;color:#efffff;line-height:1}.tele-row strong b{font-weight:600}.tele-row strong small{font-size:14px;color:#87bec4}.tele-row.small{margin:12px 0 2px}.tele-row.small strong{font:11px 'IBM Plex Mono',monospace;color:#c8e4e3}.telemetry .bar{margin:9px 0 15px}.objective{padding-bottom:13px}.objective canvas{width:100%;height:auto;margin-top:-4px}.radar-legend{display:flex;gap:19px;justify-content:center;color:#99b8ba;font:10px 'IBM Plex Mono',monospace}.radar-legend span{display:flex;gap:5px;align-items:center}.radar-legend i{width:6px;height:6px;border-radius:50%;display:block}.ore-dot{background:#9ceeff;box-shadow:0 0 7px #9ceeff}.base-dot{background:#ffcc70;box-shadow:0 0 7px #ffcc70}.target-card{position:absolute;right:30px;top:120px;width:238px;background:#062936d9;border-left:2px solid #67f0de;padding:16px 18px;box-shadow:0 12px 30px #00131e88}.target-card strong{display:block;font-size:20px;letter-spacing:.06em}.target-card>span:not(.eyebrow){font:11px 'IBM Plex Mono',monospace;color:#9cdde0}.target-card .bar{margin:15px 0 7px}.target-card small{font:11px 'IBM Plex Mono',monospace;color:#b7d8d9}#reticle{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:32px;height:32px;border:1px solid #d5f6eb80;border-radius:50%;display:grid;place-items:center;opacity:.7}#reticle:before,#reticle:after{content:'';position:absolute;background:#c4fff3}#reticle:before{width:1px;height:6px;top:-8px}#reticle:after{width:1px;height:6px;bottom:-8px}#reticle span{width:3px;height:3px;background:#d2ffec;border-radius:50%}.message{position:absolute;left:50%;top:31%;transform:translateX(-50%);padding:10px 18px;background:#062d3de8;border:1px solid #5ce0d7;color:#d4fffa;font:13px 'IBM Plex Mono',monospace;text-align:center;box-shadow:0 0 32px #00aab13d}.bottom-left,.bottom-right{position:absolute;bottom:25px;background:#071e2acb;border:1px solid #71adaa48;backdrop-filter:blur(12px);padding:15px 18px;min-height:83px}.bottom-left{left:30px;width:270px}.bottom-left strong{display:block;font-size:23px;letter-spacing:.08em;line-height:1}.bottom-left small{display:block;color:#a8c9ca;font:10px 'IBM Plex Mono',monospace;margin-top:6px;line-height:1.5}.bottom-right{right:30px;width:295px;pointer-events:auto}.mode-buttons{display:flex;gap:4px}.mode-buttons button{background:#092b36;color:#9ac8cb;border:1px solid #649ba044;padding:8px 6px;font-size:12px;flex:1;line-height:1.15}.mode-buttons button.active{background:#19616c;color:white;border-color:#79ecdd}.mode-buttons button:hover{border-color:#b4f6ed}.mode-buttons kbd{display:block;font:11px 'IBM Plex Mono',monospace;color:#bde9e4;margin-bottom:4px}.bottom-center{position:absolute;bottom:27px;left:50%;transform:translateX(-50%);display:flex;gap:14px;align-items:end}.key-tip{display:flex;gap:3px;align-items:center;flex-wrap:wrap;justify-content:center;max-width:84px}.key-tip kbd{min-width:22px;height:23px;display:grid;place-items:center;background:#082430c4;border:1px solid #b5e1d874;color:#d9f9f2;font:12px 'IBM Plex Mono',monospace;border-radius:2px}.key-tip span{display:block;width:100%;text-align:center;color:#b0d1d2;font:10px 'IBM Plex Mono',monospace;margin-top:5px}.overlay{position:fixed;inset:0;z-index:10;display:flex;align-items:center;overflow:hidden;background:#061722}.start-image{position:absolute;inset:0;background:url('./concept-art/alien-ocean-mining-key-art-v2.png') center/cover no-repeat;filter:saturate(.85)}.overlay-shade{position:absolute;inset:0;background:linear-gradient(90deg,#02131cf7 0%,#031722e6 28%,#041b29a8 48%,#041b2922 75%),linear-gradient(0deg,#041620cc,transparent 30%)}.start-content{position:relative;width:min(560px,calc(100vw - 60px));margin-left:clamp(28px,8vw,138px);padding-top:18px}.kicker{font:12px 'IBM Plex Mono',monospace;color:#71eadb;letter-spacing:.21em;margin-bottom:20px}.start-content h1{margin:0;font-size:clamp(85px,10vw,150px);font-weight:800;line-height:.73;letter-spacing:-.035em;color:#f0ffff;text-shadow:0 5px 36px #031924}.start-content h1 span{display:block;font-size:.43em;letter-spacing:.29em;color:#8ce8dc;margin-top:21px}.start-content p{font:19px/1.42 'Barlow Condensed',sans-serif;max-width:390px;color:#c5dddd;margin:32px 0 22px}.start-meta{display:grid;gap:8px;color:#91c8c7;font:11px 'IBM Plex Mono',monospace;letter-spacing:.05em;margin-bottom:28px}.primary{pointer-events:auto;border:1px solid #7af5e4;background:#70e9d9;color:#062530;font-weight:800;letter-spacing:.12em;font-size:16px;padding:15px 21px;min-width:280px;display:flex;align-items:center;justify-content:space-between;box-shadow:0 0 35px #38f9d13d;transition:background .2s,transform .2s}.primary:hover{background:#b9fff1;transform:translateY(-2px)}.primary span{font-size:21px}.start-content>small{display:block;color:#93b5b8;font:11px 'IBM Plex Mono',monospace;margin-top:16px}.overlay.compact{justify-content:center;background:#02131ce8;backdrop-filter:blur(12px);text-align:center}.pause-content{max-width:500px;padding:35px}.pause-content h2{font-size:86px;line-height:.87;letter-spacing:.04em;margin:10px 0 29px}.pause-content .primary{margin:auto}.pause-content p{font:12px/2 'IBM Plex Mono',monospace;color:#a4c5c7;margin-top:26px}@media(max-width:1000px){.bottom-center{display:none}.top-actions{min-width:auto}.brand{min-width:auto}.mission{width:260px}}@media(max-width:700px){.topbar{padding:15px;height:70px}.brand strong{font-size:22px}.brand small{display:none}.mission{display:none}.top-actions>span{display:none}.left-stack{left:12px;top:78px;width:170px;gap:8px}.panel{padding:10px}.tele-row{margin:7px 0}.tele-row strong{font-size:20px}.objective{display:none}.bottom-left{left:12px;bottom:12px;width:180px;padding:10px}.bottom-right{right:12px;bottom:12px;width:200px;padding:10px}.mode-buttons button{font-size:10px;padding:5px 2px}.bottom-left strong{font-size:18px}.bottom-left small{font-size:8px}.target-card{top:80px;right:12px;width:170px}.start-content{margin-left:28px}.start-content h1{font-size:80px}}

@media(max-height:820px){.objective{display:none}}

#reticle.ready{border-color:#73fce8;box-shadow:0 0 18px #30dfc677}#reticle.firing{border-color:#ffffff;box-shadow:0 0 22px #74fff5,0 0 42px #38dfd1;transform:translate(-50%,-50%) scale(1.18)}#target-card:has(#target-status){transition:border-color .2s}#target-card:has(#target-status:not(:empty)){box-shadow:0 12px 30px #00131e88,0 0 22px #5ce0d722}

.credit-badge{display:flex;align-items:baseline;gap:5px;padding:7px 10px;background:#0b2b38d9;border:1px solid #6ee9d476;color:#e6fff9}.credit-badge span{font:9px 'IBM Plex Mono',monospace;color:#87bbbc;letter-spacing:.1em}.credit-badge strong{font:600 16px 'IBM Plex Mono',monospace;color:#9ff9dd}.credit-badge small{font:10px 'IBM Plex Mono',monospace;color:#85b7b5}.target-card{right:307px;top:116px;width:210px;padding:13px 15px;border-left-color:#6ceadf;background:linear-gradient(140deg,#082e3de9,#06222ddc)}.tool-line+.tool-line{border-top:1px solid #8bd4d046;margin-top:14px;padding-top:14px}.tool-line strong{font-size:18px;line-height:1.1}.tool-line>span:not(.eyebrow){display:block;font:10px 'IBM Plex Mono',monospace;color:#a6d4d3;margin-top:7px}.tool-line .bar{margin:10px 0 0}.suction-line .bar i{background:#8acbfa;box-shadow:0 0 12px #8acbfa}.suction-line .eyebrow{color:#9acbfa}.tank-panel{position:absolute;right:30px;top:116px;width:250px;padding:13px 11px 12px;background:linear-gradient(160deg,#0a3442ed,#061a26eb 66%);border:1px solid #8ddad575;box-shadow:inset 0 1px #c7fff22e,0 15px 45px #00121e99,0 0 26px #35c8c124;backdrop-filter:blur(14px)}.tank-heading{display:flex;justify-content:space-between;align-items:end;padding:0 4px 10px}.tank-heading .eyebrow{margin-bottom:4px;font-size:8px}.tank-heading strong{font-size:16px;letter-spacing:.07em}.tank-heading>#tank-count{font:600 10px 'IBM Plex Mono',monospace;color:#95ffeb;white-space:nowrap}.tank-panel canvas{width:100%;height:auto;border:1px solid #649d9e63;box-shadow:inset 0 0 20px #7afff725}.tank-footer{display:flex;justify-content:space-between;font:8px 'IBM Plex Mono',monospace;color:#83afb4;letter-spacing:.04em;margin:6px 2px 10px}.tank-legend{display:grid;grid-template-columns:1fr 1fr;gap:7px 8px;border-top:1px solid #70aeb047;padding:10px 3px 1px;font:10px 'IBM Plex Mono',monospace}.tank-legend span{display:flex;align-items:center;gap:5px;color:#b7d6d6}.tank-legend i{width:7px;height:7px;flex:none;transform:rotate(45deg)}.tank-legend b{margin-left:auto;color:#f3fffb}.base-hint{position:absolute;left:50%;bottom:118px;transform:translateX(-50%);min-width:280px;text-align:center;padding:12px 20px;background:#3b2c12dc;border:1px solid #ffd585ac;box-shadow:0 0 28px #e9b6554b}.base-hint .eyebrow{color:#f4c97e;margin-bottom:5px}.base-hint strong{font:600 12px 'IBM Plex Mono',monospace;color:#fff0cf}.systems-pill i{font-size:10px;color:#70e9d9;font-style:normal;margin:0 3px}
.message{top:91px;max-width:440px;font-size:11px;z-index:3}

.market-overlay{justify-content:center;background:#01141adf;backdrop-filter:blur(10px)}.market-backdrop{position:absolute;inset:0;background:radial-gradient(ellipse at 50% 42%,#20606769,transparent 60%),repeating-linear-gradient(0deg,transparent 0 42px,#7cf3e006 43px)}.market-card{position:relative;width:min(780px,calc(100vw - 40px));max-height:calc(100vh - 40px);overflow:auto;background:linear-gradient(155deg,#123d4aea,#061e2af7 55%);border:1px solid #9ae5d89c;box-shadow:0 32px 90px #001019dc,0 0 80px #31d5c522,inset 0 1px #ffffff32;padding:30px 34px}.market-card:before,.market-card:after{content:'';position:absolute;width:38px;height:38px;border-color:#90f6e5;pointer-events:none}.market-card:before{top:8px;left:8px;border-top:2px solid;border-left:2px solid}.market-card:after{right:8px;bottom:8px;border-right:2px solid;border-bottom:2px solid}.market-top{display:flex;justify-content:space-between;gap:20px}.market-top h2{font-size:56px;line-height:.9;letter-spacing:.045em;margin:8px 0 12px;color:#effffd}.market-top p{margin:0 0 23px;color:#aacbca;font:12px 'IBM Plex Mono',monospace}.market-close{width:35px;height:35px;background:#113d49;border:1px solid #83cac5;color:#cefffa;font-size:24px}.market-meta{display:grid;grid-template-columns:repeat(3,1fr);gap:9px;margin-bottom:22px}.market-meta>div{padding:13px 14px;background:#092b37;border:1px solid #70b4b148}.market-meta span{display:block;color:#80adb2;font:9px 'IBM Plex Mono',monospace;letter-spacing:.12em;margin-bottom:7px}.market-meta strong{font:600 22px 'IBM Plex Mono',monospace;color:#e8fffa}.market-meta b{font-weight:600;color:#a4fbe9}.market-rows{display:grid;gap:7px}.market-row{display:flex;align-items:center;gap:14px;padding:11px 14px;background:linear-gradient(90deg,#15404cbd,#082732aa);border:1px solid #679b9b49}.ore-swatch{width:27px;height:27px;flex:none;background:var(--ore);clip-path:polygon(50% 0,90% 30%,79% 91%,26% 100%,0 40%);box-shadow:0 0 14px var(--ore)}.ore-info{flex:1}.ore-info strong{display:block;font-size:20px;letter-spacing:.04em}.ore-info small{font:9px 'IBM Plex Mono',monospace;color:#9fbfc1}.ore-quantity,.ore-value{font:600 16px 'IBM Plex Mono',monospace;min-width:60px;text-align:right}.ore-value{min-width:80px;color:#b8ffe3}.market-row button,.ghost-button{padding:8px 12px;background:#1b5c63;border:1px solid #72dacf;color:#eafff8;letter-spacing:.08em;font-weight:700}.market-row button:hover,.ghost-button:hover{background:#277b7e}.market-row button:disabled{opacity:.35;cursor:default}.market-actions{display:flex;gap:12px;margin-top:23px}.market-actions .primary{flex:1;min-width:0}.market-actions .primary:disabled{opacity:.4;cursor:default;transform:none}.ghost-button{min-width:170px}.market-receipt{margin-top:14px;padding:10px 13px;border-left:2px solid #a1fbe6;background:#1b5a5b55;color:#c7ffec;font:11px 'IBM Plex Mono',monospace}
@media(max-width:1050px){.target-card{right:275px;width:182px}.tank-panel{right:14px;width:245px}.topbar{gap:8px}.brand{min-width:210px}.top-actions{min-width:auto}.mission{width:260px}}
@media(max-width:700px){.topbar{padding:12px}.credit-badge span{display:none}.credit-badge{padding:7px}.tank-panel{top:75px;right:10px;width:162px;padding:7px}.tank-heading{display:block;padding:0 2px 6px}.tank-heading .eyebrow{font-size:7px}.tank-heading strong{font-size:12px}.tank-heading>#tank-count{display:block;margin-top:3px}.tank-footer{font-size:6px;margin:3px 0 5px}.tank-legend{gap:4px;font-size:7px;padding-top:6px}.tank-legend i{width:5px;height:5px}.target-card{left:12px;right:auto;top:340px;width:170px;padding:9px}.tool-line strong{font-size:14px}.tool-line+.tool-line{margin-top:8px;padding-top:8px}.tool-line>span:not(.eyebrow){font-size:8px}.base-hint{bottom:90px;min-width:240px;padding:8px}.base-hint strong{font-size:9px}.market-card{padding:20px 16px}.market-top h2{font-size:34px}.market-meta{gap:4px}.market-meta>div{padding:7px}.market-meta strong{font-size:14px}.market-meta span{font-size:7px}.market-row{gap:6px;padding:7px}.ore-info strong{font-size:14px}.ore-info small{font-size:7px}.ore-quantity,.ore-value{font-size:10px;min-width:30px}.ore-value{min-width:50px}.market-row button{font-size:9px;padding:5px}.market-actions{display:grid}.market-actions .primary{font-size:12px;padding:10px}.ghost-button{min-width:0}.systems-pill{width:170px}}
@media(max-height:660px){.tank-panel{top:76px;width:175px}.tank-footer,.tank-legend{display:none}.target-card{top:200px}.systems-pill{display:none}.base-hint{bottom:22px}}
.market-top p{margin-bottom:15px}.market-meta{margin-bottom:14px}.market-row{padding-top:8px;padding-bottom:8px}.market-actions{margin-top:15px}.market-receipt{margin-top:10px;padding-top:8px;padding-bottom:8px}

/* Mineral chamber: a dedicated instrument, with the animated water behind glass. */
.tank-panel{top:96px;right:24px;width:322px;padding:0;background:linear-gradient(155deg,#194754f2,#08222ff2 40%,#061a26f5);border:1px solid #82cbc5a6;border-radius:5px;box-shadow:0 24px 60px #00121dc7,0 0 35px #37cfc329,inset 0 1px #d8fff054;overflow:hidden}
.tank-panel:before{content:'';position:absolute;inset:4px;pointer-events:none;border:1px solid #8ee5d223;border-radius:3px}
.tank-heading{display:block;padding:15px 16px 12px;background:linear-gradient(#164351,#0b2d3a);border-bottom:1px solid #7cbbb657}
.tank-online{display:flex;align-items:center;gap:7px;color:#8ec4c2;font:8px 'IBM Plex Mono',monospace;letter-spacing:.16em;margin-bottom:8px}
.tank-online i,.tank-footer i{display:block;width:5px;height:5px;background:#78f9db;border-radius:50%;box-shadow:0 0 7px #83ffe4}
.tank-title{display:flex;align-items:baseline;justify-content:space-between;gap:7px}
.tank-title strong{font-size:20px;line-height:1;letter-spacing:.07em;color:#f3fffb;white-space:nowrap}
.tank-title #tank-count{font:600 11px 'IBM Plex Mono',monospace;color:#a4ffe6;white-space:nowrap}
.tank-meter{height:3px;margin-top:12px;background:#5f8e904c;overflow:hidden;border-radius:2px}
.tank-meter i{display:block;width:0;height:100%;background:linear-gradient(90deg,#56cdd0,#acffe4);box-shadow:0 0 10px #8dffeb;transition:width .2s}
.tank-display{margin:10px 10px 0;padding:0;background:#041a27;border:1px solid #78b9b576;box-shadow:0 0 0 4px #061f2bb9,inset 0 0 27px #6effe418}
.tank-display canvas{display:block;width:100%;height:auto;border:0;box-shadow:none}
.tank-footer{margin:10px 14px 9px;display:flex;align-items:center;justify-content:space-between;font:8px 'IBM Plex Mono',monospace;letter-spacing:.12em;color:#94bcc0}
.tank-footer span{display:flex;align-items:center;gap:7px}.tank-footer strong{color:#80ffe0;font-size:9px}
.tank-legend{margin:0;padding:12px 15px 15px;background:#061b27b8;border-top:1px solid #629f9f64;gap:8px 14px;font-size:10px}
.tank-legend span{color:#c4e4e2}.tank-legend b{color:#f5fffc;font-weight:600}
.target-card{right:363px;top:118px;width:212px}
@media(max-width:1100px){.tank-panel{right:14px;width:282px}.target-card{right:309px;width:192px}}
@media(max-width:700px){.tank-panel{top:76px;right:10px;width:166px}.tank-heading{padding:8px 8px 7px}.tank-online{font-size:6px;letter-spacing:.04em;margin-bottom:5px}.tank-title{display:block}.tank-title strong{font-size:12px}.tank-title #tank-count{display:block;font-size:9px;margin-top:5px}.tank-meter{margin-top:7px}.tank-display{margin:6px 6px 0}.tank-footer{margin:6px 8px;font-size:6px;letter-spacing:0}.tank-footer strong{font-size:6px}.tank-legend{padding:7px;gap:4px;font-size:7px}.target-card{left:12px;right:auto;top:340px;width:170px}}
@media(max-height:660px){.tank-panel{top:76px;width:222px}.tank-footer,.tank-legend{display:none}.tank-title strong{font-size:15px}.tank-display{margin:6px}.target-card{top:180px}}
