:root{--bg:#f4f6fa;--bg-elevated:#fff;--surface:#fff;--surface-2:#f0f3f8;--text:#0f172a;--muted:#5b6577;--line:#e1e6ee;--line-strong:#cbd3df;--own:#2563eb;--own-fill:#a9c3fb;--own-strong:#1e40af;--own-tint:#e8effe;--enemy:#ea580c;--enemy-fill:#fbc29d;--enemy-strong:#9a3412;--enemy-tint:#fdeee4;--ally:#0d9488;--ally-fill:#9fe3d8;--ally-strong:#115e59;--ally-tint:#e1f6f3;--enemy-alt:#dc2626;--enemy-alt-fill:#f6b0b0;--neutral-fill:#dcdfe5;--free-fill:#eef1f5;--sea-light:#d6e8f5;--sea-deep:#aecde6;--wave:#fff;--shallows:#e4f0f8;--sand:#eadfc2;--speck:#4a3a22;--edge-region:#1e293b6b;--edge-inner:#ffffffb3;--good:#15803d;--even:#b45309;--bad:#c62828;--primary:#2563eb;--primary-hover:#1d4ed8;--primary-text:#fff;--focus:#2563eb;--focus-ring:0 0 0 3px #2563eb59;--radius-sm:10px;--radius:14px;--radius-lg:20px;--shadow-sm:0 1px 2px #0f172a0f;--shadow:0 1px 2px #0f172a0f, 0 8px 24px -8px #0f172a29;--shadow-lg:0 2px 4px #0f172a0f, 0 24px 48px -12px #0f172a47;--ease:cubic-bezier(.2, .7, .2, 1);--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--bg:#0b1020;--bg-elevated:#121a2c;--surface:#141c2f;--surface-2:#1b2438;--text:#e8edf6;--muted:#97a3b8;--line:#253049;--line-strong:#34405c;--own:#6f9dff;--own-fill:#27447f;--own-strong:#a8c3ff;--own-tint:#172443;--enemy:#ff9257;--enemy-fill:#6e3518;--enemy-strong:#ffc09a;--enemy-tint:#2c1a12;--ally:#2dd4bf;--ally-fill:#14524b;--ally-strong:#99f6e4;--ally-tint:#0f2a28;--enemy-alt:#f87171;--enemy-alt-fill:#6b2323;--neutral-fill:#3a4252;--free-fill:#1f2738;--sea-light:#13223a;--sea-deep:#0a1426;--wave:#7aa2d6;--shallows:#1a2c47;--sand:#4a4330;--speck:#000;--edge-region:#000000b3;--edge-inner:#ffffff24;--good:#4ade80;--even:#fbbf24;--bad:#f87171;--primary:#3b74ff;--primary-hover:#5a8bff;--focus:#6f9dff;--focus-ring:0 0 0 3px #6f9dff66;--shadow-sm:0 1px 2px #0006;--shadow:0 1px 2px #0006, 0 10px 28px -10px #000000b3;--shadow-lg:0 2px 4px #0006, 0 28px 56px -12px #000c;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizelegibility;-webkit-tap-highlight-color:transparent;font-family:Inter,system-ui,-apple-system,Segoe UI,Roboto,Helvetica Neue,sans-serif;font-size:16px;line-height:1.5}h1,h2,h3{letter-spacing:-.02em;line-height:1.2}button,input{font:inherit}button,a.button{border-radius:var(--radius);border:1px solid var(--line-strong);background:var(--surface);min-height:46px;color:var(--text);cursor:pointer;box-shadow:var(--shadow-sm);transition:background-color .15s var(--ease), border-color .15s var(--ease), color .15s var(--ease), box-shadow .15s var(--ease), transform .1s var(--ease);justify-content:center;align-items:center;gap:8px;padding:0 18px;font-size:15px;font-weight:600;text-decoration:none;display:inline-flex}button:hover:not(:disabled),a.button:hover{border-color:var(--muted)}button:active:not(:disabled),a.button:active{transform:scale(.98)}button:disabled{opacity:.45;cursor:default;box-shadow:none}button.primary{background:var(--primary);color:var(--primary-text);border-color:#0000;box-shadow:inset 0 1px #ffffff2e,0 1px 2px #0f172a1f,0 6px 16px -6px #2563eb8c}button.primary:hover:not(:disabled){background:var(--primary-hover);border-color:#0000}button.secondary{background:var(--own-tint);color:var(--own-strong);box-shadow:none;border-color:#0000}button.secondary:hover:not(:disabled){border-color:var(--own)}button.danger{border-color:color-mix(in srgb, var(--bad) 45%, transparent);color:var(--bad);box-shadow:none;background:0 0}button.danger:hover:not(:disabled){background:color-mix(in srgb, var(--bad) 8%, transparent);border-color:var(--bad)}a.button.ghost,button.ghost{box-shadow:none;color:var(--own-strong);background:0 0;border-color:#0000}a.button.ghost:hover,button.ghost:hover:not(:disabled){background:var(--surface-2)}button.link,a.link{box-shadow:none;color:var(--own-strong);text-underline-offset:3px;text-align:center;background:0 0;border:none;justify-content:center;align-items:center;min-height:44px;padding:10px;font-weight:500;text-decoration:underline;text-decoration-thickness:1px;display:inline-flex}button.small{min-height:34px;padding:0 10px;font-size:14px}button.big{min-height:56px;font-size:17px}:focus-visible{box-shadow:var(--focus-ring);outline:none}input:not([type=checkbox]):not([type=range]){border-radius:var(--radius);border:1px solid var(--line-strong);background:var(--surface-2);min-width:0;min-height:46px;color:var(--text);transition:border-color .15s var(--ease), background-color .15s var(--ease), box-shadow .15s var(--ease);padding:0 14px}input:not([type=checkbox]):not([type=range]):focus{background:var(--surface);border-color:var(--focus);box-shadow:var(--focus-ring);outline:none}input[aria-invalid=true]{border-color:var(--bad)!important}.row{gap:10px;display:flex}.row>*{flex:1}.wide{width:100%}.muted{color:var(--muted)}.small{font-size:14px}.center{text-align:center}.field-error{color:var(--bad);margin:6px 0 0;font-size:14px}.centered{text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:16px;min-height:100%;padding:24px 16px;display:flex}.home,.rules{max-width:480px;padding:calc(20px + env(safe-area-inset-top)) 16px calc(32px + env(safe-area-inset-bottom));flex-direction:column;gap:16px;margin:0 auto;display:flex}.rules{gap:12px}.rules h1,.account h1{margin:8px 0 4px;font-size:28px}.rules p{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow-sm);margin:0;padding:14px 16px}.home-header{justify-content:space-between;align-items:center;gap:12px;display:flex}.brand{align-items:center;gap:12px;min-width:0;display:flex}.brand-mark{width:44px;height:44px;box-shadow:var(--shadow);border-radius:12px;flex-shrink:0}.brand h1{letter-spacing:-.03em;margin:0;font-size:28px;font-weight:800}.tagline{color:var(--muted);margin:-6px 0 4px;font-size:15px}.account-chip{text-overflow:ellipsis;white-space:nowrap;max-width:46%;color:var(--own-strong);background:var(--own-tint);transition:background-color .15s var(--ease);border-radius:999px;flex-shrink:0;padding:8px 14px;font-size:13px;font-weight:600;text-decoration:none;overflow:hidden}.account-chip:hover{background:color-mix(in srgb, var(--own-tint) 70%, var(--own) 12%)}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);padding:18px}.card-head h2{margin:0;font-size:17px;font-weight:700}.card-head p{color:var(--muted);margin:2px 0 0;font-size:14px}.card.play{background:radial-gradient(120% 140% at 100% 0%, var(--own-tint) 0%, transparent 60%), var(--surface)}.nickname label{color:var(--muted);text-transform:uppercase;letter-spacing:.04em;margin-bottom:8px;font-size:13px;font-weight:600;display:block}.nickname .row>button{flex:none}.actions{flex-direction:column;gap:14px;display:flex}.actions h2{margin:0;font-size:17px}.waiting h2{margin:0;font-size:24px}.waiting .share-link{word-break:break-all;background:var(--surface);border:1px dashed var(--line-strong);border-radius:var(--radius);max-width:420px;padding:14px;font-family:ui-monospace,SF Mono,Menlo,monospace;font-size:14px;display:block}.sign-in{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);flex-direction:column;gap:6px;padding:18px;display:flex}.sign-in h2{margin:8px 0 4px;font-size:20px}.sign-in label{margin:10px 0 0}.sign-in p{margin:0}.sign-in .primary{margin-top:12px}.account-name{color:var(--own-strong);background:var(--own-tint);border-radius:999px;align-self:flex-start;margin:-4px 0 0;padding:6px 14px;font-size:15px;font-weight:600}.account .actions p,.end-panel p{margin:0}.stat-tiles{grid-template-columns:repeat(4,1fr);gap:8px;display:grid}.stat-tile{background:var(--surface-2);border-radius:var(--radius);flex-direction:column;align-items:center;gap:2px;padding:12px 4px 10px;display:flex}.stat-tile strong{font-variant-numeric:tabular-nums;font-size:24px;font-weight:800;line-height:1.1}.stat-tile span{color:var(--muted);text-transform:uppercase;letter-spacing:.04em;font-size:12px;font-weight:600}.stat-tile.wins strong{color:var(--good)}.stat-tile.losses strong{color:var(--bad)}.account .actions{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);padding:18px}.plain-list{margin:0;padding:0;list-style:none}.plain-list li{border-bottom:1px solid var(--line);flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:2px 12px;padding:12px 0;display:flex}.plain-list li:last-child{border-bottom:none;padding-bottom:0}.plain-list li>.small{flex-basis:100%}.outcome{border-radius:999px;padding:2px 10px;font-size:13px;font-weight:700}.outcome.win{color:var(--good);background:color-mix(in srgb, var(--good) 12%, transparent)}.outcome.loss{color:var(--bad);background:color-mix(in srgb, var(--bad) 12%, transparent)}.outcome.draw{color:var(--muted);background:var(--surface-2)}.map-picker{border:none;flex-direction:column;gap:8px;margin:0;padding:0;display:flex}.map-picker legend{float:left;width:100%;color:var(--muted);text-transform:uppercase;letter-spacing:.04em;padding:0 0 8px;font-size:13px;font-weight:600}.map-picker p{margin:0}.map-options{grid-template-columns:repeat(3,1fr);gap:8px;display:grid}.map-option{border:1px solid var(--line);border-radius:var(--radius);background:var(--surface-2);cursor:pointer;transition:border-color .15s var(--ease), box-shadow .15s var(--ease);flex-direction:column;align-items:center;gap:6px;padding:8px 6px;display:flex;position:relative}.map-option input{opacity:0;pointer-events:none;position:absolute}.map-option.selected{border-color:var(--own);background:var(--surface);box-shadow:0 0 0 2px color-mix(in srgb, var(--own) 35%, transparent)}.map-option:has(input:focus-visible){box-shadow:var(--focus-ring)}.map-thumb{aspect-ratio:3/5;background:color-mix(in srgb, var(--own) 18%, var(--bg));border-radius:6px;width:100%;max-width:64px}.map-thumb path{stroke:var(--surface);stroke-width:4px;stroke-linejoin:round}.map-thumb .own{fill:var(--own-fill)}.map-thumb .enemy{fill:var(--enemy-fill)}.map-thumb .neutral{fill:var(--neutral-fill)}.map-thumb .neutral.key{fill:color-mix(in srgb, #7c3aed 35%, var(--neutral-fill))}.map-name{font-size:13px;font-weight:600}.card.invites{border-color:color-mix(in srgb, var(--own) 45%, var(--line));box-shadow:0 0 0 3px color-mix(in srgb, var(--own) 12%, transparent), var(--shadow);animation:rise .25s var(--ease)}.invite{flex-direction:column;align-items:stretch!important;gap:10px!important}.invite-from{font-weight:600}.invite-form{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);padding:18px;gap:8px!important}.invite-form .row>button{flex:none}.invite-form p{margin:0}.opponent-meta{align-items:center;gap:10px;display:inline-flex}.game{-webkit-user-select:none;user-select:none;grid-template:"top""banner""board"minmax(0,1fr)"panel""bottom"/minmax(0,1fr);max-width:560px;height:100%;margin:0 auto;display:grid}.top-bar{padding:calc(8px + env(safe-area-inset-top)) 12px 8px;background:var(--surface);border-bottom:1px solid var(--line);z-index:3;flex-wrap:nowrap;grid-area:top;align-items:center;gap:6px 10px;font-size:14px;display:flex;position:relative}.top-bar .stage{letter-spacing:-.01em;white-space:nowrap;text-overflow:ellipsis;flex-shrink:1;min-width:0;font-weight:700;overflow:hidden}.top-bar .score,.top-bar .timers,.top-bar .menu-button{flex-shrink:0}.menu-button{border-radius:12px;min-width:38px;min-height:38px;padding:0;font-size:18px;line-height:1}.score{gap:6px;min-width:0;margin-left:auto;display:flex}.own-chip,.enemy-chip{font-variant-numeric:tabular-nums;white-space:nowrap;text-overflow:ellipsis;border-radius:999px;max-width:120px;padding:3px 10px;font-size:13px;font-weight:700;overflow:hidden}.own-chip{background:var(--own);color:#fff}.enemy-chip{background:var(--enemy);color:#fff}@media (prefers-color-scheme:dark){:root:not([data-theme=light]) .own-chip,:root:not([data-theme=light]) .enemy-chip{color:#0b1020}}.timers{align-items:baseline;gap:8px;display:flex}.countdown{font-variant-numeric:tabular-nums;background:var(--surface-2);border-radius:8px;padding:2px 8px;font-size:15px;font-weight:700}.countdown.urgent{color:#fff;background:var(--bad)}.bank{color:var(--muted);white-space:nowrap;font-size:12px}@media (max-width:420px){.bank{display:none}.top-bar{gap:6px;padding-left:10px;padding-right:8px}.score{gap:4px}.own-chip,.enemy-chip{max-width:96px;padding:2px 8px;font-size:12px}.countdown{padding:2px 6px;font-size:14px}.menu-button{min-width:34px;min-height:34px}}.banner{background:var(--surface-2);border-bottom:1px solid var(--line);grid-area:banner;padding:8px 12px;font-size:14px}.banner.warn{background:var(--bad);color:#fff;border-bottom:none}.board{contain:layout paint;grid-area:board;min-width:0;min-height:0;display:flex;position:relative;overflow:hidden}.side-panel{grid-area:panel;padding:0 12px}.bottom-bar{padding:10px 12px calc(10px + env(safe-area-inset-bottom));background:var(--surface);border-top:1px solid var(--line);flex-direction:column;grid-area:bottom;gap:8px;display:flex}.bottom-bar .status{color:var(--muted);flex-wrap:wrap;gap:4px 12px;font-size:13px;display:flex}.bottom-bar .buttons{gap:8px;display:flex}.bottom-bar .buttons>:last-child{flex:1}.your-turn{color:var(--own-strong);font-weight:700}.opp-ready{color:var(--good);font-weight:600}.hint{color:var(--muted);margin:6px 0;font-size:13px}.desktop-only{display:none}@media (min-width:900px){.game{grid-template:"top top""banner banner""board panel"1fr"board bottom"/minmax(0,1fr) 360px;max-width:1200px}.side-panel{border-left:1px solid var(--line);background:var(--bg-elevated);padding:16px;overflow-y:auto}.bottom-bar{border-left:1px solid var(--line)}.desktop-only{display:block}}.settings{border:1px solid var(--line);border-radius:var(--radius-lg);background:var(--surface);box-shadow:var(--shadow-sm);flex-direction:column;margin:0;padding:6px 18px 10px;display:flex}.settings legend{float:left;width:100%;color:var(--muted);text-transform:uppercase;letter-spacing:.04em;padding:10px 0 4px;font-size:13px;font-weight:600}.switch{cursor:pointer;border-top:1px solid var(--line);justify-content:space-between;align-items:center;gap:10px;min-height:48px;font-weight:500;display:flex}.settings legend+.switch{border-top:none}.switch input{appearance:none;background:var(--line-strong);cursor:pointer;width:46px;height:28px;transition:background-color .2s var(--ease);border-radius:999px;flex-shrink:0;order:2;margin:0;position:relative}.switch input:after{content:"";width:22px;height:22px;transition:transform .2s var(--ease);background:#fff;border-radius:50%;position:absolute;top:3px;left:3px;box-shadow:0 1px 3px #0000004d}.switch input:checked{background:var(--primary)}.switch input:checked:after{transform:translate(18px)}.banner.offline{border-radius:var(--radius);border:1px solid var(--line);margin:0}.dialog.menu{flex-direction:column;gap:10px;display:flex}.dialog.menu .settings{box-shadow:none;background:var(--surface-2);border-color:#0000}.coach{z-index:2;background:var(--surface);border:1px solid color-mix(in srgb, var(--own) 40%, var(--line));border-left:4px solid var(--own);border-radius:var(--radius);max-width:520px;box-shadow:var(--shadow-lg);animation:rise .25s var(--ease);margin:0 auto;padding:12px 14px;font-size:14px;position:absolute;top:10px;left:10px;right:10px}.coach p{margin:0}.coach-actions{justify-content:flex-end;margin-top:6px;display:flex}.coach-actions .primary{min-height:36px}.map{touch-action:none;width:100%;height:100%;display:block}.sea-light{stop-color:var(--sea-light)}.sea-deep{stop-color:var(--sea-deep)}.map .waves{pointer-events:none}.wave{fill:none;stroke:var(--wave);stroke-width:1.3px;stroke-linecap:round;opacity:.5}.map .shallows,.map .sand{fill:none;stroke-linecap:round;stroke-linejoin:round;pointer-events:none}.map .shallows{stroke:var(--shallows);stroke-width:20px}.map .sand{stroke:var(--sand);stroke-width:8px}.territory .fill{stroke:none;transition:fill .4s var(--ease)}.territory .rim{fill:none;stroke:var(--muted);stroke-width:7px;opacity:.22;pointer-events:none;transition:stroke .4s var(--ease)}.territory.own .rim{stroke:var(--own-strong)}.territory.enemy .rim{stroke:var(--enemy-strong)}.territory.ally .rim{stroke:var(--ally-strong)}.map .grain{pointer-events:none}.speck{fill:var(--speck);opacity:.09}.map .edge{fill:none;stroke-linecap:round;stroke-linejoin:round;pointer-events:none}.edge.inner{stroke:var(--edge-inner);stroke-width:1.6px}.edge.region{stroke:var(--edge-region);stroke-width:2px}.territory.own .fill{fill:var(--own-fill)}.territory.enemy .fill{fill:var(--enemy-fill)}.territory.neutral .fill{fill:var(--neutral-fill)}.territory.free .fill{fill:var(--free-fill)}.territory .pattern{pointer-events:none}.hatch-line{stroke:var(--enemy);stroke-width:1.5px;opacity:.4}.dot{fill:var(--muted);opacity:.45}.map .border{fill:none;stroke:none;stroke-linejoin:round;pointer-events:none}.interactive .territory,.interactive .badge{cursor:pointer}.map .border.highlight{stroke:var(--own);stroke-width:4px;stroke-dasharray:8 5;animation:1s linear infinite march}.map .border.reachable{stroke:var(--own);stroke-width:5px}.territory.dim{opacity:.4}.map .border.focus{stroke:var(--text);stroke-width:4px}.territory.flash .fill{animation:.6s ease-out 2 flash}@keyframes march{to{stroke-dashoffset:-26px}}@keyframes flash{50%{fill:#fff}}@keyframes rise{0%{opacity:0;transform:translateY(6px)}}.badge-circle{fill:var(--surface);stroke-width:3px;stroke:var(--muted)}.badge.own .badge-circle{stroke:var(--own)}.badge.enemy .badge-circle{stroke:var(--enemy);stroke-dasharray:5 3}.badge-text{fill:var(--text);font-variant-numeric:tabular-nums;text-anchor:middle;pointer-events:none;font-size:17px;font-weight:800}.icon{stroke:var(--surface);stroke-width:1.5px;stroke-linejoin:round}.icon .door{fill:var(--surface);stroke:none}.icon.capital{fill:#d97706}.icon.keypoint{fill:#7c3aed}.plus{fill:var(--own)}.plus-text{fill:#fff;text-anchor:middle;pointer-events:none;font-size:12px;font-weight:700}.remove circle{fill:var(--surface);stroke:var(--bad);stroke-width:2px}.remove text{fill:var(--bad);text-anchor:middle;pointer-events:none;font-size:16px;font-weight:800}.arrow .hit{stroke:#0000;stroke-width:22px}.arrow .shaft{stroke-width:5px;stroke-linecap:round;pointer-events:none}.arrow.own .shaft{stroke:var(--own)}.arrow.enemy .shaft{stroke:var(--enemy);stroke-dasharray:10 5}.arrow.selected .shaft{stroke-width:8px}.arrow.lost{opacity:.3}.head.own{fill:var(--own)}.head.enemy{fill:var(--enemy)}.drag-line{stroke:var(--own);stroke-width:4px;stroke-dasharray:6 4;pointer-events:none}.pill{fill:var(--surface);stroke:var(--line)}.arrow.own .pill{stroke:var(--own)}.arrow.enemy .pill{stroke:var(--enemy)}.pill-text,.odds-text{text-anchor:middle;fill:var(--text);pointer-events:none;font-size:12px;font-weight:800}.odds.good{fill:var(--good)}.odds.even{fill:var(--even)}.odds.bad{fill:var(--bad)}.odds-text{fill:#fff}.arrow-editor{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-lg);box-shadow:var(--shadow);margin:8px 0;padding:10px 14px}@media (max-width:899px){.arrow-editor .route,.arrow-editor .hint{font-size:12px}.arrow-editor-body{flex-wrap:nowrap;margin-top:2px}.arrow-editor-body .danger{min-height:36px;padding:0 12px}}.arrow-editor-head{align-items:center;gap:8px;font-size:14px;display:flex}.arrow-editor-head .route{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.icon-button{border-radius:10px;min-width:32px;min-height:32px;padding:0}.arrow-editor-body{flex-wrap:wrap;align-items:center;gap:10px;margin-top:8px;display:flex}.arrow-editor input[type=range]{min-width:80px;accent-color:var(--own);flex:1;height:32px}.arrow-editor .count{font-variant-numeric:tabular-nums;text-align:center;min-width:2ch;font-size:20px;font-weight:800}.odds-chip{color:#fff;white-space:nowrap;border-radius:999px;padding:3px 10px;font-size:13px;font-weight:700}.odds-chip.good{background:var(--good)}.odds-chip.even{background:var(--even)}.odds-chip.bad{background:var(--bad)}.end-panel{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);animation:rise .3s var(--ease);flex-direction:column;gap:8px;margin:10px 0;padding:18px 18px 10px;display:flex}.end-panel h2{letter-spacing:-.03em;margin:0;font-size:30px;font-weight:800}.end-panel.won h2{color:var(--own-strong)}.end-panel.lost h2{color:var(--enemy-strong)}.end-panel h3{color:var(--muted);text-transform:uppercase;letter-spacing:.04em;margin:8px 0 0;font-size:13px;font-weight:600}.end-panel .reason{color:var(--muted);margin:0}.end-panel .final-score{font-variant-numeric:tabular-nums;margin:0;font-size:20px;font-weight:700}.moments{margin:0;padding-left:20px}.offer{color:var(--good);font-weight:700}.reveal{width:100%;height:100%;display:flex;position:relative}.reveal-overlay{pointer-events:none;flex-direction:column;align-items:center;gap:6px;display:flex;position:absolute;inset:10px 10px auto}.fight-banner{background:var(--surface);border:1px solid var(--line);box-shadow:var(--shadow);border-radius:999px;gap:10px;padding:5px 16px;font-size:14px;display:flex}.fight-banner strong{font-variant-numeric:tabular-nums}.dice-tray{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);flex-direction:column;gap:4px;padding:8px 12px;display:flex}.dice-row{justify-content:center;gap:4px;display:flex}.die{width:30px;height:30px}.die rect{stroke-width:6px}.die.own rect{fill:var(--own);stroke:var(--own-strong)}.die.enemy rect{fill:var(--enemy);stroke:var(--enemy-strong)}.die.neutral rect{fill:var(--neutral-fill);stroke:var(--muted)}.die circle{fill:#fff}.die.lost{opacity:.35}.conquest-toast{background:var(--text);color:var(--bg);box-shadow:var(--shadow);animation:rise .25s var(--ease);border-radius:999px;padding:5px 16px;font-weight:700}.reveal-controls{gap:8px;display:flex;position:absolute;bottom:10px;right:10px}.reveal-controls button{background:var(--surface)}.toggle.on{color:var(--bg);background:var(--text)!important}.toast{background:var(--text);color:var(--bg);box-shadow:var(--shadow-lg);text-align:center;border-radius:999px;max-width:calc(100% - 32px);padding:10px 18px;font-size:14px;font-weight:500;position:fixed;bottom:140px;left:50%;transform:translate(-50%)}.dialog-backdrop{z-index:10;animation:fade .15s var(--ease);background:#080c188c;justify-content:center;align-items:center;padding:16px;display:flex;position:fixed;inset:0}.dialog{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-lg);overscroll-behavior:contain;width:min(380px,100%);max-height:100%;box-shadow:var(--shadow-lg);animation:rise .2s var(--ease);padding:18px;overflow-y:auto}@keyframes fade{0%{opacity:0}}.reserve{border:1px solid color-mix(in srgb, var(--own) 40%, var(--line));background:var(--own-tint);color:var(--own-strong);touch-action:none;cursor:grab;border-radius:999px;align-items:center;gap:8px;min-height:40px;padding:4px 12px 4px 4px;font-weight:700;display:inline-flex}.reserve.dragging{opacity:.6}.reserve-token,.reserve-ghost{background:var(--own);color:#fff;font-variant-numeric:tabular-nums;width:32px;height:32px;box-shadow:0 2px 0 var(--own-strong);border-radius:50%;place-items:center;font-weight:800;display:inline-grid}.reserve-ghost{z-index:50;pointer-events:none;width:44px;height:44px;box-shadow:var(--shadow-lg);font-size:1.1rem;position:fixed;transform:translate(-50%,-70%)}.board-button{cursor:pointer}.board-button .target{fill:#0000;stroke:none}.board-button circle:not(.target),.board-button rect:not(.target){fill:var(--surface);stroke:var(--own);stroke-width:2px;filter:drop-shadow(0 1px 1px #00000040)}.board-button text{fill:var(--own-strong);text-anchor:middle;pointer-events:none;font-size:17px;font-weight:800}.board-button.all rect:not(.target){fill:var(--own);stroke:var(--own-strong)}.board-button.all text{fill:#fff;font-size:13px}.board-button.delete circle:not(.target){stroke:var(--bad)}.board-button.delete text{fill:var(--bad);font-size:15px}.board-button.disabled{opacity:.35;cursor:default}.bottom-bar .halved{color:var(--bad);font-weight:700}.bottom-bar .conquer-hint{color:var(--even);flex-basis:100%;font-size:.85rem}.bottom-bar button:disabled{opacity:.5}.map.motion .arrow{transform-box:view-box;animation:arrow-out .45s var(--ease) both}@keyframes arrow-out{0%{opacity:0;transform:scale(.15)}}.arrow .flow{stroke:#fff;stroke-width:2.4px;stroke-linecap:round;stroke-dasharray:.1 11;opacity:.85;pointer-events:none;animation:.7s linear infinite flow}@keyframes flow{to{stroke-dashoffset:-11.1px}}.map .impact{fill:none;stroke:var(--text);stroke-width:3px;pointer-events:none;transform-box:fill-box;transform-origin:50%;animation:.42s ease-out forwards impact}@keyframes impact{0%{opacity:.75;transform:scale(.5)}to{opacity:0;transform:scale(1.6)}}.map .floater{text-anchor:middle;paint-order:stroke;stroke:var(--surface);stroke-width:4px;stroke-linejoin:round;pointer-events:none;font-size:16px;font-weight:800;animation:1.1s ease-out forwards float-up}.floater.down{fill:var(--bad)}.floater.up{fill:var(--good)}@keyframes float-up{0%{opacity:0;transform:translateY(4px)}15%{opacity:1}70%{opacity:1}to{opacity:0;transform:translateY(-22px)}}.territory .wave{pointer-events:none;transform-box:fill-box;transform-origin:50%;animation:wave .75s var(--ease) forwards}.wave.own{fill:var(--own)}.wave.enemy{fill:var(--enemy)}.wave.enemy.alt{fill:var(--enemy-alt)}.wave.ally{fill:var(--ally)}.wave.neutral{fill:var(--muted)}@keyframes wave{0%{opacity:.75;transform:scale(0)}60%{opacity:.55}to{opacity:0;transform:scale(1)}}.badge.falling .icon.capital{transform-box:fill-box;transform-origin:50% 100%;animation:1.2s ease-in forwards crumble}@keyframes crumble{0%{transform:none}20%{transform:translate(-2px)rotate(-6deg)}35%{transform:translate(2px)rotate(5deg)}to{opacity:0;transform:translateY(16px)rotate(28deg)scaleY(.4)}}.map.quake{animation:.5s ease-in-out quake}@keyframes quake{20%,60%{transform:translate(-5px)}40%,80%{transform:translate(5px)}}.conquest-toast.capital{color:#fff;animation:rise .25s var(--ease), pop .6s var(--ease) .25s;background:#d97706;font-size:1.05rem}@keyframes pop{40%{transform:scale(1.12)}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}.territory.ally .fill{fill:var(--ally-fill)}.territory.enemy.alt .fill{fill:var(--enemy-alt-fill)}.territory.enemy.alt .hatch-line,.territory.enemy.alt .pattern{opacity:.8}.badge.ally .badge-circle{stroke:var(--ally)}.badge.enemy.alt .badge-circle{stroke:var(--enemy-alt)}.arrow.ally .shaft,.arrow.ally .pill{stroke:var(--ally)}.head.ally{fill:var(--ally)}.arrow.planned{opacity:.75;pointer-events:none}.arrow.planned .shaft{stroke-dasharray:2 7}.signal circle{fill:var(--ally);stroke:var(--surface);stroke-width:2px}.signal.attack circle{fill:var(--enemy)}.signal text{fill:#fff;text-anchor:middle;pointer-events:none;font-size:13px;font-weight:800}.signal{animation:signal-pulse 1.2s var(--ease) 3}@keyframes signal-pulse{50%{transform:scale(1.25)}}@media (prefers-reduced-motion:reduce){.signal{animation:none}}.ally-chip{background:var(--ally);color:#fff}.team-score{gap:6px;min-width:0;margin-left:auto;display:flex}.team-score .own-chip,.team-score .enemy-chip{max-width:none}.ready-dots{align-items:center;gap:4px;display:inline-flex}.ready-dot{background:var(--line-strong);border-radius:50%;width:10px;height:10px}.ready-dot.own,.ready-dot.ally{background:color-mix(in srgb, var(--ally) 30%, var(--line-strong))}.ready-dot.on.own{background:var(--own)}.ready-dot.on.ally{background:var(--ally)}.ready-dot.on.enemy{background:var(--enemy)}.signal-bar{flex-wrap:wrap;gap:6px;display:flex}.signal-bar button.on,.signal-bar button.on:hover{background:var(--ally-strong);border-color:var(--ally-strong);color:#fff}@media (prefers-color-scheme:dark){:root:not([data-theme=light]) .signal-bar button.on{background:var(--ally);border-color:var(--ally);color:#0b1020}}.lobby{gap:16px}.lobby-teams{grid-template-columns:1fr 1fr;gap:12px;width:100%;max-width:520px;display:grid}.lobby-team{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-lg);flex-direction:column;gap:8px;padding:14px;display:flex}.lobby-team h2{text-transform:uppercase;letter-spacing:.04em;color:var(--muted);margin:0;font-size:14px}.lobby-team.yours{border-color:color-mix(in srgb, var(--ally) 50%, var(--line))}.lobby-seat{border-radius:var(--radius);background:var(--surface-2);justify-content:space-between;align-items:center;gap:8px;min-height:40px;padding:6px 10px;font-weight:600;display:flex}.lobby-seat.free{color:var(--muted);border:1px dashed var(--line-strong);background:0 0;font-weight:500}.lobby-seat.you{outline:2px solid var(--own)}@media (max-width:420px){.lobby-teams{grid-template-columns:1fr}}.team-picker{border:none;flex-wrap:wrap;gap:8px;margin:0;padding:0;display:flex}.team-picker label{border:1px solid var(--line);border-radius:var(--radius);cursor:pointer;flex-direction:column;flex:140px;gap:2px;padding:10px 12px;display:flex}.team-picker label.selected{border-color:var(--own);box-shadow:0 0 0 2px color-mix(in srgb, var(--own) 35%, transparent)}.team-picker input{opacity:0;pointer-events:none;position:absolute}.team-picker strong{font-size:15px}.team-picker span{color:var(--muted);font-size:13px}.card.team{background:radial-gradient(120% 140% at 0% 0%, var(--ally-tint) 0%, transparent 60%), var(--surface)}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.header-actions{align-items:center;gap:8px;min-width:0;display:flex}.header-actions .account-chip{max-width:160px}.icon-button{border-radius:50%;width:40px;height:40px;padding:0;font-size:18px;line-height:1}.name-row{color:var(--muted);flex-wrap:wrap;align-items:baseline;gap:6px;margin:0;display:flex}.name-row strong{color:var(--text)}.card.play{flex-direction:column;gap:16px;display:flex}.pills{border:none;min-width:0;margin:0;padding:0}.pills legend,.map-picker legend{color:var(--muted);text-transform:uppercase;letter-spacing:.04em;padding:0 0 8px;font-size:13px;font-weight:600}.pill-row{flex-wrap:wrap;gap:8px;display:flex}.pill-row label{border:1px solid var(--line-strong);text-align:center;cursor:pointer;background:var(--surface);min-width:0;min-height:44px;transition:background-color .15s var(--ease), border-color .15s var(--ease);border-radius:999px;flex:auto;justify-content:center;align-items:center;padding:8px 10px;font-size:15px;font-weight:600;display:flex}.pill-row label.selected{background:var(--own-tint);border-color:var(--own);color:var(--own-strong)}.pill-row label:focus-within{box-shadow:var(--focus-ring)}.pill-row input{opacity:0;pointer-events:none;position:absolute}.pills.segmented .pill-row{background:var(--surface-2);border-radius:999px;gap:0;padding:4px}.pills.segmented .pill-row label{background:0 0;border:none}.pills.segmented .pill-row label.selected{background:var(--own);color:#fff;box-shadow:var(--shadow-sm)}@media (prefers-color-scheme:dark){:root:not([data-theme=light]) .pills.segmented .pill-row label.selected{color:#0b1020}}.pills.segmented legend{clip:rect(0, 0, 0, 0);width:1px;height:1px;position:absolute;overflow:hidden}.play-hint{margin:-6px 0 0}.play-button{letter-spacing:.02em;width:100%;font-size:18px;font-weight:800}.resume li{flex-wrap:nowrap;align-items:center}.resume li>span{flex:auto;min-width:0}.learn-row{color:var(--muted);justify-content:center;align-items:center;gap:8px;display:flex}.map-thumb .ally{fill:var(--ally-fill)}.campaign{flex-direction:column;gap:14px;max-width:560px;margin:0 auto;padding:20px 16px 40px;display:flex}.campaign h1{margin:0}.rank-line{color:var(--own-strong);margin:4px 0 0;font-weight:600}.chapter h2{margin:8px 0;font-size:16px}.chapter.locked{opacity:.6}.campaign-premise,.chapter-story{font-style:italic}.chapter-story{margin:0 0 8px;font-size:14px}.story-line{border-left:3px solid var(--own-strong);text-align:left;align-items:flex-start;gap:10px;margin:8px 0;padding:6px 12px;display:flex}.portrait{box-shadow:0 0 0 2px var(--surface), 0 0 0 3px var(--line-strong);border-radius:50%;flex:none}.story-line p{margin:0}.story-line .story-who{font-size:13px;font-weight:600}.missions{flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex}.mission{text-align:left;border-radius:var(--radius-lg);background:var(--surface);border:1px solid var(--line);align-items:center;gap:12px;width:100%;min-height:64px;padding:10px 14px;display:flex}.mission .map-thumb{flex:none;width:34px;height:46px}.mission .world-thumb{place-items:center;font-size:22px;display:grid}.mission-text{flex-direction:column;flex:auto;min-width:0;display:flex}.mission-id{color:var(--muted);text-transform:uppercase;letter-spacing:.04em;margin:0;font-size:12px;font-weight:700}.stars{white-space:nowrap;letter-spacing:1px;font-size:18px}.star{color:var(--line-strong)}.star.on{color:#f5b301}.end-panel .stars,.mission-sheet>.stars{font-size:30px}.mission-sheet{text-align:left;max-width:440px;padding-bottom:0}.sheet-actions{background:var(--surface);border-top:1px solid var(--line);flex-direction:column;gap:8px;margin:8px -18px 0;padding:10px 18px 18px;display:flex;position:sticky;bottom:0}.mission-sheet h2,.mission-sheet h3{margin:4px 0}.objectives{flex-direction:column;gap:6px;margin:0;padding:0;list-style:none;display:flex}.objectives li{align-items:baseline;gap:8px;display:flex}.objective-mark{text-align:center;color:#f5b301;width:1.2em;font-weight:800}.objectives li.met .objective-mark{color:var(--good)}.objectives li.missed{color:var(--muted)}.objectives li.missed .objective-mark{color:var(--bad)}.unlock{color:var(--good);font-weight:700}.menu-mission{text-align:left;flex-direction:column;gap:6px;display:flex}.menu-mission h2{margin:0;font-size:16px}.menu-mission h3{text-transform:uppercase;color:var(--muted);margin:6px 0 0;font-size:13px}.card.campaign-card{background:radial-gradient(120% 140% at 100% 0%, #f5b30124 0%, transparent 60%), var(--surface)}.pill-row label.locked{opacity:.55;cursor:not-allowed}:root{--p-rosso:#d6403f;--p-blu:#2f6fdf;--p-verde:#2e9a58;--p-giallo:#d9a514;--p-viola:#8b5cf6;--p-nero:#394150;--p-ink-giallo:#1f1a05}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--p-rosso:#f06a63;--p-blu:#6b9dff;--p-verde:#4cc27c;--p-giallo:#f2c63d;--p-viola:#a98bff;--p-nero:#9aa3b5}}:root[data-theme=dark]{--p-rosso:#f06a63;--p-blu:#6b9dff;--p-verde:#4cc27c;--p-giallo:#f2c63d;--p-viola:#a98bff;--p-nero:#9aa3b5}.player-rosso{--pc:var(--p-rosso)}.player-blu{--pc:var(--p-blu)}.player-verde{--pc:var(--p-verde)}.player-giallo{--pc:var(--p-giallo)}.player-viola{--pc:var(--p-viola)}.player-nero{--pc:var(--p-nero)}.conquest{flex-direction:column;max-width:1400px;height:100dvh;margin:0 auto;display:flex}.conquest-head{align-items:center;gap:10px;padding:8px 16px;display:flex}.conquest-title{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.turn-chip{color:var(--text);background:color-mix(in srgb, var(--pc) 22%, var(--surface));border:1px solid var(--pc);border-radius:999px;align-self:flex-start;padding:2px 8px;font-size:13px;font-weight:700}.conquest-players{grid-template-columns:repeat(var(--count,3), minmax(0, 1fr));gap:4px;margin:0;padding:0 16px 6px;list-style:none;display:grid}.conquest-players li{border:1px solid var(--line);background:var(--surface);border-radius:10px;flex-direction:column;align-items:center;min-width:0;padding:2px 4px;font-size:12px;line-height:1.3;display:flex}.conquest-players .name{text-overflow:ellipsis;white-space:nowrap;max-width:100%;font-weight:600;overflow:hidden}.conquest-players .counts{white-space:nowrap;font-size:11px}.conquest-players li.current{border-color:var(--pc);box-shadow:0 0 0 1px var(--pc)}.conquest-players li.out{opacity:.45;text-decoration:line-through}.conquest .dot,.conquest-end .dot{background:var(--pc);border-radius:50%;width:10px;height:10px;display:inline-block}.world-view{background:var(--sea-deep);flex:1;min-height:0;display:flex;position:relative}.world-scroll{overscroll-behavior:contain;scrollbar-width:none;flex:1;min-width:0;display:flex;overflow:auto}.world-scroll .map.world{touch-action:pan-x pan-y;flex:none;max-width:none;max-height:none;margin:auto;overflow:visible}.world-zoom{flex-direction:column;gap:6px;display:flex;position:absolute;bottom:10px;right:10px}.world-zoom .icon-button{background:var(--bg-elevated);width:36px;height:36px;font-size:20px;box-shadow:0 1px 4px #0000002e}.world-zoom .icon-button:disabled{opacity:.45}.world .territory .fill{fill:color-mix(in srgb, var(--pc,var(--muted)) 38%, var(--surface))}.world .territory.interactive,.world.interactive .territory,.world.interactive .badge{cursor:pointer}.world .sea-link,.world .sea-link line{stroke:var(--muted);stroke-width:2px;stroke-dasharray:2 6;stroke-linecap:round;opacity:.6}.world-badge .badge-circle{fill:var(--pc,var(--muted));stroke:var(--surface);stroke-width:2px}.world-badge .badge-text{fill:#fff;font-size:14px}.world-badge.player-giallo .badge-text{fill:var(--p-ink-giallo)}.world .border.source{stroke:var(--text);stroke-width:4px}.world .border.target{stroke:var(--bad);stroke-width:4px}.world .border.option{stroke:var(--text);stroke-width:2.5px;stroke-dasharray:6 5}.conquest-panel{padding:10px 16px calc(12px + env(safe-area-inset-bottom));border-top:1px solid var(--line);background:var(--bg-elevated);flex-direction:column;gap:8px;display:flex}.conquest-panel p{margin:0}.conquest-panel .row.wrap{flex-wrap:wrap;align-items:center}.conquest-panel .row.wrap>*{flex:none}.battle-line{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.dice-row{gap:3px;display:inline-flex}.die{font-variant-numeric:tabular-nums;color:#fff;background:var(--pc);border-radius:6px;place-items:center;width:24px;height:24px;font-weight:800;display:inline-grid}.player-giallo .die{color:var(--p-ink-giallo)}.dice-pick{min-width:40px}.dice-pick.selected{background:var(--text);color:var(--bg)}.stepper{align-items:center}.stepper>*{flex:none}.stepper-value{text-align:center;font-variant-numeric:tabular-nums;min-width:2.5ch;font-size:20px}.objective-text{font-size:18px;font-weight:700}.cards{grid-template-columns:repeat(auto-fill,minmax(96px,1fr));gap:8px;padding:0;list-style:none;display:grid}.card-item{border:1px solid var(--line-strong);background:var(--surface-2);border-radius:8px;flex-direction:column;gap:2px;padding:8px;display:flex}.conquest-end h2{margin:0}.conquest-end li{margin:4px 0}.conquest-lobby{flex-direction:column;gap:14px;max-width:520px;margin:0 auto;padding:24px 16px;display:flex}.conquest-lobby h1{margin:0}.lobby-seats{flex-direction:column;gap:6px;margin:0;padding:0;list-style:none;display:flex}.lobby-seats li{border:1px solid var(--line);background:var(--surface);border-radius:10px;align-items:center;gap:8px;padding:10px 12px;display:flex}.conquest-lobby .dot{background:var(--pc);border-radius:50%;width:12px;height:12px;display:inline-block}.turn-chip .countdown{font-variant-numeric:tabular-nums}.conquest-head .head-actions{gap:4px;display:flex}.conquest-head{gap:8px;padding-inline:12px}.conquest-head>.icon-button{flex:none;width:36px;height:36px}.conquest-title strong{font-size:15px}.conquest-head .head-actions button{flex-direction:column;align-items:center;min-width:44px;padding:3px 5px;display:flex}.conquest-title strong{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.turn-chip{white-space:nowrap}.battle-arrow line{stroke:var(--pc);stroke-width:5px;stroke-linecap:round}.battle-arrow polygon{fill:var(--pc);stroke:none}.battle-arrow{pointer-events:none;animation:battle-in .35s var(--ease)}@keyframes battle-in{0%{opacity:0}to{opacity:1}}@media (prefers-reduced-motion:reduce){.battle-arrow{animation:none}}.continents li{justify-content:space-between}.continents .holder{align-items:center;gap:4px;display:inline-flex}.world-notice{pointer-events:none;justify-content:center;display:flex;position:absolute;top:6px;left:10px;right:10px}.world-notice .conquest-toast{text-align:center;opacity:.94;max-width:100%;margin:0;padding:4px 12px;font-size:13px;font-weight:600}.world-extra{background:color-mix(in srgb, var(--bg-elevated) 92%, transparent);border-radius:12px;padding:6px 10px;position:absolute;bottom:10px;left:10px;right:60px;overflow:auto;box-shadow:0 1px 4px #0000002e}.continents.compact{grid-template-columns:repeat(2,minmax(0,1fr));column-gap:12px;display:grid}.continents.compact li{white-space:nowrap;border:none;flex-wrap:nowrap;gap:4px;padding:3px 0}.continents.compact li>.small{flex-basis:auto}.continents.compact li>span:first-child{text-overflow:ellipsis;overflow:hidden}.territory-label{text-anchor:middle;fill:var(--text);stroke:var(--surface);stroke-width:2.5px;paint-order:stroke;stroke-linejoin:round;pointer-events:none;font-weight:600}.battle-line .losses{font-weight:600}.conquest-head .head-actions .caption{font-size:9px;font-weight:600;line-height:1.1;display:block}.world-overlay{position:absolute;bottom:10px;left:10px}.world-overlay .icon-button{background:var(--bg-elevated);width:44px;height:44px;font-size:20px;box-shadow:0 1px 4px #0000002e}.chat-phrases{flex-wrap:wrap;gap:6px;margin-top:10px;display:flex}.chat-log li{padding:2px 0;display:block}.replay-controls{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.replay-controls input[type=range]{flex:100%;width:100%}.replay-controls .speed{margin-left:auto}.world-badge .bump{animation:badge-bump .35s var(--ease);transform-box:fill-box;transform-origin:50%}@keyframes badge-bump{40%{transform:scale(1.35)}}.world .taken-flash{fill:var(--pc);pointer-events:none;animation:.9s ease-out forwards taken-flash}@keyframes taken-flash{0%{opacity:.85}to{opacity:0}}.world .army-delta{text-anchor:middle;paint-order:stroke;stroke:var(--surface);stroke-width:3px;pointer-events:none;font-size:15px;font-weight:800;animation:1.1s ease-out forwards delta-rise}.world .army-delta.gain{fill:var(--good,#15803d)}.world .army-delta.loss{fill:var(--bad)}@keyframes delta-rise{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(-18px)}}.battle-line .die.roll{animation:die-roll .4s var(--ease) backwards}.battle-line .die.lost{opacity:.35;text-decoration:line-through}.battle-line .die.idle{opacity:.8}@keyframes die-roll{0%{opacity:0;transform:rotate(-200deg)scale(.4)}}.battle-line.conquered strong{animation:conquered-pop .5s var(--ease)}@keyframes conquered-pop{0%{opacity:0;transform:scale(.6)}}.confetti{pointer-events:none;z-index:50;position:fixed;inset:0;overflow:hidden}.confetti span{background:var(--pc);border-radius:2px;width:8px;height:14px;animation:linear forwards confetti-fall;position:absolute;top:-12px}@keyframes confetti-fall{to{opacity:.6;top:105%;rotate:540deg}}@media (prefers-reduced-motion:reduce){.world-badge .bump,.world .taken-flash,.world .army-delta,.battle-line .die.roll,.battle-line.conquered strong{animation:none}.world .taken-flash,.world .army-delta,.confetti{display:none}}.banner.event-warning{background:color-mix(in srgb, #f5b301 18%, var(--surface));border-bottom-color:color-mix(in srgb, #f5b301 50%, var(--line))}.banner.event-warning p{margin:0}.front-news{text-align:left;max-width:420px}.front-news h2{margin:0 0 4px;font-size:18px}.news-armies{color:var(--good);margin:0 0 8px 15px;font-weight:700}.clue-found{border-radius:var(--radius-lg);background:var(--surface-2);text-align:left;margin:8px 0;padding:8px 12px}.clue-found p{margin:0}.missions .fork{border:1px dashed var(--line-strong);border-radius:var(--radius-lg);flex-direction:column;gap:6px;padding:8px;display:flex}.fork-label,.fork-story{margin:0;font-size:13px}.fork-label{font-weight:700}.fork-story{font-style:italic}.fork-roads{flex-direction:column;gap:6px;display:flex}.mission.closed{opacity:.55}.mission.closed strong{text-decoration:line-through}.perks{border:1px solid var(--line);border-radius:var(--radius-lg);flex-direction:column;gap:6px;margin:8px 0;padding:8px 10px;display:flex}.perks legend{padding:0 4px;font-weight:700}.perks p{margin:0}.perk{align-items:baseline;gap:8px;min-height:32px;display:flex}.perk.locked{opacity:.6}.boons ul{margin:0}.dossier{border-radius:var(--radius-lg);background:var(--surface);border:1px solid var(--line);text-align:left;margin:16px 0;padding:10px 14px}.dossier summary{cursor:pointer;flex-wrap:wrap;align-items:center;gap:8px;min-height:32px;display:flex}.clues{flex-direction:column;gap:8px;margin:8px 0 0;padding:0;font-size:14px;list-style:none;display:flex}.clue{color:var(--muted)}.clue.found{color:var(--text)}.front{border-radius:var(--radius-lg);width:100%;height:auto;margin:4px 0 10px;display:block;overflow:hidden}.front.closed{filter:grayscale();opacity:.6}.front-ours{fill:var(--own-tint)}.front-theirs{fill:var(--enemy-tint)}.front-line{fill:none;stroke:var(--enemy);stroke-width:2px;stroke-dasharray:4 3}.front-side{fill:var(--muted);text-transform:uppercase;letter-spacing:.05em;font-size:9px;font-weight:700}.front-road{fill:none;stroke:var(--line-strong);stroke-width:2px}.front-place circle{stroke-width:2px}.front-place text{pointer-events:none;font-size:11px;font-weight:800}.front-place.ours circle{fill:var(--own);stroke:var(--own-strong)}.front-place.ours text{fill:#fff}.front-place.theirs circle{fill:var(--enemy-fill);stroke:var(--enemy)}.front-place.theirs text{fill:var(--enemy-strong)}.front-place.next circle{fill:var(--surface);stroke:var(--own);stroke-width:3px;animation:1.6s ease-in-out infinite front-pulse}.front-place.next text{fill:var(--own-strong)}.front-place.closed circle{fill:var(--neutral-fill);stroke:var(--line-strong);stroke-dasharray:3 2}.front-place.closed text{fill:var(--muted)}.front-place.siege circle{fill:var(--enemy-alt);stroke:var(--enemy-strong);animation:1s ease-in-out infinite front-pulse}.front-place.siege text{fill:#fff}.front-place:not(.closed){cursor:pointer}@keyframes front-pulse{50%{stroke-width:5px}}@media (prefers-reduced-motion:reduce){.front-place.next circle,.front-place.siege circle{animation:none}}.siege-banner{border-radius:var(--radius-lg);background:color-mix(in srgb, var(--enemy-alt) 12%, var(--surface));border:1px solid color-mix(in srgb, var(--enemy-alt) 40%, var(--line));text-align:left;margin:12px 0;padding:10px 14px}.siege-banner p{margin:0 0 8px}.siege-news{color:var(--enemy-alt);font-weight:700}.daily-streak{margin:0;font-weight:700}.daily-dialog{text-align:left}.daily-dialog h2,.daily-dialog h3{margin:4px 0}.daily-ranking{flex-direction:column;gap:4px;margin:0 0 8px;padding:0;list-style:none;display:flex}.daily-ranking li{border-radius:var(--radius);align-items:baseline;gap:8px;padding:4px 8px;display:flex}.daily-ranking li.me{background:var(--own-tint);font-weight:700}.daily-rank{min-width:2.2em;font-weight:800}.daily-name{text-overflow:ellipsis;flex:auto;min-width:0;overflow:hidden}.guest-banner{border-radius:var(--radius-lg);background:var(--own-tint);text-align:left;margin:12px 0;padding:10px 14px}.guest-banner p{margin:0 0 8px}.section-title{text-align:left;margin:20px 4px 8px;font-size:18px}.share-result{margin-top:4px}.map .camera{transition:transform .45s var(--ease)}@media (prefers-reduced-motion:reduce){.map .camera{transition:none}}.reveal.capital-fell .conquest-toast.capital{animation:capital-banner 1.2s var(--ease) both;padding:14px 20px;font-size:22px}@keyframes capital-banner{0%{opacity:0;transform:scale(.4)}25%{opacity:1;transform:scale(1.15)}40%{transform:scale(1)}}.slow-sent{color:var(--muted);font-size:13px}.notify-prompt{margin-top:6px}.cover{min-height:100vh;isolation:isolate;color:#f8fafc;background:radial-gradient(120% 70% at 50% 0,#f9731647,#0000 60%),radial-gradient(120% 70% at 50% 100%,#3b82f652,#0000 60%),#111827;place-items:center;min-height:100svh;display:grid;position:relative;overflow:hidden}.cover-map{z-index:-1;opacity:.32;width:100%;height:100%;position:absolute;inset:0;transform:scale(1.08)rotate(-4deg)}.cover:after{content:"";z-index:-1;background:radial-gradient(70% 45%,#111827bf,#0000 100%);position:absolute;inset:0}.cover-map path{fill:#2a3346;stroke:#111827;stroke-width:5px;stroke-linejoin:round;animation:cover-claim .9s var(--ease) var(--delay) both}.cover-map path.own{--claim:#3b82f6}.cover-map path.enemy{--claim:#f97316}.cover-map path.neutral{--claim:#6b7280}.cover-map path.key{--claim:#8b5cf6;animation:cover-claim .9s var(--ease) var(--delay) both, cover-glow 2.4s ease-in-out 2.4s infinite}@keyframes cover-claim{0%{fill:#2a3346}to{fill:var(--claim)}}@keyframes cover-glow{50%{fill:#c4b5fd}}.cover-body{width:min(100%,420px);padding:calc(28px + env(safe-area-inset-top)) 20px calc(28px + env(safe-area-inset-bottom));text-align:center;animation:cover-rise .7s var(--ease) .15s both;flex-direction:column;align-items:center;gap:10px;display:flex}@keyframes cover-rise{0%{opacity:0;transform:translateY(16px)}}.cover-mark{border-radius:16px;width:64px;height:64px;box-shadow:0 10px 30px #00000073}.cover h1{letter-spacing:-.04em;text-shadow:0 6px 28px #00000080;margin:0;font-size:clamp(48px,15vw,72px);font-weight:900;line-height:1}.cover-kicker{letter-spacing:.16em;text-transform:uppercase;color:#fcd34d;margin:0;font-size:13px;font-weight:700}.cover-vs{justify-content:center;align-items:center;gap:14px;margin:14px 0 4px;display:flex}.cover-vs figure{flex-direction:column;align-items:center;gap:6px;margin:0;font-size:14px;font-weight:700;display:flex}.cover-vs .portrait{animation:cover-in-left .7s var(--ease) .5s both;border-radius:50%;box-shadow:0 0 0 3px #3b82f6,0 12px 30px #00000080}.cover-vs figure:last-child .portrait{animation-name:cover-in-right;box-shadow:0 0 0 3px #f97316,0 12px 30px #00000080}@keyframes cover-in-left{0%{opacity:0;transform:translate(-40px)}}@keyframes cover-in-right{0%{opacity:0;transform:translate(40px)}}.cover-vs-mark{color:#fcd34d;text-shadow:0 2px 12px #fcd34d80;animation:cover-slam .5s var(--ease) 1s both;font-size:26px;font-style:italic;font-weight:900}@keyframes cover-slam{0%{opacity:0;transform:scale(2.4)}}.cover-line{text-wrap:balance;max-width:22em;margin:4px 0 14px;font-size:19px;font-weight:600;line-height:1.4}.cover-play{border-radius:999px;max-width:320px;min-height:60px;font-size:20px;font-weight:800;animation:2.6s ease-in-out 1.6s infinite cover-breathe;box-shadow:0 10px 30px #2563eb8c}@keyframes cover-breathe{50%{transform:scale(1.04);box-shadow:0 14px 40px #2563ebbf}}.cover-hint{color:#f8fafcb3;margin:0;font-size:13px}.cover .cover-skip{color:#f8fafcd9;margin-top:6px}@media (prefers-reduced-motion:reduce){.cover *,.cover-map path{animation:none!important}.cover-map path{fill:var(--claim)}}.greeting{flex-direction:column;gap:8px;display:flex}.name-row.hello{font-size:20px}.front-status p{color:var(--muted);margin:0;font-size:15px}.front-status .front{margin-bottom:0}.tabs{background:var(--surface-2);border-radius:999px;padding:4px;display:flex}.tabs .tab{min-height:44px;color:var(--muted);box-shadow:none;background:0 0;border:none;border-radius:999px;flex:1;font-weight:600}.tabs .tab.selected{background:var(--surface);color:var(--text);box-shadow:var(--shadow-sm)}.perks-box h2{margin:0 0 8px;font-size:18px}.perks-box ul{gap:6px;margin:0 0 8px;display:grid}.perks-box li{display:block}.password-field{display:flex;position:relative}.password-field input{flex:1;min-width:0;padding-right:92px}.password-field .pw-toggle{background:var(--surface-2);min-height:36px;box-shadow:none;border:none;padding:0 12px;font-size:14px;position:absolute;top:50%;right:4px;transform:translateY(-50%)}.recovery-panel{flex-direction:column;gap:12px;display:flex}.recovery-panel h2,.recovery-panel p{margin:0}.recovery-code{letter-spacing:.08em;text-align:center;border:2px dashed var(--line-strong);border-radius:var(--radius);background:var(--surface-2);-webkit-user-select:all;user-select:all;padding:14px 8px;font-family:ui-monospace,SF Mono,Menlo,Consolas,monospace;font-size:clamp(22px,7vw,30px);font-weight:700}label.check{align-items:center;gap:10px;font-weight:600;display:flex}label.check input{width:22px;height:22px;min-height:0}.security-actions{flex-direction:column;gap:8px;display:flex}.success-note{color:var(--good);margin:8px 0 0;font-weight:600}.privacy section h2{margin:16px 0 4px;font-size:18px}.privacy section p{margin:0}.privacy .lead{font-size:17px}.quick-signup{text-align:left;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface-2);flex-direction:column;gap:8px;width:100%;padding:14px;display:flex}.quick-signup p{margin:0}.quick-head{justify-content:space-between;align-items:center;gap:8px;display:flex}.quick-head .link{white-space:nowrap;min-height:36px;padding:0 4px}.quick-signup .link.small{align-self:center;min-height:36px}.recovery-code.small-code{padding:10px 6px;font-size:22px}.tabbar-space{height:calc(64px + env(safe-area-inset-bottom))}.tabbar{z-index:40;padding:6px 8px calc(6px + env(safe-area-inset-bottom));background:color-mix(in srgb, var(--bg-elevated) 92%, transparent);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-top:1px solid var(--line);justify-content:center;display:flex;position:fixed;bottom:0;left:0;right:0}.tab-link{border-radius:var(--radius);max-width:120px;min-height:52px;color:var(--muted);flex-direction:column;flex:1;justify-content:center;align-items:center;gap:2px;font-size:12px;font-weight:600;text-decoration:none;display:flex}.tab-icon{filter:grayscale(.7);opacity:.8;font-size:22px;line-height:1}.tab-link[aria-current=page]{color:var(--primary);background:var(--own-tint)}.tab-link[aria-current=page] .tab-icon{filter:none;opacity:1}.tab-link:focus-visible{box-shadow:var(--focus-ring)}body[data-cover] .tabbar,body[data-cover] .tabbar-space{display:none}.play-screen h1{letter-spacing:-.03em;margin:0;font-size:28px;font-weight:800}.end-switch{grid-template-columns:1fr 1fr;gap:8px;width:100%;display:grid}
