:root{color-scheme:dark;--bg:#07131c;--panel:#102330;--panel-2:#172f3d;--line:#36505e;--text:#edf5f7;--muted:#9eb2bc;--gold:#f1c96d;--blue:#49b8ec;--green:#5bd879;--red:#f16565;--orange:#f2ad50}*{box-sizing:border-box}html,body{width:100%;height:100%;margin:0;overflow:hidden}body{font:14px/1.45 "Segoe UI",Arial,sans-serif;background:radial-gradient(circle at 50% -20%,#23475a 0,#0c202c 42%,var(--bg) 100%);color:var(--text)}[hidden]{display:none!important}button,input{font:inherit}button{border:0;color:inherit;cursor:pointer;-webkit-tap-highlight-color:transparent}button:focus-visible,input:focus-visible{outline:2px solid var(--gold);outline-offset:3px}.game-header{height:68px;padding:0 max(16px,env(safe-area-inset-left));display:flex;align-items:center;justify-content:flex-start;border-bottom:1px solid #34505d;background:#081722e8;backdrop-filter:blur(16px);position:relative;z-index:20}.brand-mark{position:absolute;left:50%;transform:translateX(-50%);display:flex;align-items:center;gap:11px;letter-spacing:4px}.brand-mark span{display:grid;place-items:center;width:36px;height:36px;border-radius:11px;background:linear-gradient(145deg,#e8c673,#9f7431);color:#13242d;box-shadow:0 0 24px #e7bf6350}.brand-mark strong{font-size:21px}.header-actions{order:-1;display:flex;gap:8px;align-items:center}.coin-pill{display:flex;align-items:center;gap:9px;min-width:104px;justify-content:flex-end;padding:7px 10px 7px 15px;border:1px solid #5b5945;border-radius:22px;background:#161f24cc;font-variant-numeric:tabular-nums}.coin-pill i{display:grid;place-items:center;width:27px;height:27px;border-radius:50%;font-style:normal;background:radial-gradient(circle,#ffe9a0 0 22%,#f6bd35 24% 58%,#a66c18 61% 68%,#e9b22f 70%);color:#8a5b13}.round-button{width:36px;height:36px;border:1px solid var(--line);border-radius:11px;background:#122a37;font-size:19px}.round-button:hover{background:#234657}#app,.screen{height:calc(100dvh - 68px)}.screen{overflow:auto;scrollbar-width:thin;scrollbar-color:#385865 transparent}.loading-screen{display:grid;place-content:center;text-align:center;gap:18px}.loading-emblem{font-size:58px;color:var(--gold);filter:drop-shadow(0 0 20px #f0c56775)}.loading-screen strong{letter-spacing:2px}.loading-bar{width:min(280px,70vw);height:7px;border-radius:9px;background:#1c3441;overflow:hidden}.loading-bar span{display:block;width:100%;height:100%;background:linear-gradient(90deg,var(--blue),var(--gold));animation:loading 1.2s ease-in-out both}@keyframes loading{from{transform:translateX(-100%)}to{transform:none}}
.hub-screen{padding:20px clamp(14px,4vw,52px) 44px}.campaign-card{max-width:1150px;min-height:305px;margin:0 auto;position:relative;overflow:hidden;border:1px solid #456270;border-radius:24px;background:linear-gradient(105deg,#0c2230 0 38%,#153746c7 58%,#244f61 100%);box-shadow:0 22px 70px #020a104f}.campaign-card:before{content:"";position:absolute;inset:0;background:radial-gradient(circle at 76% 48%,#5ecff238,transparent 36%),linear-gradient(90deg,#07141be8 0,transparent 62%);pointer-events:none}.campaign-copy{position:absolute;z-index:2;left:clamp(22px,5vw,64px);top:40px}.eyebrow{display:block;color:var(--gold);font-size:10px;letter-spacing:2px;font-weight:700}.campaign-copy h1{font-size:clamp(34px,6vw,66px);line-height:1;margin:12px 0 7px;font-weight:500}.campaign-copy h1 b{color:#fff}.campaign-copy p{margin:0;color:#acc4ce}.map-preview{position:absolute;inset:0 0 0 42%;opacity:.95}.map-preview:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,#0c2230,transparent 28%)}.territory{position:absolute;border:2px solid #aad8e746;background:#49b8ec55;filter:drop-shadow(0 12px 20px #0004)}.territory.one{width:32%;height:46%;left:13%;top:10%;clip-path:polygon(15% 0,85% 7%,100% 54%,66% 100%,8% 83%,0 34%)}.territory.two{width:38%;height:52%;right:8%;top:17%;background:#57d27655;clip-path:polygon(22% 0,90% 14%,100% 71%,62% 100%,7% 78%,0 21%)}.territory.three{width:32%;height:38%;left:37%;bottom:4%;background:#f0b75542;clip-path:polygon(8% 19%,78% 0,100% 64%,66% 100%,0 77%)}.map-preview i{position:absolute;width:18px;height:18px;border-radius:50%;background:#fff;box-shadow:0 0 0 8px #fff2}.map-preview i:nth-of-type(1){left:25%;top:28%}.map-preview i:nth-of-type(2){left:53%;top:29%}.map-preview i:nth-of-type(3){left:70%;top:54%}.map-preview i:nth-of-type(4){left:39%;top:65%}.map-preview i:nth-of-type(5){left:58%;top:78%}.play-button{position:absolute;z-index:3;left:clamp(22px,5vw,64px);bottom:38px;width:min(330px,calc(100% - 44px));padding:15px 22px;border-radius:14px;background:linear-gradient(135deg,#e6c167,#f3d98f);color:#132630;text-align:left;box-shadow:0 9px 30px #0007;transition:.2s transform}.play-button:hover{transform:translateY(-2px)}.play-button span{display:block;font-size:18px;font-weight:800}.play-button small{opacity:.7}.mode-row{max-width:1150px;margin:16px auto;display:grid;grid-template-columns:1fr 1fr;gap:16px}.mode-card{position:relative;min-height:120px;padding:24px;border:1px solid #3c5a68;border-radius:20px;text-align:left;overflow:hidden;background:linear-gradient(135deg,#142f3e,#0d1e29)}.mode-card:after{content:"";position:absolute;width:170px;height:170px;right:-40px;top:-70px;border-radius:50%;background:var(--glow);filter:blur(4px)}.mode-card.online{--glow:#42b9ed44}.mode-card.shop{--glow:#efba4f3d}.mode-card b,.mode-card span{position:relative;z-index:1;display:block}.mode-card b{font-size:21px;margin-bottom:5px}.mode-card span{color:var(--muted);max-width:70%}.mode-card i{position:absolute;z-index:2;right:28px;bottom:19px;font-size:28px;font-style:normal;color:var(--gold)}.progress-section{max-width:1150px;margin:28px auto 0}.section-heading{display:flex;align-items:end;justify-content:space-between;margin-bottom:13px}.section-heading h2{margin:3px 0 0;font-size:23px}.section-heading>span{font-size:11px;color:var(--muted)}.upgrade-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.upgrade-card{min-height:160px;padding:18px;border-radius:20px;border:1px solid #41606e;background:linear-gradient(155deg,#193949,#0e202b);text-align:left;position:relative;overflow:hidden}.upgrade-card:after{content:"";position:absolute;inset:auto -35px -60px auto;width:150px;height:150px;border-radius:50%;background:var(--card-glow);filter:blur(8px)}.upgrade-card.start{--card-glow:#3fb6ed50}.upgrade-card.production{--card-glow:#f1ad4950}.upgrade-card.income{--card-glow:#54d77645}.upgrade-icon{display:grid;place-items:center;width:45px;height:45px;border-radius:14px;background:#ffffff12;color:var(--gold);font-size:24px;position:relative}.upgrade-icon small{position:absolute;font-size:10px;bottom:2px}.upgrade-card strong,.upgrade-card b,.upgrade-card em{position:relative;z-index:1;display:block}.upgrade-card strong{margin:13px 0 4px;font-size:15px}.upgrade-card b{color:#c9d9df;font-weight:500}.upgrade-card em{margin-top:11px;color:var(--gold);font-style:normal;font-size:12px}.upgrade-card:not(:disabled):hover{border-color:#90bccd;transform:translateY(-1px)}.upgrade-card:disabled{opacity:.5;cursor:not-allowed}
.battle-screen{position:relative;overflow:hidden;background:radial-gradient(circle at 50% 40%,#244552,#0b1d28 68%)}#battle-map{width:100%;height:100%;display:block;touch-action:none}.battle-roster{position:absolute;top:18px;left:50%;transform:translateX(-50%);display:flex;gap:9px;max-width:calc(100% - 100px);z-index:3}.roster-player{--player:#49b8ec;min-width:126px;max-width:190px;padding:8px 11px 8px 8px;display:grid;grid-template-columns:34px 1fr;gap:8px;align-items:center;border:1px solid color-mix(in srgb,var(--player),#fff 22%);border-radius:13px;background:#071722dd;box-shadow:0 8px 22px #0005}.roster-player.self{box-shadow:0 0 0 2px var(--player),0 8px 22px #0005}.roster-player svg{width:31px;height:31px;color:var(--player)}.roster-player span,.roster-player b{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.roster-player span{font-size:10px;color:#c8d5da}.roster-player b{font-size:13px;color:var(--player)}.battle-progress{position:absolute;left:5%;right:5%;top:82px;height:8px;border-radius:8px;background:#283b44d9;overflow:hidden;border:1px solid #77919b66}.battle-progress div{height:100%;display:flex}.battle-progress i{height:100%;display:block}.battle-tip{position:absolute;left:50%;bottom:22px;transform:translateX(-50%);padding:9px 15px;max-width:70%;text-align:center;border-radius:18px;background:#071722c9;border:1px solid #405e6c;color:#b9ccd3;font-size:11px;pointer-events:none}.emoji-button{position:absolute;right:18px;bottom:18px;width:54px;height:54px;border-radius:16px;background:#347fea;border:3px solid #78a7ef;font-size:29px;box-shadow:0 8px 24px #0007}.emoji-panel{position:absolute;right:82px;bottom:22px;padding:8px;display:flex;gap:5px;border-radius:15px;background:#0b1d28ef;border:1px solid #476675}.emoji-panel button{font-size:25px;background:#fff0;border-radius:9px;padding:4px}.emoji-panel button:hover{background:#ffffff18}#emoji-stage{position:absolute;inset:0;pointer-events:none}.floating-emoji{position:absolute;font-size:42px;animation:emoji-float 2.4s ease-out both;filter:drop-shadow(0 5px 6px #0007)}@keyframes emoji-float{0%{transform:translate(-50%,20px) scale(.5);opacity:0}20%{opacity:1;transform:translate(-50%,0) scale(1.1)}100%{opacity:0;transform:translate(-50%,-90px) scale(.9)}}
.overlay{position:fixed;inset:0;z-index:80;padding:18px;display:grid;place-items:center;background:#02080dc7;backdrop-filter:blur(9px)}.dialog{width:min(440px,100%);max-height:92dvh;overflow:auto;position:relative;padding:28px;border:1px solid #4a6673;border-radius:24px;background:linear-gradient(160deg,#17313f,#0a1923);box-shadow:0 28px 90px #0009}.wide-dialog{width:min(680px,100%)}.dialog h2{font-size:27px;margin:7px 0 8px}.dialog>p{color:var(--muted);margin:0 0 19px}.dialog-close{position:absolute;right:14px;top:14px;width:34px;height:34px;border-radius:10px;background:#ffffff0e;font-size:23px}.primary-action,.danger-action,.text-action,#join-form button{width:100%;padding:13px 17px;border-radius:11px;font-weight:800}.primary-action,#join-form button{background:linear-gradient(135deg,#56c9ef,#9be0ef);color:#112732}.danger-action{background:#ee6464;color:white}.text-action{margin-top:8px;background:transparent;color:#9eb6c1}.online-actions{display:grid;grid-template-columns:1fr 1fr;gap:12px}.online-actions form{display:flex}.online-actions input{min-width:0;width:100%;border:1px solid #486675;border-radius:11px 0 0 11px;background:#081924;color:white;padding:12px;text-transform:uppercase;letter-spacing:2px}.online-actions form button{width:auto;border-radius:0 11px 11px 0;white-space:nowrap}.room-heading{display:flex;justify-content:space-between;align-items:center;margin:24px 0 8px}.room-heading button{background:#ffffff0d;border-radius:8px;padding:7px 10px}.room-list{display:grid;gap:7px;max-height:250px;overflow:auto}.room-item{display:grid;grid-template-columns:1fr auto auto;align-items:center;gap:10px;padding:12px;border:1px solid #355463;border-radius:12px;background:#0a1d28}.room-item span{color:var(--muted);font-size:11px}.room-item button{padding:8px 11px;border-radius:8px;background:#2b708f}.room-members{display:grid;gap:8px;margin:18px 0}.room-member{display:flex;align-items:center;gap:9px;padding:10px;border:1px solid #385563;border-radius:11px}.room-member i{width:13px;height:13px;border-radius:50%;background:var(--player)}.room-member span{flex:1}.room-member small{color:var(--muted)}.shop-tabs{display:flex;gap:8px;margin:18px 0}.shop-tabs button{padding:9px 14px;border-radius:10px;background:#ffffff0b;color:var(--muted)}.shop-tabs button.active{background:#2c5d73;color:white}.shop-items{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}.shop-item{min-height:105px;padding:10px;border:1px solid #385664;border-radius:14px;background:#0b1e29;display:grid;place-items:center;gap:5px;position:relative}.shop-item.selected{border-color:#72db8b;box-shadow:inset 0 0 0 2px #72db8b44}.shop-item svg{width:44px;height:44px}.shop-item .color-swatch{width:48px;height:48px;border-radius:50%;background:var(--swatch);box-shadow:0 0 0 5px #ffffff10}.shop-item small{font-size:9px;color:var(--gold)}.shop-item.locked:after{content:"◉";position:absolute;right:7px;top:5px;color:var(--gold)}.reward-dialog,.result-dialog{text-align:center;overflow:hidden}.reward-icon,#result-emblem{display:block;font-size:70px;color:var(--gold);filter:drop-shadow(0 0 28px #f1c96d77);position:relative;z-index:1}.reward-dialog strong,.result-dialog>strong{display:block;color:var(--gold);font-size:27px;margin:12px}.reward-rays{position:absolute;width:350px;height:350px;left:50%;top:-150px;transform:translateX(-50%);background:repeating-conic-gradient(#fff2 0 8deg,transparent 8deg 18deg);border-radius:50%;animation:spin 18s linear infinite}@keyframes spin{to{transform:translateX(-50%) rotate(360deg)}}.exit-dialog{text-align:center}.exit-dialog>div{display:grid;grid-template-columns:1fr 1fr;gap:9px}.exit-dialog .text-action{margin:0}#toast{position:fixed;z-index:120;left:50%;bottom:24px;transform:translateX(-50%);max-width:min(520px,88vw);padding:11px 17px;border:1px solid #53707e;border-radius:13px;background:#071722f2;box-shadow:0 12px 40px #0008;color:#dce9ed;text-align:center}
@media(max-width:720px){.game-header{height:58px;justify-content:space-between}.brand-mark{position:static;transform:none;order:0}.header-actions{order:0}.brand-mark strong{font-size:18px}.brand-mark span{width:31px;height:31px}.coin-pill{min-width:86px;font-size:12px;padding:5px 7px 5px 11px}.coin-pill i{width:24px;height:24px}.round-button{height:32px;width:32px}#app,.screen{height:calc(100dvh - 58px)}.hub-screen{padding:10px 10px 35px}.campaign-card{min-height:280px;border-radius:18px}.campaign-copy{left:20px;top:25px}.campaign-copy h1{font-size:38px}.map-preview{left:29%;opacity:.78}.play-button{left:18px;bottom:20px;width:calc(100% - 36px)}.mode-row{gap:8px;margin:9px auto}.mode-card{min-height:108px;padding:15px;border-radius:16px}.mode-card b{font-size:17px}.mode-card span{font-size:10px;max-width:75%}.mode-card i{right:16px}.section-heading{align-items:start}.section-heading h2{font-size:19px}.section-heading>span{font-size:9px}.upgrade-grid{grid-template-columns:1fr;gap:8px}.upgrade-card{min-height:91px;padding:12px;display:grid;grid-template-columns:48px 1fr auto;grid-template-rows:auto auto;column-gap:10px}.upgrade-icon{grid-row:1/3}.upgrade-card strong{margin:3px 0 0}.upgrade-card b{font-size:12px}.upgrade-card em{grid-column:3;grid-row:1/3;align-self:center;margin:0}.battle-roster{top:9px;gap:5px;max-width:94%;width:94%;justify-content:center}.roster-player{min-width:0;max-width:160px;flex:1;padding:5px;grid-template-columns:25px 1fr;gap:4px}.roster-player svg{width:23px;height:23px}.roster-player span{font-size:8px}.roster-player b{font-size:10px}.battle-progress{top:58px}.battle-tip{bottom:15px;max-width:74%;font-size:9px;padding:7px 10px}.emoji-button{width:48px;height:48px;right:10px;bottom:10px}.emoji-panel{right:64px;bottom:13px;max-width:calc(100% - 76px)}.emoji-panel button{font-size:21px;padding:3px}.dialog{padding:22px;border-radius:19px}.dialog h2{font-size:23px}.online-actions{grid-template-columns:1fr}.shop-items{grid-template-columns:repeat(3,1fr)}.room-item{grid-template-columns:1fr auto}.room-item span{display:none}}
@media(max-width:390px){.header-actions{gap:4px}.brand-mark{gap:5px;letter-spacing:2px}.brand-mark span{display:none}.coin-pill{min-width:76px}.mode-card{padding:12px}.mode-card span{max-width:85%}.shop-items{grid-template-columns:repeat(2,1fr)}}
.dialog-close{width:38px;height:38px;border:1px solid #ff9a9a;background:#b72f38;color:#fff;font-size:24px;box-shadow:0 5px 14px #0006}.dialog-close:hover{background:#dc4450}.room-dialog{user-select:none}.room-dialog .primary-action:disabled{filter:grayscale(.65);opacity:.72;cursor:wait}.online-actions input{text-align:center;letter-spacing:5px}body,canvas,button{-webkit-user-select:none;user-select:none}input{-webkit-user-select:text;user-select:text}
.upgrade-purchase{display:grid;grid-template-columns:auto auto;align-items:center;justify-items:end;gap:4px 10px}.upgrade-purchase>span{grid-column:1/3;font-size:10px;color:var(--muted)}.upgrade-purchase small{color:#d5e3e8;max-width:220px;text-align:right}.upgrade-purchase button{min-width:104px;padding:9px 14px;border-radius:10px;background:linear-gradient(135deg,#e6c167,#f3d98f);color:#142630;font-weight:800;box-shadow:0 7px 18px #0005}.upgrade-purchase button:disabled{cursor:not-allowed;filter:grayscale(.7);opacity:.48}.upgrade-card.selected{border-color:#f1c96d;box-shadow:inset 0 0 0 2px #f1c96d40,0 9px 28px #0004}.upgrade-card.selected:before{content:"✓";position:absolute;right:13px;top:10px;z-index:3;display:grid;place-items:center;width:25px;height:25px;border-radius:50%;background:var(--gold);color:#142630;font-weight:900}.mode-card.online:before{content:"⚔";position:absolute;z-index:2;right:25px;bottom:18px;color:var(--blue);font-size:27px}
@media(max-width:720px){.section-heading{gap:10px}.upgrade-purchase{grid-template-columns:1fr;gap:3px;justify-items:end}.upgrade-purchase>span{grid-column:1;font-size:8px}.upgrade-purchase small{font-size:9px;max-width:145px}.upgrade-purchase button{min-width:92px;padding:7px 10px;font-size:12px}.mode-card.online:before{right:15px;bottom:15px;font-size:24px}}
.upgrade-card{cursor:default}.upgrade-card:not(:disabled):hover{transform:none;border-color:#41606e}.card-purchase{position:relative;z-index:2;display:flex;flex-direction:column;align-items:flex-end;gap:7px;margin-top:8px}.card-purchase em{margin:0}.card-purchase button{padding:8px 17px;background:#edcc79;color:#142630;border-radius:9px;font-weight:700;min-height:36px}.card-purchase button:disabled{opacity:.45;cursor:not-allowed}.upgrade-card:after{pointer-events:none}.online-actions input{letter-spacing:2px}.online-actions input::placeholder{letter-spacing:0}
@media(max-width:720px){.card-purchase{grid-column:3;grid-row:1/3;align-self:center;margin:0}.card-purchase em{font-size:11px}.card-purchase button{padding:7px 11px;font-size:12px}.upgrade-card strong{font-size:13px}}
.loading-screen{overflow:hidden;background:radial-gradient(ellipse at 50% 42%,#245c70 0, #102d3c 35%,#08151f 75%)}
.loading-orbit{width:180px;height:180px;position:relative;display:grid;place-items:center;margin-bottom:22px}
.loading-rays{position:absolute;inset:-28px;border-radius:50%;background:repeating-conic-gradient(#ebca7522 0deg 9deg,transparent 9deg 24deg);animation:conquest-turn 24s linear infinite;mask-image:radial-gradient(circle,#000 25%,transparent 72%)}
.loading-orbit:before,.loading-orbit:after{content:"";position:absolute;inset:10px;border:1px solid #edcc7955;border-radius:50%;border-top:3px solid #edcc79;animation:conquest-turn 5s linear infinite}
.loading-orbit:after{inset:26px;border-color:#53d2e344;border-bottom:2px solid #7de1ec;animation-direction:reverse;animation-duration:7s}
.loading-orbit .loading-emblem{margin:0;width:90px;height:90px;display:grid;place-items:center;border-radius:26px;background:linear-gradient(145deg,#f4d890,#ba8737);color:#153340;font-size:44px;animation:conquest-breathe 2.4s ease-in-out infinite}
.loading-orbit i{position:absolute;width:7px;height:7px;border-radius:50%;background:#f8da87;top:10px;left:86px}.loading-orbit i:nth-of-type(2){top:130px;left:22px;background:#72dfe9}.loading-orbit i:nth-of-type(3){top:130px;left:150px}
.loading-screen>strong{letter-spacing:1px}.loading-bar span{animation:loading 1.6s ease-in-out infinite alternate}
.hub-screen{background:radial-gradient(ellipse at 12% 15%,#227a8640,transparent 52%),radial-gradient(ellipse at 95% 45%,#55408338,transparent 50%),radial-gradient(ellipse at 45% 100%,#ab7b2524,transparent 60%),#0b1c28}
.hub-screen .campaign-card{border-color:#648e9d;background:linear-gradient(110deg,#102c40 10%,#19546a 66%,#356f69)}
.hub-screen .mode-card.online{background:linear-gradient(125deg,#173a50,#20546a)}.hub-screen .mode-card.shop{background:linear-gradient(125deg,#302e45,#58492e)}
@keyframes conquest-turn{to{transform:rotate(360deg)}}@keyframes conquest-breathe{50%{transform:scale(1.06)}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important}}
