:root{--bg: #182033;--panel: rgba(16, 23, 38, .92);--panel-strong: rgba(11, 17, 29, .97);--panel-border: rgba(144, 178, 226, .24);--text: #edf2fc;--muted: #98a8c5;--accent: #70d5ff;--gold: #ffd66e;--danger: #ff756b;font-family:Segoe UI,system-ui,-apple-system,sans-serif}*{box-sizing:border-box;user-select:none;-webkit-user-select:none;-webkit-tap-highlight-color:transparent}html,body{margin:0;height:100%;overflow:hidden;background:var(--bg);color:var(--text)}button{font:inherit}canvas{touch-action:none}button{touch-action:manipulation}#overlay,.modal,.techGraphPanel,.techDetailsPanel,#contextPanel,#combatPanel{touch-action:pan-y;overscroll-behavior:contain;-webkit-overflow-scrolling:touch}#contextPanel button,#combatPanel button,.techGraphPanel button,.techDetailsPanel button{touch-action:pan-y}#stage{position:fixed;top:0;right:0;bottom:0;left:0}#hud{position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none}#hud>*{pointer-events:auto}#gameHud.hidden{display:none}.hudCard,.panel{background:var(--panel);border:1px solid var(--panel-border);box-shadow:0 12px 32px #0000005c}.scrollSkin,#contextPanel,#combatPanel,.techGraphPanel,.techDetailsPanel,.modal{scrollbar-width:thin;scrollbar-color:rgba(112,213,255,.52) rgba(7,14,25,.55)}.scrollSkin::-webkit-scrollbar,#contextPanel::-webkit-scrollbar,#combatPanel::-webkit-scrollbar,.techGraphPanel::-webkit-scrollbar,.techDetailsPanel::-webkit-scrollbar,.modal::-webkit-scrollbar{width:8px;height:8px}.scrollSkin::-webkit-scrollbar-track,#contextPanel::-webkit-scrollbar-track,#combatPanel::-webkit-scrollbar-track,.techGraphPanel::-webkit-scrollbar-track,.techDetailsPanel::-webkit-scrollbar-track,.modal::-webkit-scrollbar-track{background:#070e198a;border-radius:999px}.scrollSkin::-webkit-scrollbar-thumb,#contextPanel::-webkit-scrollbar-thumb,#combatPanel::-webkit-scrollbar-thumb,.techGraphPanel::-webkit-scrollbar-thumb,.techDetailsPanel::-webkit-scrollbar-thumb,.modal::-webkit-scrollbar-thumb{background:linear-gradient(180deg,#70d5ff9e,#3f6ab0a8);border-radius:999px}.hudCard{position:absolute;top:18px;border-radius:12px}.hudLabel,.modeLabel,.actionTitle{color:var(--muted);font-size:10px;font-weight:800;letter-spacing:1.5px;text-transform:uppercase}#resourceHud{left:18px;min-width:184px;padding:12px 15px}#goldInfo{margin-top:3px;color:var(--gold);font-size:15px}#goldInfo strong{font-size:22px}.goldNextTurn{color:#91e8ac;font-size:18px;font-weight:850}#incomeInfo{margin-top:2px;color:#91e8ac;font-size:12px}#turnHud{left:50%;transform:translate(-50%);min-width:210px;padding:10px 18px;text-align:center}#turnInfo{display:flex;align-items:center;justify-content:center;gap:8px;margin-top:3px;font-size:13px}#turnInfo strong{font-size:22px}.turnTimer{display:inline-flex;align-items:center;justify-content:center;margin-top:5px;padding:3px 9px;color:#cdefff;background:#70d5ff1c;border:1px solid rgba(112,213,255,.24);border-radius:999px;font-size:10px;font-weight:900;letter-spacing:.3px}.turnTimer.hidden{display:none}.turnTimer.own{color:#9ff3c6;border-color:#61da9947}.turnTimer.urgent{color:#ffd66e;border-color:#ffd66e61;animation:timerPulse .8s ease-in-out infinite}@keyframes timerPulse{50%{transform:scale(1.04);filter:brightness(1.25)}}.dot{width:10px;height:10px;border-radius:50%;box-shadow:0 0 10px currentColor}#utilityHud{position:absolute;top:18px;right:18px;display:flex;gap:8px}#connectionHud{position:absolute;top:76px;left:50%;padding:6px 10px;transform:translate(-50%);color:#cdefff;background:#0f1a2de6;border:1px solid var(--panel-border);border-radius:999px;font-size:11px;font-weight:700}#connectionHud.hidden{display:none}#connectionHud.reconnecting,#connectionHud.error{color:#ffd66e}#connectionHud.pending{color:var(--accent)}.turnBanner{--banner-accent: var(--accent);position:absolute;top:92px;left:50%;width:min(520px,calc(100vw - 36px));padding:13px 22px 15px;overflow:hidden;color:var(--text);background:linear-gradient(90deg,rgba(112,213,255,.12),transparent 36%),#0a111ef0;border:1px solid rgba(144,178,226,.34);border-radius:16px;box-shadow:0 20px 46px #0000006b,0 0 28px #70d5ff1f;pointer-events:none;text-align:center;transform:translate(-50%,-150%);opacity:0;z-index:7;transition:transform .42s cubic-bezier(.2,.9,.18,1),opacity .28s ease}.turnBanner.hidden{display:none}.turnBanner.show{transform:translate(-50%);opacity:1}.turnBanner:before{content:"";position:absolute;inset:0 auto 0 0;width:5px;background:var(--banner-accent);box-shadow:0 0 18px var(--banner-accent)}.turnBannerSheen{position:absolute;inset:-45% auto -45% -30%;width:42%;transform:rotate(18deg);background:linear-gradient(90deg,transparent,rgba(255,255,255,.14),transparent);animation:bannerSheen 1.15s ease-out both}.turnBannerKicker{position:relative;color:var(--banner-accent);font-size:10px;font-weight:900;letter-spacing:1.9px;text-transform:uppercase}.turnBannerTitle{position:relative;display:flex;align-items:baseline;justify-content:center;gap:9px;margin-top:2px;font-size:24px;font-weight:900;line-height:1.08}.turnBannerTitle span{color:#c8d6ee;font-size:13px;font-weight:800}.turnBannerText{position:relative;margin-top:5px;color:#aebbd3;font-size:12.5px;font-weight:700}.turnBanner.opponent{background:linear-gradient(90deg,rgba(255,117,107,.1),transparent 38%),#0e1320f0}@keyframes bannerSheen{0%{left:-34%;opacity:0}20%{opacity:1}to{left:112%;opacity:0}}.eventBanner{--event-accent: var(--gold);position:absolute;top:92px;left:50%;width:min(520px,calc(100vw - 36px));padding:14px 24px;text-align:center;color:var(--text);background:radial-gradient(circle at 50% 0%,color-mix(in srgb,var(--event-accent) 22%,transparent),transparent 70%),#0a101cf2;border:1px solid var(--event-accent);border-radius:14px;box-shadow:0 18px 50px #00000080,0 0 30px -6px var(--event-accent);pointer-events:none;transform:translate(-50%,-150%) scale(.96);opacity:0;z-index:8;transition:transform .4s cubic-bezier(.2,.9,.18,1),opacity .3s ease}.eventBanner.hidden{display:none}.eventBanner.show{transform:translate(-50%) scale(1);opacity:1}.eventBannerTitle{font-size:clamp(22px,6vw,34px);font-weight:900;letter-spacing:2px;text-transform:uppercase;color:var(--event-accent);text-shadow:0 2px 14px color-mix(in srgb,var(--event-accent) 40%,transparent)}.eventBannerText{margin-top:6px;color:#c8d6ee;font-size:13px;font-weight:700}.emoteTray{position:absolute;right:18px;top:50%;transform:translateY(-50%);display:flex;flex-direction:column;gap:6px;padding:6px;background:#0a111ed1;border:1px solid var(--panel-border);border-radius:999px;z-index:6}.emoteTray.hidden{display:none}.emoteBtn{min-width:34px;height:34px;padding:0 8px;color:var(--text);background:#30436899;border:1px solid var(--panel-border);border-radius:999px;cursor:pointer;font-size:16px;font-weight:800;line-height:1}.emoteStage{position:absolute;left:18px;bottom:30%;display:flex;flex-direction:column;align-items:flex-start;gap:6px;pointer-events:none;z-index:7}.emoteBubble{display:grid;justify-items:center;gap:2px;min-width:72px;padding:8px 12px 7px;font-weight:900;color:#f3f8ff;background:linear-gradient(180deg,color-mix(in srgb,var(--emote-accent, #70d5ff) 24%,rgba(10,17,30,.92)),#0a111eeb);border:1px solid color-mix(in srgb,var(--emote-accent, #70d5ff) 58%,rgba(144,178,226,.22));border-radius:16px;box-shadow:0 10px 26px #00000073,0 0 22px -12px var(--emote-accent, #70d5ff);animation:emotePop 1.8s ease-out forwards}.emoteGlyph{font-size:30px;line-height:1}.emoteSender{max-width:126px;overflow:hidden;color:#d7e3f8;font-size:9px;font-weight:900;letter-spacing:.6px;line-height:1.05;text-overflow:ellipsis;text-transform:uppercase;white-space:nowrap}.emoteBubble.rival{color:#ffd0c8;border-color:color-mix(in srgb,var(--emote-accent, #ff756b) 52%,rgba(255,117,107,.38))}@keyframes emotePop{0%{transform:translateY(14px) scale(.6);opacity:0}15%{transform:translateY(0) scale(1.1);opacity:1}30%{transform:scale(1)}80%{opacity:1}to{transform:translateY(-26px) scale(.95);opacity:0}}@media(max-width:760px){.emoteTray{right:8px;top:44%;padding:4px}.emoteBtn{min-width:30px;height:30px;font-size:14px}}.quickMatchTimer{display:inline-flex;justify-content:center;min-width:96px;margin:4px auto 12px;padding:7px 11px;color:var(--accent);background:#378ebc24;border:1px solid rgba(112,213,255,.28);border-radius:999px;font-size:12px;font-weight:800}.betaTrialNotice{margin:8px 0 12px;color:#d7f3ff;font-size:12px;font-weight:700}.onlinePlayerCount{display:inline-flex;align-items:center;gap:7px;margin:4px auto 14px;padding:6px 12px;color:#9ff3c6;background:#42946524;border:1px solid rgba(97,218,153,.32);border-radius:999px;font-size:12px;font-weight:800}.onlineDot{width:8px;height:8px;border-radius:50%;background:#5ccf8c;box-shadow:0 0 8px #5ccf8c;animation:onlinePulse 1.8s ease-in-out infinite}@keyframes onlinePulse{50%{opacity:.4}}.reconnectBtn{color:#d7f3ff;border-color:#70d5ff57!important;background:#2d567ab8!important}.factionTraitLine{margin:10px 0;padding:9px 11px;color:#ffe9b8;background:#ffc6601a;border-left:3px solid var(--gold);border-radius:6px;font-size:12.5px;font-weight:700;line-height:1.4}#utilityHud button,.contextAction,.trainBtn,#closeOverlayBtn,#againBtn,#mainMenuBtn,#soundToggleBtn,.menuActions button,.combatActions button,.techCard,#skipTutorialBtn{color:var(--text);background:#304368d1;border:1px solid var(--panel-border);border-radius:9px;cursor:pointer;font-weight:700;transition:filter .15s,transform .08s,background .15s}#utilityHud button{padding:10px 13px;font-size:12px}#utilityHud .surrenderBtn{color:#ffc2bd;background:#743039b8;border-color:#ff756b4d}button:hover:not(:disabled){filter:brightness(1.16);transform:translateY(-1px)}button:disabled{cursor:default;opacity:.42}.panel{position:absolute;border-radius:14px}#contextPanel{top:138px;left:18px;width:310px;max-height:calc(100vh - 292px);overflow-y:auto;padding:18px}#combatPanel{top:104px;right:18px;width:300px;padding:18px}#combatPanel.hidden,#tutorialPanel.hidden{display:none}#combatPanel h2{margin:5px 0 12px;font-size:18px}#combatPanel>p{margin:11px 0;color:var(--muted);font-size:12px}.panelCloseBtn{position:absolute;top:10px;right:10px;display:grid;place-items:center;width:26px;height:26px;padding:0;color:var(--muted);background:#536c992e;border-color:#86a8e23d;border-radius:999px;font-size:18px;line-height:1}.panelCloseBtn:hover:not(:disabled){color:var(--text);background:#536c9957}.sheetGrabber{display:none}.combatants{display:grid;grid-template-columns:1fr 1fr;gap:8px}.combatants div,.combatDamage span{display:flex;flex-direction:column;gap:3px;padding:9px;background:#506a9924;border-radius:8px;font-size:11px}.combatants span,.combatDamage{color:var(--muted)}.combatants strong{color:var(--text)}.combatDamage{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:8px}.combatDamage strong{color:var(--danger);font-size:15px}.combatActions{display:flex;gap:8px}.combatActions button{flex:1;padding:9px}.dangerBtn{background:#ae393ee6!important}#tutorialPanel{top:50%;right:18px;width:258px;padding:13px 14px;transform:translateY(-50%);text-align:left;border-color:#70d5ff80}.tutorialProgress{margin-bottom:4px;color:var(--accent);font-size:10px;font-weight:800;letter-spacing:1px;text-transform:uppercase}#tutorialPanel p{margin:5px 0 10px;color:var(--muted);font-size:11.5px;line-height:1.4}#skipTutorialBtn{padding:6px 10px;font-size:11px}.tutorialFocus{animation:tutorialPulse 1s ease-in-out infinite;outline:2px solid var(--accent);outline-offset:3px}@keyframes tutorialPulse{50%{filter:brightness(1.35);box-shadow:0 0 24px #70d5ff99}}#contextPanel.hidden{display:none}#contextPanel h2{display:flex;align-items:center;gap:9px;margin:5px 0 2px;font-size:22px}.enemyTag{color:var(--danger);border:1px solid rgba(255,117,107,.42);border-radius:5px;padding:2px 6px;font-size:10px;text-transform:uppercase}.factionLine,.coordLine{color:var(--accent);font-size:12px;font-weight:700}.description{margin:12px 0;color:var(--muted);font-size:13px;line-height:1.45}.stats{display:flex;flex-wrap:wrap;gap:7px;margin-bottom:12px}.stats span{padding:5px 7px;background:#6885b824;border-radius:6px;font-size:11px;font-weight:700}.guidance{padding:10px 11px;color:#d7f3ff;background:#378ebc29;border-left:3px solid var(--accent);border-radius:6px}.guidance p{margin:0;font-size:12.5px;line-height:1.45}.guidance p+p{margin-top:5px}.contextActions{margin-top:14px}.contextAction,.navalBtn{width:100%;padding:10px 12px;color:var(--text);background:linear-gradient(180deg,#314874eb,#1d2f50f0);border:1px solid rgba(144,178,226,.28);border-radius:9px;box-shadow:inset 0 1px #ffffff0f}.contextAction:not(:disabled):hover,.navalBtn:not(:disabled):hover{border-color:#70d5ff80;background:linear-gradient(180deg,#395a91f5,#223f6cf5)}.contextAction:disabled,.navalBtn:disabled{color:#dce8fa8f;background:#202f4d94;border-color:#90b2e229;opacity:.72}.navalGrid{display:grid;gap:8px}.navalBtn{display:grid;gap:3px;text-align:left}.navalBtn strong{font-size:12px}.navalBtn span{color:var(--gold);font-weight:850}.navalBtn small{color:var(--muted);font-size:10px;line-height:1.25}.actionTitle{margin-bottom:8px}.requirementText,.upgradeText{margin:7px 0 0;color:var(--muted);font-size:10.5px;line-height:1.35}.tileBuildingLine{margin:8px 0 2px;padding:8px 10px;border:1px solid rgba(120,160,210,.24);border-radius:10px;background:#0b132273;color:var(--muted);font-size:12px}.tileBuildingLine strong{color:var(--text)}.cityDetails{display:grid;grid-template-columns:1fr 1fr;gap:7px}.cityDetails div{display:flex;flex-direction:column;gap:2px;padding:8px;background:#5a78aa1f;border-radius:7px}.cityDetails span{color:var(--muted);font-size:9px;text-transform:uppercase}.cityDetails strong{font-size:12px}.populationBar{height:6px;margin-top:9px;overflow:hidden;background:#ffffff14;border-radius:8px}.populationBar i{display:block;height:100%;background:linear-gradient(90deg,#5ccf8c,#91e8ac)}.trainGrid{display:grid;grid-template-columns:1fr 1fr;gap:7px}.cityRewardGrid{display:grid;grid-template-columns:1fr;gap:7px}.cityRewardGrid{margin-bottom:12px;padding-bottom:10px;border-bottom:1px solid rgba(120,160,210,.18)}.cityRewardGrid .requirementText{margin:-2px 0 5px}.trainBtn{display:flex;flex-direction:column;align-items:flex-start;justify-content:space-between;padding:8px 9px;font-size:12px;gap:2px}.trainBtn strong{color:var(--text)}.trainBtn span{color:var(--gold)}.trainBtn small,.trainBtn em{color:var(--muted);font-size:10px;font-style:normal;line-height:1.2;text-align:left}.trainBtn em{color:#8fd5ff}#logPanel{bottom:18px;left:18px;width:310px;max-height:112px;overflow:hidden;padding:10px 13px;color:var(--muted);font-size:12px;line-height:1.55}#logPanel>div:first-child{color:var(--text)}#logPanel .muted{color:var(--muted)}#logPanel .latest{margin-bottom:3px;padding-left:7px;color:#fff;border-left:2px solid var(--accent)}#rotationHud{position:absolute;left:50%;bottom:20px;display:flex;gap:8px;transform:translate(-50%)}#rotationHud button{min-width:118px;padding:10px 13px;color:var(--text);background:#18233aeb;border:1px solid var(--panel-border);border-radius:9px;box-shadow:0 8px 22px #0000004d;cursor:pointer;font-size:12px;font-weight:750}#rotationHud span{margin-left:6px;padding:2px 5px;color:var(--accent);background:#70d5ff1a;border-radius:4px;font-size:10px}#endTurnBtn{position:absolute;right:22px;bottom:22px;min-width:144px;padding:14px 22px;color:#fff;background:linear-gradient(180deg,#3d8be5,#2762b8);border:1px solid rgba(145,202,255,.45);border-radius:11px;box-shadow:0 8px 24px #1953a670;cursor:pointer;font-size:15px;font-weight:800}#endTurnBtn:disabled{background:#46536a}#endTurnBtn.endTurnPrompt:not(:disabled){outline:2px solid var(--accent);outline-offset:4px;box-shadow:0 0 0 6px #70d5ff1a,0 12px 34px #286ed2a3;animation:tutorialPulse 1s ease-in-out infinite}#overlay{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:flex-start;justify-content:center;overflow:auto;padding:max(20px,env(safe-area-inset-top)) 20px max(20px,env(safe-area-inset-bottom));background:#070b14d1;overscroll-behavior:contain;-webkit-overflow-scrolling:touch}#overlay.hidden{display:none}.modal,.result,.mainMenu{width:min(620px,calc(100vw - 40px));max-height:none;overflow:visible;margin-block:auto;padding:28px;text-align:center;background:var(--panel-strong);border:1px solid var(--panel-border);border-radius:16px;box-shadow:0 24px 70px #0000008c}.modal h1,.result h1{margin:5px 0 12px}.modalBody,.result p{color:var(--muted);line-height:1.5}#closeOverlayBtn,#againBtn,#mainMenuBtn,#soundToggleBtn{margin-top:18px;padding:10px 24px}.modalStats{display:grid;grid-template-columns:1fr 1fr;gap:9px}.modalStats span{padding:10px;background:#5a78aa1f;border-radius:8px}.mainMenu{position:relative;padding:44px;text-align:center;background:radial-gradient(circle at 50% 10%,rgba(70,160,194,.2),transparent 45%),var(--panel-strong);border:1px solid var(--panel-border);border-radius:18px;box-shadow:0 28px 80px #0009}.mainMenu h1{margin:5px 0 0;font-size:clamp(48px,10vw,82px);letter-spacing:8px;background:linear-gradient(180deg,#fff,#70d5ff);-webkit-background-clip:text;background-clip:text;color:transparent}.mainMenu p{margin:5px 0 26px;color:var(--muted)}.onlineEntry h1,.waitingRoom h1{font-size:clamp(30px,6vw,48px);letter-spacing:0}.onlineField{display:grid;gap:6px;margin:0 auto 12px;text-align:left}.onlineField span{color:var(--muted);font-size:11px;font-weight:700;text-transform:uppercase}.onlineField input,.inviteRow input{min-width:0;padding:11px 12px;color:var(--text);background:#040a148c;border:1px solid var(--panel-border);border-radius:9px;outline:none;user-select:text;-webkit-user-select:text}.onlineField input:focus{border-color:var(--accent)}.inviteRow{display:grid;grid-template-columns:1fr auto;gap:7px;margin:12px 0 18px}.inviteRow button,#leaveOnlineBtn{padding:10px 14px;color:var(--text);background:#304368d1;border:1px solid var(--panel-border);border-radius:9px;cursor:pointer;font-weight:700}.onlineError{margin:-8px 0 12px;color:#ffc2bd;font-size:12px}.connectionLine{display:inline-block;padding:6px 10px;color:#91e8ac;background:#42946524;border-radius:999px;font-size:11px;font-weight:700;text-transform:capitalize}.connectionLine.reconnecting,.connectionLine.error{color:var(--gold)}.versionLabel{color:var(--accent);font-size:10px;font-weight:800;letter-spacing:2px;text-transform:uppercase}.menuActions{display:grid;gap:9px;width:min(280px,100%);margin:auto}.menuActions button{padding:12px 18px}.setupMenu{width:min(520px,calc(100vw - 32px))}.setupMenu h1{margin-bottom:10px}.onlineField select{width:100%;padding:12px 14px;color:#eef5ff;background:#0d1626eb;border:1px solid rgba(145,196,255,.26);border-radius:12px;font:inherit}.setupHint{width:min(390px,100%);margin:6px auto 16px;padding:10px 12px;color:#b9c9df;background:#70d5ff14;border:1px solid rgba(112,213,255,.2);border-radius:12px;font-size:12px;line-height:1.35}.quickModeGrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;width:min(430px,100%);margin:16px auto}.quickModeCard{display:grid;gap:5px;padding:13px;cursor:pointer;background:#0d1626b3;border:1px solid rgba(145,196,255,.22);border-radius:14px;text-align:left}.quickModeCard.selected{border-color:#ffd66ebf;box-shadow:0 0 0 1px #ffd66e2e inset}.quickModeCard input{position:absolute;opacity:0;pointer-events:none}.quickModeCard strong{color:#eef5ff;font-size:14px}.quickModeCard span{color:#9fb0ca;font-size:12px;line-height:1.35}.primaryBtn{color:#fff!important;background:linear-gradient(180deg,#3d8be5,#2762b8)!important}.launchMenu{width:min(1160px,calc(100vw - 48px));min-height:min(700px,calc(100vh - 48px));height:auto;max-height:none;overflow:visible;display:grid;grid-template-columns:minmax(330px,.9fr) minmax(340px,1fr);grid-template-rows:1fr auto;gap:28px 34px;padding:34px;text-align:left;position:relative;isolation:isolate;background:linear-gradient(180deg,#1c2a4670,#0a101d85);border:1px solid rgba(150,190,240,.16);border-radius:22px;box-shadow:0 40px 120px #0000008c,inset 0 1px #ffffff0f;-webkit-backdrop-filter:blur(18px) saturate(1.15);backdrop-filter:blur(18px) saturate(1.15);animation:launchRise .7s cubic-bezier(.22,1,.36,1) both}#overlay:has(.launchMenu),#overlay:has(.setupMenu),#overlay:has(.factionSelect){background:radial-gradient(115% 85% at 82% 6%,rgba(112,213,255,.2),transparent 46%),radial-gradient(120% 95% at 8% 98%,rgba(76,215,150,.17),transparent 52%),radial-gradient(85% 70% at 50% 42%,rgba(44,72,118,.55),transparent 72%),linear-gradient(180deg,#0d1626,#0a1020 56%,#05080f)}#overlay:has(.launchMenu):after,#overlay:has(.setupMenu):after,#overlay:has(.factionSelect):after{content:"";position:fixed;top:-12%;right:-12%;bottom:-12%;left:-12%;z-index:0;pointer-events:none;background:radial-gradient(34% 40% at 28% 32%,rgba(76,215,150,.2),transparent 60%),radial-gradient(38% 44% at 74% 64%,rgba(112,213,255,.18),transparent 62%);animation:glowDrift 28s ease-in-out infinite alternate;will-change:transform}#overlay:has(.launchMenu):before,#overlay:has(.setupMenu):before,#overlay:has(.factionSelect):before{content:"";position:fixed;top:0;right:0;bottom:0;left:0;z-index:0;pointer-events:none;background:radial-gradient(135% 115% at 50% 44%,transparent 52%,rgba(0,0,0,.62) 100%),url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.8' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");background-size:cover,160px 160px;opacity:.5;mix-blend-mode:soft-light}#overlay:has(.launchMenu)>.launchMenu,#overlay:has(.setupMenu)>.setupMenu,#overlay:has(.factionSelect)>.factionSelect{z-index:1}@keyframes launchRise{0%{opacity:0;transform:translateY(18px) scale(.992)}to{opacity:1;transform:none}}@keyframes glowDrift{0%{transform:translate3d(-2.5%,-1.5%,0) scale(1.02)}to{transform:translate3d(3%,2.5%,0) scale(1.09)}}@media(prefers-reduced-motion:reduce){.launchMenu{animation:none}#overlay:has(.launchMenu):after,#overlay:has(.setupMenu):after,#overlay:has(.factionSelect):after{animation:none}}.setupMenu,.factionSelect{position:relative;isolation:isolate;background:linear-gradient(180deg,#1c2a4680,#0a101d94);border:1px solid rgba(150,190,240,.16);border-radius:20px;box-shadow:0 40px 120px #0000008c,inset 0 1px #ffffff0f;-webkit-backdrop-filter:blur(18px) saturate(1.15);backdrop-filter:blur(18px) saturate(1.15);animation:launchRise .6s cubic-bezier(.22,1,.36,1) both}.menuBrandMark{display:flex;justify-content:center;margin-bottom:6px}.menuBrandMark .brandEmblem{width:46px;filter:drop-shadow(0 4px 16px rgba(76,215,150,.35))}@media(prefers-reduced-motion:reduce){.setupMenu,.factionSelect{animation:none}}.launchCopy{align-self:center;min-width:0}.launchTopline{display:flex;align-items:center;gap:8px;min-height:30px}.buildBadge{padding:6px 11px;color:#aee8ff;background:#70d5ff1a;border:1px solid rgba(112,213,255,.28);border-radius:999px;font-size:10px;font-weight:900;letter-spacing:1.3px;text-transform:uppercase}.launchMenu h1{margin:10px 0 0;font-size:clamp(46px,5.6vw,88px);line-height:.9;letter-spacing:.5px;white-space:nowrap;filter:drop-shadow(0 0 26px rgba(112,213,255,.42)) drop-shadow(0 2px 12px rgba(76,215,150,.28))}.brandLockup,.brandLockup h1{min-width:0}.launchMenu .launchTagline{margin:16px 0 26px;color:#b7c5dd;font-size:clamp(16px,1.7vw,21px);line-height:1.35}.launchPrimary,.launchSecondary,.launchUtility{width:min(390px,100%)}.launchPrimary button{width:100%;min-height:74px;display:flex;align-items:center;gap:16px;padding:15px 22px;border:1px solid rgba(145,196,255,.42);border-radius:14px;box-shadow:0 14px 38px #2662b86b;cursor:pointer;text-align:left}.launchPrimary .btnText{display:block;min-width:0}.launchPrimary .dailyChallengeBtn{min-height:58px;margin-top:10px;color:#ffe9b8;background:linear-gradient(135deg,#ffc7544d,#2b4a7ae6),#1c2b48eb;border-color:#ffd66e8c;box-shadow:0 10px 26px #00000047,0 0 22px -8px #ffc75480;cursor:pointer}.launchPrimary .dailyChallengeBtn:hover{border-color:#ffd66ed9;filter:brightness(1.1)}.launchPrimary .dailyChallengeBtn strong{font-size:18px;color:#ffdf9a}.launchPrimary .dailyChallengeBtn span{color:#d8c9a4}.launchPrimary .dailyChallengeBtn.cleared{color:#c9ecd6;background:linear-gradient(135deg,#5ccf8c29,#223e5ce6),#18283eeb;border-color:#5ccf8c73;box-shadow:0 10px 26px #00000047}.launchPrimary .dailyChallengeBtn.cleared strong{color:#9ff3c6}.launchPrimary .dailyChallengeBtn.cleared span{color:#9db8ab}.launchPrimary strong{display:block;font-size:24px;line-height:1.1}.launchPrimary span{display:block;margin-top:4px;color:#ffffffc7;font-size:12px;font-weight:800}.launchSecondary{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin-top:10px}.launchUtility{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;margin-top:9px}.launchUtility:has(.reconnectBtn){grid-template-columns:repeat(2,minmax(0,1fr))}.launchSecondary button,.launchUtility button{min-width:0;display:flex;align-items:center;gap:10px;padding:11px 14px;color:#e7efff;border:1px solid rgba(144,178,226,.24);border-radius:10px;cursor:pointer;font-weight:850;text-align:left;transition:filter .15s,transform .08s,border-color .15s,background .15s}.launchSecondary button>span,.launchUtility button>span{min-width:0}.launchSecondary button{min-height:52px;background:linear-gradient(180deg,#3b4f78db,#233252e6);box-shadow:inset 0 1px #ffffff0d,0 9px 22px #0000003d}.launchUtility button{font-size:12px;background:#1f2d4ba8}.launchSecondary button:hover,.launchUtility button:hover{border-color:#70d5ff80;background:#364c77eb;transform:translateY(-1px);box-shadow:inset 0 1px #ffffff14,0 12px 26px #00000052,0 0 18px -6px #70d5ff80}.launchSecondary button:active,.launchUtility button:active{transform:translateY(0)}.launchMenu .equippedFactionLine,.launchMenu .menuStatsLine,.launchMenu .dailyStatusLine{text-align:left}.launchMenu .dailyStatusLine{color:var(--muted);font-size:13px}.launchHero{position:relative;display:grid;align-content:end;min-height:0;overflow:hidden;padding:24px;background:radial-gradient(circle at 70% 20%,rgba(112,213,255,.16),transparent 36%),linear-gradient(160deg,#1d2f4cad,#080e1ab8);border:1px solid rgba(144,178,226,.22);border-radius:20px}.previewWindow{position:relative;min-height:390px;margin-bottom:16px;overflow:hidden;touch-action:pan-y;background:radial-gradient(circle at 50% 24%,rgba(112,213,255,.13),transparent 42%),linear-gradient(180deg,#0e192a4d,#060a1359);border:1px solid rgba(144,178,226,.16);border-radius:18px}.menuPreviewBoard{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;touch-action:pan-y}.menuPreviewBoard canvas{display:block;width:100%!important;height:100%!important;pointer-events:none;touch-action:pan-y}.previewCallout{position:absolute;left:14px;right:14px;bottom:14px;padding:9px 14px;text-align:center;color:#dce9ff;background:#080e1ac7;border:1px solid rgba(144,178,226,.22);border-radius:12px;font-size:13px;font-weight:800;z-index:2;pointer-events:none}.previewBoard{position:absolute;left:50%;top:44%;width:480px;height:312px;transform:translate(-50%,-50%) rotateX(58deg) rotate(-15deg);transform-style:preserve-3d}.previewHex{position:absolute;width:124px;height:108px;clip-path:polygon(25% 0,75% 0,100% 50%,75% 100%,25% 100%,0 50%);border:1px solid rgba(255,255,255,.14);box-shadow:0 17px #151d1be6,0 28px 34px #00000040}.previewHex.field{background:#6f9849}.previewHex.forest{background:#326d38}.previewHex.water{background:#2e7186;box-shadow:0 9px #122d38e6,0 22px 26px #0003}.previewHex.mountain{background:#6b707c;box-shadow:0 28px #2f323aeb,0 34px 32px #00000047}.previewHexA{left:178px;top:86px}.previewHexB{left:83px;top:141px}.previewHexC{left:273px;top:141px}.previewHexD{left:83px;top:31px}.previewHexE{left:178px;top:196px}.previewHexF{left:178px;top:31px}.previewHexG{left:273px;top:31px}.previewCity{position:absolute;left:211px;top:94px;width:58px;height:56px;transform:rotate(15deg) rotateX(-58deg) translateZ(44px);animation:previewCityCapture 12s ease-in-out infinite}.previewCity:before{content:"";position:absolute;top:12px;right:4px;bottom:0;left:4px;background:linear-gradient(180deg,#d9d1b9,#8c8c83);border:2px solid rgba(40,50,60,.72);border-radius:5px 5px 3px 3px;box-shadow:0 10px #060c1459}.previewCity span{position:absolute;left:16px;top:0;width:28px;height:24px;background:linear-gradient(180deg,#d0d7df,#7b8797);border-radius:4px 4px 1px 1px;animation:previewFlagCapture 12s ease-in-out infinite}.previewUnit{position:absolute;width:26px;height:42px;border-radius:999px 999px 8px 8px;transform:rotate(15deg) rotateX(-58deg) translateZ(50px);box-shadow:0 7px #02090a73,0 0 22px #68f0a942}.playerUnit{left:124px;top:174px;background:linear-gradient(180deg,#68f0a9,#2c9b69);animation:previewPlayerMove 12s ease-in-out infinite}.trainedUnit{left:224px;top:118px;opacity:0;background:linear-gradient(180deg,#9df6c2,#36a876);animation:previewTrainUnit 12s ease-in-out infinite}.enemyUnit{left:318px;top:104px;background:linear-gradient(180deg,#ffac8d,#b54e45);box-shadow:0 7px #02090a73,0 0 22px #ff756b3d;animation:previewEnemyHit 12s ease-in-out infinite}.previewSlash{position:absolute;left:304px;top:94px;width:70px;height:8px;opacity:0;background:linear-gradient(90deg,transparent,#ffe184,transparent);border-radius:999px;transform:rotate(32deg) rotateX(-58deg) translateZ(62px);animation:previewAttackSlash 12s ease-in-out infinite}.previewGold,.previewCapture{position:absolute;padding:5px 9px;color:#ffe8a5;background:#080e1adb;border:1px solid rgba(255,214,110,.28);border-radius:999px;font-size:12px;font-weight:900;transform:rotate(15deg) rotateX(-58deg) translateZ(76px)}.previewGold{left:216px;top:64px;opacity:0;animation:previewGoldPop 12s ease-in-out infinite}.previewCapture{left:188px;top:166px;opacity:0;animation:previewCapturePop 12s ease-in-out infinite}.previewCallouts{position:absolute;left:18px;right:18px;bottom:16px;min-height:38px;display:grid;place-items:center;padding:9px 12px;color:#d8e7ff;background:#070d19c2;border:1px solid rgba(144,178,226,.18);border-radius:999px;font-size:13px;font-weight:850;text-align:center}.previewCallouts span{grid-area:1 / 1;opacity:0;transform:translateY(5px);transition:opacity .25s ease,transform .25s ease}.previewCallouts span.active{opacity:1;transform:translateY(0)}@keyframes previewPlayerMove{0%,12%{left:124px;top:174px}22%,48%{left:224px;top:118px}58%,78%{left:276px;top:108px}88%,to{left:124px;top:174px}}@keyframes previewCityCapture{0%,22%{filter:none}28%,to{filter:drop-shadow(0 0 12px rgba(104,240,169,.28))}}@keyframes previewFlagCapture{0%,22%{background:linear-gradient(180deg,#d0d7df,#7b8797)}28%,to{background:linear-gradient(180deg,#68f0a9,#2c9b69)}}@keyframes previewGoldPop{0%,31%,44%,to{opacity:0;transform:rotate(15deg) rotateX(-58deg) translateY(10px) translateZ(76px)}34%,40%{opacity:1;transform:rotate(15deg) rotateX(-58deg) translateY(-6px) translateZ(76px)}}@keyframes previewTrainUnit{0%,43%{opacity:0;transform:rotate(15deg) rotateX(-58deg) scale(.55) translateZ(50px)}50%,to{opacity:1;transform:rotate(15deg) rotateX(-58deg) scale(1) translateZ(50px)}}@keyframes previewAttackSlash{0%,61%,70%,to{opacity:0;transform:rotate(32deg) rotateX(-58deg) scaleX(.3) translateZ(62px)}64%,67%{opacity:1;transform:rotate(32deg) rotateX(-58deg) scaleX(1.05) translateZ(62px)}}@keyframes previewEnemyHit{0%,61%,to{opacity:1;transform:rotate(15deg) rotateX(-58deg) translate(0) translateZ(50px)}65%{opacity:1;transform:rotate(15deg) rotateX(-58deg) translate(10px) translateZ(50px)}76%,86%{opacity:.25;transform:rotate(15deg) rotateX(-58deg) scale(.75) translateZ(50px)}}@keyframes previewCapturePop{0%,20%,33%,to{opacity:0;transform:rotate(15deg) rotateX(-58deg) translateY(8px) translateZ(76px)}24%,29%{opacity:1;transform:rotate(15deg) rotateX(-58deg) translateY(-5px) translateZ(76px)}}.heroBoard{position:absolute;left:50%;top:39%;width:470px;height:300px;transform:translate(-50%,-50%) rotateX(58deg) rotate(-15deg);transform-style:preserve-3d}.heroHex{position:absolute;width:128px;height:112px;clip-path:polygon(25% 0,75% 0,100% 50%,75% 100%,25% 100%,0 50%);background:#5f8f42;border:1px solid rgba(255,255,255,.16);box-shadow:0 18px #18211ce0,0 28px 30px #0000003d}.heroHexA{left:171px;top:82px;background:#6f9849}.heroHexB{left:75px;top:138px;background:#2e7186}.heroHexC{left:267px;top:138px;background:#316d39}.heroHexD{left:171px;top:194px;background:#69707b}.heroHexE{left:171px;top:26px;background:#7ca056}.heroHexF{left:75px;top:26px;background:#5d8741}.heroHexG{left:267px;top:26px;background:#3b793f}.heroCity{position:absolute;left:205px;top:94px;width:58px;height:56px;transform:rotate(15deg) rotateX(-58deg) translateZ(42px)}.heroCity:before{content:"";position:absolute;top:12px;right:4px;bottom:0;left:4px;background:linear-gradient(180deg,#d9d1b9,#8c8c83);border:2px solid rgba(40,50,60,.7);border-radius:5px 5px 3px 3px;box-shadow:0 10px #060c1459}.heroCity span{position:absolute;left:16px;top:0;width:28px;height:24px;background:linear-gradient(180deg,#68d9b6,#338b78);border-radius:4px 4px 1px 1px}.heroUnit{position:absolute;width:26px;height:42px;border-radius:999px 999px 8px 8px;background:linear-gradient(180deg,#68f0a9,#2c9b69);box-shadow:0 7px #02090a73,0 0 22px #68f0a947;transform:rotate(15deg) rotateX(-58deg) translateZ(46px)}.heroUnitOne{left:306px;top:104px}.heroUnitTwo{left:124px;top:168px;background:linear-gradient(180deg,#ffac8d,#b54e45)}.heroSpark{position:absolute;width:34px;height:8px;border-radius:999px;background:#ffd66e73;transform:rotate(15deg) rotateX(-58deg) translateZ(40px);filter:blur(.2px)}.heroSparkOne{left:115px;top:215px}.heroSparkTwo{left:344px;top:74px;background:#70d5ff61}.heroCopy{position:relative;max-width:390px;margin:0 auto;padding:18px;background:#080e1abd;border:1px solid rgba(144,178,226,.24);border-radius:16px;box-shadow:0 -12px 40px #0003}.heroCopy h2{margin:5px 0 9px;font-size:clamp(22px,2.5vw,31px);line-height:1.05}.heroCopy p{margin:0;color:var(--muted);line-height:1.45}.brandLockup{display:flex;align-items:center;gap:clamp(12px,1.4vw,18px);margin-top:8px}.brandEmblem{flex:0 0 auto;width:clamp(46px,5.4vw,72px);height:auto;filter:drop-shadow(0 4px 16px rgba(76,215,150,.35))}.brandLockup h1{margin:0}.btnIcon{flex:0 0 auto;width:20px;height:20px;opacity:.9}.launchSecondary button .btnIcon,.launchUtility button .btnIcon{color:#9fd3ee}.launchSecondary button:hover .btnIcon,.launchUtility button:hover .btnIcon{color:#bfeaff;opacity:1}.primaryIcon{width:30px;height:30px;padding:6px;border-radius:10px;background:#ffffff24;box-shadow:inset 0 0 0 1px #ffffff1f;opacity:1}.dailyChallengeBtn .primaryIcon{background:#ffd66e29;color:#ffdf9a;box-shadow:inset 0 0 0 1px #ffd66e4d}.loopStrip{display:flex;gap:8px;margin:14px 0 0;padding:0;list-style:none}.loopStrip li{flex:1;display:flex;flex-direction:column;align-items:center;gap:6px;padding:11px 6px;background:#70d5ff0f;border:1px solid rgba(144,178,226,.16);border-radius:12px;font-size:11px;font-weight:800;letter-spacing:.4px;text-transform:uppercase;color:#c3d3ea}.loopIcon{width:22px;height:22px;color:#6fe0c0}.loopStrip li:nth-child(2) .loopIcon{color:#7cc9ff}.loopStrip li:nth-child(3) .loopIcon{color:#ffd66e}.launchFooter{grid-column:1 / -1;display:flex;align-items:center;justify-content:space-between;gap:16px;color:var(--muted);font-size:12px}.socialLinks{display:flex;align-items:center;gap:8px}.socialLinks a+a:before{content:"·";margin-right:8px;color:#b7c5dd7a}.socialLinks a{color:#b7c5dd;text-decoration:none;font-size:12px;font-weight:900}.socialLinks a:hover{color:var(--accent)}.equippedFactionLine{margin-top:16px;color:var(--muted);font-size:.95rem}.menuStatsLine{margin-top:6px;color:var(--muted);font-size:.85rem}.menuStatsLine strong{color:var(--accent)}.scoreLine{margin-top:4px;color:var(--accent);font-size:11px;font-weight:700}.factionSelect{width:min(980px,calc(100vw - 32px))}.factionSelectLayout{display:grid;grid-template-columns:minmax(210px,.82fr) minmax(320px,1.18fr);gap:18px;margin-top:18px;text-align:left}.factionList{display:grid;gap:8px}.factionListItem{display:flex;align-items:center;justify-content:space-between;gap:12px;width:100%;padding:12px 14px;text-align:left;color:var(--text);background:#1e2c468c;border:1px solid var(--panel-border);border-radius:10px;cursor:pointer;font-size:14px;font-weight:700;transition:background .15s,border-color .15s,transform .08s}.factionListItem:hover:not(.selected){background:#304368b3;transform:translateY(-1px)}.factionListItem.selected{background:#304368d9;border-color:#6fd5ffe6;box-shadow:0 0 0 1px #6fd5ff40,0 0 18px -6px #6fd5ff80}.factionListItem small{color:var(--muted);font-weight:700;white-space:nowrap}.factionDetail{border:1px solid var(--faction-accent, rgba(101, 142, 205, .45));background:#08111fb8;border-radius:18px;padding:18px;box-shadow:0 0 32px -12px var(--faction-accent, transparent)}.factionDetailHeader{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}.factionDetail h2{margin:4px 0 0}.factionStatus{border:1px solid rgba(101,142,205,.45);border-radius:999px;padding:6px 10px;font-size:.78rem;font-weight:900;text-transform:uppercase;letter-spacing:.08em}.factionStatus.free{color:#9ff3c6;border-color:#61da996b}.factionStatus.premium{color:#ffd282;border-color:#ffc16973}.factionTags{display:flex;align-items:center;flex-wrap:wrap;gap:9px;margin:10px 0 2px}.playStyleTag{padding:4px 11px;color:#06121f;background:var(--faction-accent, var(--accent));border-radius:999px;font-size:.72rem;font-weight:900;text-transform:uppercase;letter-spacing:.06em}.factionIdentity{color:var(--muted);font-size:.95rem}.unitShowcase{margin:14px 0}.unitPreview{position:relative;width:100%;height:220px;border-radius:14px;overflow:hidden;border:1px solid rgba(101,142,205,.22);background:radial-gradient(circle at 50% 32%,color-mix(in srgb,var(--faction-accent, #70d5ff) 16%,transparent),transparent 62%),linear-gradient(180deg,#141e30eb,#080e1aeb)}.unitPreviewCanvas{display:block;width:100%;height:100%}.unitShowcaseBar{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:10px}.unitCycleBtn{width:38px;height:38px;flex:none;color:var(--text);background:#304368b3;border:1px solid var(--panel-border);border-radius:50%;cursor:pointer;font-size:20px;font-weight:800;line-height:1}.unitPreviewLabel{flex:1;text-align:center;font-size:.95rem;font-weight:800;color:#e7efff}.modalIntro{margin:-4px 0 15px;color:var(--muted);font-size:12px}.techTreeModal{position:relative;width:min(1280px,calc(100vw - 32px));max-height:calc(100vh - 44px);overflow:hidden}.modalCloseX{position:absolute;top:18px;right:20px;z-index:4;width:34px;height:34px;padding:0;display:grid;place-items:center;color:var(--muted);background:#536c992e;border:1px solid rgba(144,178,226,.2);border-radius:999px;font-size:24px;line-height:1}.modalCloseX:hover:not(:disabled){color:var(--text);background:#536c9957}.techTreeShell{display:grid;grid-template-columns:190px minmax(520px,1fr) 300px;gap:14px;height:min(610px,calc(100vh - 190px));min-height:0;margin-top:16px;text-align:left}.techBranchSidebar,.techGraphPanel,.techDetailsPanel{background:#070e1994;border:1px solid rgba(144,178,226,.2);border-radius:12px}.techBranchSidebar{display:grid;align-content:start;gap:9px;padding:10px;overflow:hidden}.techBranchTab{display:grid;grid-template-columns:42px 1fr;align-items:center;gap:10px;padding:10px;color:#dce8fa;background:#1f2d4b8a;border:1px solid rgba(144,178,226,.18);border-radius:10px;cursor:pointer;text-align:left}.techBranchTab.selected{background:#1f799a47;border-color:#70d5ff7a}.techBranchIcon,.techBadge{display:inline-flex;align-items:center;justify-content:center;border-radius:999px;border:1px solid rgba(144,178,226,.32);color:#b7c5dd;font-weight:900}.techBranchIcon{width:38px;height:38px}.techBranchTab strong{display:block;font-size:12px;letter-spacing:.4px;text-transform:uppercase}.techBranchTab small{display:block;margin-top:4px;color:var(--muted)}.techGraphPanel{overflow:auto;padding:18px 20px;touch-action:pan-y}.techBranchGraph+.techBranchGraph{margin-top:22px;padding-top:22px;border-top:1px solid rgba(144,178,226,.12)}.techBranchHeading{display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin-bottom:12px}.techBranchHeading strong{color:#edf4ff;font-size:12px;letter-spacing:1px;text-transform:uppercase}.techBranchHeading span{color:var(--accent);font-size:11px;font-weight:800}.techSplit{display:grid;grid-template-columns:210px 1fr;align-items:center;gap:18px}.techRootColumn{display:grid;align-items:center}.techPathStack{display:grid;gap:14px}.techPath{display:flex;align-items:center;min-width:max-content}.techConnector{display:inline-block;width:58px;height:2px;background:#90b2e224}.techConnector.complete{background:#91e8ac;box-shadow:0 0 12px #91e8ac5c}.techConnector.available{background:var(--accent);box-shadow:0 0 12px #70d5ff52}.techNode{display:grid;grid-template-columns:42px minmax(116px,1fr);align-items:center;gap:10px;min-width:190px;min-height:62px;padding:10px 12px;color:#e5eefc;background:#1f232ddb;border:1px solid rgba(144,178,226,.18);border-radius:8px;cursor:pointer;text-align:left}.techNode.selected{border-color:#ffd66ecc;box-shadow:0 0 24px -10px #ffd66eb8}.techNode.researched{background:#175247bd;border-color:#91e8ac85}.techNode.available{background:#112b38e0;border-color:#70d5ff8c}.techNode.unaffordable{border-color:#70d5ff40}.techNode.locked{opacity:.58}.techBadge{width:34px;height:34px;color:var(--accent)}.techNode.researched .techBadge{color:#91e8ac;border-color:#91e8ac7a}.techNodeText strong,.techNodeText small{display:block}.techNodeText strong{font-size:13px}.techNodeText small{margin-top:4px;color:var(--muted);font-size:10px}.techDetailsPanel{display:grid;align-content:start;gap:14px;padding:20px;overflow-y:auto;min-height:0}.techDetailsPanel h2{margin:0;font-size:24px;letter-spacing:.4px}.techDetailsPanel p{margin:0;color:var(--muted);line-height:1.35}.techDetailStats{display:grid;grid-template-columns:1fr 1fr;gap:8px}.techDetailStats div{padding:9px;background:#1f2d4b6b;border-radius:8px}.techDetailStats span{display:block;color:var(--muted);font-size:10px;font-weight:850;text-transform:uppercase}.techDetailStats strong{display:block;margin-top:4px;color:#edf4ff;font-size:12px;text-transform:capitalize}.techUnlockList{display:grid;gap:6px;color:#dbe6f6;font-size:12px}.techResearchBtn{min-height:44px;border:1px solid rgba(145,196,255,.42);border-radius:10px;cursor:pointer;font-weight:900}.resultStats{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}.resultStats span{display:flex;flex-direction:column;gap:5px;padding:12px;color:var(--muted);background:#5a78aa1f;border-radius:8px;font-size:11px}.resultStats strong{color:var(--text);font-size:18px}.dailyResultCard{margin-top:12px;padding:13px 15px;color:var(--muted);background:linear-gradient(135deg,#ffd66e1f,#5a78aa1f);border:1px solid rgba(255,214,110,.24);border-radius:10px}.dailyResultCard strong,.dailyResultCard span{display:block}.dailyResultCard strong{margin-top:3px;color:var(--text);font-size:18px}.dailyResultCard span{margin-top:4px;font-size:12px}.resultActions{display:flex;justify-content:center;gap:8px}.surrenderModal{width:min(460px,calc(100vw - 40px))}.surrenderActions{display:flex;justify-content:center;gap:9px;margin-top:20px}.surrenderActions button{min-width:120px;padding:10px 18px;color:var(--text);background:#304368d1;border:1px solid var(--panel-border);border-radius:9px;cursor:pointer;font-weight:700}#stage:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;background:radial-gradient(ellipse 78% 78% at 50% 44%,transparent 52%,rgba(4,8,16,.52) 100%)}button:active:not(:disabled){transform:translateY(0) scale(.985);filter:brightness(.95)}#endTurnBtn{letter-spacing:.3px;transition:filter .15s,transform .08s,box-shadow .2s}#endTurnBtn:hover:not(:disabled){filter:brightness(1.08);box-shadow:0 12px 32px #286ed29e}.btnIcon{width:14px;height:14px;flex:none}#utilityHud button,#endTurnBtn{display:inline-flex;align-items:center;gap:7px;justify-content:center}#goldInfo .coinIcon{width:15px;height:15px;vertical-align:-2px;margin-right:2px}.settingsModal{width:min(560px,calc(100vw - 40px));text-align:left}.settingsModal h1{text-align:center}.settingsSection{margin:16px 0}.settingsSection .actionTitle{margin-bottom:9px}.settingsBtn{padding:10px 18px}.volumeGrid{display:grid;gap:9px;margin-top:12px}.volumeControl{display:grid;gap:6px;color:var(--muted);font-size:12px}.volumeControl span{display:flex;justify-content:space-between;gap:10px}.volumeControl strong{color:var(--text)}.volumeControl input{width:100%;accent-color:var(--accent)}.presetRow{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:11px}.presetChip{padding:8px 15px;color:var(--text);background:#3043688c;border:1px solid var(--panel-border);border-radius:999px;cursor:pointer;font-weight:700;font-size:12px;transition:filter .15s,background .15s,border-color .15s,transform .08s}.presetChip.active{color:#fff;background:linear-gradient(180deg,#3d8be5,#2762b8);border-color:#91caff99}.qualityToggles{display:grid;grid-template-columns:1fr 1fr;gap:7px}.qualityToggle{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:9px 11px;color:var(--text);background:#506a991f;border:1px solid var(--panel-border);border-radius:9px;cursor:pointer;font-size:12px;font-weight:650;transition:background .15s,border-color .15s,transform .08s}.qualityToggle b{font-size:11px;font-weight:800;color:var(--muted)}.qualityToggle.on{background:#347e5b38;border-color:#5ccf8c73}.qualityToggle.on b{color:#91e8ac}.settingsHint{margin-top:11px;color:var(--muted);font-size:11px;line-height:1.45}@media(max-width:760px){.hudCard{top:8px}.qualityToggles{grid-template-columns:1fr}#resourceHud{left:8px;min-width:126px;padding:8px 10px}#goldInfo strong{font-size:18px}#turnHud{top:8px;min-width:145px;padding:7px 9px}#turnInfo{gap:5px;font-size:10px}#turnInfo strong{font-size:18px}.turnTimer{margin-top:3px;padding:2px 7px;font-size:9px}#utilityHud{top:66px;right:8px;left:auto;display:grid;grid-template-columns:repeat(3,max-content);justify-content:flex-end;gap:4px}#utilityHud button{padding:8px;font-size:10px}#utilityHud .surrenderBtn{grid-column:3;grid-row:1}#utilityHud button[data-menu=tech]{grid-column:1;grid-row:2}#utilityHud button[data-menu=stats]{grid-column:2;grid-row:2}#utilityHud button[data-menu=settings]{grid-column:3;grid-row:2}#connectionHud{top:105px;max-width:calc(100vw - 16px);white-space:nowrap}.turnBanner,.eventBanner{top:118px;width:calc(100vw - 18px);padding:10px 13px 12px;border-radius:13px}.turnBannerKicker{font-size:9px;letter-spacing:1.4px}.turnBannerTitle{flex-wrap:wrap;gap:4px 7px;font-size:18px}.turnBannerTitle span{font-size:11px}.turnBannerText{margin-top:4px;font-size:11px;line-height:1.35}#contextPanel,#combatPanel{top:auto;left:6px;right:6px;bottom:58px;width:auto;max-height:38vh;overflow-y:auto;padding:24px 13px 11px;border-radius:14px 14px 10px 10px;background:#0b111df2;transform:translateY(var(--sheet-drag, 0));transition:transform .12s ease}#contextPanel.draggingSheet,#combatPanel.draggingSheet{transition:none}.sheetGrabber{position:sticky;top:-18px;z-index:2;display:flex;justify-content:center;width:100%;height:20px;margin:-18px 0 2px;cursor:grab;touch-action:none}.sheetGrabber span{width:42px;height:4px;margin-top:8px;background:#afcbf273;border-radius:999px}.panelCloseBtn{top:8px;right:10px;width:28px;height:28px}#contextPanel h2,#combatPanel h2{font-size:18px}#contextPanel .description{margin:7px 0;font-size:12px}#contextPanel .stats{gap:5px;margin-bottom:8px}#tutorialPanel{top:104px;right:8px;left:8px;width:auto;transform:none}#logPanel{display:none}#rotationHud{bottom:12px;left:8px;transform:none}#rotationHud button{min-width:0;padding:9px 10px;font-size:11px}#rotationHud span{display:none}#endTurnBtn{right:8px;bottom:12px;min-width:112px;padding:11px 14px}.modal,.result,.mainMenu{width:calc(100vw - 24px);padding:20px}.launchMenu{width:calc(100vw - 16px);height:auto;min-height:calc(100vh - 16px);overflow:visible;grid-template-columns:1fr;grid-template-rows:auto auto auto;gap:14px;padding:16px}.launchCopy{align-self:start}.launchMenu h1{margin:6px 0 0;font-size:clamp(40px,13vw,56px);letter-spacing:3px}.launchMenu .launchTagline{margin:8px 0 12px;font-size:13px}.launchPrimary,.launchSecondary,.launchUtility{width:100%}.launchPrimary button{min-height:58px;padding:12px 16px}.launchPrimary strong{font-size:20px}.launchUtility{grid-template-columns:repeat(2,minmax(0,1fr))}.quickModeGrid{grid-template-columns:1fr}.launchHero{min-height:0;padding:14px}.previewWindow{min-height:230px;margin-bottom:10px}.previewCallout{left:8px;right:8px;bottom:8px;padding:7px 10px;font-size:11px}.heroCopy{max-width:none;margin-left:0;padding:12px}.heroCopy h2{font-size:20px}.heroCopy p{font-size:12px}.launchFooter{align-items:flex-start;flex-direction:column;gap:6px;font-size:11px}.socialLinks{gap:10px}.factionSelectLayout{grid-template-columns:1fr}.factionDetailHeader{flex-direction:column}.unitPreview{height:180px}.techTreeShell{grid-template-columns:1fr;min-height:auto}.techBranchSidebar{grid-template-columns:repeat(2,minmax(0,1fr))}.techGraphPanel{max-height:52vh}.techSplit{grid-template-columns:1fr;gap:10px}.techPath{padding-left:4px}.techConnector{width:28px}.resultStats{grid-template-columns:1fr}.surrenderActions button{min-width:105px}.mainMenu{padding:30px 20px}}@media(max-height:720px)and (min-width:761px){#overlay{padding-top:12px;padding-bottom:12px}.modal,.result,.mainMenu{margin-block:0}.launchMenu{min-height:auto;gap:18px 24px;padding:24px}.launchCopy{align-self:start}.launchMenu h1{font-size:clamp(50px,6.8vw,86px)}.launchMenu .launchTagline{margin:10px 0 16px}.launchPrimary button{min-height:62px}.previewWindow{min-height:300px}}
