body{background:#0a0b10;color:#e8eaf2;min-height:100vh;overflow-x:hidden}
/* ── HERO (page-specific) ── */
.hero-bg{position:absolute;inset:0;pointer-events:none;overflow:hidden}
.float-cube{position:absolute;opacity:.07;animation:floatUp linear infinite}
@keyframes floatUp{0%{transform:translateY(100%) rotate(0deg);opacity:0}20%{opacity:.12}80%{opacity:.06}100%{transform:translateY(-120%) rotate(360deg);opacity:0}}
.hero-art{flex-shrink:0}
.hero-art svg{filter:drop-shadow(0 8px 32px rgba(232,131,58,.35))}

/* ── STEP NUM COLORS ── */
.step-num.sn-orange{background:rgba(232,131,58,.18);color:var(--accent);border:2px solid rgba(232,131,58,.3)}
.step-num.sn-yellow{background:rgba(255,209,102,.15);color:var(--accent2);border:2px solid rgba(255,209,102,.25)}
.step-num.sn-green{background:rgba(6,214,160,.15);color:var(--green);border:2px solid rgba(6,214,160,.25)}
.step-num.sn-teal{background:rgba(77,217,224,.15);color:var(--teal);border:2px solid rgba(77,217,224,.25)}
.step-num.sn-pink{background:rgba(255,112,184,.15);color:var(--pink);border:2px solid rgba(255,112,184,.25)}
.step-num.sn-purple{background:rgba(167,139,250,.15);color:var(--purple);border:2px solid rgba(167,139,250,.25)}
.step-num.sn-blue{background:rgba(96,165,250,.15);color:var(--blue);border:2px solid rgba(96,165,250,.25)}
.step-num.sn-done{background:rgba(6,214,160,.25);color:var(--green);border:2px solid var(--green)}

/* ── TIME BADGE ── */
.step-time{font-size:.7rem;font-weight:700;color:var(--teal);background:rgba(77,217,224,.08);border:1px solid rgba(77,217,224,.18);border-radius:8px;padding:2px 8px;margin-top:4px;display:inline-block}

/* ── CHEAT SHEET ── */
.cheat-wrap{max-width:1100px;margin:14px auto 0;padding:0 20px}
.cheat-toggle{width:100%;background:rgba(167,139,250,.07);border:1px solid rgba(167,139,250,.22);border-radius:12px;padding:11px 18px;cursor:pointer;display:flex;align-items:center;justify-content:space-between;font-family:'Fredoka',cursive;font-size:.95rem;color:var(--purple);font-weight:600;transition:background .15s;text-align:left}
.cheat-toggle:hover{background:rgba(167,139,250,.13)}
.cheat-arrow{transition:transform .2s;font-size:.8rem;margin-left:8px}
.cheat-body{display:none;padding:14px 0 4px}
.cheat-wrap.open .cheat-body{display:block}
.cheat-wrap.open .cheat-arrow{transform:rotate(180deg)}
.shortcut-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:9px}
.shortcut-item{background:var(--card);border:1px solid var(--border);border-radius:10px;padding:10px 14px;display:flex;align-items:flex-start;gap:10px}
.si-keys{display:flex;gap:3px;flex-shrink:0;flex-wrap:wrap;max-width:90px}
.si-desc{font-size:.79rem;color:var(--muted);line-height:1.4}
.si-desc strong{color:var(--text);display:block;margin-bottom:1px}

/* ── XP POPUP (page-specific floating version) ── */
@keyframes xpPop{0%{opacity:0;transform:translateY(0) scale(.8)}20%{opacity:1;transform:translateY(-24px) scale(1.15)}80%{opacity:1;transform:translateY(-48px) scale(1)}100%{opacity:0;transform:translateY(-70px) scale(.85)}}
.xp-pop{position:fixed;pointer-events:none;z-index:9999;font-family:'Fredoka',cursive;font-size:1.4rem;font-weight:700;color:var(--accent2);text-shadow:0 0 24px rgba(255,209,102,.7);animation:xpPop 1.9s ease forwards}

/* ── BADGES ── */
.badge-row{display:flex;flex-wrap:wrap;gap:8px;justify-content:center;margin:16px 0 8px}
.badge-chip{display:inline-flex;align-items:center;gap:6px;background:rgba(255,209,102,.1);border:1px solid rgba(255,209,102,.28);border-radius:20px;padding:5px 13px;font-family:'Fredoka',cursive;font-size:.85rem;color:var(--accent2)}

/* ── CONTENT HELPERS ── */
.ic{display:inline-block;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.12);border-radius:5px;padding:1px 7px;font-family:'JetBrains Mono',monospace;font-size:.8rem;color:var(--accent2)}
.two-col{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin:12px 0}
@media(max-width:600px){.two-col{grid-template-columns:1fr}}
.mini-card{background:rgba(255,255,255,.03);border:1px solid var(--border);border-radius:10px;padding:14px}
.mini-card h4{font-family:'Fredoka',cursive;font-size:.9rem;color:var(--accent2);margin-bottom:6px}
.mini-card p{font-size:.82rem;color:var(--muted);line-height:1.5}
.try-it{background:rgba(232,131,58,.06);border:2px dashed rgba(232,131,58,.3);border-radius:14px;padding:16px 18px;margin:16px 0}
.try-it-header{font-family:'Fredoka',cursive;font-size:.95rem;color:var(--accent);margin-bottom:8px;display:flex;align-items:center;gap:8px}
.try-it p{font-size:.86rem;color:var(--muted);line-height:1.6}

/* ── BONUS CHALLENGE ── */
.bonus{background:rgba(96,165,250,.06);border:1px dashed rgba(96,165,250,.32);border-radius:14px;padding:14px 16px;margin:14px 0}
.bonus-hd{font-family:'Fredoka',cursive;font-size:.92rem;color:var(--blue);margin-bottom:6px;display:flex;align-items:center;gap:6px}
.bonus p{font-size:.84rem;color:var(--muted);line-height:1.6}

/* ── CHECKPOINT ── */
.checkpoint{background:rgba(6,214,160,.05);border:1px solid rgba(6,214,160,.18);border-radius:12px;padding:12px 16px;margin:14px 0;display:flex;gap:10px;align-items:flex-start}
.checkpoint-icon{font-size:1.15rem;flex-shrink:0;line-height:1.5}
.checkpoint div{font-size:.83rem;color:#b2f0e0;line-height:1.6}
.checkpoint strong{display:block;color:var(--green);margin-bottom:3px;font-size:.75rem;text-transform:uppercase;letter-spacing:.06em}