:root{--text:#6b6375;--text-h:#08060d;--text-muted:#8a8792;--bg:#fff;--border:#e5e4e7;--code-bg:#f4f3ec;--accent:#aa3bff;--accent-bg:#aa3bff1a;--accent-border:#aa3bff80;--social-bg:#f4f3ec80;--green-bg:#eaf3e4;--green:#9fcf84;--green-dark:#4c7a3f;--red:#d9584c;--red-bg:#fbebe9;--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-body:"Inter", var(--sans);--font-label:"Atkinson Hyperlegible Next", "Inter", var(--sans);--background:#f8f9fa;--on-background:#191c1d;--surface:#f8f9fa;--surface-dim:#d9dadb;--surface-bright:#f8f9fa;--surface-variant:#e1e3e4;--on-surface:#191c1d;--on-surface-variant:#5b403d;--surface-container-lowest:#fff;--surface-container-low:#f3f4f5;--surface-container:#edeeef;--surface-container-high:#e7e8e9;--surface-container-highest:#e1e3e4;--outline:#8f6f6c;--outline-variant:#e4beba;--primary:#af101a;--surface-tint:#ba1a20;--on-primary:#fff;--primary-container:#d32f2f;--on-primary-container:#fff2f0;--secondary:#4c616c;--on-secondary:#fff;--secondary-container:#cfe6f2;--on-secondary-container:#526772;--tertiary:#005c8f;--on-tertiary:#fff;--tertiary-container:#0075b5;--on-tertiary-container:#eef5ff;--error:#ba1a1a;--on-error:#fff;--error-container:#ffdad6;--on-error-container:#93000a;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;--text-muted:#9ca3af;--bg:#16171d;--border:#2e303a;--code-bg:#1f2028;--accent:#c084fc;--accent-bg:#c084fc26;--accent-border:#c084fc80;--social-bg:#2f303a80;--green-bg:#1b2519;--green:#4f7a3f;--green-dark:#8fcf78;--red:#e0776c;--red-bg:#2a1a19;--shadow:#0006 0 10px 15px -3px, #00000040 0 4px 6px -2px}#social .button-icon{filter:invert()brightness(2)}}body{margin:0}.material-symbols-outlined{font-variation-settings:"FILL" 0, "wght" 400, "GRAD" 0, "opsz" 24}.material-symbols-outlined.fill{font-variation-settings:"FILL" 1, "wght" 400, "GRAD" 0, "opsz" 24}#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}}p{margin:0}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%}.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-header{z-index:50;background:var(--surface);border-bottom:1px solid var(--surface-container-high);box-sizing:border-box;font-family:var(--font-body);justify-content:space-between;align-items:center;gap:16px;padding:12px 16px;display:flex;position:sticky;top:0}.app-header-brand{flex-shrink:0;align-items:center;gap:10px;min-width:0;text-decoration:none;display:flex}.app-avatar{background:var(--primary-container);width:36px;height:36px;color:var(--on-primary-container);font-family:var(--font-label);border-radius:999px;flex-shrink:0;justify-content:center;align-items:center;font-size:13px;font-weight:700;display:flex}.app-logo{letter-spacing:-.01em;color:var(--primary);white-space:nowrap;text-overflow:ellipsis;font-size:16px;font-weight:700;overflow:hidden}.app-header-nav{flex-grow:1;justify-content:center;align-items:center;gap:28px;display:none}.app-header-nav-link{font-family:var(--font-label);color:var(--on-surface-variant);padding:4px 2px;font-size:14px;font-weight:500;text-decoration:none;transition:color .2s}.app-header-nav-link:hover{color:var(--on-surface)}.app-header-nav-link.active{color:var(--primary);font-weight:700}.app-header-search{width:36px;height:36px;color:var(--primary);cursor:pointer;background:0 0;border:none;border-radius:999px;flex-shrink:0;justify-content:center;align-items:center;transition:background-color .2s;display:flex}.app-header-search:hover{background:var(--surface-container-low)}@media (width>=640px){.app-header{padding:16px 40px}.app-logo{font-size:18px}.app-header-nav{display:flex}}.app-page{flex-direction:column;flex-grow:1;width:100%;display:flex}.courses-main{box-sizing:border-box;text-align:left;width:100%;max-width:1200px;font-family:var(--font-body);flex-direction:column;gap:32px;margin:0 auto;padding:24px 16px 96px;display:flex}.courses-hero h1{letter-spacing:-.01em;color:var(--on-background);margin:0 0 6px;font-size:26px;font-weight:700}.courses-hero p{color:var(--on-surface-variant);margin:0;font-size:15px}.courses-search{width:100%;max-width:640px;position:relative}.courses-search-icon{color:var(--on-surface-variant);pointer-events:none;position:absolute;top:50%;left:16px;transform:translateY(-50%)}.courses-search-input{width:100%;font-family:var(--font-body);border:1px solid var(--surface-variant);background:var(--surface-container-lowest);color:var(--on-surface);box-sizing:border-box;border-radius:999px;padding:13px 16px 13px 46px;font-size:15px;box-shadow:0 4px 20px #455a640a}.courses-search-input:focus-visible{border-color:var(--tertiary-container);box-shadow:0 0 0 2px var(--tertiary-container);outline:none}.progress-summary{background:var(--surface-container-lowest);border:1px solid var(--surface-container-low);border-radius:.75rem;flex-direction:column;gap:20px;padding:20px;display:flex;position:relative;overflow:hidden;box-shadow:0 4px 20px #455a6414}.progress-summary:before{content:"";background:var(--primary-container);opacity:.15;filter:blur(20px);border-radius:50%;width:140px;height:140px;position:absolute;top:-40px;right:-40px}.progress-summary-text{flex-direction:column;gap:4px;display:flex;position:relative}.progress-summary-text h2{color:var(--on-surface);margin:0;font-size:18px}.progress-summary-text p{color:var(--on-surface-variant);margin:0;font-size:13px}.progress-summary-stat{background:var(--surface);border:1px solid var(--surface-variant);border-radius:.5rem;align-items:center;gap:12px;padding:12px;display:flex;position:relative}.progress-summary-count{background:var(--primary-container);width:48px;height:48px;color:var(--on-primary-container);border-radius:999px;flex-shrink:0;justify-content:center;align-items:center;font-size:18px;font-weight:700;display:flex}.progress-summary-labels{flex-direction:column;display:flex}.progress-summary-caption{font-family:var(--font-label);letter-spacing:.05em;text-transform:uppercase;color:var(--on-surface-variant);font-size:11px;font-weight:700}.progress-summary-total{color:var(--on-surface);font-size:13px;font-weight:500}.courses-empty{color:var(--on-surface-variant);font-size:14px}.course-category{flex-direction:column;gap:16px;display:flex}.course-category-heading{align-items:center;gap:10px;display:flex}.course-category-bar{background:var(--primary);border-radius:999px;flex-shrink:0;width:4px;height:22px}.course-category-heading h3{color:var(--on-background);margin:0;font-size:20px}.course-row{scrollbar-width:none;gap:16px;margin:0 -16px;padding-bottom:4px;padding-left:16px;padding-right:16px;display:flex;overflow-x:auto}.course-row::-webkit-scrollbar{display:none}.course-card{border:1px solid var(--surface-container);background:var(--surface-container-lowest);color:inherit;border-radius:.75rem;flex-direction:column;flex:0 0 240px;gap:12px;padding:20px;text-decoration:none;transition:box-shadow .2s,transform .2s;display:flex;box-shadow:0 4px 20px #455a6414}.course-card:hover{transform:translateY(-2px);box-shadow:0 8px 24px #455a641f}.course-card-thumb{background:linear-gradient(135deg, var(--primary-container), var(--tertiary-container));border-radius:.75rem .75rem 0 0;justify-content:center;align-items:center;height:110px;margin:-20px -20px 0;display:flex;position:relative}.course-card-badge{font-family:var(--font-label);letter-spacing:.06em;text-transform:uppercase;color:#fff;background:#08060db8;border-radius:999px;padding:4px 8px;font-size:10px;font-weight:700;position:absolute;bottom:10px;left:10px}.course-card-badge.complete{background:var(--green-dark)}.course-card-body{flex-grow:1}.course-card-body h4{color:var(--on-surface);margin:0 0 6px;font-size:16px}.course-card-body p{color:var(--on-surface-variant);-webkit-line-clamp:2;-webkit-box-orient:vertical;margin:0;font-size:13px;line-height:1.4;display:-webkit-box;overflow:hidden}.course-card-footer{justify-content:space-between;align-items:center;display:flex}.course-card-meta{font-family:var(--font-label);letter-spacing:.04em;text-transform:uppercase;color:var(--secondary);font-size:11px;font-weight:700}.course-card-footer .material-symbols-outlined{color:var(--outline);font-size:20px}.course-progress-track{background:var(--surface-container);border-radius:999px;height:6px;overflow:hidden}.course-progress-fill{background:var(--primary);border-radius:999px;height:100%}@media (width>=640px){.courses-main{padding:32px 40px 96px}.courses-hero h1{font-size:32px}.courses-hero p{font-size:17px}}@media (width>=768px){.progress-summary{flex-direction:row;justify-content:space-between;align-items:center}.progress-summary-stat{width:auto}.course-row{grid-template-columns:repeat(3,1fr);margin:0;padding:0;display:grid;overflow-x:visible}.course-card{flex:initial}}@media (width>=1024px){.courses-main{padding:40px 64px 96px}}.hub-grid{grid-template-columns:repeat(2,1fr);gap:16px;display:grid}.hub-card{background:var(--surface-container-lowest);border:1px solid var(--surface-container-low);border-radius:.75rem;flex-direction:column;gap:6px;padding:16px 20px;display:flex;box-shadow:0 4px 20px #455a6414}.hub-card-label{font-family:var(--font-label);letter-spacing:.05em;text-transform:uppercase;color:var(--on-surface-variant);font-size:11px;font-weight:700}.hub-card-value{color:var(--on-surface);font-size:26px;font-weight:700}.hub-card-value-total{color:var(--on-surface-variant);font-size:15px;font-weight:500}.hub-continue{background:var(--surface-container-lowest);border:1px solid var(--surface-container-low);border-radius:.75rem;justify-content:space-between;align-items:center;gap:16px;padding:20px;display:flex;box-shadow:0 4px 20px #455a6414}.hub-continue-eyebrow{font-family:var(--font-label);letter-spacing:.05em;text-transform:uppercase;color:var(--primary);font-size:11px;font-weight:700}.hub-continue h3{color:var(--on-surface);margin:4px 0;font-size:17px}.hub-continue p{color:var(--on-surface-variant);margin:0;font-size:13px}.hub-continue-button{background:var(--primary);color:var(--on-primary);font-family:var(--font-label);border-radius:999px;flex-shrink:0;align-items:center;gap:6px;padding:10px 18px;font-size:13px;font-weight:700;text-decoration:none;display:inline-flex}.hub-links{grid-template-columns:repeat(2,1fr);gap:16px;display:grid}.hub-link-card{border:1px solid var(--surface-container);background:var(--surface-container-lowest);border-radius:.75rem;flex-direction:column;gap:4px;padding:18px 20px;text-decoration:none;transition:box-shadow .2s,transform .2s;display:flex}.hub-link-card:hover{transform:translateY(-2px);box-shadow:0 8px 24px #455a641f}.hub-link-card h4{color:var(--on-surface);margin:0;font-size:15px}.hub-link-card p{color:var(--on-surface-variant);margin:0;font-size:13px}.progress-list{flex-direction:column;gap:12px;display:flex}.progress-row{border:1px solid var(--surface-container);background:var(--surface-container-lowest);color:inherit;border-radius:.75rem;align-items:center;gap:14px;padding:16px;text-decoration:none;transition:box-shadow .2s,transform .2s;display:flex;box-shadow:0 4px 20px #455a6414}.progress-row:hover{transform:translateY(-2px);box-shadow:0 8px 24px #455a641f}.progress-row-icon{background:var(--primary-container);border-radius:999px;flex-shrink:0;justify-content:center;align-items:center;width:40px;height:40px;display:flex}.progress-row-body{flex-direction:column;flex-grow:1;gap:8px;min-width:0;display:flex}.progress-row-heading{justify-content:space-between;align-items:baseline;gap:12px;display:flex}.progress-row-title{color:var(--on-surface);font-size:15px;font-weight:500}.progress-row-meta{font-family:var(--font-label);letter-spacing:.04em;text-transform:uppercase;color:var(--secondary);flex-shrink:0;font-size:11px;font-weight:700}.profile-card{background:var(--surface-container-lowest);border:1px solid var(--surface-container-low);border-radius:.75rem;align-items:center;gap:16px;padding:20px;display:flex;box-shadow:0 4px 20px #455a6414}.profile-avatar{background:var(--primary-container);width:56px;height:56px;color:var(--on-primary-container);font-family:var(--font-label);border-radius:999px;flex-shrink:0;justify-content:center;align-items:center;font-size:18px;font-weight:700;display:flex}.profile-info{flex-direction:column;gap:2px;min-width:0;display:flex}.profile-name{color:var(--on-surface);font-size:17px;font-weight:600}.profile-email{color:var(--on-surface-variant);font-size:13px}.profile-logout-button{font-family:var(--font-label);letter-spacing:.01em;border:1px solid var(--outline-variant);color:var(--on-surface);cursor:pointer;background:0 0;border-radius:999px;align-self:flex-start;padding:10px 20px;font-size:13px;font-weight:700;transition:border-color .2s,color .2s}.profile-logout-button:hover:not(:disabled){border-color:var(--primary);color:var(--primary)}.profile-logout-button:disabled{opacity:.7;cursor:default}@media (width>=640px){.hub-grid{grid-template-columns:repeat(4,1fr)}}.lesson-main{box-sizing:border-box;text-align:left;flex-grow:1;width:100%;max-width:960px;margin:0 auto;padding:32px 32px 64px}.lesson-breadcrumb{color:var(--text-muted);align-items:center;gap:6px;margin-bottom:20px;font-size:13px;text-decoration:none;display:inline-flex}.lesson-breadcrumb:hover{color:var(--text-h)}.lesson-layout{grid-template-columns:220px 1fr;align-items:start;gap:40px;display:grid}.lesson-sidebar{flex-direction:column;gap:4px;display:flex;position:sticky;top:24px}.lesson-sidebar-title{text-transform:uppercase;letter-spacing:.4px;color:var(--text-muted);margin:0 0 8px;font-size:12px;font-weight:700}.lesson-nav-item{color:var(--text);border-radius:10px;align-items:center;gap:10px;padding:9px 10px;font-size:13.5px;text-decoration:none;display:flex}.lesson-nav-item:hover{background:var(--code-bg)}.lesson-nav-item.active{background:var(--green-bg);color:var(--text-h);font-weight:600}.lesson-nav-index{border:1px solid var(--border);width:22px;height:22px;color:var(--text-muted);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-size:11px;font-weight:600;display:flex}.lesson-nav-item.active .lesson-nav-index{background:var(--green-dark);border-color:var(--green-dark);color:#fff}.lesson-content h1{text-align:left;margin:0 0 6px;font-size:28px}.lesson-eyebrow{color:var(--green-dark);align-items:center;gap:10px;margin-bottom:8px;font-size:13px;font-weight:600;display:flex}.lesson-meta{color:var(--text-muted);margin-bottom:24px;font-size:13px}.lesson-complete-button{border:1px solid var(--border);background:var(--bg);color:var(--text-h);cursor:pointer;border-radius:999px;align-items:center;gap:8px;margin-bottom:24px;padding:10px 18px;font-size:13.5px;font-weight:600;transition:border-color .2s,background .2s,color .2s;display:inline-flex}.lesson-complete-button:hover:not(:disabled){border-color:var(--green-dark)}.lesson-complete-button:disabled{cursor:default;opacity:.7}.lesson-complete-button.completed{background:var(--green-bg);border-color:var(--green);color:var(--green-dark)}.lesson-body{flex-direction:column;gap:18px;font-size:15.5px;line-height:1.6;display:flex}.lesson-body p{text-align:left;margin:0}.lesson-steps{flex-direction:column;gap:12px;margin:0;padding:0;list-style:none;display:flex}.lesson-steps li{align-items:flex-start;gap:12px;display:flex}.lesson-step-index{background:var(--green-bg);width:26px;height:26px;color:var(--green-dark);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;margin-top:1px;font-size:12px;font-weight:700;display:flex}.lesson-callout{border-radius:14px;padding:14px 16px;font-size:14.5px;line-height:1.5}.lesson-callout.warning{background:var(--red-bg);color:var(--text-h);border:1px solid var(--red)}.lesson-callout.tip{background:var(--green-bg);color:var(--text-h);border:1px solid var(--green)}.lesson-footer-nav{border-top:1px solid var(--border);justify-content:space-between;gap:16px;margin-top:40px;padding-top:24px;display:flex}.lesson-nav-button{border:1px solid var(--border);color:var(--text-h);border-radius:14px;flex-direction:column;gap:2px;min-width:120px;padding:12px 18px;font-size:13px;text-decoration:none;transition:border-color .2s;display:flex}.lesson-nav-button:hover{border-color:var(--text-h)}.lesson-nav-button.next{text-align:right;margin-left:auto}.lesson-nav-button span:first-child{color:var(--text-muted);font-size:12px}.lesson-nav-button span:last-child{font-weight:600}@media (width<=720px){.lesson-layout{grid-template-columns:1fr}.lesson-sidebar{flex-flow:wrap;gap:8px;position:static}.lesson-sidebar-title{display:none}.lesson-nav-item{background:var(--code-bg)}}.course-detail{background:var(--background);width:100%;min-height:100%;color:var(--on-background);font-family:var(--font-body);flex-direction:column;flex-grow:1;display:flex}.course-detail-backnav{z-index:40;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#f8f9fae6;padding:12px 16px;position:sticky;top:0}.course-detail-back-btn{color:var(--primary);font-family:var(--font-label);cursor:pointer;background:0 0;border:none;border-radius:999px;align-items:center;gap:6px;padding:8px 14px;font-size:14px;font-weight:500;transition:background-color .2s;display:inline-flex}.course-detail-back-btn:hover{background:var(--surface-container-low)}.course-detail-back-btn:active{transform:scale(.97)}.course-detail-main{box-sizing:border-box;text-align:left;width:100%;max-width:800px;margin:0 auto;padding:16px 16px 24px}.course-detail-hero-section{flex-direction:column;gap:4px;margin-bottom:32px;display:flex}.course-detail-hero{background:linear-gradient(135deg, var(--primary-container), var(--tertiary-container));color:#fff;border-radius:.75rem;justify-content:center;align-items:center;width:100%;height:160px;margin-bottom:16px;display:flex;box-shadow:0 4px 20px #455a6414}.course-detail-eyebrow{font-family:var(--font-label);letter-spacing:.05em;text-transform:uppercase;color:var(--tertiary);font-size:12px;font-weight:700}.course-detail-title{letter-spacing:-.01em;color:var(--on-background);margin:4px 0 8px;font-size:26px;font-weight:700;line-height:32px}.course-detail-description{color:var(--on-surface-variant);margin:0;font-size:16px;line-height:24px}.course-detail-section{margin-bottom:32px}.course-detail-section h2{color:var(--on-background);margin:0 0 16px;font-size:20px}.objectives-grid{grid-template-columns:1fr;gap:12px;display:grid}.objective-card{background:var(--surface-container-lowest);border-top:4px solid var(--primary);border-radius:.75rem;align-items:flex-start;gap:12px;padding:16px;display:flex;box-shadow:0 4px 20px #455a6414}.objective-card:nth-child(3n+2){border-top-color:var(--tertiary)}.objective-card:nth-child(3n+2) .objective-icon{color:var(--tertiary)}.objective-card:nth-child(3n+3){border-top-color:var(--secondary)}.objective-card:nth-child(3n+3) .objective-icon{color:var(--secondary)}.objective-icon{color:var(--primary);flex-shrink:0;margin-top:2px}.objective-card h3{color:var(--on-surface);margin:0 0 4px;font-size:14px;font-weight:500}.objective-card p{color:var(--on-surface-variant);margin:0;font-size:13px;line-height:18px}.module-list{flex-direction:column;gap:10px;display:flex}.module-row{border:1px solid var(--surface-variant);background:var(--surface-container-lowest);color:inherit;border-radius:.5rem;align-items:center;gap:14px;padding:12px;text-decoration:none;transition:box-shadow .2s;display:flex}.module-row:hover{box-shadow:0 4px 20px #455a6414}.module-icon{background:var(--surface-container-high);width:42px;height:42px;color:var(--on-surface-variant);font-family:var(--font-label);border-radius:999px;flex-shrink:0;justify-content:center;align-items:center;font-size:14px;font-weight:700;display:flex}.module-icon.complete{background:var(--primary-container);color:var(--on-primary-container)}.module-body{flex-direction:column;flex-grow:1;min-width:0;display:flex}.module-title{color:var(--on-surface);font-size:14px;font-weight:500}.module-meta{color:var(--on-surface-variant);font-size:13px}.module-chevron{color:var(--on-surface-variant);flex-shrink:0}.course-detail-cta-bar{background:var(--surface-container);border-top:1px solid var(--surface-variant);box-sizing:border-box;z-index:50;justify-content:center;width:100%;padding:16px 16px 28px;display:flex;position:fixed;bottom:0;left:0;box-shadow:0 -4px 20px #455a6414}.course-detail-cta-button{background:var(--primary);width:100%;max-width:800px;color:var(--on-primary);font-family:var(--font-label);border-radius:999px;justify-content:center;align-items:center;gap:8px;padding:16px;font-size:14px;font-weight:700;text-decoration:none;transition:box-shadow .2s,transform .1s;display:flex;box-shadow:0 4px 12px #af101a4d}.course-detail-cta-button:hover{box-shadow:0 6px 16px #af101a66}.course-detail-cta-button:active{transform:scale(.98)}.course-detail-cta-spacer{height:96px}@media (width>=640px){.course-detail-main{padding:24px 40px 32px}.course-detail-hero{height:220px}.course-detail-title{letter-spacing:-.02em;font-size:32px;line-height:40px}.objectives-grid{grid-template-columns:repeat(2,1fr)}.course-detail-cta-bar{padding:16px 40px}.course-detail-cta-spacer{height:80px}}.auth-page{background:var(--background);box-sizing:border-box;width:100%;min-height:0;font-family:var(--font-body);flex-direction:column;flex-grow:1;justify-content:center;align-items:center;padding:40px 16px;display:flex;position:relative;overflow:hidden}.auth-bg-icon{color:var(--primary);opacity:.05;pointer-events:none;z-index:0;justify-content:center;align-items:center;font-size:70vmin;display:flex;position:absolute;inset:0}.auth-content{z-index:1;text-align:center;flex-direction:column;align-items:center;width:100%;max-width:360px;display:flex;position:relative}.auth-icon-badge{background:var(--surface-container-lowest);border-radius:999px;justify-content:center;align-items:center;width:56px;height:56px;margin-bottom:20px;display:flex;box-shadow:0 4px 20px #455a641f}.auth-icon-badge .material-symbols-outlined{color:var(--primary);font-size:30px}.auth-eyebrow{font-family:var(--font-label);letter-spacing:.05em;text-transform:uppercase;color:var(--tertiary);font-size:12px;font-weight:700}.auth-title{letter-spacing:-.01em;color:var(--on-background);margin:8px 0;font-size:26px;font-weight:700;line-height:32px}.auth-subtitle{color:var(--on-surface-variant);margin:0 0 24px;font-size:14px;line-height:20px}.auth-card{background:var(--surface-container-lowest);box-sizing:border-box;text-align:left;border-radius:.75rem;flex-direction:column;gap:16px;width:100%;padding:20px;display:flex;box-shadow:0 4px 20px #455a6414}.auth-form{flex-direction:column;gap:14px;width:100%;display:flex}.auth-form label{color:var(--on-surface);flex-direction:column;gap:6px;font-size:13px;font-weight:500;display:flex}.auth-form input{font-family:var(--font-body);border:1px solid var(--outline-variant);background:var(--surface-container-low);color:var(--on-surface);box-sizing:border-box;border-radius:.75rem;padding:13px 16px;font-size:15px}.auth-form input::placeholder{color:var(--on-surface-variant);opacity:.6}.auth-form input:focus-visible{border-color:var(--primary);outline:none}.auth-row-end{justify-content:flex-end;margin-top:-8px;display:flex}.auth-link-muted{color:var(--on-surface-variant);font-size:13px;text-decoration:none}.auth-link-muted:hover{text-decoration:underline}.auth-button{font-family:var(--font-label);letter-spacing:.01em;background:var(--primary);color:var(--on-primary);cursor:pointer;box-sizing:border-box;border:1px solid #0000;border-radius:999px;width:100%;padding:14px 16px;font-size:14px;font-weight:700;transition:background-color .2s,transform .1s}.auth-button:hover{background:var(--surface-tint)}.auth-button:active{transform:scale(.98)}.auth-button:disabled{opacity:.55;cursor:default;transform:none}.auth-divider{width:100%;color:var(--on-surface-variant);align-items:center;gap:12px;font-size:13px;display:flex}.auth-divider:before,.auth-divider:after{content:"";background:var(--outline-variant);flex:1;height:1px}.auth-social{justify-content:center;width:100%;display:flex}.auth-social>div{width:100%!important}.auth-error{color:var(--error);background:var(--error-container);text-align:left;border-radius:.5rem;margin:0;padding:10px 14px;font-size:13px}.auth-links{text-align:center;color:var(--on-surface-variant);margin:20px 0 0;font-size:13px}.auth-links a{color:var(--primary);font-weight:600;text-decoration:none}.auth-links a:hover{text-decoration:underline}@media (width>=640px){.auth-page{padding:64px 40px}.auth-content{max-width:400px}.auth-title{letter-spacing:-.02em;font-size:32px;line-height:40px}.auth-card{padding:28px}}
