/* -- Page-specific step-num color overrides -- */
.sn-green{background:rgba(90,138,0,.18);color:var(--accent2);border:2px solid rgba(90,138,0,.3)}
.sn-teal{background:rgba(77,217,224,.15);color:var(--teal);border:2px solid rgba(77,217,224,.25)}
.sn-purple{background:rgba(167,139,250,.15);color:var(--purple);border:2px solid rgba(167,139,250,.25)}
.sn-pink{background:rgba(255,112,184,.15);color:var(--pink);border:2px solid rgba(255,112,184,.25)}
.sn-yellow{background:rgba(255,209,102,.15);color:var(--yellow);border:2px solid rgba(255,209,102,.25)}
.sn-blue{background:rgba(96,165,250,.15);color:var(--blue);border:2px solid rgba(96,165,250,.25)}
.sn-red{background:rgba(248,113,113,.15);color:var(--red);border:2px solid rgba(248,113,113,.25)}
.sn-done{background:rgba(6,214,160,.25);color:var(--green);border:2px solid var(--green)}
@media print{.site-header,.series-strip,.progress-wrap,.xp-wrap,.step-card.locked,.quiz-gate,.code-challenge,.finish-banner,.site-footer,.hero-btns,.skills-strip{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}.step-body{display:block!important}body{font-family:'Nunito',sans-serif;background:#0a0b10;color:#e8eaf2;min-height:100vh}h1,h3,.step-title,.finish-title{color:#111}.hero-sub,.step-blurb,.big-goal-text p{color:#444}}
.skip-link{position:absolute;left:-9999px;top:auto;width:1px;height:1px;overflow:hidden}.skip-link:focus{left:50%;transform:translateX(-50%);top:8px;width:auto;height:auto;padding:10px 20px;background:#BC4749;color:white;font-weight:700;font-size:.9rem;border-radius:8px;z-index:9999;text-decoration:none;white-space:nowrap}
body{font-family:'Nunito',sans-serif;background:#0a0b10;color:#e8eaf2;min-height:100vh}
/* mobile-nav cascade fix */
.main-nav{position:absolute;top:100%;left:0;right:0;z-index:200;background:white;border-top:3px solid #BC4749;box-shadow:0 8px 32px rgba(64,59,51,0.18);max-height:0;overflow:hidden;transition:max-height 0.4s ease;}
.main-nav.open{max-height:calc(100vh - 68px);overflow-y:auto;}
.main-nav a{display:flex;align-items:center;gap:12px;padding:14px 24px;font-size:1rem;font-weight:600;color:#5a5449;border-bottom:1px solid rgba(64,59,51,0.06);transition:background 0.12s;text-decoration:none;}
.main-nav a:last-child{border-bottom:none;}
.main-nav a:hover{background:#F0EAD6;color:#403B33;}
.reveal{opacity:1!important;transform:none!important}