:root{--bg: #12100e;--panel: #1d1a17;--panel-2: #262220;--ink: #f2ede6;--muted: #a89f93;--accent: #ff7a45;--accent-2: #ffb340;--good: #6fce8f;--bad: #e2635f;--border: #38322c;--mono: ui-monospace, "Cascadia Code", "Source Code Pro", Menlo, monospace}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font:16px/1.6 system-ui,-apple-system,Segoe UI,sans-serif}a{color:var(--accent-2)}h1,h2,h3{line-height:1.2}main{max-width:860px;margin:0 auto;padding:0 1.25rem 4rem}footer{text-align:center;color:var(--muted);padding:2rem 1rem;border-top:1px solid var(--border)}.btn{display:inline-block;cursor:pointer;text-decoration:none;font:inherit;font-weight:600;border-radius:8px;padding:.45rem 1rem;border:1px solid var(--border);background:var(--panel-2);color:var(--ink)}.btn-cta{background:var(--accent);border-color:var(--accent);color:#1a0d05}.btn-cta:hover{background:var(--accent-2);border-color:var(--accent-2)}.btn-run{background:var(--panel-2);border-color:var(--accent);color:var(--accent-2)}.btn-run:hover{background:#33291f}.btn-ghost{color:var(--muted)}.btn:disabled{opacity:.6;cursor:default}.badge{font:600 .72rem/1 var(--mono);text-transform:uppercase;letter-spacing:.06em;padding:.25rem .5rem;border-radius:99px;background:var(--panel-2);color:var(--muted);border:1px solid var(--border)}.badge-free{color:var(--good);border-color:var(--good)}.badge-lock{color:var(--accent-2);border-color:var(--accent-2)}.badge-checkpoint{color:var(--accent);border-color:var(--accent)}.hero{text-align:center;padding:4rem 1.25rem 3rem}.hero h1{font-size:clamp(2rem,5vw,3.2rem);margin:.5rem 0 1rem}.brand{font:700 1rem var(--mono);color:var(--accent);text-decoration:none;letter-spacing:.04em}.sub{max-width:40rem;margin:0 auto 2rem;color:var(--muted)}.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:1rem}.card{background:var(--panel);border:1px solid var(--border);border-radius:12px;padding:1.1rem;display:flex;flex-direction:column;gap:.5rem}.card h3{margin:0;font-size:1.02rem}.card p{margin:0;color:var(--muted);font-size:.9rem;flex:1}.card-top{display:flex;justify-content:space-between;align-items:center}.mod-n{font:700 .9rem var(--mono);color:var(--muted)}.card-locked{opacity:.75}.card-live{border-color:var(--accent)}.soon-note{color:var(--muted);font-size:.85rem}.pricing-cols{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:1rem}.price-card{background:var(--panel);border:1px solid var(--border);border-radius:12px;padding:1.4rem}.price-card.featured{border-color:var(--accent)}.price{font-size:2.2rem;font-weight:700;margin:.2rem 0}.price-note{font-size:.9rem;color:var(--muted);font-weight:400}.fine{color:var(--muted);font-size:.8rem}.lab-header{display:flex;justify-content:space-between;align-items:center;padding:.9rem 1.25rem;border-bottom:1px solid var(--border);position:sticky;top:0;background:var(--bg);z-index:5}.progress{font:600 .85rem var(--mono);color:var(--accent-2)}.engine-status{max-width:860px;margin:1rem auto 0;padding:.6rem 1rem;font:.85rem var(--mono);color:var(--muted);background:var(--panel);border:1px solid var(--border);border-radius:8px}.engine-status[data-state=ready]{color:var(--good);border-color:var(--good)}.engine-status[data-state=error]{color:var(--bad);border-color:var(--bad)}.cell{margin:1.5rem 0}.cell-md h2,.cell-md h3{margin-top:2rem}.cell-md table{border-collapse:collapse;margin:.5rem 0}.cell-md th,.cell-md td{border:1px solid var(--border);padding:.35rem .7rem;font-size:.9rem}.cell-md code{font-family:var(--mono);background:var(--panel-2);padding:.1rem .3rem;border-radius:4px;font-size:.9em}.cell-code,.cell-exercise,.cell-checkpoint{background:var(--panel);border:1px solid var(--border);border-radius:12px;padding:.9rem}.cell-exercise{border-left:3px solid var(--accent-2)}.cell-checkpoint{border-left:3px solid var(--accent)}.cell-checkpoint.passed{border-color:var(--good)}.cell-header{display:flex;gap:.6rem;align-items:center;margin-bottom:.6rem;font-size:.9rem}.cp-state{margin-left:auto;font:600 .8rem var(--mono);color:var(--muted)}.cp-state[data-state=passed]{color:var(--good)}.cp-state[data-state=failed]{color:var(--bad)}.cell-source{width:100%;resize:vertical;min-height:2.2rem;background:var(--panel-2);color:var(--ink);font:.88rem/1.55 var(--mono);border:1px solid var(--border);border-radius:8px;padding:.7rem;white-space:pre;overflow-x:auto}.cell-source:read-only{color:var(--muted)}.cell-actions{display:flex;gap:.6rem;margin-top:.6rem}body:not(.engine-ready) .btn-run{opacity:.5;pointer-events:none}.cell-output{margin:.6rem 0 0;padding:.7rem;background:#0d0c0a;border:1px solid var(--border);border-radius:8px;font:.85rem/1.5 var(--mono);color:var(--good);white-space:pre-wrap;overflow-x:auto}.cell-output.error{color:var(--bad)}.module-complete{max-width:860px;margin:2rem auto;padding:1.5rem;text-align:center;background:var(--panel);border:1px solid var(--good);border-radius:12px}
