:root{--bg:#ffffff;--surface:#ffffff;--line:#d0d0d0;--line-strong:#000000;--text:#111111;--muted:#5b5b5b;--success:#2a7c53;--failure:#a64033}*{box-sizing:border-box}body,html{min-height:100%;margin:0}body{background:var(--bg);color:var(--text);font-family:Arial,Helvetica,sans-serif}button,input{font:inherit}.page-shell{min-height:100dvh;padding:8px}.page-shell-room{padding:0;min-height:100dvh;height:100dvh;display:flex;flex-direction:column;overflow:hidden}.page-glow{display:none}.app-shell{display:grid;grid-gap:8px;gap:8px;width:min(1440px,100%);margin:0 auto}.app-shell-room{width:100%;gap:0;flex:1 1;min-height:0;display:flex;flex-direction:column}.app-shell-home{width:min(1180px,100%)}.app-shell-narrow{width:min(1040px,100%)}.hero-card,.map-card,.modal-card,.panel-card{border:1px solid var(--line);background:var(--surface)}.hero-card,.map-card,.panel-card{padding:16px}.hero-card{display:grid;grid-gap:16px;gap:16px}.hero-card-home{align-content:start}.hero-card-header{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.eyebrow,.modal-eyebrow{margin:0;color:var(--muted);font-size:.72rem;letter-spacing:.12em;text-transform:uppercase}h1,h2,h3{margin:0;font-family:Arial,Helvetica,sans-serif;font-weight:700;line-height:1.08}h1{font-size:clamp(1.6rem,3vw,2.7rem);max-width:24ch}.hero-card-home h1{max-width:none}h2{font-size:clamp(1.4rem,2vw,2rem)}h3{font-size:1.2rem}.hero-copy,.modal-copy,.panel-copy{margin:0;color:var(--muted);line-height:1.5}.button-row,.hero-actions,.legend-row{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.button-row{justify-content:flex-end}.button-row-start{justify-content:flex-start}.create-header,.create-step-block,.create-step-heading,.create-step-summary,.field-stack,.setup-stack,.share-stack{display:grid;grid-gap:12px;gap:12px}.field-stack span{font-size:.9rem;color:var(--muted)}.create-header{grid-template-columns:1fr auto 1fr;align-items:center}.create-header-title{text-align:center;font-size:clamp(1.5rem,2.4vw,2rem)}.create-header>.icon-only-button{justify-self:start}.create-header-spacer,.create-header>.primary-button{justify-self:end}.create-header-spacer{width:44px;height:44px}.field-stack-plain{gap:0}.icon-button,.option-card,.primary-button,.secondary-button,.segment-button,.text-input{border:1px solid var(--line-strong);border-radius:10px}.icon-button,.option-card,.primary-button,.secondary-button,.segment-button{cursor:pointer}.primary-button{padding:10px 14px;background:#000;color:#fff}.secondary-button,.segment-button{padding:10px 14px;background:#fff;color:#000}.icon-only-button{width:44px;height:44px;padding:0;display:inline-grid;place-items:center}.icon-button-active,.secondary-button-active,.segment-button.active{background:#000;color:#fff}.icon-button{width:36px;height:36px;display:inline-grid;place-items:center;padding:0;background:#000;color:#fff}.icon-button-outline{background:#fff;color:#000}.icon-svg{width:18px;height:18px}button:disabled{cursor:not-allowed;opacity:.5}.segmented-control{display:flex;gap:10px;flex-wrap:wrap}.join-drawer{display:grid;max-height:0;opacity:0;overflow:hidden;transition:max-height .18s ease,opacity .18s ease,margin-top .18s ease}.join-drawer.open{max-height:420px;opacity:1;margin-top:4px}.join-drawer-inner{display:grid;grid-gap:16px;gap:16px;padding:16px;border:1px solid var(--line)}.join-inline-grid,.region-grid{display:grid;grid-gap:12px;gap:12px}.join-inline-grid{grid-template-columns:minmax(180px,220px) minmax(0,1fr)}.region-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.region-card{display:grid;grid-gap:10px;gap:10px;text-align:left;padding:14px;border:1px solid var(--line-strong);background:#fff;cursor:pointer;transition:transform .18s ease,border-color .18s ease,box-shadow .18s ease,background-color .18s ease}.region-card:hover{transform:translateY(-2px);border-color:#111827;box-shadow:0 14px 28px -16px rgba(17,24,39,.35);background:#fafafa}.region-card:hover .region-preview-map{background:#e1edf0}.region-card:active{transform:translateY(0)}.region-card span{color:var(--muted);line-height:1.45}.region-card-copy{display:grid;grid-gap:6px;gap:6px}.home-feature-card{display:grid;grid-gap:16px;gap:16px;grid-template-columns:minmax(0,1fr) minmax(260px,360px);align-items:center}.your-games-card{display:grid;grid-gap:18px;gap:18px}.your-games-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-gap:10px;gap:10px}.your-games-stat{display:grid;grid-gap:4px;gap:4px;padding:12px 14px;border:1px solid var(--line);background:#fafafa;border-radius:10px;align-content:start}.your-games-stat-wide{grid-column:span 3}.your-games-stat-value{font-size:1.6rem;font-weight:700;line-height:1}.your-games-stat-value-sm{font-size:.95rem;font-weight:600;line-height:1.2}.your-games-stat-label{color:var(--muted);font-size:.72rem;letter-spacing:.12em;text-transform:uppercase}.your-games-month{display:grid;grid-gap:8px;gap:8px}.your-games-month-label{margin:0;font-size:.8rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}.your-games-list{list-style:none;margin:0;padding:0;display:grid;grid-gap:10px;gap:10px}.your-games-row{display:grid;grid-template-columns:64px minmax(0,1fr) auto;align-items:center;grid-gap:14px;gap:14px;padding:10px 12px;border:1px solid var(--line);background:#fafafa;border-radius:10px}.your-games-preview{width:64px;height:48px;border:1px solid var(--line);padding:4px;background:#fff}.your-games-preview .region-preview-map{min-height:0;height:100%}.your-games-meta{display:grid;grid-gap:2px;gap:2px;min-width:0}.your-games-meta strong{font-size:1rem}.your-games-sub{color:var(--muted);font-size:.85rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}@media (max-width:540px){.your-games-row{grid-template-columns:56px minmax(0,1fr);grid-template-rows:auto auto;row-gap:8px}.your-games-row>.secondary-button{grid-column:1/-1;justify-self:stretch}}.how-steps-card{display:grid;grid-gap:14px;gap:14px}.how-steps-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-gap:14px;gap:14px}.how-step{display:grid;grid-gap:8px;gap:8px;padding:16px;border:1px solid var(--line);background:#fafafa;align-content:start}.how-step-number{display:inline-grid;place-items:center;width:32px;height:32px;border-radius:999px;background:#111827;color:#fff;font-weight:700;font-size:.95rem}.how-step strong{font-size:1rem}.how-step p{margin:0;color:var(--muted);line-height:1.5;font-size:.93rem}@media (max-width:720px){.how-steps-grid{grid-template-columns:1fr}}.home-feature-copy{display:grid;grid-gap:10px;gap:10px}.home-feature-preview{width:min(100%,340px);justify-self:end;border:1px solid var(--line);padding:8px}.region-preview-map{display:grid;place-items:center;width:100%;min-height:92px;background:#eef5f7;overflow:hidden}.region-preview-map-world{padding:0}.region-preview-map-image{width:100%;height:100%;min-height:92px;object-fit:cover;display:block}.region-card-preview .region-preview-map{min-height:88px}.create-flow-card{display:grid;grid-gap:28px;gap:28px}.text-input{width:100%;padding:12px 14px;background:#fff;color:#000}.text-input-code{letter-spacing:.16em;text-transform:uppercase}.inline-message{padding:10px 12px;border:1px solid #000;background:#f3f3f3;color:#111}.board-layout{display:flex;flex-direction:column;flex:1 1;min-height:0;min-width:0;gap:0;position:relative}.room-topbar{display:flex;align-items:center;gap:6px;padding:5px 10px;border-bottom:1px solid var(--line);min-height:34px;flex-wrap:nowrap}.room-topbar .secondary-button{padding:0 10px;height:30px;font-size:.82rem;border-radius:6px;display:inline-flex;align-items:center}.room-topbar .icon-button{width:30px;height:30px;border-radius:6px}.room-topbar .icon-button .icon-svg{width:16px;height:16px}.room-topbar-left{gap:8px}.room-topbar-center,.room-topbar-left{display:flex;align-items:center;min-width:0;flex:1 1;overflow:hidden}.room-topbar-center{justify-content:center;white-space:nowrap;text-overflow:ellipsis}.room-topbar-right{display:flex;align-items:center;gap:6px;flex-shrink:0}.room-topbar-meta{color:var(--muted);font-size:.8rem;line-height:1.2}.room-topbar-ready,.room-topbar-region,.room-topbar-status{font-size:.85rem;font-weight:700;line-height:1.2}.room-topbar-difficulty{font-size:.72rem;font-weight:600;text-transform:uppercase;letter-spacing:.06em;padding:2px 7px;border:1px solid var(--line-strong);border-radius:3px;color:var(--muted)}.room-topbar-ready{font-weight:500}.map-card{display:flex;min-width:0;padding:0}.map-card,.map-frame{flex:1 1;min-height:0;border:0}.map-frame{background:#d7ebf7;position:relative;overflow:hidden;touch-action:none}.map-frame svg{display:block;width:100%;height:100%;cursor:-webkit-grab;cursor:grab}.map-frame-locked .rsm-svg,.turn-progress{pointer-events:none}.turn-progress{position:absolute;top:0;left:0;right:0;height:22px;background:rgba(17,24,39,.08);z-index:3;overflow:hidden;border-bottom:1px solid rgba(17,24,39,.12)}.turn-progress-label{position:absolute;inset:0;display:grid;place-items:center;font-size:.75rem;font-weight:600;color:#111827;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;letter-spacing:.02em;text-shadow:0 0 6px rgba(255,255,255,.6)}.country-hover-name{position:absolute;top:34px;right:12px;z-index:3;padding:6px 12px;background:rgba(17,24,39,.88);color:#f9fafb;border-radius:999px;font-size:.85rem;font-weight:600;pointer-events:none;box-shadow:0 8px 18px -14px rgba(0,0,0,.4)}.scoreboard-bar{justify-content:space-between;padding:8px 14px;background:#fff;border-bottom:1px solid var(--line);font-size:.88rem}.scoreboard-bar,.scoreboard-side{display:flex;align-items:center;gap:8px}.scoreboard-side{min-width:0}.scoreboard-side-right{flex-direction:row;justify-content:flex-end}.scoreboard-side-active .scoreboard-name{font-weight:700}.scoreboard-badge{display:flex;align-items:center;gap:6px;padding:3px 8px 3px 4px;border-radius:100px;background:rgba(17,24,39,.06);flex-shrink:0}.scoreboard-side-right .scoreboard-badge{padding:3px 4px 3px 8px}.scoreboard-side-active .scoreboard-badge{background:#111827;animation:badge-pulse 1.8s ease-in-out infinite}.scoreboard-side-active .scoreboard-score{color:#fff}.scoreboard-swatch{width:14px;height:14px;border-radius:50%;flex-shrink:0}.scoreboard-turn-arrow{font-size:.55rem;line-height:1;flex-shrink:0;animation:arrow-bounce 1.8s ease-in-out infinite}.scoreboard-turn-arrow-right{margin-right:-2px;--arrow-dir:2px}.scoreboard-turn-arrow-left{margin-left:-2px;--arrow-dir:-2px}@keyframes arrow-bounce{0%,to{transform:translateX(0)}50%{transform:translateX(var(--arrow-dir,0))}}@keyframes badge-pulse{0%,to{box-shadow:0 0 0 0 var(--swatch-color,currentColor)}50%{box-shadow:0 0 0 4px color-mix(in srgb,var(--swatch-color,currentColor) 35%,transparent)}}.scoreboard-name{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:#111827;font-size:.88rem}.scoreboard-score{font-feature-settings:"tnum";font-variant-numeric:tabular-nums;font-weight:700;font-size:.92rem;color:#111827;min-width:18px;text-align:center}.scoreboard-vs{font-size:.72rem;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);flex-shrink:0}@media (max-width:520px){.scoreboard-bar{padding:6px 10px;font-size:.82rem}.scoreboard-name{font-size:.82rem;max-width:80px}}.turn-progress-fill{position:absolute;top:0;left:0;bottom:0;background:linear-gradient(90deg,#22c55e,#facc15 55%,#ef4444);transition:width .4s cubic-bezier(.4,.2,.2,1)}.map-hint{position:absolute;bottom:72px;left:50%;z-index:2;display:flex;align-items:flex-start;gap:12px;max-width:min(520px,calc(100% - 32px));padding:14px 14px 14px 16px;background:#111827;color:#f9fafb;border-radius:12px;box-shadow:0 18px 42px -20px rgba(0,0,0,.45);font-size:.92rem;line-height:1.45;pointer-events:auto;animation:coach-enter .42s cubic-bezier(.22,1,.36,1) both}@keyframes coach-enter{0%{opacity:0;transform:translateX(-50%) translateY(12px)}to{opacity:1;transform:translateX(-50%) translateY(0)}}.map-hint-body{display:grid;grid-gap:4px;gap:4px}.map-hint-label{letter-spacing:.04em;text-transform:uppercase;font-size:.75rem;color:#facc15;animation:coach-label-in .35s ease both}@keyframes coach-label-in{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.map-hint-message{margin:0}.typewriter-cursor{display:inline-block;width:2px;height:1em;margin-left:1px;vertical-align:text-bottom;background:currentColor;animation:cursor-blink .6s steps(1) infinite}@keyframes cursor-blink{0%,to{opacity:1}50%{opacity:0}}.map-hint-close{border:none;background:transparent;color:inherit;font-size:1.4rem;line-height:1;cursor:pointer;padding:0 4px;opacity:.5;transition:opacity .16s ease}.map-hint-close:hover{opacity:1}@keyframes map-toast-in{0%{opacity:0;transform:translate(-50%,24px)}to{opacity:1;transform:translate(-50%)}}.map-toast{position:absolute;left:50%;bottom:20px;transform:translateX(-50%);z-index:2;padding:12px 18px;max-width:min(560px,calc(100% - 32px));background:#111827;color:#f9fafb;border-radius:999px;box-shadow:0 18px 42px -22px rgba(0,0,0,.5);font-size:.95rem;text-align:center;line-height:1.35;animation:map-toast-in .26s cubic-bezier(.2,.8,.2,1);pointer-events:none}.map-toast-hint{background:#1f2937;border:1px solid rgba(250,204,21,.5);color:#fef3c7;border-radius:14px}.map-toast-hint-lifted{bottom:72px}.shield-guide{margin-top:8px;padding-top:8px;border-top:1px solid rgba(255,255,255,.12)}.shield-guide-row{display:flex;gap:10px;flex-wrap:wrap}.shield-guide-item{display:flex;align-items:center;gap:4px;font-size:.75rem;color:#d1d5db}.shield-guide-note{margin:6px 0 0;font-size:.72rem;color:#9ca3af;line-height:1.3}.turn-history-panel{position:absolute;top:12px;right:12px;width:min(300px,calc(100% - 24px));max-height:calc(100% - 24px);z-index:5;display:flex;flex-direction:column;background:#fff;border:1px solid var(--line-strong);border-radius:12px;box-shadow:0 12px 32px rgba(0,0,0,.18);overflow:hidden;transform:translate(calc(100% + 24px),-8px);opacity:0;transition:transform .22s cubic-bezier(.2,.8,.2,1),opacity .18s ease;pointer-events:none;visibility:hidden}.turn-history-panel-open{transform:translate(0);opacity:1;pointer-events:auto;visibility:visible}.turn-history-panel-inner{display:flex;flex-direction:column;width:100%;min-height:0}.turn-history-header{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:12px 14px;border-bottom:1px solid rgba(17,24,39,.08)}.turn-history-title{margin:0;font-size:.95rem;font-weight:700;letter-spacing:.02em;color:#111827}.turn-history-close{width:28px;height:28px;display:grid;place-items:center;background:transparent;border:1px solid transparent;border-radius:999px;color:var(--muted);font-size:1.25rem;line-height:1;cursor:pointer;transition:background .16s ease,color .16s ease,border-color .16s ease}.turn-history-close:hover{background:#f3f4f6;color:#111827;border-color:var(--line)}.turn-history-replay{display:grid;grid-gap:6px;gap:6px;padding:12px 14px;border-bottom:1px solid rgba(17,24,39,.08);background:rgba(17,24,39,.04)}.turn-history-replay-progress{font-size:.72rem;letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}.turn-history-replay-text{margin:0;font-size:.92rem;color:#111827;line-height:1.35}.turn-history-replay-controls{display:flex;gap:8px;margin-top:4px}.turn-history-list{list-style:none;margin:0;padding:4px 0;max-height:216px;overflow-y:auto;overscroll-behavior:contain}.turn-history-empty{margin:0;padding:18px 14px;text-align:center;color:var(--muted);font-size:.9rem}.turn-history-item{display:grid;grid-gap:4px;gap:4px;padding:10px 14px;border-bottom:1px solid rgba(17,24,39,.06)}.turn-history-item-current{background:rgba(250,204,21,.18);border-left:3px solid #f59e0b;padding-left:11px}.turn-history-item-row{display:flex;align-items:center;gap:8px}.turn-history-num{font-feature-settings:"tnum";font-variant-numeric:tabular-nums;font-size:.72rem;color:var(--muted);font-weight:700;letter-spacing:.04em}.turn-history-swatch{width:14px;height:10px;border-radius:3px;border:1px solid transparent}.turn-history-player{font-size:.85rem;color:#111827;font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.turn-history-text{margin:0;font-size:.85rem;color:#374151;line-height:1.35}.howto-modal{text-align:center}.howto-art{font-size:3.4rem;line-height:1;margin:4px 0 0}.howto-title{text-align:center}.howto-modal .modal-copy{text-align:center;max-width:38ch;margin:0 auto}.howto-dots{display:inline-flex;justify-content:center;gap:8px;margin:4px auto 0;padding:0}.howto-dot{width:9px;height:9px;border-radius:999px;border:none;padding:0;background:#d1d5db;cursor:pointer;transition:background .16s ease,transform .16s ease}.howto-dot-active{background:#111827;transform:scale(1.2)}.howto-checkbox{display:inline-flex;align-items:center;justify-content:center;gap:8px;font-size:.9rem;color:var(--muted);cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none}.howto-checkbox input{width:16px;height:16px;cursor:pointer}.howto-actions{display:flex;justify-content:space-between;align-items:center;gap:10px}.howto-nav-button{width:44px;height:44px;display:grid;place-items:center;padding:0;background:#fff;color:#000;border:1px solid var(--line-strong);border-radius:999px;cursor:pointer;transition:background .16s ease,color .16s ease,transform .12s ease}.howto-nav-button:hover:not(:disabled){background:#f3f4f6}.howto-nav-button:active:not(:disabled){transform:scale(.95)}.howto-nav-button:disabled{opacity:.35;cursor:not-allowed}.howto-nav-button-primary{background:#000;color:#fff;border-color:#000}.howto-nav-button-primary:hover:not(:disabled){background:#1f2937}.howto-nav-button .icon-svg{width:20px;height:20px}.win-mode-block{display:grid;grid-gap:10px;gap:10px;margin-top:4px}.win-mode-label{color:var(--muted);font-size:.72rem;letter-spacing:.12em;text-transform:uppercase}.win-mode-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:8px;gap:8px}.win-mode-grid-3{grid-template-columns:repeat(3,minmax(0,1fr))}.win-mode-option{display:grid;grid-gap:4px;gap:4px;text-align:left;padding:12px;border:1px solid var(--line-strong);background:#fff;cursor:pointer;transition:border-color .16s ease,background-color .16s ease,transform .16s ease}.win-mode-option:hover{transform:translateY(-1px);background:#f3f4f6}.win-mode-option-active:hover{background:#111827;color:#fff}.win-mode-option span{font-size:.85rem;color:var(--muted);line-height:1.35}.win-mode-option-active{border-color:#111827;background:#111827;color:#fff}.win-mode-option-active span{color:rgba(255,255,255,.75)}.win-mode-note{margin:0;color:var(--muted);font-size:.82rem;line-height:1.45}.win-mode-turn-limit{display:flex;align-items:center;gap:10px;font-size:.9rem;color:var(--text)}.win-mode-turn-limit span{display:inline-flex;gap:6px;align-items:center}.text-input-inline{width:72px;padding:6px 8px}@media (max-width:720px){.win-mode-grid{grid-template-columns:1fr}}.game-over-card{display:grid;grid-gap:14px;gap:14px}.score-row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:12px;gap:12px}.score-pill{display:grid;grid-gap:4px;gap:4px;padding:14px 16px;border:1px solid var(--line-strong);background:#fff}.score-pill span{color:var(--muted);font-size:.88rem}.score-pill-winner{border-color:#111827;background:#111827;color:#fff}.score-pill-winner span{color:rgba(255,255,255,.78)}.modal-copy-muted{color:var(--muted);font-size:.9rem}.map-replay-hud{position:absolute;top:16px;right:16px;z-index:4;display:flex;align-items:flex-start;gap:10px;background:rgba(255,255,255,.94);border:1px solid var(--line);padding:10px 12px;max-width:min(380px,calc(100% - 32px));-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.map-replay-hud-meta{display:grid;grid-gap:2px;gap:2px;min-width:0}.map-replay-hud-progress{font-size:.72rem;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}.map-replay-hud-text{margin:0;font-size:.92rem;line-height:1.25;overflow-wrap:anywhere}.map-replay-hud-controls{display:flex;gap:6px}.replay-icon-button{width:34px;height:34px;display:grid;place-items:center;padding:0;border:1px solid var(--line);border-radius:999px;background:rgba(255,255,255,.92);color:#111827;cursor:pointer;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);transition:background .16s ease,border-color .16s ease,transform .16s ease}.replay-icon-button:hover{background:#fff;border-color:var(--line-strong)}.replay-icon-button:active{transform:scale(.94)}.replay-icon-button .icon-svg{width:18px;height:18px}.modal-corner-actions{position:absolute;top:8px;right:8px;display:flex;gap:6px;z-index:3}.modal-share-button{width:32px;height:32px;display:grid;place-items:center;padding:0;border:1px solid var(--line);border-radius:999px;background:#fff;color:#111827;cursor:pointer;transition:background .16s ease,border-color .16s ease,transform .16s ease}.modal-share-button:hover{background:#f3f4f6;border-color:var(--line-strong)}.modal-share-button:active{transform:scale(.94)}.modal-share-button .icon-svg{width:18px;height:18px}.share-toast{position:fixed;left:50%;bottom:24px;transform:translateX(-50%);z-index:30;padding:10px 14px;background:#111827;color:#fff;border:1px solid #111827;font-size:.92rem;pointer-events:none}.rematch-status{display:flex;align-items:center;gap:10px;padding:10px 12px;border:1px dashed var(--line);color:var(--muted);font-size:.92rem}.rematch-status[data-both=true]{color:#065f46;border-color:#065f46;border-style:solid}.rematch-status p{margin:0}.rematch-dot{width:10px;height:10px;border-radius:999px;background:#d1d5db;box-shadow:inset 0 0 0 1px rgba(17,24,39,.25)}.rematch-dot-on{background:#22c55e;box-shadow:0 0 0 2px rgba(34,197,94,.25)}.button-row-end{display:flex;justify-content:flex-end;gap:10px}@media (max-width:520px){.score-row{grid-template-columns:1fr}}.end-fx,.modal-backdrop-fx{overflow:hidden}.end-fx{position:fixed;inset:0;pointer-events:none;z-index:11}.firework{position:absolute;width:4px;height:4px;transform:scale(var(--fx-scale,1));animation:firework-fade 1.8s ease-out infinite}.firework span{position:absolute;top:0;left:0;width:6px;height:6px;border-radius:999px;background:hsl(var(--fx-hue,20),90%,60%);box-shadow:0 0 10px 2px hsl(var(--fx-hue,20),90%,60%);transform:rotate(var(--fx-angle,0deg)) translateY(0);animation:firework-spark 1.8s cubic-bezier(.25,.85,.35,1) infinite}@keyframes firework-spark{0%{transform:rotate(var(--fx-angle)) translateY(0) scale(1);opacity:1}70%{opacity:.9}to{transform:rotate(var(--fx-angle)) translateY(-80px) scale(.2);opacity:0}}@keyframes firework-fade{0%,60%{opacity:1}to{opacity:.35}}.end-fx-rain-sky{position:absolute;inset:0;background:linear-gradient(180deg,rgba(30,41,59,.55),rgba(30,41,59,.15) 60%,rgba(30,41,59,0))}.raindrop{position:absolute;top:-40px;width:1.5px;height:22px;background:linear-gradient(180deg,rgba(226,232,240,.8),rgba(226,232,240,0));animation-name:rain-fall;animation-timing-function:linear;animation-iteration-count:infinite}@keyframes rain-fall{0%{transform:translateY(-40px)}to{transform:translateY(110vh)}}.map-frame svg:active{cursor:-webkit-grabbing;cursor:grabbing}.modal-eyebrow-spaced{margin-top:4px}.share-stack code{display:block;padding:10px 12px;border:1px solid var(--line-strong);background:#fff;overflow-wrap:anywhere}.modal-backdrop{position:fixed;inset:0;display:grid;place-items:center;padding:20px;background:rgba(0,0,0,.2);z-index:10}.modal-card{width:min(620px,100%);display:grid;grid-gap:16px;gap:16px;padding:18px;position:relative}.modal-close{position:absolute;top:8px;right:8px;width:32px;height:32px;display:grid;place-items:center;background:transparent;border:1px solid transparent;border-radius:999px;color:var(--muted);font-size:1.35rem;line-height:1;cursor:pointer;transition:background .16s ease,color .16s ease,border-color .16s ease}.modal-close:hover{background:#f3f4f6;color:#111827;border-color:var(--line)}.share-result-modal{max-width:640px}.share-result-preview{border-radius:10px;overflow:hidden;background:#0f172a}.share-result-preview img{display:block;width:100%;height:auto}.share-result-toast{text-align:center;font-size:.85rem;color:var(--muted)}.modal-card-compact{width:min(520px,100%)}.claim-form,.options-grid{display:grid;grid-gap:12px;gap:12px}.options-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.option-card{padding:14px 12px;background:#fff;color:#000;text-align:left}.pill{display:inline-block;padding:4px 8px;border:1px solid #000;background:#fff;font-size:.84rem}.result-banner{padding:14px 16px;font-weight:600;border:1px solid}.result-banner.success{color:var(--success)}.result-banner.failure{color:var(--failure)}.question-progress{font-size:.92rem;color:var(--muted)}@media (max-width:1100px){.home-feature-card,.join-inline-grid,.region-grid{grid-template-columns:1fr}.home-feature-preview{width:100%;justify-self:stretch}.room-topbar-ready{display:none}}@media (max-width:720px){.page-shell{padding:6px}.page-shell-room{padding:0}.room-topbar{padding:6px 10px;gap:6px}.room-topbar-meta{display:none}.room-topbar-region,.room-topbar-status{font-size:.9rem}.options-grid,.segmented-control{grid-template-columns:1fr}.segmented-control{display:grid}.button-row button{width:100%}h1{font-size:clamp(1.8rem,10vw,3rem);max-width:11ch}}.postgame-bar-wrap{position:relative;z-index:6}.postgame-bar{gap:12px;padding:10px 14px;background:#111827;color:#fff;font-size:.88rem;min-height:48px;flex-wrap:wrap}.postgame-bar,.postgame-result{display:flex;align-items:center}.postgame-result{gap:10px;flex-shrink:0}.postgame-title{font-weight:700;font-size:.95rem;letter-spacing:.01em}.postgame-reason{color:rgba(255,255,255,.55);font-size:.82rem}.postgame-scores{display:flex;gap:6px}.postgame-score-chip{display:inline-flex;align-items:center;gap:5px;padding:2px 8px;border-radius:3px;font-weight:600;font-size:.85rem;background:rgba(255,255,255,.1)}.postgame-score-chip-winner{background:rgba(255,255,255,.22)}.postgame-score-swatch{width:10px;height:10px;border-radius:2px;flex-shrink:0}.postgame-replay{display:flex;align-items:center;gap:6px;margin-left:auto}.postgame-replay .replay-icon-button{width:30px;height:30px;background:rgba(255,255,255,.1);border-color:rgba(255,255,255,.2);color:#fff}.postgame-replay .replay-icon-button:hover{background:rgba(255,255,255,.2);border-color:rgba(255,255,255,.35)}.postgame-replay .replay-icon-button:disabled{opacity:.3;cursor:default}.postgame-replay .replay-icon-button .icon-svg{width:15px;height:15px}.postgame-replay-counter{font-feature-settings:"tnum";font-variant-numeric:tabular-nums;font-size:.78rem;color:rgba(255,255,255,.6);min-width:56px;text-align:center}.postgame-actions{display:flex;align-items:center;gap:6px;margin-left:auto}.postgame-replay+.postgame-actions{margin-left:0}.postgame-actions .replay-icon-button{width:30px;height:30px;background:rgba(255,255,255,.1);border-color:rgba(255,255,255,.2);color:#fff}.postgame-actions .replay-icon-button:hover{background:rgba(255,255,255,.2);border-color:rgba(255,255,255,.35)}.postgame-exit-button,.postgame-rematch-button{padding:5px 12px;font-size:.82rem;font-weight:600;border:1px solid rgba(255,255,255,.25);border-radius:3px;cursor:pointer;transition:background .12s ease,border-color .12s ease}.postgame-exit-button{background:transparent;color:rgba(255,255,255,.75)}.postgame-exit-button:hover{background:rgba(255,255,255,.1);color:#fff}.postgame-rematch-button{background:#fff;color:#111827;border-color:#fff}.postgame-rematch-button:hover{background:#e5e7eb;border-color:#e5e7eb}.postgame-rematch-button:disabled{opacity:.6;cursor:default}.postgame-caption{padding:6px 14px 8px;background:rgba(17,24,39,.85);color:rgba(255,255,255,.88);font-size:.84rem;line-height:1.3;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.postgame-bar-wrap .end-fx{pointer-events:none;position:fixed;inset:0;z-index:50}.map-toast-explore{animation:fadeIn .6s ease both;animation-delay:1.5s;opacity:0}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.country-info-backdrop{position:fixed;inset:0;z-index:20;background:rgba(0,0,0,.25);display:grid;place-items:center;padding:16px}.country-info-popover{position:relative;background:#fff;border:1px solid var(--line-strong);padding:20px 22px;max-width:380px;width:100%;max-height:calc(100vh - 32px);overflow-y:auto;box-shadow:0 12px 36px rgba(0,0,0,.16)}.country-info-popover .modal-close{position:absolute;top:8px;right:8px}.country-info-name{margin:0 0 4px;font-size:1.2rem;font-weight:700}.country-info-detail{margin:0 0 4px;font-size:.9rem;color:var(--muted)}.country-info-owner{font-weight:600}.country-info-facts{display:flex;flex-direction:column;gap:3px;margin-top:12px;padding-top:12px;border-top:1px solid var(--line);font-size:.86rem;color:var(--muted)}.country-info-questions{margin-top:14px;padding-top:14px;border-top:1px solid var(--line)}.country-info-q-header{margin:0 0 8px;font-size:.78rem;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);font-weight:600}.country-info-q{margin-bottom:10px}.country-info-q:last-child{margin-bottom:0}.country-info-q-prompt{margin:0;font-size:.88rem;line-height:1.35}.country-info-q-answer{margin:2px 0 0;font-size:.86rem;color:#16a34a;font-weight:600}@media (max-width:700px){.postgame-bar{gap:8px;padding:8px 10px;font-size:.82rem}.postgame-result{gap:6px;flex-wrap:wrap}.postgame-reason{display:none}.postgame-replay{margin-left:0;order:10;width:100%;justify-content:center;padding-top:4px;border-top:1px solid rgba(255,255,255,.12)}.postgame-actions{margin-left:auto}}