*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}:root{--bg-primary: #0a0a1a;--bg-secondary: #0c0c20;--bg-card: #12122a;--bg-card-hover: #1a1a36;--bg-surface: #0f0f24;--bg-code: #111128;--text-primary: #e2e2f0;--text-secondary: #9b9bc0;--text-muted: #6d6d8f;--text-heading: #f0f0fa;--accent-primary: #5e60ce;--accent-secondary: #6930c3;--accent-tertiary: #48bfe3;--accent-glow: rgba(94, 96, 206, .25);--border-subtle: rgba(150, 160, 210, .12);--border-card: rgba(150, 160, 210, .18);--border-active: rgba(94, 96, 206, .4);--gradient-hero: linear-gradient(135deg, #7400b8 0%, #5e60ce 40%, #48bfe3 70%, #80ffdb 100%);--gradient-card: linear-gradient( 145deg, rgba(94, 96, 206, .08) 0%, rgba(105, 48, 195, .04) 100% );--gradient-glow: radial-gradient( 600px circle at var(--mouse-x, 50%) var(--mouse-y, 50%), rgba(94, 96, 206, .06), transparent 40% );--reading-theme-bg-primary: color-mix(in srgb, var(--bg-primary) 90%, #121826 10%);--reading-theme-bg-surface: color-mix(in srgb, var(--bg-surface) 92%, #141b2d 8%);--reading-theme-bg-card: color-mix(in srgb, var(--bg-card) 94%, #1a2338 6%);--reading-theme-bg-card-hover: color-mix(in srgb, var(--bg-card-hover) 95%, #202a44 5%);--reading-theme-bg-code: color-mix(in srgb, var(--bg-code) 94%, #151d30 6%);--reading-theme-accent-primary: color-mix(in srgb, var(--accent-primary) 58%, #a9b8d4 42%);--reading-theme-accent-secondary: color-mix(in srgb, var(--accent-secondary) 52%, #9ca9c8 48%);--reading-theme-accent-tertiary: color-mix(in srgb, var(--accent-tertiary) 56%, #a7bdd5 44%);--reading-theme-border-subtle: color-mix(in srgb, var(--border-subtle) 85%, #7f8aa0 15%);--reading-theme-border-card: color-mix(in srgb, var(--border-card) 85%, #7f8aa0 15%);--reading-theme-border-active: color-mix(in srgb, var(--border-active) 72%, #95a2bf 28%);--reading-theme-accent-glow: color-mix(in srgb, var(--accent-glow) 45%, transparent);--shadow-card: 0 4px 24px rgba(0, 0, 0, .3);--shadow-elevated: 0 8px 40px rgba(0, 0, 0, .4);--shadow-glow: 0 0 40px rgba(94, 96, 206, .15);--gradient-logo: linear-gradient(135deg, #6930c3, #80ffdb);--sidebar-width: 300px;--navbar-height: 64px;--content-max-width: 900px;--reading-max-width: 74ch;--page-padding: clamp(.875rem, 2.8vw, 2rem);--radius-sm: 6px;--radius-md: 10px;--radius-lg: 16px;--radius-xl: 24px;--motion-duration-instant: 0ms;--motion-duration-fast: .15s;--motion-duration-standard: .25s;--motion-duration-slow: .4s;--motion-duration-skeleton: 1.4s;--motion-duration-view-transition: .2s;--motion-duration-card-entrance: .5s;--motion-easing-standard: cubic-bezier(.4, 0, .2, 1);--motion-easing-emphasized: cubic-bezier(.22, 1, .36, 1);--motion-duration-active-fast: var(--motion-duration-fast);--motion-duration-active-standard: var(--motion-duration-standard);--motion-duration-active-slow: var(--motion-duration-slow);--motion-duration-active-skeleton: var(--motion-duration-skeleton);--motion-duration-active-view-transition: var(--motion-duration-view-transition);--motion-duration-active-card-entrance: var(--motion-duration-card-entrance);--transition-fast: var(--motion-duration-fast) var(--motion-easing-standard);--transition-base: var(--motion-duration-standard) var(--motion-easing-standard);--transition-slow: var(--motion-duration-slow) var(--motion-easing-standard);--font-body: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-mono: "JetBrains Mono", "Fira Code", "Cascadia Code", monospace;--app-font-size: 1rem;--density-scale: 1;--text-on-accent: #0a1020;--text-on-brand: #ffffff}[data-palette=peach-sorbet]{--bg-primary: #fff8f5;--bg-secondary: #fff0ea;--bg-card: #ffeee6;--bg-card-hover: #ffe4d9;--bg-surface: #fff5f0;--bg-code: #fde8df;--text-primary: #4a2520;--text-secondary: #7a4a40;--text-muted: #8b5f54;--text-heading: #2d1510;--accent-primary: #9e4c49;--accent-secondary: #b05f55;--accent-tertiary: #a54f3a;--accent-glow: rgba(240, 128, 128, .25);--border-subtle: rgba(240, 128, 128, .18);--border-card: rgba(240, 128, 128, .24);--border-active: rgba(240, 128, 128, .5);--gradient-hero: linear-gradient(135deg, #f08080 0%, #f4978e 35%, #f8ad9d 65%, #ffdab9 100%);--gradient-card: linear-gradient( 145deg, rgba(240, 128, 128, .06) 0%, rgba(244, 151, 142, .03) 100% );--gradient-glow: radial-gradient( 600px circle at var(--mouse-x, 50%) var(--mouse-y, 50%), rgba(240, 128, 128, .04), transparent 40% );--shadow-card: 0 1px 3px rgba(180, 80, 60, .08);--shadow-elevated: 0 4px 16px rgba(180, 80, 60, .12);--shadow-glow: 0 0 20px rgba(240, 128, 128, .12);--gradient-logo: linear-gradient(135deg, #f08080, #ffdab9);--reading-bg-primary: #fff3ee;--reading-bg-surface: #fff8f5;--reading-bg-code: #fde8df;--reading-border-subtle: rgba(240, 128, 128, .12);--reading-border-card: rgba(240, 128, 128, .18);--reading-border-active: rgba(240, 128, 128, .42);--reading-accent-glow: rgba(240, 128, 128, .08);--text-on-accent: #ffffff;--text-on-brand: #2d1510}[data-palette=gradient-blues]{--bg-primary: #0a0a1a;--bg-secondary: #0c0c20;--bg-card: #12122a;--bg-card-hover: #1a1a36;--bg-surface: #0f0f24;--bg-code: #111128;--text-primary: #e2e2f0;--text-secondary: #9b9bc0;--text-muted: #7e7ea3;--text-heading: #f0f0fa;--accent-primary: #7b80eb;--accent-secondary: #6930c3;--accent-tertiary: #48bfe3;--accent-glow: rgba(94, 96, 206, .25);--border-subtle: rgba(150, 160, 210, .12);--border-card: rgba(150, 160, 210, .18);--border-active: rgba(94, 96, 206, .4);--gradient-hero: linear-gradient(135deg, #7400b8 0%, #5e60ce 40%, #48bfe3 70%, #80ffdb 100%);--gradient-card: linear-gradient( 145deg, rgba(94, 96, 206, .08) 0%, rgba(105, 48, 195, .04) 100% );--gradient-glow: radial-gradient( 600px circle at var(--mouse-x, 50%) var(--mouse-y, 50%), rgba(94, 96, 206, .06), transparent 40% );--shadow-card: 0 4px 24px rgba(0, 0, 0, .3);--shadow-elevated: 0 8px 40px rgba(0, 0, 0, .4);--shadow-glow: 0 0 40px rgba(94, 96, 206, .15);--gradient-logo: linear-gradient(135deg, #6930c3, #80ffdb);--reading-bg-primary: #090918;--reading-bg-surface: #0f0f24;--reading-bg-code: #12122a;--reading-border-subtle: rgba(150, 160, 210, .1);--reading-border-card: rgba(150, 160, 210, .14);--reading-border-active: rgba(94, 96, 206, .26);--reading-accent-glow: rgba(94, 96, 206, .1);--text-on-accent: #0a1020}[data-palette=neon-party]{--bg-primary: #050510;--bg-secondary: #070715;--bg-card: #0c0c1e;--bg-card-hover: #121228;--bg-surface: #080818;--bg-code: #0a0a1c;--text-primary: #e0e0f8;--text-secondary: #9090c0;--text-muted: #7676be;--text-heading: #f0f0ff;--accent-primary: #00ccff;--accent-secondary: #cc00ff;--accent-tertiary: #00ffcc;--accent-glow: rgba(0, 204, 255, .3);--border-subtle: rgba(0, 204, 255, .15);--border-card: rgba(0, 204, 255, .2);--border-active: rgba(0, 204, 255, .5);--gradient-hero: linear-gradient(135deg, #cc00ff 0%, #00ccff 35%, #00ffcc 65%, #ffff00 100%);--gradient-card: linear-gradient( 145deg, rgba(0, 204, 255, .08) 0%, rgba(204, 0, 255, .04) 100% );--gradient-glow: radial-gradient( 600px circle at var(--mouse-x, 50%) var(--mouse-y, 50%), rgba(0, 204, 255, .07), transparent 40% );--shadow-card: 0 4px 24px rgba(0, 0, 0, .4);--shadow-elevated: 0 8px 40px rgba(0, 0, 0, .5);--shadow-glow: 0 0 40px rgba(0, 204, 255, .2);--gradient-logo: linear-gradient(135deg, #cc00ff, #00ccff);--reading-bg-primary: #030308;--reading-bg-surface: #080818;--reading-bg-code: #0c0c1e;--reading-border-subtle: rgba(0, 204, 255, .1);--reading-border-card: rgba(0, 204, 255, .15);--reading-border-active: rgba(0, 204, 255, .35);--reading-accent-glow: rgba(0, 204, 255, .1);--text-on-accent: #04111a}[data-palette=deep-ocean-blue]{--bg-primary: #060e18;--bg-secondary: #091320;--bg-card: #0f1e2e;--bg-card-hover: #162638;--bg-surface: #0c1825;--bg-code: #0a1520;--text-primary: #c8e6e8;--text-secondary: #7ab0b5;--text-muted: #6c9aa1;--text-heading: #e0f0f2;--accent-primary: #42b7b3;--accent-secondary: #3d949b;--accent-tertiary: #48bfe3;--accent-glow: rgba(0, 100, 102, .3);--border-subtle: rgba(100, 180, 185, .12);--border-card: rgba(100, 180, 185, .18);--border-active: rgba(0, 100, 102, .45);--gradient-hero: linear-gradient(135deg, #006466 0%, #1b3a4b 40%, #272640 70%, #4d194d 100%);--gradient-card: linear-gradient(145deg, rgba(0, 100, 102, .1) 0%, rgba(39, 38, 64, .05) 100%);--gradient-glow: radial-gradient( 600px circle at var(--mouse-x, 50%) var(--mouse-y, 50%), rgba(0, 100, 102, .07), transparent 40% );--shadow-card: 0 4px 24px rgba(0, 0, 0, .35);--shadow-elevated: 0 8px 40px rgba(0, 0, 0, .45);--shadow-glow: 0 0 40px rgba(0, 100, 102, .2);--gradient-logo: linear-gradient(135deg, #006466, #4d194d);--reading-bg-primary: #04090f;--reading-bg-surface: #0c1825;--reading-bg-code: #0f1e2e;--reading-border-subtle: rgba(100, 180, 185, .1);--reading-border-card: rgba(100, 180, 185, .14);--reading-border-active: rgba(0, 100, 102, .3);--reading-accent-glow: rgba(0, 100, 102, .1);--text-on-accent: #031217}[data-palette=pastel-dreamland]{--bg-primary: #faf7fd;--bg-secondary: #f4effa;--bg-card: #ede5f7;--bg-card-hover: #e4d9f2;--bg-surface: #f8f3fc;--bg-code: #f0eaf8;--text-primary: #3d2356;--text-secondary: #6a3e8c;--text-muted: #7d5b9a;--text-heading: #280e3e;--accent-primary: #6c4aa3;--accent-secondary: #8b4d6a;--accent-tertiary: #4b6f9f;--accent-glow: rgba(155, 114, 207, .28);--border-subtle: rgba(155, 114, 207, .18);--border-card: rgba(155, 114, 207, .25);--border-active: rgba(155, 114, 207, .5);--gradient-hero: linear-gradient(135deg, #cdb4db 0%, #ffc8dd 35%, #ffafcc 60%, #a2d2ff 100%);--gradient-card: linear-gradient( 145deg, rgba(155, 114, 207, .06) 0%, rgba(232, 120, 158, .03) 100% );--gradient-glow: radial-gradient( 600px circle at var(--mouse-x, 50%) var(--mouse-y, 50%), rgba(155, 114, 207, .04), transparent 40% );--shadow-card: 0 1px 3px rgba(100, 50, 150, .08);--shadow-elevated: 0 4px 16px rgba(100, 50, 150, .1);--shadow-glow: 0 0 20px rgba(155, 114, 207, .15);--gradient-logo: linear-gradient(135deg, #cdb4db, #a2d2ff);--reading-bg-primary: #f5f0fa;--reading-bg-surface: #faf7fd;--reading-bg-code: #f0eaf8;--reading-border-subtle: rgba(155, 114, 207, .14);--reading-border-card: rgba(155, 114, 207, .2);--reading-border-active: rgba(155, 114, 207, .44);--reading-accent-glow: rgba(155, 114, 207, .08);--text-on-accent: #ffffff;--text-on-brand: #280e3e}[data-palette=golden-summer-fields]{--bg-primary: #fefae0;--bg-secondary: #faf5d0;--bg-card: #faedcd;--bg-card-hover: #f5e5b8;--bg-surface: #fdf8e8;--bg-code: #f5eccc;--text-primary: #3b2f10;--text-secondary: #6a5020;--text-muted: #86662e;--text-heading: #261e08;--accent-primary: #7f5b22;--accent-secondary: #654a1c;--accent-tertiary: #5d6f36;--accent-glow: rgba(184, 133, 58, .28);--border-subtle: rgba(180, 140, 80, .18);--border-card: rgba(180, 140, 80, .26);--border-active: rgba(184, 133, 58, .5);--gradient-hero: linear-gradient(135deg, #d4a373 0%, #e9edc9 35%, #fefae0 65%, #ccd5ae 100%);--gradient-card: linear-gradient( 145deg, rgba(212, 163, 115, .07) 0%, rgba(204, 213, 174, .04) 100% );--gradient-glow: radial-gradient( 600px circle at var(--mouse-x, 50%) var(--mouse-y, 50%), rgba(212, 163, 115, .04), transparent 40% );--shadow-card: 0 1px 3px rgba(100, 70, 20, .08);--shadow-elevated: 0 4px 16px rgba(100, 70, 20, .1);--shadow-glow: 0 0 20px rgba(212, 163, 115, .12);--gradient-logo: linear-gradient(135deg, #d4a373, #ccd5ae);--reading-bg-primary: #fdf7d8;--reading-bg-surface: #fefae0;--reading-bg-code: #f5eccc;--reading-border-subtle: rgba(180, 140, 80, .14);--reading-border-card: rgba(180, 140, 80, .2);--reading-border-active: rgba(184, 133, 58, .44);--reading-accent-glow: rgba(212, 163, 115, .08);--text-on-accent: #ffffff;--text-on-brand: #261e08}[data-palette=light-steel]{--bg-primary: #f8f9fa;--bg-secondary: #e9ecef;--bg-card: #ffffff;--bg-card-hover: #dee2e6;--bg-surface: #f4f5f7;--bg-code: #e9ecef;--text-primary: #212529;--text-secondary: #495057;--text-muted: #5f6670;--text-heading: #0d1117;--accent-primary: #495057;--accent-secondary: #343a40;--accent-tertiary: #5f6670;--accent-glow: rgba(73, 80, 87, .2);--border-subtle: rgba(73, 80, 87, .12);--border-card: rgba(73, 80, 87, .18);--border-active: rgba(73, 80, 87, .42);--gradient-hero: linear-gradient(135deg, #495057 0%, #6c757d 35%, #adb5bd 65%, #dee2e6 100%);--gradient-card: linear-gradient( 145deg, rgba(73, 80, 87, .05) 0%, rgba(108, 117, 125, .03) 100% );--gradient-glow: radial-gradient( 600px circle at var(--mouse-x, 50%) var(--mouse-y, 50%), rgba(73, 80, 87, .03), transparent 40% );--shadow-card: 0 1px 3px rgba(0, 0, 0, .08);--shadow-elevated: 0 4px 16px rgba(0, 0, 0, .12);--shadow-glow: 0 0 20px rgba(73, 80, 87, .1);--gradient-logo: linear-gradient(135deg, #495057, #adb5bd);--reading-bg-primary: #f0f1f3;--reading-bg-surface: #f8f9fa;--reading-bg-code: #e9ecef;--reading-border-subtle: rgba(73, 80, 87, .1);--reading-border-card: rgba(73, 80, 87, .15);--reading-border-active: rgba(73, 80, 87, .36);--reading-accent-glow: rgba(73, 80, 87, .06);--text-on-accent: #ffffff;--text-on-brand: #0d1117}@media(prefers-reduced-motion:reduce){:root{--motion-duration-active-fast: var(--motion-duration-instant);--motion-duration-active-standard: var(--motion-duration-instant);--motion-duration-active-slow: var(--motion-duration-instant);--motion-duration-active-skeleton: var(--motion-duration-instant);--motion-duration-active-view-transition: var(--motion-duration-instant);--motion-duration-active-card-entrance: var(--motion-duration-instant)}}html{scroll-behavior:smooth;font-size:var(--app-font-size, 1rem)}body{font-family:var(--font-body);background:radial-gradient(circle at 20% -10%,rgba(67,97,238,.14),transparent 38%),var(--bg-primary);color:var(--text-primary);line-height:calc(1.75 * var(--density-scale, 1));letter-spacing:.005em;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;overflow-x:hidden}#root{min-height:100vh;display:flex;flex-direction:column}a{color:var(--accent-tertiary);text-decoration:none;transition:color var(--transition-fast)}a:hover{color:var(--accent-primary)}img{max-width:100%;height:auto}::selection{background:color-mix(in srgb,var(--accent-primary) 34%,transparent);color:var(--text-heading)}:focus-visible{outline:2px solid color-mix(in srgb,var(--accent-primary) 68%,white 32%);outline-offset:2px}.skip-to-content{position:absolute;top:-100%;left:1rem;z-index:10000;padding:.75rem 1.5rem;background:var(--accent-primary);color:var(--text-on-accent);border-radius:var(--radius-md);font-weight:600;font-size:.875rem;transition:top .2s ease}.skip-to-content:focus{top:1rem;color:var(--text-on-accent)}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.page-loader{display:flex;justify-content:center;align-items:center;min-height:40vh}.page-loader-spinner{width:36px;height:36px;border:3px solid var(--border-card);border-top-color:var(--accent-primary);border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:var(--bg-primary)}::-webkit-scrollbar-thumb{background:var(--border-card);border-radius:4px}::-webkit-scrollbar-thumb:hover{background:var(--text-muted)}.app-layout{display:flex;min-height:100vh}.main-content{flex:1;margin-left:var(--sidebar-width);padding-top:var(--navbar-height);width:100%;min-height:100vh;min-width:0;transition:margin-left var(--transition-base)}.main-content>*{min-width:0}.main-content:focus{outline:3px solid var(--accent-primary);outline-offset:4px}.page-container{width:min(100%,var(--content-max-width));margin:0 auto;padding:clamp(2rem,3vw,2.75rem) var(--page-padding) clamp(3rem,5vw,4rem)}.page-container.lesson-with-toc{width:min(100%,calc(var(--content-max-width) + 260px + 2rem))}.lesson-reading-surface{--bg-primary: var(--reading-theme-bg-primary);--bg-surface: var(--reading-theme-bg-surface);--bg-card: var(--reading-theme-bg-card);--bg-card-hover: var(--reading-theme-bg-card-hover);--bg-code: var(--reading-theme-bg-code);--accent-primary: var(--reading-theme-accent-primary);--accent-secondary: var(--reading-theme-accent-secondary);--accent-tertiary: var(--reading-theme-accent-tertiary);--border-subtle: var(--reading-theme-border-subtle);--border-card: var(--reading-theme-border-card);--border-active: var(--reading-theme-border-active);--accent-glow: var(--reading-theme-accent-glow);--gradient-card: none;--gradient-glow: none;--shadow-card: 0 3px 18px rgba(0, 0, 0, .22);--shadow-glow: none}.lesson-reading-surface.page-container{background:var(--bg-primary)}.navbar{position:fixed;top:0;left:var(--sidebar-width);right:0;height:var(--navbar-height);background:color-mix(in srgb,var(--bg-primary) 80%,transparent);backdrop-filter:blur(14px) saturate(1.08);-webkit-backdrop-filter:blur(14px) saturate(1.08);border-bottom:1px solid var(--border-subtle);display:flex;align-items:center;justify-content:space-between;padding:0 2rem;z-index:200;transition:left var(--transition-base)}.navbar-brand{display:flex;align-items:center;gap:.75rem;color:var(--text-heading);font-weight:700;font-size:1.125rem;letter-spacing:-.02em}.navbar-brand:hover{color:var(--text-heading)}.brand-icon{width:32px;height:32px;display:flex;align-items:center;justify-content:center;background:var(--gradient-logo);border-radius:var(--radius-sm);color:var(--text-on-brand);font-size:18px}.brand-icon .material-symbols-outlined{font-size:20px}.navbar-links{display:flex;align-items:center;gap:.25rem}.navbar-links a{padding:.5rem 1rem;border-radius:var(--radius-sm);font-size:.875rem;font-weight:500;color:var(--text-secondary);transition:color var(--transition-fast),background var(--transition-fast),border-color var(--transition-fast)}.navbar-links a:hover{color:var(--text-heading);background:#4361ee0f}.navbar-links a.active{color:var(--text-heading);background:#4361ee1a}.navbar-hamburger{display:none;background:none;border:none;cursor:pointer;padding:.5rem;color:var(--text-secondary)}.navbar-hamburger svg{width:24px;height:24px}.navbar-search-form{display:flex;align-items:center;gap:.35rem;border:1px solid var(--border-subtle);background:#94a3b80f;border-radius:var(--radius-sm);padding:.15rem .35rem .15rem .55rem}.navbar-search-input{border:none;outline:none;background:transparent;color:var(--text-primary);font:inherit;width:180px}.navbar-search-shortcut{font-family:var(--font-mono);font-size:.7rem;color:var(--text-muted);border:1px solid var(--border-subtle);padding:.1rem .35rem;border-radius:3px}@media(max-width:900px){.navbar-search-form{display:none}}.sidebar{position:fixed;top:0;left:0;bottom:0;width:var(--sidebar-width);background:color-mix(in srgb,var(--bg-secondary) 94%,transparent);border-right:1px solid var(--border-subtle);z-index:210;display:flex;flex-direction:column;overflow:hidden;transition:transform var(--transition-base)}.sidebar-header{display:flex;align-items:center;gap:.75rem;padding:1.25rem 1.25rem 1rem;border-bottom:1px solid var(--border-subtle);position:relative}.sidebar-logo{width:36px;height:36px;display:flex;align-items:center;justify-content:center;background:var(--gradient-logo);border-radius:var(--radius-sm);color:var(--text-on-brand);flex-shrink:0;font-size:20px}.sidebar-logo .material-symbols-outlined{font-size:22px}.sidebar-title{font-weight:700;font-size:.9375rem;color:var(--text-heading);line-height:1.3}.sidebar-title small{display:block;font-weight:400;font-size:.6875rem;color:var(--text-muted);margin-top:.125rem}.sidebar-nav{flex:1;overflow-y:auto;padding:.75rem 0 1rem;scrollbar-gutter:stable}.sidebar-close{display:none;position:absolute;top:1rem;right:1rem;background:none;border:none;color:var(--text-secondary);cursor:pointer;padding:.25rem}.phase-group{margin-bottom:2px}.phase-toggle{width:100%;display:flex;align-items:center;gap:.625rem;padding:.625rem 1.25rem;background:none;border:none;cursor:pointer;color:var(--text-secondary);font-family:var(--font-body);font-size:.8125rem;font-weight:500;text-align:left;transition:color var(--transition-fast),background var(--transition-fast)}.phase-toggle:hover{color:var(--text-primary);background:#4361ee0a}.phase-toggle.active{color:var(--text-heading);background:#4361ee0f}.phase-toggle-icon{font-size:1rem;flex-shrink:0}.phase-toggle-label{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.phase-toggle-arrow{font-size:.5rem;transition:transform var(--transition-fast);flex-shrink:0;color:var(--text-muted)}.phase-toggle.open .phase-toggle-arrow{transform:rotate(90deg)}.phase-days{overflow:hidden;padding:.25rem 0}.day-link{display:block;padding:.375rem 1.25rem .375rem 3.25rem;font-size:.8125rem;color:var(--text-muted);text-decoration:none;transition:color var(--transition-fast),background var(--transition-fast),border-color var(--transition-fast);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;border-left:2px solid transparent}.day-link:hover{color:var(--text-primary);background:#4361ee0a}.day-link.active{color:var(--accent-tertiary);background:#4361ee14;border-left-color:var(--accent-primary)}.sidebar-overlay{display:none;position:fixed;inset:0;background:#0009;z-index:190}.sidebar-streak-badge{display:inline-flex;align-items:center;gap:.25rem;padding:.2rem .6rem;background:#f973161f;border:1px solid rgba(249,115,22,.25);border-radius:100px;font-size:.75rem;font-weight:700;color:#f97316;white-space:nowrap;margin-right:.5rem;flex-shrink:0}.search-overlay{position:fixed;inset:0;background:#0009;backdrop-filter:blur(4px);z-index:1000;display:flex;align-items:flex-start;justify-content:center;padding-top:15vh}.search-palette{width:100%;max-width:640px;background:var(--bg-secondary);border:1px solid var(--border-card);border-radius:var(--radius-lg);box-shadow:var(--shadow-elevated);overflow:hidden;display:flex;flex-direction:column;max-height:70vh}.search-input-wrapper{display:flex;align-items:center;gap:.75rem;padding:1rem 1.25rem;border-bottom:1px solid var(--border-subtle)}.search-icon{width:20px;height:20px;color:var(--text-muted);flex-shrink:0}.search-input{flex:1;background:none;border:none;outline:none;font-size:1rem;color:var(--text-primary);font-family:var(--font-body)}.search-input::placeholder{color:var(--text-muted)}.search-kbd{font-family:var(--font-mono);font-size:.7rem;padding:.15rem .4rem;background:#94a3b81a;border:1px solid var(--border-subtle);border-radius:4px;color:var(--text-muted);flex-shrink:0}.search-close-btn{display:flex;align-items:center;justify-content:center;background:none;border:none;color:var(--text-muted);padding:.25rem;margin-left:.25rem;border-radius:var(--radius-sm);cursor:pointer;transition:all var(--transition-fast)}.search-close-btn:hover{background:#94a3b81a;color:var(--text-primary)}.search-close-btn:focus-visible{outline:none;box-shadow:0 0 0 2px var(--accent-primary);background:#94a3b81a}.search-close-btn svg{width:18px;height:18px}.search-results{overflow-y:auto;padding:.5rem}.search-result-item{width:100%;text-align:left;display:block;padding:.75rem 1rem;border-radius:var(--radius-md);background:none;border:none;border-left:3px solid transparent;cursor:pointer;color:var(--text-primary);font-family:var(--font-body);transition:background var(--transition-fast)}.search-result-item:hover,.search-result-item.active{background:#4361ee1a;border-left-color:var(--accent-primary)}.search-result-item:focus-visible{outline:none;box-shadow:inset 0 0 0 2px var(--accent-primary);background:#4361ee1a;border-left-color:var(--accent-primary)}.search-result-header{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap}.search-result-day{font-size:.75rem;font-weight:600;color:var(--accent-primary);white-space:nowrap}.search-result-title{font-weight:600;font-size:.9rem;color:var(--text-heading);flex:1;min-width:0}.search-result-badge{font-size:.65rem;padding:.1rem .4rem;border-radius:4px;font-weight:600;flex-shrink:0}.search-result-snippet{font-size:.8rem;color:var(--text-secondary);margin-top:.25rem;line-height:1.5;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.search-result-tags{display:flex;gap:.35rem;margin-top:.35rem;flex-wrap:wrap}.search-result-tag{font-size:.65rem;padding:.1rem .4rem;background:#94a3b814;border-radius:4px;color:var(--text-muted)}.search-result-tag.matched{background:#4361ee26;color:var(--accent-tertiary)}.search-empty{padding:3rem 1.25rem;display:flex;flex-direction:column;align-items:center;gap:1rem;text-align:center;color:var(--text-muted);font-size:.95rem}.search-empty-icon{width:48px;height:48px;color:var(--border-active);opacity:.8}.search-footer{display:flex;gap:1.25rem;padding:.6rem 1.25rem;border-top:1px solid var(--border-subtle);font-size:.75rem;color:var(--text-muted)}.search-footer kbd{font-family:var(--font-mono);font-size:.65rem;padding:.1rem .3rem;background:#94a3b81a;border:1px solid var(--border-subtle);border-radius:3px;margin-right:.3rem}.search-trigger{display:flex;align-items:center;gap:.5rem;padding:.4rem .75rem;background:#94a3b80f;border:1px solid var(--border-subtle);border-radius:var(--radius-sm);color:var(--text-muted);font-size:.8rem;cursor:pointer;transition:all var(--transition-fast);font-family:var(--font-body)}.search-trigger:hover{background:#4361ee1a;border-color:var(--border-active);color:var(--text-secondary)}.search-trigger svg{width:16px;height:16px}.search-trigger-shortcut{font-family:var(--font-mono);font-size:.65rem;padding:.1rem .35rem;background:#94a3b81a;border:1px solid var(--border-subtle);border-radius:3px}.search-page-form{display:flex;gap:.6rem;align-items:center;flex-wrap:wrap;margin:1rem 0}.search-page-input{flex:1;min-width:0;border:1px solid var(--border-subtle);border-radius:var(--radius-sm);background:var(--bg-card);color:var(--text-primary);padding:.6rem .8rem;font:inherit}.search-page-submit{border:1px solid var(--border-active);background:#4361ee29;color:var(--text-heading);border-radius:var(--radius-sm);padding:.58rem .8rem;font:inherit;cursor:pointer}.search-page-header{margin-bottom:2rem}.search-page-header h1{font-size:1.75rem;color:var(--text-heading);margin-bottom:.5rem}.search-page-summary{color:var(--text-secondary);font-size:.9rem}.search-results-list{display:flex;flex-direction:column;gap:.75rem}.search-result-card{display:block;padding:1.25rem 1.5rem;background:var(--bg-card);border:1px solid var(--border-card);border-radius:var(--radius-md);transition:all var(--transition-fast)}.search-result-card:hover{background:var(--bg-card-hover);border-color:var(--border-active);box-shadow:var(--shadow-glow)}.search-result-card-header{display:flex;align-items:center;gap:.75rem;flex-wrap:wrap;margin-bottom:.5rem}.search-result-card-day{font-size:.8rem;font-weight:700;color:var(--accent-primary)}.search-result-card-title{font-size:1.1rem;font-weight:600;color:var(--text-heading);flex:1;min-width:0}.search-result-card-snippet{font-size:.85rem;color:var(--text-secondary);line-height:1.6;margin-bottom:.5rem}.search-result-card-tags{display:flex;gap:.4rem;flex-wrap:wrap;margin-bottom:.35rem}.search-result-card-phase{font-size:.75rem;color:var(--text-muted)}.search-highlight{background:#4361ee40;color:var(--accent-tertiary);border-radius:2px;padding:0 1px}.search-empty-page{text-align:center;padding:3rem 1rem;color:var(--text-muted)}.search-empty-page p{margin-bottom:.5rem}@media(max-width:640px){.search-overlay{padding-top:5vh;padding-left:1rem;padding-right:1rem}.search-page-form{flex-direction:column;align-items:stretch}.search-page-submit{width:100%}.search-trigger-label,.search-trigger-shortcut{display:none}}.hero{position:relative;overflow:hidden;isolation:isolate;padding:clamp(2.5rem,5vw,4rem) clamp(1rem,3vw,2rem) clamp(2rem,4vw,3rem);text-align:center;margin-bottom:3rem;background:var(--gradient-glow);border-radius:var(--radius-xl);border:1px solid var(--border-subtle)}.hero:before,.hero:after{content:"";position:absolute;inset:-35% -15%;pointer-events:none;z-index:-1;opacity:.4;background-image:radial-gradient(circle at 20% 25%,rgba(67,97,238,.35),transparent 45%),radial-gradient(circle at 78% 20%,rgba(63,55,201,.3),transparent 42%),radial-gradient(circle at 65% 80%,rgba(72,149,239,.28),transparent 46%);animation:heroMeshFloat 16s ease-in-out infinite alternate}.hero:after{opacity:.28;filter:blur(38px);animation-duration:23s;animation-direction:alternate-reverse}@keyframes heroMeshFloat{0%{transform:translate3d(-2%,0,0) scale(1)}to{transform:translate3d(2%,-3%,0) scale(1.06)}}@media(prefers-reduced-motion:reduce){.hero:before,.hero:after{animation:none;transform:none}}.hero-badge{display:inline-flex;align-items:center;flex-wrap:wrap;gap:.5rem;max-width:100%;padding:.375rem 1.25rem;background:#4361ee1f;border:1px solid rgba(67,97,238,.2);border-radius:100px;font-size:.8125rem;font-weight:600;color:var(--accent-tertiary);text-transform:uppercase;letter-spacing:1.5px;margin-bottom:1.5rem}.hero h1{font-size:clamp(2rem,5vw,3.25rem);font-weight:800;line-height:1.15;color:var(--text-heading);margin-bottom:1rem;letter-spacing:-.02em}.hero h1 .gradient-text{background:var(--gradient-hero);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.hero p{font-size:1.125rem;color:var(--text-secondary);max-width:600px;margin:0 auto 2rem;line-height:1.7}.continue-banner{margin:0 auto 1.5rem;max-width:640px;background:var(--bg-card);border:1px solid var(--border-active);border-radius:var(--radius-lg);padding:1rem;text-align:left}.continue-banner-title{margin:0;font-size:.8125rem;font-weight:700;color:var(--accent-tertiary);text-transform:uppercase;letter-spacing:1px}.continue-banner-subtitle{margin:.5rem 0 .875rem;color:var(--text-secondary);font-size:.9375rem;line-height:1.5}.continue-banner-cta{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:.5rem 1rem;border-radius:999px;background:var(--accent-primary);color:var(--text-on-accent);font-weight:600;font-size:.875rem;text-decoration:none}.continue-banner-cta:hover{color:var(--text-on-accent)}.continue-banner-cta:focus-visible{outline:2px solid var(--accent-primary);outline-offset:2px}.hero-stats{display:flex;justify-content:center;gap:clamp(1rem,4vw,2.5rem);flex-wrap:wrap}.hero-stat{text-align:center}.hero-stat .stat-value{display:block;font-size:2rem;font-weight:800;color:var(--text-heading);line-height:1.2}.hero-stat .stat-label{font-size:.8125rem;color:var(--text-muted);text-transform:uppercase;letter-spacing:1px}.hero-cta{margin-top:2rem}.hero-cta a{display:inline-flex;align-items:center;gap:.5rem;padding:.75rem 2rem;background:var(--accent-primary);color:var(--text-on-accent);font-weight:600;font-size:.9375rem;border-radius:100px;transition:all var(--transition-base);box-shadow:0 4px 20px #4361ee4d}.hero-cta a:hover{transform:translateY(-2px);box-shadow:0 8px 30px #4361ee66;color:var(--text-on-accent)}.phases-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,320px),1fr));gap:1.25rem;margin-top:2rem}.phase-card{position:relative;background:var(--bg-card);border:1px solid var(--border-card);border-radius:var(--radius-lg);padding:1.75rem;transition:all var(--transition-base);cursor:pointer;overflow:hidden;text-decoration:none;color:inherit;display:block}.phase-card:before{content:"";position:absolute;top:0;left:0;right:0;height:3px;background:var(--gradient-hero);opacity:0;transition:opacity var(--transition-base)}.phase-card:hover{border-color:var(--border-active);background:var(--bg-card-hover);transform:translateY(-4px);box-shadow:var(--shadow-card)}.phase-card:hover:before{opacity:1}.phase-card-header{display:flex;align-items:flex-start;gap:1rem;margin-bottom:1rem}.phase-card-icon{width:48px;height:48px;display:flex;align-items:center;justify-content:center;font-size:1.5rem;background:#4361ee1a;border-radius:var(--radius-md);flex-shrink:0}.phase-card-title{flex:1}.phase-card-title .phase-num{font-size:.8125rem;color:var(--accent-tertiary);font-weight:600;text-transform:uppercase;letter-spacing:1.5px;margin-bottom:.25rem}.phase-card-title h3{font-size:1.0625rem;font-weight:700;color:var(--text-heading);line-height:1.3}.phase-card-meta{display:flex;gap:1rem;flex-wrap:wrap}.meta-pill{display:inline-flex;align-items:center;gap:.375rem;padding:.25rem .625rem;background:#94a3b814;border:1px solid rgba(148,163,184,.12);border-radius:100px;font-size:.8125rem;color:var(--text-secondary)}.difficulty-badge{display:inline-flex;align-items:center;gap:.25rem;padding:.25rem .75rem;border-radius:100px;font-size:.75rem;font-weight:700;text-transform:uppercase;letter-spacing:.6px}.section-header{margin-bottom:1.5rem}.section-header h2{font-size:1.5rem;font-weight:800;color:var(--text-heading);margin-bottom:.5rem}.section-header p{color:var(--text-secondary);font-size:.9375rem}.hero-with-cards{display:flex;flex-wrap:wrap;gap:2.5rem;align-items:flex-start;text-align:left}.hero-content-col{flex:1;min-width:0}.hero-with-cards .hero-badge{margin-bottom:1.25rem}.hero-with-cards h1{margin:0 0 1rem}.hero-with-cards p{margin:0 0 1.5rem}.hero-with-cards .hero-stats{justify-content:flex-start}.hero-with-cards .hero-cta{margin-top:1.5rem;text-align:left}.hero-with-cards .hero-continue{justify-content:flex-start}.hero-with-cards .continue-banner{flex-basis:100%;max-width:none;margin:1rem 0 0}.hero-cards-col{display:none;position:relative;width:300px;flex-shrink:0;min-height:200px}@media(min-width:900px){.hero-cards-col{display:block}}.hero-float-card{background:color-mix(in srgb,var(--bg-card) 80%,transparent);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border:1px solid var(--border-card);border-radius:var(--radius-lg);padding:1.25rem;box-shadow:var(--shadow-elevated);transition:transform var(--transition-base);position:relative;z-index:1}.hero-float-card:hover{transform:translateY(-3px)}.hero-float-card--behind{position:absolute;right:-1.5rem;top:7rem;width:90%;z-index:0;opacity:.7;transform:scale(.96);pointer-events:none}.hero-float-card-header{display:flex;align-items:center;gap:.75rem;margin-bottom:1rem}.hero-float-card-icon{width:40px;height:40px;display:flex;align-items:center;justify-content:center;font-size:1.25rem;background:#4361ee26;border-radius:var(--radius-md);flex-shrink:0}.hero-float-card-eyebrow{margin:0;font-size:.6875rem;color:var(--text-muted);font-weight:500;text-transform:uppercase;letter-spacing:.5px}.hero-float-card-title{margin:.125rem 0 0;font-size:.9375rem;font-weight:700;color:var(--text-heading)}.hero-float-card-badge{margin-left:auto;padding:.2rem .6rem;border-radius:100px;font-size:.6875rem;font-weight:600;background:#22c55e1a;color:#22c55e;border:1px solid rgba(34,197,94,.2);white-space:nowrap;flex-shrink:0}.hero-float-card-progress-row{display:flex;justify-content:space-between;font-size:.75rem;font-weight:500;color:var(--text-muted);margin-bottom:.5rem}.hero-float-card-bar{height:8px;background:#94a3b81f;border-radius:100px;overflow:hidden}.hero-float-card-bar-fill{height:100%;background:var(--gradient-hero);border-radius:inherit;transition:width var(--transition-slow);min-width:0}.home-stats-bar{display:grid;grid-template-columns:repeat(2,1fr);gap:0;border:1px solid var(--border-subtle);border-radius:var(--radius-lg);background:#4361ee08;margin-bottom:2.5rem;overflow:hidden}@media(min-width:640px){.home-stats-bar{grid-template-columns:repeat(4,1fr)}}.home-stats-bar-item{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.25rem;padding:1.25rem 1rem;border-right:1px solid var(--border-subtle)}.home-stats-bar-item:last-child{border-right:none}@media(min-width:640px){.home-stats-bar-item:nth-child(2){border-right:1px solid var(--border-subtle)}}@media(max-width:639px){.home-stats-bar-item:nth-child(2n){border-right:none}.home-stats-bar-item:nth-child(1),.home-stats-bar-item:nth-child(2){border-bottom:1px solid var(--border-subtle)}}.home-stats-bar-label{margin:0;font-size:.6875rem;font-weight:600;text-transform:uppercase;letter-spacing:1px;color:var(--text-muted)}.home-stats-bar-value{margin:0;font-size:1.75rem;font-weight:800;color:var(--text-heading);line-height:1.1;display:flex;align-items:baseline;gap:.375rem}.home-stats-bar-unit{font-size:.875rem;font-weight:600;color:var(--text-muted)}@media(max-width:640px){.continue-banner{padding:.875rem}.continue-banner-subtitle{font-size:.875rem}.continue-banner-cta{width:100%}}.lesson-header{margin-bottom:1rem;padding-bottom:.75rem;border-bottom:1px solid var(--border-subtle)}.lesson-breadcrumb{display:flex;align-items:center;gap:.5rem;font-size:.8125rem;color:var(--text-muted);margin:0 0 1rem;list-style:none;padding:0}.breadcrumb-item{display:inline-flex;align-items:center;gap:.5rem}.lesson-breadcrumb a{color:var(--text-muted)}.lesson-breadcrumb a:hover{color:var(--accent-tertiary)}.lesson-breadcrumb .sep{color:var(--border-card)}.lesson-day-badge{display:inline-flex;align-items:center;justify-content:center;padding:.375rem .875rem;background:#4361ee1a;border:1px solid rgba(67,97,238,.25);border-radius:var(--radius-sm);color:var(--accent-tertiary);font-weight:700;font-size:.875rem;margin-top:.75rem;letter-spacing:.02em}.lesson-meta-bar{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap;margin-top:.625rem}.lesson-tag{padding:.25rem .625rem;background:#4361ee14;border:1px solid rgba(67,97,238,.18);border-radius:100px;font-size:.75rem;color:var(--accent-tertiary);font-weight:500}.lesson-nav{display:grid;grid-template-columns:1fr 1fr;gap:1rem;margin-top:3rem;padding-top:2rem;border-top:1px solid var(--border-subtle)}.lesson-nav-btn{display:flex;flex-direction:column;gap:.25rem;padding:1rem 1.25rem;background:var(--bg-card);border:1px solid var(--border-card);border-radius:var(--radius-md);text-decoration:none;transition:all var(--transition-fast)}.lesson-nav-btn:hover{border-color:var(--border-active);background:var(--bg-card-hover)}.lesson-nav-btn.next{text-align:right;grid-column:2}.lesson-nav-label{font-size:.6875rem;color:var(--text-muted);text-transform:uppercase;letter-spacing:1px}.lesson-nav-title{font-size:.875rem;font-weight:600;color:var(--text-primary)}.lesson-main-content>article{max-width:72ch}.reading-mode{--shadow-card: none}.reading-mode .lesson-header{border-bottom-color:#94a3b838}.reading-mode .lesson-nav-btn,.reading-mode .toc{box-shadow:none;background:color-mix(in srgb,var(--bg-card) 88%,transparent)}.reading-mode-exit{position:sticky;top:calc(var(--navbar-height) + .5rem);z-index:20;margin:0 0 .75rem auto;display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--border-card);border-radius:999px;padding:.45rem .9rem;background:var(--bg-card);color:var(--text-secondary);font-size:.75rem;font-weight:600;cursor:pointer}.reading-mode-exit:hover{color:var(--text-primary);border-color:var(--border-active)}.reading-muted{opacity:.4;filter:saturate(.55);transition:opacity var(--transition-fast)}@media(max-width:1200px){.reading-mode .lesson-meta-bar{margin-bottom:.75rem}}.phase-header{padding:2rem;background:var(--gradient-card);border:1px solid var(--border-card);border-radius:var(--radius-xl);margin-bottom:2rem}.phase-header-top{display:flex;align-items:center;gap:1rem;margin-bottom:1rem}.phase-header-icon{width:56px;height:56px;display:flex;align-items:center;justify-content:center;font-size:2rem;background:#4361ee1f;border-radius:var(--radius-lg)}.phase-header h1{font-size:1.75rem;font-weight:800;color:var(--text-heading);line-height:1.2}.phase-lessons-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:1rem;margin:2rem 0}.day-card{display:flex;align-items:center;gap:1rem;padding:1rem 1.25rem;background:var(--bg-card);border:1px solid var(--border-card);border-radius:var(--radius-md);text-decoration:none;color:inherit;transition:all var(--transition-fast)}.day-card:hover{border-color:var(--border-active);background:var(--bg-card-hover);transform:translateY(-2px)}.day-card-num{width:40px;height:40px;display:flex;align-items:center;justify-content:center;background:#4361ee1a;border-radius:var(--radius-sm);font-weight:700;font-size:.875rem;color:var(--accent-tertiary);flex-shrink:0}.day-card-info h4{font-size:.875rem;font-weight:600;color:var(--text-primary);line-height:1.3}.day-card-info span{font-size:.75rem;color:var(--text-muted)}.curriculum-stats-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:1rem;margin-bottom:2.5rem}.curriculum-stat-card{border-radius:var(--radius-lg);padding:1.25rem 1.5rem;display:flex;flex-direction:column;gap:.5rem;position:relative;overflow:hidden;transition:transform var(--transition-base)}.curriculum-stat-card:hover{transform:translateY(-3px)}.curriculum-stat-icon{font-size:1.25rem;margin-bottom:.25rem}.curriculum-stat-value{font-size:2rem;font-weight:800;color:var(--text-heading);line-height:1.1;margin:0}.curriculum-stat-label{font-size:.8125rem;font-weight:500;color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px;margin:0}.curriculum-stat-bar{height:6px;background:#94a3b81f;border-radius:100px;overflow:hidden;margin-top:.5rem}.curriculum-stat-bar-fill{height:100%;background:var(--gradient-hero);border-radius:inherit;transition:width var(--transition-slow);min-width:0}.curriculum-stat-bar-fill--blue{background:linear-gradient(90deg,#3b82f6,#60a5fa)}.curriculum-stat-bar-fill--purple{background:linear-gradient(90deg,#8b5cf6,#a78bfa)}.curriculum-stat-note{font-size:.75rem;color:var(--text-muted);margin:0}.curriculum-timeline{position:relative;padding-left:2rem;--timeline-scale: 1}.curriculum-timeline:before{content:"";position:absolute;left:0;top:0;bottom:0;width:2px;background:linear-gradient(to bottom,var(--accent-primary),var(--accent-secondary),var(--accent-tertiary));border-radius:1px;transform-origin:top;transform:scaleY(var(--timeline-scale))}.curriculum-phase{position:relative;margin-bottom:2.5rem;border-radius:var(--radius-lg);padding:1rem 1rem .875rem}.curriculum-phase:before{content:"";position:absolute;left:-2rem;top:.75rem;width:12px;height:12px;background:var(--accent-primary);border-radius:50%;border:2px solid var(--bg-primary);transform:translate(-5px)}.curriculum-phase-header{display:flex;align-items:center;gap:.75rem;margin-bottom:.75rem;cursor:pointer;flex-wrap:wrap}.curriculum-phase-status{padding:.2rem .6rem;border-radius:100px;font-size:.6875rem;font-weight:700;white-space:nowrap;flex-shrink:0}.curriculum-phase-status--done{background:#22c55e1a;color:#22c55e;border:1px solid rgba(34,197,94,.2)}.curriculum-phase-status--active{background:#4361ee1a;color:var(--accent-primary);border:1px solid rgba(67,97,238,.2)}.curriculum-phase--complete{border-color:#22c55e33!important}.curriculum-phase-header h3{font-size:1.0625rem;font-weight:700;color:var(--text-heading)}.curriculum-days{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:.5rem;padding-left:.5rem}.curriculum-day-link{display:flex;align-items:center;gap:.5rem;padding:.5rem .75rem;border-radius:var(--radius-sm);font-size:.8125rem;color:var(--text-secondary);text-decoration:none;transition:all var(--transition-fast)}.curriculum-day-link:hover{background:#4361ee0f;color:var(--text-primary);transform:translateY(-1px) scale(1.01);box-shadow:0 6px 16px #0000002e}.curriculum-day-link .day-num{font-weight:700;color:var(--accent-tertiary);min-width:2.5rem}.progress-mobile-stats-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:.75rem;margin-bottom:1.5rem}@media(min-width:640px){.progress-mobile-stats-grid{grid-template-columns:repeat(4,1fr)}}.progress-mobile-stat-card{border-radius:var(--radius-lg);padding:1rem;display:flex;flex-direction:column;gap:.375rem;position:relative;overflow:hidden;transition:transform var(--transition-base)}.progress-mobile-stat-card:hover{transform:translateY(-2px)}.progress-mobile-stat-icon{font-size:1.25rem}.progress-mobile-stat-value{font-size:1.5rem;font-weight:800;color:var(--text-heading);line-height:1.1;margin:0}.progress-mobile-stat-label{font-size:.6875rem;font-weight:500;color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px;margin:0}.progress-bar-wrapper{display:flex;align-items:center;gap:.75rem;width:100%}.progress-bar-track{flex:1;height:8px;background:#94a3b81a;border-radius:100px;overflow:hidden}.progress-bar-fill{height:100%;background:var(--gradient-hero);border-radius:100px;transition:width var(--transition-slow);min-width:0}.progress-bar-label{font-size:.75rem;color:var(--text-muted);white-space:nowrap;font-weight:500}.lesson-complete-btn{display:inline-flex;align-items:center;gap:.5rem;padding:.5rem 1.25rem;background:var(--bg-card);border:1px solid var(--border-card);border-radius:100px;color:var(--text-secondary);font-family:var(--font-body);font-size:.8125rem;font-weight:600;cursor:pointer;transition:all var(--transition-fast)}.lesson-complete-btn:hover{border-color:var(--border-active);color:var(--text-primary);background:var(--bg-card-hover)}.lesson-complete-btn.completed{background:#22c55e1a;border-color:#22c55e4d;color:#22c55e}.lesson-complete-btn.completed:hover{background:#22c55e26}.progress-stats-card{display:flex;justify-content:center;gap:2.5rem;flex-wrap:wrap;padding:2rem;background:var(--gradient-card);border:1px solid var(--border-card);border-radius:var(--radius-xl);margin-bottom:1.5rem}.progress-stat-big{text-align:center}.progress-stat-value{display:block;font-size:2.25rem;font-weight:800;color:var(--text-heading);line-height:1.2}.progress-stat-label{font-size:.75rem;color:var(--text-muted);text-transform:uppercase;letter-spacing:1px}.progress-heatmap{display:flex;flex-direction:column;gap:.5rem}.heatmap-phase{display:flex;align-items:center;gap:.75rem}.heatmap-phase-label{display:flex;align-items:center;gap:.375rem;min-width:3.5rem;font-size:.75rem;font-weight:600;color:var(--text-muted);white-space:nowrap}.heatmap-cells{display:flex;gap:3px;flex-wrap:wrap}.heatmap-cell{width:20px;height:20px;border-radius:3px;background:#94a3b814;border:1px solid rgba(148,163,184,.1);transition:all var(--transition-fast);cursor:pointer;display:block}.heatmap-cell:hover{border-color:var(--border-active);transform:scale(1.2)}.heatmap-cell.done{background:#4361ee99;border-color:#4361eecc}.heatmap-cell.done:hover{background:#4361eecc}.progress-phases-list{display:flex;flex-direction:column;gap:.75rem}.progress-phase-row{display:flex;align-items:center;gap:1.25rem;padding:1rem 1.25rem;background:var(--bg-card);border:1px solid var(--border-card);border-radius:var(--radius-md);text-decoration:none;color:inherit;transition:all var(--transition-fast)}.progress-phase-row:hover{border-color:var(--border-active);background:var(--bg-card-hover)}.progress-phase-info{display:flex;align-items:center;gap:.75rem;min-width:260px}.progress-phase-icon{font-size:1.25rem;flex-shrink:0}.progress-phase-name{font-size:.875rem;font-weight:600;color:var(--text-primary)}.hero-continue{margin-top:1rem;display:flex;justify-content:center;gap:1rem;flex-wrap:wrap}.hero-continue a{display:inline-flex;align-items:center;gap:.5rem;padding:.5rem 1.5rem;background:var(--bg-card);border:1px solid var(--border-active);color:var(--accent-tertiary);font-weight:600;font-size:.875rem;border-radius:100px;transition:all var(--transition-base)}.hero-continue a:hover{background:#4361ee1a;color:var(--accent-primary)}.progress-clear-btn{padding:.5rem 1.5rem;background:none;border:1px solid rgba(239,68,68,.3);border-radius:100px;color:#ef4444;font-family:var(--font-body);font-size:.8125rem;font-weight:600;cursor:pointer;transition:all var(--transition-fast)}.progress-clear-btn:hover{background:#ef44441a;border-color:#ef444480}.day-link-check{margin-left:auto;color:#22c55e;font-size:.75rem;flex-shrink:0}.phase-toggle-progress{font-size:.625rem;color:var(--text-muted);margin-left:auto;margin-right:.25rem;white-space:nowrap}.phase-card-progress{margin-top:.75rem}@media(max-width:640px){.progress-stats-card{gap:1.5rem;padding:1.25rem}.progress-stat-value{font-size:1.75rem}.progress-phase-row{flex-direction:column;align-items:flex-start}.progress-phase-info{min-width:auto}.heatmap-cell{width:16px;height:16px}}.preferences-card{margin-top:2.5rem;padding:1.25rem;border:1px solid var(--border-card);border-radius:var(--radius-lg);background:var(--bg-card)}.preferences-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:calc(1rem * var(--density-scale))}.preferences-field--palette{grid-column:1 / -1}.palette-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:.5rem;margin-top:.25rem}.palette-swatch-btn{display:flex;flex-direction:column;gap:.35rem;background:var(--bg-surface);border:2px solid var(--border-card);border-radius:var(--radius-md);padding:.5rem .6rem;cursor:pointer;transition:border-color var(--transition-fast),box-shadow var(--transition-fast);text-align:left}.palette-swatch-btn:hover{border-color:var(--accent-primary)}.palette-swatch-btn--active{border-color:var(--accent-primary);box-shadow:0 0 0 2px var(--accent-glow)}.palette-swatch-strip{display:flex;height:18px;border-radius:var(--radius-sm);overflow:hidden;width:100%}.palette-swatch-color{flex:1}.palette-swatch-name{font-size:.78rem;color:var(--text-secondary);font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.preferences-field{display:flex;flex-direction:column;gap:.45rem;font-size:.875rem;color:var(--text-secondary)}.preferences-field select{border:1px solid var(--border-card);border-radius:var(--radius-sm);background:var(--bg-surface);color:var(--text-primary);font:inherit;padding:.45rem .6rem}.preferences-field select:focus,.preferences-field input:focus{outline:2px solid var(--accent-primary);outline-offset:2px}.preferences-toggle-row{display:inline-flex;align-items:center;gap:.5rem;color:var(--text-primary)}.preferences-toggle small{color:var(--text-muted)}.learning-analytics-card{margin-top:2rem;padding:1.25rem;border:1px solid var(--border-card);border-radius:var(--radius-lg);background:var(--bg-card)}.learning-analytics-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:.75rem}.learning-analytics-chart{width:100%;margin-top:1rem}.learning-analytics-bar{fill:#4361eea6}.learning-analytics-label{font-size:.625rem;fill:var(--text-muted)}.gamification-card{margin-top:2rem;padding:1.25rem;border:1px solid var(--border-card);border-radius:var(--radius-lg);background:var(--bg-card)}.gamification-summary-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:1rem}.xp-milestone-track{width:100%;margin:1rem 0;height:10px;border-radius:100px;background:#94a3b826;overflow:hidden}.xp-milestone-fill{height:100%;background:var(--gradient-hero);border-radius:inherit;transition:width var(--transition-base)}.daily-challenge-card{margin-top:1rem;padding:.875rem;border-radius:var(--radius-md);border:1px solid var(--border-card);background:var(--bg-elevated);display:flex;align-items:center;justify-content:space-between;gap:1rem}.badge-grid{margin-top:1rem;display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:.75rem}.badge-chip{border:1px solid var(--border-card);background:var(--bg-surface);border-radius:var(--radius-md);padding:.6rem .75rem;display:flex;align-items:center;gap:.5rem;font-size:.875rem}.markdown-body{line-height:1.85;color:var(--text-primary);max-width:var(--reading-max-width);font-size:clamp(1rem,.97rem + .2vw,1.08rem)}.markdown-body>*:first-child{margin-top:0}.markdown-body h1{font-size:clamp(1.9rem,1.55rem + 1.2vw,2.35rem);font-weight:800;color:var(--text-heading);margin:1.2rem 0 1rem;line-height:1.2;letter-spacing:-.02em}.markdown-body h2{font-size:clamp(1.35rem,1.2rem + .7vw,1.72rem);font-weight:700;color:var(--text-heading);margin:2.5rem 0 1rem;padding-bottom:.5rem;border-bottom:1px solid var(--border-subtle)}.markdown-body h3{font-size:clamp(1.18rem,1.08rem + .45vw,1.35rem);font-weight:600;color:var(--text-heading);margin:2rem 0 .75rem}.markdown-body h4{font-size:1.0625rem;font-weight:600;color:var(--text-heading);margin:1.5rem 0 .5rem}.markdown-body p{margin-bottom:1.1rem;color:color-mix(in srgb,var(--text-primary) 94%,white 6%)}.markdown-body ul,.markdown-body ol{padding-left:1.5rem;margin-bottom:1.2rem}.markdown-body li{margin-bottom:.45rem}.markdown-body li>ul,.markdown-body li>ol{margin-top:.375rem;margin-bottom:0}.markdown-body strong{font-weight:600;color:var(--text-heading)}.markdown-body em{color:var(--text-secondary)}.markdown-body blockquote{border-left:3px solid var(--accent-primary);padding:.9rem 1.25rem;margin:1.4rem 0;background:color-mix(in srgb,var(--accent-primary) 9%,transparent);border-radius:0 var(--radius-sm) var(--radius-sm) 0;color:var(--text-secondary)}.markdown-body blockquote em{color:var(--text-secondary)}.markdown-body hr{border:none;border-top:1px solid var(--border-subtle);margin:2rem 0}.markdown-body code:not(pre code){font-family:var(--font-mono);font-size:.85em;padding:.15em .4em;background:var(--bg-code);border:1px solid var(--border-card);border-radius:4px;color:var(--accent-tertiary);overflow-wrap:anywhere;word-break:break-word}.markdown-body pre{margin:1.25rem 0;max-width:100%;overflow-x:auto;padding:1rem;border-radius:var(--radius-md);border:1px solid var(--border-card);background:var(--bg-code);white-space:pre-wrap;overflow-wrap:anywhere;word-break:break-word}.markdown-body pre code,.markdown-body pre code *{white-space:inherit;overflow-wrap:inherit;word-break:inherit}.markdown-body .code-block--wrapped{margin:1.25rem 0;max-width:100%;border-radius:var(--radius-md);overflow:hidden;border:1px solid var(--border-card);background:var(--bg-code)}.code-block-header{display:flex;align-items:center;justify-content:space-between;padding:.5rem 1rem;background:#0003;border-bottom:1px solid var(--border-subtle)}.code-block-lang{font-family:var(--font-mono);font-size:.8125rem;color:var(--text-muted);text-transform:uppercase;letter-spacing:.08em}.code-block-copy{background:none;border:1px solid var(--border-card);border-radius:var(--radius-sm);color:var(--text-muted);cursor:pointer;font-size:.8125rem;padding:.25rem .5rem;font-family:var(--font-body);transition:all var(--transition-fast)}.code-block-copy:hover{background:#4361ee1a;color:var(--text-primary);border-color:var(--border-active)}.markdown-body .code-block--wrapped pre{margin:0!important;max-width:100%;padding:1rem!important;background:transparent!important;border:none!important;border-radius:0!important;overflow-x:visible;white-space:pre-wrap;overflow-wrap:anywhere}.markdown-body .code-block--wrapped pre code{font-family:var(--font-mono)!important;font-size:.875rem!important;line-height:1.75!important;white-space:inherit!important;overflow-wrap:anywhere!important;word-break:break-word!important}.markdown-body .code-block--wrapped pre code *{white-space:inherit!important;overflow-wrap:inherit!important;word-break:inherit!important}.markdown-body .code-block--wrapped code[class*=language-]{white-space:pre-wrap!important;overflow-wrap:anywhere!important;word-break:break-word!important}.markdown-body .code-block--wrapped code[class*=language-] *{white-space:inherit!important;overflow-wrap:inherit!important;word-break:inherit!important}@media(max-width:640px){.markdown-body .code-block--wrapped pre{white-space:pre-wrap!important;overflow-wrap:anywhere!important;word-break:break-word!important}.markdown-body .code-block--wrapped pre code{white-space:pre-wrap!important;overflow-wrap:anywhere!important;word-break:break-word!important;font-size:.8125rem!important;line-height:1.6!important}}.markdown-body .table-wrapper{overflow-x:auto;margin:1.25rem 0;max-width:100%;border-radius:var(--radius-md);border:1px solid var(--border-card)}.markdown-body table{width:100%;border-collapse:collapse;font-size:.9rem}.markdown-body thead th,.markdown-body tbody td{line-height:1.5}.markdown-body thead th{background:#4361ee14;padding:.75rem 1rem;text-align:left;font-weight:600;color:var(--text-heading);border-bottom:1px solid var(--border-card);white-space:nowrap}.markdown-body tbody td{padding:.625rem 1rem;border-bottom:1px solid var(--border-subtle);color:var(--text-secondary)}.markdown-body tbody tr:last-child td{border-bottom:none}.markdown-body tbody tr:hover{background:#4361ee08}.markdown-body details{margin:1rem 0;padding:0;border:1px solid var(--border-card);border-radius:var(--radius-md);overflow:hidden}.markdown-body details summary{padding:.75rem 1.25rem;background:#4361ee0f;cursor:pointer;font-weight:600;color:var(--accent-tertiary);transition:background var(--transition-fast);list-style:none;display:flex;align-items:center;gap:.5rem}.markdown-body details summary::-webkit-details-marker{display:none}.markdown-body details summary:before{content:"▶";font-size:.625rem;transition:transform var(--transition-fast)}.markdown-body details[open] summary:before{transform:rotate(90deg)}.markdown-body details summary:hover{background:#4361ee1a}.markdown-body details>*:not(summary){padding:0 1.25rem}.markdown-body details>p:last-child{padding-bottom:1rem}.markdown-body input[type=checkbox]{appearance:none;width:1rem;height:1rem;border:2px solid var(--border-card);border-radius:3px;margin-right:.375rem;vertical-align:middle;position:relative}.markdown-body input[type=checkbox]:checked{background:var(--accent-primary);border-color:var(--accent-primary)}.markdown-body input[type=checkbox]:checked:after{content:"✓";position:absolute;top:-2px;left:1px;font-size:.75rem;color:#fff}.markdown-body :is(h1,h2,h3,h4){scroll-margin-top:calc(var(--navbar-height) + 1.25rem)}@media(max-width:900px){.markdown-body{max-width:100%;font-size:clamp(.98rem,.94rem + .28vw,1.03rem)}}.lesson-reading-surface .markdown-body{line-height:1.92;font-size:clamp(1.02rem,.99rem + .2vw,1.1rem)}.lesson-reading-surface .markdown-body p{margin-bottom:1.2rem;color:color-mix(in srgb,var(--text-primary) 96%,white 4%)}.lesson-reading-surface .markdown-body h2{margin-top:2.65rem;border-bottom-color:color-mix(in srgb,var(--border-subtle) 84%,transparent)}.lesson-reading-surface .markdown-body blockquote{border-left-color:color-mix(in srgb,var(--accent-primary) 72%,var(--border-subtle) 28%);background:color-mix(in srgb,var(--accent-primary) 6%,transparent);color:color-mix(in srgb,var(--text-secondary) 94%,white 6%)}.lesson-reading-surface .markdown-body code:not(pre code){border-color:color-mix(in srgb,var(--border-card) 88%,transparent);color:color-mix(in srgb,var(--accent-tertiary) 88%,var(--text-primary) 12%)}.lesson-reading-surface .markdown-body .code-block--wrapped,.lesson-reading-surface .markdown-body .table-wrapper,.lesson-reading-surface .markdown-body details{border-color:color-mix(in srgb,var(--border-card) 84%,transparent);box-shadow:none}.lesson-reading-surface .markdown-body thead th{background:color-mix(in srgb,var(--accent-primary) 5%,transparent);border-bottom-color:color-mix(in srgb,var(--border-card) 88%,transparent)}.lesson-reading-surface .markdown-body tbody tr:hover{background:transparent}.lesson-reading-surface .markdown-body details summary{background:color-mix(in srgb,var(--accent-primary) 4%,transparent)}.lesson-reading-surface .markdown-body details summary:hover{background:color-mix(in srgb,var(--accent-primary) 6%,transparent)}.python-runner{margin-top:.5rem;display:flex;flex-wrap:wrap;align-items:flex-start;gap:.5rem}.python-runner__btn{display:inline-flex;align-items:center;gap:.4rem;padding:.35rem .9rem;font-size:.875rem;font-weight:600;font-family:var(--font-body);color:#fff;background:linear-gradient(135deg,#22c55e,#16a34a);border:none;border-radius:var(--radius-sm);cursor:pointer;transition:all var(--motion-duration-active-fast) var(--motion-easing-standard)}.python-runner__btn:hover:not(:disabled){box-shadow:0 2px 10px #22c55e4d}.python-runner__btn:active:not(:disabled),.code-playground__btn:active,.exercise-widget__solution-btn:active,.code-block-copy:active{transform:scale(.97)}.python-runner__btn:disabled{opacity:.7;cursor:not-allowed}.python-runner__shortcut{font-family:var(--font-mono);font-size:.65rem;padding:.1rem .35rem;background:#0003;border-radius:3px;opacity:.9}.python-runner__icon{display:block}.python-runner__spinner{display:inline-block;width:12px;height:12px;border:2px solid rgba(255,255,255,.3);border-top-color:#fff;border-radius:50%;animation:pySpinner .6s linear infinite}@keyframes pySpinner{to{transform:rotate(360deg)}}.python-runner__output{width:100%;border:1px solid var(--border-subtle);border-radius:var(--radius-sm);overflow:hidden;background:var(--bg-code)}.python-runner__output-header{padding:.25rem .6rem;font-size:.625rem;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--text-muted);border-bottom:1px solid var(--border-subtle);background:#0000001f}.python-runner__stdout,.python-runner__error{margin:0;padding:.5rem .6rem;font-family:var(--font-mono);font-size:.8125rem;line-height:1.5;white-space:pre-wrap;word-break:break-word}.python-runner__stdout{color:#a7f3d0}.python-runner__stdout--empty{color:var(--text-muted);font-style:italic}.python-runner__error{color:#fca5a5;background:#ef44440f}.code-playground{margin:.75rem 0;border:1px solid var(--border-card);border-radius:var(--radius-md);overflow:hidden;background:var(--bg-card)}.code-playground__toolbar{display:flex;align-items:center;justify-content:space-between;padding:.35rem .6rem;background:#00000026;border-bottom:1px solid var(--border-subtle)}.code-playground__label{font-size:.6875rem;font-weight:700;color:var(--text-muted);text-transform:uppercase;letter-spacing:.06em}.code-playground__actions{display:flex;gap:.35rem}.code-playground__btn{padding:.2rem .5rem;font-size:.8125rem;font-family:var(--font-body);font-weight:600;color:var(--text-muted);background:transparent;border:1px solid var(--border-subtle);border-radius:4px;cursor:pointer;transition:all var(--motion-duration-active-fast) var(--motion-easing-standard)}.code-playground__btn:hover{color:var(--text-primary);background:#ffffff0f}.code-playground__btn--confirm{color:#fca5a5!important;border-color:#ef444480!important;background:#ef44441a!important}.code-playground__btn--confirm:hover{color:#fecaca!important;background:#ef444433!important;border-color:#ef4444b3!important}.code-playground__editor-area{position:relative;min-height:60px}.code-playground__highlight{position:absolute;inset:0;overflow:hidden;pointer-events:none;background:var(--bg-code)}.code-playground__textarea{position:relative;display:block;width:100%;min-height:60px;padding:.6rem .75rem;font-family:var(--font-mono);font-size:.875rem;line-height:1.6;color:transparent;caret-color:var(--text-primary);background:transparent;border:none;resize:vertical;outline:none;tab-size:4;z-index:1}.code-playground__textarea:focus{box-shadow:inset 0 0 0 1px var(--accent-primary)}.code-playground__preview{background:var(--bg-code)}.code-playground .python-runner{padding:.4rem .6rem}.code-playground__expected{border-top:1px solid var(--border-subtle)}.code-playground__expected-header{padding:.25rem .6rem;font-size:.625rem;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--accent-tertiary);background:#4361ee0a;border-bottom:1px solid var(--border-subtle)}.code-playground__expected-body{margin:0;padding:.5rem .6rem;font-family:var(--font-mono);font-size:.75rem;line-height:1.5;color:var(--text-secondary);white-space:pre-wrap}.exercise-widget{margin:1rem 0;border:1px solid rgba(67,97,238,.15);border-radius:var(--radius-md);overflow:hidden;background:#4361ee08}.exercise-widget__header{display:flex;align-items:center;gap:.4rem;padding:.5rem .75rem;background:#4361ee0f;border-bottom:1px solid rgba(67,97,238,.08)}.exercise-widget__icon{font-size:1rem}.exercise-widget__title{margin:0;font-size:.8125rem;font-weight:700;color:var(--text-heading)}.exercise-widget__goal{padding:.5rem .75rem 0;font-size:.8125rem;color:var(--text-secondary);line-height:1.4}.exercise-widget__instructions{padding:.25rem .75rem .5rem;font-size:.75rem;color:var(--text-muted);line-height:1.5}.exercise-widget__instructions p{margin:.15rem 0}.exercise-widget .code-playground{margin:0;border:none;border-top:1px solid var(--border-subtle);border-radius:0}.exercise-widget__quiz-stats{display:flex;flex-direction:column;gap:.2rem;padding:.45rem .75rem;font-size:.7rem;color:var(--text-muted);border-top:1px solid var(--border-subtle)}.exercise-widget__solution{padding:.5rem .75rem;border-top:1px solid var(--border-subtle)}.exercise-widget__solution-btn{display:inline-flex;align-items:center;gap:.3rem;padding:.3rem .6rem;font-size:.75rem;font-family:var(--font-body);font-weight:600;color:var(--accent-tertiary);background:#a78bfa0f;border:1px solid rgba(167,139,250,.15);border-radius:4px;cursor:pointer;transition:all var(--motion-duration-active-fast) var(--motion-easing-standard)}.exercise-widget__solution-btn:hover{background:#a78bfa1f}.exercise-widget__solution-panel{overflow:hidden;margin-top:.5rem}.mastery-check{margin:.75rem 0;border:1px solid rgba(245,158,11,.15);border-radius:var(--radius-md);overflow:hidden;background:#f59e0b05;transition:border-color var(--motion-duration-active-standard) var(--motion-easing-standard)}.mastery-check--revealed{border-color:#22c55e33}.mastery-check__header{display:flex;align-items:center;gap:.5rem;padding:.5rem .75rem;background:#f59e0b0a;border-bottom:1px solid rgba(245,158,11,.08)}.mastery-check__badge{display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;font-size:.625rem;font-weight:800;color:#fbbf24;background:#fbbf241a;border:1px solid rgba(251,191,36,.2);border-radius:50%}.mastery-check__title{margin:0;font-size:.8125rem;font-weight:700;color:var(--text-heading)}.mastery-check__question{padding:.5rem .75rem;font-size:.8125rem;color:var(--text-primary);line-height:1.5}.mastery-check__question p{margin:.15rem 0}.mastery-check__playground{padding:0 .75rem .25rem}.mastery-check__playground .code-playground{margin:0}.mastery-check__check-btn{display:inline-block;margin:.25rem .75rem .5rem;padding:.35rem .9rem;font-size:.75rem;font-family:var(--font-body);font-weight:700;color:#fff;background:linear-gradient(135deg,#f59e0b,#d97706);border:none;border-radius:var(--radius-sm);cursor:pointer;transition:all var(--motion-duration-active-fast) var(--motion-easing-standard)}.mastery-check__check-btn:hover{box-shadow:0 2px 10px #f59e0b40}.mastery-check__check-btn--revealed{background:linear-gradient(135deg,#22c55e,#16a34a)}.mastery-check__check-btn--revealed:hover{box-shadow:0 2px 10px #22c55e40}.mastery-check__answer{border-top:1px solid rgba(34,197,94,.1);animation:fadeSlideIn var(--motion-duration-active-fast) ease-out}.mastery-check__answer-label{padding:.25rem .75rem;font-size:.625rem;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:#22c55e;background:#22c55e0a;border-bottom:1px solid rgba(34,197,94,.08)}.mastery-check__answer-body{padding:.5rem .75rem;font-size:.8125rem;color:var(--text-primary);line-height:1.5}.mastery-check__answer-body p{margin:.15rem 0}.code-block-try-btn{padding:.2rem .5rem;font-size:.625rem;font-weight:700;font-family:var(--font-body);color:#22c55e;background:#22c55e14;border:1px solid rgba(34,197,94,.2);border-radius:4px;cursor:pointer;transition:all var(--motion-duration-active-fast) var(--motion-easing-standard);text-transform:uppercase;letter-spacing:.04em}.code-block-try-btn:hover{background:#22c55e26;border-color:#22c55e59}.code-block-inline-playground{border-top:1px solid var(--border-subtle);animation:fadeSlideIn var(--motion-duration-active-fast) ease-out}.code-block-inline-playground .code-playground{margin:0;border:none;border-radius:0}@keyframes fadeSlideIn{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}@media(max-width:768px){.code-playground__toolbar{flex-direction:column;gap:.3rem;align-items:flex-start}}@media(prefers-reduced-motion:reduce){.mastery-check__answer,.code-block-inline-playground{animation:none!important}.python-runner__btn,.code-playground__btn,.exercise-widget__solution-btn,.mastery-check,.mastery-check__check-btn,.code-block-try-btn{transition:none!important}}.exercises-notebooks{margin-bottom:1.5rem;padding:1.25rem;border:1px solid var(--border-card);border-radius:var(--radius-lg);background:var(--gradient-card)}.exercises-notebooks__title{margin:0 0 .75rem;font-size:1rem;font-weight:700;color:var(--text-heading)}.exercises-notebooks__grid{display:flex;flex-wrap:wrap;gap:.5rem}.exercises-notebook-link{display:inline-flex;align-items:center;gap:.35rem;padding:.4rem .85rem;font-size:.8125rem;font-weight:600;color:var(--accent-tertiary);background:#a78bfa14;border:1px solid rgba(167,139,250,.18);border-radius:var(--radius-sm);text-decoration:none;transition:all var(--transition-fast)}.exercises-notebook-link:hover{background:#a78bfa29;border-color:#a78bfa59;transform:translateY(-1px)}.exercises-low-scoring{margin-bottom:1rem;padding:.9rem 1rem;border:1px solid var(--border-card);border-radius:var(--radius-md);background:#f59e0b0f}.exercises-low-scoring h3{margin:0 0 .35rem;font-size:.9rem}.exercises-low-scoring p{margin:0 0 .5rem;font-size:.8rem;color:var(--text-secondary)}.exercises-low-scoring ul{margin:0;padding-left:1rem;font-size:.8rem;color:var(--text-secondary)}.exercises-filters{display:flex;flex-wrap:wrap;gap:.75rem;margin-bottom:1rem}.exercises-filter-group{display:flex;flex-direction:column;gap:.25rem}.exercises-filter-group label{font-size:.6875rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted)}.exercises-filter-group select,.exercises-filter-group input{padding:.45rem .75rem;font-size:.8125rem;font-family:var(--font-body);color:var(--text-primary);background:var(--bg-card);border:1px solid var(--border-card);border-radius:var(--radius-sm);outline:none;transition:border-color var(--transition-fast)}.exercises-filter-group select:focus,.exercises-filter-group input:focus{border-color:var(--accent-primary);box-shadow:0 0 0 2px var(--accent-glow)}.exercises-filter-search{flex:1;min-width:180px}.exercises-filter-search input{width:100%}.exercises-count{font-size:.8125rem;color:var(--text-muted);margin-bottom:1rem}.exercises-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:1rem}.exercise-card{display:flex;flex-direction:column;padding:1rem 1.125rem;border:1px solid var(--border-card);border-radius:var(--radius-md);background:var(--bg-card);transition:all var(--transition-base)}.exercise-card:hover{border-color:var(--border-active);background:var(--bg-card-hover);box-shadow:var(--shadow-card);transform:translateY(-2px)}.exercise-card__header{display:flex;align-items:center;justify-content:space-between;gap:.5rem;margin-bottom:.5rem}.exercise-card__phase{font-size:.75rem;font-weight:600;color:var(--text-muted)}.exercise-card__title{margin:0 0 .35rem;font-size:.9375rem;font-weight:700;color:var(--text-heading);line-height:1.3}.exercise-card__goal{margin:0 0 .75rem;font-size:.8125rem;color:var(--text-secondary);line-height:1.45;flex:1}.exercise-card__footer{margin-top:auto}.exercise-card__link{font-size:.8125rem;font-weight:600;color:var(--accent-primary);text-decoration:none;transition:color var(--transition-fast)}.exercise-card__link:hover{color:var(--accent-tertiary)}.exercises-empty{text-align:center;padding:3rem 1rem;color:var(--text-muted);font-size:.9375rem}.nb-container{display:flex;flex-direction:column;gap:0}.nb-cell{border:1px solid var(--border-card);border-radius:var(--radius-md);overflow:hidden;margin-bottom:.75rem}.nb-cell--markdown{background:transparent;border-color:transparent}.nb-cell--markdown .markdown-body{padding:0}.nb-cell--code{background:var(--bg-card)}.nb-cell__header{display:flex;align-items:center;gap:.5rem;padding:.35rem .75rem;background:#00000026;border-bottom:1px solid var(--border-subtle)}.nb-cell__badge{font-size:.625rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--accent-tertiary);padding:.1rem .45rem;border:1px solid rgba(167,139,250,.2);border-radius:3px;background:#a78bfa0f}.nb-cell__exec{font-size:.6875rem;font-family:var(--font-mono);color:var(--text-muted)}.nb-cell__code{background:var(--bg-code)}.nb-output{border-top:1px solid var(--border-subtle)}.nb-output__label{padding:.2rem .75rem;font-size:.5625rem;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:#22c55e;background:#22c55e0a;border-bottom:1px solid var(--border-subtle)}.nb-output__text{margin:0;padding:.6rem .75rem;font-family:var(--font-mono);font-size:.8125rem;line-height:1.5;color:#a7f3d0;white-space:pre-wrap;word-break:break-word}.nb-output__error{margin:0;padding:.6rem .75rem;font-family:var(--font-mono);font-size:.8125rem;line-height:1.5;color:#fca5a5;background:#ef44440a;white-space:pre-wrap;word-break:break-word}@media(max-width:600px){.exercises-grid{grid-template-columns:1fr}.exercises-filters,.exercises-notebooks__grid{flex-direction:column}}.cs-tabs{display:flex;gap:.5rem;margin-bottom:.5rem;border-bottom:1px solid var(--border-subtle);padding-bottom:0}.cs-tab{padding:.55rem 1.1rem;font-size:.875rem;font-weight:600;font-family:var(--font-body);color:var(--text-muted);background:transparent;border:none;border-bottom:2px solid transparent;cursor:pointer;transition:color var(--transition-fast),border-color var(--transition-fast);margin-bottom:-1px}.cs-tab:hover{color:var(--text-primary)}.cs-tab--active{color:var(--accent-primary);border-bottom-color:var(--accent-primary)}.cs-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:1rem}.cs-card{display:flex;flex-direction:column;padding:1.125rem 1.25rem;border:1px solid var(--border-card);border-radius:var(--radius-md);background:var(--bg-card);transition:all var(--transition-base)}.cs-card:hover{border-color:var(--border-active);background:var(--bg-card-hover);box-shadow:var(--shadow-card)}.cs-card__header{flex:1}.cs-card__meta{display:flex;flex-wrap:wrap;align-items:center;gap:.4rem;margin-bottom:.6rem}.cs-card__title{margin:0 0 .4rem;font-size:1rem;font-weight:700;color:var(--text-heading);line-height:1.35}.cs-card__phases{margin:0 0 .75rem;font-size:.8rem;color:var(--text-muted);line-height:1.4}.cs-card__footer{margin-top:auto;padding-top:.75rem}.cs-card__expand-btn{font-size:.8125rem;font-weight:600;font-family:var(--font-body);color:var(--accent-primary);background:transparent;border:none;cursor:pointer;padding:0;transition:color var(--transition-fast)}.cs-card__expand-btn:hover{color:var(--accent-tertiary)}.cs-card__content{margin-top:1rem;padding-top:1rem;border-top:1px solid var(--border-subtle)}@media(max-width:600px){.cs-grid{grid-template-columns:1fr}.cs-tabs{gap:0}.cs-tab{flex:1;text-align:center;padding:.5rem;font-size:.8125rem}}.review-page .review-card{background:var(--surface-elevated, #fff);border:1px solid var(--border-color, #e5e7eb);border-radius:12px;padding:1rem;display:grid;gap:1rem}.review-card-meta{display:flex;justify-content:space-between;font-size:.9rem;color:var(--text-secondary, #6b7280)}.review-answer{background:var(--surface-subtle, #f9fafb);border-radius:10px;padding:.75rem}.review-answer-btn,.review-action-btn{border:1px solid var(--border-color, #d1d5db);border-radius:8px;padding:.55rem .8rem;font-weight:600;background:var(--surface-elevated, #fff)}.review-actions{display:flex;gap:.5rem;flex-wrap:wrap}.review-again{border-color:#ef4444}.review-hard{border-color:#f59e0b}.review-good{border-color:#10b981}.review-easy{border-color:#3b82f6}.sidebar-review-stats{padding:0 1.25rem .75rem;color:var(--text-secondary, #6b7280)}.back-to-top{position:fixed;bottom:2rem;right:2rem;width:42px;height:42px;display:flex;align-items:center;justify-content:center;background:var(--bg-card);border:1px solid var(--border-card);border-radius:50%;color:var(--text-secondary);cursor:pointer;opacity:0;visibility:hidden;transform:translateY(10px);transition:opacity var(--transition-base),visibility var(--transition-base),transform var(--transition-base),background var(--transition-fast),border-color var(--transition-fast),color var(--transition-fast);box-shadow:var(--shadow-card);z-index:100}.back-to-top.visible{opacity:1;visibility:visible;transform:translateY(0)}.back-to-top:hover{background:var(--bg-card-hover);border-color:var(--border-active);color:var(--accent-tertiary)}.back-to-top:focus-visible{outline:none;box-shadow:0 0 0 2px var(--accent-primary)}.lesson-with-toc{display:grid;grid-template-columns:minmax(0,min(var(--content-max-width),76ch)) 260px;gap:2rem;align-items:start}.lesson-main-content{min-width:0}.toc{position:sticky;top:calc(var(--navbar-height) + 1.5rem);width:260px;max-height:calc(100vh - var(--navbar-height) - 3rem);overflow-y:auto;scrollbar-width:none;padding:1rem;background:var(--bg-card);border:1px solid var(--border-card);border-radius:var(--radius-md);font-size:.875rem}.toc::-webkit-scrollbar{display:none}.toc-title{font-weight:600;font-size:.8125rem;text-transform:uppercase;letter-spacing:.08em;color:var(--text-muted);margin-bottom:.75rem}.toc-list{list-style:none;padding:0;margin:0}.toc-list li{margin-bottom:.25rem}.toc-list li.toc-sub{padding-left:.75rem}.toc-link{display:block;min-height:44px;padding:.5rem .625rem;font-size:.875rem;color:var(--text-muted);text-decoration:none;border-left:2px solid transparent;border-radius:2px;transition:color var(--transition-fast),border-color var(--transition-fast);line-height:1.4;word-wrap:break-word;overflow-wrap:break-word;white-space:normal}.toc-link:hover{color:var(--text-primary)}.toc-link.active{color:var(--accent-tertiary);border-left-color:var(--accent-primary)}.not-found{text-align:center;padding:3rem 1rem}.not-found-code{font-size:4rem;margin-bottom:1rem;background:var(--gradient-hero);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.not-found-message{font-size:1.25rem;color:var(--text-secondary);margin-bottom:2rem}.not-found-actions{display:flex;gap:1rem;justify-content:center;flex-wrap:wrap;margin-bottom:3rem}.not-found-suggestions{text-align:left;max-width:600px;margin:0 auto}.not-found-suggestions h2{font-size:1.125rem;margin-bottom:1rem;color:var(--text-heading)}.not-found-phases{display:grid;grid-template-columns:1fr 1fr;gap:.5rem;margin-bottom:1.5rem}.not-found-phase-link{display:flex;align-items:center;gap:.5rem;padding:.625rem .875rem;background:var(--bg-card);border:1px solid var(--border-card);border-radius:var(--radius-sm);color:var(--text-secondary);font-size:.8125rem;text-decoration:none;transition:border-color var(--transition-fast),background var(--transition-fast),color var(--transition-fast)}.not-found-phase-link:hover{border-color:var(--border-active);background:var(--bg-card-hover);color:var(--text-primary)}.not-found-tip{text-align:center;color:var(--text-muted);font-size:.875rem}.not-found-tip kbd{padding:.125rem .375rem;background:var(--bg-card);border:1px solid var(--border-card);border-radius:4px;font-family:var(--font-mono);font-size:.75rem}@media(max-width:1200px){.lesson-with-toc{grid-template-columns:1fr}.toc{position:sticky;bottom:1rem;top:auto;width:100%;max-height:none;margin-top:1rem;padding:.75rem;z-index:30}.toc-compact .toc-title{display:none}.toc-toggle{width:100%;min-height:44px;display:flex;align-items:center;justify-content:space-between;padding:.625rem .875rem;border-radius:var(--radius-sm);border:1px solid var(--border-card);background:var(--bg-primary);color:var(--text-primary);font-size:.875rem;font-weight:600;cursor:pointer}.toc-toggle:focus-visible{outline:none;box-shadow:0 0 0 2px var(--accent-primary)}.toc-toggle-chevron{transition:transform var(--transition-fast)}.toc-toggle-chevron.open{transform:rotate(180deg)}.toc-panel{max-height:0;overflow:hidden;opacity:0;transition:max-height var(--transition-base),opacity var(--transition-base),margin-top var(--transition-base)}.toc-panel.open{max-height:min(50vh,420px);opacity:1;overflow-y:auto;margin-top:.625rem}.toc-panel .toc-list li{margin-bottom:.125rem}.toc-panel .toc-link{padding-block:.625rem}}@media(max-width:768px){.toc{display:none}.back-to-top{bottom:calc(64px + 1rem);right:1.25rem}}@media(max-width:640px){.not-found-phases{grid-template-columns:1fr}}body.sidebar-open{overflow:hidden}@media(max-width:1024px){.sidebar{transform:translate(-100%)}.sidebar.open{transform:translate(0)}.sidebar-overlay.visible,.sidebar-close{display:block}.main-content{margin-left:0}.navbar{left:0}.navbar-hamburger{display:flex}.navbar-links{display:none}.phases-grid{grid-template-columns:1fr}.day-link{padding-top:.625rem;padding-bottom:.625rem;min-height:44px;display:flex;align-items:center}.phase-toggle{min-height:44px}}@media(max-width:640px){:root{--page-padding: 1rem}.hero{padding:2.5rem 1.25rem 2rem}.hero h1{font-size:1.75rem}.hero-stats{gap:1.5rem}.lesson-nav{grid-template-columns:1fr}.lesson-nav-btn.next{grid-column:1;text-align:left}.curriculum-days,.phase-lessons-grid{grid-template-columns:1fr}.curriculum-timeline{padding-left:1.25rem}.curriculum-phase:before{left:-1.25rem}.day-card{min-height:44px}.curriculum-day-link{min-height:44px;padding-top:.625rem;padding-bottom:.625rem}}.reading-time{display:inline-flex;align-items:center;gap:.35rem;font-variant-numeric:tabular-nums}.prerequisite-bar{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap;margin-top:.75rem;padding:.625rem .875rem;background:#f59e0b0f;border:1px solid rgba(245,158,11,.15);border-radius:var(--radius-md)}.prerequisite-label{font-size:.8125rem;font-weight:600;color:#f59e0b;text-transform:uppercase;letter-spacing:.5px;white-space:nowrap}.prerequisite-pill{display:inline-flex;align-items:center;gap:.25rem;padding:.1875rem .625rem;background:#f59e0b1a;border:1px solid rgba(245,158,11,.2);border-radius:100px;font-size:.8125rem;font-weight:500;color:#fbbf24;text-decoration:none;transition:all var(--transition-fast);white-space:nowrap}.prerequisite-pill:hover{background:#f59e0b2e;border-color:#f59e0b66;color:#fcd34d;transform:translateY(-1px)}.prerequisite-pill:before{content:"📋";font-size:.8125rem}.related-lessons{margin-top:2.5rem;padding-top:2rem;border-top:1px solid var(--border-subtle)}.related-lessons-title{font-size:1rem;font-weight:700;color:var(--text-heading);margin-bottom:1rem;display:flex;align-items:center;gap:.5rem}.related-lessons-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:.75rem}.related-lesson-card{display:flex;flex-direction:column;gap:.375rem;padding:.875rem 1rem;background:var(--bg-card);border:1px solid var(--border-card);border-radius:var(--radius-md);text-decoration:none;transition:all var(--transition-fast)}.related-lesson-card:hover{border-color:var(--border-active);background:var(--bg-card-hover);transform:translateY(-2px);box-shadow:0 4px 16px #0003}.related-lesson-day{font-size:.8125rem;font-weight:600;color:var(--accent-tertiary);text-transform:uppercase;letter-spacing:.5px}.related-lesson-title{font-size:.8125rem;font-weight:600;color:var(--text-primary);line-height:1.3}.related-lesson-meta{display:flex;align-items:center;gap:.5rem;margin-top:.125rem}.related-lesson-badge{font-size:.8125rem;padding:.1875rem .5rem;border-radius:100px;font-weight:600}.related-lesson-tags{display:flex;gap:.25rem;flex-wrap:wrap}.related-tag{font-size:.8125rem;padding:.125rem .5rem;background:#4361ee14;border:1px solid rgba(67,97,238,.12);border-radius:100px;color:var(--accent-tertiary)}.related-tag.shared{background:#22c55e1a;border-color:#22c55e33;color:#4ade80}.concept-graph-page{max-width:1200px;margin:0 auto;padding:var(--page-padding)}.concept-graph-header{margin-bottom:1.5rem}.concept-graph-header h1{font-size:1.75rem;font-weight:800;background:var(--gradient-hero);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;margin-bottom:.5rem}.concept-graph-header p{color:var(--text-secondary);font-size:.9375rem;line-height:1.5}.concept-graph-controls{display:flex;align-items:center;gap:1rem;margin-bottom:1rem;flex-wrap:wrap}.concept-graph-search{flex:1;min-width:200px;padding:.5rem .875rem;background:var(--bg-card);border:1px solid var(--border-card);border-radius:var(--radius-md);color:var(--text-primary);font-size:.875rem;font-family:var(--font-body);outline:none;transition:border-color var(--transition-fast)}.concept-graph-search:focus{border-color:var(--border-active)}.concept-graph-search::placeholder{color:var(--text-muted)}.concept-graph-legend{display:flex;gap:.75rem;flex-wrap:wrap}.legend-item{display:flex;align-items:center;gap:.375rem;font-size:.8125rem;color:var(--text-secondary);cursor:pointer;padding:.25rem .5rem;border-radius:var(--radius-sm);transition:background var(--transition-fast)}.legend-item:hover{background:#ffffff0d}.legend-dot{width:10px;height:10px;border-radius:50%;flex-shrink:0}.concept-graph-container{position:relative;width:100%;height:600px;background:var(--bg-card);border:1px solid var(--border-card);border-radius:var(--radius-lg);overflow:hidden}.concept-graph-container svg{width:100%;height:100%;cursor:grab}.concept-graph-container svg:active{cursor:grabbing}.graph-edge{stroke:#94a3b826;stroke-width:1.5;fill:none}.graph-edge.highlighted{stroke:var(--accent-primary);stroke-width:2;stroke-opacity:.6}.graph-node{cursor:pointer;transition:filter var(--transition-fast)}.graph-node:hover{filter:brightness(1.3)}.graph-node circle{stroke:#ffffff26;stroke-width:1.5;transition:all var(--transition-fast)}.graph-node:hover circle{stroke:#ffffff80;stroke-width:2.5}.graph-node text{fill:var(--text-primary);font-size:8px;font-weight:600;text-anchor:middle;pointer-events:none;user-select:none}.graph-node-label{fill:var(--text-secondary)!important;font-size:6.5px!important;font-weight:400!important}.graph-tooltip{position:absolute;padding:.625rem .875rem;background:var(--bg-secondary);border:1px solid var(--border-card);border-radius:var(--radius-sm);box-shadow:var(--shadow-elevated);pointer-events:none;z-index:10;max-width:220px;opacity:0;transition:opacity var(--transition-fast)}.graph-tooltip.visible{opacity:1}.graph-tooltip-title{font-size:.75rem;font-weight:700;color:var(--text-heading);margin-bottom:.25rem}.graph-tooltip-concepts{display:flex;flex-wrap:wrap;gap:.25rem}.graph-tooltip-concept{font-size:.8125rem;padding:.125rem .5rem;background:#4361ee1a;border-radius:100px;color:var(--accent-tertiary)}.graph-node.dimmed circle{opacity:.2}.graph-node.dimmed text{opacity:.15}.graph-edge.dimmed{opacity:.05}.glossary-term{position:relative;border-bottom:1px dashed var(--accent-tertiary);cursor:help;color:inherit}.glossary-term:after{content:attr(data-definition);position:absolute;bottom:calc(100% + 6px);left:50%;transform:translate(-50%) translateY(4px) scale(.95);padding:.5rem .75rem;background:var(--bg-secondary);border:1px solid var(--border-card);border-radius:var(--radius-sm);box-shadow:var(--shadow-elevated);color:var(--text-primary);font-size:.75rem;line-height:1.4;white-space:normal;width:max-content;max-width:260px;z-index:20;opacity:0;pointer-events:none;transition:opacity var(--transition-fast),transform var(--transition-fast)}.glossary-term:hover:after{opacity:1;transform:translate(-50%) translateY(0) scale(1)}.glossary-term:first-child:after{left:0;transform:translate(0) translateY(4px) scale(.95)}.glossary-term:first-child:hover:after{transform:translate(0) translateY(0) scale(1)}@media(max-width:768px){.related-lessons-grid{grid-template-columns:1fr}.concept-graph-container{height:400px}.prerequisite-bar{flex-direction:column;align-items:flex-start}.concept-graph-controls{flex-direction:column;align-items:stretch}}@media(prefers-reduced-motion:reduce){.related-lesson-card:hover,.prerequisite-pill:hover{transform:none}.glossary-term:after{transition:none}}.skeleton{position:relative;overflow:hidden;background:color-mix(in srgb,var(--bg-card) 78%,white 22%);border:1px solid var(--border-subtle);border-radius:var(--radius-sm)}.skeleton:after{content:"";position:absolute;inset:0;background:linear-gradient(110deg,transparent 20%,color-mix(in srgb,var(--bg-card-hover) 45%,white 55%) 45%,transparent 72%);transform:translate(-130%);animation:skeletonShimmer var(--motion-duration-active-skeleton) infinite}.skeleton-text{height:16px;margin-bottom:10px;width:100%}.skeleton-heading{height:32px;margin-bottom:16px;width:60%}.skeleton-block{height:120px;margin-bottom:16px;width:100%;border-radius:var(--radius-md)}.skeleton-card{height:200px;border-radius:var(--radius-lg)}.page-skeleton{max-width:var(--content-max-width);margin:2rem auto;padding:0 var(--page-padding)}@keyframes skeletonShimmer{0%{transform:translate(-130%)}to{transform:translate(130%)}}@media(prefers-reduced-motion:reduce){.skeleton:after{animation:none!important}::view-transition-old(root),::view-transition-new(root){animation:none!important}.stats-bar-fill,.stats-phase-card{transition:none!important}}.glass-card{position:relative;background:color-mix(in srgb,var(--bg-card) 88%,transparent);border:1px solid color-mix(in srgb,var(--border-card) 80%,white 20%);box-shadow:var(--shadow-card)}@media(prefers-reduced-transparency:no-preference){[data-palette-type=dark] .glass-card{background:color-mix(in srgb,var(--bg-card) 72%,transparent);backdrop-filter:blur(12px) saturate(120%);-webkit-backdrop-filter:blur(12px) saturate(120%)}}@media(hover:hover)and (pointer:fine){a,button,.interactive{transition:box-shadow var(--transition-fast),transform var(--transition-fast)}a:hover,button:hover,.interactive:hover{box-shadow:0 0 0 3px color-mix(in srgb,var(--accent-primary) 24%,transparent)}.reading-mode a:hover,.reading-mode button:hover,.reading-mode .interactive:hover{box-shadow:none;transform:none}a:focus-visible,button:focus-visible,.interactive:focus-visible{box-shadow:0 0 0 3px color-mix(in srgb,var(--accent-primary) 28%,transparent)}}.scroll-progress{position:fixed;top:0;left:0;width:100%;height:2px;z-index:9999;background:transparent;pointer-events:none;opacity:.6}.scroll-progress.lesson-progress{height:4px;opacity:1}.scroll-progress-bar{height:100%;background:var(--accent-primary);transition:width var(--motion-duration-active-fast) linear;border-radius:0 2px 2px 0}.scroll-progress.lesson-progress .scroll-progress-bar{background:var(--gradient-hero)}.mobile-nav{display:none;position:fixed;bottom:0;left:0;right:0;z-index:1000;background:var(--bg-secondary);border-top:1px solid var(--border-card);padding:4px 0;padding-bottom:env(safe-area-inset-bottom,4px);backdrop-filter:blur(12px)}.mobile-nav-item{display:flex;flex-direction:column;align-items:center;gap:2px;padding:6px 0;font-size:.65rem;color:var(--text-muted);text-decoration:none;transition-duration:var(--motion-duration-active-fast);transition-timing-function:var(--motion-easing-standard);flex:1}.mobile-nav-item svg{width:20px;height:20px}.mobile-nav-item.active{color:var(--accent-primary)}@media(max-width:768px){.mobile-nav{display:flex;justify-content:space-around}.main-content{padding-bottom:72px!important}}::view-transition-old(root){animation:fade-out var(--motion-duration-active-view-transition) ease-out}::view-transition-new(root){animation:fade-in var(--motion-duration-active-view-transition) ease-in}@keyframes fade-out{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(-8px)}}@keyframes fade-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.content-stats-page{max-width:var(--content-max-width);margin:0 auto;padding:2rem var(--page-padding)}.content-stats-page h1{font-size:2rem;background:var(--gradient-hero);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;margin-bottom:.25rem}.stats-subtitle{color:var(--text-secondary);margin-bottom:2rem}.stats-hero-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1rem;margin-bottom:2.5rem}.stats-hero-card{background:var(--bg-card);border:1px solid var(--border-card);border-radius:var(--radius-lg);padding:1.5rem;display:flex;flex-direction:column;align-items:center;gap:.25rem;box-shadow:var(--shadow-card)}.stats-hero-value{font-size:2rem;font-weight:700;color:var(--accent-primary);line-height:1.1}.stats-hero-label{font-size:.8rem;color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em}.stats-section{margin-bottom:2.5rem}.stats-section h2{font-size:1.3rem;color:var(--text-heading);margin-bottom:1rem;padding-bottom:.5rem;border-bottom:1px solid var(--border-subtle)}.stats-bar-chart{display:flex;flex-direction:column;gap:.75rem}.stats-bar-row{display:flex;align-items:center;gap:.75rem}.stats-bar-label{width:100px;font-size:.85rem;color:var(--text-secondary);text-transform:capitalize;flex-shrink:0}.stats-bar-track{flex:1;height:24px;background:var(--bg-surface);border-radius:var(--radius-sm);overflow:hidden}.stats-bar-fill{height:100%;border-radius:var(--radius-sm);transition:width var(--motion-duration-active-slow) ease-out}.stats-bar-beginner{background:#34d399}.stats-bar-intermediate{background:#fbbf24}.stats-bar-advanced{background:#f87171}.stats-bar-unknown{background:var(--accent-primary)}.stats-bar-value{width:32px;text-align:right;font-weight:600;font-size:.85rem;color:var(--text-primary)}.stats-phase-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:1rem}.stats-phase-card{background:var(--bg-card);border:1px solid var(--border-card);border-radius:var(--radius-md);padding:1rem;text-decoration:none;transition-duration:var(--motion-duration-active-fast);transition-timing-function:var(--motion-easing-standard)}.stats-phase-card:hover{border-color:var(--accent-primary);transform:translateY(-2px);box-shadow:var(--shadow-elevated)}.stats-phase-header{display:flex;align-items:center;gap:.5rem;margin-bottom:.25rem}.stats-phase-icon{font-size:1.2rem}.stats-phase-num{font-size:.75rem;color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em}.stats-phase-title{font-weight:600;color:var(--text-primary);margin-bottom:.5rem;font-size:.9rem}.stats-phase-meta{display:flex;gap:.75rem;font-size:.75rem;color:var(--text-muted)}.stats-tag-cloud{display:flex;flex-wrap:wrap;gap:.5rem;align-items:center}.stats-tag{display:inline-flex;align-items:center;gap:4px;padding:4px 10px;background:var(--bg-card);border:1px solid var(--border-subtle);border-radius:var(--radius-xl);color:var(--accent-tertiary);white-space:nowrap}.stats-tag-count{font-size:.65rem;color:var(--text-muted);background:var(--bg-surface);padding:1px 5px;border-radius:99px}.stats-concepts-grid{display:flex;flex-wrap:wrap;gap:.5rem}.stats-concept-pill{display:inline-flex;align-items:center;gap:6px;padding:6px 12px;background:var(--bg-card);border:1px solid var(--border-card);border-radius:var(--radius-md);font-size:.85rem;color:var(--text-primary)}.stats-concept-count{font-size:.7rem;font-weight:600;color:var(--accent-primary);background:var(--accent-glow);padding:2px 6px;border-radius:99px}@media(max-width:640px){.stats-hero-grid{grid-template-columns:repeat(2,1fr)}}.shortcut-overlay-backdrop{position:fixed;inset:0;z-index:1200;background:#0f172a8c;display:flex;align-items:center;justify-content:center;padding:1rem}.shortcut-overlay-dialog{width:min(640px,100%);max-height:min(85vh,700px);overflow-y:auto;background:var(--bg-card);border:1px solid var(--border-card);border-radius:var(--radius-lg);box-shadow:var(--shadow-elevated);padding:1.25rem}.shortcut-overlay-header{display:flex;justify-content:space-between;align-items:center;gap:1rem;margin-bottom:1rem}.shortcut-overlay-header h2{margin:0}.shortcut-overlay-close{border:1px solid var(--border-card);border-radius:var(--radius-sm);padding:.35rem .6rem;background:var(--bg-secondary);color:var(--text-secondary);font-weight:600;cursor:pointer}.shortcut-overlay-group+.shortcut-overlay-group{margin-top:1rem}.shortcut-overlay-group h3{margin:0 0 .4rem;color:var(--text-secondary);font-size:.95rem}.shortcut-overlay-group ul{margin:0;padding:0;list-style:none}.shortcut-overlay-group li{display:grid;grid-template-columns:92px 1fr;gap:.75rem;align-items:center;padding:.4rem 0;border-top:1px solid var(--border-subtle)}.shortcut-overlay-keys kbd{display:inline-block;min-width:28px;text-align:center;background:var(--bg-secondary);border:1px solid var(--border-card);border-radius:6px;padding:.2rem .45rem;font-family:inherit;font-size:.82rem}@media(pointer:fine){.custom-cursor-active,.custom-cursor-active *{cursor:none!important}}.custom-cursor-dot{position:fixed;top:-4px;left:-4px;width:8px;height:8px;border-radius:50%;background:var(--accent-primary);pointer-events:none;z-index:99999;will-change:transform;mix-blend-mode:difference;opacity:0}.custom-cursor-ring{position:fixed;top:-20px;left:-20px;width:40px;height:40px;border-radius:50%;border:1.5px solid color-mix(in srgb,var(--accent-primary) 50%,transparent);pointer-events:none;z-index:99998;will-change:transform;opacity:0;transition:border-color var(--transition-fast),width var(--motion-duration-active-fast),height var(--motion-duration-active-fast),opacity var(--motion-duration-active-fast)}.custom-cursor-active .custom-cursor-dot,.custom-cursor-active .custom-cursor-ring{opacity:1}.custom-cursor-ring--hover{border-color:var(--accent-primary)}@media(prefers-reduced-motion:reduce){.custom-cursor-dot,.custom-cursor-ring{display:none}}.empty-state-illustration{width:min(220px,100%);height:auto;margin:0 auto .75rem;display:block}.empty-state-line{stroke:#94a3b8a6;stroke-width:5;stroke-linecap:round;animation:emptyStatePulse 1.9s ease-in-out infinite}.empty-state-dot{animation:emptyStateFloat 2.4s ease-in-out infinite}@keyframes emptyStatePulse{0%,to{opacity:.42}50%{opacity:1}}@keyframes emptyStateFloat{0%,to{transform:translateY(0)}50%{transform:translateY(-4px)}}@media(prefers-reduced-motion:reduce){.empty-state-line,.empty-state-dot{animation:none!important}}@media print{.navbar,.sidebar,.mobile-nav,.scroll-progress,.search-trigger,.search-palette-overlay,.lesson-nav,.back-to-top,.prerequisite-pills,.related-lessons,.lesson-complete-btn,.skip-to-content,.theme-toggle,.navbar-hamburger{display:none!important}:root,[data-palette]{--bg-primary: #fff !important;--bg-secondary: #fff !important;--bg-card: #fff !important;--bg-surface: #fff !important;--bg-code: #f5f5f5 !important;--text-primary: #111 !important;--text-secondary: #333 !important;--text-muted: #666 !important;--text-heading: #000 !important;--border-card: #ddd !important;--border-subtle: #eee !important;--shadow-card: none !important;--shadow-elevated: none !important}body{background:#fff!important;color:#000!important;font-size:12pt!important;line-height:1.5!important}.app-layout{display:block!important}.main-content{margin:0!important;padding:.5in!important;max-width:100%!important}.lesson-container{max-width:100%!important;padding:0!important}pre,code{font-size:9pt!important;white-space:pre-wrap!important;word-wrap:break-word!important;border:1px solid #ddd!important;background:#f8f8f8!important;color:#333!important}a[href^=http]:after{content:" (" attr(href) ")";font-size:8pt;color:#666;word-break:break-all}h1,h2,h3{page-break-after:avoid;color:#000!important}.lesson-body{page-break-inside:auto}img{max-width:100%!important;page-break-inside:avoid}}@keyframes fadeInUp{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}.animate-in{animation:fadeInUp var(--motion-duration-active-card-entrance) ease-out forwards}.phase-card{animation:fadeInUp var(--motion-duration-active-standard) ease-out backwards}.phase-card:nth-child(1){animation-delay:.05s}.phase-card:nth-child(2){animation-delay:.1s}.phase-card:nth-child(3){animation-delay:.15s}.phase-card:nth-child(4){animation-delay:.2s}.phase-card:nth-child(5){animation-delay:.25s}.phase-card:nth-child(6){animation-delay:.3s}.phase-card:nth-child(7){animation-delay:.35s}.phase-card:nth-child(8){animation-delay:.4s}.phase-card:nth-child(9){animation-delay:.45s}@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important}.animate-in,.phase-card{animation:none!important}.phase-card{animation-delay:0s!important}}
