@import "https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Manrope:wght@400;500;600;700;800&display=swap";:root{--text:#6b6375;--text-h:#08060d;--bg:#fff;--border:#e5e4e7;--code-bg:#f4f3ec;--accent:#aa3bff;--accent-bg:#aa3bff1a;--accent-border:#aa3bff80;--social-bg:#f4f3ec80;--shadow:#0000001a 0 10px 15px -3px, #0000000d 0 4px 6px -2px;--sans:system-ui, "Segoe UI", Roboto, sans-serif;--heading:system-ui, "Segoe UI", Roboto, sans-serif;--mono:ui-monospace, Consolas, monospace;font:18px/145% var(--sans);letter-spacing:.18px;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark;color:var(--text);background:var(--bg);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial}}@media (width<=1024px){:root{font-size:16px}}@media (prefers-color-scheme:dark){:root{--text:#9ca3af;--text-h:#f3f4f6;--bg:#16171d;--border:#2e303a;--code-bg:#1f2028;--accent:#c084fc;--accent-bg:#c084fc26;--accent-border:#c084fc80;--social-bg:#2f303a80;--shadow:#0006 0 10px 15px -3px, #00000040 0 4px 6px -2px}#social .button-icon{filter:invert()brightness(2)}}body{margin:0}#root{text-align:center;border-inline:1px solid var(--border);box-sizing:border-box;flex-direction:column;width:1126px;max-width:100%;min-height:100svh;margin:0 auto;display:flex}h1,h2{font-family:var(--heading);color:var(--text-h);font-weight:500}h1{letter-spacing:-1.68px;margin:32px 0;font-size:56px}@media (width<=1024px){h1{margin:20px 0;font-size:36px}}h2{letter-spacing:-.24px;margin:0 0 8px;font-size:24px;line-height:118%}@media (width<=1024px){h2{font-size:20px}}code,.counter{font-family:var(--mono);color:var(--text-h);border-radius:4px;display:inline-flex}code{background:var(--code-bg);padding:4px 8px;font-size:15px;line-height:135%}:root{color:#282e2b;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;letter-spacing:0;--ink:#282e2b;--muted:#727a72;--line:#e1e4dc;--paper:#fff;--green:#496d5b;--green-dark:#355442;--green-pale:#edf3ec;--yellow:#e4bd64;--serif:"Manrope", sans-serif;font-optical-sizing:auto;background:#f7f7f2;font-family:DM Sans,sans-serif}*{box-sizing:border-box}body{min-width:320px;min-height:100vh;margin:0}button,input{font:inherit}a{color:inherit}button:focus-visible,a:focus-visible,input:focus-visible{outline-offset:3px;outline:3px solid #9aaf89}::selection{color:var(--ink);background:#e7dcae}#root{text-align:left;border:0;width:100%;max-width:none;min-height:100vh;margin:0}h1,h2{color:var(--ink);font-family:var(--serif);letter-spacing:0;font-weight:700}h1{font-size:inherit;margin:0}h2{font-size:inherit;margin:0;line-height:1.3}p{margin:0}.counter{color:var(--accent);background:var(--accent-bg);border:2px solid #0000;border-radius:5px;margin-bottom:24px;padding:5px 10px;font-size:16px;transition:border-color .3s}.counter:hover{border-color:var(--accent-border)}.counter:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.hero{position:relative}.hero .base,.hero .framework,.hero .vite{margin:0 auto;inset-inline:0}.hero .base{z-index:0;width:170px;position:relative}.hero .framework,.hero .vite{position:absolute}.hero .framework{z-index:1;height:28px;top:34px;transform:perspective(2000px)rotate(300deg)rotateX(44deg)rotateY(39deg)scale(1.4)}.hero .vite{z-index:0;width:auto;height:26px;top:107px;transform:perspective(2000px)rotate(300deg)rotateX(40deg)rotateY(39deg)scale(.8)}#center{flex-direction:column;flex-grow:1;place-content:center;place-items:center;gap:25px;display:flex}@media (width<=1024px){#center{gap:18px;padding:32px 20px 24px}}#next-steps{border-top:1px solid var(--border);text-align:left;display:flex}#next-steps>div{flex:1 1 0;padding:32px}@media (width<=1024px){#next-steps>div{padding:24px 20px}}#next-steps .icon{width:22px;height:22px;margin-bottom:16px}@media (width<=1024px){#next-steps{text-align:center;flex-direction:column}}#docs{border-right:1px solid var(--border)}@media (width<=1024px){#docs{border-right:none;border-bottom:1px solid var(--border)}}#next-steps ul{gap:8px;margin:32px 0 0;padding:0;list-style:none;display:flex}#next-steps ul .logo{height:18px}#next-steps ul a{color:var(--text-h);background:var(--social-bg);border-radius:6px;align-items:center;gap:8px;padding:6px 12px;font-size:16px;text-decoration:none;transition:box-shadow .3s;display:flex}#next-steps ul a:hover{box-shadow:var(--shadow)}#next-steps ul a .button-icon{width:18px;height:18px}@media (width<=1024px){#next-steps ul{flex-wrap:wrap;justify-content:center;margin-top:20px}#next-steps ul li{flex:calc(50% - 8px)}#next-steps ul a{box-sizing:border-box;justify-content:center;width:100%}}#spacer{border-top:1px solid var(--border);height:88px}@media (width<=1024px){#spacer{height:48px}}.ticks{width:100%;position:relative}.ticks:before,.ticks:after{content:"";border:5px solid #0000;position:absolute;top:-4.5px}.ticks:before{border-left-color:var(--border);left:0}.ticks:after{border-right-color:var(--border);right:0}.app-shell{background:linear-gradient(118deg,#f7f7f2 0% 70%,#f0f2e9 100%);flex-direction:column;min-height:100vh;display:flex}.topbar{border-bottom:1px solid var(--line);background:#ffffffad;align-items:center;gap:54px;height:78px;padding:0 max(32px,50vw - 590px);display:flex}.brand{color:var(--ink);font-family:var(--serif);white-space:nowrap;align-items:center;gap:11px;font-size:15px;font-weight:800;text-decoration:none;display:flex}.brand-mark{color:#f5e8bd;background:var(--green);border-radius:50%;place-items:center;width:38px;height:38px;display:grid}.brand-subtitle{color:var(--muted);margin-top:1px;font-family:DM Sans,sans-serif;font-size:10px;font-weight:500;line-height:1.2;display:block}.main-nav{align-items:center;gap:31px;height:100%;display:flex}.main-nav a{color:#737a74;border-bottom:2px solid #0000;align-items:center;gap:7px;height:100%;font-size:13px;text-decoration:none;transition:color .15s,border-color .15s;display:flex}.main-nav a.active{color:var(--green-dark);border-color:var(--green)}.main-nav a:hover{color:var(--green-dark)}.mobile-nav{display:none}.local-badge{color:var(--muted);align-items:center;gap:7px;margin-left:auto;font-size:11px;display:flex}.local-badge span{background:#6b9b75;border-radius:50%;width:7px;height:7px}main{flex:1;width:min(100% - 64px,1080px);margin:0 auto}.dashboard-page{padding:66px 0 90px}.welcome-row{justify-content:space-between;align-items:flex-end;gap:20px;margin-bottom:35px;display:flex}.eyebrow,.panel-label,.detail-number,.section-kicker{color:var(--green);font-size:10px;font-weight:700}.welcome-row h1,.profile-page h1,.not-found h1{margin:10px 0 8px;font-size:clamp(28px,3vw,38px);line-height:1.2}.welcome-names{color:#b6533f}.page-intro{color:var(--muted);margin:0;font-size:14px}.profile-link{color:var(--green-dark);align-items:center;gap:4px;padding-bottom:6px;font-size:12px;font-weight:700;text-decoration:none;display:inline-flex}.profile-link svg{transition:transform .15s}.profile-link:hover svg{transform:translate(2px,-2px)}.setup-banner{background:#f8f1d8;border:1px solid #e9dfb9;border-radius:5px;align-items:center;gap:20px;min-height:112px;margin-bottom:55px;padding:23px 26px;display:flex}.setup-symbol{color:#936d18;background:#efe2af;border-radius:50%;flex:0 0 42px;place-items:center;width:42px;height:42px;display:grid}.setup-banner strong{font-family:var(--serif);margin-bottom:4px;font-size:15px;display:block}.setup-banner p{color:var(--muted);font-size:12px}.button-primary{border:1px solid var(--green-dark);color:#fff;background:var(--green-dark);cursor:pointer;border-radius:3px;justify-content:center;align-items:center;min-height:40px;padding:0 17px;font-size:12px;font-weight:700;text-decoration:none;transition:background .18s,transform .18s;display:inline-flex}.button-primary:hover{background:#294334;transform:translateY(-1px)}.setup-banner .button-primary{white-space:nowrap;margin-left:auto}.age-panel{color:#fff;background:var(--green-dark);border-radius:5px;grid-template-columns:1fr 1px 1.65fr 75px;align-items:center;gap:36px;min-height:174px;margin-bottom:59px;padding:28px 34px;display:grid;overflow:hidden}.age-copy,.leap-highlight{flex-direction:column;align-items:flex-start;gap:7px;display:flex}.age-panel .panel-label{color:#c2d7be}.age-value{font:700 31px/1.15 var(--serif)}.age-detail,.leap-highlight>span:last-child{color:#d5e1d2;font-size:12px}.age-divider{background:#fff3;height:73px}.leap-highlight strong{font:700 19px/1.3 var(--serif);max-width:420px}.storm-mark{color:#e8d596;border:1px solid #ecdea859;border-radius:50%;justify-self:end;place-items:center;width:62px;height:62px;display:grid}.storm-mark.is-active{background:#e4bd642e;box-shadow:0 0 0 9px #e4bd6412}.milestones-section{padding-bottom:8px}.section-heading{justify-content:space-between;align-items:flex-end;margin-bottom:18px;display:flex}.section-heading h2{margin-top:5px;font-size:22px;line-height:1.2}.milestone-count{color:var(--muted);padding-bottom:4px;font-size:11px}.milestone-list{border-top:1px solid var(--line)}.milestone-row{border-bottom:1px solid var(--line);grid-template-columns:48px 95px minmax(0,1fr) 112px 18px;align-items:center;gap:14px;min-height:75px;text-decoration:none;transition:background .15s,padding .15s;display:grid}.milestone-row:hover{background:#ffffffb8;padding-inline:10px}.milestone-index{width:38px;height:38px;font-family:var(--serif);border-radius:11px;place-items:center;font-size:14px;font-weight:800;display:grid}.milestone-row.leap-1 .milestone-index{color:#307659;background:#e0f1e6}.milestone-row.leap-2 .milestone-index{color:#b7553f;background:#fbe5dc}.milestone-row.leap-3 .milestone-index{color:#896514;background:#f8edcb}.milestone-row.leap-4 .milestone-index{color:#37718b;background:#e1eff5}.milestone-row.leap-5 .milestone-index{color:#77548f;background:#eee5f5}.milestone-row.leap-6 .milestone-index{color:#a34c25;background:#fbe8dc}.milestone-row.leap-7 .milestone-index{color:#365d9d;background:#e5ebfa}.milestone-row.leap-8 .milestone-index{color:#527342;background:#eaf1dc}.milestone-row.leap-9 .milestone-index{color:#ac4f76;background:#f7e4ed}.milestone-row.leap-10 .milestone-index{color:#684c9a;background:#eee7f8}.milestone-week{color:#878e85;font-size:9px;font-weight:700}.milestone-week strong{color:var(--ink);margin-left:5px;font-size:14px}.milestone-name{font-family:var(--serif);font-size:14px;font-weight:600}.status-pill{color:#7c827a;text-transform:capitalize;background:#f0f1ed;border-radius:2px;justify-self:start;align-items:center;gap:7px;padding:6px 9px;font-size:10px;display:inline-flex}.status-pill.active{color:#775e20;background:#f5efd9}.status-pill.completed{color:#496d5b;background:#e8f0e8}.status-pill svg{flex:none}.status-pill.active svg{color:#bd8a20}.status-pill.completed svg{color:#5e8769}.row-arrow{color:#9ba39a;transition:color .15s,transform .15s}.milestone-row:hover .row-arrow{color:var(--green-dark);transform:translate(2px,-2px)}.site-footer{border-top:1px solid var(--line);min-height:56px;color:var(--muted);justify-content:space-between;align-items:center;gap:16px;padding:0 max(32px,50vw - 540px);font-size:10px;display:flex}.profile-page{max-width:590px;margin:0 auto;padding:68px 0 90px}.profile-page h1{margin:10px 0 8px}.profile-form{border:1px solid var(--line);background:#fff;border-radius:4px;gap:22px;margin-top:34px;padding:29px;display:grid}.profile-form label{color:#3a413c;gap:8px;font-size:12px;font-weight:700;display:grid}.profile-form input{width:100%;height:43px;color:var(--ink);background:#fcfcfa;border:1px solid #d9ded7;border-radius:3px;padding:0 11px;font-size:13px}.required,.optional{color:#8a9188;margin-left:6px;font-size:10px;font-weight:400}.form-note{border-left:2px solid var(--yellow);color:var(--muted);background:#faf8ef;margin:-3px 0 0;padding:12px;font-size:11px;line-height:1.55}.form-actions{justify-content:flex-end;align-items:center;gap:20px;margin-top:2px;display:flex}.text-link{color:var(--muted);font-size:12px;text-decoration:none}.detail-page{padding:37px 0 85px}.back-link{color:var(--green-dark);align-items:center;gap:7px;margin-bottom:32px;font-size:12px;font-weight:600;text-decoration:none;display:inline-flex}.detail-header{border-bottom:1px solid var(--line);padding:0 0 28px}.detail-number{margin-bottom:10px}.detail-number span{color:#aab2a8;padding:0 5px}.detail-header h1{max-width:780px;margin:0 0 9px;font-size:clamp(27px,4vw,40px);line-height:1.15}.detail-header p{color:var(--muted);font-size:13px}.detail-grid{grid-template-columns:minmax(260px,.85fr) minmax(0,1.15fr);gap:56px;padding-top:32px;display:grid}.detail-aside{flex-direction:column;gap:32px;display:flex}.detail-section h2{font:700 19px/1.3 var(--serif);margin:9px 0 17px}.section-kicker{align-items:center;gap:8px;font-size:9px;display:flex}.section-icon{width:21px;height:21px;color:var(--green);background:#e6ede1;border-radius:50%;place-items:center;display:grid}.sign-list,.resource-group ul{margin:0;padding:0;list-style:none}.sign-list li,.resource-group li{color:#555e57;padding:0 0 10px 17px;font-size:12px;line-height:1.55;position:relative}.sign-list li:before,.resource-group li:before{content:"";background:#a9bd9d;border-radius:50%;width:5px;height:5px;position:absolute;top:7px;left:0}.resource-group{margin-top:19px}.resource-group h3{color:var(--ink);align-items:center;gap:6px;margin:0 0 9px;font-size:12px;display:flex}.resource-group h3 svg{color:var(--green)}.resource-group li{padding-bottom:9px}.skills-section{border:1px solid var(--line);background:#ffffffbf;border-radius:4px;align-self:start;padding:21px 23px 25px}.skills-heading{justify-content:space-between;align-items:center;gap:10px;display:flex}.skills-heading h2{margin-bottom:0}.check-count{min-width:43px;color:var(--green-dark);background:var(--green-pale);text-align:center;border-radius:2px;padding:6px 8px;font-size:10px;font-weight:700}.skills-intro{color:var(--muted);margin:10px 0 22px;font-size:11px}.skill-group{border:0;border-top:1px solid var(--line);min-width:0;margin:0 0 16px;padding:14px 0 0}.skill-group legend{color:#4b554d;margin-bottom:5px;padding:0;font-size:11px;font-weight:700}.skill-item{color:#505851;cursor:pointer;align-items:flex-start;gap:10px;padding:8px 0;font-size:11px;line-height:1.5;display:flex}.skill-item input{opacity:0;width:1px;height:1px;position:absolute}.custom-check{color:#0000;background:#fff;border:1px solid #bbc4b7;border-radius:2px;flex:0 0 16px;place-items:center;width:16px;height:16px;display:grid}.skill-item:has(input:focus-visible) .custom-check{outline-offset:3px;outline:3px solid #9aaf89}.skill-item.checked{color:#8a918a;text-decoration:line-through}.skill-item.checked .custom-check{color:#fff;border-color:var(--green);background:var(--green)}.not-found{padding:80px 0}.not-found a{color:var(--green-dark)}@media (width<=720px){.topbar{gap:20px;height:64px;padding:0 20px}.main-nav,.local-badge{display:none}main{width:calc(100% - 40px)}.mobile-nav{z-index:5;padding:7px 16px calc(7px + env(safe-area-inset-bottom));border-top:1px solid var(--line);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);background:#fffffff5;grid-template-columns:repeat(2,minmax(0,1fr));display:grid;position:fixed;inset:auto 0 0;box-shadow:0 -5px 20px #2a372c0f}.mobile-nav a{color:#7a837b;flex-direction:column;justify-content:center;align-items:center;gap:3px;min-height:48px;font-size:10px;font-weight:600;text-decoration:none;display:flex}.mobile-nav a.active{color:var(--green-dark)}.mobile-nav a{font-size:12px}main{padding-bottom:24px}.dashboard-page{padding:43px 0 60px}.welcome-row{align-items:flex-start}.welcome-row h1{font-size:30px;line-height:1.18}.eyebrow,.panel-label,.detail-number,.section-kicker{font-size:11px}.page-intro{max-width:380px;font-size:14px;line-height:1.55}.profile-link{white-space:nowrap;min-height:44px;margin-top:16px;font-size:13px}.setup-banner{flex-wrap:wrap;align-items:flex-start;gap:12px;margin-bottom:40px;padding:18px}.setup-symbol{flex-basis:34px;width:34px;height:34px;font-size:22px}.setup-banner>div:nth-child(2){flex:1}.setup-banner strong{font-size:16px;line-height:1.35}.setup-banner p{font-size:14px;line-height:1.5}.button-primary{min-height:46px;font-size:14px}.setup-banner .button-primary{margin:3px 0 0 46px}.age-panel{grid-template-columns:1fr 1px 1.4fr;gap:17px;min-height:155px;margin-bottom:43px;padding:23px 19px}.age-value{font-size:24px}.leap-highlight strong{font-size:15px}.age-detail,.leap-highlight>span:last-child{font-size:12px;line-height:1.45}.storm-mark{display:none}.milestone-row{grid-template-columns:38px 58px minmax(0,1fr) 16px;gap:9px;min-height:82px}.milestone-index{border-radius:10px;width:34px;height:34px;font-size:13px}.milestone-week{font-size:10px}.milestone-week strong{margin:2px 0 0;font-size:13px;display:block}.milestone-name{font-size:13px;line-height:1.4}.status-pill{grid-area:2/3;margin:-13px 0 10px;padding:0;font-size:10px;background:0 0!important}.milestone-count{font-size:12px}.row-arrow{grid-area:1/4/3}.milestone-index,.milestone-week{grid-row:1/3}.site-footer{flex-direction:column;align-items:flex-start;gap:5px;padding:15px 20px}.profile-page{padding:46px 0 65px}.profile-form{padding:21px}.detail-page{padding-top:27px}.detail-grid{flex-direction:column;gap:30px;display:flex}.skills-section{order:-1}.detail-header p{font-size:14px;line-height:1.55}.detail-section h2{font-size:20px}.sign-list li,.resource-group li{padding-bottom:12px;font-size:14px;line-height:1.55}.resource-group h3{font-size:14px}.skills-intro{margin-bottom:20px;font-size:13px;line-height:1.55}.skill-group legend{font-size:14px}.skill-item{align-items:flex-start;min-height:48px;padding:12px 0;font-size:14px;line-height:1.5}.custom-check{flex-basis:18px;width:18px;height:18px}.check-count{font-size:12px}.profile-form label{font-size:14px}.profile-form input{height:48px;font-size:16px}.required,.optional{font-size:11px}.form-note{font-size:13px;line-height:1.55}.text-link{font-size:14px}.form-actions .button-primary{flex:1;min-height:48px}.site-footer{padding-bottom:calc(76px + env(safe-area-inset-bottom));font-size:11px;line-height:1.45}}@media (width<=420px){.topbar{gap:14px;padding-inline:14px}.brand{gap:7px;font-size:13px}.brand-mark{width:33px;height:33px;font-size:18px}.brand-subtitle{font-size:9px}main{width:calc(100% - 30px)}.welcome-row{display:block}.profile-link{margin-top:16px;display:inline-block}.age-panel{gap:12px;padding-inline:14px}.age-value{font-size:21px}.leap-highlight strong{font-size:13px}.section-heading h2{font-size:20px}.milestone-row{grid-template-columns:34px 48px minmax(0,1fr) 13px;gap:7px}}
