:root { font-family: Inter, ui-sans-serif, system-ui, sans-serif; color: #dce7ff; background: #090f1f; font-synthesis: none; }
* { box-sizing: border-box; }
body { margin: 0; min-width: 320px; min-height: 100vh; background: radial-gradient(circle at 70% -20%, #18325e 0, #090f1f 38%); }
a { color: inherit; text-decoration: none; }
button { border: 0; border-radius: 7px; padding: .72rem 1rem; font: inherit; font-weight: 700; color: #04120f; background: #57e3c1; cursor: pointer; }
button:disabled { cursor: not-allowed; opacity: .45; }
button.secondary { background: #283550; color: #dce7ff; margin-right: .5rem; }
.shell > header { height: 68px; padding: 0 clamp(1.2rem, 4vw, 4rem); border-bottom: 1px solid #23304a; display: flex; align-items: center; justify-content: space-between; }
.brand { font-weight: 900; font-size: 1.2rem; letter-spacing: -.03em; }.brand span, .eyebrow { color: #57e3c1; }
nav { display: flex; gap: 1.5rem; color: #94a4c3; } nav a.active { color: #fff; }
main { max-width: 1440px; margin: auto; padding: clamp(1.5rem, 4vw, 4rem); }
.hero { max-width: 780px; padding: 3rem 0 2rem; }.hero h1, main > section > h1 { font-size: clamp(2.6rem, 6vw, 5.5rem); line-height: .98; letter-spacing: -.055em; margin: .5rem 0 1.2rem; }.hero p:last-child { color: #94a4c3; font-size: 1.2rem; }
.eyebrow { font-size: .74rem; font-weight: 800; letter-spacing: .16em; text-transform: uppercase; }
.grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); gap: 1rem; }
.card { min-height: 250px; padding: 1.4rem; border: 1px solid #273550; border-radius: 12px; background: #0d1629cc; display: flex; flex-direction: column; transition: transform .15s, border .15s; }.card:hover { transform: translateY(-3px); border-color: #57e3c1; }
.card.locked { opacity: .62; cursor: not-allowed; }.card.locked:hover { transform: none; border-color: #273550; }
.badge.locked { border-color: #6d7f9d; color: #6d7f9d; }
.card-top, .card footer { display: flex; justify-content: space-between; color: #8293b3; }.number { color: #57e3c1; font-family: monospace; }.badge { border: 1px solid #33415d; border-radius: 20px; padding: .2rem .6rem; font-size: .7rem; text-transform: uppercase; }
.card h2 { font-size: 1.35rem; margin: 2rem 0 .4rem; }.card p { color: #94a4c3; line-height: 1.55; flex: 1; }.card footer span { color: #57e3c1; }
.lesson { display: grid; grid-template-columns: minmax(300px, 40%) 1fr; gap: 2rem; }.lesson aside { max-height: calc(100vh - 115px); overflow: auto; padding-right: 1.5rem; }.lesson aside > h1 { font-size: 2.4rem; letter-spacing: -.04em; }.lesson article, .task { color: #a7b5d0; line-height: 1.65; }.lesson article code { color: #57e3c1; }.task { border-top: 1px solid #26334d; padding: 1rem 0; }
.link-button { background: transparent; color: #57e3c1; padding: 0; }.hint { background: #16213a; border-left: 3px solid #f5b942; padding: .8rem; }
.hint.ghost { border-left-color: #7dd3fc; background: #122033; }
.ghost-note { color: #7dd3fc; font-size: .86rem; }
.debrief { margin-top: 1rem; padding-top: 1rem; border-top: 1px solid #25314a; }
.debrief .stars { font-size: 1.6rem; letter-spacing: .12em; color: #f5b942; margin: .4rem 0 0.8rem; }
.debrief ul { margin: 0; padding-left: 1.1rem; color: #a7b5d0; }
.debrief .next-lab { margin-top: 1rem; }
.debrief .next-lab a { color: #57e3c1; font-weight: 700; }
.tip-glossary { margin: .8rem 0 1.2rem; }
.tip-glossary-list { margin: .7rem 0 0; padding: .8rem; border: 1px solid #2a3a57; border-radius: 8px; background: #0c1424; }
.tip-glossary-list > div { display: grid; grid-template-columns: minmax(7rem, max-content) 1fr; gap: .55rem 1rem; padding: .45rem 0; border-top: 1px solid #223049; }
.tip-glossary-list > div:first-child { border-top: 0; padding-top: 0; }
.tip-glossary-list dt { font: 700 .72rem/1.3 monospace; letter-spacing: .04em; color: #f5b942; margin: 0; }
.tip-glossary-list dd { margin: 0; color: #a7b5d0; font-size: .9rem; }
.stat-row { display: flex; gap: 1rem; flex-wrap: wrap; }
.workspace { min-width: 0; }.toolbar { display: flex; justify-content: space-between; align-items: center; margin-bottom: .8rem; }.status { font: 700 .72rem monospace; color: #8293b3; }.status.live { color: #57e3c1; }
.terminal { height: 430px; padding: .7rem; border: 1px solid #293852; border-radius: 10px; background: #070b14; overflow: hidden; }
.results { background: #0e1729; border: 1px solid #26334d; border-radius: 10px; margin-top: 1rem; padding: 1rem; }.results h2 { margin-top: 0; }.results > p { color: #94a4c3; }
.check { display: flex; justify-content: space-between; gap: 1rem; padding: .7rem 0; border-top: 1px solid #25314a; }.check span { color: #94a4c3; }.pass strong, .success { color: #57e3c1; }.fail strong, .error { color: #ff758f; }
.stat { display: inline-flex; flex-direction: column; padding: 1.5rem 3rem; background: #101a2e; border: 1px solid #26344e; border-radius: 12px; }.stat strong { font-size: 3rem; color: #57e3c1; }.progress-list { margin-top: 2rem; max-width: 700px; }.progress-list div { display: flex; justify-content: space-between; border-bottom: 1px solid #26344e; padding: 1rem; }.progress-list span { color: #94a4c3; text-transform: capitalize; }
.loading { color: #94a4c3; }
.meta, .phase-summary, .module-head .module-source { color: #8293b3; font-size: .92rem; }
.done { color: #57e3c1; }
.path-hero { margin-bottom: 2rem; }
.continue-cta { margin: 1rem 0 0; }
.continue-cta a { color: #57e3c1; font-weight: 700; font-size: 1.05rem; }
.continue-cta.done { color: #57e3c1; font-weight: 700; }
.path-phase { margin-bottom: 3rem; }
.path-phase h2 { font-size: 2rem; letter-spacing: -.03em; margin: 0; }
.phase-head { display: flex; justify-content: space-between; gap: 1rem; align-items: baseline; flex-wrap: wrap; margin-bottom: .5rem; }
.tip-chips { display: flex; flex-wrap: wrap; gap: .45rem; margin: .6rem 0 1rem; }
.tip-chip { font: 700 .72rem/1 monospace; letter-spacing: .04em; color: #f5b942; border: 1px solid #6a5520; background: #241c0c; border-radius: 999px; padding: .35rem .65rem; cursor: pointer; }
.tip-chip:hover { border-color: #f5b942; background: #33260f; }
.tip-glossary-list > div.tip-focus { background: #1a2438; border-radius: 6px; outline: 1px solid #3d4f72; }
.path-module { border: 1px solid #273550; border-radius: 12px; padding: 1.2rem 1.4rem; margin: 1rem 0; background: #0d1629aa; }
.path-module.locked { opacity: .75; border-style: dashed; }
.lab-list li.locked { color: #6d7f9d; }
.lock-note { font-style: italic; font-size: .85rem; }
.path-module h3 { margin: 0 0 .4rem; font-size: 1.2rem; }
.module-head { display: flex; justify-content: space-between; gap: 1rem; align-items: baseline; flex-wrap: wrap; }
.lab-list { list-style: none; padding: 0; margin: 1rem 0 0; }
.lab-list li { display: flex; justify-content: space-between; padding: .65rem 0; border-top: 1px solid #25314a; }
.lab-list li a { color: #dce7ff; }
.lab-list li a:hover { color: #57e3c1; }
.lab-list li.soon { color: #6d7f9d; font-style: italic; }
.lab-list li.done a { color: #57e3c1; }
@media (max-width: 850px) { .lesson { grid-template-columns: 1fr; }.lesson aside { max-height: none; }.terminal { height: 330px; } }
