html,body,#game-shell{width:100%;height:100%;margin:0;overflow:hidden;background:#090d0f;color:#e8f2f0;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;touch-action:none;-webkit-user-select:none;user-select:none}#game-shell{position:fixed;inset:0}#game-root{position:absolute;inset:0}canvas{display:block;width:100%;height:100%;touch-action:none}canvas:focus{outline:none}#hud{position:absolute;top:max(12px,env(safe-area-inset-top));left:max(12px,env(safe-area-inset-left));right:max(12px,env(safe-area-inset-right));display:flex;flex-direction:column;gap:6px;pointer-events:none;text-shadow:0 2px 8px rgb(0 0 0 / 70%)}.hud-row{display:flex;align-items:center;gap:14px;min-height:28px;font-size:13px;font-weight:800;letter-spacing:0}.hud-row span{padding:5px 8px;border:1px solid rgb(184 225 216 / 24%);background:#070c0e94;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.hud-row.muted{font-size:12px;font-weight:700;color:#b8c9c3;flex-wrap:wrap}#objective-label{max-width:min(720px,calc(100vw - 132px));overflow-wrap:anywhere;line-height:1.2}.bonus-row{min-height:24px}.bonus-row.hidden{display:none}.bonus-row span{max-width:min(520px,calc(100vw - 24px));border-color:#ffd16657;background:linear-gradient(90deg,#32270db8,#0a1214a8),repeating-linear-gradient(90deg,rgb(255 209 102 / 8%) 0 1px,transparent 1px 12px);color:#ffd166;font-size:10px;font-weight:950;line-height:1.1;text-transform:uppercase}.bonus-row.failed span{border-color:#ff765a70;color:#ffb26b}#reset-button{min-height:28px;padding:4px 10px;border:1px solid rgb(232 242 240 / 34%);background:#121f22b3;color:#e8f2f0;font:inherit;font-size:12px;font-weight:800;pointer-events:auto}.heat-row{min-height:26px}.heat-row.hidden{display:none}.heat-indicator{--heat-level: 0%;position:relative;display:flex;align-items:center;gap:8px;width:min(286px,calc(100vw - 24px));min-height:26px;padding:4px 9px;border:1px solid rgb(184 225 216 / 22%);background:linear-gradient(90deg,#0b1416e0,#17201fc7),repeating-linear-gradient(90deg,rgb(255 255 255 / 5%) 0 1px,transparent 1px 10px);box-shadow:inset 0 0 0 1px #ffffff08,0 8px 18px #00000042;color:#dcebe7;overflow:hidden}.heat-indicator:before{content:"";position:absolute;inset:0 auto 0 0;width:3px;background:#6be3c7;opacity:.9}.heat-indicator-label,.heat-readout{position:relative;z-index:1;font-size:10px;font-weight:950;line-height:1}.heat-indicator-label{color:#6be3c7}.heat-readout{width:34px;color:#e8f2f0;text-align:right}.heat-rail{position:relative;z-index:1;flex:1;height:10px;border:1px solid rgb(232 242 240 / 18%);background:repeating-linear-gradient(90deg,transparent 0 11px,rgb(5 12 14 / 70%) 11px 14px),linear-gradient(90deg,#0f1a1df5,#080e10f5);overflow:hidden}.heat-fill{position:absolute;inset:1px auto 1px 1px;width:var(--heat-level);background:linear-gradient(90deg,#6be3c7,#ffd166 62%,#ff6b4a);box-shadow:0 0 12px #6be3c75c;transition:width 90ms linear}.heat-warning{position:relative;z-index:1;width:7px;height:7px;border:1px solid rgb(232 242 240 / 24%);background:#6be3c738}.heat-indicator.warm:before,.heat-indicator.warm .heat-indicator-label{color:#ffd166}.heat-indicator.warm:before{background:#ffd166}.heat-indicator.hot,.heat-indicator.overheated{border-color:#ff765a9e}.heat-indicator.hot:before,.heat-indicator.overheated:before{background:#ff765a}.heat-indicator.hot .heat-indicator-label,.heat-indicator.overheated .heat-indicator-label,.heat-indicator.overheated .heat-readout{color:#ff765a}.heat-indicator.hot .heat-warning,.heat-indicator.overheated .heat-warning{background:#ff765a;box-shadow:0 0 16px #ff765ab3}.heat-indicator.overheated .heat-fill{background:linear-gradient(90deg,#ffbe63,#ff765a 46%,#ff3f32);box-shadow:0 0 12px #ff765a8f,0 0 24px #ff3f3252}.heat-indicator.overheated{animation:heat-pulse .42s ease-in-out infinite alternate}@keyframes heat-pulse{0%{box-shadow:inset 0 0 0 1px #ff765a26,0 8px 18px #00000042}to{box-shadow:inset 0 0 0 1px #ff765a70,0 0 20px #ff765a47}}#boot{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);color:#e8f2f0;font-size:14px;font-weight:800;letter-spacing:0}#garage-panel{position:absolute;top:max(88px,calc(env(safe-area-inset-top) + 76px));left:max(14px,env(safe-area-inset-left));bottom:max(14px,env(safe-area-inset-bottom));width:min(430px,calc(100vw - 28px));padding:14px;overflow-y:auto;border:1px solid rgb(184 225 216 / 30%);background:#080e10d6;box-shadow:0 18px 44px #0000006b;color:#edf7f4}#garage-panel.hidden{display:none}.contract-summary{position:absolute;left:50%;bottom:max(18px,env(safe-area-inset-bottom));width:min(430px,calc(100vw - 28px));padding:13px;border:1px solid rgb(184 225 216 / 30%);background:#080e10db;box-shadow:0 18px 44px #0000006b;color:#edf7f4;transform:translate(-50%)}.contract-summary.has-unlock{border-color:#ffd1669e;box-shadow:0 18px 44px #0000006b,inset 0 0 0 1px #ffd16633}.contract-summary.hidden{display:none}.summary-header{display:flex;align-items:end;justify-content:space-between;gap:12px;margin-bottom:9px}.summary-header span,.summary-header strong{display:block}.summary-header span{color:#6be3c7;font-size:11px;font-weight:900}.summary-header strong{color:#fff;font-size:22px;line-height:1;text-align:right}.summary-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;margin-bottom:9px}.summary-grid span{min-height:24px;padding:6px 7px;border:1px solid rgb(184 225 216 / 18%);background:#0c1618ad;color:#dcebe7;font-size:11px;font-weight:900}#summary-reward{color:#8dffb4}#summary-detail{margin:0 0 8px;color:#b8c9c3;font-size:12px;font-weight:800;line-height:1.35}.summary-bonuses{display:grid;gap:5px;margin-bottom:10px}.summary-bonus{min-height:22px;padding:5px 7px;border:1px solid rgb(184 225 216 / 18%);background:#0c1618ad;color:#dcebe7;font-size:10px;font-weight:900;line-height:1.15;text-transform:uppercase}.summary-bonus.completed{border-color:#8dffb461;color:#8dffb4}.summary-bonus.missed{border-color:#ffb26b42;color:#ffb26b}.summary-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px}.summary-actions button{min-height:38px;border:1px solid rgb(232 242 240 / 34%);border-radius:4px;background:#121f22c2;color:#e8f2f0;font:inherit;font-size:12px;font-weight:900}.summary-actions button:last-child{border-color:#ffd166c7;background:#ffd166;color:#111817}.summary-actions button:disabled{cursor:not-allowed;border-color:#b8e1d833;background:#121f229e;color:#8fa09a}.garage-header{display:flex;align-items:end;justify-content:space-between;gap:12px;margin-bottom:12px}.garage-header p,.garage-header h1{margin:0}.garage-header p{color:#6be3c7;font-size:12px;font-weight:900}.garage-header h1{font-size:28px;line-height:1}.garage-progress{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px;margin-bottom:10px}.garage-progress span{display:flex;align-items:center;justify-content:center;min-height:26px;padding:6px 7px;border:1px solid rgb(184 225 216 / 18%);background:#0c1618ad;color:#dcebe7;font-size:10px;font-weight:900;letter-spacing:0;line-height:1.1;text-align:center}.route-dossier{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:5px;margin-bottom:10px;padding:8px;border:1px solid rgb(184 225 216 / 20%);border-left:3px solid #6be3c7;background:linear-gradient(180deg,#111e1fd1,#081012bd),repeating-linear-gradient(135deg,rgb(255 255 255 / 4%) 0 1px,transparent 1px 12px)}.route-dossier.clear{border-left-color:#ffd166}.route-dossier.mastered{border-left-color:#8dffb4;box-shadow:inset 0 0 0 1px #8dffb429}.route-dossier span{min-width:0;overflow:hidden;text-overflow:ellipsis;text-transform:uppercase}.route-dossier-status{color:#6be3c7;font-size:9px;font-weight:950;line-height:1}.route-dossier.clear .route-dossier-status{color:#ffd166}.route-dossier.mastered .route-dossier-status{color:#8dffb4}.route-dossier-title{grid-column:2 / -1;color:#fff;font-size:13px;font-weight:950;line-height:1;text-align:right}.route-dossier-detail,.route-dossier-cue{grid-column:1 / -1;color:#dcebe7;font-size:10px;font-weight:850;line-height:1.15}.route-dossier-cue{color:#aebfba}.route-dossier-chip{min-height:22px;padding:5px 6px;border:1px solid rgb(184 225 216 / 16%);background:#0c16189e;color:#dcebe7;font-size:9px;font-weight:950;line-height:1.1;text-align:center}.route-dossier-next{color:#ffd166}.route-board{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:5px;margin-bottom:10px}.route-node{min-height:62px;padding:6px 5px;overflow:hidden;border:1px solid rgb(184 225 216 / 18%);border-radius:4px;background:linear-gradient(180deg,#131f22d1,#0a1214c7),repeating-linear-gradient(90deg,rgb(255 255 255 / 4%) 0 1px,transparent 1px 10px);color:#dcebe7;text-align:left;font:inherit}.route-node span{display:block}.route-node-step{color:#6be3c7;font-size:9px;font-weight:950;line-height:1}.route-node-label{display:-webkit-box;min-height:20px;margin-top:4px;overflow:hidden;color:#fff;font-size:10px;font-weight:950;line-height:1.05;-webkit-box-orient:vertical;-webkit-line-clamp:2}.route-node-meta{margin-top:3px;overflow:hidden;color:#aebfba;font-size:9px;font-weight:850;line-height:1.05;text-overflow:ellipsis;white-space:nowrap}.route-node-pressure{margin-top:3px;overflow:hidden;color:#ffb26b;font-size:9px;font-weight:950;line-height:1;text-overflow:ellipsis;text-transform:uppercase;white-space:nowrap}.route-node-status{margin-top:3px;color:#ffd166;font-size:9px;font-weight:950;line-height:1;text-transform:uppercase}.route-node.active{border-color:#6be3c7d6;background:linear-gradient(180deg,#163836f5,#0b2021e0),repeating-linear-gradient(90deg,rgb(107 227 199 / 10%) 0 1px,transparent 1px 10px);box-shadow:inset 0 0 0 1px #6be3c761}.route-node.cleared{border-color:#8dffb485}.route-node.mastered .route-node-status,.route-node.cleared .route-node-status{color:#8dffb4}.route-node.locked{cursor:not-allowed;opacity:.56}.route-node.locked .route-node-label,.route-node.locked .route-node-meta{color:#91a39e}.route-node.locked .route-node-pressure{color:#d79a6f}.route-node.locked .route-node-status{color:#ffb26b}.contract-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;margin-bottom:10px}.contract-card{min-height:82px;padding:7px;border:1px solid rgb(184 225 216 / 20%);border-radius:4px;background:#131f22c7;color:#dcebe7;text-align:left;font:inherit;transition:border-color .12s ease,background .12s ease,opacity .12s ease}.contract-card span,.contract-card strong{display:block}.contract-card .contract-name{margin-bottom:3px;color:#fff;font-size:12px;font-weight:900;line-height:1.1}.contract-card .contract-detail{display:-webkit-box;min-height:22px;overflow:hidden;color:#aebfba;font-size:11px;font-weight:700;line-height:1.25;-webkit-box-orient:vertical;-webkit-line-clamp:2}.contract-card .contract-meta{margin-top:4px;color:#ffd166;font-size:10px;font-weight:900;line-height:1.15;text-transform:uppercase}.contract-card .contract-intel{display:-webkit-box;margin-top:3px;overflow:hidden;color:#9edfd1;font-size:9px;font-weight:900;line-height:1.15;text-transform:uppercase;-webkit-box-orient:vertical;-webkit-line-clamp:3}.contract-card .contract-bonus-targets{margin-top:3px;color:#ffd166;font-size:9px;font-weight:900;line-height:1.15;text-transform:uppercase}.contract-card .contract-requirement{margin-top:3px;color:#6be3c7;font-size:10px;font-weight:900;line-height:1.15;text-transform:uppercase}.contract-card.active{border-color:#6be3c7cc;background:#163836eb;box-shadow:inset 0 0 0 1px #6be3c76b}.contract-card.cleared{border-color:#8dffb485}.contract-card.cleared .contract-requirement{color:#8dffb4}.contract-card.locked{cursor:not-allowed;opacity:.62}.contract-card.locked .contract-name,.contract-card.locked .contract-detail{color:#91a39e}.contract-card.locked .contract-requirement{color:#ffb26b}.loadout-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.loadout-card{min-height:86px;padding:9px;border:1px solid rgb(184 225 216 / 20%);border-radius:4px;background:#131f22c7;color:#dcebe7;text-align:left;font:inherit;transition:border-color .12s ease,background .12s ease,opacity .12s ease}.loadout-card span,.loadout-card strong{display:block}.loadout-card .loadout-name{margin-bottom:5px;color:#fff;font-weight:900}.loadout-card span:not(.loadout-name){min-height:22px;color:#aebfba;font-size:11px;font-weight:700}.loadout-card strong{margin-top:6px;color:#ffd166;font-size:12px}.loadout-card .loadout-unlock{min-height:auto;margin-top:6px;color:#6be3c7;font-size:10px;font-weight:900}.loadout-card.active{border-color:#6be3c7cc;background:#163836eb;box-shadow:inset 0 0 0 1px #6be3c76b}.loadout-card.locked{border-color:#b8e1d81f;background:#0d1517b8;color:#82908c;opacity:.72}.loadout-card.locked .loadout-name,.loadout-card.locked .loadout-unlock{color:#aebfba}.loadout-card.locked strong{color:#8c9c97}#launch-button{width:100%;min-height:40px;margin-bottom:10px;border:1px solid rgb(255 209 102 / 78%);border-radius:4px;background:#ffd166;color:#111817;font:inherit;font-weight:950}#launch-button:disabled{border-color:#b8e1d833;background:#596460;color:#dcebe7}.stick{position:absolute;width:112px;height:112px;margin:-56px 0 0 -56px;border:2px solid rgb(218 242 236 / 22%);border-radius:50%;background:#050c0e47;opacity:0;pointer-events:none;transform:translate3d(-1000px,-1000px,0);transition:opacity 80ms linear}.stick span{position:absolute;left:50%;top:50%;width:42px;height:42px;margin:-21px 0 0 -21px;border-radius:50%;background:#e8f2f06b;box-shadow:0 0 18px #4cc9b947}.stick.active{opacity:1}@media(max-width:700px){.hud-row{gap:8px;font-size:11px}.hud-row span{padding:4px 6px}#objective-label{max-width:calc(100vw - 104px)}.bonus-row span{max-width:calc(100vw - 24px)}.heat-indicator{width:min(314px,calc(100vw - 24px))}#garage-panel{top:max(136px,calc(env(safe-area-inset-top) + 124px));padding:12px}.garage-header h1{font-size:24px}.loadout-grid{grid-template-columns:1fr}.contract-grid{grid-template-columns:1fr;gap:7px}.garage-progress{grid-template-columns:1fr 1fr}.garage-progress span{min-height:25px}.route-dossier{grid-template-columns:1fr 1fr;padding:7px}.route-dossier-title{grid-column:2;font-size:12px}.route-dossier-detail,.route-dossier-cue,.route-dossier-next{grid-column:1 / -1}.route-board{grid-template-columns:repeat(2,minmax(0,1fr))}.route-node{min-height:58px}.contract-summary{left:max(12px,env(safe-area-inset-left));right:max(12px,env(safe-area-inset-right));bottom:max(12px,env(safe-area-inset-bottom));width:auto;transform:none}.summary-header strong{font-size:18px}.summary-grid{grid-template-columns:1fr 1fr}#summary-armor{grid-column:1 / -1}.loadout-card{min-height:78px}.contract-card{min-height:72px}}
