@font-face{font-family:Space Grotesk;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/space-grotesk-vietnamese-500-normal-BmEvtly_.woff2) format("woff2"),url(/assets/space-grotesk-vietnamese-500-normal-BTqKIpxg.woff) format("woff");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:Space Grotesk;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/space-grotesk-latin-ext-500-normal-DUe3BAxM.woff2) format("woff2"),url(/assets/space-grotesk-latin-ext-500-normal-3dgZTiw9.woff) format("woff");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:Space Grotesk;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/space-grotesk-latin-500-normal-lFbtlQH6.woff2) format("woff2"),url(/assets/space-grotesk-latin-500-normal-CNSSEhBt.woff) format("woff");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:Space Grotesk;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/space-grotesk-vietnamese-700-normal-DMty7AZE.woff2) format("woff2"),url(/assets/space-grotesk-vietnamese-700-normal-Duxec5Rn.woff) format("woff");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:Space Grotesk;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/space-grotesk-latin-ext-700-normal-BQnZhY3m.woff2) format("woff2"),url(/assets/space-grotesk-latin-ext-700-normal-HVCqSBdx.woff) format("woff");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:Space Grotesk;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/space-grotesk-latin-700-normal-RjhwGPKo.woff2) format("woff2"),url(/assets/space-grotesk-latin-700-normal-CwsQ-cCU.woff) format("woff");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{color-scheme:dark;--bg: #0e1014;--surface: #15181f;--border: #262b36;--text: #d7d3ca;--text-dim: #6b7280;--roads: #e8e4dc;--water: #4a90b8;--rail: #c4a35a;--parks: #5c8a58;--tier-correct: #3f9d63;--tier-near: #c4a35a;--tier-mid: #b06a38;--tier-far: #a34d45;--ember: #f0973f;--font-display: "Space Grotesk", -apple-system, sans-serif}*{box-sizing:border-box;margin:0}body{background:radial-gradient(1200px 600px at 50% -10%,#141926 0%,transparent 60%),var(--bg);color:var(--text);font:15px/1.5 -apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}.app{max-width:560px;margin:0 auto;padding:18px 16px 20px;display:flex;flex-direction:column;gap:14px;min-height:100dvh}.app>.credits,.app>.page-bottom{margin-top:auto}.page-bottom{display:flex;flex-direction:column;gap:6px}.panel{display:flex;flex-direction:column;gap:12px}@media(min-width:920px){.app{max-width:1020px;display:grid;grid-template-columns:minmax(0,1fr) 380px;grid-template-rows:auto auto 1fr;column-gap:28px;row-gap:14px;align-items:start}.masthead,.credits,.page-bottom{grid-column:1 / -1}.app>.credits,.app>.page-bottom{align-self:end;margin-top:0}.app>.map-stage,.app>.map-skeleton{grid-row:2;grid-column:1}.app>.panel{grid-row:2;grid-column:2;align-self:stretch;height:100%}.room-page .mp-roster{margin-top:auto;height:50%;max-height:none;flex-shrink:0}.app>.rooms-card{grid-column:1 / -1;width:100%;max-width:480px;justify-self:center}.app>.map-skeleton{grid-column:1 / -1;max-width:480px;justify-self:center}}.masthead{display:flex;align-items:center;justify-content:space-between}.brand{font-family:var(--font-display);font-size:22px;font-weight:700;letter-spacing:.22em;color:var(--roads)}.tagline{color:var(--text-dim);font-size:12px;letter-spacing:.04em}.puzzle-meta{font-family:var(--font-display);font-weight:500;font-size:12px;letter-spacing:.08em;color:var(--rail);border:1px solid color-mix(in srgb,var(--rail) 45%,transparent);border-radius:999px;padding:4px 12px;white-space:nowrap}.map-stage{position:relative;aspect-ratio:1;width:100%;border-radius:10px;overflow:hidden;background:#0a0c10}.map-stage:before{content:"";position:absolute;inset:0;background-image:repeating-linear-gradient(0deg,rgb(232 228 220 / .045) 0 1px,transparent 1px 72px),repeating-linear-gradient(90deg,rgb(232 228 220 / .045) 0 1px,transparent 1px 72px);z-index:0}.map-stage:after{content:"";position:absolute;inset:0;box-shadow:inset 0 0 110px 24px #00000080;pointer-events:none;z-index:2}.map-stage .layer{position:absolute;inset:0;width:100%;height:100%;opacity:0;transition:opacity .5s ease;-webkit-user-select:none;user-select:none;-webkit-user-drag:none;z-index:1}.map-stage .layer.visible{opacity:1}.map-stage .layer.visible.fresh{animation:layer-sweep .9s cubic-bezier(.22,.9,.35,1) both}@keyframes layer-sweep{0%{clip-path:inset(0 100% 0 0);opacity:.3;filter:brightness(1.9)}to{clip-path:inset(0 0 0 0);opacity:1;filter:brightness(1)}}.map-stage.celebrate{animation:celebrate-pulse 1.4s ease .35s}@keyframes celebrate-pulse{0%,to{filter:none}30%{filter:brightness(1.3) saturate(1.25)}}.hint-chip{position:absolute;left:50%;bottom:14px;translate:-50% 0;z-index:3;font-family:var(--font-display);font-size:11px;font-weight:500;letter-spacing:.14em;text-transform:uppercase;color:var(--bg);background:var(--rail);border-radius:999px;padding:5px 14px;animation:chip-in 2.4s ease both;pointer-events:none}@keyframes chip-in{0%{opacity:0;transform:translateY(8px)}10%,78%{opacity:1;transform:none}to{opacity:0}}@media(max-width:560px){.map-stage{margin:0 -16px;width:calc(100% + 32px);border-radius:0}}.hint-tracker{display:flex;flex-wrap:wrap;gap:8px}.hint-slot{flex:1 1 30%;min-width:96px;display:flex;align-items:center;justify-content:center;gap:7px;padding:7px 0;border:1px solid var(--border);border-radius:6px;font-family:var(--font-display);font-size:11px;font-weight:500;letter-spacing:.12em;text-transform:uppercase;position:relative}.hint-slot svg{width:16px;height:16px}.hint-slot.unlocked.hint-roads{color:var(--roads);border-color:color-mix(in srgb,var(--roads) 35%,transparent)}.hint-slot.unlocked.hint-water{color:var(--water);border-color:color-mix(in srgb,var(--water) 45%,transparent)}.hint-slot.unlocked.hint-rail{color:var(--rail);border-color:color-mix(in srgb,var(--rail) 45%,transparent)}.hint-slot.unlocked.hint-parks{color:#7fb37a;border-color:color-mix(in srgb,#5c8a58 55%,transparent)}.hint-slot.unlocked.hint-pop,.hint-slot.unlocked.hint-country,.hint-slot.unlocked.hint-letter{color:var(--roads);border-color:color-mix(in srgb,var(--rail) 55%,transparent);background:color-mix(in srgb,var(--rail) 10%,transparent);text-transform:none;letter-spacing:.04em;font-size:12px}.hint-slot.next{color:var(--text-dim);border-style:dashed;animation:next-breathe 2.4s ease-in-out infinite}.hint-slot.locked{color:color-mix(in srgb,var(--text-dim) 45%,transparent);border-style:dashed}@keyframes next-breathe{0%,to{border-color:var(--border)}50%{border-color:color-mix(in srgb,var(--rail) 55%,transparent)}}.hint-next-tag{position:absolute;top:-7px;right:8px;font-size:9px;letter-spacing:.1em;color:var(--rail);background:var(--bg);padding:0 5px}.guess-list{list-style:none;padding:0;display:flex;flex-direction:column;gap:6px}.guess-row{position:relative;display:flex;justify-content:space-between;align-items:center;min-height:42px;padding:0 12px;border:1px solid var(--border);border-radius:6px;background:var(--surface);overflow:hidden}.guess-row.empty{background:transparent;border-style:dashed;justify-content:flex-start;opacity:.7}.slot-num{font-family:var(--font-display);font-size:11px;color:color-mix(in srgb,var(--text-dim) 55%,transparent)}.guess-row.filled{animation:row-pop .35s ease-out both}@keyframes row-pop{0%{transform:translateY(7px) scale(.985);opacity:0}to{transform:none;opacity:1}}.guess-row.filled:before{content:"";position:absolute;inset:0;width:var(--fill, 0%);background:color-mix(in srgb,var(--tier-color, transparent) 16%,transparent);border-right:1px solid color-mix(in srgb,var(--tier-color, transparent) 35%,transparent);transition:width .8s cubic-bezier(.22,.9,.35,1)}.guess-row.tier-correct{--tier-color: var(--tier-correct);border-color:var(--tier-correct)}.guess-row.tier-near{--tier-color: var(--tier-near)}.guess-row.tier-mid{--tier-color: var(--tier-mid)}.guess-row.tier-far{--tier-color: var(--tier-far)}.guess-name,.guess-hint,.guess-hit{position:relative;z-index:1}.guess-name{display:flex;align-items:baseline;gap:8px;min-width:0}.guess-country{color:var(--text-dim);font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.guess-hint{display:flex;align-items:center;gap:7px;color:var(--text);font-family:var(--font-display);font-weight:500;font-variant-numeric:tabular-nums;white-space:nowrap;font-size:13px}.bearing-arrow{width:17px;height:17px;color:var(--tier-color, var(--text-dim));transition:transform .7s cubic-bezier(.34,1.4,.5,1)}.guess-input{position:relative}.guess-input input{width:100%;padding:12px 14px;font:inherit;color:var(--text);background:var(--surface);border:1px solid var(--border);border-radius:8px;outline:none;transition:border-color .2s ease,box-shadow .2s ease}.guess-input input:focus{border-color:var(--water);box-shadow:0 0 0 3px color-mix(in srgb,var(--water) 22%,transparent)}.ac-list{position:absolute;top:calc(100% + 4px);left:0;right:0;list-style:none;padding:4px;background:var(--surface);border:1px solid var(--border);border-radius:8px;max-height:280px;overflow-y:auto;z-index:10;box-shadow:0 10px 30px #00000073}.ac-list li{display:flex;justify-content:space-between;gap:12px;padding:8px 10px;border-radius:5px;cursor:pointer}.ac-list li.highlight{background:var(--border)}.ac-country{color:var(--text-dim);font-size:12px}.result-panel{text-align:center;padding:16px;border:1px solid var(--border);border-radius:10px;background:var(--surface);display:flex;flex-direction:column;gap:8px;animation:row-pop .4s ease-out both}.result-headline{font-weight:600}.result-answer{font-family:var(--font-display);font-weight:700;letter-spacing:.04em;font-size:22px;color:var(--roads)}.result-stats{display:flex;justify-content:center;gap:26px;margin-top:4px}.result-stats dt{color:var(--text-dim);font-size:11px;text-transform:uppercase;letter-spacing:.06em}.result-stats dd{font-family:var(--font-display);font-size:20px;font-variant-numeric:tabular-nums}.result-comeback{color:var(--text-dim);font-size:13px}.credits{color:var(--text-dim);font-size:11px;text-align:center}.masthead-right{display:flex;align-items:center;gap:8px}.streak-chip{position:relative;font-family:var(--font-display);font-size:13px;font-weight:700;color:var(--ember);background:color-mix(in srgb,var(--ember) 10%,transparent);border:1px solid color-mix(in srgb,var(--ember) 40%,transparent);border-radius:999px;padding:5px 12px;white-space:nowrap}@property --spark-angle{syntax: "<angle>"; initial-value: 0deg; inherits: false;}.streak-chip:before{content:"";position:absolute;inset:-1px;border-radius:999px;padding:1.5px;background:conic-gradient(from var(--spark-angle),transparent 0 82%,color-mix(in srgb,var(--ember) 55%,#ffe9c4) 93%,transparent 100%);filter:blur(.4px) drop-shadow(0 0 3px var(--ember));-webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);mask-composite:exclude;-webkit-mask-composite:xor;animation:spark-lap 4.5s linear infinite;pointer-events:none}@keyframes spark-lap{0%{--spark-angle: 0deg}60%{--spark-angle: 360deg}to{--spark-angle: 360deg}}@media(prefers-reduced-motion:reduce){.streak-chip:before{animation:none}}.help-btn{width:30px;height:30px;border-radius:50%;border:1px solid color-mix(in srgb,var(--rail) 45%,transparent);background:var(--surface);color:var(--rail);font:700 14px var(--font-display);cursor:pointer}.help-btn:hover{color:var(--roads);border-color:var(--rail)}.nav-pill{font-family:var(--font-display);font-weight:500;font-size:12px;letter-spacing:.06em;color:var(--rail);border:1px solid color-mix(in srgb,var(--rail) 45%,transparent);border-radius:999px;padding:6px 13px;text-decoration:none;white-space:nowrap}.nav-pill:hover,.nav-pill:focus-visible{border-color:var(--rail);color:var(--roads)}.room-code-tag{font-family:var(--font-display);font-weight:700;font-size:13px;letter-spacing:.22em;text-transform:uppercase;color:var(--rail)}.view-results{width:100%}.map-skeleton{aspect-ratio:1;width:100%;border-radius:10px;background:linear-gradient(100deg,var(--surface) 40%,#1d2230 50%,var(--surface) 60%);background-size:200% 100%;animation:shimmer 1.4s ease infinite}@keyframes shimmer{0%{background-position:120% 0}to{background-position:-80% 0}}.answer-overlay{position:absolute;inset:auto 0 0;z-index:3;padding:40px 18px 16px;background:linear-gradient(transparent,#000000a6);animation:answer-in .9s cubic-bezier(.22,.9,.35,1) .5s both;pointer-events:none}.answer-name{font-family:var(--font-display);font-weight:700;font-size:24px;letter-spacing:.1em;text-transform:uppercase;color:var(--roads);text-shadow:0 2px 12px rgb(0 0 0 / .8)}@keyframes answer-in{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}.dist{display:flex;flex-direction:column;gap:4px;text-align:left;margin-top:4px}.dist-title{color:var(--text-dim);font-size:11px;text-transform:uppercase;letter-spacing:.06em;margin-bottom:2px}.dist-row{display:flex;align-items:center;gap:8px}.dist-label{font-family:var(--font-display);font-size:11px;color:var(--text-dim);width:10px;text-align:right}.dist-track{flex:1;height:14px;display:flex}.dist-bar{height:100%;border-radius:0 4px 4px 0;background:color-mix(in srgb,var(--roads) 22%,transparent);transition:width .6s cubic-bezier(.22,.9,.35,1)}.dist-bar.today{background:var(--tier-correct)}.dist-count{font-family:var(--font-display);font-size:11px;color:var(--text-dim);font-variant-numeric:tabular-nums;min-width:16px;text-align:left}.share-btn{align-self:center;font:600 14px var(--font-display);letter-spacing:.08em;color:var(--bg);background:var(--rail);border:none;border-radius:8px;padding:10px 28px;cursor:pointer;margin-top:4px;transition:transform .12s ease,filter .12s ease}.share-btn:hover{filter:brightness(1.1)}.share-btn:active{transform:scale(.96)}.countdown{font-family:var(--font-display);font-variant-numeric:tabular-nums;color:var(--text)}.overlay-backdrop{position:fixed;inset:0;z-index:50;background:#0009;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);display:grid;place-items:center;padding:20px;animation:fade-in .25s ease both}@keyframes fade-in{0%{opacity:0}to{opacity:1}}.overlay-panel{max-width:420px;background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:22px;display:flex;flex-direction:column;gap:14px;animation:row-pop .35s ease-out both}.overlay-panel h2{font-family:var(--font-display);font-size:17px;letter-spacing:.1em;text-transform:uppercase;color:var(--roads)}.help-demo{display:flex;flex-direction:column;gap:12px}.help-step{display:grid;grid-template-columns:22px 118px minmax(0,1fr);gap:12px;align-items:center}.help-badge{width:22px;height:22px;border-radius:50%;background:var(--rail);color:var(--bg);font:700 12px/22px var(--font-display);text-align:center}.help-mock{background:#0a0c10;border:1px solid var(--border);border-radius:8px;padding:8px;display:grid;place-items:center;min-height:64px;min-width:0;overflow:hidden}.help-text{font-size:13px;color:var(--text-dim);line-height:1.45}.help-text strong{color:var(--text);display:block}.mini-map{width:80px;height:80px}.mini-map .mini-water{animation:mini-reveal 3.2s ease-in-out infinite}.mini-map .mini-rail{animation:mini-reveal 3.2s ease-in-out 1.6s infinite}@keyframes mini-reveal{0%,15%,to{opacity:0}40%,75%{opacity:1}}.mini-tracker{display:flex;gap:5px}.mini-slot{width:15px;height:15px;border-radius:4px;border:1px dashed var(--border)}.mini-slot.on{border-style:solid;border-color:var(--roads)}.mini-slot.on.water{border-color:var(--water);background:color-mix(in srgb,var(--water) 25%,transparent)}.mini-slot.next{border-color:var(--rail);animation:next-breathe 2.4s ease-in-out infinite}.mini-guesses{display:flex;flex-direction:column;gap:4px;width:100%}.mini-row{display:flex;justify-content:space-between;align-items:center;gap:5px;font-size:8.5px;padding:2px 5px;border-radius:4px;border:1px solid var(--border);background:var(--surface);white-space:nowrap;min-width:0}.mini-row span:first-child{overflow:hidden;text-overflow:ellipsis}.mini-row .mini-hint{flex-shrink:0}.mini-row .mini-hint{color:var(--text-dim);font-variant-numeric:tabular-nums}.mini-row.far{border-color:color-mix(in srgb,var(--tier-far) 60%,transparent);background:color-mix(in srgb,var(--tier-far) 12%,var(--surface))}.mini-row.near{border-color:color-mix(in srgb,var(--tier-near) 60%,transparent);background:color-mix(in srgb,var(--tier-near) 12%,var(--surface))}.mini-row.correct{border-color:var(--tier-correct);background:color-mix(in srgb,var(--tier-correct) 14%,var(--surface))}.mini-input{width:100%;font-size:10px;color:var(--text-dim);border:1px solid var(--water);border-radius:5px;padding:6px 8px;background:var(--surface);box-shadow:0 0 0 2px color-mix(in srgb,var(--water) 20%,transparent)}.mini-caret{display:inline-block;width:1px;height:10px;background:var(--text);margin-left:2px;vertical-align:-1px;animation:caret-blink 1.1s step-end infinite}@keyframes caret-blink{50%{opacity:0}}.fx-track{position:absolute;left:0;right:0;bottom:calc(10% - 3px);border-top:2px dashed color-mix(in srgb,var(--rail) 60%,transparent);z-index:3;pointer-events:none;animation:track-fade 2.3s ease both}@keyframes track-fade{0%,to{opacity:0}15%,82%{opacity:1}}.fx-train-wrap{position:absolute;left:0;bottom:10%;width:min(42%,220px);z-index:3;pointer-events:none;animation:train-cross 2.3s cubic-bezier(.3,0,.7,1) both}@keyframes train-cross{0%{transform:translate(-108%)}to{transform:translate(min(260%,1600px))}}.fx-train{display:block;width:100%;filter:drop-shadow(0 3px 8px rgb(0 0 0 / .5))}.fx-train-chug{animation:chug .16s linear infinite alternate}@keyframes chug{0%{transform:translateY(0)}to{transform:translateY(1px)}}.fx-train .wheel{animation:wheel-spin .55s linear infinite;transform-box:fill-box;transform-origin:center}@keyframes wheel-spin{to{transform:rotate(360deg)}}.fx-train .puff{animation:puff 1.05s ease-out infinite;transform-box:fill-box;transform-origin:center;opacity:0}.fx-train .puff-2{animation-delay:.35s}.fx-train .puff-3{animation-delay:.7s}@keyframes puff{0%{opacity:.55;transform:translate(0) scale(.45)}to{opacity:0;transform:translate(-17px,-23px) scale(1.8)}}.fx-water{position:absolute;inset:0;width:100%;height:100%;z-index:3;pointer-events:none}.fx-water .ripple{fill:none;stroke:var(--water);stroke-width:1.3;vector-effect:non-scaling-stroke;transform-box:fill-box;transform-origin:center;animation:ripple 1.5s ease-out both;opacity:0}@keyframes ripple{0%{transform:scale(.12);opacity:.9}to{transform:scale(2.6);opacity:0}}.fx-trees{position:absolute;left:0;right:0;bottom:5%;height:24%;width:100%;z-index:3;pointer-events:none;animation:fx-window 2.5s ease both}.fx-trees .tree{animation:tree-grow .7s cubic-bezier(.34,1.5,.5,1) both;transform-box:fill-box;transform-origin:bottom center}@keyframes tree-grow{0%{transform:scaleY(0)}to{transform:scaleY(1)}}.fx-lights{position:absolute;inset:0;width:100%;height:100%;z-index:3;pointer-events:none;animation:fx-window 2.5s ease both}.fx-lights .light{animation:light-twinkle 1.1s ease-in-out infinite;opacity:0}@keyframes light-twinkle{0%,to{opacity:0}45%{opacity:.95}}.fx-letter{position:absolute;inset:0;display:grid;place-items:center;z-index:3;pointer-events:none}.fx-letter span{font-family:var(--font-display);font-weight:700;font-size:clamp(120px,40vw,220px);line-height:1;color:var(--roads);text-shadow:0 6px 30px rgb(0 0 0 / .85);animation:letter-stamp 2.5s cubic-bezier(.2,1.1,.35,1) both}@keyframes letter-stamp{0%{opacity:0;transform:scale(2.8) rotate(-10deg)}14%{opacity:.95;transform:scale(1) rotate(-5deg)}74%{opacity:.95;transform:scale(1) rotate(-5deg)}to{opacity:0;transform:scale(1.06) rotate(-5deg)}}.fx-flag{flex-direction:column;display:grid;gap:2px}.fx-flag .fx-flag-emoji{font-size:clamp(90px,28vw,150px);line-height:1.1;text-shadow:0 8px 40px rgb(0 0 0 / .7);animation:letter-stamp 2.5s cubic-bezier(.2,1.1,.35,1) both;text-align:center}.fx-flag .fx-flag-name{font-family:var(--font-display);font-weight:700;font-size:clamp(20px,5vw,32px);letter-spacing:.14em;text-transform:uppercase;color:var(--roads);text-shadow:0 3px 16px rgb(0 0 0 / .85);text-align:center;animation:letter-stamp 2.5s cubic-bezier(.2,1.1,.35,1) .08s both}.endgame-panel{text-align:center;min-width:min(420px,86vw)}.endgame-score{font-size:15px}.endgame-score strong{font-family:var(--font-display);font-size:22px;color:var(--rail)}.endgame-score-note{color:var(--text-dim);font-size:12px}.endgame-guesses{list-style:none;padding:0;display:flex;flex-direction:column;gap:5px;text-align:left}.endgame-guesses li{display:flex;justify-content:space-between;gap:10px;padding:6px 10px;border-radius:6px;border:1px solid var(--border);background:var(--bg);font-size:13px}.endgame-guesses li.tier-correct{border-color:var(--tier-correct)}.endgame-guesses li.tier-near{border-color:color-mix(in srgb,var(--tier-near) 60%,transparent)}.endgame-guesses li.tier-mid{border-color:color-mix(in srgb,var(--tier-mid) 55%,transparent)}.endgame-guesses .eg-dist{color:var(--text-dim);font-variant-numeric:tabular-nums;white-space:nowrap}@keyframes fx-window{0%,to{opacity:0}10%,78%{opacity:1}}.fx-burst{position:absolute;inset:0;width:100%;height:100%;z-index:3;pointer-events:none;transform-origin:center;animation:burst 1.05s cubic-bezier(.2,.7,.3,1) both}.fx-burst line{stroke:var(--roads)}.fx-burst g:nth-child(3n) line{stroke:var(--water)}.fx-burst g:nth-child(3n+2) line{stroke:var(--rail)}@keyframes burst{0%{transform:scale(.25);opacity:0}22%{opacity:1}to{transform:scale(1.3);opacity:0}}.rooms-card{display:flex;flex-direction:column;gap:14px;padding:18px;border:1px solid var(--border);border-radius:10px;background:var(--surface);text-align:center}.rooms-field{display:flex;flex-direction:column;gap:6px;text-align:left;font-size:13px;color:var(--text-dim)}.rooms-field input,.rooms-code-input{padding:11px 12px;font:inherit;color:var(--text);background:var(--bg);border:1px solid var(--border);border-radius:8px;outline:none}.rooms-field input:focus,.rooms-code-input:focus{border-color:var(--water)}.rooms-code-input{font-family:var(--font-display);font-size:18px;letter-spacing:.3em;text-transform:uppercase;text-align:center;width:100%}.rooms-divider{color:var(--text-dim);font-size:12px;display:flex;align-items:center;gap:10px}.rooms-divider:before,.rooms-divider:after{content:"";flex:1;border-top:1px solid var(--border)}.rooms-join{display:flex;gap:8px}.rooms-error{color:var(--tier-far);font-size:13px}.rooms-hint-text{color:var(--text-dim);font-size:13px;text-align:center}.share-btn:disabled{opacity:.45;cursor:not-allowed}.lobby-code-label{color:var(--text-dim);font-size:11px;text-transform:uppercase;letter-spacing:.08em}.lobby-code{font-family:var(--font-display);font-size:30px;font-weight:700;letter-spacing:.3em;color:var(--roads);background:none;border:1px dashed var(--border);border-radius:8px;padding:10px;cursor:pointer}.lobby-code:hover{border-color:var(--rail)}.lobby-players{list-style:none;padding:0;display:flex;flex-wrap:wrap;gap:8px;justify-content:center}.lobby-players li{border:1px solid var(--border);border-radius:999px;padding:5px 14px;font-size:13px}.lobby-host-tag{color:var(--rail);font-size:10px;text-transform:uppercase;letter-spacing:.08em;margin-left:7px}.hint-progress{display:flex;align-items:center;gap:12px}.timer-ring{position:relative;width:52px;height:52px;flex-shrink:0}.timer-ring svg{width:100%;height:100%}.timer-ring .ring-bg{fill:var(--surface);stroke:var(--border);stroke-width:3}.timer-ring .ring-fg{fill:none;stroke:var(--rail);stroke-width:3;stroke-linecap:round;transition:stroke-dashoffset .2s linear}.timer-ring.urgent .ring-fg{stroke:var(--tier-far)}.timer-ring.urgent .timer-digits{color:var(--tier-far);animation:urgent-pulse 1s ease-in-out infinite}.timer-digits{position:absolute;inset:0;display:grid;place-items:center;font-family:var(--font-display);font-weight:700;font-size:13px;font-variant-numeric:tabular-nums;color:var(--roads)}@keyframes urgent-pulse{50%{opacity:.55}}.hint-progress-track{position:relative;flex:1;height:26px;border:1px solid var(--border);border-radius:999px;overflow:hidden;background:var(--surface)}.hint-progress-fill{position:absolute;inset:0 auto 0 0;background:color-mix(in srgb,var(--rail) 30%,transparent);transition:width .15s linear}.hint-progress-label{position:relative;display:block;text-align:center;line-height:24px;font-family:var(--font-display);font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--text)}.hint-progress-label.dim{color:var(--text-dim)}.mp-roster{list-style:none;padding:4px;display:flex;flex-direction:column;gap:4px;max-height:176px;overflow-y:auto;border:1px solid var(--border);border-radius:8px;background:var(--surface)}.mp-roster li{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--text);border-radius:6px;padding:5px 8px;background:var(--bg)}.mp-roster li.me{outline:1px solid color-mix(in srgb,var(--rail) 45%,transparent)}.roster-rank{font-family:var(--font-display);font-weight:700;font-size:11px;color:var(--rail);min-width:22px}.roster-name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.roster-score{font-family:var(--font-display);font-variant-numeric:tabular-nums;color:var(--text-dim)}.roster-initial{width:20px;height:20px;border-radius:50%;display:grid;place-items:center;font:700 10px var(--font-display);background:color-mix(in srgb,var(--rail) 30%,transparent);color:var(--roads)}.roster-state{color:var(--text-dim);font-variant-numeric:tabular-nums}.mp-roster li.answered{border-color:color-mix(in srgb,var(--tier-correct) 50%,transparent)}.mp-roster li.answered .roster-initial{background:color-mix(in srgb,var(--tier-correct) 35%,transparent)}.mp-roster li.answered .roster-state{color:var(--tier-correct)}.mp-roster li.wrong{border-color:color-mix(in srgb,var(--tier-far) 50%,transparent)}.mp-roster li.wrong .roster-initial{background:color-mix(in srgb,var(--tier-far) 35%,transparent)}.mp-roster li.wrong .roster-state{color:var(--tier-far)}.results-table{width:100%;border-collapse:collapse;font-size:14px}.results-table td{padding:7px 8px;border-bottom:1px solid var(--border);text-align:left}.results-table td.pts{text-align:right;font-family:var(--font-display);font-variant-numeric:tabular-nums}.results-table tr.correct td{color:var(--tier-correct)}.my-guess p:first-child{font-size:16px}.reveal-card{padding:12px;gap:4px}.reveal-answer{font-family:var(--font-display);font-weight:700;font-size:17px;letter-spacing:.08em;text-transform:uppercase;color:var(--roads)}.podium{list-style:none;padding:0;display:flex;flex-direction:column;gap:6px}.podium li{display:flex;align-items:center;gap:12px;padding:9px 12px;border:1px solid var(--border);border-radius:8px;background:var(--bg)}.podium li.me{border-color:var(--rail)}.podium li:first-child{border-color:var(--tier-correct)}.podium-rank{font-family:var(--font-display);font-weight:700;color:var(--rail);min-width:30px}.podium-name{flex:1;text-align:left;display:flex;align-items:baseline;gap:8px;min-width:0}.podium-correct{color:var(--text-dim);font-size:11px;white-space:nowrap}.podium-rounds{display:flex;gap:4px}.podium-thumb{width:20px;height:20px;border-radius:4px;overflow:hidden;background:#0a0c10;outline:1px solid color-mix(in srgb,var(--tier-far) 65%,transparent)}.podium-thumb.ok{outline:2px solid var(--tier-correct)}.podium-thumb img{width:100%;height:100%;object-fit:cover}.podium-score{font-family:var(--font-display);font-variant-numeric:tabular-nums}.ac-list li:active{transform:scale(.99)}.help-btn:active{transform:scale(.92)}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}.fact-label{display:block;font-family:var(--font-display);font-size:10px;font-weight:700;letter-spacing:2px;text-transform:uppercase;color:var(--water);margin-bottom:4px}.reveal-fact{margin:6px 0 0;font-size:14px;line-height:1.5;border-top:1px solid var(--border);padding-top:8px;animation:fact-in .6s ease-out .9s both}@keyframes fact-in{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:none}}.fact-card{border:1px solid color-mix(in srgb,var(--water) 40%,var(--border));background:color-mix(in srgb,var(--water) 7%,var(--bg));border-radius:8px;padding:10px 12px;font-size:13.5px;line-height:1.5;text-align:left}.fact-more{display:inline-block;margin-top:6px;font-size:12.5px;color:var(--water);text-decoration:none}.fact-more:hover,.fact-more:focus-visible{text-decoration:underline}.cp-crumb{font-size:12px;color:var(--text-dim)}.cp-crumb a{color:var(--text-dim)}.cp-crumb a:hover{color:var(--text)}.cp-hero{display:grid;grid-template-columns:minmax(0,380px) 1fr;gap:22px;align-items:stretch}@media(max-width:680px){.cp-hero{grid-template-columns:1fr}}.cp-stack{position:relative;aspect-ratio:1;border-radius:10px;overflow:hidden;background:#0b0d11;border:1px solid var(--border)}.cp-stack img{position:absolute;inset:0;width:100%;height:100%;transition:opacity .5s;-webkit-user-select:none;user-select:none}.cp-stack img.off{opacity:0}.cp-meta{display:flex;flex-direction:column;gap:12px;min-width:0}.cp-chip{align-self:flex-start;font-family:var(--font-display);font-size:10.5px;font-weight:700;letter-spacing:1.8px;text-transform:uppercase;color:var(--rail);border:1px solid color-mix(in srgb,var(--rail) 45%,transparent);border-radius:99px;padding:3px 10px}.cp-name{font-family:var(--font-display);font-size:clamp(30px,5vw,42px);font-weight:700;letter-spacing:-1px;line-height:1.05;margin:0}.cp-country{color:var(--text-dim);font-size:14px;margin:-6px 0 0}.layer-chips{display:flex;flex-wrap:wrap;gap:7px}.layer-chip{font:600 12.5px var(--font-display);padding:6px 12px;border-radius:99px;border:1px solid var(--border);background:var(--bg);color:var(--text-dim);cursor:pointer;transition:border-color .2s,color .2s}.layer-chip[data-layer=roads]{color:var(--roads);border-color:color-mix(in srgb,var(--roads) 35%,transparent);cursor:default}.layer-chip[data-layer=water][aria-pressed=true]{border-color:var(--water);color:var(--water)}.layer-chip[data-layer=rail][aria-pressed=true]{border-color:var(--rail);color:var(--rail)}.layer-chip[data-layer=parks][aria-pressed=true]{border-color:var(--parks);color:color-mix(in srgb,var(--parks) 70%,var(--roads))}.cp-chip-hint{font-size:11.5px;color:var(--text-dim);margin:-4px 0 0}.cp-cta-row{display:flex;align-items:center;gap:14px;margin-top:auto;flex-wrap:wrap}.cp-cta{text-decoration:none;text-align:center}.cp-cta-ghost{font:600 13px var(--font-display);color:var(--text-dim);text-decoration:none}.cp-cta-ghost:hover,.cp-cta-ghost:focus-visible{color:var(--text)}.cp-story{display:flex;flex-direction:column;gap:10px}.cp-story .fact-label{margin:0}.cp-story p{margin:0;max-width:66ch;font-size:14.5px;line-height:1.65}.cp-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:10px}.cp-stat{border:1px solid var(--border);border-radius:8px;padding:10px 12px;background:var(--surface)}.cp-stat b{display:block;font-family:var(--font-display);font-size:17px;font-variant-numeric:tabular-nums;letter-spacing:-.3px}.cp-stat span{font-size:11px;color:var(--text-dim);letter-spacing:.6px;text-transform:uppercase}.cp-pending{color:var(--text-dim);font-size:13px}.cities-search{background:var(--surface);border:1px solid var(--border);border-radius:8px;padding:9px 12px;color:var(--text);font-size:13.5px}.cities-search::placeholder{color:var(--text-dim)}.cities-wall{display:grid;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:12px}.wall-tile{display:flex;flex-direction:column;gap:5px;font-size:12.5px;color:var(--text-dim);text-decoration:none}.wall-tile img{width:100%;aspect-ratio:1;border-radius:8px;background:#0b0d11;border:1px solid var(--border);transition:border-color .2s}.wall-tile:hover img,.wall-tile:focus-visible img{border-color:color-mix(in srgb,var(--roads) 45%,transparent)}.wall-tile b{color:var(--text);font-weight:600;line-height:1.2}.cities-empty{grid-column:1 / -1;color:var(--text-dim)}@media(min-width:920px){.app.city-page,.app.cities-page{display:flex;max-width:1020px;align-items:stretch}.app.city-page>.credits,.app.cities-page>.credits{align-self:stretch;margin-top:auto}}.brand a{color:inherit;text-decoration:none}.brand a:hover,.brand a:focus-visible{color:var(--rail)}.masthead-right{flex-wrap:wrap;justify-content:flex-end}
