:root{color-scheme:dark;--bg:#101918;--panel:#192321;--panel2:#202d28;--ink:#f2f4ea;--muted:#a0b3a8;--line:#34453c;--acc:#b9ef8c;--bad:#f19789;--radius:18px}
*{box-sizing:border-box}html,body{margin:0;min-height:100%;background:var(--bg);color:var(--ink);font-family:Inter,"Segoe UI",system-ui,sans-serif}body{font-size:14px}button,input{font:inherit}button,a,input,summary{-webkit-tap-highlight-color:transparent}button{cursor:pointer}button{color:var(--ink)}button:disabled{cursor:default;opacity:.45}button:focus-visible,a:focus-visible,input:focus-visible,summary:focus-visible{outline:2px solid var(--acc);outline-offset:4px}button:not(:disabled):active{transform:translateY(1px)}a{color:inherit;text-decoration:none}[hidden]{display:none!important}.sr-only{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.menu{max-width:1240px;margin:auto;padding:0 48px;background:radial-gradient(ellipse at 18% 48%,#203a2b55,transparent 50%)}.site-header{height:100px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line)}.brand{font-size:24px;font-weight:750;letter-spacing:-1px;display:flex;align-items:center;gap:3px}.brand>span:not(.brand-mark){color:var(--acc)}.brand-mark{font-size:36px;color:var(--acc);margin-right:8px;font-weight:400}.brand sup{font-family:monospace;font-size:10px;letter-spacing:0;color:var(--muted);border:1px solid var(--line);padding:3px 5px;margin-left:8px;align-self:flex-start;margin-top:10px}.header-note{font-size:12px;color:var(--muted);display:flex;gap:8px;align-items:center}.header-note i,.live-dot{display:inline-block;width:5px;height:5px;border-radius:50%;background:var(--acc)}
.menu-layout{display:grid;grid-template-columns:1fr 1.08fr;gap:64px;padding:48px 0 44px;align-items:start}.intro{padding-top:20px}.eyebrow{font-size:10px;font-weight:650;letter-spacing:2px;color:var(--muted);display:flex;align-items:center;gap:9px}.eyebrow>span{width:18px;height:1px;background:var(--acc)}h1{font-size:clamp(58px,6.6vw,88px);line-height:1.03;font-weight:650;letter-spacing:-5px;margin:22px 0}h1 em{font-weight:500;color:var(--acc);font-style:normal}.intro-copy{max-width:340px;font-size:15px;line-height:1.8;color:var(--muted);margin:0}.globe-scene{margin:10px -12px 28px}.globe{width:100%;height:auto;max-height:310px;display:block}.globe-caption{display:flex;align-items:center;gap:8px;color:var(--muted);font-size:10px;letter-spacing:.5px;padding:0 24px}.globe-caption>span:last-child{margin-left:auto}.how-to{display:flex;gap:24px;border-top:1px solid var(--line);padding-top:24px}.how-to>div{display:flex;gap:9px;align-items:center}.how-to b{color:var(--acc);font-family:monospace;font-size:11px}.how-to span{color:var(--muted);font-size:11px}.stats-line{margin-top:24px;color:var(--muted);font-size:11px;line-height:1.7}.stats-line b{color:var(--ink)}
.setup{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:27px;box-shadow:0 24px 60px #0002}.setup-heading{display:flex;justify-content:space-between;align-items:start;margin-bottom:25px}.setup-heading .eyebrow{font-size:9px;letter-spacing:1.6px}.setup-heading h2{font-size:25px;letter-spacing:-.7px;font-weight:600;margin:8px 0 0}.tag{color:var(--muted);font-size:8px;letter-spacing:1px;padding:6px 8px;border:1px solid var(--line);border-radius:5px}fieldset{border:0;padding:0;margin:0 0 21px;min-width:0}legend{padding:0;margin:0 0 11px;color:var(--acc);font-size:10px;font-family:monospace;display:flex;align-items:center;gap:9px;width:100%}legend>span{font-family:Inter,"Segoe UI",system-ui,sans-serif;font-size:12px;font-weight:600;color:var(--ink)}legend>.legend-value{margin-left:auto;color:var(--muted);font-family:monospace;font-size:11px;font-weight:400}
.modes{display:grid;grid-template-columns:repeat(3,1fr);gap:7px}.modes button,.opts button{background:#15201c;border:1px solid var(--line);border-radius:9px;transition:background .15s,border-color .15s}.modes button{padding:12px 10px;text-align:left;position:relative}.mode-icon{display:block;font-family:monospace;font-size:13px;margin-bottom:10px;color:var(--muted)}.modes strong{display:block;font-size:12px;font-weight:600}.modes small,.opts small{display:block;color:var(--muted);font-size:9px;margin-top:4px;line-height:1.4}.modes button.sel,.opts button.sel{background:#2c3e29;border-color:var(--acc)}.modes .sel .mode-icon{color:var(--acc)}.modes .sel:after{content:"";position:absolute;right:10px;top:11px;width:5px;height:5px;border-radius:50%;background:var(--acc)}.modes button:hover:not(:disabled),.opts button:hover:not(:disabled){border-color:#8baa8b}.streak-mode{grid-column:span 2}.streak-mode .mode-icon{float:left;font-size:25px;margin:4px 14px 0 1px}.streak-mode strong{margin-top:3px}.opts{display:flex;gap:7px}.opts button{flex:1;padding:10px 5px;font-size:12px;font-weight:600}.opts small{font-weight:400}.range-row{display:flex;gap:13px;align-items:center;margin-top:8px}.range-row label{font-size:11px;color:var(--muted);min-width:24px}.range-row output{font-family:monospace;font-size:11px;color:var(--acc);min-width:24px;text-align:right}input[type=range]{flex:1;min-width:0;accent-color:var(--acc);height:18px;cursor:pointer}.setting-note{margin:9px 0 0;font-size:10px;line-height:1.6;color:var(--muted)}.settings-pair{display:grid;grid-template-columns:1fr 1.2fr;gap:24px}.settings-pair fieldset{margin-bottom:17px}
#coopBox{border-top:1px solid var(--line);border-bottom:1px solid var(--line);margin:3px 0 20px}summary{cursor:pointer;list-style:none}summary::-webkit-details-marker{display:none}#coopBox summary{display:flex;justify-content:space-between;align-items:center;gap:8px;padding:15px 0;font-size:11px}#coopBox summary strong{font-weight:500;margin-left:5px}#coopBox summary>span:last-child{color:var(--muted);font-size:10px}#coopBox summary b{margin-left:6px;font-size:15px;font-weight:400}#coopBox[open] summary b{display:inline-block;transform:rotate(45deg)}.coop-content{padding-bottom:14px}.coop-content label{color:var(--muted);font-size:10px;display:block;margin:0 0 6px}.coop-content input{width:100%;border-radius:7px;border:1px solid var(--line);background:#101b16;padding:10px;color:var(--ink);min-width:0}#coopRow{display:grid;grid-template-columns:1fr 1fr auto;gap:7px;margin-top:8px}#coopRow .secondary{font-size:10px;padding:8px}#coopStatus,#coopPlayers{font-size:11px;color:var(--muted);line-height:1.6;margin:8px 0 0}#roomActions{display:flex;justify-content:space-between}.primary{background:var(--acc);color:#17251a;border:1px solid var(--acc);font-weight:650;border-radius:9px;padding:12px 16px;font-size:12px}.primary:hover:not(:disabled){background:#cafaab}.start-button{width:100%;display:flex;justify-content:space-between;align-items:center;padding:15px 17px;font-size:14px}.start-button>span:last-child{font-size:20px}.start-note{font-size:10px;color:var(--muted);text-align:center;margin:11px 0 0}.secondary{background:#1c2a22;border:1px solid var(--line);border-radius:9px;padding:12px;font-size:12px}.secondary:hover:not(:disabled){border-color:var(--muted)}.text-button{background:none;border:0;color:var(--muted);font-size:11px;padding:10px 0}.text-button:hover{color:var(--acc)}.notice{background:#2c3e29;border:1px solid #6d8759;color:#d8ecc7;font-size:11px;padding:12px;border-radius:8px;margin:0 0 20px;line-height:1.7}
.site-footer{border-top:1px solid var(--line);display:flex;justify-content:space-between;align-items:start;gap:32px;padding:23px 0 26px;color:var(--muted);font-size:10px}.footer-version{font-family:monospace;font-size:9px;color:#748c7b}.site-footer details{text-align:right;max-width:460px}.site-footer p{line-height:1.8}.site-footer summary:hover{color:var(--ink)}
#game{position:fixed;inset:0;background:#0d1512}#sv{position:absolute;inset:0;width:100%;height:100%;border:0}#hud{position:absolute;top:0;left:0;right:0;z-index:1000;display:flex;align-items:center;gap:18px;padding:12px 20px;background:#142019f5;box-shadow:0 4px 20px #0003;border-bottom:1px solid var(--line);min-height:70px}.game-brand{font-size:35px;color:var(--acc)}.hud-info{display:flex;flex-direction:column;gap:5px;min-width:120px}.hud-info>span{font-size:12px;font-weight:600}.hud-info small{color:var(--muted);font-size:10px}.hud-score{display:flex;flex-direction:column;gap:2px;margin-left:auto}.hud-score small{color:var(--muted);font-size:8px;letter-spacing:1px}.hud-score b{font-size:20px;color:var(--acc);font-variant-numeric:tabular-nums}.pill{font-size:11px;border:1px solid var(--line);border-radius:6px;padding:8px;white-space:nowrap}.hud-actions{display:flex;gap:6px}.hud-actions button{background:#15221b;border:1px solid var(--line);border-radius:6px;font-size:10px;padding:9px;color:var(--muted)}.hud-actions button:hover{border-color:var(--muted);color:var(--ink)}#forceBtn{color:var(--acc);border-color:var(--acc)}#timerWrap{position:absolute;top:var(--hud-height,70px);left:0;right:0;height:3px;background:#26382c;z-index:1001}#timerBar{height:100%;width:100%;background:var(--acc);transition:width .2s linear}#hTime.urgent{color:var(--bad);border-color:var(--bad)}
#viewStatus{position:absolute;left:20px;bottom:24px;background:#142019e8;border:1px solid var(--line);border-radius:8px;padding:10px 14px;color:#d4e0d7;font-size:11px;z-index:1000;max-width:calc(100% - 400px)}#guessWrap{position:absolute;right:20px;bottom:20px;width:330px;z-index:1000;background:#142019f5;border:1px solid var(--line);border-radius:12px;box-shadow:0 12px 36px #0004;padding:10px;overflow:hidden}.map-header{display:flex;align-items:center;justify-content:space-between;padding:0 2px 7px;font-size:11px;color:var(--muted)}#expandBtn{padding:2px 6px;background:none;border:0;color:var(--ink);font-size:19px;line-height:24px}#gmap{height:210px;background:#202c26;border:1px solid var(--line);border-radius:6px}#guessWrap.big{width:min(580px,calc(100vw - 40px))}#guessWrap.big #gmap{height:min(430px,calc(100dvh - var(--hud-height,70px) - 170px))}#guessBtn{width:100%;margin-top:9px;padding:12px 8px}.map-footnote{display:flex;justify-content:space-between;font-size:8px;letter-spacing:.5px;color:var(--muted);margin:8px 2px 0}.leaflet-container{font-family:inherit}.leaflet-control-attribution{font-size:8px!important}.leaflet-popup-content-wrapper,.leaflet-popup-tip{background:var(--panel);color:var(--ink)}.pin-icon{background:none;border:0}.pin-icon span{display:block;width:20px;height:20px;border-radius:50% 50% 50% 0;transform:rotate(-45deg);background:var(--acc);border:3px solid #fff;box-shadow:0 2px 8px #0005}.pin-icon.guess span{background:#7cb9f4}.pin-icon.team span{background:#e5b7f2}
#streakBar{position:absolute;bottom:24px;left:50%;transform:translateX(-50%);display:grid;grid-template-columns:repeat(4,1fr);gap:8px;width:min(880px,calc(100% - 40px));z-index:1000}#streakBar:empty{display:none}#streakBar button{background:#142019f5;border:1px solid var(--line);border-radius:9px;padding:16px 12px;font-size:12px;min-height:55px}#streakBar button.right{background:#304d2b;border-color:var(--acc);opacity:1}#streakBar button.wrong{background:#5c302b;border-color:var(--bad);opacity:1}
.modal{position:fixed;inset:0;z-index:2000;background:#07100cbd;backdrop-filter:blur(6px);display:flex;align-items:center;justify-content:center;padding:24px;overflow:auto}.mbox{width:100%;max-width:560px;max-height:calc(100dvh - 48px);overflow:auto;padding:28px;background:var(--panel);border:1px solid var(--line);border-radius:18px;box-shadow:0 24px 80px #0005}.mbox h2{font-size:25px;font-weight:600;letter-spacing:-.7px;margin:10px 0 18px}.result-place{font-size:16px;font-weight:500;margin-bottom:15px}.result-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-bottom:15px}.result-stats div{background:#132019;border:1px solid var(--line);border-radius:8px;padding:12px}.result-stats small{display:block;font-size:9px;color:var(--muted);margin-bottom:5px}.result-stats b{font-size:18px;font-weight:600}.result-stats div:nth-child(2) b{color:var(--acc)}#rmap{height:240px;background:#202c26;border:1px solid var(--line);border-radius:9px}.map-legend{display:flex;gap:18px;font-size:9px;color:var(--muted);margin:10px 0 22px}.map-legend>span{display:flex;gap:6px;align-items:center}.dot{width:6px;height:6px;display:inline-block;border-radius:50%}.target-dot{background:var(--acc)}.guess-dot{background:#7cb9f4}.team-dot{background:#e5b7f2}.mrow{display:flex;gap:8px}.mrow button{flex:1}.final-score{display:flex;gap:22px;align-items:center;margin:14px 0 24px}.grade{font-size:60px;color:var(--acc);font-weight:650;line-height:1;border:1px solid var(--line);border-radius:12px;width:88px;height:88px;display:grid;place-items:center;flex-shrink:0}#fBody{font-size:12px;line-height:1.8;color:var(--muted)}#fBody strong{font-size:25px;color:var(--ink);letter-spacing:-.5px}.score-track{height:4px;border-radius:3px;background:#2f4035;margin-bottom:22px;overflow:hidden}#scoreFill{height:100%;background:var(--acc)}#breakdown{margin-bottom:20px}#breakdown>div,#teamTable>div{display:flex;justify-content:space-between;gap:15px;align-items:center;border-bottom:1px solid var(--line);padding:11px 0;font-size:11px}#breakdown span{color:var(--muted)}#breakdown b{white-space:nowrap;font-weight:500;text-align:right}#breakdown small{display:block;color:var(--muted);font-size:9px;margin-top:3px}#teamTable:empty{display:none}#teamTable{margin:0 0 22px}#teamTable h3{font-size:12px}.share-button{width:100%;margin-top:8px}.noscript{position:fixed;inset:0;background:var(--bg);display:grid;place-items:center;z-index:3000}#toast{position:fixed;bottom:24px;left:50%;transform:translateX(-50%);z-index:3000;background:var(--acc);color:#15271a;border-radius:10px;padding:12px 18px;font-size:12px;box-shadow:0 6px 30px #0005;max-width:90vw;text-align:center}
#sharePanel label{display:block}#challengeLink{width:100%;border:1px solid var(--line);border-radius:7px;background:#101b16;color:var(--muted);padding:10px;margin-top:6px;font-size:10px}
.map-header{gap:6px}.map-header #mapHint{flex:1;font-size:10px}#mapSourceBtn{font-size:9px;padding:2px;white-space:nowrap}.map-legend #resultSourceBtn{margin-left:auto;padding:0;font-size:9px}.leaflet-control-attribution{max-width:100%;line-height:1.2}
@media(min-width:1500px){.menu-layout{padding-top:70px;gap:100px}.intro{padding-top:36px}}
@media(max-width:1050px){.menu{padding:0 28px}.menu-layout{gap:32px}.setup{padding:23px}h1{font-size:72px}.how-to{gap:13px}.how-to>div{gap:5px}.header-note{font-size:10px}.hud-actions{gap:4px}#hud{gap:12px;padding:10px 14px}}
@media(max-width:780px){.menu{padding:0 22px}.site-header{height:78px}.header-note{display:none}.menu-layout{grid-template-columns:1fr;gap:28px;padding-top:30px}.intro{padding-top:0;position:relative}.intro .eyebrow{font-size:9px}h1{font-size:64px;letter-spacing:-3px;position:relative;z-index:1}.intro-copy{max-width:350px;position:relative;z-index:1;font-size:13px}.globe-scene{position:absolute;right:-15px;top:5px;width:45%;opacity:.4;pointer-events:none}.globe-caption{display:none}.how-to{margin-top:23px;gap:24px;padding-top:16px}.stats-line{margin-top:14px}.setup{max-width:560px;width:100%;justify-self:center}.site-footer{font-size:9px;gap:16px}.site-footer details{max-width:50%}.game-brand{display:none}#hud{flex-wrap:wrap;gap:10px;min-height:90px}.hud-info{min-width:100px}.hud-actions{width:100%;justify-content:flex-end}.hud-actions button{flex:1;padding:7px 4px;font-size:9px}#guessWrap{right:12px;bottom:12px;width:270px}#gmap{height:170px}#guessWrap.big{width:calc(100vw - 24px)}#viewStatus{left:12px;bottom:auto;top:calc(var(--hud-height,100px) + 12px);max-width:calc(100% - 24px);font-size:10px;padding:8px 10px}#streakBar{grid-template-columns:1fr 1fr;bottom:12px;gap:6px}#streakBar button{min-height:50px;padding:12px 7px}.modal{padding:12px}.mbox{padding:22px;max-height:calc(100dvh - 24px)}.result-stats b{font-size:16px}}
@media(max-width:420px){.menu{padding:0 16px}.setup{padding:20px 16px}.modes strong{font-size:11px}.modes small{font-size:8px}.modes button{padding:11px 8px}.settings-pair{gap:16px}.globe-scene{opacity:.25;right:-5px;top:25px}.how-to{gap:14px}.how-to span{font-size:10px}.tag{font-size:7px}.intro-copy{max-width:300px}#coopRow{grid-template-columns:1fr auto}#hostBtn{grid-column:1/-1}#guessWrap{width:245px}#gmap{height:155px}.result-stats div{padding:9px}.result-stats b{font-size:14px}.mrow{flex-wrap:wrap}.mrow button{min-width:140px}.grade{width:70px;height:70px;font-size:45px}.final-score{gap:16px}#fBody strong{font-size:22px}}
@media(max-height:600px) and (min-width:781px){#guessWrap #gmap{height:150px}#guessWrap.big #gmap{height:calc(100dvh - var(--hud-height,70px) - 170px)}.modal{padding:12px}.mbox{max-height:calc(100dvh - 24px)}#rmap{height:150px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{transition:none!important;animation:none!important;scroll-behavior:auto!important}}
.road-credit{font-size:8px;color:var(--muted);margin:7px 2px 0}.road-credit a{color:inherit;text-decoration:underline}

.google-map-canvas{width:100%;height:100%;border-radius:inherit;overflow:hidden}#game:has(#sv[hidden]) #viewStatus{left:50%;top:40%;bottom:auto;transform:translate(-50%,-50%);width:440px;max-width:calc(100% - 40px);padding:22px;text-align:center;font-size:13px;line-height:1.6}#retryViewBtn{position:absolute;left:50%;top:calc(40% + 70px);transform:translateX(-50%);z-index:1100}.load-error{border-color:#e7ac73!important}#mapsUsage{margin:14px 0;font-size:10px;line-height:1.65}#gmap,#rmap{position:relative;isolation:isolate}
#panoramaCover{position:absolute;inset:0;background:radial-gradient(ellipse at 50% 35%,#233a31,#101918 70%);z-index:10}#game:has(#panoramaCover:not([hidden])) #viewStatus{left:50%;top:40%;bottom:auto;transform:translate(-50%,-50%);width:440px;max-width:calc(100% - 40px);padding:22px;text-align:center;font-size:13px;line-height:1.6}
