@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/fef07dbb0973bf53-s.00az9qtie3ho1.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/8a480f0b521d4e75-s.3j-a226dh71aj.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/53b9e256198e5412-s.2gwoz23eiro2t.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/7178b3e590c64307-s.0i3h3th1vs4m7.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/caa3a2e1cccd8315-s.p.0zr6hhvz-h9nw.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Geist Fallback;src:local(Arial);ascent-override:95.94%;descent-override:28.16%;line-gap-override:0.0%;size-adjust:104.76%}.geist_a71539c9-module__T19VSG__className{font-family:Geist,Geist Fallback;font-style:normal}.geist_a71539c9-module__T19VSG__variable{--font-geist-sans:"Geist", "Geist Fallback"}
@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/5ce348bf30bf5439-s.27spqqad3wyeo.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/4fa387ec64143e14-s.3f4zuumv8svu0.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/6306c77e7c8268e4-s.34r5yzckw0h2s.woff2)format("woff2");unicode-range:U+2000-2001,U+2004-2008,U+200A,U+23B8-23BD,U+2500-259F}@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/7d817b4c03b0c5f1-s.2jyz_zw3a8jit.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/bbc41e54d2fcbd21-s.30bdpjkrtcces.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/797e433ab948586e-s.p.1v5bejj26fx9h.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Geist Mono Fallback;src:local(Arial);ascent-override:74.67%;descent-override:21.92%;line-gap-override:0.0%;size-adjust:134.59%}.geist_mono_8d43a2aa-module__8Li5zG__className{font-family:Geist Mono,Geist Mono Fallback;font-style:normal}.geist_mono_8d43a2aa-module__8Li5zG__variable{--font-geist-mono:"Geist Mono", "Geist Mono Fallback"}
:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--paper:#100f0d;--panel:#18181b;--panel-deep:#0c0b0a;--bezel:#27272a59;--ink:#fafaf8;--body:#d4d4d8;--muted:#a1a1aa;--line:#ffffff17;--line-strong:#3f3f46;--accent:#facc15;--accent-soft:#facc151a;--on-accent:#100f0d;--success:#b5c26a;--danger:#f0776d;--radius:1.25rem;--radius-sm:.6rem;--font-sans:var(--font-geist-sans), system-ui, -apple-system, "Segoe UI", sans-serif;--font-mono:var(--font-geist-mono), ui-monospace, SFMono-Regular, Menlo, Consolas, monospace}*{box-sizing:border-box}html{background:var(--paper)}body{background:var(--paper);color:var(--body);font-family:var(--font-sans);-webkit-font-smoothing:antialiased;margin:0;line-height:1.65}a{color:var(--accent);text-underline-offset:.25em;text-decoration-color:#facc1559}a:hover{text-decoration-color:currentColor}button,input,select,textarea{font:inherit}button,input,select,textarea,summary,a,[tabindex]{scroll-margin-top:6rem;scroll-margin-bottom:8rem}h1,h2,h3,h4{color:var(--ink);letter-spacing:-.03em;overflow-wrap:anywhere;margin:1.4em 0 .5em;font-weight:800;line-height:1.1}h1{letter-spacing:-.05em;margin:.3em 0 .5em;font-size:clamp(2rem,4.5vw,3.4rem);font-weight:900;line-height:1.02}h2{font-size:clamp(1.35rem,2.2vw,1.75rem)}h3{font-size:1.1rem}h4{margin:1em 0 .4em;font-size:1rem}p,li{max-width:68ch}strong{color:var(--ink)}.eyebrow{font-family:var(--font-mono);letter-spacing:.18em;text-transform:uppercase;color:var(--accent);max-width:none;font-size:.72rem;font-weight:600}.muted,.local-note{color:var(--muted);font-size:.9em}.lesson-goal{color:var(--muted);margin-top:-.3rem;font-size:1.05rem}.lesson-why{margin-top:-.3rem}.sighting-lead{color:var(--body)}.read-aloud{margin:-.2rem 0 .4rem;display:block}.chapter-lead{color:var(--body);margin-bottom:.2rem}.access-note{color:var(--muted);margin:-.2rem 0 .4rem;font-size:.92em}.access-note.locked:before{content:"🔒 "}.locked-chapter h1{margin-top:.2em}.experience{border:1px solid var(--line);border-radius:var(--radius-sm);margin:0 0 1rem;padding:.6rem 1rem .8rem}.experience legend{color:var(--ink);padding:0 .3rem;font-weight:700}.placement-results{padding:0;list-style:none}.placement-results>li{border-top:1px solid var(--line);padding-top:.4rem}.teach-anyway{margin:0;padding:0;list-style:none}.what-now{border:1px solid var(--line);border-radius:var(--radius);background:var(--panel);margin:1rem 0 1.5rem;padding:1rem 1.2rem}.what-now>h2:first-child{margin-top:.2em}.what-now h3{margin:1rem 0 .3rem;font-size:1rem}.what-now-list{margin:0;padding-left:1.2rem}.what-now-list li{margin:.2rem 0}.quests{margin:.3rem 0 .6rem;padding:0;list-style:none}.quests li{margin:.25rem 0}.quick-setup{grid-template-columns:auto minmax(0,14rem);align-items:center;gap:.5rem .8rem;margin:.8rem 0;display:grid}.quick-setup p{grid-column:1/-1;margin:.2rem 0 0}.app-shell{font-size:calc(1rem * var(--text-scale,1));flex-direction:column;min-height:100vh;display:flex}.site-header{z-index:30;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-bottom:1px solid var(--line);background:#100f0dd1;flex-wrap:wrap;align-items:center;gap:1.5rem;min-height:4rem;padding:.6rem clamp(1rem,4vw,2.5rem);display:flex;position:sticky;top:0}.brand{align-items:center;gap:.65rem;margin-right:auto;display:flex}.wordmark{flex-direction:column;max-width:none;margin:0;line-height:1;display:flex}.wordmark-name{color:var(--ink);letter-spacing:-.03em;font-size:1.1rem;font-weight:900}.wordmark-name .accent{color:var(--accent)}.wordmark-sub{letter-spacing:.18em;text-transform:uppercase;color:var(--muted);margin-top:.25rem;font-size:.6rem;font-weight:600}.site-header nav{gap:.25rem;display:flex;overflow-x:auto}.site-header nav[hidden]{display:none}.site-header nav a{color:var(--muted);white-space:nowrap;border-radius:.5rem;padding:.55rem .7rem;font-size:.92rem;font-weight:500;text-decoration:none}.site-header nav a:hover{color:var(--ink)}.site-header nav [aria-current=page]{color:var(--accent);box-shadow:inset 0 -2px 0 var(--accent);border-radius:.5rem .5rem 0 0}.site-header .local-note{display:none}.main-column{width:100%;min-width:0;max-width:74rem;margin:0 auto;padding:1rem clamp(1rem,4vw,2.5rem) 4rem}.site-footer{border-top:1px solid var(--line);margin-top:auto;padding:1.5rem clamp(1rem,4vw,2.5rem)}.site-footer p{color:var(--muted);max-width:none;margin:0;font-size:.85rem}.save-status{margin:.25rem 0 1rem;font-size:.82rem}.save-status>p{text-align:right;max-width:none;color:var(--muted);font-family:var(--font-mono);letter-spacing:.08em;text-transform:uppercase;margin:0;font-size:.72rem}.skip-link{z-index:50;background:var(--paper);color:var(--accent);border-bottom-right-radius:.75rem;padding:.7rem 1.2rem;font-weight:700;text-decoration:none;position:absolute;top:-10rem;left:1rem}.skip-link:focus{top:0}:focus-visible{outline:3px solid var(--accent);outline-offset:4px;border-radius:4px}.workspace,.instruction,.return-recap,.streak-card,.progress-card,.lesson-complete,.notice,.reference-dialog,.file-pane,.plan-card,.warm-up{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);min-width:0;box-shadow:inset 0 1px 0 #ffffff0f, 0 0 0 6px var(--bezel);margin:1.25rem 0;padding:1.25rem 1.4rem}.workspace>h2:first-child,.instruction>.eyebrow+h2,.streak-card>h2:first-child,.progress-card>h2:first-child,.lesson-complete>h2:first-child,.return-recap>h2:first-child,.plan-card>h2:first-child,.warm-up>h2:first-child{margin-top:.2em}.notice{box-shadow:none;background:#facc150d;border-color:#facc154d;padding:1rem 1.2rem}.notice h3{margin-top:.2em}.instruction .eyebrow{margin-top:.2rem}button,.button-link{border:1px solid var(--line-strong);min-height:44px;color:var(--body);cursor:pointer;background:0 0;border-radius:.75rem .75rem .75rem .2rem;padding:.55rem 1rem;font-weight:600;text-decoration:none;transition:transform .24s cubic-bezier(.32,.72,0,1),border-color .24s,background-color .24s,color .24s,box-shadow .24s;display:inline-block}button:hover,.button-link:hover{border-color:var(--accent);color:var(--accent);transform:translateY(-1px)}button:active{transform:translateY(1px)scale(.985)}button:disabled{cursor:not-allowed;opacity:.5;transform:none}button:disabled:hover{border-color:var(--line-strong);color:var(--body)}.primary,.button-link.primary{background:var(--accent);border-color:var(--accent);color:var(--on-accent)}.primary:hover,.button-link.primary:hover{color:var(--on-accent);box-shadow:0 0 25px #facc1559}.primary:disabled:hover{color:var(--on-accent)}.text-button{color:var(--accent);background:0 0;border:0;min-height:0;padding:.4rem .2rem;font-weight:500;text-decoration:underline}.text-button:hover{transform:none}.actions{flex-wrap:wrap;align-items:center;gap:.75rem;margin:1.25rem 0;display:flex}label{color:var(--ink);margin-top:.8rem;margin-bottom:.35rem;font-size:.95rem;font-weight:600;display:block}textarea,input[type=text],input[type=email],input[inputmode=numeric],input[type=search],select{background:var(--panel-deep);width:100%;color:var(--ink);border:1px solid var(--line-strong);border-radius:var(--radius-sm);padding:.75rem .85rem;display:block}textarea{resize:vertical;min-height:7rem}textarea.code{font-family:var(--font-mono);tab-size:2;min-height:9rem;font-size:.95rem;line-height:1.6}select{max-width:100%;min-height:44px}input[type=search]{max-width:32rem;min-height:44px}input[type=email],input[inputmode=numeric]{max-width:24rem;min-height:44px}input[type=file]{color:var(--muted);margin-top:.3rem}fieldset{border:1px solid var(--line);border-radius:var(--radius);background:var(--panel);min-width:0;padding:1rem 1.25rem}legend{color:var(--ink);padding:0 .4rem;font-weight:700}input[type=checkbox],input[type=radio]{vertical-align:middle;width:1.15rem;height:1.15rem;accent-color:var(--accent);margin-right:.55rem}.checkbox{color:var(--body);padding:.45rem 0;font-weight:500}pre,.output{white-space:pre-wrap;overflow-wrap:anywhere;background:var(--panel-deep);color:var(--ink);border:1px solid var(--line);border-radius:var(--radius-sm);font-family:var(--font-mono);margin:.5rem 0 1rem;padding:.9rem 1rem;font-size:.92rem;line-height:1.6}details{margin:1rem 0}details summary{cursor:pointer;color:var(--ink);padding:.6rem 0;font-weight:600}details summary:hover{color:var(--accent)}progress{vertical-align:middle;appearance:none;background:var(--panel-deep);border:0;border-radius:999px;width:100%;max-width:32rem;height:.55rem;display:inline-block;overflow:hidden}progress::-webkit-progress-bar{background:var(--panel-deep);border-radius:999px}progress::-webkit-progress-value{background:var(--accent);border-radius:999px}progress::-moz-progress-bar{background:var(--accent);border-radius:999px}progress.lesson-progress{max-width:18rem;margin-right:.6rem}.verdict{color:var(--ink);font-weight:600}.verdict.success{color:var(--success)}.run-error{border-left:3px solid var(--danger);padding-left:1rem}.course-note{border-left:3px solid var(--accent);background:var(--accent-soft);border-radius:0 var(--radius-sm) var(--radius-sm) 0;margin:.5rem 0 1rem;padding:.6rem 1rem}.course-note p{margin:0 0 .3rem}.course-note ul{margin:0;padding-left:1.2rem}.workspace[aria-label=Page\ workspace] textarea.code,.workspace[aria-label=SQL\ workspace] textarea.code{min-height:16rem}.page-preview{border:1px solid var(--line);border-radius:var(--radius-sm);background:#fff;width:100%;min-height:18rem;margin:.5rem 0 1rem}.terminal{background:#0b0a08}.result-table{border-collapse:collapse;width:100%;font-family:var(--font-mono);margin:.5rem 0 1rem;font-size:.9rem}.result-table caption{text-align:left;color:var(--muted);padding:.25rem 0}.result-table th,.result-table td{border:1px solid var(--line);text-align:left;padding:.35rem .6rem}.result-table th{background:var(--panel-deep)}.run-error p:first-child strong{color:var(--danger)}.prediction{border-radius:var(--radius-sm);border:1px dashed #facc1566;margin:1rem 0;padding:.75rem 1rem 1rem}.lesson-layout{grid-template-columns:minmax(0,1fr);gap:1.25rem;display:grid}.step-navigation{margin:.5rem 0 1rem}.step-navigation ol{padding-left:1.5rem}.step-navigation button{text-align:left;margin:.2rem 0}.step-navigation [aria-current=step]{border-color:var(--accent);color:var(--accent)}.file-manager{grid-template-columns:minmax(0,1fr);gap:1rem;display:grid}.file-pane{box-shadow:none;background:var(--panel-deep);margin:0}.file-pane h3{margin-top:.2em}.file-list{font-family:var(--font-mono);margin:.3rem 0 .8rem;padding:0;font-size:.92rem;list-style:none}.file-list li{border:1px solid var(--line);border-radius:var(--radius-sm);color:var(--ink);margin:.3rem 0;padding:.45rem .6rem}.file-icon{color:var(--accent)}.sightings{padding:0;list-style:none}.sightings li{border-top:1px solid var(--line);padding:.9rem 0}.sightings h4{margin:0 0 .4rem}.course-list{padding:0;list-style:none}.course-list>li{border-top:1px solid var(--line);padding:1.1rem 0}.course-list>li:last-child{border-bottom:1px solid var(--line)}.course-list h2,.course-list h3,.course-list h4{margin-top:.2em}.track{margin-top:2.5rem}.track>h2{letter-spacing:.08em;text-transform:uppercase;color:var(--accent);font-size:1.1rem}.chapter{margin-top:1.5rem}.chapter>h3{margin-bottom:.2rem;font-size:1.5rem}.course-list h4{font-size:1.1rem}.achievements{grid-template-columns:repeat(auto-fill,minmax(15rem,1fr));gap:.5rem;padding:0;list-style:none;display:grid}.achievements li{border:1px solid var(--line);background:var(--panel-deep);border-radius:var(--radius-sm);max-width:none;color:var(--muted);padding:.65rem .85rem;font-size:.92rem}.achievements li.earned{background:var(--accent-soft);color:var(--ink);border-color:#facc1573}.achievements li.earned span{color:var(--accent)}.reference-entry{border-top:1px solid var(--line);padding:.6rem 0 1.2rem}.dialog-backdrop{z-index:40;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#000000b3;justify-content:center;align-items:center;padding:1rem;display:flex;position:fixed;inset:0}.reference-dialog{max-width:36rem;max-height:85vh;margin:0;overflow:auto}.reference-dialog h2,.return-recap h2{margin-top:.2em}.focus-mode .site-header .local-note,.focus-mode .site-footer{display:none}@media (min-width:1100px){.lesson-layout.has-workspace{grid-template-columns:minmax(0,1fr) minmax(0,1.15fr);align-items:start}.lesson-layout.has-workspace .instruction{max-height:calc(100vh - 6rem);position:sticky;top:5rem;overflow:auto}.file-manager{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}}@media (max-width:760px){.site-header{gap:.75rem}.site-header nav{flex-wrap:wrap;width:100%;overflow:visible}.site-header nav a{padding:.5rem .55rem;font-size:.88rem}.main-column{padding-top:.5rem}.wordmark-sub{display:none}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition:none!important;animation:none!important}button:hover{transform:none}}[data-reduced-motion] *,[data-reduced-motion] :before,[data-reduced-motion] :after{scroll-behavior:auto!important;transition:none!important;animation:none!important}.task-bar{z-index:20;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border:1px solid var(--line);border-radius:var(--radius);background:#100f0deb;grid-template-columns:auto 1fr auto;align-items:center;gap:.5rem 1.25rem;margin:1.5rem 0 0;padding:.75rem 1rem;display:grid;position:sticky;bottom:0}.task-bar p{max-width:none;margin:0}.task-bar-place{color:var(--ink);white-space:nowrap;font-weight:700}.task-bar-session{color:var(--body);font-size:.92rem}.task-bar-session .mono{font-family:var(--font-mono);color:var(--accent)}.session-done,.break-note{color:var(--ink)}.task-bar-session:has(.break-note){grid-column:1/-1;justify-self:start}.plan-suggestions{flex-wrap:wrap;gap:.5rem;margin:.5rem 0 1rem;display:flex}.plan-suggestions button[aria-pressed=true]{border-color:var(--accent);color:var(--ink)}.plan-preview,.plan-reminder{color:var(--ink)}.plan-card input{width:100%;max-width:28rem}.warm-up h2:focus{outline:none}.warm-up-prompt{color:var(--ink);font-size:1.1rem}.task-bar-actions{flex-wrap:wrap;justify-content:flex-end;gap:.6rem;display:flex}.task-bar-note{grid-column:1/-1;font-size:.78rem}.step-done .tick{color:var(--success);margin-left:.5rem;font-weight:700}.visually-hidden{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.menu-toggle{min-height:40px;padding:.4rem .9rem}.next-task{color:var(--body)}.legal h2{margin-top:1.6em}.legal li{margin:.4rem 0}@media (max-width:760px){.task-bar{grid-template-columns:auto 1fr;gap:.4rem .75rem;margin-top:1rem;padding:.55rem .75rem}.task-bar-session{justify-self:end;font-size:.85rem}.task-bar-actions{grid-column:1/-1;justify-content:flex-start}.task-bar-note{display:none}}.task-line{border-left:3px solid var(--accent);background:#ffffff08;border-radius:0 .5rem .5rem 0;padding:.6rem .8rem;font-size:1.05rem}.key-idea{margin-bottom:.4rem}.more-detail{margin-bottom:1rem}.more-detail summary{cursor:pointer;color:var(--accent);font-size:.92rem}.focus-mode .lesson-layout.has-workspace{grid-template-columns:minmax(0,1fr)}.focus-mode .instruction{position:static}.focus-mode .main-column{max-width:60rem}.focus-mode p,.focus-mode li{max-width:62ch;line-height:1.9}.focus-mode .site-footer,.focus-mode .streak-card,.focus-mode .progress-card,.focus-mode .save-status{display:none}.focus-mode .site-header{gap:.75rem}.reading-comfort{--ink:#ecebe6;--body:#cdcdd1;--paper:#17171b;--panel:#1e1e22;background:var(--paper)}.reading-comfort main p,.reading-comfort main li,.reading-comfort main label,.reading-comfort main legend,.reading-comfort main summary{letter-spacing:.02em;word-spacing:.1em;max-width:62ch;line-height:1.85}.reading-comfort main p{margin-block:0 1.1em}.reading-comfort main :is(h1,h2,h3,h4){letter-spacing:0;line-height:1.25}.reading-comfort :is(.workspace,.instruction,.return-recap,.streak-card,.progress-card,.lesson-complete,.plan-card){box-shadow:none}.chapter-progress{gap:.35rem;display:grid}.chapter-progress progress{width:100%;max-width:28rem}.week-dots{gap:.4rem;margin:.25rem 0 .75rem;padding:0;list-style:none;display:flex}.week-dot{border:1px solid var(--line);background:0 0;border-radius:50%;width:.9rem;height:.9rem}.week-dot.studied{background:var(--accent);border-color:var(--accent)}.week-dot.paused{background:repeating-linear-gradient(45deg, var(--line), var(--line) 2px, transparent 2px, transparent 4px)}
