@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;650;700&family=Space+Grotesk:wght@400;500;600;700&display=swap');
:root{--bg:#111528;--panel:#1b2138;--panel2:#222a44;--line:#343c56;--muted:#a1aec9;--lime:#d6fb77;--cyan:#62d9d2;--pink:#ff8da6;--ink:#f5f7ff}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font:15px 'DM Sans',system-ui,sans-serif}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;cursor:pointer}button:disabled{cursor:default;opacity:.5}button:focus-visible,a:focus-visible,[tabindex]:focus-visible{outline:3px solid var(--lime);outline-offset:4px}a{color:inherit}header{max-width:1480px;margin:auto;padding:23px 36px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #ffffff12}.brand{display:flex;gap:10px;align-items:center;text-decoration:none;font-family:'Space Grotesk',system-ui;font-weight:700;font-size:20px;letter-spacing:-.6px}.brand-icon{background:var(--lime);color:var(--bg);padding:3px 10px;border-radius:10px;font-size:27px}.edition{font:700 9px 'DM Sans',sans-serif;letter-spacing:1.8px;border:1px solid #536044;color:var(--lime);padding:5px 7px;border-radius:5px;margin-left:3px}.header-actions{display:flex;gap:22px;align-items:center}.icon-btn{border:1px solid var(--line);border-radius:99px;padding:7px 13px;background:transparent;color:var(--muted);font-size:12px}.classic{font-size:12px;text-decoration:none;color:var(--muted)}main{max-width:1480px;margin:auto;padding:36px}.hero{display:flex;align-items:center;justify-content:space-between;gap:25px;margin-bottom:30px}.kicker{font-size:10px;font-weight:700;letter-spacing:2px;color:var(--muted);display:flex;gap:8px;align-items:center}.kicker span{height:6px;width:6px;border-radius:50%;background:var(--lime)}h1{font-family:'Space Grotesk',system-ui;font-size:clamp(34px,4.3vw,60px);font-weight:600;line-height:1.04;letter-spacing:-2.8px;margin:15px 0}h1 em{font-style:normal;color:var(--lime)}p{color:var(--muted);line-height:1.6;margin:0}.hero p{font-size:14px}.pb-card{width:240px;min-width:180px;padding:24px;background:linear-gradient(130deg,#293c3c,#202a3b);border:1px solid #4d6656;border-radius:17px;transform:rotate(2deg)}.pb-card span{font-size:10px;letter-spacing:1.5px;font-weight:700;color:var(--lime)}.pb-card strong{display:block;font:600 48px 'Space Grotesk',system-ui;letter-spacing:-2px;margin:9px 0;color:var(--lime);font-variant-numeric:tabular-nums}.pb-card small{color:#b8c9c6;font-size:11px}.game-layout{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:24px;align-items:start}.game-shell{border:1px solid var(--line);border-radius:19px;overflow:hidden;background:var(--panel)}.mode-tabs{display:flex;border-bottom:1px solid var(--line);padding:9px;gap:7px}.mode-tab{border:0;background:transparent;color:var(--muted);flex:1;border-radius:10px;padding:12px 8px;font-weight:700;font-size:15px}.mode-tab span{display:block;font-size:10px;font-weight:400;margin-top:3px;opacity:.8}.mode-tab.selected{color:var(--lime);background:#d6fb7710;box-shadow:inset 0 0 0 1px #d6fb7730}.cockpit{padding:25px 25px 17px;display:flex;gap:20px;justify-content:space-between;align-items:center}.eyebrow{font-size:10px;letter-spacing:1.7px;font-weight:700;color:var(--cyan)}.prompt{min-width:0}.prompt h2{font:600 clamp(23px,2.8vw,35px) 'Space Grotesk',system-ui;letter-spacing:-1px;margin:7px 0}.prompt p{font-size:12px;max-width:420px;min-height:38px}.clock-box{text-align:right;min-width:130px}.clock-box span{font-size:9px;letter-spacing:1.5px;color:var(--muted)}.clock-box strong{display:block;font:500 31px 'Space Grotesk',system-ui;font-variant-numeric:tabular-nums;letter-spacing:-1px;margin:5px 0}.clock-box small{display:block;font-size:10px;max-width:145px;color:var(--muted)}.round-meta{display:flex;justify-content:space-between;padding:0 25px 11px;font-size:11px;color:var(--muted)}#combo{color:var(--lime)}.progress-track{height:4px;background:#303852}.progress-track i{height:100%;display:block;background:var(--lime);width:0;transition:width .3s}.arena{position:relative;background:#151d31;overflow:hidden}.map-host{width:100%;max-width:800px;margin:auto}.map-host svg{display:block;width:100%;height:auto;max-height:690px;min-height:400px}.land{fill:#3e5662;stroke:#182739;stroke-width:1.7;stroke-linejoin:round}.target-land{fill:#577a7d;cursor:pointer;transition:fill .12s}.target-land:hover{fill:#8db3a3}.basin{fill:#7caf7852;stroke:#8eba7d;stroke-width:1.5;stroke-dasharray:5 4;cursor:pointer}.andes{stroke:#dca878;stroke-width:9;fill:none;stroke-linecap:round;stroke-linejoin:round;cursor:pointer}.river-hit{stroke:transparent;stroke-width:22;fill:none;cursor:pointer}.river{stroke:#6bd6f4;stroke-width:4;fill:none;pointer-events:none;stroke-linecap:round;stroke-linejoin:round}.leader{stroke:#8ba6ac;stroke-width:1.1;fill:none;opacity:.65;pointer-events:none}.anchor{fill:#7c9ba7;pointer-events:none}.marker{cursor:pointer}.marker circle{fill:#263c51;stroke:#bfd8d2;stroke-width:2.2;transition:fill .15s}.marker text{display:none}.marker:hover circle{fill:var(--lime);stroke:white;stroke-width:3}.ocean{font:10px 'DM Sans',system-ui;letter-spacing:3px;fill:#738ba6;pointer-events:none}.map-host svg>rect{fill:#151d31}.map-host:not(.live) .marker,.map-host:not(.live) [data-zone]{pointer-events:none}.correct-place.target-land{fill:var(--lime)!important}.correct-place.marker circle{fill:var(--lime);stroke:white;stroke-width:4}.correct-place.basin{fill:#d6fb7770;stroke:var(--lime);stroke-width:4}.correct-place.andes{stroke:var(--lime);stroke-width:12}.correct-place.river-hit{stroke:var(--lime);stroke-width:12}.wrong-place.target-land{fill:var(--pink)!important}.wrong-place.marker circle{fill:var(--pink);stroke:#fff;stroke-width:4}.wrong-place.basin{fill:#ff8da670;stroke:var(--pink);stroke-width:4}.wrong-place.andes,.wrong-place.river-hit{stroke:var(--pink);stroke-width:12}.start-overlay{position:absolute;inset:0;display:grid;place-items:center;background:#1115287a;backdrop-filter:blur(3px);padding:20px}.start-card{padding:28px;max-width:380px;text-align:center;border:1px solid #71816c;background:#202a3bea;border-radius:20px;box-shadow:0 20px 70px #0005}.mini-icon{background:var(--lime);color:#273827;width:48px;height:48px;display:grid;place-items:center;margin:auto;border-radius:15px;font-size:28px}.start-card h3{font:600 27px 'Space Grotesk',system-ui;letter-spacing:-1px;margin:17px 0 12px}.start-card p{font-size:13px}.start-button{background:var(--lime);border:0;color:#172218;font-weight:800;border-radius:11px;width:100%;padding:14px 20px;margin-top:22px;box-shadow:0 4px 0 #849c47}.start-button:hover{background:#e4ff9d;transform:translateY(-1px)}.start-card small{display:block;font-size:10px;color:var(--muted);margin-top:17px}.arena-bottom{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 20px;border-top:1px solid var(--line)}.legend{display:flex;gap:13px;color:var(--muted);font-size:10px}.legend i{display:inline-block;width:8px;height:8px;border-radius:50%;margin-right:5px}.mountain{background:#dca878}.water{background:#6bd6f4}.basin-dot{background:#8eba7d}.text-button{border:0;background:none;color:#c2d0e2;font-size:11px;padding:5px}.game-controls{display:flex;gap:9px}.hint-text{padding:14px 22px;font-size:13px;border-top:1px solid var(--line);color:var(--lime)}.side-card{background:var(--panel);border:1px solid var(--line);border-radius:17px;padding:22px;margin-bottom:18px}.side-heading{display:flex;justify-content:space-between;align-items:center}.side-card h2{font:600 23px 'Space Grotesk',system-ui;letter-spacing:-.7px;margin:8px 0}.side-card p{font-size:12px}.trophy{font-size:35px;color:var(--lime)}#leaderboard{margin-top:20px}.empty-board{border:1px dashed #46506b;border-radius:10px;padding:22px 15px;text-align:center;font-size:12px;color:var(--muted);line-height:1.7}.board-row{display:flex;align-items:center;gap:10px;padding:13px 0;border-bottom:1px solid var(--line)}.board-row:first-child .rank{color:var(--lime)}.rank{font:600 20px 'Space Grotesk';width:20px;color:#7d8ca9}.board-info{flex:1}.board-info strong{font-size:12px;display:block}.board-info small{font-size:10px;color:var(--muted)}.board-time{font:500 19px 'Space Grotesk';color:var(--lime);font-variant-numeric:tabular-nums}.board-note{font-size:10px;line-height:1.7;color:var(--muted);margin-top:16px}.weak-list{display:flex;flex-wrap:wrap;gap:7px;margin-top:17px}.weak-chip{border:1px solid #4a4962;background:#ff8da60b;color:#f4bccd;border-radius:7px;padding:7px 9px;font-size:11px}.secondary-button{background:transparent;border:1px solid #59664c;color:var(--lime);border-radius:9px;padding:11px 12px;font-size:12px;font-weight:700;width:100%;margin-top:18px}.tip-card{border-left:2px solid var(--lime);padding:2px 15px;margin:25px 0}.tip-card>span{color:var(--lime);font-size:10px;font-weight:700;letter-spacing:1px}.tip-card p{font-size:12px;margin-top:9px}.storage-note{font-size:10px;padding:0 9px}.howto{display:flex;gap:22px;align-items:start;margin:23px 0}.howto>span{font-size:9px;letter-spacing:2px;color:var(--muted);writing-mode:vertical-rl;padding-top:6px}.howto>div{flex:1;font-size:13px;font-weight:600}.howto b{display:inline-block;color:var(--lime);font-size:10px;margin-right:8px}.howto small{font-weight:400;display:block;font-size:11px;line-height:1.6;color:var(--muted);margin-top:5px}.feedback{position:absolute;left:50%;bottom:28px;transform:translateX(-50%);width:max-content;max-width:90%;padding:13px 22px;background:#132e2cf0;border:1px solid var(--cyan);border-radius:12px;box-shadow:0 10px 30px #0004;text-align:center;font-size:14px;pointer-events:none}.feedback.bad{background:#3e2438f5;border-color:var(--pink);color:#ffd4df}.feedback small{display:block;font-size:11px;line-height:1.5;margin-top:5px;max-width:390px}.countdown{position:absolute;inset:0;display:grid;place-items:center;background:#11152880;font:700 110px 'Space Grotesk';color:var(--lime)}.result-card{border:1px solid #728356;background:linear-gradient(140deg,#293a38,#1b2138 65%);border-radius:18px;padding:28px;margin-top:22px}.result-card h2{font:600 34px 'Space Grotesk';letter-spacing:-1.2px;margin:10px 0}.result-stats{display:flex;gap:30px;flex-wrap:wrap;margin:24px 0}.result-stats strong{display:block;font:600 30px 'Space Grotesk';color:var(--lime)}.result-stats span{font-size:11px;color:var(--muted)}.result-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:20px}.result-actions button{width:auto;margin:0}.result-actions .start-button{box-shadow:none;font-size:13px}.result-actions .secondary-button{color:white;border-color:#62746e}.result-review{font-size:13px;line-height:1.7;color:var(--muted)}.result-review strong{color:#f4bccd}.copy-area{width:100%;min-height:190px;background:var(--bg);color:white;border:1px solid var(--line);border-radius:8px;padding:12px;margin-top:15px}.hidden{display:none!important}footer{display:flex;justify-content:space-between;gap:20px;border-top:1px solid #ffffff12;margin-top:28px;padding-top:20px;font-size:10px;color:#8290ad}.playing .hero{display:none}.playing main{padding-top:20px}.playing .map-host svg{max-height:calc(100vh - 320px);min-height:360px}.playing header{padding-top:12px;padding-bottom:12px}.pulse{animation:pulse .35s ease}@keyframes pulse{50%{transform:scale(1.05);color:var(--lime)}}@media(max-width:1000px){.game-layout{grid-template-columns:minmax(0,1fr) 270px;gap:16px}main{padding:25px}.cockpit{padding:20px}.side-card{padding:18px}}@media(max-width:780px){header{padding:15px 17px}.brand{font-size:16px}.header-actions{gap:10px}.classic{font-size:10px}.edition{font-size:8px}.icon-btn{font-size:10px;padding:6px 8px}main{padding:23px 13px}.hero{margin-bottom:22px;align-items:end;gap:14px}.hero h1{font-size:37px;letter-spacing:-2px}.hero p{font-size:12px}.pb-card{padding:15px;min-width:130px;width:135px;border-radius:12px}.pb-card strong{font-size:31px;letter-spacing:-1px}.pb-card span{font-size:8px;letter-spacing:1px}.pb-card small{font-size:9px}.kicker{font-size:8px;letter-spacing:1px}.game-layout{grid-template-columns:1fr}.mode-tab{padding:10px 6px;font-size:13px}.mode-tab span{font-size:9px}.cockpit{padding:18px 15px 12px;gap:12px}.prompt h2{font-size:25px}.prompt p{font-size:11px;min-height:35px}.clock-box{min-width:100px}.clock-box strong{font-size:25px}.clock-box small{font-size:9px;max-width:100px}.eyebrow{font-size:9px}.round-meta{padding:0 15px 10px}.map-host svg{min-height:0;max-height:none}.playing .map-host svg{min-height:320px;max-height:calc(100svh - 265px)}.arena-bottom{padding:10px 12px}.legend{gap:8px;font-size:9px}.text-button{font-size:10px}.start-card{padding:23px;max-width:310px}.start-card h3{font-size:25px}.start-card p{font-size:12px}.start-button{padding:13px 20px}.feedback{bottom:15px;padding:10px 14px;font-size:12px}.feedback small{font-size:10px}.howto{gap:12px}.howto>div{font-size:11px}.howto small{font-size:10px}aside{display:grid;grid-template-columns:1fr 1fr;gap:12px}.side-card{margin-bottom:0;padding:16px}.side-card h2{font-size:20px}.side-card p{font-size:11px}.tip-card{margin:5px 0;grid-column:1/-1}.storage-note{grid-column:1/-1}.trophy{font-size:25px}.result-card{padding:22px}.result-card h2{font-size:29px}.result-stats{gap:20px}.result-stats strong{font-size:25px}.result-actions button{font-size:12px}.playing aside,.playing .howto{display:none}footer{flex-direction:column;gap:8px}.playing footer{display:none}}@media(max-width:420px){.edition{display:none}.pb-card{min-width:112px;width:112px}.pb-card strong{font-size:28px}.hero h1{font-size:33px}.clock-box{min-width:92px}.prompt h2{font-size:23px}aside{grid-template-columns:1fr}.prompt p{font-size:10px}.board-row{padding:10px 0}}@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important;scroll-behavior:auto!important}}

.type-panel{padding:16px 25px 18px;border-top:1px solid var(--line);background:#151e33}.type-panel label{display:block;font-size:11px;font-weight:700;letter-spacing:.5px;color:var(--cyan);margin-bottom:8px}.type-row{display:flex;gap:9px}.type-row input{min-width:0;flex:1;background:#10182a;border:1px solid #6faaa7;border-radius:9px;padding:12px 14px;color:white;font:16px 'DM Sans',system-ui;outline-offset:3px}.type-row input:focus{outline:2px solid var(--cyan)}.type-row button{background:var(--lime);border:0;color:#172218;font-size:13px;font-weight:800;border-radius:9px;padding:10px 17px}.type-panel p{font-size:10px;margin-top:8px}.type-panel>.text-button{color:var(--cyan);padding:10px 0 6px}.type-word-bank{display:flex;gap:6px;flex-wrap:wrap}.type-word{font-size:10px;border:1px solid #43516b;background:#222c45;padding:5px 8px;border-radius:5px;color:#d4def1}.question-place.target-land{fill:var(--cyan)!important;stroke:#c6ffff;stroke-width:2}.question-place.marker circle{fill:var(--cyan);stroke:white;stroke-width:4}.question-place.basin{fill:#62d9d27a;stroke:var(--cyan);stroke-width:4}.question-place.andes,.question-place.river-hit{stroke:var(--cyan);stroke-width:13}.typing-mode.playing .map-host svg{max-height:540px;min-height:330px}.typing-mode .mode-tabs{flex-wrap:wrap}@media(max-width:780px){.type-panel{padding:13px 15px}.typing-mode.playing .map-host svg{max-height:440px;min-height:260px}.mode-tabs{gap:3px}.mode-tab{font-size:12px}.mode-tab span{font-size:8px}.type-word{font-size:9px;padding:4px 6px}.type-row input{padding:10px}.type-row button{padding:9px 12px}}

#mapHost svg{min-height:0}.playing #mapHost svg{min-height:0}.typing-mode.playing #mapHost svg{min-height:0}.river-north{stroke:#7ecdf5}.river-south{stroke:#70e7e2}.map-host{max-width:1080px}.feature-pin circle{stroke:#f0c395}.playing .map-host .leader{stroke-width:1.6}@media(max-width:480px){.header-actions{flex-wrap:wrap;justify-content:flex-end;gap:6px 10px}.arena .start-card{padding:14px 18px}.arena .start-card h3{margin:8px 0;font-size:19px}.arena .start-card p{font-size:11px}.arena .start-button{margin-top:10px;padding:9px}.arena .start-card small{display:none}.arena .mini-icon{display:none}.arena .feedback{bottom:5px}}

/* Follow Singapore's offshore marker to its small island without coloring Malaysia. */
.singapore-leader,.singapore-anchor{pointer-events:none}
.singapore-leader.question-place{stroke:var(--cyan);stroke-width:2.7;opacity:1}
.singapore-anchor.question-place{fill:var(--cyan);stroke:#152e43;stroke-width:1.4;opacity:1}
.singapore-leader.correct-place{stroke:var(--lime);stroke-width:2.7;opacity:1}
.singapore-anchor.correct-place{fill:var(--lime);stroke:#152e43;stroke-width:1.4;opacity:1}
.real-mode-link{display:block;text-decoration:none;text-align:center;color:var(--lime);background:#d0ef7812}.real-mode-link:hover{background:#d0ef7824}
