:root,[data-theme=light]{color-scheme:light;--color-bg:#fafafa;--color-bg-elevated:#ffffff;--color-bg-subtle:#f0f0f0;--color-fg:#1a1a1a;--color-fg-muted:#6b7280;--color-fg-subtle:#9ca3af;--color-primary:#e55b00;--color-primary-hover:#cc5200;--color-primary-fg:#ffffff;--color-topic-icon:#1a1a1a;--color-secondary:#f0f0f0;--color-secondary-hover:#e0e0e0;--color-secondary-fg:#1a1a1a;--color-accent:#ff6b00;--color-error:#dc2626;--color-error-bg:#fef2f2;--color-success:#16a34a;--color-success-bg:#f0fdf4;--color-warning:#d97706;--color-warning-bg:#fffbeb;--color-info:#2563eb;--color-info-bg:#eff6ff;--color-border:#e5e7eb;--color-border-strong:#d1d5db;--color-overlay:rgba(0,0,0,0.5);--code-keyword:#cf222e;--code-string:#0a3069;--code-comment:#6e7781;--code-number:#0550ae;--code-function:#8250df;--code-type:#953800;--code-operator:#0550ae;--code-selection:rgba(84,174,255,0.28);--code-active-line:rgba(0,0,0,0.035)}[data-theme=dark]{color-scheme:dark;--color-bg:#0d0d0d;--color-bg-elevated:#1a1a1a;--color-bg-subtle:#242424;--color-fg:#f5f5f5;--color-fg-muted:#a1a1aa;--color-fg-subtle:#71717a;--color-primary:#ff6b00;--color-primary-hover:#ff7d1a;--color-primary-fg:#ffffff;--color-topic-icon:#ec6e16;--color-secondary:#242424;--color-secondary-hover:#2e2e2e;--color-secondary-fg:#f5f5f5;--color-accent:#ff6b00;--color-error:#f87171;--color-error-bg:#2d1b1b;--color-success:#4ade80;--color-success-bg:#1b2d1e;--color-warning:#fbbf24;--color-warning-bg:#2d2410;--color-info:#60a5fa;--color-info-bg:#1b2340;--color-border:#2e2e2e;--color-border-strong:#3f3f46;--color-overlay:rgba(0,0,0,0.7);--code-keyword:#ff7b72;--code-string:#a5d6ff;--code-comment:#8b949e;--code-number:#79c0ff;--code-function:#d2a8ff;--code-type:#ffa657;--code-operator:#79c0ff;--code-selection:rgba(56,139,253,0.35);--code-active-line:rgba(255,255,255,0.04)}:root{--font-family:system-ui,-apple-system,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;--font-family-mono:ui-monospace,"Cascadia Code","Fira Code","Courier New",monospace;--font-size-xs:0.75rem;--font-size-sm:0.875rem;--font-size-md:1rem;--font-size-lg:1.125rem;--font-size-xl:1.25rem;--font-size-2xl:1.5rem;--font-size-3xl:1.875rem;--line-height-tight:1.25;--line-height-normal:1.5;--line-height-relaxed:1.75;--font-weight-normal:400;--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--space-xs:0.25rem;--space-sm:0.5rem;--space-md:1rem;--space-lg:1.5rem;--space-xl:2rem;--space-2xl:3rem;--space-3xl:4rem;--radius-sm:4px;--radius-md:8px;--radius-lg:12px;--radius-xl:16px;--radius-full:9999px;--shadow-sm:0 1px 2px 0 rgba(0,0,0,0.05);--shadow-md:0 4px 6px -1px rgba(0,0,0,0.1),0 2px 4px -2px rgba(0,0,0,0.1);--shadow-lg:0 10px 15px -3px rgba(0,0,0,0.1),0 4px 6px -4px rgba(0,0,0,0.1)}[data-theme=dark]{--shadow-sm:0 1px 2px 0 rgba(0,0,0,0.3);--shadow-md:0 4px 6px -1px rgba(0,0,0,0.4),0 2px 4px -2px rgba(0,0,0,0.4);--shadow-lg:0 10px 15px -3px rgba(0,0,0,0.5),0 4px 6px -4px rgba(0,0,0,0.5)}:root{--transition-fast:150ms ease;--transition-normal:250ms ease;--transition-slow:400ms ease;--header-height:64px;--max-width-content:1280px;--max-width-prose:720px;--max-width-reader:92rem;--lesson-rail:15rem}*,:after,:before{box-sizing:border-box;margin:0;padding:0}ol[role=list],ul[role=list]{list-style:none}html{font-family:var(--font-family);font-size:var(--font-size-md);line-height:var(--line-height-normal);color:var(--color-fg);background-color:var(--color-bg);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;scroll-behavior:smooth;transition:color var(--transition-normal),background-color var(--transition-normal)}body{min-height:100dvh}h1,h2,h3,h4,h5,h6{line-height:var(--line-height-tight);font-weight:var(--font-weight-bold);color:var(--color-fg)}p{line-height:var(--line-height-normal)}a{color:var(--color-primary);text-decoration:none}a:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px;border-radius:var(--radius-sm)}:focus:not(:focus-visible){outline:none}:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}canvas,img,picture,svg,video{display:block;max-width:100%}button,input,select,textarea{font:inherit}button{cursor:pointer;background:none;border:none}[data-navigating],[data-navigating] a,[data-navigating] button{cursor:progress}@media (prefers-reduced-motion:reduce){*,:after,:before{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}