:root[data-theme="dark"]{color-scheme:dark;--bg:#090c12;--panel:#111721;--panel2:#1b2433;--line:#29364a;--text:#eaf0fa;--muted:#a9b6cd;--accent:#8ab4ff;--purple:#c6b3ff;--orange:#e9c474;--red:#efa59a;--sidebar:#0c111a;--hover:#1b2b45;--active:#172d51;--code-bg:#0c121d;--code-text:#deebff;--input-border:#405370;--btn-border:#405370;--primary:#2563eb;--primary-hover:#1d4ed8;--primary-text:#fff;--positive-bg:#14243c;--positive-line:#496ba5;--mission-ink:#bad3ff;--warning-bg:#322816;--warning-line:#8d7447;--warning-ink:#e1c18a;--error-bg:#352321;--error-line:#a06f67;--error-ink:#efb2a6;--repeat-bg:#1a365d;--reward-bg:#14243c;--reward-line:#355d95;--reward-ink:#9dc3ff}
.sidebar{overflow-y:auto}.topbar-actions{display:flex;align-items:center;gap:17px}.theme-toggle{display:inline-flex;align-items:center;gap:7px;border:1px solid var(--btn-border);border-radius:4px;background:var(--panel);color:var(--text);padding:6px 10px;font-size:11px;min-height:34px;white-space:nowrap}.theme-toggle:hover{background:var(--hover)}.theme-toggle svg{width:16px;height:16px;stroke:currentColor;fill:none;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}.xp-counter{font:11px var(--mono);color:var(--reward-ink);white-space:nowrap}.sidebar-game{display:block;border-top:1px solid var(--line);padding:13px 0;margin-bottom:7px;color:var(--text)}.sidebar-game:hover{text-decoration:none}.sidebar-game>span{display:block;color:var(--muted);font-size:10px}.sidebar-game strong{font:17px var(--mono);display:block;margin-top:5px}.sidebar-game strong span{font:12px var(--sans);float:right;color:var(--muted)}.sidebar-bottom .book-mini{padding-top:12px;margin-bottom:15px}.task-xp{display:inline-block;margin-left:8px;color:var(--reward-ink);font:10px var(--sans)}
.game-summary{display:grid;grid-template-columns:minmax(190px,1fr) minmax(300px,1.8fr);gap:30px;border:1px solid var(--line);border-radius:5px;background:var(--panel);padding:24px;margin:24px 0 27px}.game-level .eyebrow{font-size:10px;letter-spacing:.3px}.xp-total{font:33px/1.4 Georgia,serif;color:var(--text);margin:6px 0}.xp-total small{font:12px var(--mono);color:var(--reward-ink)}.game-level progress{display:block;appearance:none;width:100%;height:5px;margin:11px 0 8px;border:0;border-radius:2px;overflow:hidden;accent-color:var(--accent);background:var(--line)}.game-level progress::-webkit-progress-bar{background:var(--line)}.game-level progress::-webkit-progress-value{background:var(--accent)}.game-level progress::-moz-progress-bar{background:var(--accent)}.game-level>small{font-size:10px}.game-metrics{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px;align-items:center}.game-metrics>div{min-width:0}.game-metrics strong{display:block;font:27px Georgia,serif;margin-bottom:5px}.game-metrics strong small{font:11px var(--sans);color:var(--muted)}.game-metrics>div>span{display:block;font-size:11px;color:var(--muted)}.game-metrics .practice-dots{display:flex;gap:5px;margin-top:10px}.practice-dots i{width:7px;height:7px;border:1px solid var(--positive-line);border-radius:50%;display:block}.practice-dots i.filled{background:var(--accent);border-color:var(--accent)}.home-game-summary{margin-top:0;margin-bottom:22px}
.quest-feature-grid{display:grid;grid-template-columns:1fr 1fr;gap:22px;margin-bottom:32px}.daily-quest,.next-quest{padding:23px;border:1px solid var(--line);border-radius:5px;background:var(--panel)}.daily-quest{border-color:var(--reward-line);background:var(--reward-bg)}.quest-feature-grid h2{font-size:24px;margin:12px 0}.quest-feature-grid p{font-size:12px;color:var(--muted)}.xp-tag{display:inline-block;padding:4px 8px;border:1px solid var(--reward-line);border-radius:3px;color:var(--reward-ink);background:var(--reward-bg);font:10px var(--mono);white-space:nowrap}.quest-phase{margin:22px 0 27px}.quest-phase>h3{font-size:11px;color:var(--muted);font-weight:500;margin-bottom:13px}.quest-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.quest-card{display:flex;flex-direction:column;padding:18px;border:1px solid var(--line);border-radius:5px;background:var(--panel);color:var(--text)}.quest-card:hover{border-color:var(--positive-line);text-decoration:none;background:var(--hover)}.quest-card.complete{border-color:var(--positive-line)}.quest-card-top{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:14px}.quest-number{font:11px var(--mono);color:var(--muted)}.quest-card-status{font-size:10px;color:var(--muted)}.quest-card.complete .quest-card-status{color:var(--accent)}.quest-card h2{font-size:21px;margin:0 0 9px;flex:1}.quest-card p{font-size:11px;color:var(--muted);margin:0 0 13px}.quest-task-dots{display:flex;gap:5px;margin-bottom:16px}.quest-task-dots i{width:18px;height:3px;background:var(--line);border-radius:1px}.quest-task-dots i.filled{background:var(--accent)}.quest-card-link{font-size:11px;color:var(--accent)}.badge-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:13px}.badge-card{border:1px solid var(--line);border-radius:5px;background:var(--panel);padding:17px;display:flex;gap:12px}.badge-card.earned{border-color:var(--reward-line)}.badge-icon{width:31px;flex-shrink:0;color:var(--muted)}.badge-icon svg{width:31px;fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}.badge-card.earned .badge-icon{color:var(--reward-ink)}.badge-card h3{font-size:12px;margin:0 0 5px}.badge-card p{font-size:10px;color:var(--muted);margin:0 0 9px;line-height:1.6}.badge-card small{font-size:10px}.badge-card.earned small{color:var(--reward-ink)}
.arcade-layout{display:grid;grid-template-columns:235px minmax(0,1fr);gap:27px;align-items:start}.puzzle-list{display:flex;flex-direction:column;gap:3px}.puzzle-link{display:grid;grid-template-columns:19px minmax(0,1fr) 40px;align-items:start;gap:8px;padding:11px 9px;border-left:2px solid transparent;color:var(--muted);font-size:11px}.puzzle-link:hover{background:var(--hover);text-decoration:none}.puzzle-link.active{border-left-color:var(--accent);background:var(--active);color:var(--text)}.puzzle-link>span{font:10px/1.7 var(--mono)}.puzzle-link strong{font-size:11px;font-weight:500}.puzzle-link small{text-align:right;font:10px/1.7 var(--mono);color:var(--reward-ink)}.puzzle-card{border:1px solid var(--line);border-radius:5px;background:var(--panel);padding:27px;min-width:0}.puzzle-card.boss-card{border-color:var(--reward-line)}.puzzle-meta{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:18px}.puzzle-meta .eyebrow{font-size:10px}.puzzle-card h2{font-size:29px;margin-bottom:16px}.puzzle-prompt{font-size:13px;line-height:1.8;color:var(--muted)}.puzzle-fixture{margin:20px 0;padding:19px;background:var(--code-bg);border:1px solid var(--line);border-radius:3px;font:13px/1.9 var(--mono);color:var(--code-text);white-space:pre-wrap;overflow-wrap:anywhere}.puzzle-fixture code{font:inherit}.puzzle-code{margin-top:15px}.puzzle-code .python-code{margin:0;max-height:none;font-size:12px}.puzzle-answer{border:0;padding:0;margin:22px 0}.puzzle-answer legend{font-size:11px;color:var(--muted);padding:0;margin-bottom:12px}.puzzle-answer>input{max-width:420px}.puzzle-option{display:flex;align-items:flex-start;gap:10px;padding:12px 14px;border:1px solid var(--line);border-radius:4px;margin-bottom:8px;font-size:12px;cursor:pointer}.puzzle-option:hover{background:var(--hover)}.puzzle-option input{margin-top:4px;flex-shrink:0}.puzzle-option input:checked+span{color:var(--accent)}input[type=radio]{width:auto;accent-color:var(--accent)}.hint-text{padding:14px;margin:18px 0;background:var(--warning-bg);border-left:2px solid var(--warning-line);color:var(--warning-ink);font-size:12px}.puzzle-feedback{margin-top:20px;padding:16px;border:1px solid var(--line);font-size:12px;border-radius:4px}.puzzle-feedback:empty{display:none}.puzzle-feedback.solved{background:var(--positive-bg);border-color:var(--positive-line);animation:quest-win .25s ease-out}.puzzle-feedback.solved strong{color:var(--accent);font-size:13px}.puzzle-feedback p{margin:9px 0 0;color:var(--text)}.puzzle-feedback.retry{background:var(--warning-bg);border-color:var(--warning-line);color:var(--warning-ink)}#puzzle-next .button-row{margin-top:18px}.puzzle-reading{display:flex;flex-wrap:wrap;gap:13px;border-top:1px solid var(--line);padding-top:18px;margin-top:27px;font-size:11px}.puzzle-boundary{margin:15px 0 0;font-size:10px;color:var(--muted)}.lab-quest{display:flex;justify-content:space-between;align-items:center;gap:24px;padding:20px;margin-top:26px;background:var(--positive-bg);border:1px solid var(--positive-line);border-radius:4px}.lab-quest h2{font-size:22px;margin:8px 0 10px}.lab-quest p{font-size:12px;margin:0 0 8px}.lab-quest small{font-size:10px}.lab-quest .btn{flex-shrink:0}.proof-quest{border:1px solid var(--reward-line);background:var(--panel);border-radius:4px;padding:23px;margin:28px 0}.proof-quest h2{font-size:25px;margin:10px 0 15px}.proof-quest>p{font-size:12px}.toast{background:var(--primary);color:var(--primary-text)}
@keyframes quest-win{from{transform:translateY(4px);opacity:.6}to{transform:translateY(0);opacity:1}}
@media(max-width:1180px){.badge-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.quest-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.arcade-layout{grid-template-columns:205px minmax(0,1fr);gap:20px}.game-summary{gap:24px;padding:21px}.game-metrics{gap:15px}.game-metrics strong{font-size:25px}.topbar-actions{gap:13px}}
@media(max-width:850px){.sidebar{overflow-y:visible}.sidebar-game{grid-column:1/-1;display:flex;justify-content:space-between;align-items:center;margin:0;padding:8px 0;border:0}.sidebar-game strong{font-size:13px;margin:0}.sidebar-game strong span{display:none}.sidebar nav{margin-top:13px}.game-summary{grid-template-columns:minmax(160px,.8fr) minmax(290px,1.5fr)}.arcade-layout{grid-template-columns:1fr}.puzzle-list{flex-direction:row;overflow-x:auto;gap:5px;padding-bottom:8px}.puzzle-link{min-width:210px;max-width:235px;flex-shrink:0;border-left:0;border-bottom:2px solid transparent}.puzzle-link.active{border-bottom-color:var(--accent)}.puzzle-card{padding:25px}}
@media(max-width:650px){.topbar-actions{gap:12px}.topbar-actions .pace-chip{display:none}.theme-toggle{font-size:10px;padding:5px 8px}.theme-toggle svg{width:14px;height:14px}.xp-counter{font-size:10px}.game-summary{grid-template-columns:1fr;padding:19px;gap:20px}.game-level{border-bottom:1px solid var(--line);padding-bottom:17px}.game-level progress{max-width:100%}.game-metrics{gap:14px}.game-metrics>div>span{font-size:10px}.game-metrics strong{font-size:24px}.quest-feature-grid{grid-template-columns:1fr;gap:14px}.daily-quest,.next-quest{padding:19px}.quest-grid{grid-template-columns:1fr 1fr;gap:10px}.quest-card{padding:14px}.quest-card h2{font-size:19px}.quest-card-status{font-size:9px}.quest-card-top{gap:7px}.badge-grid{gap:10px}.badge-card{padding:13px;display:block}.badge-icon{margin-bottom:10px}.badge-card p{font-size:10px}.puzzle-card{padding:19px}.puzzle-card h2{font-size:26px}.puzzle-meta{align-items:flex-start}.puzzle-meta .eyebrow{max-width:180px;line-height:1.7}.puzzle-prompt{font-size:12px}.puzzle-fixture{font-size:12px;padding:15px}.puzzle-option{padding:11px;font-size:12px}.lab-quest{display:block;padding:18px}.lab-quest .btn{margin-top:15px}.proof-quest{padding:19px}}
@media(prefers-reduced-motion:reduce){.puzzle-feedback.solved{animation:none}}
.badge-card.course-badge{grid-column:span 2;align-items:flex-start;padding:1.125rem}
.badge-card.course-badge h3{font-size:.875rem;line-height:1.5;overflow-wrap:anywhere}
.badge-card.course-badge p,.badge-card.course-badge small{font-size:.75rem;line-height:1.6}
.badge-card.course-badge .badge-progress{margin-bottom:.5rem;font-family:var(--mono)}
.badge-card.course-badge .badge-icon{width:2.5rem;border:1px solid var(--line);border-radius:.5rem;background:var(--panel2);padding:.375rem}
.badge-card.course-badge .badge-icon svg{width:100%;display:block}
.badge-card.course-badge.earned{background:var(--reward-bg)}
.badge-card[data-badge="quantum-cryptographer"].earned .badge-icon{color:var(--purple)}
.course-earned-badges{display:flex;flex-wrap:wrap;gap:.625rem;margin:-.5rem 0 1.75rem}
.course-earned-badges[hidden]{display:none}
.course-badge-tag{display:inline-flex;align-items:center;gap:.5rem;border:1px solid var(--reward-line);background:var(--reward-bg);color:var(--reward-ink);border-radius:1.5rem;padding:.5rem .875rem;font-size:.875rem;line-height:1.5}
.course-badge-tag svg{width:1.25rem;height:1.25rem;flex-shrink:0;fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}
.course-badge-tag[data-earned-badge="quantum-cryptographer"]{color:var(--purple)}
@media print{:root[data-theme]{color-scheme:light;--bg:#fff;--panel:#fff;--panel2:#eef2f8;--line:#d9e1ee;--text:#111827;--muted:#52627a;--accent:#1d4ed8;--purple:#6d28d9;--orange:#85601b;--red:#a03d38;--sidebar:#f1f4fa;--hover:#e8eef9;--active:#e3ecff;--code-bg:#f0f4fa;--code-text:#17233b;--input-border:#becbdf;--btn-border:#becbdf;--primary:#1d4ed8;--primary-hover:#1e40af;--primary-text:#fff;--positive-bg:#eaf1ff;--positive-line:#789bdf;--mission-ink:#234e9a;--warning-bg:#fff6df;--warning-line:#d5b571;--warning-ink:#765621;--error-bg:#fff0ee;--error-line:#d3a09a;--error-ink:#8b3934;--repeat-bg:#dce8ff;--reward-bg:#edf3ff;--reward-line:#bdd2fc;--reward-ink:#1d4ed8}.arcade-layout{display:block}.puzzle-list{display:none}.game-summary{break-inside:avoid}.quest-card,.badge-card{break-inside:avoid}.theme-toggle,.xp-counter{display:none}.lab-quest,.proof-quest,.puzzle-card{break-inside:avoid}}
