:root{--font-serif: "Cinzel", serif;--font-sans: "Outfit", sans-serif;--font-mono: "Share Tech Mono", monospace;--color-gold: #D4AF37;--color-gold-glow: rgba(212, 175, 55, .4);--color-blue: #1E6091;--color-blue-glow: rgba(30, 96, 145, .4);--color-ruby: #9E2A2B;--color-ruby-glow: rgba(158, 42, 43, .4);--color-aether-cyan: #00f0ff;--color-brass: #c5a059;--color-brass-dark: #8c6d32;--color-dark-iron: #1f2421;--color-bg-glass: rgba(16, 12, 24, .82);--color-bg-card: rgba(24, 18, 36, .92);--border-brass: 1px solid rgba(197, 160, 89, .4);--border-brass-gold: 2px solid #D4AF37;--shadow-glow: 0 8px 32px rgba(0, 0, 0, .6);--shadow-brass: 0 0 15px rgba(197, 160, 89, .25)}*{box-sizing:border-box;margin:0;padding:0;user-select:none}html,body{width:100%;height:100%;overflow:hidden;background-color:#0b0811;font-family:var(--font-sans);color:#f0e6d2}#renderCanvas{width:100vw;height:100vh;display:block;outline:none}#ui-root{position:absolute;top:0;left:0;width:100vw;height:100vh;pointer-events:none;z-index:10}.game-hud,.menu-backdrop,.menu-card,.hangar-container{pointer-events:auto}.menu-backdrop{position:absolute;top:0;left:0;width:100vw;height:100vh;background:radial-gradient(circle at center,#120e1cbf,#08060ef2);display:flex;align-items:center;justify-content:center;backdrop-filter:blur(8px);z-index:20}.menu-card{background:var(--color-bg-card);border:var(--border-brass);box-shadow:var(--shadow-glow),var(--shadow-brass);border-radius:12px;padding:36px 48px;text-align:center;max-width:680px;width:90%;position:relative;animation:fadeInScale .35s ease-out}@keyframes fadeInScale{0%{opacity:0;transform:scale(.94)}to{opacity:1;transform:scale(1)}}.menu-crest{font-size:42px;margin-bottom:8px;filter:drop-shadow(0 0 12px var(--color-brass))}.game-title{font-family:var(--font-serif);font-size:38px;font-weight:900;letter-spacing:3px;color:#fff2c4;text-shadow:0 0 16px rgba(212,175,55,.6),0 2px 4px #000;margin-bottom:6px}.game-tagline{font-size:14px;letter-spacing:1.5px;color:var(--color-brass);text-transform:uppercase;margin-bottom:30px}.menu-button-group{display:flex;flex-direction:column;gap:14px;margin:24px auto;max-width:320px}.btn-menu{background:linear-gradient(180deg,#2a2038,#171120);border:var(--border-brass);color:#f7eed8;font-family:var(--font-serif);font-size:16px;font-weight:700;letter-spacing:2px;padding:14px 24px;border-radius:6px;cursor:pointer;transition:all .2s ease;box-shadow:0 4px 12px #0006}.btn-menu:hover{background:linear-gradient(180deg,#3d2f52,#241a32);border-color:gold;color:#fff;transform:translateY(-2px);box-shadow:0 6px 18px #d4af3759}.btn-menu.primary{background:linear-gradient(180deg,#9a7322,#5e4410);border-color:gold;color:#fff;box-shadow:0 4px 16px #d4af3766}.btn-menu.primary:hover{background:linear-gradient(180deg,#b88d30,#755516);box-shadow:0 6px 24px #d4af3799}.menu-footer-lore{font-size:13px;color:#a89bb6;font-style:italic;margin-top:20px;line-height:1.5}.hangar-container{width:92%;max-width:1100px;background:var(--color-bg-card);border:var(--border-brass);box-shadow:var(--shadow-glow),var(--shadow-brass);border-radius:12px;padding:32px 40px;display:flex;flex-direction:column;gap:24px;animation:fadeInScale .35s ease-out}.hangar-header{position:relative;text-align:center}.btn-back{position:absolute;left:0;top:4px;background:transparent;border:var(--border-brass);color:var(--color-brass);padding:6px 16px;border-radius:4px;font-size:13px;cursor:pointer;transition:all .2s ease}.btn-back:hover{background:#c5a05933;color:#fff}.hangar-title{font-family:var(--font-serif);font-size:28px;letter-spacing:2px;color:#ffe8a1}.hangar-subtitle{font-size:13px;color:#a89bb6;margin-top:4px}.squadron-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}.squadron-card{background:#120e1ad9;border:1px solid rgba(255,255,255,.1);border-radius:8px;padding:24px 20px;display:flex;flex-direction:column;align-items:center;text-align:center;cursor:pointer;transition:all .25s ease;position:relative;overflow:hidden}.squadron-card:hover{transform:translateY(-4px);border-color:#d4af3780;box-shadow:0 8px 24px #00000080}.squadron-card.selected{border:2px solid #ffd700;box-shadow:0 0 24px #d4af3773;background:#1c142af2}.squadron-card.faction-card-gold.selected{border-color:var(--color-gold);box-shadow:0 0 24px var(--color-gold-glow)}.squadron-card.faction-card-blue.selected{border-color:#00c8ff;box-shadow:0 0 24px var(--color-blue-glow)}.squadron-card.faction-card-ruby.selected{border-color:#ff4545;box-shadow:0 0 24px var(--color-ruby-glow)}.faction-emblem-lg{font-size:46px;margin-bottom:12px}.faction-name{font-family:var(--font-serif);font-size:18px;font-weight:700;margin-bottom:4px;color:#fff}.faction-subtitle{font-size:12px;color:var(--color-brass);text-transform:uppercase;letter-spacing:1px;margin-bottom:12px}.faction-lore{font-size:12px;line-height:1.5;color:#bfb2cf;margin-bottom:16px;flex-grow:1}.faction-style-badge{font-size:11px;background:#0006;padding:6px 10px;border-radius:4px;color:#e5d7af;border:1px solid rgba(197,160,89,.2)}.hangar-footer{display:flex;justify-content:space-between;align-items:center;border-top:var(--border-brass);padding-top:18px}.difficulty-select-group{display:flex;align-items:center;gap:8px}.diff-label{font-size:13px;font-weight:600;letter-spacing:1px;color:var(--color-brass)}.btn-diff{background:#00000080;border:1px solid rgba(255,255,255,.15);color:#a89bb6;padding:6px 14px;border-radius:4px;font-size:12px;font-weight:600;cursor:pointer;transition:all .2s ease}.btn-diff.active{background:var(--color-brass);color:#1a1205;border-color:gold;font-weight:700}.btn-launch-skirmish{background:linear-gradient(180deg,#c5a059,#8c6d32);border:1px solid #ffd700;color:#171120;font-family:var(--font-serif);font-size:15px;font-weight:900;letter-spacing:1.5px;padding:12px 28px;border-radius:6px;cursor:pointer;box-shadow:0 4px 18px #d4af3780;transition:all .2s ease}.btn-launch-skirmish:hover{background:linear-gradient(180deg,#deb76b,#a4813f);transform:translateY(-2px);box-shadow:0 6px 24px #d4af37b3}.briefing-card{max-width:780px;text-align:left}.briefing-header{border-bottom:var(--border-brass);padding-bottom:12px;margin-bottom:18px;display:flex;justify-content:space-between;align-items:baseline}.briefing-title{font-family:var(--font-serif);font-size:22px;color:#ffe8a1}.briefing-code{font-family:var(--font-mono);font-size:11px;color:var(--color-aether-cyan)}.briefing-body{display:grid;grid-template-columns:1fr 1fr;gap:24px;margin-bottom:20px}.col-title{font-family:var(--font-serif);font-size:14px;color:var(--color-brass);letter-spacing:1px;margin-bottom:10px}.briefing-list{list-style:none;font-size:13px;line-height:1.6;color:#d1c5df}.briefing-list li{margin-bottom:8px}.briefing-controls-strip{background:#0006;border:var(--border-brass);border-radius:6px;padding:10px 16px;display:flex;justify-content:space-between;font-size:12px;color:#e5d7af;margin-bottom:20px}.game-hud{position:absolute;top:0;left:0;width:100vw;height:100vh;display:flex;flex-direction:column;justify-content:space-between;pointer-events:none}.hud-top-bar{pointer-events:auto;padding:16px 24px;display:flex;justify-content:center}.hud-scores-container{display:flex;align-items:center;gap:20px;background:var(--color-bg-glass);border:var(--border-brass);box-shadow:var(--shadow-glow);backdrop-filter:blur(12px);border-radius:10px;padding:10px 24px}.score-card{width:130px;text-align:center}.score-faction-name{font-family:var(--font-serif);font-size:12px;font-weight:700;letter-spacing:1px;margin-bottom:2px}.score-card.faction-gold .score-faction-name{color:var(--color-gold)}.score-card.faction-blue .score-faction-name{color:#48a9f8}.score-card.faction-ruby .score-faction-name{color:#ff5454}.score-val{font-family:var(--font-mono);font-size:22px;font-weight:700;color:#fff}.score-bar-bg{width:100%;height:6px;background:#ffffff1a;border-radius:3px;overflow:hidden;margin-top:4px}.score-bar-fill{height:100%;border-radius:3px;transition:width .3s ease}#score-bar-gold{background:var(--color-gold)}#score-bar-blue{background:#48a9f8}#score-bar-ruby{background:#ff5454}.hud-center-objective{display:flex;flex-direction:column;align-items:center;padding:0 16px}.match-timer{font-family:var(--font-mono);font-size:20px;font-weight:700;color:#fff;letter-spacing:2px}.beacon-status-pill{margin-top:4px;font-size:11px;font-weight:700;letter-spacing:1px;padding:4px 12px;border-radius:12px;border:1px solid rgba(255,255,255,.2);display:flex;align-items:center;gap:6px}.beacon-status-pill.neutral{background:#00c8ff26;color:#00f0ff;border-color:#00f0ff}.beacon-status-pill.contested{background:#ff8c0040;color:#ff8c00;border-color:#ff8c00;animation:pulseContest 1s infinite alternate}@keyframes pulseContest{0%{opacity:.7}to{opacity:1}}.beacon-status-pill.controlled-gold{background:#d4af3733;color:var(--color-gold);border-color:var(--color-gold)}.beacon-status-pill.controlled-blue{background:#1e609140;color:#48a9f8;border-color:#48a9f8}.beacon-status-pill.controlled-ruby{background:#9e2a2b40;color:#ff5454;border-color:#ff5454}.time-controls{margin-top:6px;display:flex;gap:8px}.btn-time-ctrl{background:#0006;border:var(--border-brass);color:#f7eed8;font-size:11px;font-weight:600;padding:4px 10px;border-radius:4px;cursor:pointer;transition:all .2s ease}.btn-time-ctrl:hover{background:#c5a0594d}.btn-time-ctrl.paused{background:#ff8c00;color:#000;border-color:gold;font-weight:700}.hud-bottom-bar{pointer-events:auto;padding:16px 24px;display:flex;justify-content:space-between;align-items:flex-end;gap:20px}.hud-radar-wrapper{background:var(--color-bg-glass);border:var(--border-brass);box-shadow:var(--shadow-glow);backdrop-filter:blur(12px);border-radius:10px;padding:10px;display:flex;flex-direction:column;align-items:center}.radar-title{font-family:var(--font-serif);font-size:10px;letter-spacing:1px;color:var(--color-brass);margin-bottom:6px}.tactical-minimap{border-radius:50%;cursor:crosshair}.hud-selection-dock{flex-grow:1;max-width:680px;background:var(--color-bg-glass);border:var(--border-brass);box-shadow:var(--shadow-glow);backdrop-filter:blur(12px);border-radius:10px;padding:12px 18px;min-height:120px;display:flex;align-items:center;justify-content:center;gap:14px}.no-selection-prompt{font-size:12px;letter-spacing:1.5px;color:#8c7e9f;font-family:var(--font-serif)}.ship-dock-card{background:#0c0912cc;border:1px solid rgba(255,255,255,.12);border-radius:6px;padding:8px 12px;width:190px;display:flex;flex-direction:column;gap:4px}.ship-card-header{display:flex;justify-content:space-between;align-items:center}.ship-name{font-size:12px;font-weight:700;color:#fff;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ship-alt-badge{font-family:var(--font-mono);font-size:9px;padding:2px 5px;border-radius:3px;background:#0009;border:1px solid rgba(255,255,255,.2);color:#00f0ff}.ship-stat-row{display:flex;align-items:center;gap:6px;font-size:10px}.stat-label{width:32px;font-family:var(--font-mono);color:#a89bb6}.stat-bar-bg{flex-grow:1;height:5px;background:#ffffff1a;border-radius:2px;overflow:hidden}.stat-bar-fill.hull{background:#4cd964}.stat-bar-fill.lift{background:#00c8ff}.stat-val{font-family:var(--font-mono);font-size:9px;color:#d1c5df;width:48px;text-align:right}.btn-ability{width:100%;margin-top:4px;border-radius:4px;padding:4px 6px;font-size:10px;font-weight:700;letter-spacing:.5px;cursor:pointer;transition:all .2s ease}.btn-ability.ready{background:linear-gradient(180deg,#c5a059,#7d5e22);border:1px solid #ffd700;color:#fff}.btn-ability.ready:hover{background:linear-gradient(180deg,#deb76b,#9a752e)}.btn-ability.cooldown{background:#00000080;border:1px solid rgba(255,255,255,.1);color:#7b6f88;cursor:not-allowed}.hud-commands-dock{background:var(--color-bg-glass);border:var(--border-brass);box-shadow:var(--shadow-glow);backdrop-filter:blur(12px);border-radius:10px;padding:12px 16px;display:flex;flex-direction:column}.cmd-group-title{font-family:var(--font-serif);font-size:10px;letter-spacing:1px;color:var(--color-brass);margin-bottom:4px}.cmd-altitude-buttons,.cmd-order-buttons{display:flex;gap:6px}.btn-cmd{background:#0006;border:var(--border-brass);color:#f7eed8;font-size:11px;font-weight:600;padding:6px 10px;border-radius:4px;cursor:pointer;transition:all .2s ease}.btn-cmd:hover{background:#c5a0594d;border-color:gold}.pause-watermark{position:absolute;top:90px;left:50%;transform:translate(-50%);background:#ff8c00d9;color:#000;font-family:var(--font-serif);font-size:14px;font-weight:900;letter-spacing:2px;padding:6px 20px;border-radius:20px;box-shadow:0 0 20px #ff8c0099;pointer-events:none}.results-card{max-width:720px}.results-banner{font-family:var(--font-serif);font-size:28px;font-weight:900;letter-spacing:3px;margin-bottom:6px}.results-banner.victory{color:gold;text-shadow:0 0 16px rgba(212,175,55,.8)}.results-banner.defeat{color:#ff4545;text-shadow:0 0 16px rgba(255,69,69,.8)}.results-winner-text{font-size:14px;letter-spacing:1px;color:#a89bb6;margin-bottom:16px}.results-medals-row{display:flex;justify-content:center;flex-wrap:wrap;gap:8px;margin-bottom:20px}.medal-tag{background:#d4af3726;border:1px solid var(--color-brass);color:#ffe599;font-size:12px;font-weight:600;padding:4px 10px;border-radius:12px}.results-stats-table{width:100%;border-collapse:collapse;margin-bottom:24px;font-size:13px}.results-stats-table th,.results-stats-table td{padding:10px 12px;text-align:left;border-bottom:1px solid rgba(255,255,255,.08)}.results-stats-table th{color:var(--color-brass);font-family:var(--font-serif);font-size:11px;letter-spacing:1px}.results-actions{flex-direction:row;justify-content:center;max-width:100%}.menu-credit{margin-top:14px;font-size:11px;color:#f7eed88c;text-align:center}.player-strip{margin:4px auto 0;padding:10px 14px;max-width:360px;border:var(--border-brass);border-radius:10px;background:#0c09128c;display:flex;flex-direction:column;gap:6px;align-items:center;font-size:13px;color:#e9dfc8}.player-strip-note{font-size:12px;color:#b9aec8}.player-strip-actions{display:flex;gap:14px;flex-wrap:wrap;justify-content:center}.btn-link{background:none;border:none;padding:6px 2px;color:#ffd36b;font-family:var(--font-sans);font-size:13px;font-weight:600;text-decoration:underline;text-underline-offset:3px;cursor:pointer}.btn-link:hover{color:#fff1c4}.account-card{max-width:440px;width:calc(100% - 32px);box-sizing:border-box}.board-card{max-width:560px}.account-note{font-size:13px;line-height:1.5;color:#c9bfd6;margin:10px 0}.account-error{font-size:13px;color:#ff8a7a;margin:8px 0}.account-recovery{font-family:var(--font-mono);font-size:22px;letter-spacing:3px;color:#ffe8a1;background:#0006;border:var(--border-brass);border-radius:8px;padding:12px;margin:12px 0;user-select:all}.account-form{display:flex;flex-direction:column;gap:10px;text-align:left}.account-field{display:flex;flex-direction:column;gap:4px;font-size:12px;color:#c9bfd6;letter-spacing:.5px}.account-field input{font:600 16px var(--font-sans);color:#fff;background:#00000073;border:var(--border-brass);border-radius:6px;padding:10px 12px}.account-field input:focus{outline:2px solid #ffd36b;outline-offset:1px}.account-form .menu-button-group{margin:8px auto 0;width:100%}.account-switches{display:flex;gap:16px;justify-content:center;flex-wrap:wrap}.record-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin:12px 0}.record-grid>div{background:#00000059;border:var(--border-brass);border-radius:8px;padding:10px 4px;display:flex;flex-direction:column;align-items:center}.record-val{font-family:var(--font-mono);font-size:22px;color:#ffe8a1}.record-label{font-size:10px;letter-spacing:1px;text-transform:uppercase;color:#a89bb6;margin-top:2px}.board-table td:nth-child(2){font-weight:700;color:#fff}.board-table tr.is-you td{background:#ffd36b24}.results-record{min-height:20px;text-align:center}@media(max-width:720px){.record-grid{grid-template-columns:repeat(2,1fr)}.board-table{font-size:11px}}.menu-backdrop{overflow-y:auto;align-items:flex-start;padding:16px 0;box-sizing:border-box}.menu-backdrop>*{margin:auto}.hud-selection-dock{min-width:0}.ship-dock-card{flex:1 1 0;min-width:0;max-width:190px}.hud-commands-dock{flex-shrink:0}@media(max-width:720px){.key-hint{display:none}.hud-top-bar{padding:6px 6px 0}.hud-scores-container{width:100%;gap:4px;padding:6px 8px;justify-content:space-between;border-radius:12px}.score-card{width:auto;flex:1 1 0;min-width:0}.score-faction-name{font-size:10px;letter-spacing:.5px}.score-val{font-size:16px}.score-bar-bg{height:4px;margin-top:2px}.hud-center-objective{order:-1;flex:1.6 1 0;padding:0 2px;min-width:0}.match-timer{font-size:15px;letter-spacing:1px}.beacon-status-pill{font-size:9px;padding:2px 6px;gap:4px;max-width:100%}.beacon-text{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.time-controls{margin-top:4px;gap:4px}.btn-time-ctrl{font-size:11px;padding:6px 9px}.hud-bottom-bar{flex-wrap:wrap;padding:6px;gap:6px;align-items:stretch}.hud-commands-dock{order:-1;flex:1 1 100%;flex-direction:row;justify-content:space-between;padding:6px;gap:6px;border-radius:12px}.cmd-group-title{display:none}.cmd-altitude-buttons,.cmd-order-buttons{gap:4px}.btn-cmd{font-size:11px;padding:10px 8px;min-width:44px}.hud-radar-wrapper{padding:4px;border-radius:12px}.radar-title{display:none}.tactical-minimap{width:84px;height:84px}.hud-selection-dock{flex:1 1 0;min-height:0;padding:6px;gap:5px;border-radius:12px}.no-selection-prompt{font-size:10px;letter-spacing:1px;text-align:center}.ship-dock-card{padding:5px 6px;gap:2px}.ship-name{font-size:10px}.ship-alt-badge{display:none}.ship-stat-row:nth-of-type(3){display:none}.stat-label{width:26px;font-size:8px}.stat-val{display:none}.btn-ability{font-size:9px;padding:7px 4px}.briefing-controls-strip{display:grid;grid-template-columns:1fr 1fr;gap:6px 12px}.menu-card{padding:24px 18px}.hangar-container{width:calc(100% - 20px);padding:16px 12px;gap:12px}.hangar-title{font-size:20px}.hangar-header .btn-back{position:static;margin-bottom:8px}.squadron-grid{grid-template-columns:1fr;gap:8px}.squadron-card{display:grid;grid-template-columns:52px 1fr;column-gap:10px;text-align:left;align-items:center;padding:10px 12px}.squadron-card:hover{transform:none}.faction-emblem-lg{grid-row:span 2;font-size:34px;margin:0;text-align:center}.faction-name{font-size:15px;margin:0;white-space:normal}.faction-subtitle{font-size:10px}.faction-lore{display:none;grid-column:1 / -1;font-size:11px;margin:8px 0 0}.squadron-card.selected .faction-lore{display:block}.faction-style-badge{display:none}.hangar-footer{flex-direction:column;align-items:stretch;gap:12px}.difficulty-select-group{justify-content:center;flex-wrap:wrap}.diff-label{flex-basis:100%;text-align:center;font-size:11px}.btn-launch-skirmish{width:100%;font-size:14px;padding:14px 12px}.results-actions{flex-direction:column;gap:10px;margin:16px auto 4px}.results-actions .btn-menu{width:100%}.pause-watermark{top:120px;font-size:11px;padding:4px 12px;white-space:nowrap}}
