:root{--bg:#0a0e14;--surface:#0f141c;--surface-2:#141b25;--surface-3:#1a222e;--border:#212b38;--border-strong:#2d3a4a;--text:#e6edf3;--muted:#8b98a8;--faint:#5c6a7a;--accent:#3fe06b;--accent-ink:#061b0d;--accent-dim:#3fe06b24;--accent-line:#3fe06b66;--accent-glow:#3fe06b47;--cyan:#4cc9e6;--amber:#e3b341;--danger:#f85149;--danger-dim:#f851491f;--radius:12px;--radius-sm:8px;--radius-pill:999px;--gap:16px;--font-ui:"Inter", system-ui, -apple-system, "Segoe UI", sans-serif;--font-mono:ui-monospace, "JetBrains Mono", "SF Mono", "SFMono-Regular", Menlo, monospace;--shadow:0 10px 30px -12px #0009;--shadow-glow:0 0 0 1px var(--accent-line), 0 8px 30px -10px var(--accent-glow);--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;font-family:var(--font-ui);color:var(--text);background:var(--bg)}*{box-sizing:border-box}body{background: radial-gradient(1000px 480px at 50% -260px, var(--accent-dim), transparent 72%),  radial-gradient(#8b98a81a 1px, transparent 1.4px) 0 0 / 30px 30px, var(--bg);background-attachment:fixed;min-height:100vh;margin:0}h1,h2,h3{letter-spacing:-.01em;margin:0 0 .4rem;font-weight:650}h1{font-size:1.5rem}h2{font-size:1.1rem}a{color:var(--cyan)}::selection{background:var(--accent-glow);color:var(--text)}.mono{font-family:var(--font-mono)}.caret{width:.6ch;color:var(--accent);animation:1.1s step-end infinite blink;display:inline-block}@keyframes blink{50%{opacity:0}}@media (prefers-reduced-motion:reduce){.caret{animation:none}}.shell{max-width:1000px;margin:0 auto;padding:0 16px}.topbar{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;height:66px;margin-bottom:4px;display:flex}.brand{color:var(--text);cursor:pointer;font-family:var(--font-mono);letter-spacing:.01em;background:0 0;border:none;align-items:center;gap:8px;padding:0;font-size:1.12rem;font-weight:700;display:inline-flex}.brand .prompt{color:var(--accent);text-shadow:0 0 12px var(--accent-glow)}.topbar-right{align-items:center;gap:12px;display:flex}.content{padding:32px 0 72px}.home{animation:.25s both rise}@keyframes rise{0%{opacity:0;transform:translateY(6px)}}@media (prefers-reduced-motion:reduce){.home{animation:none}}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);width:100%;padding:26px 28px}.card.narrow{max-width:420px;box-shadow:var(--shadow);margin:7vh auto 0}.muted{color:var(--muted);margin:0 0 1rem;line-height:1.55}.fineprint{color:var(--faint);margin:1.25rem 0 0;font-size:.8rem}.description{color:var(--text);opacity:.88;white-space:pre-line;max-width:68ch;line-height:1.62}.alert{background:var(--danger-dim);color:#ffb3ab;border-radius:var(--radius-sm);border:1px solid #f8514966;margin:0 0 1rem;padding:11px 14px;font-size:.9rem;line-height:1.5}.alert.success{border-color:var(--accent-line);background:var(--accent-dim);color:#b9f6cd;margin-top:16px}.stack{gap:10px;display:grid}.btn{font:inherit;border-radius:var(--radius-sm);border:1px solid var(--border-strong);background:var(--surface-2);color:var(--text);cursor:pointer;justify-content:center;align-items:center;gap:10px;padding:10px 18px;font-size:.95rem;font-weight:550;text-decoration:none;transition:background .15s,border-color .15s,box-shadow .15s,transform 80ms;display:inline-flex}.btn:hover{background:var(--surface-3);border-color:var(--faint)}.btn:active{transform:translateY(1px)}.btn:focus-visible{box-shadow:0 0 0 2px var(--bg), 0 0 0 4px var(--accent-line);outline:none}.btn[disabled]{opacity:.55;cursor:default}.btn.primary{background:var(--accent);color:var(--accent-ink);box-shadow:0 0 20px -6px var(--accent-glow);border-color:#0000;font-weight:650}.btn.primary:hover{box-shadow:0 0 26px -4px var(--accent-glow);background:#52ea7d}.btn.ghost{background:0 0}.btn.provider{width:100%;padding:12px 16px}.btn.provider.google{color:#1f1f1f;background:#fff;border-color:#dadce0}.btn.provider.google:hover{background:#f1f3f4}.icon{flex:none;width:18px;height:18px}.cap-pill{border:1px solid var(--border-strong);border-radius:var(--radius-pill);font-family:var(--font-mono);color:var(--muted);font-variant-numeric:tabular-nums;align-items:center;gap:7px;padding:4px 12px 4px 10px;font-size:.78rem;display:inline-flex}.cap-pill:before{content:"";background:var(--accent);width:7px;height:7px;box-shadow:0 0 8px var(--accent-glow);border-radius:50%}.avatar{border:1px solid var(--border-strong);border-radius:50%;flex:none}.avatar.sm{width:30px;height:30px}.badge{border:1px solid var(--border-strong);border-radius:var(--radius-pill);font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.06em;color:var(--muted);white-space:nowrap;align-items:center;gap:6px;padding:3px 11px;font-size:.68rem;display:inline-flex}.badge.dot:before{content:"";background:currentColor;border-radius:50%;width:6px;height:6px}.badge.done{color:#8ef0ab;border-color:var(--accent-line);background:var(--accent-dim)}.badge.live{color:#a7e6f2;background:#4cc9e61f;border-color:#4cc9e680}.badge.live.dot:before{animation:1.6s ease-in-out infinite pulse;box-shadow:0 0 8px #4cc9e6b3}@keyframes pulse{50%{opacity:.4}}@media (prefers-reduced-motion:reduce){.badge.live.dot:before{animation:none}}.badge.wip{color:#f1d58a;background:#e3b3411a;border-color:#e3b34180}.badge.diff.beginner{color:#8ef0ab;border-color:#3fe06b80}.badge.diff.intermediate{color:#f1d58a;border-color:#e3b3418c}.badge.diff.advanced{color:#ffb3ab;border-color:#f851498c}.catalog{grid-template-columns:repeat(auto-fill,minmax(290px,1fr));gap:16px;margin-top:22px;display:grid}.lab-card{text-align:left;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);cursor:pointer;color:var(--text);font:inherit;padding:20px 22px;transition:border-color .16s,box-shadow .16s,transform .1s;position:relative;overflow:hidden}.lab-card:before{content:"";background:var(--accent);opacity:0;width:3px;transition:opacity .16s;position:absolute;top:0;bottom:0;left:0}.lab-card:hover{border-color:var(--border-strong);box-shadow:var(--shadow-glow);transform:translateY(-2px)}.lab-card:hover:before{opacity:1}.lab-card:active{transform:translateY(0)}.lab-card:focus-visible{box-shadow:var(--shadow-glow);outline:none}.lab-card h2{margin:12px 0 6px;font-size:1.12rem}.lab-card-top{justify-content:space-between;align-items:center;gap:8px;display:flex}.progress{align-items:center;gap:10px;margin-top:16px;display:flex}.bar{background:var(--surface-3);border-radius:var(--radius-pill);flex:1;height:6px;overflow:hidden}.bar>div{background:linear-gradient(90deg, var(--accent), #74f09a);height:100%;box-shadow:0 0 10px var(--accent-glow);transition:width .3s}.progress-label{font-family:var(--font-mono);color:var(--muted);font-variant-numeric:tabular-nums;font-size:.76rem}.link-back,.link{color:var(--cyan);cursor:pointer;font:inherit;background:0 0;border:none;padding:0}.link-back{margin-bottom:18px;display:inline-block}.link:hover,.link-back:hover{text-decoration:underline}.card.launch{margin-top:20px}.card.launch .alert{margin-bottom:16px}.launch-row{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;display:flex}.launch-row .muted{margin:0}.badge-row{flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:14px;display:flex}.badge-row+h1{margin-top:2px}.sandbox-panel{border-color:var(--border-strong);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;margin-top:20px;display:flex}.sandbox-panel h3{margin:0 0 8px}.sandbox-actions{gap:10px;display:flex}.sandbox-meta{flex-wrap:wrap;align-items:center;gap:8px;margin:0;line-height:1.4;display:flex}.sandbox-meta .muted{margin:0}.sandbox-meta .sep{color:var(--faint)}.sandbox-meta .faint{color:var(--faint);font-size:.9rem}.countdown{font-family:var(--font-mono);font-variant-numeric:tabular-nums;color:var(--text);background:var(--surface-3);border:1px solid var(--border-strong);border-radius:var(--radius-sm);letter-spacing:.02em;padding:2px 9px;font-size:.9rem;font-weight:600}.countdown.low{color:#f1d58a;background:#e3b3411a;border-color:#e3b34180}.countdown.expired{color:#ffb3ab;background:var(--danger-dim);text-transform:uppercase;letter-spacing:.06em;border-color:#f8514980;font-size:.72rem}.steps-head{margin-top:30px}.steps{counter-reset:step;gap:14px;margin:14px 0 0;padding:0;list-style:none;display:grid}.step{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);padding:18px 20px;position:relative}.step.solved{border-color:var(--accent-line)}.step-head{align-items:center;gap:12px;display:flex}.step-tick{border:1px solid var(--border-strong);width:24px;height:24px;color:var(--faint);border-radius:50%;flex:none;place-items:center;font-size:.85rem;font-weight:700;display:grid}.step.solved .step-tick{color:var(--accent-ink);background:var(--accent);box-shadow:0 0 12px var(--accent-glow);border-color:#0000}.step-head h3{margin:0;font-size:1.02rem}.prompt{color:var(--text);opacity:.86;margin:10px 0;line-height:1.58}.prompt code,.hint-body code,.description code{font-family:var(--font-mono);background:var(--surface-3);color:#c9f5d6;border-radius:5px;padding:.1rem .4rem;font-size:.88em}.hint-wrap{margin:12px 0 4px}.hint-toggle{cursor:pointer;font:inherit;color:var(--amber);border-radius:var(--radius-pill);background:#e3b34114;border:1px solid #e3b34152;align-items:center;gap:7px;padding:6px 13px;font-size:.85rem;font-weight:550;transition:background .15s,border-color .15s;display:inline-flex}.hint-toggle:hover{background:#e3b34126;border-color:#e3b3418c}.hint-toggle:active{transform:translateY(1px)}.hint-toggle:focus-visible{box-shadow:0 0 0 2px var(--bg), 0 0 0 4px #e3b34173;outline:none}.hint-icon{font-size:.95rem;line-height:1}.hint-chevron{flex:none;width:12px;height:12px;transition:transform .18s}.hint-chevron.open{transform:rotate(180deg)}.hint-body{border:1px solid #e3b34147;border-left:3px solid var(--amber);border-radius:var(--radius-sm);color:var(--muted);background:#e3b34112;margin-top:10px;padding:12px 15px;font-size:.92rem;line-height:1.58;animation:.18s both hintIn}@keyframes hintIn{0%{opacity:0;transform:translateY(-4px)}}@media (prefers-reduced-motion:reduce){.hint-chevron,.hint-body{transition:none;animation:none}}.flag-form{flex-wrap:wrap;align-items:center;gap:10px;margin-top:12px;display:flex}.flag-form input{min-width:220px;font:inherit;font-family:var(--font-mono);background:var(--bg);border:1px solid var(--border-strong);border-radius:var(--radius-sm);color:var(--text);flex:1;padding:10px 12px}.flag-form input::placeholder{color:var(--faint)}.flag-form input:focus{border-color:var(--accent-line);box-shadow:0 0 0 3px var(--accent-dim);outline:none}.wrong{color:#ffb3ab;font-size:.88rem}.step-done{color:var(--accent);font-weight:550;font-family:var(--font-mono);margin:8px 0 0;font-size:.9rem}.spinner{border:2px solid var(--border-strong);border-top-color:var(--accent);vertical-align:-3px;border-radius:50%;width:16px;height:16px;margin-right:8px;animation:.7s linear infinite spin;display:inline-block}@keyframes spin{to{transform:rotate(360deg)}}@media (width<=560px){.topbar{height:58px}.cap-pill .label-long{display:none}}
