:root{--gold:#ffd166;--mint:#39d98a;--coral:#ff5d6c;--sky:#6fb4ff;--ink:#081625;--panel:#08182ad1;--panel-border:#6fb4ff52;--text:#eef6ff;--text-dim:#93accc;--font-display:"Archivo", "Avenir Next", system-ui, sans-serif;--font-ui:"Nunito", "Avenir Next", system-ui, sans-serif}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent;margin:0;padding:0}html,body{background:var(--ink);height:100%;color:var(--text);font-family:var(--font-ui);-webkit-user-select:none;user-select:none;overflow:hidden}#app{position:fixed;inset:0}#map{width:100%;height:100%;display:block;position:absolute;inset:0}.hidden{display:none!important}button{color:inherit;cursor:pointer;background:0 0;border:none;font-family:inherit}#hud{z-index:20;pointer-events:none;justify-content:space-between;align-items:flex-start;padding:14px 18px;display:flex;position:absolute;top:0;left:0;right:0}.hud-label{letter-spacing:3px;color:var(--text-dim);font-size:11px;font-weight:800}.hud-score{font-family:var(--font-display);color:#fff;text-shadow:0 0 16px #ffd16680;font-variant-numeric:tabular-nums;font-size:clamp(24px,4vw,34px);font-weight:800;line-height:1.05}.hud-score.bump{animation:.22s ease-out bump}@keyframes bump{40%{transform:scale(1.16)}}.hud-round{letter-spacing:2px;color:var(--text-dim);margin-top:3px;font-size:12px;font-weight:800}.hud-right{pointer-events:auto;gap:8px;display:flex}.icon-btn{background:var(--panel);border:1.5px solid var(--panel-border);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-radius:11px;place-items:center;width:38px;height:38px;display:grid}.icon-btn svg{width:18px;height:18px;stroke:var(--text);fill:none;stroke-width:1.9px;stroke-linecap:round}.icon-btn.off{opacity:.4}#ask{z-index:24;text-align:center;background:var(--panel);border:1.5px solid var(--panel-border);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-radius:20px;width:min(560px,94vw);padding:16px 26px 14px;position:absolute;bottom:22px;left:50%;transform:translate(-50%);box-shadow:0 18px 50px #00000080}.ask-label{letter-spacing:3px;color:var(--mint);font-size:11px;font-weight:800}.ask-text{font-family:var(--font-display);letter-spacing:3px;text-shadow:0 0 18px #6fb4ff80;margin:3px 0 6px;font-size:clamp(24px,4.6vw,40px);font-weight:800}.ask-tries{justify-content:center;gap:6px;display:flex}.ask-tries span{background:var(--gold);border-radius:50%;width:10px;height:10px;box-shadow:0 0 8px #ffd166b3}.ask-tries span.used{box-shadow:none;background:#ffffff26}.choices{grid-template-columns:1fr 1fr;gap:9px;margin-top:12px;display:grid}.choice-btn{background:#6fb4ff14;border:1.5px solid #6fb4ff4d;border-radius:13px;padding:12px 14px;font-size:15.5px;font-weight:700;transition:all .14s}.choice-btn:hover{border-color:var(--gold);transform:translateY(-1px)}.choice-btn.correct{border-color:var(--mint);background:#39d98a33}.choice-btn.wrong{border-color:var(--coral);background:#ff5d6c29;animation:.3s shake}.choice-btn:disabled{cursor:default}@keyframes shake{25%{transform:translate(-6px)}50%{transform:translate(5px)}75%{transform:translate(-3px)}}#feedback{z-index:26;font-family:var(--font-display);letter-spacing:1px;background:var(--panel);border:1.5px solid var(--panel-border);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-radius:999px;padding:11px 26px;font-size:16px;font-weight:800;animation:.3s cubic-bezier(.34,1.56,.64,1) fbIn;position:absolute;top:84px;left:50%;transform:translate(-50%)}#feedback.good{border-color:var(--mint);color:var(--mint);box-shadow:0 0 22px #39d98a59}#feedback.bad{border-color:var(--coral);color:#ffb9c0;box-shadow:0 0 22px #ff5d6c4d}@keyframes fbIn{0%{opacity:0;transform:translate(-50%,-10px)scale(.9)}}#menu{z-index:50;background:radial-gradient(#0816254d,#081625c7);justify-content:center;align-items:center;padding:20px;display:flex;position:absolute;inset:0;overflow-y:auto}.menu-inner{text-align:center;width:min(620px,94vw);animation:.7s cubic-bezier(.16,1,.3,1) menuIn}@keyframes menuIn{0%{opacity:0;transform:translateY(26px)}}.logo{font-family:var(--font-display);letter-spacing:4px;color:#fff;text-shadow:0 0 30px #6fb4ff99;font-size:clamp(46px,10vw,92px);font-weight:800;line-height:1}.logo-ace{background:linear-gradient(120deg, var(--gold), var(--mint));color:#0000;filter:drop-shadow(0 0 16px #ffd16673);-webkit-background-clip:text;background-clip:text}.logo-tag{letter-spacing:4px;color:var(--text-dim);margin:12px 0 24px;font-size:clamp(10.5px,1.8vw,14px);font-weight:800}.menu-heading{letter-spacing:5px;color:var(--text-dim);margin-bottom:12px;font-size:12px;font-weight:800}.mode-grid{grid-template-columns:repeat(3,1fr);gap:11px;display:grid}.mode-card{text-align:left;background:var(--panel);border:1.5px solid var(--panel-border);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-radius:16px;padding:15px 12px;transition:all .16s}.mode-card b{font-family:var(--font-display);letter-spacing:1.5px;font-size:16px;display:block}.mode-card i{letter-spacing:1px;color:var(--gold);margin:3px 0 6px;font-size:11px;font-style:normal;font-weight:800;display:block}.mode-card span{color:var(--text-dim);font-size:12.5px;font-weight:600;line-height:1.35;display:block}.mode-card:hover{transform:translateY(-2px)}.mode-card.sel{border-color:var(--mint);background:#39d98a17;box-shadow:0 0 22px #39d98a47}.region-row{flex-wrap:wrap;justify-content:center;gap:8px;margin-top:14px;display:flex}.region-btn{background:var(--panel);border:1.5px solid var(--panel-border);font-family:var(--font-display);letter-spacing:2px;border-radius:999px;padding:9px 18px;font-size:12.5px;font-weight:700;transition:all .15s}.region-btn:hover{transform:translateY(-1px)}.region-btn.sel{border-color:var(--gold);background:#ffd1661f;box-shadow:0 0 16px #ffd1664d}.go-btn{font-family:var(--font-display);letter-spacing:3px;color:#0c2416;background:linear-gradient(120deg, var(--mint), #8ff2c0);border-radius:16px;margin-top:24px;padding:15px 48px;font-size:18px;font-weight:800;transition:transform .14s;box-shadow:0 0 30px #39d98a73,0 8px 24px #0006}.go-btn:hover{transform:scale(1.045)}.go-btn:active{transform:scale(.98)}.go-btn.small{margin-top:14px;padding:11px 34px;font-size:15px}.menu-footer{flex-direction:column;align-items:center;gap:8px;margin-top:22px;display:flex}.menu-best{font-family:var(--font-display);letter-spacing:2px;color:var(--gold);font-size:14px}.menu-credit{letter-spacing:1px;color:#93accc8c;font-size:11px;font-weight:700}.link-btn{letter-spacing:2.5px;color:var(--text-dim);padding:8px 14px;font-size:13px;font-weight:700}.link-btn:hover{color:var(--gold)}.modal{z-index:60;-webkit-backdrop-filter:blur(7px);backdrop-filter:blur(7px);background:#040c16b8;place-items:center;padding:20px;display:grid;position:absolute;inset:0}.modal-card{text-align:center;border:1.5px solid var(--panel-border);background:linear-gradient(165deg,#0c2036f7,#06101ef7);border-radius:24px;width:min(500px,94vw);padding:30px 34px;animation:.5s cubic-bezier(.34,1.56,.64,1) cardIn;box-shadow:0 0 60px #ffd1661f,0 30px 60px #0009}@keyframes cardIn{0%{opacity:0;transform:scale(.86)translateY(18px)}}.modal-card h2{font-family:var(--font-display);letter-spacing:4px;margin-bottom:8px;font-size:25px;font-weight:800}.rp-stars{justify-content:center;gap:10px;margin:8px 0 4px;display:flex}.rp-stars svg{width:42px;height:42px}.rp-stars .earned{filter:drop-shadow(0 0 10px #ffd166e6);animation:.5s cubic-bezier(.34,1.56,.64,1) backwards starPop}.rp-stars .earned:nth-child(2){animation-delay:.16s}.rp-stars .earned:nth-child(3){animation-delay:.32s}@keyframes starPop{0%{transform:scale(0)rotate(-40deg)}}.report-grid{grid-template-columns:1fr 1fr;gap:10px;margin:14px 0;display:grid}.stat{background:#ffffff0d;border:1px solid #ffffff1a;border-radius:15px;padding:12px 6px}.stat-val{font-family:var(--font-display);color:var(--gold);font-variant-numeric:tabular-nums;font-size:24px;font-weight:800}.stat-label{letter-spacing:2px;color:var(--text-dim);margin-top:3px;font-size:10.5px;font-weight:800}.practice-wrap{margin:8px 0 4px}.practice-chips{flex-wrap:wrap;justify-content:center;gap:8px;margin-top:6px;display:flex}.practice-chip{font-family:var(--font-display);color:var(--gold);letter-spacing:.5px;background:#ffd1661a;border:1.5px solid #ffd16666;border-radius:999px;padding:7px 14px;font-size:13px;font-weight:700}.modal-btns{flex-direction:column;align-items:center;gap:4px;display:flex}@media (width<=620px){.mode-grid,.choices{grid-template-columns:1fr}}
