@font-face{font-family:"Baloo 2";font-style:normal;font-display:swap;font-weight:600;src:url(/assets/baloo-2-latin-600-normal-tIfxVoAe.woff2) format("woff2"),url(/assets/baloo-2-latin-600-normal-B4tNaogw.woff) format("woff")}@font-face{font-family:"Baloo 2";font-style:normal;font-display:swap;font-weight:700;src:url(/assets/baloo-2-latin-700-normal-CqTg7A15.woff2) format("woff2"),url(/assets/baloo-2-latin-700-normal-Ld3Zm3l2.woff) format("woff")}@font-face{font-family:"Baloo 2";font-style:normal;font-display:swap;font-weight:800;src:url(/assets/baloo-2-latin-800-normal-BbF3Etk1.woff2) format("woff2"),url(/assets/baloo-2-latin-800-normal-B8BXfZF7.woff) format("woff")}@font-face{font-family:Nunito;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/nunito-latin-600-normal-Br8yIETf.woff2) format("woff2"),url(/assets/nunito-latin-600-normal-Cd0eNu1l.woff) format("woff")}@font-face{font-family:Nunito;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/nunito-latin-700-normal-Dort48En.woff2) format("woff2"),url(/assets/nunito-latin-700-normal-OcDqTBcA.woff) format("woff")}@font-face{font-family:Nunito;font-style:normal;font-display:swap;font-weight:800;src:url(/assets/nunito-latin-800-normal-Dz8SOQK_.woff2) format("woff2"),url(/assets/nunito-latin-800-normal-D-J0wlBY.woff) format("woff")}:root{--ink: #1f2433;--ink-2: #2b3247;--paper: #ffffff;--glass: rgba(255, 255, 255, .86);--glass-dark: rgba(18, 24, 44, .72);--red: #ec4a3f;--red-d: #a8261f;--blue: #3a80f2;--blue-d: #1d4cb3;--gold: #ffc93a;--gold-d: #e09a12;--green: #4fd36a;--head: "Baloo 2", "Nunito", system-ui, sans-serif;--ui: "Nunito", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--shadow: 0 10px 30px rgba(10, 20, 50, .28), 0 2px 6px rgba(10, 20, 50, .18);--safe-t: env(safe-area-inset-top, 0px);--safe-b: env(safe-area-inset-bottom, 0px);--safe-l: env(safe-area-inset-left, 0px);--safe-r: env(safe-area-inset-right, 0px)}*{box-sizing:border-box}html,body{margin:0;height:100%;overflow:hidden;background:#2a8ae6;color:var(--ink);font-family:var(--ui);-webkit-tap-highlight-color:transparent;user-select:none;-webkit-user-select:none;overscroll-behavior:none;touch-action:none;-webkit-font-smoothing:antialiased}[hidden]{display:none!important}#game{position:fixed;top:0;right:0;bottom:0;left:0}#game canvas{display:block}.panel,.card,#menu{background:var(--glass);-webkit-backdrop-filter:blur(14px) saturate(1.4);backdrop-filter:blur(14px) saturate(1.4);border:1px solid rgba(255,255,255,.9);border-radius:18px;box-shadow:var(--shadow)}.btn{font:800 15px/1 var(--head);letter-spacing:.01em;border:0;border-radius:14px;background:linear-gradient(#fff,#e9edf6);color:var(--ink);padding:10px 16px;cursor:pointer;box-shadow:0 3px #c3cad9,0 6px 14px #0a14322e;transition:transform .08s ease,box-shadow .08s ease,filter .15s}.btn:hover:not(:disabled){filter:brightness(1.04)}.btn:active:not(:disabled){transform:translateY(2px);box-shadow:0 1px #c3cad9,0 3px 8px #0a143233}.btn:disabled{opacity:.45;cursor:default;filter:saturate(.4)}.btn:focus-visible,.menu-item:focus-visible,.tbtn:focus-visible{outline:3px solid var(--gold);outline-offset:2px}.btn.primary{background:linear-gradient(#ffe27a,var(--gold));box-shadow:0 3px 0 var(--gold-d),0 6px 14px #e09a1259}.btn.primary:active:not(:disabled){box-shadow:0 1px 0 var(--gold-d)}.btn.ghost{background:transparent;box-shadow:inset 0 0 0 2px #1f243333}.btn.big{font-size:18px;padding:14px 18px;min-height:54px}.btn.icon{width:44px;height:40px;padding:0;font-size:20px}#hud{position:fixed;left:0;right:0;top:0;z-index:10;display:flex;align-items:center;gap:8px;padding:calc(8px + var(--safe-t)) calc(10px + var(--safe-r)) 8px calc(10px + var(--safe-l));background:linear-gradient(#0e1630c7,#0e16308c);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);color:#fff;min-height:58px;box-shadow:0 6px 18px #0000002e}#hud .spacer{flex:1}.chip,.turn,.funds{display:flex;align-items:center;gap:7px;white-space:nowrap;border-radius:999px;background:#fffffff2;color:var(--ink);box-shadow:0 2px 8px #0003}.chip{font:700 12px var(--ui);padding:8px 12px;cursor:pointer;border:0}.chip b{font:800 14px var(--head);letter-spacing:.08em;color:var(--blue-d)}.chip .lbl{opacity:.55}.turn{padding:3px 14px 3px 3px}.turn .day{font:800 13px var(--head);color:#fff;padding:5px 11px;border-radius:999px;background:#888;box-shadow:inset 0 -2px #0000002e}.turn.red .day{background:linear-gradient(#ff8a72,var(--red))}.turn.blue .day{background:linear-gradient(#7fb0ff,var(--blue))}#turn-text{font:800 13px/1.1 var(--head)}.funds{font:800 15px var(--head);padding:4px 14px 4px 4px}.funds .g{display:grid;place-items:center;width:26px;height:26px;border-radius:50%;font-size:13px;color:#7a4b00;background:radial-gradient(circle at 35% 30%,#fff6c2,#ffcf3a 55%,#e09a12);box-shadow:inset 0 -2px #00000026}.opp{font:700 12px var(--ui);opacity:.95;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.opp:before{content:"";display:inline-block;width:8px;height:8px;border-radius:50%;margin-right:6px;vertical-align:1px;background:#999}.opp.on:before{background:#6dff8a;box-shadow:0 0 8px #6dff8a}.opp.off:before{background:#ff7b6e}.opp.waiting:before{background:var(--gold);animation:pulse 1.2s ease-in-out infinite}#hud .btn{padding:9px 14px;font-size:14px}.co-face{width:36px;height:36px;border-radius:50%;background:#fff;object-fit:cover;box-shadow:inset 0 0 0 2px #fff}.turn.red .co-face{background:linear-gradient(#ffe8e0,#ffc2b2)}.turn.blue .co-face{background:linear-gradient(#e6efff,#b9d2ff)}#info{position:fixed;z-index:9;display:flex;gap:8px;pointer-events:none;background:none;border:0;box-shadow:none;padding:0;border-radius:0;-webkit-backdrop-filter:none;backdrop-filter:none;left:calc(10px + var(--sl, 0px));bottom:calc(var(--tb-b, 0px) + 10px)}body[data-layout=side] #info{top:calc(var(--hud-b, 58px) + 10px);width:calc(var(--side-w, 214px) - 10px);flex-direction:column;justify-content:flex-end;align-items:stretch}body[data-layout=bottom] #info{right:calc(var(--tb-r, 0px) + 10px + var(--sr, 0px));height:calc(var(--strip-h, 104px) - 10px);flex-direction:row;align-items:flex-end}body[data-layout=bottom] .card{flex:0 1 auto;min-width:0;max-height:100%}body[data-layout=side] .card{min-width:0}.card .body{min-width:0;overflow:hidden}.card .nm,.card .stat{overflow:hidden;text-overflow:ellipsis}.card{display:flex;align-items:center;gap:10px;padding:8px 14px 8px 8px;border-radius:16px;font:700 13px/1.35 var(--ui);animation:pop-in .16s ease-out}.card .ico{width:44px;height:44px;flex:none}.card .ico.tall{width:36px;height:68px}.card .nm{font:800 15px/1.1 var(--head);margin-bottom:2px;white-space:nowrap}.card .stat{white-space:nowrap;color:#4a5268}.card .stat b{font:800 16px var(--head);color:var(--ink)}.card .stat.sub{font-size:11px;opacity:.75}.card .stars{color:#f0a400;letter-spacing:1px;font-size:14px}.card.unit.red{background:linear-gradient(#fff0eced,#ffd6cce6)}.card.unit.blue{background:linear-gradient(#eef4ffed,#d0e0ffe6)}.card.terrain.red .nm{color:var(--red-d)}.card.terrain.blue .nm{color:var(--blue-d)}.card.forecast{background:linear-gradient(#fff9dcf2,#ffe9a0eb)}#menu{position:fixed;z-index:20;padding:8px;min-width:190px;animation:pop-in .16s ease-out}#menu.wide{min-width:300px}.menu-title{font:800 12px var(--head);letter-spacing:.06em;text-transform:uppercase;color:#6a7389;padding:4px 10px 8px}.menu-items{display:flex;flex-direction:column;gap:4px}.menu-item{display:flex;align-items:center;gap:10px;width:100%;text-align:left;font:800 16px/1.2 var(--head);color:var(--ink);background:transparent;border:0;border-radius:12px;padding:10px 12px;cursor:pointer;transition:background .12s,transform .08s}.menu-item:hover:not(:disabled),.menu-item:focus{background:linear-gradient(90deg,#fff1b8,#ffe48a);outline:none;transform:translate(2px)}.menu-item:active:not(:disabled){transform:scale(.98)}.menu-item:focus-visible{box-shadow:0 0 0 3px var(--gold)}.menu-item:disabled{opacity:.35;cursor:default}.menu-item.danger{color:var(--red-d)}.menu-item.cancel{color:#6a7389;font-weight:700}.menu-item .ico{width:40px;height:40px;flex:none;filter:drop-shadow(0 2px 2px rgba(0,0,0,.2))}.menu-item .lbl{display:flex;flex-direction:column;flex:1;gap:1px}.menu-item small{font:600 12px var(--ui);color:#6a7389}.menu-item .det{font:800 15px var(--head);color:#9a6400;background:#fff4c8;padding:2px 8px;border-radius:999px}.touch-only{display:none!important}body.touch .touch-only:not([hidden]),body.compact .touch-only:not([hidden]){display:flex!important}body.touch .desk-only,body.compact .desk-only{display:none!important}#touchbar{position:fixed;z-index:10;left:0;right:0;bottom:0;gap:10px;padding:10px calc(12px + var(--safe-r)) calc(10px + var(--safe-b)) calc(12px + var(--safe-l));background:linear-gradient(#0e163080,#0e1630cc);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.tbtn{flex:1;min-height:62px;min-width:56px;display:flex;flex-direction:column;align-items:center;justify-content:center;font:800 26px/1 var(--head);color:var(--ink);border:0;border-radius:18px;background:linear-gradient(#fff,#e5eaf4);box-shadow:0 3px #b9c1d2,0 6px 14px #00000040;transition:transform .08s}.tbtn small{font:700 11px var(--ui);margin-top:2px;color:#6a7389}.tbtn.primary{flex:1.7;background:linear-gradient(#ffe27a,var(--gold));box-shadow:0 3px 0 var(--gold-d),0 6px 14px #00000040;font-size:22px}.tbtn.primary small{color:#7a5000}.tbtn:disabled{opacity:.45;filter:saturate(.4)}.tbtn:active:not(:disabled){transform:translateY(2px) scale(.98)}body.touch #menu,body.compact #menu{left:10px!important;right:10px;top:auto!important;bottom:calc(92px + var(--safe-b));padding:10px;max-height:60vh;overflow:auto;animation:sheet-up .2s cubic-bezier(.2,.9,.3,1.2)}body.touch .menu-items,body.compact .menu-items{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:8px}body.touch .menu-item,body.compact .menu-item{min-height:58px;font-size:18px;background:#fff;box-shadow:0 2px #d5dbe7;justify-content:flex-start}body.touch #hud{gap:6px}body.touch .chip .lbl{display:none}.chip .dot{display:none;width:8px;height:8px;border-radius:50%;background:#999;flex:none}.chip .dot.on{background:#3fd65c;box-shadow:0 0 6px #3fd65c}.chip .dot.off{background:#ff6a5c}.chip .dot.waiting{background:var(--gold);animation:pulse 1.2s ease-in-out infinite}.turn .tt{display:flex;align-items:center;gap:7px;min-width:0}@media(max-width:600px){#hud{gap:6px;padding-left:calc(8px + var(--safe-l));padding-right:calc(8px + var(--safe-r))}#hud .opp{display:none}.chip .dot{display:inline-block}.chip{padding:7px 9px;gap:5px}.chip .lbl{display:none}.chip b{font-size:12px;letter-spacing:.06em}.turn{padding:3px 10px 3px 3px;gap:6px;min-width:0}.turn .tt{flex-direction:column;align-items:flex-start;gap:1px}.turn .day{font-size:10px;padding:1px 7px;line-height:1.35}#turn-text{font-size:12px;white-space:nowrap}.co-face{width:30px;height:30px}.funds{font-size:13px;padding:3px 10px 3px 3px;gap:5px}.funds .g{width:22px;height:22px;font-size:11px}#hud .btn.icon{width:38px;height:36px;font-size:18px}}@media(max-width:360px){.co-face{width:26px;height:26px}#turn-text{font-size:11px}.funds{font-size:12px}}@media(max-width:600px),(max-height:500px){.card{gap:7px;padding:6px 10px 6px 6px;border-radius:14px;font-size:11px}.card .ico{width:32px;height:32px}.card .ico.tall{width:26px;height:49px}.card .nm,.card .stat b{font-size:13px}.card .stat.sub{font-size:10px}.card .stars{font-size:12px}}@media(orientation:landscape)and (max-height:500px){body.touch #touchbar{top:var(--hud-b, 58px);bottom:0;left:auto;right:0;width:calc(92px + var(--safe-r));flex-direction:column;padding:10px calc(10px + var(--safe-r)) calc(10px + var(--safe-b)) 10px}body.touch .tbtn{min-height:48px}body.touch #menu{bottom:calc(10px + var(--safe-b));right:calc(100px + var(--safe-r));max-height:70vh}}#banner{position:fixed;z-index:15;left:0;right:0;top:38%;display:flex;align-items:center;justify-content:center;gap:18px;padding:14px 20px;color:#fff;pointer-events:none;transform:translate(-110%);opacity:0;background:#444;box-shadow:0 10px 30px #0000004d}#banner.red{background:linear-gradient(90deg,#a8261f00,#ec4a3ff5 18%,#ec4a3ff5 82%,#a8261f00)}#banner.blue{background:linear-gradient(90deg,#1d4cb300,#3a80f2f5 18%,#3a80f2f5 82%,#1d4cb300)}#banner.show{animation:sweep 1.7s cubic-bezier(.2,.8,.2,1) forwards}#banner .b-face{width:84px;height:84px;border-radius:50%;background:#fffffff2;box-shadow:0 4px 14px #0000004d;flex:none}#banner .b-main{font:800 30px/1.05 var(--head);text-shadow:0 2px 0 rgba(0,0,0,.25)}#banner .b-co{font:700 14px var(--ui);opacity:.9;margin-top:2px}#banner .b-sub{display:inline-block;font:800 15px var(--head);color:#5a3c00;background:var(--gold);border-radius:999px;padding:1px 10px;margin-top:6px}#toast{position:fixed;z-index:30;left:50%;transform:translate(-50%,12px);bottom:calc(var(--toast-b, 16px) + var(--safe-b));background:#141a2eeb;color:#fff;padding:11px 18px;border-radius:999px;font:800 15px var(--head);box-shadow:var(--shadow);opacity:0;pointer-events:none;transition:opacity .2s,transform .25s cubic-bezier(.2,.9,.3,1.3);max-width:92vw;text-align:center}#toast.show{opacity:1;transform:translate(-50%)}@media(max-width:600px){#toast{font-size:14px;padding:9px 14px}}.conn{position:fixed;z-index:30;right:12px;top:calc(68px + var(--safe-t));background:#ff7b6e;color:#fff;border-radius:999px;padding:6px 12px;font:800 13px var(--head);box-shadow:var(--shadow);animation:pulse 1.2s ease-in-out infinite}#lobby,#overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:40;display:grid;place-items:center;padding:16px;overflow:auto;touch-action:pan-y;grid-template-columns:minmax(0,460px);justify-content:center}#lobby{background:radial-gradient(1200px 600px at 20% 0%,rgba(255,255,255,.35),transparent 60%),radial-gradient(900px 500px at 100% 100%,rgba(80,200,120,.35),transparent 60%),linear-gradient(160deg,#4fa8ff,#2a6fe0 55%,#1d4cb3)}#overlay{background:#0a12288c;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.lobby-card{width:100%;min-width:0;padding:24px 22px 20px;display:flex;flex-direction:column;gap:14px;-webkit-user-select:text;user-select:text;animation:rise .4s cubic-bezier(.2,.9,.3,1.15)}.logo{margin:0;text-align:center;font:800 clamp(34px,10vw,48px)/1 var(--head);letter-spacing:-.01em}.logo .r{color:var(--red);text-shadow:0 3px 0 var(--red-d)}.logo .b{color:var(--blue);text-shadow:0 3px 0 var(--blue-d)}.tag{margin:-6px 0 0;text-align:center;font-weight:700;color:#5a6378;font-size:15px}.stripe{display:flex;flex-direction:column;gap:0;align-items:center;padding:6px 0;border-radius:16px;background:linear-gradient(#a9e37e,#6fc04c);box-shadow:inset 0 2px 6px #00000026}.stripe .units{display:flex;gap:2px;flex-wrap:wrap;justify-content:center}.stripe img{width:clamp(38px,11vw,50px);height:clamp(38px,11vw,50px);filter:drop-shadow(0 3px 2px rgba(0,0,0,.25))}.stripe .units.blue img{transform:scaleX(-1)}.join{display:flex;gap:10px}.join input{flex:1;width:0;min-width:0;font:800 24px var(--head);text-transform:uppercase;letter-spacing:.3em;text-align:center;border:0;border-radius:14px;padding:10px;background:#fff;color:var(--ink);box-shadow:inset 0 0 0 2px #d6dce8,inset 0 3px 6px #0000000f;user-select:text;-webkit-user-select:text}.join input:focus{outline:none;box-shadow:inset 0 0 0 3px var(--gold)}#lobby h2{font:800 13px var(--head);text-transform:uppercase;letter-spacing:.08em;color:#6a7389;margin:4px 0 2px}#sessions{display:flex;flex-direction:column;gap:8px}.session{display:flex;align-items:center;gap:10px;width:100%;padding:12px 14px;cursor:pointer;border:0;border-radius:14px;background:#fff;font:700 15px var(--ui);color:var(--ink);box-shadow:0 2px #d5dbe7,0 4px 10px #00000014}.session .code{font:800 18px var(--head);letter-spacing:.12em}.session.red .code{color:var(--red-d)}.session.blue .code{color:var(--blue-d)}.session .go{margin-left:auto;font:800 15px var(--head);color:var(--blue-d)}.howto{font-size:14px;line-height:1.5;color:#3d4559}.howto summary{cursor:pointer;font:800 15px var(--head);color:var(--ink)}.howto ul{padding-left:18px;margin:8px 0 0}.versus{display:flex;align-items:center;justify-content:center;gap:12px}.versus .co{display:flex;flex-direction:column;align-items:center;gap:4px;font:800 15px var(--head)}.versus .co img{width:96px;height:96px;border-radius:50%;box-shadow:0 0 0 4px #fff,0 8px 18px #00000038}.versus .co.red img{background:radial-gradient(circle at 50% 35%,#fff1ec,#ffb6a4)}.versus .co.blue img{background:radial-gradient(circle at 50% 35%,#f0f5ff,#a9c8ff);transform:scaleX(-1)}.versus .co.red span{color:var(--red-d)}.versus .co.blue span{color:var(--blue-d)}.versus .vs{font:800 30px var(--head);color:var(--gold);text-shadow:0 3px 0 var(--gold-d);transform:rotate(-8deg)}.go-card{padding:26px 22px;text-align:center;width:min(380px,92vw);animation:rise .4s cubic-bezier(.2,.9,.3,1.2)}.go-face{width:128px;height:128px;border-radius:50%;background:#fff;box-shadow:0 0 0 5px #fff,0 10px 24px #00000040}#overlay[data-result=win] .go-face{background:radial-gradient(circle,#fff7d0,#ffcf3a)}.go-card h2{margin:14px 0 4px;font:800 38px/1 var(--head)}#overlay[data-result=win] h2{color:var(--gold-d)}#overlay[data-result=lose] h2{color:#6a7389}.go-quote{font:700 15px/1.4 var(--ui);font-style:italic;color:#5a6378;margin:6px 0 0}#go-sub{color:#3d4559;font-weight:700}.go-btns{display:flex;gap:10px;justify-content:center;margin-top:16px}@keyframes pop-in{0%{opacity:0;transform:translateY(6px) scale(.96)}to{opacity:1;transform:none}}@keyframes sheet-up{0%{opacity:0;transform:translateY(24px)}to{opacity:1;transform:none}}@keyframes rise{0%{opacity:0;transform:translateY(24px) scale(.97)}to{opacity:1;transform:none}}@keyframes pulse{50%{opacity:.45}}@keyframes sweep{0%{transform:translate(-110%);opacity:0}18%{transform:translate(0);opacity:1}78%{transform:translate(0);opacity:1}to{transform:translate(110%);opacity:0}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;transition-duration:.01ms!important}}#lobby.custom-bg{background-size:cover;background-position:center}.co-face,.go-face,#banner .b-face,.versus .co img{object-fit:cover;object-position:50% 15%}body.custom-blue .versus .co.blue img{transform:none}.go-clip{display:block;width:min(240px,60vw);aspect-ratio:1;margin:-6px auto 0;object-fit:cover;border-radius:22px;background:#fff7ea;box-shadow:0 0 0 5px #fff,0 12px 28px #00000047}#lobby .lobby-bg,#lobby .lobby-tint{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;z-index:-1;pointer-events:none}#lobby .lobby-bg{object-fit:cover}#lobby .lobby-tint{background:linear-gradient(#14285a40,#14285a73)}#lobby{isolation:isolate}.start-btns{display:grid;grid-template-columns:1fr 1fr;gap:10px}.start-btns .btn{width:100%}.btn.cpu{background:linear-gradient(#7fb0ff,var(--blue));color:#fff;box-shadow:0 3px 0 var(--blue-d),0 6px 14px #1d4cb34d}.btn.cpu:active:not(:disabled){box-shadow:0 1px 0 var(--blue-d)}@media(max-width:360px){.start-btns{grid-template-columns:1fr}}
