@font-face{font-family:DM Sans;font-style:normal;font-weight:100 1000;font-display:swap;src:url(../media/c3cb240f9c892514-s.3z_x6eowsw16y.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:DM Sans;font-style:normal;font-weight:100 1000;font-display:swap;src:url(../media/5c285b27cdda1fe8-s.p.2_mbdogr7ni8i.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:DM Sans Fallback;src:local(Arial);ascent-override:94.9%;descent-override:29.66%;line-gap-override:0.0%;size-adjust:104.53%}.dm_sans_efc253b3-module__w1i8Da__className{font-family:DM Sans,DM Sans Fallback;font-style:normal}.dm_sans_efc253b3-module__w1i8Da__variable{--font-dm-sans:"DM Sans", "DM Sans Fallback"}
@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:100 800;font-display:swap;src:url(../media/13bf9871fe164e7f-s.2f7nqdagzwx2-.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:JetBrains Mono;font-style:normal;font-weight:100 800;font-display:swap;src:url(../media/cc545e633e20c56d-s.176arc174-8zp.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:100 800;font-display:swap;src:url(../media/71b036adf157cdcf-s.0bp8oijd_gu96.woff2)format("woff2");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:100 800;font-display:swap;src:url(../media/89b21bb081cb7469-s.1fby2rem9ngyr.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:JetBrains Mono;font-style:normal;font-weight:100 800;font-display:swap;src:url(../media/3fe682a82f50d426-s.0vfdmo25voy_0.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:JetBrains Mono;font-style:normal;font-weight:100 800;font-display:swap;src:url(../media/70bc3e132a0a741e-s.p.3t6q91iet4nsy.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:JetBrains Mono Fallback;src:local(Arial);ascent-override:75.79%;descent-override:22.29%;line-gap-override:0.0%;size-adjust:134.59%}.jetbrains_mono_1a8b3aaa-module__yT9lVq__className{font-family:JetBrains Mono,JetBrains Mono Fallback;font-style:normal}.jetbrains_mono_1a8b3aaa-module__yT9lVq__variable{--font-jetbrains-mono:"JetBrains Mono", "JetBrains Mono Fallback"}
:root{--cream:#fafaf5;--white:#fff;--ink:#24204a;--ink-soft:#3a365c;--muted:#6b6880;--line:#e8e6ee;--line-strong:#cfccd9;--green:#119b4a;--green-dark:#0c7a3a;--green-soft:#f1faf4;--violet:#5b4fd8;--rosetta:#b83b66;--tangelo:#ff6928;--sunflower:#ffce29;--turtle:#1e7f68;--warning:#946f00;--progress-track:#efeee8;--status-progress-bg:#fff7e0;--status-idle-bg:#f3f2ee;--shadow:0 2px 10px #24204a0f;--shadow-soft:0 1px 3px #24204a0a;--ease-out:.16s ease}*{box-sizing:border-box}html{background:var(--cream);color:var(--ink);scroll-behavior:smooth}body{background:var(--cream);min-height:100vh;color:var(--ink);font-family:var(--font-dm-sans), system-ui, sans-serif;-webkit-font-smoothing:antialiased;margin:0}::selection{color:var(--ink);background:#119b4a29}:focus-visible{outline:2px solid var(--green);outline-offset:2px}.top-nav a:focus-visible{outline-offset:-2px}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}a{color:inherit;text-decoration:none}button{font:inherit}.login-screen{flex-direction:column;justify-content:center;align-items:center;gap:28px;min-height:100vh;padding:32px;display:flex}.login-card{border:1px solid var(--line);background:var(--white);width:min(100%,420px);box-shadow:var(--shadow-soft);text-align:center;border-radius:12px;flex-direction:column;align-items:center;padding:56px 48px 48px;display:flex}.login-card h1{margin:10px 0 0;font-size:22px;line-height:1.25}.login-form{width:100%}.google-button{border:1px solid var(--line);background:var(--white);width:100%;color:var(--ink);cursor:pointer;transition:border-color var(--ease-out), box-shadow var(--ease-out), transform var(--ease-out);border-radius:8px;justify-content:center;align-items:center;gap:10px;margin-top:28px;padding:13px 20px;font-weight:700;display:inline-flex}.google-button:hover{box-shadow:var(--shadow-soft);border-color:#119b4a73;transform:translateY(-1px)}.google-button:active{transform:translateY(0)}.login-help{max-width:300px;color:var(--muted);margin:18px 0 0;font-size:13.5px;line-height:1.6}.site-host,.mono-label,.eyebrow,.week-chip,.module-number,.module-time,.status-badge,.week-number,.module-summary{font-family:var(--font-jetbrains-mono), ui-monospace, SFMono-Regular, Menlo, monospace}.site-host{color:var(--muted);letter-spacing:.08em;font-size:11px}.eyebrow,.mono-label{color:var(--green);letter-spacing:.14em;text-transform:uppercase;margin:0;font-size:11px;font-weight:700}.mono-label{color:var(--muted);letter-spacing:.12em}.app-frame{flex-direction:column;min-height:100vh;display:flex}.topbar{z-index:40;border-bottom:1px solid var(--line);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#fafaf5f0;position:sticky;top:0}.topbar-inner{align-items:center;gap:34px;max-width:1200px;height:60px;margin:0 auto;padding:0 32px;display:flex}.brand-link{color:var(--ink);letter-spacing:-.02em;transition:color var(--ease-out);border-radius:6px;align-items:baseline;gap:9px;font-weight:800;display:flex}.brand-link:hover{color:var(--green-dark)}.brand-link img{transform:translateY(3px)}.top-nav{flex:1;align-items:stretch;gap:26px;height:60px;display:flex}.top-nav a{color:var(--muted);transition:color var(--ease-out), border-color var(--ease-out);border-bottom:2px solid #0000;align-items:center;font-size:14px;font-weight:700;display:flex}.top-nav a:hover{color:var(--green)}.top-nav a.active,.top-nav a[aria-current=page]{border-bottom-color:var(--green);color:var(--ink)}.account-cluster{align-items:center;gap:12px;display:flex}.week-chip{background:var(--green-soft);color:var(--green-dark);letter-spacing:.1em;text-transform:uppercase;border-radius:6px;padding:5px 9px;font-size:11px;font-weight:700}.avatar{background:var(--ink);color:#fff;border:1px solid #24204a14;border-radius:50%;place-items:center;width:32px;height:32px;font-size:12px;font-weight:700;display:grid}.ghost-button{border:1px solid var(--line);color:var(--muted);cursor:pointer;transition:border-color var(--ease-out), color var(--ease-out), background var(--ease-out);background:0 0;border-radius:8px;padding:7px 10px;font-size:13px;font-weight:700}.ghost-button:hover{border-color:var(--line-strong);background:var(--white);color:var(--ink)}.ghost-button:active{background:var(--cream)}.app-footer{border-top:1px solid var(--line);width:100%;max-width:1200px;color:var(--muted);justify-content:space-between;align-items:center;gap:24px;margin:auto auto 0;padding:20px 32px;font-size:12.5px;display:flex}.app-footer span:first-child{font-family:var(--font-jetbrains-mono), monospace;letter-spacing:.08em;text-transform:uppercase;font-size:10.5px}.dashboard-page,.modules-page{width:min(100%,1080px);margin:0 auto;padding:56px 32px 96px}.modules-page{width:min(100%,880px);padding-top:48px}.page-intro h1{letter-spacing:-.02em;max-width:680px;margin:12px 0 0;font-size:34px;line-height:1.15}.page-intro p:not(.eyebrow):not(.module-summary){max-width:570px;color:var(--muted);margin:10px 0 0;font-size:16px;line-height:1.6}.page-intro.compact h1{font-size:30px}.module-summary{color:var(--muted);text-transform:uppercase;margin-top:14px;font-size:11.5px}.continue-card{border:1px solid var(--line);background:var(--white);box-shadow:var(--shadow-soft);border-radius:12px;align-items:center;gap:32px;margin-top:36px;padding:28px 32px;transition:transform .18s,border-color .18s,box-shadow .18s;display:flex}.continue-card:hover,.category-card:hover,.module-card:hover{box-shadow:var(--shadow);border-color:#119b4a59;transform:translateY(-2px)}.continue-card div:first-child{flex:1;min-width:0}.continue-card h2{flex-wrap:wrap;align-items:baseline;gap:12px;margin:10px 0 0;font-size:20px;line-height:1.3;display:flex}.continue-card h2 span{color:var(--green);font-family:var(--font-jetbrains-mono), monospace;font-size:13px}.continue-card p:not(.mono-label){color:var(--muted);margin:6px 0 0;font-size:14.5px;line-height:1.6}.primary-action{background:var(--green);color:#fff;transition:background var(--ease-out);border-radius:8px;flex:none;align-items:center;gap:8px;padding:12px 18px;font-size:14.5px;font-weight:700;display:inline-flex}.continue-card:hover .primary-action,a:hover .primary-action{background:var(--green-dark)}.progress-row{color:var(--green-dark);font-family:var(--font-jetbrains-mono), monospace;align-items:center;gap:14px;margin-top:16px;font-size:11.5px;font-weight:700;display:flex}.progress-track{background:var(--progress-track);border-radius:999px;flex:1;max-width:320px;height:4px;display:block;overflow:hidden}.progress-track span{border-radius:inherit;background:var(--green);height:100%;display:block}.section-block{margin-top:56px}.section-heading{justify-content:space-between;align-items:baseline;gap:20px;display:flex}.section-heading h2{margin:0;font-size:19px}.section-heading a{color:var(--green);transition:color var(--ease-out);border-radius:4px;font-size:13.5px;font-weight:800}.section-heading a:hover{color:var(--green-dark)}.week-rail{grid-template-columns:repeat(7,1fr);gap:0;margin-top:24px;display:grid}.week-step{text-align:center;justify-items:center;gap:5px;display:grid;position:relative}.week-step:before{content:"";background:var(--line);height:2px;position:absolute;top:12px;left:0;right:0}.week-step:first-child:before{left:50%}.week-step:last-child:before{right:50%}.week-dot{z-index:1;border:2px solid var(--line-strong);background:var(--cream);border-radius:50%;width:26px;height:26px;position:relative}.week-done .week-dot{border-color:var(--green);background:var(--green)}.week-current .week-dot{border-color:var(--green);box-shadow:inset 0 0 0 7px var(--cream), inset 0 0 0 12px var(--green)}.week-number{color:var(--muted);letter-spacing:.1em;text-transform:uppercase;margin-top:7px;font-size:10.5px;font-weight:700}.week-step strong{color:var(--muted);font-size:13px}.week-current strong,.week-current .week-number{color:var(--ink)}.category-grid{grid-template-columns:repeat(3,1fr);gap:20px;margin-top:22px;display:grid}.category-card{border:1px solid var(--line);background:var(--white);min-height:190px;box-shadow:var(--shadow-soft);border-radius:12px;flex-direction:column;gap:12px;padding:24px;transition:transform .18s,border-color .18s,box-shadow .18s;display:flex}.category-card>span{background:var(--green-soft);color:var(--green);font-family:var(--font-jetbrains-mono), monospace;letter-spacing:.12em;border-radius:5px;align-self:flex-start;padding:4px 8px;font-size:10px;font-weight:800}.category-card h3{margin:0;font-size:17px}.category-card p{color:var(--muted);margin:0;font-size:13.5px;line-height:1.55}.category-card small{color:var(--muted);font-family:var(--font-jetbrains-mono), monospace;text-transform:uppercase;margin-top:auto;font-size:11px}.category-card.is-recommended{border-color:#119b4a73}.category-card.is-recommended:after{content:"Recommended for your track";color:var(--green);font-family:var(--font-jetbrains-mono), monospace;letter-spacing:.06em;text-transform:uppercase;font-size:10px}.accent-violet>span{color:var(--violet);background:#5b4fd814}.accent-rosetta>span{color:var(--rosetta);background:#b83b6614}.accent-tangelo>span{color:var(--tangelo);background:#ff692814}.accent-sunflower>span{color:#7a5c00;background:#ffce292e}.accent-turtle>span{color:var(--turtle);background:#1e7f6814}.accent-kingfisher>span{background:var(--green-soft);color:var(--green-dark)}.module-list{flex-direction:column;gap:12px;margin-top:32px;display:flex}.module-card{border:1px solid var(--line);background:var(--white);box-shadow:var(--shadow-soft);border-radius:12px;grid-template-columns:74px minmax(0,1fr) auto 128px 18px;align-items:center;gap:18px;padding:20px 22px;transition:transform .18s,border-color .18s,box-shadow .18s;display:grid}.module-card:hover .module-arrow{transform:translate(2px)}.module-number{color:var(--green);font-size:13px;font-weight:800}.module-card-copy{gap:4px;min-width:0;display:grid}.module-card-copy strong{font-size:16px}.module-card-copy span{color:var(--muted);font-size:13.5px;line-height:1.5}.module-time{color:var(--muted);white-space:nowrap;text-transform:uppercase;align-items:center;gap:6px;font-size:11px;display:inline-flex}.status-badge{letter-spacing:.08em;text-transform:uppercase;white-space:nowrap;border-radius:5px;justify-content:center;align-items:center;gap:6px;padding:5px 9px;font-size:10px;font-weight:800;display:inline-flex}.status-done{background:var(--green-soft);color:var(--green-dark)}.status-in-progress{background:var(--status-progress-bg);color:var(--warning)}.status-not-started{background:var(--status-idle-bg);color:var(--muted)}.module-arrow{color:var(--green);transition:transform var(--ease-out)}.module-layout{grid-template-columns:264px minmax(0,1fr) 210px;width:min(100%,1200px);margin:0 auto;display:grid}.module-sidebar{border-right:1px solid var(--line);align-self:start;max-height:calc(100vh - 60px);padding:28px 20px 64px;position:sticky;top:60px;overflow-y:auto}.module-sidebar .mono-label{margin:0 10px 14px}.module-sidebar a{color:var(--muted);transition:background var(--ease-out), border-color var(--ease-out), color var(--ease-out);border-left:2px solid #0000;border-radius:6px;align-items:center;gap:9px;padding:8px 10px;font-size:13px;line-height:1.35;display:flex}.module-sidebar a span{color:var(--muted);font-family:var(--font-jetbrains-mono), monospace;flex:none;font-size:10px}.module-sidebar a:hover,.module-sidebar a.active{background:var(--green-soft);border-left-color:var(--green);color:var(--ink)}.module-content{justify-content:center;min-width:0;padding:48px 56px 120px;display:flex}.module-content article{width:100%;max-width:720px}.back-link{color:var(--muted);transition:color var(--ease-out);border-radius:4px;align-items:center;gap:7px;margin-bottom:28px;font-size:13.5px;font-weight:700;display:inline-flex}.back-link:hover{color:var(--green)}.module-content h1{letter-spacing:-.02em;margin:12px 0 0;font-size:32px;line-height:1.15}.module-title-row{justify-content:space-between;align-items:flex-start;gap:20px;display:flex}.module-title-row h1{min-width:0}.copy-page-button{border:1px solid var(--line);background:var(--white);color:var(--ink);cursor:pointer;white-space:nowrap;transition:border-color var(--ease-out), color var(--ease-out), box-shadow var(--ease-out), transform var(--ease-out);border-radius:8px;flex:none;justify-content:center;align-items:center;gap:7px;margin-top:12px;padding:9px 12px;font-size:13px;font-weight:800;display:inline-flex}.copy-page-button:hover{box-shadow:var(--shadow-soft);color:var(--green-dark);border-color:#119b4a73;transform:translateY(-1px)}.copy-page-button:active{transform:translateY(0)}.eyebrow span{color:var(--muted)}.module-meta{border-bottom:1px solid var(--line);align-items:center;gap:16px;margin-top:16px;padding-bottom:28px;display:flex}.module-meta>span:first-child{color:var(--muted);font-family:var(--font-jetbrains-mono), monospace;text-transform:uppercase;align-items:center;gap:6px;font-size:11px;display:inline-flex}.lede{color:var(--ink);margin:28px 0 0;font-size:16px;line-height:1.65}.module-content section{scroll-margin-top:90px}.module-content h2{margin:44px 0 0;font-size:22px;line-height:1.25}.module-content section p{color:var(--ink-soft);margin:14px 0 0;font-size:16px;line-height:1.65}.module-bullets{color:var(--ink-soft);gap:9px;margin:16px 0 0;padding-left:22px;font-size:15.5px;line-height:1.6;display:grid}.module-bullets li::marker{color:var(--green)}.callout{border-left:3px solid var(--green);background:var(--green-soft);border-radius:0 8px 8px 0;margin:24px 0 0;padding:16px 20px}.callout p:last-child{color:var(--ink-soft);margin:8px 0 0;font-size:14.5px;line-height:1.6}.callout-note{background:#1e3a5f0d;border-left-color:#1e3a5f}.callout-warning{border-left-color:var(--tangelo);background:#ff69280f}.callout-task{border-left-color:var(--green);background:var(--white);border-top:1px solid var(--line);border-right:1px solid var(--line);border-bottom:1px solid var(--line);border-radius:0 12px 12px 0}.code-panel{background:var(--ink);border-radius:10px;margin:20px 0 0;overflow:hidden}.code-panel-header{border-bottom:1px solid #ffffff14;justify-content:space-between;align-items:center;padding:10px 18px;display:flex}.code-panel-header span{color:#ffffff8c;font-family:var(--font-jetbrains-mono), monospace;letter-spacing:.08em;font-size:10.5px}.code-panel pre{color:#e9e8f2;font-family:var(--font-jetbrains-mono), monospace;margin:0;padding:18px 20px;font-size:13px;line-height:1.7;overflow-x:auto}.task-card{border:1px solid var(--line);border-left:3px solid var(--green);background:var(--white);border-radius:0 12px 12px 0;margin:30px 0 0;padding:22px 26px}.task-card>div{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.task-badge,.task-time{font-family:var(--font-jetbrains-mono), monospace;letter-spacing:.12em;text-transform:uppercase;font-size:10px;font-weight:800}.task-badge{background:var(--green-soft);color:var(--green-dark);border-radius:5px;padding:4px 8px}.task-time{color:var(--muted)}.task-card h2{margin:14px 0 0;font-size:17px}.task-card p{color:var(--ink-soft);margin:8px 0 0;font-size:14.5px;line-height:1.6}.done-card{border:1px solid var(--line);background:var(--white);border-radius:12px;margin-top:14px;padding:18px}.done-card.is-complete{background:var(--green-soft);border-color:#119b4a59}.done-card-header{justify-content:space-between;align-items:center;gap:16px;display:flex}.done-count{color:var(--muted);font-family:var(--font-jetbrains-mono), monospace;font-size:11px;font-weight:800}.checklist{border:0;flex-direction:column;gap:2px;min-inline-size:0;margin:12px 0 0;padding:0;display:flex}.check-row{width:100%;color:var(--ink);text-align:left;cursor:pointer;transition:background var(--ease-out);background:0 0;border:0;border-radius:8px;align-items:flex-start;gap:12px;padding:9px 8px;display:flex}.check-row:hover{background:#119b4a0d}.check-row.is-checked{color:var(--muted);text-decoration:line-through}.checkbox-ui{border:1.5px solid var(--line-strong);background:var(--white);color:#fff;width:20px;height:20px;transition:border-color var(--ease-out), background var(--ease-out);border-radius:5px;flex:none;place-items:center;margin-top:1px;display:grid}.is-checked .checkbox-ui{border-color:var(--green);background:var(--green)}.complete-message{color:var(--green-dark);margin:12px 0 0;font-size:13px;font-weight:800}.module-pager{border-top:1px solid var(--line);justify-content:space-between;gap:20px;margin-top:40px;padding-top:20px;display:flex}.module-pager a{color:var(--ink);transition:color var(--ease-out);border-radius:6px;gap:5px;font-size:14px;font-weight:800;display:grid}.module-pager a:hover{color:var(--green-dark)}.module-pager a:last-child{text-align:right;justify-items:end}.module-pager span{color:var(--muted);font-family:var(--font-jetbrains-mono), monospace;letter-spacing:.12em;text-transform:uppercase;font-size:9.5px}.toc{align-self:start;padding:48px 20px 0 0;position:sticky;top:88px}.toc a{color:var(--muted);transition:color var(--ease-out);border-radius:4px;margin-top:10px;font-size:13px;line-height:1.4;display:block}.toc a:hover{color:var(--green)}@media (max-width:980px){.topbar-inner{padding:0 20px}.top-nav,.account-cluster .week-chip,.account-cluster .ghost-button{display:none}.dashboard-page,.modules-page{padding:36px 20px 80px}.continue-card{flex-direction:column;align-items:stretch;padding:24px}.primary-action{justify-content:center}.week-rail{grid-template-columns:1fr;gap:12px}.week-step{text-align:left;grid-template-columns:26px 72px minmax(0,1fr);place-items:center start}.week-step:before{display:none}.week-number{margin-top:0}.category-grid{grid-template-columns:1fr}.module-card{grid-template-columns:1fr;gap:10px}.module-time,.status-badge{justify-self:start}.module-arrow{display:none}.module-layout{display:block}.module-sidebar,.toc{display:none}.module-content{padding:32px 20px 80px}.module-title-row{flex-direction:column;gap:14px}.copy-page-button{width:100%;margin-top:0}.app-footer{flex-direction:column;align-items:flex-start;padding:18px 20px}.module-content h1{font-size:27px}.module-content h2{font-size:20px}.code-panel{border-radius:0;margin-left:-20px;margin-right:-20px}}@media (max-width:520px){.login-screen{padding:18px}.login-card{padding:42px 26px 32px}.page-intro h1{font-size:29px}.continue-card h2{font-size:18px}.section-heading{flex-direction:column;align-items:flex-start;gap:8px}}
