:root{--ink:#1d2233;--ink-soft:#5d6680;--panel:#fff;--panel-2:#eef3ff;--yellow:#ffd23f;--yellow-dark:#e0a800;--red:#ff4b3e;--outline:3px solid var(--ink);--pop:0 5px 0 var(--ink);--pop-sm:0 3px 0 var(--ink);--spring:cubic-bezier(.34, 1.8, .5, 1);--display:"Lilita One", "Arial Rounded MT Bold", system-ui, sans-serif;--body:"Nunito", ui-rounded, "SF Pro Rounded", system-ui, sans-serif;--safe-top:env(safe-area-inset-top,0px);--safe-right:env(safe-area-inset-right,0px);--safe-bottom:env(safe-area-inset-bottom,0px);--safe-left:env(safe-area-inset-left,0px);font-family:var(--body);color:var(--ink);font-weight:800}*{box-sizing:border-box}html,body,#root,.app{background:#9fd3ef;height:100%;margin:0;overflow:hidden}html{-webkit-text-size-adjust:100%;-moz-text-size-adjust:100%;text-size-adjust:100%;touch-action:pan-x pan-y;overscroll-behavior:none}body{overscroll-behavior:none;-webkit-tap-highlight-color:transparent;position:fixed;inset:0}.app{position:relative}body{-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}img{-webkit-user-drag:none}input,textarea,[contenteditable=true],code,.mp-code,.selectable{-webkit-user-select:text;user-select:text}.hud{pointer-events:none;flex-direction:column;justify-content:space-between;padding:16px;display:flex;position:absolute;inset:0}.hud>*,.hud .bottom>*{pointer-events:auto}.hud .bottom{pointer-events:none;justify-content:space-between;align-items:flex-end;gap:12px;min-height:1px;display:flex}kbd{font:900 11px/1 var(--body);background:#1d22331a;border:2px solid #1d223340;border-radius:6px;padding:2px 5px}.topbar{pointer-events:none;justify-content:space-between;align-items:flex-start;display:flex}.topbar>*{pointer-events:auto}.turn-info{background:var(--panel);border:var(--outline);box-shadow:var(--pop);border-radius:999px;align-items:center;gap:10px;padding:5px 18px 5px 5px;display:flex}.day{font:400 18px/1 var(--display);color:#fff;background:var(--ink);border-radius:999px;padding:7px 14px 6px}.player{font:400 22px/1 var(--display);color:var(--player);-webkit-text-stroke:1px var(--ink);paint-order:stroke fill;align-items:center;gap:8px;display:flex}.chip{background:var(--player);border:2.5px solid var(--ink);border-radius:50%;width:16px;height:16px;display:inline-block}.end-turn{font:400 24px/1 var(--display);letter-spacing:.02em;color:var(--ink);background:linear-gradient(var(--yellow) 60%, #ffc21a);border:var(--outline);cursor:pointer;box-shadow:inset 0 -5px 0 var(--yellow-dark), inset 0 3px 0 #ffffffb3, var(--pop);transition:transform .14s var(--spring), box-shadow .14s;border-radius:18px;align-items:center;gap:12px;padding:12px 18px 13px 22px;display:inline-flex}.end-turn:hover{transform:translateY(-3px)rotate(-2deg)scale(1.05)}.end-turn:active{box-shadow:inset 0 -2px 0 var(--yellow-dark), 0 1px 0 var(--ink);transform:translateY(4px)scale(.96)}.end-turn:disabled{filter:grayscale(.8);opacity:.55;cursor:default;transform:none}.end-turn kbd{background:#ffffff8c}.card{background:var(--panel);border:var(--outline);min-width:190px;box-shadow:var(--pop);animation:pop-up .3s var(--spring);border-radius:18px;padding:12px 16px 14px;font-size:15px}.card-title{font:400 22px/1 var(--display);align-items:center;gap:8px;margin-bottom:8px;display:flex}.unit-card{background:linear-gradient(var(--player) 0 44px, var(--panel) 44px);border-top-width:3px}.unit-card .card-title{color:#fff;-webkit-text-stroke:1px var(--ink);paint-order:stroke fill;margin:-2px 0 12px}.unit-card .chip{background:#fff}.row{font-variant-numeric:tabular-nums;justify-content:space-between;gap:16px;padding:2px 0;display:flex}.label,.muted{color:var(--ink-soft)}.tag{font:900 11px/1 var(--body);color:var(--ink);border:2px solid var(--ink);-webkit-text-stroke:0;background:#fff;border-radius:999px;margin-left:auto;padding:3px 7px}.stars span{color:#1d22332e;font-size:16px}.stars span.on{color:var(--yellow);-webkit-text-stroke:1px var(--ink)}.hint{white-space:nowrap;border:2.5px solid var(--ink);box-shadow:var(--pop-sm);background:#ffffffd9;border-radius:999px;padding:6px 14px;font-size:12px;position:absolute;bottom:16px;left:50%;transform:translate(-50%)}.small{margin-top:8px;font-size:12px}.forecast{min-width:230px;animation:pop-in .3s var(--spring);position:absolute;top:50%;right:22px;transform:translateY(-50%)}.forecast .card-title{color:var(--red);-webkit-text-stroke:1px var(--ink);paint-order:stroke fill}.forecast strong{font:400 26px/1 var(--display);color:var(--red);-webkit-text-stroke:1px var(--ink);paint-order:stroke fill}.hp-badge{font:400 15px/1 var(--display);color:#fff;background:var(--red);border:2.5px solid var(--ink);box-shadow:0 2px 0 var(--ink);border-radius:8px;padding:2px 5px 1px}.action-menu{background:var(--panel);border:var(--outline);min-width:200px;box-shadow:var(--pop);animation:pop-in .32s var(--spring);border-radius:22px;flex-direction:column;gap:10px;padding:14px;display:flex;position:absolute;top:50%;right:22px;transform:translateY(-50%)}.orders-title{font:400 16px/1 var(--display);letter-spacing:.06em;color:var(--ink-soft);text-align:center}.order{font:400 24px/1 var(--display);color:var(--ink);background:linear-gradient(#fff 55%, var(--panel-2));border:var(--outline);cursor:pointer;box-shadow:inset 0 -4px 0 #1d22331f, var(--pop-sm);animation:order-in .35s var(--spring) both;transition:transform .14s var(--spring), box-shadow .14s;border-radius:14px;justify-content:space-between;align-items:center;gap:16px;padding:11px 14px 12px;display:flex}.order:nth-of-type(2){animation-delay:50ms}.order:nth-of-type(3){animation-delay:.1s}.order:hover,.order:focus-visible{outline:none;transform:translate(-6px)scale(1.05)rotate(-1.5deg)}.order:active{transform:translateY(3px)scale(.96);box-shadow:inset 0 -2px #1d22331f}.order.attack{color:#fff;-webkit-text-stroke:1.2px var(--ink);paint-order:stroke fill;box-shadow:inset 0 -4px 0 #b8271d, inset 0 3px 0 #fff6, var(--pop-sm);background:linear-gradient(#ff6a5c 55%,#e8372b)}.order.attack:before{content:"💥";-webkit-text-stroke:0;margin-right:-6px}.order.cancel{color:var(--ink-soft);padding:8px 14px;font-size:18px}.turn-banner{z-index:15;animation:2.4s linear forwards tb-life;position:absolute;inset:0;overflow:hidden;pointer-events:none!important}.tb-dim{background:radial-gradient(circle at center, color-mix(in srgb, var(--player) 45%, transparent) 0%, #1418288c 70%);animation:2.4s forwards tb-fade;position:absolute;inset:0}.tb-rays{background:repeating-conic-gradient(#ffffff29 0deg 9deg,#0000 9deg 18deg);width:180vmax;height:180vmax;margin:-90vmax 0 0 -90vmax;animation:6s linear infinite tb-spin,2.4s forwards tb-fade;position:absolute;top:50%;left:50%;-webkit-mask:radial-gradient(circle,#000 0%,#0000 55%);mask:radial-gradient(circle,#000 0%,#0000 55%)}.tb-content{flex-direction:column;justify-content:center;align-items:center;gap:4px;animation:2.4s ease-in forwards tb-out;display:flex;position:absolute;inset:0}.tb-day{font:400 34px/1 var(--display);color:#fff;background:var(--ink);animation:tb-drop .5s 50ms var(--spring) both;border:4px solid #fff;border-radius:999px;padding:8px 26px 6px;transform:rotate(-4deg);box-shadow:0 6px #0000004d}.tb-day b{color:var(--yellow);animation:tb-number .6s .35s var(--spring) both;font-weight:400;display:inline-block}.tb-name{font:400 clamp(64px, 11vw, 150px)/1 var(--display);color:var(--player);-webkit-text-stroke:7px var(--ink);paint-order:stroke fill;text-shadow:0 10px 0 var(--ink);letter-spacing:.01em;display:flex;transform:rotate(-4deg)}.tb-name span{animation:tb-letter .55s var(--spring) both;display:inline-block}.tb-orders{font:900 20px/1 var(--body);color:var(--ink);border:3px solid var(--ink);box-shadow:var(--pop-sm);animation:tb-bubble .45s .75s var(--spring) both;background:#fff;border-radius:999px;padding:10px 20px;position:relative;transform:rotate(3deg)}.tb-orders:after{content:"";border-left:3px solid var(--ink);border-top:3px solid var(--ink);background:#fff;width:16px;height:16px;position:absolute;top:-12px;left:30px;transform:rotate(45deg)}.tb-confetti{position:absolute;top:50%;left:50%}.tb-confetti span{background:var(--c);border:2px solid var(--ink);opacity:0;border-radius:3px;width:14px;height:20px;margin:-10px 0 0 -7px;animation:1.7s cubic-bezier(.1,.8,.3,1) both tb-confetti;position:absolute}.tb-confetti span.star{clip-path:polygon(50% 0,61% 35%,98% 35%,68% 57%,79% 91%,50% 70%,21% 91%,32% 57%,2% 35%,39% 35%);border:none;border-radius:0;width:26px;height:26px;margin:-13px 0 0 -13px}@keyframes tb-life{0%,99%{visibility:visible}to{visibility:hidden}}@keyframes tb-fade{0%{opacity:0}12%,78%{opacity:1}to{opacity:0}}@keyframes tb-out{0%,76%{opacity:1;filter:blur();transform:scale(1)}94%,to{opacity:0;filter:blur(4px);transform:scale(1.25)translateY(-30px)}}@keyframes tb-spin{to{transform:rotate(360deg)}}@keyframes tb-drop{0%{opacity:0;transform:translateY(-80px)rotate(-20deg)scale(.6)}}@keyframes tb-number{0%{opacity:0;transform:scale(2.6)rotate(20deg)}}@keyframes tb-letter{0%{opacity:0;transform:translateY(120px)scale(.3)rotate(-25deg)}70%{transform:translateY(-14px)scale(1.12)rotate(4deg)}}@keyframes tb-bubble{0%{opacity:0;transform:rotate(3deg)scale(.2)}}@keyframes tb-confetti{0%{opacity:1;transform:translate(0)rotate(0)scale(.4)}75%{opacity:1}to{opacity:0;transform:translate(var(--dx), calc(var(--dy) + 140px)) rotate(var(--rot)) scale(1)}}.battle-overlay{pointer-events:auto;cursor:pointer;z-index:20;background:#1418288c;flex-direction:column;justify-content:center;align-items:center;gap:16px;animation:.2s ease-out fade-in;display:flex;position:absolute;inset:0;overflow:hidden}.battle-overlay.closing{animation:.45s ease-in forwards fade-out}.vs-slab{background:repeating-conic-gradient(from 0deg at 100% 50%, #ffffff1f 0deg 6deg, transparent 6deg 12deg), var(--left);width:58%;animation:slab-left .35s var(--spring) both;position:absolute;top:0;bottom:0}.vs-slab.left{clip-path:polygon(0 0,100% 0,86% 100%,0 100%);left:0}.vs-slab.right{background:repeating-conic-gradient(from 0deg at 0% 50%, #ffffff1f 0deg 6deg, transparent 6deg 12deg), var(--right);clip-path:polygon(14% 0,100% 0,100% 100%,0 100%);animation-name:slab-right;right:0}.closing .vs-slab.left{animation:.4s ease-in reverse both slab-left}.closing .vs-slab.right{animation:.4s ease-in reverse both slab-right}.battle-panels{gap:22px;width:min(1720px,100%);padding:0 2vw;display:flex;position:relative}.battle-panel{min-width:0;animation:panel-in-left .55s var(--spring) both;--tilt:-1.5deg;flex:1}.battle-panel.right{--tilt:1.5deg;animation-name:panel-in-right}.closing .battle-panel.left{animation:.45s ease-in forwards panel-out-left}.closing .battle-panel.right{animation:.45s ease-in forwards panel-out-right}.battle-panel-inner{background:var(--panel);border:4px solid var(--ink);transform:rotate(var(--tilt));box-shadow:0 8px 0 var(--ink);border-radius:24px;padding:12px;transition:box-shadow .15s}.battle-panel.firing .battle-panel-inner{box-shadow:0 0 0 6px var(--yellow), 0 8px 0 6px var(--ink)}.battle-panel-inner.shake-0{animation:.45s cubic-bezier(.36,.07,.19,.97) card-shake}.battle-panel-inner.shake-1{animation:.45s cubic-bezier(.36,.07,.19,.97) card-shake-b}.battle-card{background:var(--player);border:3px solid var(--ink);border-radius:16px;align-items:center;gap:12px;margin-bottom:10px;padding:8px 12px;display:flex;box-shadow:inset 0 -5px #0000002e}.battle-panel.right .battle-card{text-align:right;flex-direction:row-reverse}.seal{width:54px;height:54px;font:400 30px/1 var(--display);color:var(--player);-webkit-text-stroke:1.5px var(--ink);paint-order:stroke fill;border:3px solid var(--ink);box-shadow:0 3px 0 var(--ink);animation:seal-pop .5s .25s var(--spring) both;background:#fff;border-radius:50%;flex:none;place-items:center;display:grid}.battle-card-body{flex:1;min-width:0}.battle-unit{font:400 26px/1 var(--display);color:#fff;-webkit-text-stroke:1.5px var(--ink);paint-order:stroke fill;justify-content:space-between;align-items:center;display:flex}.battle-panel.right .battle-unit{flex-direction:row-reverse}.battle-hp{font-variant-numeric:tabular-nums;color:var(--yellow);-webkit-text-stroke:2px var(--ink);animation:hp-tick .4s var(--spring);font-size:40px;display:inline-block}.pips{background:var(--ink);border-radius:8px;gap:3px;margin:6px 0 4px;padding:3px;display:flex}.battle-panel.right .pips{flex-direction:row-reverse}.pip{background:#ffffff1f;border-radius:4px;flex:1;height:12px}.pip.on{background:linear-gradient(#b8ff7a 50%,#5fd35a 50%)}.pip.popping{animation:.35s ease-out pip-pop}.battle-terrain{color:#ffffffeb;text-shadow:0 1px #00000059;font-size:13px}.stars-inline{color:var(--yellow);letter-spacing:1px}.battle-view{border:3px solid var(--ink);background:linear-gradient(#58c1f5 0%,#bfe8ff 55%,#dff4ff 100%);border-radius:16px;height:min(68vh,38vw);position:relative;overflow:hidden}.impact-flash{pointer-events:none;background:radial-gradient(circle at 50% 60%,#fff4c8bf,#fff4c800 70%);animation:.18s ease-out forwards flash;position:absolute;inset:0}.damage-stamp{font:400 54px/1 var(--display);color:var(--yellow);-webkit-text-stroke:3px var(--ink);paint-order:stroke fill;text-shadow:0 5px 0 var(--ink);animation:stamp .35s var(--spring) both;pointer-events:none;position:absolute;top:12px;left:50%;transform:translate(-50%)rotate(-8deg)}.destroyed-stamp{font:400 58px/1 var(--display);color:#fff;-webkit-text-stroke:3px var(--ink);paint-order:stroke fill;text-shadow:0 5px 0 var(--ink);background:var(--red);clip-path:polygon(50% 0,60% 18%,82% 6%,80% 28%,100% 32%,86% 50%,100% 68%,80% 72%,82% 94%,60% 82%,50% 100%,40% 82%,18% 94%,20% 72%,0 68%,14% 50%,0 32%,20% 28%,18% 6%,40% 18%);animation:stamp-big .4s var(--spring) both;pointer-events:none;padding:34px 44px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)rotate(-10deg)}.engage-stamp{z-index:2;font:400 104px/1 var(--display);color:var(--yellow);-webkit-text-stroke:6px var(--ink);paint-order:stroke fill;text-shadow:0 9px 0 var(--ink);pointer-events:none;animation:engage 1.3s var(--spring) both;position:absolute;top:50%;left:50%}.battle-skip{color:#fff;text-shadow:0 2px #0006;font-size:13px;position:relative}.battle-skip kbd{color:#fff;background:#fff3;border-color:#fff6}@keyframes pop-up{0%{opacity:0;transform:translateY(20px)scale(.9)}}@keyframes pop-in{0%{opacity:0;transform:translateY(-50%)scale(.6)rotate(-6deg)}}@keyframes order-in{0%{opacity:0;transform:translate(40px)scale(.7)}}@keyframes slab-left{0%{transform:translate(-105%)}}@keyframes slab-right{0%{transform:translate(105%)}}@keyframes panel-in-left{0%{opacity:0;transform:translate(-120%)rotate(-12deg)}}@keyframes panel-in-right{0%{opacity:0;transform:translate(120%)rotate(12deg)}}@keyframes panel-out-left{to{opacity:0;transform:translate(-40px,80px)rotate(-8deg)scale(.85)}}@keyframes panel-out-right{to{opacity:0;transform:translate(40px,80px)rotate(8deg)scale(.85)}}@keyframes card-shake{10%,90%{transform:rotate(var(--tilt)) translate(-3px, 2px)}20%,80%{transform:rotate(calc(var(--tilt) * -1)) translate(6px, -3px)}30%,50%,70%{transform:rotate(var(--tilt)) translate(-10px, 4px)}40%,60%{transform:rotate(calc(var(--tilt) * -1)) translate(10px, -4px)}}@keyframes card-shake-b{10%,90%{transform:rotate(var(--tilt)) translate(-3px, 2px)}20%,80%{transform:rotate(calc(var(--tilt) * -1)) translate(6px, -3px)}30%,50%,70%{transform:rotate(var(--tilt)) translate(-10px, 4px)}40%,60%{transform:rotate(calc(var(--tilt) * -1)) translate(10px, -4px)}}@keyframes seal-pop{0%{transform:scale(0)rotate(-90deg)}}@keyframes hp-tick{0%{color:var(--red);transform:scale(1.9)rotate(-10deg)}}@keyframes pip-pop{0%{background:#fff;transform:scaleY(2.2)}}@keyframes flash{0%{opacity:1}to{opacity:0}}@keyframes stamp{0%{opacity:0;transform:translate(-50%)rotate(-8deg)scale(2.6)}}@keyframes stamp-big{0%{opacity:0;transform:translate(-50%,-50%)rotate(-40deg)scale(0)}}@keyframes engage{0%{opacity:0;transform:translate(-50%,-50%)scale(.2)rotate(-30deg)}25%{opacity:1;transform:translate(-50%,-50%)scale(1)rotate(-6deg)}75%{opacity:1;transform:translate(-50%,-50%)scale(1.06)rotate(-6deg)}to{opacity:0;transform:translate(-50%,-50%)scale(1.6)rotate(-6deg)}}@keyframes fade-in{0%{opacity:0}}@keyframes fade-out{to{opacity:0}}.funds{border:2.5px solid var(--ink);font:400 20px/1 var(--display);font-variant-numeric:tabular-nums;background:#fff6cf;border-radius:999px;align-items:center;gap:6px;margin-left:4px;padding:4px 12px 4px 4px;display:inline-flex;position:relative;box-shadow:inset 0 -3px #e0a80059}.coin{width:24px;height:24px;font:400 15px/1 var(--display);color:#fff;-webkit-text-stroke:1px var(--ink);paint-order:stroke fill;background:radial-gradient(circle at 35% 30%, #fff3a8 0 18%, var(--yellow) 19% 60%, #f0ad00 61%);border:2.5px solid var(--ink);border-radius:50%;place-items:center;display:inline-grid}.funds .amount{text-align:right;min-width:4.2ch}.funds.gain{animation:funds-gain .9s var(--spring)}.funds.gain .coin{animation:.9s ease-in-out coin-flip}.funds.spend{animation:funds-spend .45s var(--spring)}.funds-toast{font:400 30px/1 var(--display);color:var(--yellow);-webkit-text-stroke:5px var(--ink);paint-order:stroke fill;text-shadow:0 4px 0 var(--ink);white-space:nowrap;pointer-events:none;animation:funds-toast 1.8s var(--spring) forwards;position:absolute;top:100%;left:50%}@keyframes funds-gain{0%{transform:scale(1)}15%{background:var(--yellow);transform:scale(1.3)rotate(-4deg);box-shadow:0 0 0 6px #ffd23f99}45%{transform:scale(.94)rotate(2deg)}}@keyframes coin-flip{to{transform:rotateY(1080deg)}}@keyframes funds-spend{0%{transform:scale(1)}30%{color:var(--red);background:#ffd3cf;transform:scale(.82,1.12)}}@keyframes funds-toast{0%{opacity:0;transform:translate(-50%,-10px)scale(.2)rotate(-12deg)}18%{opacity:1;transform:translate(-50%,14px)scale(1.25)rotate(-6deg)}30%{transform:translate(-50%,10px)scale(1)rotate(-4deg)}80%{opacity:1;transform:translate(-50%,18px)scale(1)rotate(-4deg)}to{opacity:0;transform:translate(-50%,-24px)scale(.8)rotate(-4deg)}}.order.active{box-shadow:0 0 0 4px var(--yellow), inset 0 -4px 0 #1d22331f, var(--pop-sm);transform:translate(-6px)scale(1.05)rotate(-1.5deg)}.order.capture{color:#fff;-webkit-text-stroke:1.2px var(--ink);paint-order:stroke fill;box-shadow:inset 0 -4px 0 #178a4a, inset 0 3px 0 #ffffff73, var(--pop-sm);background:linear-gradient(#52d98a 55%,#22b563)}.order.capture.active,.order.attack.active{box-shadow:0 0 0 4px var(--yellow), inset 0 -4px 0 #00000040, var(--pop-sm)}.order.capture:before{content:"🚩";-webkit-text-stroke:0;margin-right:-6px}.order:nth-of-type(4){animation-delay:.15s}.capture-meter{align-items:center;gap:8px;display:inline-flex}.capture-meter .bar{border:2.5px solid var(--ink);background:#e8ecf5;border-radius:999px;width:70px;height:12px;overflow:hidden}.capture-meter .bar span{background:repeating-linear-gradient(-45deg, var(--player) 0 6px, color-mix(in srgb, var(--player) 70%, #fff) 6px 12px);border-right:2px solid var(--ink);height:100%;transition:width .5s var(--spring);display:block}.capture-meter b{font:400 18px/1 var(--display);color:var(--player);-webkit-text-stroke:1px var(--ink);paint-order:stroke fill}.build-menu{background:var(--panel);border:var(--outline);width:330px;max-height:calc(100% - 140px);box-shadow:var(--pop);animation:build-in .42s var(--spring);border-radius:24px;flex-direction:column;display:flex;position:absolute;top:50%;right:22px;overflow:hidden;transform:translateY(-50%)}.build-head{background:repeating-linear-gradient(-45deg, #ffffff24 0 10px, transparent 10px 20px), var(--player);border-bottom:var(--outline);justify-content:space-between;align-items:center;gap:10px;padding:12px 14px 12px 16px;display:flex}.build-title{font:400 28px/1 var(--display);color:#fff;-webkit-text-stroke:1.5px var(--ink);paint-order:stroke fill;text-shadow:0 3px 0 var(--ink);transform:rotate(-2deg)}.build-title:before{content:"🏭 ";-webkit-text-stroke:0}.build-funds{font:400 20px/1 var(--display);border:2.5px solid var(--ink);box-shadow:var(--pop-sm);background:#fff6cf;border-radius:999px;align-items:center;gap:6px;padding:3px 12px 3px 3px;display:inline-flex}.build-list{flex-direction:column;gap:8px;padding:12px;display:flex;overflow-y:auto}.build-item{text-align:left;font:inherit;color:var(--ink);background:linear-gradient(#fff 55%, var(--panel-2));border:var(--outline);cursor:pointer;box-shadow:inset 0 -4px 0 #1d22331a, var(--pop-sm);animation:order-in .4s var(--spring) both;transition:transform .16s var(--spring), box-shadow .16s, background .16s;border-radius:16px;align-items:center;gap:12px;padding:7px 12px 7px 7px;display:flex}.build-item.active{box-shadow:0 0 0 4px var(--yellow), inset 0 -4px 0 #e0a8004d, var(--pop-sm);background:linear-gradient(#fffbe6 55%,#fff0b3);transform:translate(-8px)scale(1.04)rotate(-1deg)}.build-item:active{transform:translateY(3px)scale(.97)}.build-icon{background:radial-gradient(circle at 40% 30%, #fff 0 30%, color-mix(in srgb, var(--player) 28%, #fff));border:3px solid var(--ink);width:58px;height:58px;box-shadow:inset 0 -4px 0 color-mix(in srgb, var(--player) 35%, transparent);transition:transform .2s var(--spring);border-radius:14px;flex:none;place-items:center;display:grid;overflow:visible}.build-icon img{filter:drop-shadow(0 2px 0 var(--ink));transition:transform .2s var(--spring);display:block}.build-item:hover .build-icon img,.build-item.active .build-icon img{transform:scale(1.18)translateY(-3px)}.build-item.broke .build-icon img{filter:grayscale()opacity(.6)}.spawn-pop{align-items:center;gap:2px;display:flex}.spawn-icon{filter:drop-shadow(0 2px 0 var(--ink));margin-right:2px}.build-item.active .build-icon{animation:.9s ease-in-out infinite icon-bob;transform:rotate(-8deg)scale(1.12)}.build-name{font:400 21px/1 var(--display);flex-direction:column;flex:1;gap:2px;display:flex}.build-name small{font:800 11px/1.2 var(--body);color:var(--ink-soft)}.build-cost{font:400 20px/1 var(--display);font-variant-numeric:tabular-nums;color:#b37400;-webkit-text-stroke:.6px var(--ink)}.build-item.broke{filter:grayscale(.9);opacity:.55;cursor:not-allowed}.build-item.broke .build-cost{color:var(--red);text-decoration:line-through;text-decoration-thickness:2px}.build-item.broke.active{opacity:.8}.build-item.nope{animation:.4s cubic-bezier(.36,.07,.19,.97) both nope}.build-foot{color:var(--ink-soft);border-top:2px dashed #1d223333;justify-content:space-between;align-items:center;padding:10px 14px;font-size:12px;display:flex}.build-close{font:400 16px/1 var(--display);color:var(--ink-soft);border:2.5px solid var(--ink);cursor:pointer;box-shadow:var(--pop-sm);background:#fff;border-radius:999px;padding:6px 10px}@keyframes build-in{0%{opacity:0;transform:translateY(-50%)translate(80px)scale(.6)rotate(8deg)}}@keyframes icon-bob{50%{transform:rotate(6deg)scale(1.16)translateY(-3px)}}@keyframes nope{10%,90%{transform:translate(-10px)}20%,80%{transform:translate(-2px)}30%,50%,70%{transform:translate(-16px)}40%,60%{transform:translate(0)}}.zone-label{color:var(--ink);border:3px solid var(--ink);box-shadow:0 3px 0 var(--ink);font:400 15px/1 var(--display);white-space:nowrap;pointer-events:none;-webkit-user-select:none;user-select:none;background:#7be07b;border-radius:999px;padding:5px 10px 6px;animation:2.4s ease-in-out infinite zone-label-bob}.zone-label.quiet{background:#ff9fb6;animation:none}@keyframes zone-label-bob{50%{transform:translateY(-4px)}}@media (prefers-reduced-motion:reduce){.zone-label{animation:none}}.cap-badge{--size:34px;width:var(--size);height:var(--size);background:conic-gradient(var(--player) calc(var(--p) * 1%), #fff 0);border:3px solid var(--ink);box-shadow:0 3px 0 var(--ink);pointer-events:none;-webkit-user-select:none;user-select:none;border-radius:50%;place-items:center;display:grid;position:relative}.cap-badge b{width:calc(var(--size) - 12px);height:calc(var(--size) - 12px);border:2px solid var(--ink);font:400 15px/1 var(--display);color:var(--ink);background:#fff;border-radius:50%;place-items:center;display:grid}.cap-badge.idle{animation:1.6s ease-in-out infinite badge-idle}.cap-badge.live{--size:56px}.cap-badge.live b{font-size:26px}.cap-badge.tick b{animation:badge-tick .16s var(--spring)}.cap-badge.live:before{content:"🚩";font-size:24px;animation:.4s ease-in-out infinite alternate flag-wave;position:absolute;top:-16px;left:-14px;transform:rotate(-18deg)}.cap-badge.enter{animation:badge-enter .4s var(--spring) both}.cap-badge.burst{animation:.35s ease-in forwards badge-burst}.cap-badge.leave{animation:.3s ease-in forwards badge-leave}.cap-delta{font:400 22px/1 var(--display);color:#fff;-webkit-text-stroke:4px var(--ink);paint-order:stroke fill;white-space:nowrap;animation:delta-pop 1.2s var(--spring) both;margin-left:4px;position:absolute;top:-8px;left:100%}.captured-pop{font:400 44px/1 var(--display);color:var(--player);-webkit-text-stroke:7px var(--ink);paint-order:stroke fill;text-shadow:0 6px 0 var(--ink);white-space:nowrap;pointer-events:none;-webkit-user-select:none;user-select:none;display:flex}.captured-pop span{animation:captured-letter 1.6s var(--spring) both;display:inline-block}.spawn-pop{font:400 26px/1 var(--display);color:#fff;-webkit-text-stroke:5px var(--ink);paint-order:stroke fill;text-shadow:0 4px 0 var(--ink);white-space:nowrap;pointer-events:none;animation:spawn-pop 1.5s var(--spring) both}.spawn-pop em{color:var(--player);font-style:normal}@keyframes badge-idle{50%{transform:translateY(-4px)rotate(-4deg)}}@keyframes badge-enter{0%{opacity:0;transform:translateY(30px)scale(.2)}}@keyframes badge-tick{0%{transform:scale(1.45)rotate(-10deg)}}@keyframes badge-burst{40%{opacity:1;transform:scale(1.5)}to{opacity:0;transform:scale(2.4)}}@keyframes badge-leave{to{opacity:0;transform:translateY(-16px)scale(.5)}}@keyframes flag-wave{to{transform:rotate(-4deg)translateY(-2px)}}@keyframes delta-pop{0%{opacity:0;transform:scale(.2)translateY(10px)}20%{opacity:1;transform:scale(1.2)rotate(-8deg)}80%{opacity:1;transform:scale(1)rotate(-6deg)translateY(-10px)}to{opacity:0;transform:scale(1)rotate(-6deg)translateY(-24px)}}@keyframes captured-letter{0%{opacity:0;transform:translateY(40px)scale(.2)rotate(-30deg)}14%{opacity:1;transform:translateY(-16px)scale(1.25)rotate(6deg)}24%,80%{opacity:1;transform:translateY(0)scale(1)rotate(-3deg)}to{opacity:0;transform:translateY(-30px)scale(.9)rotate(-3deg)}}@keyframes spawn-pop{0%{opacity:0;transform:scale(.2)translateY(20px)}18%{opacity:1;transform:scale(1.2)rotate(-5deg)}30%,75%{opacity:1;transform:scale(1)rotate(-3deg)}to{opacity:0;transform:translateY(-30px)rotate(-3deg)}}.victory{z-index:30;pointer-events:auto;background:radial-gradient(circle at center, color-mix(in srgb, var(--player) 70%, #fff) 0%, var(--player) 40%, color-mix(in srgb, var(--player) 55%, var(--ink)) 100%);place-items:center;animation:.5s ease-out both victory-in;display:grid;position:absolute;inset:0;overflow:hidden}.v-rays{background:repeating-conic-gradient(#fff3 0deg 8deg,#0000 8deg 16deg);width:220vmax;height:220vmax;margin:-110vmax 0 0 -110vmax;animation:14s linear infinite tb-spin;position:absolute;top:50%;left:50%}.v-confetti{pointer-events:none;position:absolute;inset:0}.v-confetti span{background:var(--c);border:2px solid var(--ink);border-radius:3px;width:14px;height:22px;animation:linear infinite both v-fall;position:absolute;top:-40px}.v-confetti span.star{clip-path:polygon(50% 0,61% 35%,98% 35%,68% 57%,79% 91%,50% 70%,21% 91%,32% 57%,2% 35%,39% 35%);border:none;border-radius:0;width:28px;height:28px}.v-card{background:var(--panel);border:5px solid var(--ink);min-width:min(520px,100vw - 32px);box-shadow:0 12px 0 var(--ink);animation:v-card .7s .1s var(--spring) both;border-radius:36px;flex-direction:column;align-items:center;gap:14px;padding:56px 48px 30px;display:flex;position:relative;transform:rotate(-2deg)}.v-medal{width:104px;height:104px;font:400 64px/1 var(--display);color:#fff;-webkit-text-stroke:3px var(--ink);paint-order:stroke fill;background:radial-gradient(circle at 35% 30%, #fff3a8 0 15%, var(--yellow) 16% 62%, #f0ad00 63%);border:5px solid var(--ink);box-shadow:0 6px 0 var(--ink), 0 0 0 10px #ffffff80;animation:v-medal .8s .45s var(--spring) both, v-medal-spin 3s 1.3s ease-in-out infinite;border-radius:50%;place-items:center;display:grid;position:absolute;top:-58px}.v-title{font:400 clamp(64px, 10vw, 120px)/1 var(--display);color:var(--yellow);-webkit-text-stroke:8px var(--ink);paint-order:stroke fill;text-shadow:0 10px 0 var(--ink);margin-top:10px;display:flex}.v-title span{animation:tb-letter .6s var(--spring) both, v-wave 1.6s ease-in-out infinite;display:inline-block}.v-team{font:400 40px/1 var(--display);color:var(--player);-webkit-text-stroke:2px var(--ink);paint-order:stroke fill;animation:tb-bubble .5s .8s var(--spring) both;align-items:center;gap:10px;display:flex}.v-team .chip{border-width:3.5px;width:26px;height:26px}.v-reason{font:900 18px/1 var(--body);border:3px solid var(--ink);box-shadow:var(--pop-sm);animation:tb-bubble .5s .95s var(--spring) both;background:#fff6cf;border-radius:999px;padding:9px 18px;transform:rotate(2deg)}.v-stats{gap:12px;margin:6px 0 8px;display:flex}.v-stat{background:var(--panel-2);border:3px solid var(--ink);min-width:92px;box-shadow:var(--pop-sm);animation:v-stat .45s var(--spring) both;border-radius:16px;flex-direction:column;align-items:center;gap:4px;padding:10px 12px 8px;display:flex}.v-stat b{font:400 32px/1 var(--display);color:var(--player);-webkit-text-stroke:1.5px var(--ink);paint-order:stroke fill}.v-stat span{color:var(--ink-soft);text-transform:uppercase;letter-spacing:.06em;font-size:12px}.v-again{animation:v-stat .5s 1.35s var(--spring) both;padding:14px 26px 15px 30px;font-size:30px}.v-again:focus-visible{box-shadow:0 0 0 5px #fff, inset 0 -5px 0 var(--yellow-dark), var(--pop);outline:none}@keyframes victory-in{0%{opacity:0;clip-path:circle(0%)}to{opacity:1;clip-path:circle(75%)}}@keyframes v-card{0%{opacity:0;transform:translateY(120px)scale(.4)rotate(14deg)}}@keyframes v-medal{0%{opacity:0;transform:scale(3)rotate(-200deg)}}@keyframes v-medal-spin{0%,70%,to{transform:rotateY(0)}85%{transform:rotateY(360deg)}}@keyframes v-wave{0%,to{transform:translateY(0)}50%{transform:translateY(-10px)}}@keyframes v-stat{0%{opacity:0;transform:scale(.3)translateY(20px)}}@keyframes v-fall{0%{transform:translate(0)rotate(0)}to{transform:translate(var(--drift), 110vh) rotate(var(--rot))}}@media (width<=720px){.hint{display:none}.card{min-width:150px;font-size:13px}.battle-panels{flex-direction:column}.battle-view{height:30vh}.engage-stamp{font-size:60px}}@media (prefers-reduced-motion:reduce){.turn-banner,.turn-banner *,.battle-overlay *,.order,.action-menu,.card,.funds,.funds *,.build-menu,.build-menu *,.cap-badge,.cap-badge *,.captured-pop *,.spawn-pop,.victory,.victory *{animation-duration:10ms!important;animation-iteration-count:1!important;animation-delay:0s!important}.v-confetti,.v-rays{display:none}}.class-tag{font:900 10px/1 var(--body);letter-spacing:.06em;text-transform:uppercase;color:var(--ink);border:2px solid var(--ink);-webkit-text-stroke:0;background:#ffffffd9;border-radius:6px;padding:3px 5px 2px;transform:rotate(-4deg)}.unit-card{max-width:300px}.ammo-pips{flex-wrap:wrap;justify-content:flex-end;gap:3px;max-width:130px;display:inline-flex}.ammo-pips span{border:2px solid var(--ink);width:8px;height:15px;transition:background .2s, transform .3s var(--spring);background:#e8ecf5;border-radius:5px 5px 2px 2px}.ammo-pips span.on{background:linear-gradient(90deg,#ffe27a 0 45%,#e0a800 45%)}.ammo-pips.low span.on{background:linear-gradient(90deg,#ffb27a 0 45%,#e05a00 45%);animation:1s ease-in-out infinite pip-nag}.ammo-pips.empty span{border-color:var(--red);animation:.8s ease-in-out infinite pip-nag}.ammo-pips span:nth-child(3n+2){animation-delay:.1s}.ammo-pips span:nth-child(3n){animation-delay:.2s}@keyframes pip-nag{50%{transform:translateY(-2px)}}.gauge{align-items:center;gap:8px;display:inline-flex}.gauge .bar{border:2.5px solid var(--ink);background:#e8ecf5;border-radius:999px;width:70px;height:12px;overflow:hidden}.gauge .bar span{border-right:2px solid var(--ink);height:100%;transition:width .5s var(--spring);background:linear-gradient(#7ef0c5 50%,#3cc48e 50%);display:block}.gauge b{font:400 16px/1 var(--display);text-align:right;min-width:22px}.gauge.low .bar span{background:repeating-linear-gradient(-45deg, var(--red) 0 6px, #ff8a80 6px 12px)}.gauge.low b{color:var(--red);animation:.8s ease-in-out infinite pip-nag}.cargo-slots{gap:6px;display:inline-flex}.cargo-slot{background:var(--panel-2);border:2.5px dashed #1d223359;border-radius:10px;place-items:center;width:38px;height:38px;display:grid}.cargo-slot.full{border:2.5px solid var(--ink);background:color-mix(in srgb, var(--player) 25%, #fff);box-shadow:0 2px 0 var(--ink);animation:pop-in .35s var(--spring)}.cargo-slot b{font:400 20px/1 var(--display)}.match{border-top:2px dashed #1d223326;flex-direction:column;gap:4px;margin-top:8px;padding-top:7px;display:flex}.match .label{font:400 13px/1 var(--display);letter-spacing:.04em}.match.strong .label:before{content:"▲ ";color:#22b573}.match.weak .label:before{content:"▼ ";color:var(--red)}.match+.match{border-top:0;margin-top:4px;padding-top:0}.chips{flex-wrap:wrap;gap:5px;display:flex}.match-chip{font:900 12px/1 var(--body);border:2px solid var(--ink);box-shadow:0 2px 0 var(--ink);animation:order-in .35s var(--spring) both;border-radius:999px;align-items:center;gap:2px;padding:1px 8px 1px 2px;display:inline-flex}.match.strong .match-chip{background:#d9fbe9}.match.weak .match-chip{background:#ffe1de}.match-chip img{margin:-3px 0}.weapon-chip{font:400 15px/1 var(--display);border:2px solid var(--ink);box-shadow:0 2px 0 var(--ink);animation:pop-in .3s var(--spring);border-radius:8px;padding:3px 8px 2px}.weapon-chip.ammo{background:var(--yellow)}.weapon-chip.ammo:before{content:"🚀 "}.weapon-chip.mg{background:var(--panel-2)}.weapon-chip.mg:before{content:"🔫 "}.no-counter{font:400 18px/1 var(--display);color:#22b573;-webkit-text-stroke:1px var(--ink);paint-order:stroke fill;animation:pop-in .4s var(--spring);display:inline-block}.order.load,.order.unload,.order.supply{color:#fff;-webkit-text-stroke:1.2px var(--ink);paint-order:stroke fill}.order.load{box-shadow:inset 0 -4px 0 #1f8a4b, inset 0 3px 0 #fff6, var(--pop-sm);background:linear-gradient(#6fe39a 55%,#2fb866)}.order.unload{box-shadow:inset 0 -4px 0 #b77f00, inset 0 3px 0 #fff6, var(--pop-sm);background:linear-gradient(#ffd96a 55%,#f0a800)}.order.supply{box-shadow:inset 0 -4px 0 #1a70a8, inset 0 3px 0 #fff6, var(--pop-sm);background:linear-gradient(#72d7ff 55%,#2a9fe0)}.order.load:before{content:"⬇️";-webkit-text-stroke:0;margin-right:-6px}.order.unload:before{content:"📦";-webkit-text-stroke:0;margin-right:-6px}.order.supply:before{content:"⛽";-webkit-text-stroke:0;margin-right:-6px}.order.load.active,.order.unload.active,.order.supply.active{box-shadow:0 0 0 4px var(--yellow), inset 0 -4px 0 #00000040, var(--pop-sm)}.order:nth-of-type(5){animation-delay:.2s}.order.cargo-pick{justify-content:flex-start;font-size:20px}.order.cargo-pick kbd{margin-left:auto}.unload-hint{animation:pop-in .3s var(--spring);position:absolute;top:50%;right:22px;transform:translateY(-50%)}.unload-hint .card-title{color:var(--player);-webkit-text-stroke:1px var(--ink);paint-order:stroke fill}.unload-icon{filter:drop-shadow(0 2px 0 var(--ink));animation:.9s ease-in-out infinite icon-bob}.cargo-pip{background:color-mix(in srgb, var(--player) 30%, #fff);border:2.5px solid var(--ink);width:32px;height:32px;box-shadow:0 2px 0 var(--ink);animation:pip-in .5s var(--spring) both, cargo-bob 2.2s ease-in-out .5s infinite;border-radius:50%;place-items:center;display:grid;position:relative}.cargo-pip img{margin-top:-2px}.cargo-pip b{font:400 13px/1 var(--display);color:#fff;background:var(--ink);border-radius:999px;padding:2px 5px;position:absolute;bottom:-5px;right:-7px}.cargo-q{font:400 18px/1 var(--display)}@keyframes pip-in{0%{transform:scale(0)rotate(-40deg)}60%{transform:scale(1.35)rotate(8deg)}to{transform:scale(1)}}@keyframes cargo-bob{50%{transform:translateY(-3px)rotate(-5deg)}}.supply-badges{flex-direction:column;gap:2px;display:flex}.supply-badge{border:2px solid var(--ink);width:20px;height:20px;box-shadow:0 2px 0 var(--ink);animation:pip-in .45s var(--spring) both, badge-nag 1.4s ease-in-out .45s infinite;border-radius:6px;place-items:center;display:grid}.supply-badge.fuel{background:#ff9f43;animation-delay:0s,.7s}.supply-badge.ammo{background:var(--yellow)}.supply-badge.empty{background:var(--red)}.supply-badge i{display:block}.supply-badge.ammo i{border:1.5px solid var(--ink);background:#fff;border-radius:3px 3px 1px 1px;width:6px;height:11px}.supply-badge.fuel i{border:1.5px solid var(--ink);background:#fff;border-radius:0 50% 50%;width:9px;height:9px;margin-top:2px;transform:rotate(45deg)}@keyframes badge-nag{0%,70%,to{transform:translateY(0)scale(1)}80%{transform:translateY(-5px)scale(1.15)rotate(-8deg)}90%{transform:translateY(0)scale(.95,1.05)}}.supply-pop{font:400 18px/1 var(--display);color:#7ef0c5;-webkit-text-stroke:4px var(--ink);paint-order:stroke fill;text-shadow:0 3px 0 var(--ink);white-space:nowrap;animation:spawn-pop 1.35s var(--spring) both}.supply-can{-webkit-text-stroke:0;margin-right:3px}.build-title[data-emoji]:before{content:attr(data-emoji) " "}.build-head{box-shadow:inset 0 -6px 0 var(--prop,transparent)}.build-kind{font:400 14px/1 var(--display);letter-spacing:.04em;color:#fff;background:var(--prop,var(--player));border:2.5px solid var(--ink);box-shadow:var(--pop-sm);-webkit-text-stroke:1px var(--ink);paint-order:stroke fill;border-radius:999px;align-self:flex-start;margin:10px 0 -4px 14px;padding:3px 12px;transform:rotate(-1.5deg)}.build-menu.prop-airport .build-list{background:radial-gradient(60px 18px at 20% 12%,#ffffffb3,#0000 70%),radial-gradient(80px 22px at 85% 55%,#ffffff8c,#0000 70%),linear-gradient(#e6f6ff,#0000 160px)}.build-group{font:400 13px/1 var(--display);letter-spacing:.08em;text-transform:uppercase;color:var(--ink);opacity:.55;align-items:center;gap:8px;margin:4px 2px -2px;display:flex}.build-group:after{content:"";border-top:2px dashed;flex:1}.gauge .bar{position:relative}.gauge .bar span.burn{border-right:0;border-left:2px solid var(--ink);background:repeating-linear-gradient(-45deg,#ff4b3ed9 0 4px,#fff9 4px 8px);height:100%;position:absolute;top:0}.burn-rate{font:400 12px/1 var(--display);border:2px solid var(--ink);color:#c9372b;white-space:nowrap;background:#ffe1dc;border-radius:999px;padding:2px 6px}.gauge.doomed .burn-rate{background:var(--red);color:#fff;animation:.6s ease-in-out infinite pip-nag}.crash-pop{font:400 20px/1 var(--display);color:#ffb347;-webkit-text-stroke:4px var(--ink);paint-order:stroke fill;text-shadow:0 3px 0 var(--ink);white-space:nowrap;animation:crash-pop 2.2s var(--spring) both}.crash-gauge{-webkit-text-stroke:0;margin-right:4px;animation:.25s ease-in-out 4 crash-wobble;display:inline-block}@keyframes crash-pop{0%{opacity:0;transform:scale(.3)translateY(10px)}12%{opacity:1;transform:scale(1.15)translateY(0)}20%,75%{transform:scale(1)rotate(-3deg)}to{opacity:0;transform:scale(.9)translateY(-18px)rotate(-3deg)}}@keyframes crash-wobble{50%{transform:rotate(-18deg)scale(1.15)}}.sink-pop{color:#9fe3ff}.rules-name{font:900 10px/1 var(--body);letter-spacing:.05em;text-transform:uppercase;color:var(--ink-soft);-webkit-text-stroke:0;margin-left:4px}.build-name .rules-name{margin-left:0}.card-title .rules-name{color:inherit;opacity:.8}.weather-row .weather-note{font:800 12px/1.25 var(--body);color:#2f5f8f;text-align:right}
