:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;color:#edf6ff;--hud-bg:#030a0ead;--hud-bg-strong:#040e14d6;--hud-line:#73e0ff5c;--hud-line-hot:#ff5b469e;--hud-cyan:#63e8ff;--hud-green:#79ffc2;--hud-amber:#f7d45b;--hud-red:#ff5548;background:#93c9e8;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}*{box-sizing:border-box}html,body,#app{width:100%;height:100%;margin:0;overflow:hidden}body{min-width:320px}button{color:inherit;font:inherit;border:0}#scene{background:#93c9e8;width:100%;height:100%;display:block}#vignette{pointer-events:none;opacity:.88;background:radial-gradient(circle at 50% 48%,#0000 0 52%,#0000000f 82%,#00000038 100%),linear-gradient(#ffffff0f,#1435401f);position:fixed;inset:0}#hud{pointer-events:none;position:fixed;inset:0}.top-bar{text-transform:uppercase;letter-spacing:0;justify-content:space-between;align-items:center;gap:14px;display:flex;position:absolute;top:18px;left:22px;right:22px}.brand,.mission{border:1px solid var(--hud-line);background:linear-gradient(135deg, #63e8ff21, transparent 38%), var(--hud-bg);color:#e7f6ff;clip-path:polygon(0 0,calc(100% - 12px) 0,100% 12px,100% 100%,0 100%);align-items:center;min-height:34px;padding:0 13px;font-size:13px;font-weight:800;display:inline-flex;box-shadow:inset 0 0 0 1px #ffffff0a,0 0 26px #2aaeff26}.brand-mark{border:2px solid #f6c84f;width:11px;height:11px;margin-right:9px;transform:rotate(45deg);box-shadow:0 0 18px #f6c84f8c}.readout{border:1px solid var(--hud-line);background:linear-gradient(135deg, #63e8ff24, transparent 42%), linear-gradient(180deg, #ffffff0e, #fff0), var(--hud-bg);clip-path:polygon(0 0,calc(100% - 18px) 0,100% 18px,100% 100%,18px 100%,0 calc(100% - 18px));gap:8px;width:min(380px,50vw - 28px);min-width:248px;padding:12px;transition:opacity .14s;display:grid;position:absolute;bottom:24px;box-shadow:inset 0 0 0 1px #ffffff0a,0 18px 54px #00000047,0 0 26px #53d6ff1f}.readout:before{pointer-events:none;opacity:.32;content:"";background:linear-gradient(90deg,#63e8ff29,#0000 34% 66%,#63e8ff17),repeating-linear-gradient(#ffffff09 0 1px,#0000 1px 7px);position:absolute;inset:0}.readout.left{left:24px}.readout.right{justify-items:end;right:24px}.panel-title{z-index:1;color:#e7f6ffd1;letter-spacing:0;justify-content:space-between;align-items:center;min-height:24px;font-size:10px;font-weight:900;display:flex;position:relative}.panel-title span{color:var(--hud-cyan)}.panel-title b{border-left:2px solid var(--hud-cyan);color:#fff;background:#63e8ff1a;padding:3px 7px;font-size:10px}.meter,.target-panel{z-index:1;background:#040a0f6b;border:1px solid #90dcff33;width:100%;padding:8px 9px;position:relative;box-shadow:inset 3px 0 #63e8ff2e}.label,.stats{color:#e6f7ffe0;letter-spacing:0;justify-content:space-between;align-items:center;gap:12px;font-size:10px;font-weight:800;display:flex}.stats{z-index:1;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px;display:grid;position:relative}.stats span{color:#a6e1ffdb;white-space:nowrap;background:linear-gradient(90deg,#63e8ff1a,#0000),#040a0f80;border:1px solid #90dcff2e;min-width:0;padding:7px 8px}.stats b{float:right;color:#fff}.bar{background:repeating-linear-gradient(90deg,#ffffff17 0 1px,#0000 1px 20px),#ffffff12;border:1px solid #def6ff29;height:10px;margin-top:7px;position:relative;overflow:hidden}.bar span{background:linear-gradient(90deg, var(--hud-cyan), var(--hud-amber));transform-origin:0;width:100%;position:absolute;inset:0 auto 0 0;box-shadow:0 0 18px #4de2ff7a}.bar.energy span{background:linear-gradient(90deg, var(--hud-green), #4ec4ff)}.bar.heat span{background:linear-gradient(90deg, var(--hud-cyan) 0%, var(--hud-amber) 58%, var(--hud-red) 100%);box-shadow:0 0 18px #ff5d455c}.heat-status{color:#a6e1ffdb;justify-content:flex-end;min-height:14px;margin-top:5px;font-size:10px;font-weight:900;display:flex}body.heat-hot .heat-status{color:var(--hud-amber)}body.overheated .readout.left{border-color:var(--hud-line-hot);box-shadow:inset 0 0 0 1px #ffffff0d,0 18px 54px #00000047,0 0 34px #ff564842}body.overheated .heat-status,body.overheated #systemState{color:#ffe9c7;animation:.7s steps(2,end) infinite heatPulse}.bar.lock span{background:linear-gradient(90deg, var(--hud-red), var(--hud-amber));width:0%}.bar.target-hp span{background:linear-gradient(90deg, var(--hud-red), #ffd45a)}.target-name{color:#fff2bb;text-align:right;text-transform:uppercase;margin-top:10px;font-size:12px;font-weight:800}.target-health{margin-top:10px}.radar{z-index:1;background:radial-gradient(circle,#63e8ff1a,#0000 58%),#040a0f85;border:1px solid #90dcff3d;width:150px;height:150px;position:relative;box-shadow:inset 0 0 0 1px #ffffff09}#radarCanvas{width:100%;height:100%;display:block}.center-reticle{width:150px;height:150px;transition:opacity .14s;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.center-reticle:before,.center-reticle:after{content:"";border:1px solid #63e8ff3d;position:absolute;inset:16px}.center-reticle:after{border-color:#f7d45b6b;inset:58px;transform:rotate(45deg)}.ring,.lock-reticle{border:1px solid #e8faff9e;border-radius:50%;position:absolute;inset:38px;box-shadow:0 0 16px #52d0ff47,inset 0 0 14px #52d0ff1f}.lock-reticle{opacity:0;border-color:#ffda58e0;transition:opacity .12s,transform .12s;inset:24px}.lock-reticle.locked{opacity:1;transform:scale(.74)}.cross{background:#e8faffc7;position:absolute;box-shadow:0 0 10px #63e8ff6b}.cross.h{height:1px;top:50%;left:20px;right:20px}.cross.v{width:1px;top:20px;bottom:20px;left:50%}.damage-flash{opacity:0;background:radial-gradient(circle,#0000 42%,#ff2e266b);transition:opacity .12s;position:absolute;inset:0}.overheat-alert{color:#ffe9c7;opacity:0;text-align:center;text-transform:uppercase;pointer-events:none;clip-path:polygon(10px 0,100% 0,calc(100% - 10px) 100%,0 100%);background:linear-gradient(90deg,#ff554838,#f7d45b14),#060a0cb8;border:1px solid #ff5c489e;min-width:260px;padding:10px 18px;transition:opacity .12s,transform .12s;display:grid;position:absolute;bottom:126px;left:50%;transform:translate(-50%)translateY(8px);box-shadow:inset 0 0 0 1px #ffffff0d,0 0 34px #ff564857}.overheat-alert strong{color:#ffdc80;letter-spacing:0;font-size:15px;line-height:1}.overheat-alert span{color:#ffeaccd1;font-size:10px;font-weight:900}body.overheated .overheat-alert{opacity:1;animation:.7s steps(2,end) infinite heatPulse;transform:translate(-50%)translateY(0)}body.overheated .ring,body.overheated .cross,body.overheated .center-reticle:after{background:#ff5c48b8;border-color:#ff5c48a8;box-shadow:0 0 16px #ff5c4870}@keyframes heatPulse{50%{opacity:.52}}.enemy-bars{pointer-events:none;position:absolute;inset:0}.enemy-health{opacity:0;width:78px;height:14px;transition:opacity .12s;position:absolute;transform:translate(-50%,-50%)}.enemy-health:before{color:#edf6ffdb;content:attr(data-name);text-align:center;text-shadow:0 1px 4px #000c;font-size:9px;font-weight:900;position:absolute;inset:-10px 0 auto}.enemy-health span{background:#050c129e;border:1px solid #ffd85c70;position:absolute;inset:3px 0}.enemy-health b{transform-origin:0;background:linear-gradient(90deg,#ff5c4f,#ffd45a);width:100%;position:absolute;inset:0 auto 0 0}.enemy-health.locked span{border-color:#ffd85ceb;box-shadow:0 0 14px #ffd85c47}.banner{text-align:center;pointer-events:auto;background:#040d12d1;border:1px solid #f6c84f6b;gap:9px;width:min(860px,100vw - 48px);max-height:calc(100vh - 36px);padding:14px 18px 16px;display:grid;position:absolute;top:4%;left:50%;overflow:auto;transform:translate(-50%);box-shadow:0 20px 60px #00000052}.banner[hidden]{display:none}.banner>strong{color:#f7d45b;letter-spacing:0;font-size:clamp(30px,4.4vw,52px);line-height:.9}.banner>strong:empty,.banner>span:empty{display:none}.banner span{color:#edf6ffc7;text-transform:uppercase;font-size:13px;font-weight:800}.banner[data-step=home],.banner[data-step=result],.banner[data-step=controls],.banner[data-step=enemy],.banner[data-step=pvp]{width:min(620px,100vw - 48px)}.menu-eyebrow{color:#a6e1ffd1;text-transform:uppercase;font-size:11px;font-weight:900}.main-menu{gap:10px;display:grid}.main-menu[hidden],.sortie-layout[hidden],.menu-section[hidden],.weapon-preview-panel[hidden],.menu-actions[hidden],.menu-actions button[hidden]{display:none}.menu-option{color:#edf6ff;cursor:pointer;text-align:left;background:#040a0f94;border:1px solid #90dcff42;gap:4px;min-height:74px;padding:14px 16px;display:grid}.menu-option:hover{background:#f6c84f1f;border-color:#f6c84fb8}.menu-option span{color:#f7d45b;text-transform:none;font-size:18px;font-weight:900}.menu-option small{color:#edf6ffc7;font-size:11px;font-weight:800}.sortie-layout{grid-template-columns:minmax(320px,1fr) minmax(280px,.86fr);align-items:stretch;gap:12px;display:grid}.banner[data-step=controls] .sortie-layout,.banner[data-step=enemy] .sortie-layout,.banner[data-step=pvp] .sortie-layout{grid-template-columns:1fr}.sortie-left{align-content:start;gap:8px;display:grid}.enemy-config,.pvp-config,.assemble-config,.frame-config,.map-config,.weapon-config,.control-guide,.weapon-preview-panel{background:#07151d94;border:1px solid #90dcff38;gap:8px;padding:10px;display:grid}.enemy-config label,.pvp-config>label,.assemble-config>label,.frame-config>label,.map-config>label,.weapon-config>label,.control-guide>label{color:#edf6ffdb;justify-content:space-between;align-items:center;font-size:11px;font-weight:900;display:flex}.pvp-actions{grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;display:grid}.pvp-actions button{color:#edf6ff;cursor:pointer;background:#040a0f9e;border:1px solid #90dcff47;min-height:46px;font-weight:900}.pvp-actions button:hover{color:#f7d45b;border-color:#f6c84fad}.pvp-fields{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;display:grid}.pvp-fields label{text-align:left;gap:5px;display:grid}.pvp-fields span{color:#a6e1ffc7;font-size:10px;font-weight:900}.pvp-fields input{color:#edf6ff;min-width:0;height:40px;font:inherit;text-transform:uppercase;background:#040a0fb8;border:1px solid #90dcff3d;padding:0 10px;font-size:14px;font-weight:800}#playerNameInput{text-transform:none}.pvp-status{color:#edf6ffd1;text-align:left;background:#040a0f75;border:1px solid #90dcff2e;min-height:34px;padding:8px 10px;font-size:11px;font-weight:900}.control-grid{text-align:left;grid-template-columns:minmax(64px,.42fr) minmax(0,1fr);gap:4px 10px;display:grid}.control-grid span{color:#a6e1ffc7;font-size:10px;font-weight:900}.control-grid b{color:#edf6ffeb;font-size:10px;font-weight:900}.part-tabs,.part-grid,.frame-grid,.map-grid,.weapon-grid{gap:7px;display:grid}.part-tabs{grid-template-columns:repeat(5,minmax(0,1fr))}.part-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.frame-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.map-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.weapon-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.part-tab,.part-card,.frame-card,.map-card,.weapon-card{cursor:pointer;text-align:left;background:#040a0f85;border:1px solid #90dcff38;align-content:center;gap:3px;min-height:50px;padding:9px 10px;display:grid;position:relative}.part-tab{text-align:center;min-height:38px;padding:7px 8px}.part-card{min-height:78px}.frame-card,.map-card{min-height:46px}.part-card input,.frame-card input,.map-card input,.weapon-card input{opacity:0;pointer-events:none;position:absolute}.part-tab,.part-card span,.frame-card span,.map-card span,.weapon-card span{color:#edf6ff;font-size:11px;font-weight:900}.part-card small,.frame-card small,.map-card small,.weapon-card small{color:#a6e1ffb3;font-size:9px;font-weight:800}.part-tab:hover,.part-tab.selected,.part-card:hover,.part-card.selected,.frame-card:hover,.frame-card.selected,.map-card:hover,.map-card.selected,.weapon-card:hover,.weapon-card.selected{background:#f6c84f1f;border-color:#f6c84fad}.part-tab.selected,.part-card.selected span,.frame-card.selected span,.map-card.selected span,.weapon-card.selected span{color:#f7d45b}.weapon-preview-panel{text-align:left;grid-template-rows:minmax(150px,1fr) auto;min-height:0}#weaponPreview{background:radial-gradient(circle at 50% 44%,#73e1ff1f,#0000 58%),#040a0f5c;border:1px solid #90dcff2e;width:100%;min-height:176px;display:block}.weapon-detail{gap:8px;display:grid}.weapon-detail strong{color:#f7d45b;font-size:18px;line-height:1.1}.weapon-detail p{color:#edf6ffd6;min-height:0;margin:0;font-size:12px;font-weight:700;line-height:1.4}.weapon-stats{gap:5px;display:grid}.weapon-stats div{grid-template-columns:54px 1fr;align-items:center;gap:8px;display:grid}.weapon-stats span{color:#a6e1ffd1;font-size:10px;font-weight:900}.weapon-stats i{background:#ffffff14;border:1px solid #def6ff2e;height:9px;position:relative;overflow:hidden}.weapon-stats b{transform-origin:0;background:linear-gradient(90deg,#4de2ff,#f7d45b);width:100%;position:absolute;inset:0 auto 0 0;transform:scaleX(.5)}.enemy-stepper{grid-template-columns:44px 1fr 44px;align-items:center;gap:10px;display:grid}.enemy-stepper button,.deploy-button{color:#edf6ff;cursor:pointer;background:#040a0f9e;border:1px solid #90dcff47;min-height:42px;font-weight:900}.menu-actions{grid-template-columns:minmax(120px,.35fr) minmax(0,1fr);gap:10px;display:grid}.menu-actions.single{grid-template-columns:1fr}.deploy-button.secondary{color:#edf6ffc7;background:#040a0f75}.enemy-stepper button:hover,.deploy-button:hover{color:#f7d45b;border-color:#f6c84fad}#enemyCount{color:#f7d45b;font-size:24px;font-weight:900}#enemyRange{accent-color:#f7d45b;width:100%}.deploy-button{color:#f7d45b;letter-spacing:0;background:#f6c84f21;border-color:#f6c84f94;min-height:50px}body.menu-open .readout,body.menu-open .center-reticle,body.menu-open .overheat-alert{opacity:0}#touchControls{pointer-events:none;justify-content:space-between;align-items:end;padding:0 18px 18px;transition:opacity .14s;display:none;position:fixed;inset:auto 0 0}body.menu-open #touchControls{opacity:0}.stick{pointer-events:auto;touch-action:none;background:#040a0f6b;border:1px solid #90dcff47;border-radius:50%;width:118px;height:118px;position:relative}.stick span{background:#ffdc582e;border:1px solid #ffdc58a8;border-radius:50%;width:48px;height:48px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.touch-buttons{pointer-events:auto;grid-template-columns:repeat(2,74px);gap:10px;display:grid}.touch-buttons button{color:#edf6ff;touch-action:manipulation;background:#040a0f9e;border:1px solid #90dcff47;min-height:54px;font-size:11px;font-weight:900}.touch-buttons #touchFire{color:#f7d45b;border-color:#f6c84f8a;grid-column:span 2;min-height:62px}@media (width<=760px),(pointer:coarse){.top-bar{top:12px;left:12px;right:12px}.brand,.mission{min-height:30px;padding:0 9px;font-size:11px}.readout{width:calc(50vw - 18px);min-width:150px;padding:9px;bottom:160px}.banner{gap:8px;width:calc(100vw - 24px);max-height:calc(100vh - 48px);padding:10px;top:40px}.banner>strong{font-size:clamp(26px,11vw,46px)}.readout.left{left:12px}.readout.right{right:12px}.meter,.target-panel{padding:7px}.panel-title{min-height:20px;font-size:9px}.panel-title b{padding:2px 5px;font-size:9px}.sortie-layout{grid-template-columns:1fr;gap:8px}.menu-option{min-height:66px;padding:12px}.menu-option span{font-size:16px}.enemy-config,.pvp-config,.assemble-config,.frame-config,.map-config,.weapon-config,.control-guide{gap:8px;padding:10px}.control-grid{grid-template-columns:minmax(58px,.36fr) minmax(0,1fr)}.pvp-actions,.pvp-fields{grid-template-columns:1fr}.weapon-preview-panel{grid-template-rows:minmax(132px,auto) auto;min-height:0}#weaponPreview{height:168px;min-height:0}.weapon-detail{gap:6px}.weapon-detail strong{font-size:17px}.weapon-detail p{font-size:11px;line-height:1.35}.weapon-stats{gap:4px}.weapon-grid,.frame-grid,.part-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.part-tabs{grid-template-columns:repeat(3,minmax(0,1fr))}.part-card{min-height:54px}.part-tab{min-height:34px;padding:6px}.part-card small{display:none}.frame-card,.weapon-card{min-height:38px;padding:7px 9px}.frame-card small,.weapon-card small{display:none}.deploy-button{min-height:44px}.menu-actions{grid-template-columns:minmax(82px,.34fr) minmax(0,1fr);gap:8px}.weapon-card small{display:none}.enemy-health{width:62px}.stats{grid-template-columns:1fr}.stats span:nth-child(2){display:none}.overheat-alert{min-width:220px;padding:8px 14px;bottom:132px}.radar{width:110px;height:110px}.center-reticle{width:120px;height:120px}#touchControls{display:flex}}
