:root{--bg: #000010;--fg: #ffffff;--muted: rgba(255, 255, 255, .55);--card-bg: rgba(10, 14, 24, .78);--card-border: rgba(255, 255, 255, .12);--accent: #7ec8e3;--accent-strong: #4ade80;--warn: #f87171}html,body{margin:0;padding:0;width:100%;height:100dvh;background:var(--bg);color:var(--fg);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,system-ui,sans-serif;overscroll-behavior:none;-webkit-tap-highlight-color:transparent}body{overflow:hidden;touch-action:none}#globe{position:fixed;top:0;right:0;bottom:0;left:0;width:100vw;height:100dvh;touch-action:none;z-index:0}.hidden{display:none!important}#hud{position:fixed;top:calc(env(safe-area-inset-top,0px) + 10px);left:0;right:0;display:flex;justify-content:center;gap:8px;padding:0 12px;pointer-events:none;z-index:10}.pill{background:var(--card-bg);border:1px solid var(--card-border);padding:8px 14px;border-radius:999px;font-size:14px;letter-spacing:.02em;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);font-variant-numeric:tabular-nums}.pill-urgent{background:#f87171d9;color:#000;border-color:#f87171;font-weight:700;animation:pulse 1s ease-in-out infinite}@keyframes pulse{0%,to{transform:scale(1)}50%{transform:scale(1.05)}}.mode-list{display:flex;flex-direction:column;gap:8px;margin-top:4px}.mode-card{-moz-appearance:none;appearance:none;-webkit-appearance:none;display:flex;flex-direction:column;align-items:flex-start;gap:4px;padding:14px 16px;background:#ffffff0f;border:1px solid rgba(255,255,255,.12);border-radius:12px;cursor:pointer;color:var(--fg);font-family:inherit;text-align:left;width:100%}.mode-card:active{transform:scale(.985);background:#ffffff1f;transition:transform 80ms ease}.mode-label{font-size:17px;font-weight:600}.mode-desc{font-size:13px;color:var(--muted);line-height:1.35}.btn-secondary{-moz-appearance:none;appearance:none;-webkit-appearance:none;background:#ffffff0f;color:var(--fg);border:1px solid rgba(255,255,255,.12);border-radius:12px;padding:12px 16px;font-size:15px;font-weight:500;width:100%;cursor:pointer;font-family:inherit;touch-action:manipulation}.btn-secondary:active{transform:scale(.985);transition:transform 80ms ease}.finished-buttons{display:flex;flex-direction:column;gap:8px;margin-top:4px}.pick-options{display:flex;flex-direction:column;gap:6px;margin-top:8px}.btn-pick{-moz-appearance:none;appearance:none;-webkit-appearance:none;display:flex;flex-direction:column;align-items:flex-start;gap:2px;background:#ffffff12;border:1px solid rgba(255,255,255,.14);color:var(--fg);border-radius:10px;padding:11px 14px;font-family:inherit;text-align:left;width:100%;cursor:pointer;touch-action:manipulation}.btn-pick:active{transform:scale(.985);background:#ffffff24;transition:transform 80ms ease}.pick-name{font-size:16px;font-weight:600}.pick-country{font-size:12px;color:var(--muted)}.reveal-pick{margin:4px 0 0;font-size:13px;font-weight:600}.reveal-pick-ok{color:var(--accent-strong)}.reveal-pick-bad{color:var(--warn)}.login-form{display:flex;flex-direction:column;gap:10px;margin-top:4px}.login-input{-moz-appearance:none;appearance:none;-webkit-appearance:none;background:#ffffff0d;border:1px solid rgba(255,255,255,.16);color:var(--fg);border-radius:10px;padding:12px 14px;font-size:16px;font-family:inherit;width:100%;box-sizing:border-box}.login-input::placeholder{color:#fff6}.login-input:focus{outline:none;border-color:var(--accent);background:#ffffff14}.login-error{margin:4px 0 0;font-size:13px;color:var(--warn);font-weight:500}.btn-text{-moz-appearance:none;appearance:none;-webkit-appearance:none;background:transparent;border:none;color:var(--muted);font-size:13px;font-family:inherit;cursor:pointer;padding:8px 0 0;align-self:center}.btn-text:hover{color:var(--fg)}.btn-stats{-moz-appearance:none;appearance:none;-webkit-appearance:none;background:#7ec8e314;border:1px solid rgba(126,200,227,.32);color:var(--accent);border-radius:12px;padding:11px 16px;font-size:14px;font-weight:600;letter-spacing:.02em;cursor:pointer;font-family:inherit;width:100%;margin-top:4px;touch-action:manipulation}.btn-stats:active{transform:scale(.985);background:#7ec8e329;transition:transform 80ms ease}.btn-install{-moz-appearance:none;appearance:none;-webkit-appearance:none;background:linear-gradient(135deg,#4ade802e,#7ec8e32e);border:1px solid rgba(74,222,128,.55);color:var(--accent-strong);border-radius:12px;padding:12px 16px;font-size:14px;font-weight:700;letter-spacing:.02em;font-family:inherit;cursor:pointer;width:100%;margin-top:4px;touch-action:manipulation}.btn-install:active{transform:scale(.985);background:linear-gradient(135deg,#4ade804d,#7ec8e34d);transition:transform 80ms ease}#action-card.stats-mode{max-height:78dvh;overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;transition:max-height .2s ease}#action-card.stats-mode.stats-mode-collapsed{max-height:96px;overflow:hidden}.stats-header-btns{display:flex;gap:6px;align-items:center}.btn-collapse{-moz-appearance:none;appearance:none;-webkit-appearance:none;background:#7ec8e31a;border:1px solid rgba(126,200,227,.32);color:var(--accent);border-radius:8px;padding:6px 10px;font-size:12px;font-weight:600;font-family:inherit;cursor:pointer;touch-action:manipulation}.btn-collapse:active{transform:scale(.985);background:#7ec8e333;transition:transform 80ms ease}.stats-wrap{display:flex;flex-direction:column;gap:14px}.stats-header{display:flex;align-items:center;justify-content:space-between;gap:12px}.stats-title{margin:0;font-size:22px;font-weight:700;letter-spacing:-.01em}.btn-back{-moz-appearance:none;appearance:none;-webkit-appearance:none;background:#ffffff0f;border:1px solid rgba(255,255,255,.12);color:var(--fg);border-radius:8px;padding:6px 12px;font-size:13px;font-family:inherit;cursor:pointer;touch-action:manipulation}.btn-back:active{background:#ffffff24}.stats-empty{margin:8px 0;color:var(--muted);font-size:14px;line-height:1.5}.stats-tile-grid{display:grid;grid-template-columns:1fr 1fr;gap:6px}.stats-class-row{display:flex;gap:6px}.class-chip{flex:1;display:flex;flex-direction:column;align-items:center;gap:1px;padding:6px 4px;border-radius:8px;border:1px solid rgba(255,255,255,.1)}.class-chip-mastered{background:#4ade8014;border-color:#4ade804d}.class-chip-learning{background:#f59e0b14;border-color:#f59e0b4d}.class-chip-weak{background:#f8717114;border-color:#f871714d}.class-chip-count{font-size:18px;font-weight:700;font-variant-numeric:tabular-nums}.class-chip-label{font-size:11px;color:var(--muted);text-transform:uppercase;letter-spacing:.05em}.stats-section{display:flex;flex-direction:column;gap:6px}.stats-section-title{margin:0;font-size:13px;font-weight:600;color:var(--muted);text-transform:uppercase;letter-spacing:.06em}.stats-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column}.stats-list-item{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:8px 0;border-bottom:1px solid rgba(255,255,255,.06)}.stats-list-item:last-child{border-bottom:none}.stats-li-main{display:flex;align-items:baseline;gap:8px;flex:1;min-width:0}.stats-li-rank{font-size:12px;color:var(--muted);font-variant-numeric:tabular-nums;min-width:18px}.stats-li-text{display:flex;flex-direction:column;gap:1px;min-width:0}.stats-li-name{font-size:15px;font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.stats-li-meta{font-size:12px;color:var(--muted)}.stats-li-score{font-size:15px;font-weight:700;font-variant-numeric:tabular-nums;color:var(--fg)}.stats-list-empty{margin:0;color:var(--muted);font-size:13px}.sparkline{display:block;border:1px solid rgba(255,255,255,.08);border-radius:8px;background:#ffffff08}.radar{display:block;margin:0 auto;max-width:280px}.layer-grid{display:flex;flex-direction:column;gap:6px}.layer-chip{-moz-appearance:none;appearance:none;-webkit-appearance:none;display:flex;flex-direction:column;align-items:flex-start;gap:2px;background:#ffffff0a;border:1px solid rgba(255,255,255,.12);border-radius:10px;padding:10px 12px;color:var(--fg);font-family:inherit;text-align:left;width:100%;cursor:pointer;touch-action:manipulation}.layer-chip-on{background:#7ec8e31f;border-color:#7ec8e38c}.layer-chip:active{transform:scale(.985);transition:transform 80ms ease}.layer-chip-label{font-size:14px;font-weight:600}.layer-chip-on .layer-chip-label{color:var(--accent)}.layer-chip-desc{font-size:12px;color:var(--muted);line-height:1.35}.heatmap-legend{display:flex;gap:8px;flex-wrap:wrap;padding:8px 10px;border-radius:8px;background:#ffffff08;border:1px solid rgba(255,255,255,.08)}.legend-item{display:flex;align-items:center;gap:4px;font-size:11px;color:var(--muted)}.legend-swatch{display:inline-block;width:14px;height:10px;border-radius:3px;border:1px solid rgba(255,255,255,.18)}.legend-dot{display:inline-block;width:10px;height:10px;border-radius:50%;border:1px solid rgba(255,255,255,.18);box-shadow:0 0 4px currentColor}.mini-toggle{-moz-appearance:none;appearance:none;-webkit-appearance:none;background:#ffffff0f;border:1px solid rgba(255,255,255,.12);color:var(--fg);border-radius:10px;padding:9px 12px;font-size:13px;font-family:inherit;cursor:pointer;width:100%;touch-action:manipulation}.mini-toggle-on{background:#7ec8e324;border-color:#7ec8e380;color:var(--accent);font-weight:600}.mini-toggle:active{transform:scale(.985);transition:transform 80ms ease}.btn-drill{-moz-appearance:none;appearance:none;-webkit-appearance:none;background:#4ade801f;border:1px solid rgba(74,222,128,.45);color:var(--accent-strong);border-radius:10px;padding:10px 12px;font-size:13px;font-weight:600;font-family:inherit;cursor:pointer;width:100%;margin-top:6px;letter-spacing:.02em;touch-action:manipulation}.btn-drill:active{transform:scale(.985);background:#4ade8038;transition:transform 80ms ease}.country-detail{display:flex;flex-direction:column;gap:10px;padding:12px 14px;background:#7ec8e312;border:1px solid rgba(126,200,227,.32);border-radius:12px}.country-detail-header{display:flex;align-items:center;justify-content:space-between;gap:8px}.country-detail-name{margin:0;font-size:18px;font-weight:700;letter-spacing:-.01em;color:var(--accent)}.country-detail-close{-moz-appearance:none;appearance:none;-webkit-appearance:none;background:transparent;border:1px solid rgba(255,255,255,.18);color:var(--muted);width:26px;height:26px;border-radius:50%;font-size:16px;line-height:1;cursor:pointer;font-family:inherit}.country-detail-close:active{background:#ffffff1a}.country-detail-stats{display:flex;gap:8px}.country-mini-stat{flex:1;display:flex;flex-direction:column;align-items:center;gap:1px;padding:6px 4px;background:#0000002e;border-radius:6px}.mini-stat-value{font-size:15px;font-weight:700;font-variant-numeric:tabular-nums}.mini-stat-label{font-size:10px;color:var(--muted);text-transform:uppercase;letter-spacing:.05em}.country-detail-empty{margin:0;font-size:12px;color:var(--muted);text-align:center;padding:4px 0}.country-li-clickable{cursor:pointer}.country-li-clickable:active{background:#ffffff0a}.reveal-badges{display:flex;gap:6px;margin-top:6px}.reveal-badge{display:flex;align-items:center;gap:4px;padding:4px 9px;border-radius:999px;font-size:11px;font-weight:600;border:1px solid}.reveal-badge-ok{background:#4ade801f;border-color:#4ade8073;color:var(--accent-strong)}.reveal-badge-bad{background:#f871711a;border-color:#f8717159;color:var(--warn);opacity:.7}.badge-mark{font-size:12px;font-weight:700;font-family:ui-monospace,monospace}.country-fact{margin-top:6px;padding:8px 12px;background:#7ec8e314;border:1px solid rgba(126,200,227,.28);border-radius:10px}.country-fact-label{margin:0;font-size:10px;color:var(--accent);text-transform:uppercase;letter-spacing:.06em;font-weight:700}.country-fact-text{margin:3px 0 0;font-size:13px;color:var(--fg);line-height:1.4}.mastered-anchor{margin:6px 0 0;padding:6px 10px;background:#fbbf2414;border:1px solid rgba(251,191,36,.3);border-radius:8px;font-size:12px;color:var(--fg);font-style:italic}.heuristic-card{display:flex;flex-direction:column;gap:6px;padding:12px 14px;background:linear-gradient(135deg,#7ec8e31f,#4ade800f);border:1px solid rgba(126,200,227,.35);border-radius:12px}.heuristic-label{margin:0;font-size:10px;color:var(--accent);text-transform:uppercase;letter-spacing:.08em;font-weight:700}.heuristic-text{margin:0;font-size:14px;line-height:1.5;color:var(--fg)}.btn-preset{-moz-appearance:none;appearance:none;-webkit-appearance:none;background:#7ec8e32e;border:1px solid rgba(126,200,227,.5);color:var(--accent);border-radius:8px;padding:7px 12px;font-size:12px;font-weight:600;font-family:inherit;cursor:pointer;align-self:flex-start;margin-top:4px;touch-action:manipulation}.btn-preset:active{transform:scale(.985);background:#7ec8e347;transition:transform 80ms ease}.menu-settings{display:flex;flex-direction:column;gap:6px;margin-top:6px}.btn-text-toggle{-moz-appearance:none;appearance:none;-webkit-appearance:none;background:transparent;border:1px dashed rgba(255,255,255,.18);color:var(--muted);font-size:12px;font-family:inherit;padding:7px 12px;border-radius:8px;cursor:pointer;width:100%;touch-action:manipulation}.btn-text-toggle-on{border-style:solid;border-color:#7ec8e373;color:var(--accent);background:#7ec8e314}.btn-text-toggle:active{transform:scale(.985);transition:transform 80ms ease}.legend-label{font-variant-numeric:tabular-nums}.stats-strip{display:flex;flex-direction:column;gap:6px;margin-top:2px}.stats-pb{margin:0;font-size:13px;font-weight:700;color:var(--accent-strong);letter-spacing:.03em;text-transform:uppercase}.stats-row{display:flex;gap:6px}.stat-tile{flex:1;background:#ffffff0d;border:1px solid rgba(255,255,255,.1);border-radius:8px;padding:8px 10px;display:flex;flex-direction:column;gap:2px}.stat-label{font-size:11px;color:var(--muted);text-transform:uppercase;letter-spacing:.05em}.stat-value{font-size:16px;font-weight:600;font-variant-numeric:tabular-nums}#action-card{position:fixed;left:12px;right:12px;bottom:calc(env(safe-area-inset-bottom,0px) + 12px);background:var(--card-bg);border:1px solid var(--card-border);border-radius:18px;padding:18px 16px calc(18px + env(safe-area-inset-bottom,0px)*0);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);z-index:20;max-width:520px;margin:0 auto}.card-inner{display:flex;flex-direction:column}.stack>*+*{margin-top:10px}.stack-tight>*+*{margin-top:4px}.title{margin:0;font-size:28px;font-weight:700;letter-spacing:-.01em}.subtitle{margin:0;color:var(--muted);font-size:14px;line-height:1.45}.prompt-label{margin:0;color:var(--muted);font-size:13px;text-transform:uppercase;letter-spacing:.08em}.prompt-city{margin:0;font-size:32px;font-weight:700;letter-spacing:-.01em;line-height:1.05}.prompt-country{margin:0;font-size:17px;color:var(--muted);font-weight:500;letter-spacing:.01em}.hint{margin:0;color:var(--muted);font-size:13px}.btn-primary{-moz-appearance:none;appearance:none;-webkit-appearance:none;background:var(--fg);color:#000;border:none;border-radius:12px;padding:14px 16px;font-size:16px;font-weight:600;cursor:pointer;touch-action:manipulation;width:100%;font-family:inherit}.btn-primary:disabled{opacity:.4;cursor:default}.btn-primary:active:not(:disabled){transform:scale(.985)}.reveal-summary{display:flex;flex-direction:column;gap:4px}.reveal-city{margin:0;font-size:16px;font-weight:500;color:var(--muted)}.reveal-score{margin:4px 0 0;font-size:36px;font-weight:700;letter-spacing:-.01em;color:var(--accent-strong);line-height:1;font-variant-numeric:tabular-nums}.reveal-score-max{color:var(--muted);font-weight:500;font-size:18px;letter-spacing:0}.reveal-distance{margin:4px 0 0;font-size:16px;color:var(--muted);font-weight:500}.reveal-clickable{cursor:pointer;user-select:none;-webkit-user-select:none}.reveal-clickable:active{transform:scale(.99);transition:transform 80ms ease}.continue-hint{margin:6px 0 0;color:var(--accent);font-size:14px;font-weight:600;letter-spacing:.02em}.final-heading{display:flex;flex-direction:column;gap:4px}.final-score{margin:0;font-size:36px;font-weight:700;letter-spacing:-.01em}.muted{color:var(--muted);font-weight:500;font-size:18px}.breakdown{display:flex;flex-direction:column;gap:4px;margin:6px 0 4px;font-size:13px}.breakdown-row{display:grid;grid-template-columns:24px 1fr auto auto;gap:8px;align-items:baseline;padding:6px 0;border-bottom:1px solid rgba(255,255,255,.06);font-variant-numeric:tabular-nums}.breakdown-row:last-child{border-bottom:none}.b-round{color:var(--muted)}.b-city{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.b-dist{color:var(--muted)}.b-score{font-weight:600}
