@font-face{font-family:Outfit Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/outfit-latin-ext-wght-normal-DdQaqQDo.woff2) format("woff2-variations");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Outfit Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/outfit-latin-wght-normal-Bc-8i84L.woff2) format("woff2-variations");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(/assets/jetbrains-mono-cyrillic-ext-wght-normal-EocZY2iu.woff2) format("woff2-variations");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(/assets/jetbrains-mono-cyrillic-wght-normal-D73BlboJ.woff2) format("woff2-variations");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(/assets/jetbrains-mono-greek-wght-normal-Bw9x6K1M.woff2) format("woff2-variations");unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@font-face{font-family:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(/assets/jetbrains-mono-vietnamese-wght-normal-Bt-aOZkq.woff2) format("woff2-variations");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(/assets/jetbrains-mono-latin-ext-wght-normal-DBQx-q_a.woff2) format("woff2-variations");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(/assets/jetbrains-mono-latin-wght-normal-B9CIFXIH.woff2) format("woff2-variations");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--bg-primary: #080d1a;--bg-secondary: #0f172a;--bg-card: #131d33;--bg-card-border: #1e2e4f;--text-main: #f8fafc;--text-muted: #94a3b8;--accent-gold: #f59e0b;--accent-cyan: #06b6d4;--accent-green: #10b981;--accent-purple: #c084fc;--accent-red: #f43f5e;--player-1: #60a5fa;--player-2: #fb7185;--font-sans: "Outfit Variable", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--font-mono: "JetBrains Mono Variable", ui-monospace, "SFMono-Regular", Menlo, Consolas, monospace}*{box-sizing:border-box;margin:0;padding:0}body{font-family:var(--font-sans);background-color:var(--bg-primary);color:var(--text-main);min-height:100vh;display:flex;justify-content:center;align-items:center;padding:24px 16px;background-image:radial-gradient(circle at 10% 15%,rgba(6,182,212,.1) 0%,transparent 40%),radial-gradient(circle at 90% 85%,rgba(192,132,252,.1) 0%,transparent 40%)}#app{width:100%;max-width:1120px;display:flex;flex-direction:column;gap:20px}.card{background:var(--bg-card);border:1px solid var(--bg-card-border);border-radius:14px;padding:16px 20px;box-shadow:0 10px 30px -5px #00000080}.btn{font-family:inherit;font-size:1rem;font-weight:700;display:inline-flex;align-items:center;gap:8px;padding:12px 22px;border-radius:12px;border:none;cursor:pointer;transition:background-color .2s ease,border-color .2s ease,color .2s ease,box-shadow .2s ease,opacity .2s ease;box-shadow:0 4px 15px #0000004d}.btn:disabled{opacity:.45;cursor:not-allowed;box-shadow:none!important}.btn-icon{font-size:1.2rem}.btn-warning{background:#374151;color:#fbbf24;border:1px solid #4b5563}.btn-warning:hover:not(:disabled){background:#4b5563;color:#fde047;box-shadow:0 6px 18px #fbbf2440}.btn-primary{background:linear-gradient(135deg,#06b6d4,#2563eb);color:#fff}.btn-primary:hover:not(:disabled){background:linear-gradient(135deg,#38bdf8,#3b82f6);box-shadow:0 8px 25px #06b6d466}.btn-secondary{background:#1e293b;color:var(--text-main);border:1px solid #334155}.btn-secondary:hover:not(:disabled){background:#334155;box-shadow:0 8px 20px #0006}.app-view{width:100%;display:flex;flex-direction:column;gap:20px;animation:fadeInView .35s cubic-bezier(.16,1,.3,1)}@keyframes fadeInView{0%{opacity:0;transform:translateY(12px) scale(.99)}to{opacity:1;transform:translateY(0) scale(1)}}.btn-block{width:100%;justify-content:center}.btn-sm{padding:8px 14px;font-size:.85rem}.btn-ghost{background:transparent;border:1px solid rgba(255,255,255,.15);color:var(--text-muted)}.btn-ghost:hover{background:#ffffff0d;color:var(--text-main);border-color:#ffffff4d}.app-settings{align-self:flex-end;display:flex;align-items:center;gap:8px}.settings-toggle{display:inline-flex;align-items:center;gap:6px;font:inherit;font-size:.8rem;font-weight:600;color:var(--text-muted);background:var(--bg-card);border:1px solid var(--bg-card-border);border-radius:999px;padding:5px 12px;cursor:pointer}.settings-toggle[aria-pressed=true]{color:var(--text-main);border-color:var(--accent-cyan)}.settings-toggle[aria-pressed=false] span[aria-hidden]{opacity:.4}.settings-toggle:hover{border-color:var(--accent-cyan)}.settings-toggle:focus-visible{outline:2px solid var(--accent-cyan);outline-offset:2px}.lang-switch{position:relative;display:inline-flex;align-items:center}.lang-icon{position:absolute;left:10px;font-size:.85rem;pointer-events:none}.lang-switch select{-webkit-appearance:none;-moz-appearance:none;appearance:none;color-scheme:dark;font:inherit;font-size:.8rem;font-weight:600;color:var(--text-main);background-color:var(--bg-card);background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6' viewBox='0 0 10 6'%3E%3Cpath d='M1 1l4 4 4-4' fill='none' stroke='%2394a3b8' stroke-width='1.5'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 10px center;border:1px solid var(--bg-card-border);border-radius:999px;padding:5px 28px 5px 32px;cursor:pointer}.lang-switch select:hover{border-color:var(--accent-cyan)}.lang-switch select:focus-visible{outline:2px solid var(--accent-cyan);outline-offset:2px}.update-banner{position:fixed;left:50%;bottom:16px;transform:translate(-50%);z-index:200;display:flex;align-items:center;gap:10px;max-width:calc(100vw - 32px);padding:10px 14px;border-radius:12px;border:1px solid var(--accent-cyan);background:var(--bg-card);box-shadow:0 8px 24px #00000080;font-size:.9rem}.game-header{display:grid;grid-template-columns:280px 1fr 240px;align-items:center;gap:20px}@media(max-width:860px){.game-header{grid-template-columns:1fr 1fr}.game-title{grid-column:1 / -1;order:-1}}.player-info{display:flex;flex-direction:column;gap:4px}.player-info .label,.score-info .label{font-size:.75rem;text-transform:uppercase;letter-spacing:.08em;color:var(--text-muted);font-weight:700}.player-name-wrapper{display:flex;align-items:center;gap:10px}.player-icon{font-size:1.5rem}#player-name-input{background:transparent;border:none;border-bottom:2px dashed rgba(255,255,255,.2);color:var(--text-main);font-family:inherit;font-size:1.15rem;font-weight:700;width:100%;padding:2px 4px;outline:none;transition:border-color .2s ease}#player-name-input:focus{border-bottom-color:var(--accent-cyan)}.game-title{text-align:center}.game-title h1{font-size:2.3rem;font-weight:800;letter-spacing:.12em;background:linear-gradient(135deg,#f8fafc 20%,#38bdf8,#c084fc);-webkit-background-clip:text;-webkit-text-fill-color:transparent}.game-title .subtitle{font-size:.85rem;letter-spacing:.18em;text-transform:uppercase;color:var(--text-muted)}.score-info{display:flex;flex-direction:column;gap:4px}.score-display{display:flex;align-items:center;gap:8px;font-family:var(--font-mono);font-size:1.6rem;font-weight:800;color:#38bdf8}.score-icon{font-size:1.4rem;color:#38bdf8}.world-trait-card{background:linear-gradient(135deg,#0f172af2,#1e293be6);border-left:5px solid var(--trait-color, #f59e0b);padding:12px 18px;display:flex;flex-direction:column;gap:6px;box-shadow:0 4px 20px #00000059;transition:border-color .3s ease}.world-trait-content{display:flex;flex-direction:column;gap:6px}.world-trait-header-row{display:flex;align-items:center;justify-content:space-between;gap:12px}.world-trait-tag{font-size:.72rem;font-weight:800;text-transform:uppercase;letter-spacing:.1em;color:var(--text-muted)}.world-trait-badge{font-size:.75rem;font-family:var(--font-mono);font-weight:700;padding:2px 8px;border-radius:6px;background:#f59e0b26;color:var(--trait-color, #f59e0b);border:1px solid var(--trait-color, rgba(245, 158, 11, .4))}.world-trait-main-row{display:flex;align-items:center;gap:12px}.world-trait-icon{font-size:1.8rem;display:flex;align-items:center;justify-content:center;width:44px;height:44px;border-radius:10px;background:#ffffff0d;border:1px solid rgba(255,255,255,.1);box-shadow:0 0 12px #f59e0b33}.world-trait-text-block{display:flex;flex-direction:column;gap:2px}.world-trait-name{font-size:1.15rem;font-weight:800;letter-spacing:.04em;color:var(--trait-color, #f59e0b);margin:0}.world-trait-desc{font-size:.85rem;color:var(--text-muted);line-height:1.35;margin:0}.toolbar-section{display:flex;flex-direction:column;gap:10px;padding:12px 18px;background:#0f172a}.toolbar-label{font-size:.78rem;text-transform:uppercase;letter-spacing:.08em;font-weight:700;color:var(--text-muted)}.piece-selector{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px}.tool-btn{display:flex;align-items:center;gap:12px;padding:10px 14px;background:#182238;border:2px solid #233354;border-radius:10px;cursor:pointer;transition:background-color .2s ease,border-color .2s ease,color .2s ease,box-shadow .2s ease,opacity .2s ease;text-align:left;color:var(--text-main);font-family:inherit}.tool-btn:hover{background:#1e2c47;border-color:#38bdf8}.tool-btn.active{background:#1b2e4b;border-color:#38bdf8;box-shadow:0 0 16px #38bdf84d}.tool-badge{width:38px;height:38px;border-radius:8px;display:flex;align-items:center;justify-content:center;font-weight:900;font-size:1.2rem;font-family:var(--font-mono);flex-shrink:0}.badge-mother{background:linear-gradient(135deg,#a855f7,#ec4899);color:#fff;box-shadow:0 0 12px #a855f780}.badge-drone{background:linear-gradient(135deg,#06b6d4,#10b981);color:#fff;box-shadow:0 0 12px #06b6d480}.badge-worker{background:linear-gradient(135deg,#f59e0b,#d97706);color:#fff;box-shadow:0 0 12px #f59e0b80}.badge-scout{background:linear-gradient(135deg,#3b82f6,#6366f1);color:#fff;box-shadow:0 0 12px #3b82f680}.badge-claim{background:#334155;color:#f8fafc;font-size:1rem}.tool-info{display:flex;flex-direction:column;width:100%}.tool-name-row{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:4px 8px;width:100%}.tool-name{font-size:.95rem;font-weight:700}.tool-count{font-size:.72rem;font-family:var(--font-mono);font-weight:700;padding:1px 6px;border-radius:4px;background:#ffffff1a;color:var(--accent-cyan);white-space:nowrap}.tool-cost-badge{font-size:.7rem;font-family:var(--font-mono);font-weight:700;padding:1px 6px;border-radius:4px;background:#ef44442e;border:1px solid rgba(239,68,68,.4);color:#f87171;white-space:nowrap;transition:background-color .2s ease,border-color .2s ease,color .2s ease,box-shadow .2s ease,opacity .2s ease}.tool-cost-badge.affordable{background:#38bdf826;border-color:#38bdf866;color:#38bdf8}.tool-desc{font-size:.72rem;color:var(--text-muted);line-height:1.2}.game-main{display:grid;grid-template-columns:minmax(360px,570px) 1fr;gap:24px;align-items:start}@media(max-width:900px){.game-main{grid-template-columns:1fr}}.grid-section{display:flex;flex-direction:column;align-items:center;gap:14px}.grid-wrapper{background:#060911;padding:16px;border-radius:18px;border:2px solid #1e2e4f;box-shadow:0 20px 45px #000000b3;width:100%;max-width:540px}.sidebar{display:flex;flex-direction:column;gap:16px;height:540px;max-height:540px;box-sizing:border-box}@media(max-width:900px){.sidebar{height:auto;max-height:none}}.legend-card{flex:1.15;display:flex;flex-direction:column;min-height:0;overflow:hidden}.legend-card h3,.resources-card h3{font-size:1.05rem;margin-bottom:4px;font-weight:700}.legend-hint{font-size:.78rem;color:var(--text-muted);margin-bottom:8px}.zone-legend{display:flex;flex-direction:column;gap:6px;flex:1;min-height:0;overflow-y:auto;padding-right:4px}.legend-item{display:flex;align-items:center;justify-content:space-between;padding:6px 10px;background:#ffffff08;border-radius:8px;border-left:5px solid var(--item-color);font-size:.85rem;transition:background .15s ease}.legend-item:hover{background:#ffffff14}.legend-item-name{display:flex;align-items:center;gap:8px;font-weight:600}.legend-color-indicator{width:14px;height:14px;border-radius:4px;border:2.5px solid var(--item-color);background:transparent}.legend-count{font-family:var(--font-mono);font-size:.8rem;color:var(--text-muted)}.telemetry-card{background:linear-gradient(135deg,#0f172af2,#1e293be6);border-left:5px solid #06b6d4;padding:14px 18px;display:flex;flex-direction:column;gap:8px;box-shadow:0 4px 20px #00000059;margin-top:4px}.telemetry-header{display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid rgba(255,255,255,.08);padding-bottom:8px}.telemetry-title{display:flex;align-items:center;gap:8px}.telemetry-title h3{font-size:1.05rem;font-weight:700;margin:0;color:#38bdf8}.telemetry-icon{font-size:1.25rem}.telemetry-body{display:flex;flex-direction:column;gap:6px}.telemetry-body #status-text{font-size:.9rem;color:var(--text-muted);line-height:1.45}.cell-info{width:100%;max-width:540px;height:6.8em;overflow:hidden;contain:strict;padding:8px 14px;border-radius:10px;border:1px solid rgba(255,255,255,.06);background:#0000004d;font-size:.85rem;line-height:1.45;color:var(--text-muted)}.cell-info-line{display:flex;flex-wrap:wrap;align-items:center;gap:2px 10px;white-space:nowrap;overflow:hidden}.cell-info-line+.cell-info-line{margin-top:4px}.cell-info .ci-pos{font-family:var(--font-mono);color:var(--text-main)}.cell-info .ci-ok{color:#6ee7b7}.cell-info .ci-warn{color:#fde68a;white-space:normal}.cell-info .ci-bad{color:#fca5a5;white-space:normal}.game-controls{display:flex;justify-content:center;align-items:center;flex-wrap:wrap;gap:12px;width:100%}.grid-controls{max-width:540px;padding-top:2px}.btn-finish-game{background:linear-gradient(135deg,#10b98133,#06b6d433);border:1px solid rgba(52,211,153,.6);color:#34d399;font-weight:700;box-shadow:0 0 12px #10b98126;transition:background-color .2s ease,border-color .2s ease,color .2s ease,box-shadow .2s ease,opacity .2s ease}.btn-finish-game:hover{background:linear-gradient(135deg,#10b98159,#06b6d459);border-color:#34d399;color:#fff;box-shadow:0 0 18px #10b98159}.resources-card{flex:.85;display:flex;flex-direction:column;min-height:0;overflow:hidden;border-left:4px solid var(--accent-gold)}.resource-legend-list{display:flex;flex-direction:column;gap:6px;flex:1;min-height:0;overflow-y:auto}.resource-legend-item{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:3px 9px;border-radius:8px;background:#ffffff08;font-size:.8rem;border:1px solid rgba(255,255,255,.05)}.res-badge{font-family:var(--font-mono);font-weight:800;font-size:.74rem;padding:2px 6px;border-radius:5px}.res-ore .res-badge{background:#f59e0b26;color:#f59e0b;border:1px solid rgba(245,158,11,.35);box-shadow:0 0 8px #f59e0b33}.res-biomass .res-badge{background:#a855f726;color:#c084fc;border:1px solid rgba(168,85,247,.35);box-shadow:0 0 8px #a855f733}.res-plains .res-badge{background:#10b98126;color:#34d399;border:1px solid rgba(16,185,129,.35)}.res-lake .res-badge{background:#0284c726;color:#38bdf8;border:1px solid rgba(2,132,199,.35)}.res-drone .res-badge{background:#94a3b826;color:#94a3b8;border:1px solid rgba(148,163,184,.35)}.game-top-nav{display:flex;flex-wrap:wrap;align-items:center;gap:10px 14px;padding:8px 16px;background:#131d33eb;border:1px solid var(--bg-card-border);border-radius:12px}.current-mode-chip{display:flex;align-items:center;gap:8px;font-size:.85rem;font-weight:700;color:var(--accent-gold);background:#f59e0b1f;border:1px solid rgba(245,158,11,.3);padding:4px 12px;border-radius:999px}.top-nav-spacer{flex-grow:1}.moves-left{display:block;margin-top:4px;font-family:var(--font-mono);font-size:.72rem;color:var(--accent-green)}.moves-left.none-left{color:var(--accent-red)}.game-over-banner{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:10px 16px;width:100%;max-width:540px;padding:12px 16px;border-radius:12px;border:1px solid var(--accent-gold);background:#f59e0b1f}.game-over-text{display:flex;flex-direction:column;gap:2px;font-size:.9rem}.game-over-text strong{color:#fcd34d}#btn-replay.confirming{background:#f43f5e2e;border-color:var(--accent-red);color:#fecdd3}.cell-info [hidden]{display:none!important}.map-code-chip{font-family:var(--font-mono);font-size:.8rem;color:var(--accent-cyan);background:#06b6d41a;border:1px solid rgba(6,182,212,.3);padding:4px 10px;border-radius:999px;-webkit-user-select:all;user-select:all}@media(max-width:600px){.game-top-nav .current-mode-chip{display:none}#btn-share-label{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}}.tutorial-panel{display:flex;flex-direction:column;gap:8px;width:100%;max-width:540px;padding:14px 16px;border-radius:12px;border:1px solid #fbbf24;background:#fbbf241a}.tutorial-progress{font-family:var(--font-mono);font-size:.75rem;letter-spacing:.05em;text-transform:uppercase;color:#fcd34d}.tutorial-text{font-size:.92rem;line-height:1.5}.tutorial-actions{display:flex;flex-wrap:wrap;gap:8px}.btn-rules{min-width:2.4rem;justify-content:center;font-weight:800}.casual-toggle{display:inline-flex;align-items:center;gap:8px;font-size:.85rem;color:var(--text-muted);cursor:pointer}.casual-toggle input{width:1.1rem;height:1.1rem;accent-color:var(--accent-gold)}.unscored-badge{display:inline-block;margin-top:4px;padding:1px 8px;border-radius:999px;font-size:.72rem;color:#fde68a;border:1px solid rgba(251,191,36,.4);background:#fbbf241a}.status-icon{margin-right:.4em;vertical-align:-.2em}.is-match .game-header{grid-template-columns:1fr}.is-match .game-header .player-info,.is-match .game-header .score-info,.is-match #btn-share,.is-match #btn-rate-map,.is-match .casual-toggle{display:none}.match-bar{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:12px;padding:12px 16px}.match-player{display:grid;grid-template-columns:auto 1fr;grid-template-areas:"swatch name" "swatch energy" "swatch units";column-gap:10px;padding:8px 12px;border-radius:12px;border:2px solid transparent;opacity:.6;transition:opacity .15s,border-color .15s}.match-p1{--player: var(--player-1)}.match-p2{--player: var(--player-2);grid-template-columns:1fr auto;grid-template-areas:"name swatch" "energy swatch" "units swatch";text-align:right}.match-player.active{opacity:1;border-color:var(--player);background:color-mix(in srgb,var(--player) 12%,transparent)}.match-swatch{grid-area:swatch;align-self:center;width:14px;height:14px;border-radius:50%;background:var(--player)}.match-name{grid-area:name;font-weight:800;color:var(--player)}.match-energy{grid-area:energy;font-family:var(--font-mono);font-size:1.3rem;font-weight:800}.match-p2 .match-energy{justify-content:flex-end}.match-units{grid-area:units;font-size:.75rem;color:var(--text-muted)}.match-turn{display:flex;flex-direction:column;align-items:center;text-align:center;font-size:.9rem}.match-turn strong{color:var(--turn-color, var(--text-main))}@media(max-width:560px){.match-bar{grid-template-columns:1fr 1fr}.match-turn{grid-column:1 / -1;order:-1}}@media(prefers-reduced-motion:reduce){.match-player{transition:none}}.is-puzzle #btn-share,.is-puzzle .casual-toggle,.is-puzzle #unscored-badge{display:none}.tool-btn:disabled{opacity:.35;cursor:not-allowed}.puzzle-bar{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px 20px;padding:12px 16px;border-left:3px solid var(--accent-purple)}.puzzle-bar-main{display:flex;flex-direction:column;gap:2px;min-width:0;font-size:.9rem}.puzzle-bar-title{color:var(--accent-purple)}.puzzle-bar-units{font-size:.8rem;color:var(--accent-gold)}.puzzle-bar-side{display:flex;flex-direction:column;align-items:flex-end;gap:2px;text-align:right}.puzzle-bar-moves{font-family:var(--font-mono);font-weight:800}.puzzle-bar-stars{font-size:1.3rem;letter-spacing:.1em;color:var(--accent-gold)}.puzzle-bar-thresholds{font-size:.75rem;color:var(--text-muted)}@media(max-width:560px){.puzzle-bar-side{align-items:flex-start;text-align:left}}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#02060fe0;display:flex;align-items:center;justify-content:center;z-index:100;padding:16px;transition:opacity .2s ease}.modal-content{max-width:520px;width:100%;background:#101728;border:1px solid #1e2e4f}.modal-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:14px}.modal-header h2{font-size:1.35rem}.modal-close{background:transparent;border:none;font-size:1.8rem;color:var(--text-muted);cursor:pointer}.modal-body p{font-size:.92rem;color:var(--text-muted);margin-bottom:18px;line-height:1.5}.summary-modal-content{max-width:580px!important}.debriefing-card{display:flex;gap:18px;background:#00000059;border:1px solid rgba(255,255,255,.08);border-radius:12px;padding:16px;margin-bottom:18px;align-items:center}.debriefing-map-col{display:flex;flex-direction:column;align-items:center;gap:8px;flex-shrink:0}.summary-minimap{width:150px;height:150px;border-radius:8px;border:1px solid rgba(255,255,255,.15);box-shadow:0 4px 12px #00000080;background:#0b1120}.summary-map-badge{font-family:var(--font-mono);font-size:.72rem;color:var(--accent-cyan);background:#06b6d41f;padding:3px 8px;border-radius:6px;border:1px solid rgba(6,182,212,.25)}.debriefing-stats-col{display:flex;flex-direction:column;gap:12px;flex:1;min-width:0}.debriefing-stat-row{display:flex;flex-direction:column;gap:4px}.debriefing-label{font-size:.76rem;text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted);font-weight:600}.summary-trait-badge{display:inline-flex;align-items:center;gap:6px;font-size:.88rem;font-weight:700;color:#f1f5f9;background:#ffffff0d;padding:4px 10px;border-radius:6px;border:1px solid rgba(255,255,255,.1);width:fit-content}.summary-score-display{display:flex;align-items:baseline;gap:8px}.summary-score-num{font-family:var(--font-mono);font-size:1.6rem;font-weight:800;color:#38bdf8;text-shadow:0 0 12px rgba(56,189,248,.4)}.summary-score-unit{font-size:.85rem;color:var(--text-muted);font-weight:600}.summary-rank-wrapper{display:flex;flex-direction:column;gap:3px}.summary-rank-badge{font-size:.95rem;font-weight:800;color:#fbbf24;display:inline-flex;align-items:center;gap:6px}.summary-rank-sub{font-size:.78rem;color:#34d399;font-weight:600}.summary-rating-section{margin-top:14px}.summary-rating-title{font-size:1rem;font-weight:700;margin-bottom:6px;color:#f8fafc}.rate-modal-intro{font-size:.92rem;color:var(--text-muted);line-height:1.5;margin-bottom:16px}.star-rating-wrapper{display:flex;flex-direction:column;align-items:center;gap:12px;padding:16px 12px;background:#0000004d;border-radius:12px;border:1px solid rgba(255,255,255,.06)}.star-rating-buttons{display:flex;gap:10px}.star-btn{font-size:2.2rem;background:transparent;border:none;cursor:pointer;color:#475569;transition:transform .15s ease,color .15s ease,text-shadow .15s ease;line-height:1;padding:4px}.star-btn:hover{transform:scale(1.25);color:#fbbf24;text-shadow:0 0 16px rgba(251,191,36,.7)}.star-btn.active{color:#f59e0b;text-shadow:0 0 14px rgba(245,158,11,.8);transform:scale(1.1)}.selected-rating-text{font-family:var(--font-mono);font-size:.88rem;font-weight:700;color:var(--accent-cyan)}.rating-feedback{margin-top:14px;padding:12px;border-radius:8px;text-align:center;font-size:.92rem;font-weight:700;background:#10b98126;border:1px solid var(--accent-green);color:#34d399}@media(max-width:600px){.debriefing-card{flex-direction:column;text-align:center}.summary-trait-badge{margin:0 auto}.summary-score-display{justify-content:center}}.biome-pill{display:inline-block;font-family:var(--font-mono);font-size:.75rem;font-weight:700;padding:2px 8px;border-radius:6px}.biome-pill.biome-mountain{background:#94a3b833;color:#e2e8f0;border:1px solid rgba(148,163,184,.4)}.biome-pill.biome-swamp{background:#a855f733;color:#f3e8ff;border:1px solid rgba(168,85,247,.4)}.biome-pill.biome-plains{background:#10b98126;color:#10b981;border:1px solid rgba(16,185,129,.3)}.biome-pill.biome-lake{background:#0284c7;color:#fff}.legend-biome-badge{font-family:var(--font-mono);font-size:.68rem;font-weight:600;padding:1px 6px;border-radius:4px;margin-left:6px;display:inline-block}.legend-biome-badge.biome-mountain-tag{background:#94a3b833;color:#e2e8f0;border:1px solid rgba(148,163,184,.4)}.legend-biome-badge.biome-swamp-tag{background:#a855f733;color:#f3e8ff;border:1px solid rgba(168,85,247,.4)}.legend-biome-badge.biome-plains-tag{background:#10b9811f;color:#34d399;border:1px solid rgba(16,185,129,.25)}.rules-modal-content{max-width:640px;max-height:88vh;overflow-y:auto}.rules-body{display:flex;flex-direction:column;gap:16px}.rules-section h3{font-size:1rem;margin-bottom:6px;color:var(--accent-cyan)}.rules-section p{color:var(--text-muted);line-height:1.55}.rules-list{list-style:none;display:flex;flex-direction:column;gap:8px}.rules-list li{display:flex;flex-direction:column;gap:2px;color:var(--text-muted);font-size:.9rem}.rules-item-label{color:var(--text-main);font-weight:700}.summary-practice{margin-top:12px;padding:8px 12px;border-radius:8px;border:1px solid rgba(251,191,36,.4);background:#fbbf241a;color:#fde68a;font-size:.9rem}.summary-guest-hint{margin-top:14px;padding:10px 12px;border-radius:8px;border:1px solid rgba(6,182,212,.35);background:#06b6d414;color:#a5f3fc;font-size:.9rem}.rate-modal-actions{margin-top:18px;display:flex;flex-direction:column;gap:8px}.submit-status{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px 12px;margin-top:12px;padding:10px 12px;border-radius:8px;font-size:.9rem;border:1px solid var(--bg-card-border)}.submit-status.pending{color:var(--text-muted)}.submit-status.ok{color:#6ee7b7;border-color:#10b98166;background:#10b98114}.submit-status.error{color:#fecaca;border-color:#f43f5e73;background:#f43f5e1a}.match-modal{max-width:480px}.modal-body .match-headline{font-size:1.5rem;font-weight:800;text-align:center;color:var(--winner-color, var(--accent-gold))}.modal-body .match-margin{text-align:center;color:var(--text-muted)}.match-result-players{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:12px 0}.match-result-player{display:flex;flex-direction:column;gap:2px;padding:10px 12px;border-radius:12px;border:2px solid var(--player);background:color-mix(in srgb,var(--player) 10%,transparent)}.match-result-player .match-name{color:var(--player)}.match-result-board{width:min(260px,100%);margin:0 auto 12px}.modal-body .match-record{display:flex;flex-wrap:wrap;justify-content:center;gap:4px 10px;font-size:.85rem}.match-record-label{color:var(--text-muted)}.match-result-actions{display:flex;flex-wrap:wrap;gap:10px;justify-content:center;margin-top:14px}.puzzle-modal{max-width:560px}.puzzle-stars{color:var(--accent-gold);letter-spacing:.08em}.puzzle-daily{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 14px;margin-bottom:14px;border-radius:12px;border:1px solid rgba(245,158,11,.35);background:#f59e0b14}.puzzle-daily-text{display:flex;flex-direction:column;gap:2px;font-size:.85rem}.puzzle-chapters{display:flex;flex-direction:column;gap:14px}.puzzle-chapter-title{display:flex;justify-content:space-between;gap:10px;font-size:.95rem;margin-bottom:8px}.puzzle-chapter-stars{color:var(--accent-gold);font-family:var(--font-mono);font-size:.85rem}.puzzle-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}.puzzle-tile{display:flex;flex-direction:column;align-items:center;gap:2px;padding:8px 4px;font:inherit;color:var(--text-main);background:var(--bg-secondary);border:1px solid var(--bg-card-border);border-radius:10px;cursor:pointer}.puzzle-tile:hover,.puzzle-tile:focus-visible{border-color:var(--accent-purple)}.puzzle-tile.solved{border-color:#f59e0b80}.puzzle-tile-n{font-weight:800}.puzzle-tile-goal{color:var(--text-muted)}.puzzle-tile .puzzle-stars{font-size:.75rem}.modal-body .puzzle-locked{font-size:.85rem;color:var(--text-muted)}.puzzle-chapter.locked .puzzle-chapter-title{opacity:.6}.modal-body .puzzle-result-stars{text-align:center;font-size:2.4rem;letter-spacing:.15em;color:var(--accent-gold)}.modal-body .puzzle-result-detail,.modal-body .puzzle-result-note{text-align:center}.modal-body .puzzle-result-note{color:var(--accent-green);font-size:.85rem}@media(max-width:420px){.puzzle-grid{grid-template-columns:repeat(4,1fr);gap:6px}}.auth-tabs{display:flex;gap:8px;background:#00000059;padding:4px;border-radius:10px;margin-bottom:16px;border:1px solid rgba(255,255,255,.08)}.auth-tab{flex:1;padding:8px 14px;font-family:inherit;font-size:.9rem;font-weight:700;border:none;border-radius:8px;background:transparent;color:var(--text-muted);cursor:pointer;transition:background-color .2s ease,border-color .2s ease,color .2s ease,box-shadow .2s ease,opacity .2s ease}.auth-tab.active{background:linear-gradient(135deg,#06b6d4,#2563eb);color:#fff;box-shadow:0 2px 10px #06b6d466}.auth-tab:hover:not(.active){background:#ffffff0d;color:var(--text-main)}.auth-feedback{padding:10px 14px;border-radius:8px;font-size:.88rem;font-weight:600;margin-bottom:14px;line-height:1.4}.auth-feedback.success{background:#10b98126;border:1px solid var(--accent-green);color:#34d399}.auth-feedback.error{background:#ef444426;border:1px solid #ef4444;color:#f87171}.landing-container{width:100%;max-width:760px;margin:0 auto;display:flex;flex-direction:column;align-items:center;gap:24px;padding:20px 0}.landing-header{text-align:center;display:flex;flex-direction:column;align-items:center;gap:8px}.landing-badge{display:inline-block;font-family:var(--font-mono);font-size:.78rem;font-weight:700;letter-spacing:.15em;color:var(--accent-cyan);background:#06b6d41f;border:1px solid rgba(6,182,212,.3);padding:4px 14px;border-radius:999px;text-transform:uppercase}.landing-title{font-size:3.2rem;font-weight:800;letter-spacing:.08em;background:linear-gradient(135deg,#f8fafc,#38bdf8 40%,#f59e0b);-webkit-background-clip:text;-webkit-text-fill-color:transparent;margin:0;text-shadow:0 0 30px rgba(56,189,248,.25)}.landing-subtitle{font-size:1.05rem;color:var(--text-muted);max-width:540px}.landing-card{width:100%;text-align:center;padding:36px 32px;border:1px solid rgba(6,182,212,.25);box-shadow:0 20px 50px -10px #000000b3,0 0 30px #06b6d41a;position:relative;overflow:hidden}.landing-card:before{content:"";position:absolute;top:0;left:0;right:0;height:3px;background:linear-gradient(90deg,var(--accent-cyan),var(--accent-gold),var(--accent-purple))}.card-header-icon{font-size:2.8rem;margin-bottom:12px;display:inline-block;filter:drop-shadow(0 0 16px rgba(6,182,212,.4))}.landing-card h2{font-size:1.45rem;font-weight:700;margin-bottom:6px;color:var(--text-main)}.landing-card-desc{font-size:.92rem;color:var(--text-muted);margin-bottom:24px}.login-form{display:flex;flex-direction:column;gap:18px;text-align:left}.form-group{display:flex;flex-direction:column;gap:6px}.form-group label{font-size:.84rem;font-weight:600;color:#cbd5e1}.label-optional{font-size:.75rem;color:#64748b;font-weight:400}.input-icon-wrapper{position:relative;display:flex;align-items:center}.input-icon-wrapper .input-icon{position:absolute;left:14px;font-size:1.1rem;pointer-events:none;opacity:.85}.input-icon-wrapper input{width:100%;background:#0f172ad9;border:1px solid rgba(255,255,255,.12);border-radius:10px;padding:12px 14px 12px 42px;color:#f8fafc;font-family:inherit;font-size:.96rem;transition:background-color .2s ease,border-color .2s ease,color .2s ease,box-shadow .2s ease,opacity .2s ease}.input-icon-wrapper input:focus{outline:none;border-color:var(--accent-cyan);background:#0f172a;box-shadow:0 0 16px #06b6d44d}.checkbox-label{display:flex;align-items:center;gap:10px;font-size:.85rem;color:var(--text-muted);cursor:pointer;-webkit-user-select:none;user-select:none}.checkbox-label input[type=checkbox]{accent-color:var(--accent-cyan);width:16px;height:16px;cursor:pointer}.form-actions{display:flex;flex-direction:column;gap:12px;margin-top:10px}.system-status-indicator{display:flex;align-items:center;justify-content:center;gap:10px;margin-top:24px;padding-top:18px;border-top:1px solid rgba(255,255,255,.08);font-size:.82rem;color:#94a3b8;font-family:var(--font-mono)}.status-dot{width:9px;height:9px;border-radius:50%;background:var(--accent-green);box-shadow:0 0 8px var(--accent-green)}.status-dot.pulse{animation:pulseGlow 2s infinite}@keyframes pulseGlow{0%,to{transform:scale(1);opacity:1}50%{transform:scale(1.3);opacity:.6}}.landing-pillars{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;width:100%}.pillar-card{text-align:center;padding:20px 16px;display:flex;flex-direction:column;align-items:center;gap:8px}.pillar-icon{font-size:1.8rem;margin-bottom:4px}.pillar-card h3{font-size:.98rem;font-weight:700;color:var(--text-main)}.pillar-card p{font-size:.82rem;color:var(--text-muted);line-height:1.4}@media(max-width:640px){.landing-pillars{grid-template-columns:1fr}.landing-title{font-size:2.4rem}.landing-card{padding:24px 18px}}.shared-map-note{margin:4px 0 14px;padding:10px 14px;border-radius:10px;border:1px solid rgba(6,182,212,.35);background:#06b6d41a;color:#a5f3fc;font-size:.9rem;text-align:center}.form-secondary-actions{display:flex;gap:10px;width:100%}.form-secondary-actions .btn{flex:1;justify-content:center}.popular-maps-teaser-card{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-top:24px;padding:18px 24px;background:linear-gradient(135deg,#1e293bb3,#0f172ad9);border:1px solid rgba(56,189,248,.25);border-radius:14px;box-shadow:0 4px 20px #00000059;transition:transform .2s ease,border-color .2s ease,box-shadow .2s ease}.popular-maps-teaser-card:hover{border-color:#38bdf880;box-shadow:0 8px 26px #38bdf826}.teaser-content{display:flex;align-items:center;gap:16px}.teaser-icon-wrapper{width:48px;height:48px;border-radius:12px;background:#38bdf81f;border:1px solid rgba(56,189,248,.3);display:flex;align-items:center;justify-content:center;font-size:1.5rem;flex-shrink:0}.teaser-text h3{font-size:1.15rem;font-weight:700;color:#f8fafc;margin-bottom:4px}.teaser-text p{font-size:.9rem;color:var(--text-muted);line-height:1.4;margin:0}.hub-container{width:100%;display:flex;flex-direction:column;gap:24px}.hub-header{display:flex;align-items:center;justify-content:space-between;padding:14px 22px;background:#131d33f2}.hub-brand{display:flex;align-items:center;gap:12px}.hub-logo{font-size:2rem;filter:drop-shadow(0 0 12px rgba(6,182,212,.5))}.hub-brand h2{font-size:1.25rem;font-weight:800;letter-spacing:.05em;margin:0;color:var(--text-main)}.hub-sub{font-size:.78rem;color:var(--accent-cyan);font-family:var(--font-mono);text-transform:uppercase}.hub-user-panel{display:flex;align-items:center;gap:16px}.user-chip,.score-chip{display:flex;align-items:center;gap:10px;padding:6px 14px;background:#0f172ab3;border:1px solid rgba(255,255,255,.1);border-radius:10px}.user-chip-icon,.score-chip-icon{font-size:1.2rem}.user-chip-label,.score-chip-label{display:block;font-size:.68rem;color:var(--text-muted);text-transform:uppercase;font-family:var(--font-mono)}.user-chip-val{font-weight:700;font-size:.9rem;color:var(--accent-cyan)}.score-chip-val{font-family:var(--font-mono);font-weight:800;font-size:1.05rem;color:var(--accent-gold)}.hub-intro{text-align:center;display:flex;flex-direction:column;align-items:center;gap:6px;margin:8px 0 4px}.hub-intro h1{font-size:2rem;font-weight:800;color:var(--text-main);margin:0}.hub-intro p{color:var(--text-muted);font-size:.95rem;max-width:600px}.modes-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;width:100%}.mode-card{display:flex;flex-direction:column;padding:24px;border-radius:16px;transition:background-color .3s ease,border-color .3s ease,color .3s ease,box-shadow .3s ease,opacity .3s ease;position:relative;overflow:hidden}.mode-active{border-color:#06b6d466;background:linear-gradient(180deg,#131d33f2,#0f172afa);box-shadow:0 10px 30px #00000080,0 0 20px #06b6d41f}.mode-active:hover{border-color:var(--accent-cyan);box-shadow:0 16px 40px #0009,0 0 30px #06b6d440}.mode-locked{border-color:#ffffff14;background:#131d3399;opacity:.85}.mode-locked:hover{opacity:1;border-color:#fff3}.mode-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px}.mode-icon-wrapper{width:50px;height:50px;border-radius:12px;display:flex;align-items:center;justify-content:center;background:#06b6d426;border:1px solid rgba(6,182,212,.3)}.mode-icon-wrapper.locked-icon{background:#ffffff0d;border-color:#ffffff1a}.mode-icon{font-size:1.8rem}.mode-badge{font-family:var(--font-mono);font-size:.72rem;font-weight:700;padding:4px 10px;border-radius:999px;text-transform:uppercase}.badge-active{background:#10b98126;color:var(--accent-green);border:1px solid rgba(16,185,129,.35)}.badge-locked{background:#f59e0b26;color:var(--accent-gold);border:1px solid rgba(245,158,11,.3)}.mode-title{font-size:1.35rem;font-weight:700;margin-bottom:10px;color:var(--text-main)}.mode-desc{font-size:.88rem;color:var(--text-muted);line-height:1.5;margin-bottom:18px;flex-grow:1}.mode-tags{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:22px}.mode-tag{font-size:.72rem;font-family:var(--font-mono);padding:3px 8px;border-radius:6px;background:#ffffff0d;border:1px solid rgba(255,255,255,.08);color:#cbd5e1}.mode-actions{margin-top:auto}@media(max-width:900px){.modes-grid{grid-template-columns:1fr}.hub-header{flex-direction:column;gap:12px;align-items:stretch}.hub-user-panel{flex-wrap:wrap;justify-content:space-between}}.hub-maps-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:16px;margin-top:24px}.daily-card,.code-card{display:flex;flex-direction:column;gap:12px;padding:18px 22px}.daily-card{border-color:#10b98159}.daily-head{display:flex;align-items:center;gap:12px}.daily-icon{display:grid;place-items:center;width:44px;height:44px;flex-shrink:0;border-radius:10px;border:2px solid var(--accent-green);border-top-width:8px;font-family:var(--font-mono);font-size:1.15rem;font-weight:800;color:var(--text-main)}.daily-date{font-size:.82rem;color:var(--accent-green)}.daily-card p,.code-card p{color:var(--text-muted);font-size:.9rem;flex:1}.daily-card .btn{align-self:flex-start}.code-row{display:flex;gap:8px}.code-row input{flex:1;min-width:0;background:#0f172ad9;border:1px solid rgba(255,255,255,.12);border-radius:10px;padding:10px 14px;color:var(--text-main);font-family:var(--font-mono);font-size:1rem;letter-spacing:.08em;text-transform:uppercase}.code-row input:focus-visible{outline:2px solid var(--accent-cyan);outline-offset:1px}.code-row input::placeholder{text-transform:none;letter-spacing:normal;color:#64748b}.code-error{color:#fca5a5;font-size:.85rem}.badge-dot{display:inline-block;width:.6em;height:.6em;margin-right:.45em;border-radius:50%;background:var(--accent-green)}.mode-badge .icon{margin-right:.35em}.bot-launch{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.bot-launch .btn{flex:1 1 auto}.bot-level{display:flex;align-items:center;gap:6px;font-size:.8rem;color:var(--text-muted)}.bot-level select{-webkit-appearance:none;-moz-appearance:none;appearance:none;color-scheme:dark;font:inherit;font-weight:600;color:var(--text-main);background-color:var(--bg-card);background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6' viewBox='0 0 10 6'%3E%3Cpath d='M1 1l4 4 4-4' fill='none' stroke='%2394a3b8' stroke-width='1.5'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 10px center;border:1px solid var(--bg-card-border);border-radius:999px;padding:6px 28px 6px 12px;cursor:pointer}.bot-level select:hover,.bot-level select:focus-visible{border-color:var(--accent-cyan)}.hub-puzzle-stars{margin:0 0 10px;font-size:.85rem;color:var(--accent-gold)}.popular-container{max-width:980px;margin:0 auto;padding:24px 16px 48px}.popular-header{display:flex;align-items:center;gap:20px;margin-bottom:24px;padding:18px 24px}.popular-header-info h2{font-size:1.4rem;font-weight:800;color:#f8fafc}.popular-subtitle{font-size:.88rem;color:var(--text-muted)}.popular-maps-list{display:flex;flex-direction:column;gap:20px}.popular-map-card{display:grid;grid-template-columns:240px 1fr;gap:24px;padding:20px;background:#101728cc;border:1px solid rgba(255,255,255,.08);border-radius:14px;transition:border-color .2s ease,box-shadow .2s ease}.popular-map-card:hover{border-color:#38bdf859;box-shadow:0 6px 20px #0006}.popular-map-preview-col{display:flex;flex-direction:column;align-items:center;gap:12px;padding-right:18px;border-right:1px solid rgba(255,255,255,.08)}.popular-map-preview{width:140px;height:140px;border-radius:10px;border:1px solid rgba(255,255,255,.15);background:#0b1120;box-shadow:0 4px 12px #0006}.popular-map-meta{display:flex;flex-direction:column;align-items:center;gap:4px;text-align:center}.popular-map-id{font-family:var(--font-mono);font-size:.82rem;font-weight:700;color:var(--accent-cyan)}.popular-map-plays{font-size:.78rem;color:var(--text-muted)}.popular-map-trait{font-size:.78rem;font-weight:700;color:#fbbf24;background:#fbbf241a;padding:3px 8px;border-radius:6px;border:1px solid rgba(251,191,36,.25);text-align:center;max-width:100%}.popular-map-leaderboard-col{display:flex;flex-direction:column;gap:12px}.popular-map-leaderboard-col h4{font-size:1.05rem;font-weight:700;color:#f1f5f9;display:flex;align-items:center;gap:8px}.leaderboard-table{display:flex;flex-direction:column;gap:6px}.leaderboard-row{display:flex;align-items:center;padding:8px 14px;background:#00000040;border:1px solid rgba(255,255,255,.04);border-radius:8px;font-size:.88rem;transition:background .15s ease}.leaderboard-row:hover{background:#ffffff0d}.leaderboard-row.rank-1{background:#fbbf2414;border-color:#fbbf244d}.leaderboard-row.rank-2{background:#38bdf814;border-color:#38bdf84d}.leaderboard-row.rank-3{background:#34d39914;border-color:#34d3994d}.rank-pos{width:44px;font-weight:700;font-family:var(--font-mono)}.rank-player{flex:1;font-weight:600;color:#f1f5f9;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.rank-score{font-family:var(--font-mono);font-weight:800;color:#38bdf8;font-size:.95rem}@media(max-width:768px){.popular-map-card{grid-template-columns:1fr}.popular-map-preview-col{padding-right:0;border-right:none;border-bottom:1px solid rgba(255,255,255,.08);padding-bottom:16px}.popular-maps-teaser-card{flex-direction:column;text-align:center}.teaser-content{flex-direction:column}}.medal-gold{color:#fbbf24}.medal-silver{color:#cbd5e1}.medal-bronze{color:#d97706}.hidden{display:none!important}.icon{display:inline-block;width:1.15em;height:1.15em;flex-shrink:0;vertical-align:-.2em}.with-icon{display:inline-flex;align-items:center;gap:.35em}.svg-defs{position:absolute;overflow:hidden}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}html[data-perf=low] *,html[data-perf=low] *:before,html[data-perf=low] *:after{animation:none!important;transition:none!important;box-shadow:none!important;text-shadow:none!important;filter:none!important}html[data-perf=low] body{background-image:none}.board-host{width:100%;aspect-ratio:1 / 1}.board{display:block;width:100%;height:100%;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent}.board-bg{fill:#0b111e}.board-frame{fill:none;stroke:#475569;stroke-width:6}.cell-bg{fill-opacity:.3}.cell.zone-hl .cell-bg{fill-opacity:.55}.cell-terrain.lake{fill:#075985}.cell-watermark{opacity:.45}.lake-icon{opacity:.8}.cell.has-unit .cell-watermark:not(.lake-icon){display:none}.res-pts{fill:#f8fafc;font-family:var(--font-mono);font-size:22px;font-weight:800;text-anchor:middle}.res-ore .res-pts{fill:#fcd34d}.res-biomass .res-pts{fill:#e9d5ff}.cell.res-off .cell-resource{display:none}.cell-frame{fill:none;stroke:transparent;stroke-width:6}.grid-lines{fill:none;stroke:#fff;stroke-opacity:.08;stroke-width:2;pointer-events:none}.zone-borders{fill:none;stroke:#e2e8f0;stroke-opacity:.85;stroke-width:6;stroke-linecap:round;pointer-events:none}.board-interactive .cell{cursor:pointer}.board-interactive .cell:hover .cell-frame{stroke:#f8fafc;stroke-opacity:.6}.board-interactive:focus{outline:none}.board-interactive:focus-visible{outline:3px solid var(--accent-cyan);outline-offset:4px;border-radius:6px}.board-interactive:focus-within .cell.cursor .cell-frame{stroke:#f8fafc;stroke-opacity:1;stroke-width:8}.board-interactive:focus-within .cell.cursor.preview-valid .cell-frame{stroke:#10b981}.board-interactive:focus-within .cell.cursor.preview-invalid .cell-frame{stroke:#ef4444}.board-interactive .cell.preview-valid .cell-frame{stroke:#10b981;stroke-opacity:1}.board-interactive .cell.preview-invalid{cursor:not-allowed}.board-interactive .cell.preview-invalid .cell-frame{stroke:#ef4444;stroke-opacity:1}.legal-mark{fill:none;stroke:transparent;stroke-width:4;stroke-dasharray:10 8;pointer-events:none}.cell.legal .legal-mark{stroke:#34d399;stroke-opacity:.5}.cell.legal.preview-valid .legal-mark{stroke:transparent}.zoi-preview-path{fill-opacity:.22;stroke-width:4;stroke-dasharray:6 6}.board-overlay{pointer-events:none}.ghost-token{opacity:.55}.preview-badge rect{fill:#0b111e;stroke-width:3}.preview-badge text{font-family:var(--font-mono);font-size:26px;font-weight:800;text-anchor:middle;dominant-baseline:central}.preview-badge.tone-gain rect{stroke:#34d399}.preview-badge.tone-gain text{fill:#6ee7b7}.preview-badge.tone-loss rect{stroke:#f87171}.preview-badge.tone-loss text{fill:#fca5a5}.preview-badge.tone-warn rect{stroke:#fbbf24}.preview-badge .badge-warn{color:#fbbf24}.preview-badge.tone-warn text{fill:#fde68a}.preview-badge.tone-neutral rect{stroke:#94a3b8}.preview-badge.tone-neutral text{fill:#e2e8f0}.tutorial-ring{fill:none;stroke:#fbbf24;stroke-width:8;pointer-events:none;animation:tutorial-pulse 1.6s ease-in-out infinite}@keyframes tutorial-pulse{50%{stroke-opacity:.35}}.token-placed{transform-box:fill-box;transform-origin:center;animation:token-pop .22s cubic-bezier(.2,.9,.3,1.3)}@keyframes token-pop{0%{transform:scale(.2);opacity:0}}@media(prefers-reduced-motion:reduce){.token-placed{animation:none}}.board-static{pointer-events:none}.board-mini .res-pts,.board-mini .cell-watermark:not(.lake-icon){display:none}.board-mini .zone-borders{stroke-width:8}.owner-ring{fill-opacity:.22;stroke-width:5}.owner-ring.owner-p1{fill:var(--player-1);stroke:var(--player-1)}.owner-ring.owner-p2{fill:var(--player-2);stroke:var(--player-2)}.cell-zoi.zoi-p1,.cell-zoi.zoi-p2,.cell-zoi.zoi-both{fill-opacity:.28;stroke-width:4;stroke-opacity:.9}.cell-zoi.zoi-p1{fill:var(--player-1);stroke:var(--player-1)}.cell-zoi.zoi-p2{fill:var(--player-2);stroke:var(--player-2)}.cell-zoi.zoi-both{fill:#c4b5fd;stroke:#c4b5fd;stroke-dasharray:10 6}.board-interactive.bot-turn .cell{cursor:progress}
