@import"https://fonts.googleapis.com/css2?family=Barlow+Condensed:wght@500;600;700&family=JetBrains+Mono:wght@400;600;700&display=swap";*{margin:0;padding:0;box-sizing:border-box}html,body,#root{width:100%;height:100%;overflow:hidden}body{background:#070b0f;font-family:JetBrains Mono,Fira Code,monospace;color:#e0e0e0}#root{position:relative;isolation:isolate;background:radial-gradient(ellipse at 50% 35%,rgba(31,76,85,.18),transparent 58%),linear-gradient(135deg,rgba(11,27,32,.4),transparent 42%)}#root:after{content:"";position:absolute;inset:0;pointer-events:none;z-index:2;opacity:.16;background-image:linear-gradient(rgba(111,226,220,.08) 1px,transparent 1px),linear-gradient(90deg,rgba(111,226,220,.08) 1px,transparent 1px);background-size:72px 72px;mask-image:linear-gradient(to bottom,transparent,black 18%,black 80%,transparent)}button{font-family:JetBrains Mono,monospace;transition:all .2s ease}button:hover{transform:translateY(-2px);filter:brightness(1.16)}canvas{display:block}#root[data-visual-evaluation=true] *{pointer-events:none}canvas.fire-mode{cursor:crosshair}canvas.fire-mode:hover{cursor:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='36' height='36' viewBox='0 0 36 36'%3E%3Ccircle cx='18' cy='18' r='10' fill='none' stroke='%23ff6b54' stroke-width='2'/%3E%3Cpath d='M18 2v8M18 26v8M2 18h8M26 18h8' stroke='%23ffdf86' stroke-width='2'/%3E%3Ccircle cx='18' cy='18' r='2' fill='%23ffdf86'/%3E%3C/svg%3E") 18 18,crosshair}.tactical-hud{position:absolute;inset:0;z-index:4;display:flex;justify-content:space-between;align-items:flex-start;padding:24px 28px;pointer-events:none}.mission-banner,.turn-readout,.mission-readout,.unit-card{position:relative;background:linear-gradient(135deg,#081217f0,#0a161cad);border:1px solid rgba(133,207,211,.24);box-shadow:0 14px 35px #00000040,inset 0 1px #ffffff0f;backdrop-filter:blur(14px);clip-path:polygon(0 0,calc(100% - 13px) 0,100% 13px,100% 100%,13px 100%,0 calc(100% - 13px))}.mission-banner,.turn-readout{min-width:270px;padding:14px 18px 13px}.mission-banner strong,.turn-readout strong{display:block;color:#f4fbf9;font:700 25px/1 Barlow Condensed,sans-serif;letter-spacing:.13em}.mission-readout{min-width:270px;margin-top:10px;padding:11px 14px 10px}.mission-readout strong{display:block;color:#ffdf86;font:600 17px/1 Barlow Condensed,sans-serif;letter-spacing:.1em}.eyebrow,.subline{display:block;font-size:9px;letter-spacing:.18em}.eyebrow{color:#74dcd2;margin-bottom:8px}.subline{color:#dbf2ef7a;margin-top:8px}.panel-accent-red{border-left:3px solid #e75b62}.panel-accent-red .eyebrow{color:#f07178}.panel-accent-cyan{border-left:3px solid #51d9d2}.turn-readout{text-align:right;min-width:220px}.turn-readout strong{color:#77e4d9}.operative-roster{position:absolute;left:28px;top:128px;z-index:3;display:flex;flex-direction:column;gap:6px;width:220px;padding:12px;background:#081217d6}.roster-button{--operative-color: #51d9d2;display:flex;align-items:center;justify-content:space-between;gap:8px;border:1px solid color-mix(in srgb,var(--operative-color) 55%,transparent);border-left-width:3px;background:#0c1c22cc;color:#b7d9d6;padding:8px 10px;text-align:left;font:inherit;font-size:10px;letter-spacing:.08em;cursor:pointer}.roster-role{display:inline-flex;flex:none;color:var(--operative-color)}.operative-roster,.hostile-contacts{pointer-events:auto}.roster-button{transition:background-color .12s ease,box-shadow .12s ease,transform .12s ease}.roster-button:hover:not(:disabled),.roster-button:focus-visible,.roster-button.is-active{border-color:var(--operative-color);color:#fff;box-shadow:0 0 12px color-mix(in srgb,var(--operative-color) 35%,transparent)}.roster-button:hover:not(:disabled),.roster-button:focus-visible{background:color-mix(in srgb,var(--operative-color) 22%,rgba(12,28,34,.9));transform:translate(3px);outline:none}.roster-button.is-spent{color:#ffdf86;background:#46341085}.roster-button.is-spent.is-active{color:#fff1bc}.roster-button:disabled{cursor:not-allowed;opacity:.35}.hostile-contacts{position:absolute;left:28px;top:390px;z-index:3;display:flex;flex-direction:column;gap:6px;width:220px;padding:12px;background:#170c0cd6}.target-button{border:1px solid rgba(255,107,84,.35);background:#261212cc;color:#e9aaa0;padding:8px 10px;text-align:left;font:inherit;font-size:10px;letter-spacing:.08em;cursor:pointer}.target-button{transition:background-color .12s ease,box-shadow .12s ease,transform .12s ease}.target-button:hover,.target-button:focus-visible,.target-button.is-active{border-color:#ff8a70;color:#fff;box-shadow:0 0 12px #ff6b5433}.target-button:hover,.target-button:focus-visible{background:#60241ee6;transform:translate(3px);outline:none}.target-button.is-disabled{cursor:default;opacity:.6}.target-button.is-disabled:hover,.target-button.is-disabled:focus-visible{opacity:.9}.action-dock{position:absolute;left:320px;right:28px;bottom:28px;display:flex;align-items:end;gap:10px;pointer-events:auto}.action-bar{min-width:0;max-width:none;flex:1;padding:10px 12px 12px;background:linear-gradient(135deg,#081217f5,#0a161cd1)}.action-bar strong{display:block;margin-bottom:8px;color:#f4fbf9;font:600 18px/1 Barlow Condensed,sans-serif;letter-spacing:.1em}.action-bar .subline{margin:0 0 9px}.action-buttons{display:flex;gap:6px}.action-buttons .action-button{min-width:0;flex:1 1 0;padding:10px 8px;font-size:10px}.action-button:disabled{cursor:not-allowed;opacity:.32;filter:saturate(.35);transform:none}.action-button.is-active{outline:1px solid #91f6e9;box-shadow:0 0 16px #51d9d247,inset 0 1px #fff3}.action-dock>.action-button{min-width:0;min-height:42px}.action-button{min-width:138px;padding:13px 18px;border:1px solid color-mix(in srgb,var(--button-color) 70%,white 12%);color:#effaf8;background:linear-gradient(180deg,color-mix(in srgb,var(--button-color) 70%,#12242b),color-mix(in srgb,var(--button-color) 42%,#091318));box-shadow:0 8px 22px #00000047,inset 0 1px #ffffff1f;cursor:pointer;font-size:11px;font-weight:700;letter-spacing:.12em;clip-path:polygon(0 0,calc(100% - 9px) 0,100% 9px,100% 100%,0 100%)}.unit-card{position:absolute;left:28px;bottom:28px;min-width:264px;padding:16px 18px;pointer-events:auto;font-size:12px;line-height:1.75}.unit-card .eyebrow{margin-bottom:10px}.unit-card .unit-name{color:#86eee1;font:600 23px/1 Barlow Condensed,sans-serif;letter-spacing:.08em}.unit-card .stat-row{display:flex;justify-content:space-between;border-top:1px solid rgba(151,221,218,.1)}.unit-card .stat-label{color:#dff4f180;font-size:10px;letter-spacing:.14em}.unit-card .stat-value{color:#f1fbf8}.empty-state{color:#dff4f17a;font-size:11px;line-height:1.45}.mission-readout[data-persistence]:after{content:attr(data-persistence);display:block;margin-top:6px;color:#86eee1;font:600 11px/1.3 JetBrains Mono,monospace;letter-spacing:.14em}.campaign-overlay{position:absolute;inset:0;z-index:120;overflow:auto;padding:42px;background:radial-gradient(ellipse at 50% 20%,#1c495057,#03080cf7 68%);pointer-events:auto}.campaign-panel{width:min(920px,100%);margin:0 auto;padding:34px;border:1px solid rgba(133,207,211,.35);background:#071116f0;box-shadow:0 24px 80px #00000073,inset 0 1px #ffffff14}.campaign-panel h1{color:#f4fbf9;font:700 42px/1 Barlow Condensed,sans-serif;letter-spacing:.12em}.campaign-panel h2{color:#f4fbf9;font:600 22px/1.1 Barlow Condensed,sans-serif;letter-spacing:.08em}.campaign-lede{margin-top:12px;color:#dbf2efa6;font-size:11px;letter-spacing:.14em}.campaign-reward{margin:26px 0 18px;color:#ffdf86;font-size:13px;letter-spacing:.12em}.campaign-primary,.hq-deploy,.hq-promote{border:1px solid #51d9d2;background:#0f5052b8;color:#f4fbf9;padding:12px 16px;cursor:pointer;font:600 11px JetBrains Mono,monospace;letter-spacing:.1em}.campaign-primary:hover,.hq-deploy:hover:not(:disabled),.hq-promote:hover:not(:disabled){border-color:#ffdf86;color:#ffdf86}.hq-deploy:disabled,.hq-promote:disabled{cursor:not-allowed;opacity:.45}.debrief-list{display:grid;gap:8px;margin:20px 0 28px}.debrief-row{display:flex;justify-content:space-between;gap:20px;padding:12px;border-left:2px solid #51d9d2;background:#10252ab3;color:#dcefed;font-size:11px;letter-spacing:.06em}.debrief-row span{color:#86eee1;text-align:right}.headquarters-panel{width:min(1180px,100%)}.hq-header{display:flex;justify-content:space-between;gap:24px;padding-bottom:28px;border-bottom:1px solid rgba(133,207,211,.2)}.hq-facilities{display:flex;flex-direction:column;gap:8px;align-items:flex-end;color:#dbf2ef8c;font-size:10px;letter-spacing:.14em}.hq-facilities span:first-child{color:#ffdf86}.headquarters-panel section{margin-top:28px}.section-heading{display:flex;justify-content:space-between;margin-bottom:10px;color:#74dcd2;font-size:10px;letter-spacing:.16em}.hq-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.hq-operative-card,.hq-mission-card{padding:16px;border:1px solid rgba(133,207,211,.2);background:#0b1c22b8}.hq-facility-card{padding:16px;border:1px solid rgba(255,223,134,.3);background:linear-gradient(135deg,#3e351a73,#0b1c22b8)}.hq-facility-card h2{margin-top:8px}.hq-facility-card p{max-width:70ch;margin-top:8px;color:#dbf2efb8;font-size:11px;line-height:1.45}.hq-facility-card .hq-deploy{margin-top:14px}.hq-facility-locked{border-color:#85cfd333;background:#0b1c22b8}.hq-operative-card p,.hq-mission-card p{margin-top:8px;color:#dbf2efb8;font-size:11px;line-height:1.45}.hq-operative-card .hq-promote{margin-top:14px;width:100%}.hq-mission-card .hq-deploy{margin-top:14px}@media(max-width:720px){.tactical-hud{padding:14px}.mission-banner{min-width:0;max-width:62vw}.mission-banner strong,.turn-readout strong{font-size:18px}.turn-readout{min-width:0;padding:12px}.unit-card{left:14px;bottom:142px;min-width:220px}.operative-roster{left:14px;top:128px;width:190px}.hostile-contacts{left:14px;top:370px;width:190px}.action-dock{left:14px;right:14px;bottom:14px}.action-bar{min-width:0;max-width:none;flex:1}.action-buttons{flex-wrap:wrap}.action-buttons .action-button{flex:1 1 calc(25% - 6px)}.action-button{min-width:0;padding:11px 12px}.campaign-overlay{padding:16px}.campaign-panel{padding:22px}.campaign-panel h1{font-size:32px}.hq-header,.section-heading,.debrief-row{flex-direction:column;align-items:flex-start}.hq-facilities{align-items:flex-start}.hq-grid{grid-template-columns:1fr}.debrief-row span{text-align:left}}
