/* ── Purple theme overrides ── */
.hero{background:linear-gradient(180deg,#0d0020 0%,#0a0b10 100%)}.hero-inner{max-width:1100px;margin:0 auto}.hero-badge{background:rgba(167,139,250,.12);border:1px solid rgba(167,139,250,.3);color:#a78bfa}
h1 em{color:#a78bfa}.btn-start{background:linear-gradient(135deg,#9333ea,#6d28d9);box-shadow:0 4px 0 #4c1d95}
.steps-list li .num-badge{color:var(--purple)}
.blocks-wrap{background:#0d0020;border:1px solid rgba(167,139,250,.25);border-radius:12px;margin:12px 0;overflow:hidden}.blocks-label{background:#1a003a;padding:6px 14px;font-size:.7rem;font-weight:800;color:rgba(167,139,250,.7);letter-spacing:.08em;text-transform:uppercase;border-bottom:1px solid rgba(167,139,250,.15)}.blocks-body{padding:14px 16px;font-family:'JetBrains Mono','Courier New',monospace;font-size:.82rem;line-height:1.8;overflow-x:auto;white-space:pre;color:#e9d5ff}.b-hat{color:#ffcc02;font-weight:700}.b-motion{color:#4c97ff}.b-looks{color:#9966ff}.b-control{color:#ffab19}.b-sensing{color:#5cb1d6}.b-ops{color:#59c059}.b-vars{color:#ff8c1a}
.cc-code-area{color:#e9d5ff}
.finish-banner{background:linear-gradient(135deg,rgba(167,139,250,.12),rgba(255,119,0,.08));border:1px solid rgba(167,139,250,.3)}.finish-title{color:var(--purple)}.next-ep-btn{background:linear-gradient(135deg,#9333ea,#6d28d9);box-shadow:0 4px 0 #4c1d95}
.gallery-input:focus{border-color:rgba(167,139,250,.5)}.gallery-copy-btn{background:linear-gradient(135deg,#9333ea,#6d28d9);box-shadow:0 2px 0 #4c1d95}.gallery-hint{font-size:.78rem;color:var(--muted);line-height:1.5}
.next-series-wrap{max-width:1100px;margin:0 auto;padding:0 20px 20px}
.next-series-box{background:linear-gradient(135deg,rgba(0,180,255,.08),rgba(147,51,234,.06));border:1px solid rgba(0,180,255,.2);border-radius:20px;padding:28px 28px 24px}
.next-series-label{font-size:.72rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:#60a5fa;margin-bottom:8px}
.next-series-title{font-family:'Fredoka',cursive;font-size:1.6rem;color:#fff;margin-bottom:6px}
.next-series-sub{font-size:.88rem;color:var(--muted);line-height:1.6;margin-bottom:20px}
.next-series-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:12px}
.ns-card{display:flex;flex-direction:column;gap:7px;background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.1);border-radius:14px;padding:16px;text-decoration:none;color:inherit;transition:transform .15s,border-color .15s}
.ns-card:hover{transform:translateY(-2px);border-color:rgba(255,255,255,.2)}
.ns-card-icon{font-size:1.8rem;line-height:1}
.ns-card-name{font-family:'Fredoka',cursive;font-size:1rem;font-weight:700;color:#fff}
.ns-card-desc{font-size:.76rem;color:var(--muted);line-height:1.5;flex:1}
.ns-card-cta{font-size:.75rem;font-weight:700;color:#60a5fa}
.ns-card.dim{opacity:.55;pointer-events:none}.ns-card.dim .ns-card-cta{color:var(--muted)}
@media print{.site-header,.series-strip,.progress-wrap,.xp-wrap,.step-card.locked,.quiz-gate,.code-challenge,.concept-fill,.tf-round,.order-challenge,.predict-challenge,.finish-banner,.site-footer,.hero-btns,.print-btn,.skills-strip,.next-series-wrap{display:none!important}.hero{padding:16px 0 10px;border:none}.step-card{border:1px solid #ccc;break-inside:avoid;margin-bottom:12px}.step-card.completed .step-body,.step-card.active-step .step-body{display:block!important}.blocks-body{white-space:pre-wrap}.step-body{display:block!important}body{font-family:'Inter',sans-serif;background:var(--bg);color:var(--text);overflow-x:hidden}h1,h3,.step-title,.finish-title{color:#111}.hero-sub,.step-blurb,.big-goal-text p{color:#444}}
body{font-family:'Inter',sans-serif;background:var(--bg);color:var(--text);overflow-x:hidden}
.reveal{opacity:1!important;transform:none!important}