:root{
  --ink:#14213d;
  --muted:#64748b;
  --paper:#ffffff;
  --soft:#f5f7ff;
  --blue:#2388ff;
  --blue-dark:#0f63d6;
  --purple:#6d4cff;
  --teal:#10b7b0;
  --green:#20c76b;
  --red:#ff2f6d;
  --orange:#ff9f1c;
  --border:rgba(20,33,61,.12);
  --shadow:0 22px 70px rgba(20,33,61,.16);
  --radius:28px;
  font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
}
*{box-sizing:border-box}
html,body{min-height:100%;margin:0}
body{background:radial-gradient(circle at 20% 10%,rgba(35,136,255,.20),transparent 28%),radial-gradient(circle at 88% 8%,rgba(255,47,109,.16),transparent 26%),linear-gradient(135deg,#f8fbff 0%,#fff8ed 100%);color:var(--ink)}
button,select,textarea{font:inherit}
button{touch-action:manipulation}
.dash-app{min-height:100vh;padding:18px clamp(12px,2vw,24px) 42px}
.topbar{max-width:1240px;margin:0 auto 18px;display:flex;align-items:center;justify-content:space-between;gap:14px}
.brand{display:flex;align-items:center;gap:12px;text-decoration:none;color:var(--ink)}
.brand-mark{display:inline-flex;align-items:center;justify-content:center;width:48px;height:48px;border-radius:16px;background:linear-gradient(135deg,var(--blue),var(--purple));color:#fff;font-weight:1000;box-shadow:0 12px 28px rgba(35,136,255,.25)}
.brand strong{display:block;font-size:1.15rem;letter-spacing:-.03em}.brand small{display:block;color:var(--muted);font-weight:800}.top-actions{display:flex;gap:10px;flex-wrap:wrap;justify-content:flex-end}
.ghost-btn,.secondary-btn,.primary-btn{border:0;border-radius:16px;min-height:48px;padding:12px 16px;font-weight:950;cursor:pointer;transition:transform .16s ease,box-shadow .16s ease,background .16s ease}.ghost-btn:hover,.secondary-btn:hover,.primary-btn:hover{transform:translateY(-2px)}.ghost-btn{background:rgba(255,255,255,.78);color:var(--ink);border:1px solid var(--border);backdrop-filter:blur(10px)}.primary-btn{background:linear-gradient(135deg,var(--blue),var(--purple));color:#fff;box-shadow:0 16px 34px rgba(35,136,255,.28)}.secondary-btn{background:#fff;color:var(--ink);border:1px solid var(--border);box-shadow:0 8px 20px rgba(20,33,61,.07)}.secondary-btn:disabled,.primary-btn:disabled{opacity:.55;cursor:not-allowed;transform:none}
.game-shell{max-width:1240px;margin:0 auto;display:grid;grid-template-columns:minmax(320px,.78fr) minmax(360px,1.22fr);gap:18px;align-items:start}.setup-card,.play-card{border:1px solid var(--border);background:rgba(255,255,255,.88);box-shadow:var(--shadow);border-radius:var(--radius);backdrop-filter:blur(16px)}.setup-card{padding:24px;position:sticky;top:16px}.setup-copy .eyebrow,.end-card .eyebrow{display:inline-flex;margin:0 0 12px;min-height:32px;align-items:center;padding:6px 11px;border-radius:999px;background:rgba(35,136,255,.10);color:#155bbb;font-weight:950;font-size:.84rem}.setup-copy h1{margin:0;font-size:clamp(1.85rem,4vw,3.4rem);line-height:.98;letter-spacing:-.06em}.setup-copy p:not(.eyebrow){color:var(--muted);line-height:1.55;font-weight:650}.setup-controls{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:18px}.setup-controls label{display:grid;gap:7px}.setup-controls span,.custom-panel summary{font-weight:950;color:rgba(20,33,61,.76)}select,textarea{width:100%;border:1px solid var(--border);background:#fff;color:var(--ink);border-radius:14px;padding:12px;font-weight:800;outline:none}select:focus,textarea:focus{box-shadow:0 0 0 4px rgba(35,136,255,.16);border-color:rgba(35,136,255,.45)}.custom-panel{margin-top:16px;border-radius:18px;background:rgba(245,247,255,.75);border:1px solid var(--border);padding:12px}.custom-panel p{color:var(--muted);line-height:1.45}.custom-panel textarea{min-height:120px;resize:vertical;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono",monospace;font-size:.9rem}.setup-footer{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-top:16px}.setup-status{color:var(--muted);font-weight:800;font-size:.9rem}
.play-card{padding:clamp(16px,2.2vw,26px);overflow:hidden}.hud{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.hud-tile{background:#fff;border:1px solid var(--border);border-radius:22px;padding:14px;box-shadow:0 8px 22px rgba(20,33,61,.07)}.hud-tile span{display:block;color:var(--muted);font-weight:900;font-size:.85rem}.hud-tile strong{display:block;font-size:clamp(1.55rem,3vw,2.3rem);line-height:1;margin-top:6px;letter-spacing:-.05em}.timer-wrap{height:18px;border-radius:999px;background:rgba(20,33,61,.08);overflow:hidden;margin:16px 0}.timer-bar{height:100%;width:100%;border-radius:999px;background:linear-gradient(90deg,var(--green),var(--orange),var(--red));transform-origin:left center;transition:width .1s linear}.dash-track{position:relative;height:74px;margin:6px 0 14px}.track-line{position:absolute;left:36px;right:56px;top:34px;height:10px;border-radius:999px;background:linear-gradient(90deg,rgba(35,136,255,.18),rgba(109,76,255,.18));border:1px solid rgba(20,33,61,.06)}.runner{position:absolute;left:24px;top:10px;width:54px;height:54px;border-radius:19px;background:linear-gradient(135deg,#fff,var(--soft));display:flex;align-items:center;justify-content:center;font-size:1.9rem;box-shadow:0 12px 30px rgba(20,33,61,.14);transition:left .35s cubic-bezier(.2,.9,.2,1),transform .2s ease}.runner.dash{transform:scale(1.12) rotate(-8deg)}.finish-flag{position:absolute;right:12px;top:10px;font-size:2.1rem}.question-card{min-height:250px;border-radius:28px;background:linear-gradient(135deg,var(--blue),var(--purple));color:#fff;padding:clamp(20px,4vw,34px);display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;box-shadow:0 24px 52px rgba(35,136,255,.24)}.question-label{margin:0 0 12px;text-transform:uppercase;letter-spacing:.20em;font-weight:1000;font-size:.85rem;color:rgba(255,255,255,.78)}.question-card h2{margin:0;font-size:clamp(2rem,6.2vw,5rem);line-height:1;letter-spacing:-.055em}.question-visual{min-height:0;font-size:clamp(2rem,5vw,4rem);line-height:1.1;margin-bottom:10px;word-break:break-word}.answer-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin-top:18px}.answer-btn{position:relative;min-height:clamp(82px,12vw,132px);border:0;border-radius:26px;background:#fff;color:var(--ink);font-size:clamp(1.8rem,5vw,4rem);font-weight:1000;letter-spacing:-.05em;box-shadow:0 12px 0 rgba(20,33,61,.10),0 18px 35px rgba(20,33,61,.10);cursor:pointer;transition:transform .12s ease,box-shadow .12s ease,background .12s ease}.answer-btn:hover,.answer-btn:focus-visible{transform:translateY(-3px);box-shadow:0 15px 0 rgba(20,33,61,.10),0 24px 42px rgba(20,33,61,.13);outline:none}.answer-btn:active{transform:translateY(5px);box-shadow:0 6px 0 rgba(20,33,61,.10),0 10px 22px rgba(20,33,61,.10)}.answer-btn.correct{background:linear-gradient(135deg,#19c37d,#20c76b);color:#fff}.answer-btn.wrong{background:linear-gradient(135deg,#ff5a7a,#ff2f6d);color:#fff}.answer-btn.dim{opacity:.55}.feedback{min-height:44px;margin-top:16px;padding:11px 14px;border-radius:16px;background:rgba(255,255,255,.72);border:1px solid var(--border);color:var(--muted);font-weight:950;text-align:center}.feedback.good{background:rgba(32,199,107,.12);color:#0f7d45}.feedback.bad{background:rgba(255,47,109,.10);color:#b71143}.play-actions{display:flex;gap:10px;flex-wrap:wrap;justify-content:center;margin-top:14px}.end-screen{position:fixed;inset:0;z-index:10;display:grid;place-items:center;background:rgba(20,33,61,.42);backdrop-filter:blur(10px);padding:18px}.end-card{width:min(680px,100%);background:#fff;border-radius:32px;padding:clamp(24px,4vw,42px);box-shadow:0 30px 90px rgba(20,33,61,.28);text-align:center}.end-card h2{font-size:clamp(2.1rem,5vw,4.2rem);line-height:1;letter-spacing:-.06em;margin:0 0 12px}.end-card p:not(.eyebrow){color:var(--muted);line-height:1.55;font-size:1.08rem;font-weight:700}.compact .setup-card{display:none}.compact .game-shell{grid-template-columns:1fr}.paused .timer-bar{opacity:.35}.shake{animation:shake .28s ease}.pop{animation:pop .25s ease}@keyframes shake{0%,100%{transform:translateX(0)}25%{transform:translateX(-8px)}75%{transform:translateX(8px)}}@keyframes pop{0%{transform:scale(1)}50%{transform:scale(1.04)}100%{transform:scale(1)}}
@media(max-width:980px){.game-shell{grid-template-columns:1fr}.setup-card{position:static}.hud{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:620px){.dash-app{padding:12px 10px 32px}.topbar{align-items:flex-start}.brand small{display:none}.top-actions{gap:8px}.ghost-btn{min-height:42px;padding:9px 11px}.setup-controls{grid-template-columns:1fr}.play-card,.setup-card{border-radius:24px}.question-card{min-height:210px}.answer-grid{gap:10px}.answer-btn{border-radius:22px;min-height:94px}.hud-tile{border-radius:18px}.play-actions .secondary-btn{flex:1 1 140px}}

/* Fix: keep completion overlay hidden until the game actually finishes. */
.end-screen[hidden]{display:none !important;}
