@import "https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&display=swap";*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{-webkit-text-size-adjust:100%;-moz-text-size-adjust:100%;text-size-adjust:100%;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizelegibility}body{min-height:100vh;line-height:1.5}img,picture,video,canvas,svg{max-width:100%;display:block}input,button,textarea,select{font:inherit;color:inherit}p,h1,h2,h3,h4,h5,h6{overflow-wrap:break-word}a{color:inherit;text-decoration:none}ul,ol{list-style:none}code,pre{font-family:inherit}#root{flex-direction:column;min-height:100vh;display:flex}:root{--color-swift-orange:#f05138;--color-swift-orange-hover:#e8432a;--color-swift-orange-subtle:#f051381f;--color-bg-primary:#0d0d12;--color-bg-secondary:#14141c;--color-bg-surface:#1c1c28;--color-bg-elevated:#24243a;--color-bg-hover:#2a2a3e;--color-bg-active:#32324a;--color-text-primary:#e8e8ed;--color-text-secondary:#9898a6;--color-text-tertiary:#6c6c7a;--color-text-inverse:#0d0d12;--color-success:#34c759;--color-success-subtle:#34c7591f;--color-error:#ff3b30;--color-error-subtle:#ff3b301f;--color-warning:#ff9f0a;--color-warning-subtle:#ff9f0a1f;--color-info:#5ac8fa;--color-info-subtle:#5ac8fa1f;--color-border:#ffffff14;--color-border-strong:#ffffff26;--color-border-focus:var(--color-swift-orange);--shadow-sm:0 1px 2px #0000004d;--shadow-md:0 4px 12px #0006;--shadow-lg:0 8px 32px #00000080;--code-bg:#1d1d1f;--code-border:#ffffff0f;--code-text:#e8e8ed;--code-kw:#ff7ab2;--code-str:#fc6a5d;--code-num:#d0bf69;--code-type:#d0a8ff;--code-fn:#67b7a4;--code-comment:#6c7986;--font-sans:"Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", system-ui, sans-serif;--font-mono:"SF Mono", "Fira Code", "JetBrains Mono", "Cascadia Code", Menlo, Consolas, monospace;--text-xs:.6875rem;--text-sm:.75rem;--text-base:.8125rem;--text-md:.875rem;--text-lg:1rem;--text-xl:1.25rem;--text-2xl:1.5rem;--text-3xl:2rem;--weight-regular:400;--weight-medium:500;--weight-semibold:600;--weight-bold:700;--leading-tight:1.2;--leading-normal:1.5;--leading-relaxed:1.65;--space-0:0;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:20px;--space-6:24px;--space-8:32px;--space-10:40px;--space-12:48px;--space-16:64px;--radius-xs:4px;--radius-sm:6px;--radius-md:8px;--radius-lg:12px;--radius-xl:16px;--radius-full:9999px;--ease-default:cubic-bezier(.25, .1, .25, 1);--ease-spring:cubic-bezier(.34, 1.56, .64, 1);--duration-fast:.12s;--duration-normal:.2s;--duration-slow:.35s;--z-base:0;--z-dropdown:100;--z-sticky:200;--z-modal-backdrop:300;--z-modal:400;--z-toast:500;--header-height:48px;--sidebar-width:280px;--panel-min-width:320px;--lesson-sidebar-width:280px;--lesson-content-max:720px;--color-amber:#ffb340;--color-amber-subtle:#ffb3401a;--text-4xl:2.5rem;--text-5xl:3.25rem;--text-6xl:4rem;--section-padding:96px;--section-padding-sm:64px;--content-max-width:1120px;--content-padding:var(--space-6);--navbar-height:64px;--color-bg-hero-gradient-start:#0d0d12;--color-bg-hero-gradient-mid:#14101e;--color-bg-hero-gradient-end:#0d0d12;--color-bg-section-alt:#111118;--color-card-bg:#1c1c2899;--color-card-border:#ffffff0f;--color-card-bg-hover:#24243ab3;--icon-size-sm:16px;--icon-size-md:20px;--icon-size-lg:24px;--icon-container-sm:32px;--icon-container-md:40px;--icon-container-lg:48px;--duration-enter:.6s;--duration-stagger:80ms;--ease-out-expo:cubic-bezier(.16, 1, .3, 1)}@media (width<=900px){:root{--header-height:44px;--sidebar-width:100%;--section-padding:var(--section-padding-sm);--text-6xl:2.75rem;--text-5xl:2.25rem;--text-4xl:2rem}}body{font-family:var(--font-sans);font-size:var(--text-base);font-weight:var(--weight-regular);line-height:var(--leading-normal);color:var(--color-text-primary);background-color:var(--color-bg-primary)}:focus-visible{outline:2px solid var(--color-border-focus);outline-offset:2px;border-radius:var(--radius-sm)}::selection{background-color:var(--color-swift-orange-subtle);color:var(--color-text-primary)}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:var(--color-border-strong);border-radius:var(--radius-full)}::-webkit-scrollbar-thumb:hover{background:var(--color-text-tertiary)}code,pre,kbd{font-family:var(--font-mono)}button{cursor:pointer;font-family:var(--font-sans);background:0 0;border:none}button:disabled{cursor:not-allowed;opacity:.5}@keyframes fade-in-up{0%{opacity:0;transform:translateY(24px)}to{opacity:1;transform:translateY(0)}}@keyframes fade-in{0%{opacity:0}to{opacity:1}}@keyframes scale-in{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}@keyframes slide-in-left{0%{opacity:0;transform:translate(-20px)}to{opacity:1;transform:translate(0)}}@keyframes slide-in-right{0%{opacity:0;transform:translate(20px)}to{opacity:1;transform:translate(0)}}@keyframes pulse-glow{0%,to{opacity:1}50%{opacity:.7}}@keyframes shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}.animate-on-scroll{opacity:0;transition:opacity var(--duration-enter) var(--ease-out-expo), transform var(--duration-enter) var(--ease-out-expo);transform:translateY(24px)}.animate-on-scroll.is-visible{opacity:1;transform:translateY(0)}.animate-on-scroll--scale{opacity:0;transition:opacity var(--duration-enter) var(--ease-out-expo), transform var(--duration-enter) var(--ease-out-expo);transform:scale(.96)}.animate-on-scroll--scale.is-visible{opacity:1;transform:scale(1)}.stagger-children>.animate-on-scroll:first-child{transition-delay:0s}.stagger-children>.animate-on-scroll:nth-child(2){transition-delay:var(--duration-stagger)}.stagger-children>.animate-on-scroll:nth-child(3){transition-delay:calc(var(--duration-stagger) * 2)}.stagger-children>.animate-on-scroll:nth-child(4){transition-delay:calc(var(--duration-stagger) * 3)}.stagger-children>.animate-on-scroll:nth-child(5){transition-delay:calc(var(--duration-stagger) * 4)}.stagger-children>.animate-on-scroll:nth-child(6){transition-delay:calc(var(--duration-stagger) * 5)}.stagger-children>.animate-on-scroll:nth-child(7){transition-delay:calc(var(--duration-stagger) * 6)}.stagger-children>.animate-on-scroll:nth-child(8){transition-delay:calc(var(--duration-stagger) * 7)}.skeleton{background:linear-gradient(90deg, var(--color-bg-surface) 25%, var(--color-bg-elevated) 50%, var(--color-bg-surface) 75%);border-radius:var(--radius-md);background-size:200% 100%;animation:1.5s ease-in-out infinite shimmer}@media (prefers-reduced-motion:reduce){.animate-on-scroll,.animate-on-scroll--scale{opacity:1;transition:none;transform:none}.skeleton{animation:none}}.section{padding:var(--section-padding) var(--content-padding)}.section--alt{background:var(--color-bg-section-alt)}.section__inner{max-width:var(--content-max-width);width:100%;margin:0 auto}.section-header{text-align:center;margin-bottom:var(--space-12)}.section-label{align-items:center;gap:var(--space-2);font-size:var(--text-xs);font-weight:var(--weight-semibold);color:var(--color-swift-orange);background:var(--color-swift-orange-subtle);padding:var(--space-1) var(--space-3);border-radius:var(--radius-full);letter-spacing:.04em;text-transform:uppercase;margin-bottom:var(--space-4);display:inline-flex}.section-title{font-size:var(--text-4xl);font-weight:var(--weight-bold);color:var(--color-text-primary);line-height:var(--leading-tight);letter-spacing:-.025em;margin-bottom:var(--space-4)}.section-title__accent{background:linear-gradient(135deg, var(--color-swift-orange) 0%, #ff8a65 100%);-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text}.section-subtitle{font-size:var(--text-lg);color:var(--color-text-secondary);line-height:var(--leading-relaxed);max-width:600px;margin:0 auto}.card{background:var(--color-card-bg);border:1px solid var(--color-card-border);border-radius:var(--radius-xl);padding:var(--space-6);transition:background var(--duration-normal) var(--ease-default), border-color var(--duration-normal) var(--ease-default), transform var(--duration-normal) var(--ease-default), box-shadow var(--duration-normal) var(--ease-default)}.card:hover,.card--interactive:hover{background:var(--color-card-bg-hover);border-color:var(--color-border-strong);box-shadow:var(--shadow-md);transform:translateY(-2px)}.card--glow:hover{border-color:var(--color-swift-orange)}.icon-container{width:var(--icon-container-lg);height:var(--icon-container-lg);border-radius:var(--radius-lg);background:var(--color-swift-orange-subtle);color:var(--color-swift-orange);flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}.icon-container--sm{width:var(--icon-container-sm);height:var(--icon-container-sm);border-radius:var(--radius-md)}.icon-container--md{width:var(--icon-container-md);height:var(--icon-container-md)}.icon-container--muted{background:var(--color-bg-surface);color:var(--color-text-secondary)}.btn{justify-content:center;align-items:center;gap:var(--space-2);font-family:var(--font-sans);font-weight:var(--weight-semibold);border-radius:var(--radius-lg);cursor:pointer;transition:background var(--duration-normal) var(--ease-default), color var(--duration-normal) var(--ease-default), border-color var(--duration-normal) var(--ease-default), box-shadow var(--duration-normal) var(--ease-default), transform var(--duration-fast) var(--ease-default);white-space:nowrap;border:none;text-decoration:none;display:inline-flex}.btn:active{transform:scale(.98)}.btn--sm{font-size:var(--text-sm);padding:var(--space-2) var(--space-3);border-radius:var(--radius-md)}.btn--md{font-size:var(--text-md);padding:var(--space-3) var(--space-5)}.btn--lg{font-size:var(--text-lg);padding:var(--space-3) var(--space-6)}.btn--primary{background:var(--color-swift-orange);color:#fff}.btn--primary:hover{background:var(--color-swift-orange-hover)}.btn--secondary{color:var(--color-text-secondary);border:1px solid var(--color-border-strong);background:0 0}.btn--secondary:hover{color:var(--color-text-primary);border-color:var(--color-text-tertiary);background:var(--color-bg-hover)}.btn--ghost{color:var(--color-text-secondary);background:0 0}.btn--ghost:hover{color:var(--color-text-primary);background:var(--color-bg-hover)}.btn__arrow{transition:transform var(--duration-fast) var(--ease-default)}.btn:hover .btn__arrow{transform:translate(4px)}.divider{background:var(--color-border);height:1px;margin:var(--space-8) 0;border:none}.divider--gradient{background:linear-gradient(90deg, transparent, var(--color-border-strong), transparent)}.error-boundary{min-height:100vh;padding:var(--space-6) var(--space-4);text-align:center;background:var(--color-bg-primary);color:var(--color-text-primary);justify-content:center;align-items:center;display:flex}.error-boundary__inner{max-width:480px}.error-boundary__icon{margin-bottom:var(--space-4);font-size:3rem;display:block}.error-boundary__title{margin-bottom:var(--space-3);font-size:1.5rem;font-weight:700}.error-boundary__description{color:var(--color-text-secondary);margin-bottom:var(--space-5);font-size:1rem;line-height:1.6}.error-boundary__details{border-radius:var(--radius-sm);padding:var(--space-3) var(--space-4);color:var(--color-primary);text-align:left;white-space:pre-wrap;word-break:break-word;margin-bottom:var(--space-5);background:#ffffff0a;border:1px solid #ffffff14;font-family:SF Mono,Fira Code,monospace;font-size:.8125rem;overflow-x:auto}.error-boundary__action{padding:var(--space-3) var(--space-5);border-radius:var(--radius-md);background:var(--color-primary);color:#fff;cursor:pointer;border:none;align-items:center;font-size:.9375rem;font-weight:600;transition:all .2s;display:inline-flex}.error-boundary__action:hover{background:#d4432e}.consent-banner{z-index:1000;background:var(--color-bg-elevated);border-top:1px solid var(--color-border-strong);box-shadow:var(--shadow-lg);position:fixed;bottom:0;left:0;right:0}.consent-banner__inner{max-width:1100px;padding:var(--space-4) var(--space-6);align-items:center;gap:var(--space-6);flex-wrap:wrap;justify-content:space-between;margin:0 auto;display:flex}.consent-banner__text{color:var(--color-text-secondary);font-size:var(--text-md);line-height:var(--leading-normal);flex:auto;min-width:260px;margin:0}.consent-banner__link{color:var(--color-text-primary);text-underline-offset:2px;text-decoration:underline}.consent-banner__actions{gap:var(--space-2);flex:none;display:flex}.consent-banner__button{appearance:none;border:1px solid var(--color-border);padding:var(--space-2) var(--space-4);font-size:var(--text-md);font-weight:var(--weight-medium);cursor:pointer;border-radius:6px;font-family:inherit;transition:background-color .12s,border-color .12s}.consent-banner__button--decline{color:var(--color-text-secondary);background:0 0}.consent-banner__button--decline:hover{background:var(--color-bg-hover);color:var(--color-text-primary)}.consent-banner__button--accept{background:var(--color-swift-orange);border-color:var(--color-swift-orange);color:var(--color-text-inverse)}.consent-banner__button--accept:hover{background:var(--color-swift-orange-hover)}@media (width<=560px){.consent-banner__inner{padding:var(--space-3) var(--space-4)}.consent-banner__actions{justify-content:flex-end;width:100%}}.navbar{height:var(--navbar-height);z-index:var(--z-sticky);-webkit-backdrop-filter:blur(20px)saturate(180%);border-bottom:1px solid var(--color-border);background:#0d0d12cc;position:fixed;top:0;left:0;right:0}.navbar__inner{max-width:var(--content-max-width);height:100%;padding:0 var(--space-6);justify-content:space-between;align-items:center;margin:0 auto;display:flex}.navbar__brand{align-items:center;gap:var(--space-2);color:var(--color-text-primary);font-weight:var(--weight-bold);font-size:var(--text-lg);letter-spacing:-.02em;transition:opacity var(--duration-fast) var(--ease-default);text-decoration:none;display:flex}.navbar__brand:hover{opacity:.85}.navbar__brand-mark{color:var(--color-swift-orange);transition:transform var(--duration-normal) var(--ease-spring);justify-content:center;align-items:center;display:flex}.navbar__brand:hover .navbar__brand-mark{transform:scale(1.1)rotate(-8deg)}.navbar__brand-text{font-family:var(--font-mono)}.navbar__brand-beta{margin-left:var(--space-1);font-family:var(--font-mono);font-size:10px;font-weight:var(--weight-semibold);letter-spacing:.04em;text-transform:uppercase;color:var(--color-swift-orange);background:var(--color-swift-orange-subtle);border:1px solid var(--color-swift-orange-subtle);border-radius:var(--radius-sm);align-items:center;padding:2px 6px;line-height:1;display:inline-flex}.navbar__links{align-items:center;gap:var(--space-1);display:flex}.navbar__link{color:var(--color-text-secondary);font-size:var(--text-md);font-weight:var(--weight-medium);padding:var(--space-2) var(--space-3);border-radius:var(--radius-md);transition:all var(--duration-fast) var(--ease-default);text-decoration:none;position:relative}.navbar__link:hover{color:var(--color-text-primary);background:var(--color-bg-hover)}.navbar__link--active{color:var(--color-swift-orange);background:var(--color-swift-orange-subtle)}.navbar__link--active:after{content:"";bottom:2px;left:var(--space-3);right:var(--space-3);background:var(--color-swift-orange);border-radius:1px;height:2px;position:absolute}.navbar__right,.navbar__actions{align-items:center;gap:var(--space-3);display:flex}.navbar__auth-btn{padding:var(--space-2) var(--space-4);font-size:var(--text-sm);font-weight:var(--weight-semibold);color:var(--color-text-primary);background:var(--color-bg-surface);border:1px solid var(--color-border-strong);border-radius:var(--radius-full);transition:all var(--duration-fast) var(--ease-default);cursor:pointer;align-items:center;text-decoration:none;display:inline-flex}.navbar__auth-btn:hover{background:var(--color-bg-hover);border-color:var(--color-swift-orange);color:var(--color-swift-orange)}.navbar__auth-btn--full{width:100%;padding:var(--space-3) var(--space-4);border-radius:var(--radius-lg);justify-content:center}.navbar__profile-link{align-items:center;gap:var(--space-2);padding:var(--space-1) var(--space-2);border-radius:var(--radius-md);transition:background var(--duration-fast) var(--ease-default);text-decoration:none;display:flex}.navbar__profile-link:hover{background:var(--color-bg-hover)}.navbar__profile-link.navbar__link--active{background:var(--color-swift-orange-subtle)}.navbar__profile-name{font-size:var(--text-sm);font-weight:var(--weight-medium);color:var(--color-text-secondary);transition:color var(--duration-fast) var(--ease-default)}.navbar__profile-link:hover .navbar__profile-name{color:var(--color-text-primary)}.navbar__profile-link.navbar__link--active .navbar__profile-name{color:var(--color-swift-orange)}.navbar__user{align-items:center;gap:var(--space-3);display:flex}.navbar__avatar{border:2px solid var(--color-border);width:32px;height:32px;transition:border-color var(--duration-fast) var(--ease-default);border-radius:50%}.navbar__avatar:hover{border-color:var(--color-swift-orange)}.navbar__signout-btn{font-size:var(--text-sm);font-weight:var(--weight-medium);font-family:var(--font-sans);color:var(--color-text-tertiary);cursor:pointer;padding:var(--space-1) var(--space-2);border-radius:var(--radius-sm);transition:all var(--duration-fast) var(--ease-default);background:0 0;border:none}.navbar__signout-btn:hover{color:var(--color-text-primary);background:var(--color-bg-hover)}.navbar__avatar-skeleton{background:var(--color-bg-surface);border-radius:50%;width:32px;height:32px;animation:1.5s ease-in-out infinite navbar-skeleton-pulse}@keyframes navbar-skeleton-pulse{0%,to{opacity:1}50%{opacity:.4}}.navbar__hamburger{width:40px;height:40px;color:var(--color-text-secondary);border-radius:var(--radius-md);cursor:pointer;transition:all var(--duration-fast) var(--ease-default);background:0 0;border:none;justify-content:center;align-items:center;display:none}.navbar__hamburger:hover{color:var(--color-text-primary);background:var(--color-bg-hover)}.navbar__mobile-backdrop{inset:0;top:var(--navbar-height);z-index:calc(var(--z-sticky) - 1);background:#00000080;display:none;position:fixed}.navbar__mobile-drawer{top:var(--navbar-height);background:var(--color-bg-secondary);border-left:1px solid var(--color-border);width:280px;max-width:85vw;z-index:var(--z-sticky);padding:var(--space-4);transition:transform var(--duration-slow) var(--ease-out-expo);flex-direction:column;display:none;position:fixed;bottom:0;right:0;overflow-y:auto;transform:translate(100%)}.navbar__mobile-drawer--open{transform:translate(0)}.navbar__mobile-links{gap:var(--space-1);padding-bottom:var(--space-4);border-bottom:1px solid var(--color-border);flex-direction:column;display:flex}.navbar__mobile-link{align-items:center;gap:var(--space-3);color:var(--color-text-secondary);font-size:var(--text-md);font-weight:var(--weight-medium);padding:var(--space-3) var(--space-3);border-radius:var(--radius-md);transition:all var(--duration-fast) var(--ease-default);text-decoration:none;display:flex}.navbar__mobile-link:hover{color:var(--color-text-primary);background:var(--color-bg-hover)}.navbar__mobile-link.navbar__link--active{color:var(--color-swift-orange);background:var(--color-swift-orange-subtle)}.navbar__mobile-footer{padding-top:var(--space-4);margin-top:auto}.navbar__mobile-user{align-items:center;gap:var(--space-3);flex-wrap:wrap;display:flex}.navbar__mobile-username{font-size:var(--text-sm);color:var(--color-text-secondary);text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}@media (width<=640px){.navbar__links,.navbar__actions{display:none}.navbar__hamburger{display:flex}.navbar__mobile-backdrop{display:block}.navbar__mobile-drawer{display:flex}}.footer{background:var(--color-bg-secondary);margin-top:auto}.footer__gradient-line{background:var(--color-border);height:1px}.footer__inner{max-width:var(--content-max-width);padding:var(--space-12) var(--space-6) var(--space-8);gap:var(--space-16);grid-template-columns:1.2fr 2fr;margin:0 auto;display:grid}.footer__brand-link{align-items:center;gap:var(--space-2);color:var(--color-text-primary);font-weight:var(--weight-bold);font-size:var(--text-lg);margin-bottom:var(--space-3);transition:opacity var(--duration-fast) var(--ease-default);text-decoration:none;display:inline-flex}.footer__brand-link:hover{opacity:.8}.footer__brand-icon{color:var(--color-swift-orange)}.footer__brand-text{font-family:var(--font-mono);letter-spacing:-.02em}.footer__tagline{font-size:var(--text-sm);color:var(--color-text-tertiary);line-height:var(--leading-relaxed);max-width:280px}.footer__columns{gap:var(--space-8);grid-template-columns:repeat(4,1fr);display:grid}.footer__column{gap:var(--space-2);flex-direction:column;display:flex}.footer__column-title{font-size:var(--text-xs);font-weight:var(--weight-semibold);color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:.06em;margin-bottom:var(--space-2)}.footer__link{align-items:center;gap:var(--space-1);font-size:var(--text-sm);color:var(--color-text-tertiary);transition:color var(--duration-fast) var(--ease-default);padding:var(--space-1) 0;text-decoration:none;display:inline-flex}.footer__link:hover{color:var(--color-text-primary)}.footer__bottom{max-width:var(--content-max-width);padding:var(--space-6) var(--space-6);border-top:1px solid var(--color-border);margin:0 auto}.footer__copyright{font-size:var(--text-xs);color:var(--color-text-tertiary);line-height:var(--leading-relaxed)}@media (width<=900px){.footer__inner{gap:var(--space-8);padding:var(--space-8) var(--space-6) var(--space-6);grid-template-columns:1fr}.footer__columns{gap:var(--space-6);grid-template-columns:repeat(2,1fr)}}@media (width<=480px){.footer__columns{grid-template-columns:1fr}}.app{flex-direction:column;height:100vh;display:flex;overflow:hidden}.app-marketing{background:var(--color-bg-primary);flex-direction:column;min-height:100vh;display:flex}.app-marketing main{flex:1}.app-route-loading{justify-content:center;align-items:center;gap:var(--space-4);min-height:100vh;padding:var(--space-8);background:radial-gradient(circle at top, #f051381a, transparent 30%), var(--color-bg-primary);color:var(--color-text-secondary);flex-direction:column;display:flex}.app-route-loading__spinner{border:3px solid var(--color-border);border-top-color:var(--color-swift-orange);border-radius:50%;width:36px;height:36px;animation:.8s linear infinite app-route-loading-spin}.app-route-loading__label{font-size:var(--text-sm);font-weight:var(--weight-medium)}@keyframes app-route-loading-spin{to{transform:rotate(360deg)}}html{scroll-behavior:smooth}
