.home{--primary: #4f00b1;--primary-light: #7a33ff;--secondary: #22f2a1;--secondary-dark: #00d382;--bg-base: #f8f9fa;--bg-surface: #ffffff;--bg-grid: #e9ecef;--text-main: #1a1a1a;--text-muted: #6c757d;--radius-md: 16px;--radius-lg: 24px;--radius-pill: 9999px;--shadow-sm: 0 4px 6px -1px rgba(0, 0, 0, .05);--shadow-md: 0 10px 15px -3px rgba(0, 0, 0, .05);--shadow-hover: 0 20px 25px -5px rgba(79, 0, 177, .15);font-family:Inter,sans-serif;background-color:var(--bg-base);color:var(--text-main);line-height:1.6;overflow-x:hidden;min-height:100vh}.home h1,.home h2,.home h3,.home h4{font-family:Space Grotesk,sans-serif;font-weight:700;letter-spacing:-.02em}.home .bg-grid{position:fixed;top:0;left:0;width:100vw;height:100vh;z-index:-1;background-image:linear-gradient(to right,var(--bg-grid) 1px,transparent 1px),linear-gradient(to bottom,var(--bg-grid) 1px,transparent 1px);background-size:40px 40px;mask-image:radial-gradient(circle at center,black 40%,transparent 80%);-webkit-mask-image:radial-gradient(circle at center,black 40%,transparent 80%);opacity:.6;animation:gridMove 20s linear infinite}.home .container{max-width:1200px;margin:0 auto;padding:0 24px}.home nav{display:flex;justify-content:space-between;align-items:center;padding:24px 0;position:sticky;top:0;z-index:100;background:#f8f9facc;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-bottom:1px solid rgba(0,0,0,.05)}.home .logo{font-family:Space Grotesk,sans-serif;font-size:24px;font-weight:700;color:var(--primary);display:flex;align-items:center;gap:8px}.home .logo-icon{background:var(--secondary);color:var(--primary);padding:6px;border-radius:8px;display:flex}.home .nav-links{display:flex;gap:32px;font-weight:500}.home .nav-links a{color:var(--text-muted);transition:color .2s ease}.home .nav-links a:hover{color:var(--primary)}.home .btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:12px 24px;border-radius:var(--radius-pill);font-family:Space Grotesk,sans-serif;font-weight:700;font-size:15px;cursor:pointer;transition:all .3s cubic-bezier(.4,0,.2,1);border:none}.home .btn-primary{background:var(--primary);color:#fff;box-shadow:0 4px 14px #4f00b14d;text-transform:uppercase;font-size:14px}.home .btn-primary:hover{background:var(--primary-light);transform:translateY(-2px);box-shadow:0 6px 20px #4f00b166}.home .btn-secondary{background:var(--bg-surface);color:var(--primary);border:2px solid var(--primary)}.home .btn-secondary:hover{background:var(--primary);color:#fff;transform:translateY(-2px)}.home .btn-tertiary{background:var(--secondary);color:var(--text-main);box-shadow:0 4px 14px #22f2a14d;text-transform:uppercase;font-size:14px;display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:12px 24px;border-radius:var(--radius-pill);font-family:Space Grotesk,sans-serif;font-weight:700;cursor:pointer;transition:all .3s cubic-bezier(.4,0,.2,1);border:none}.home .btn-tertiary:hover{background:var(--secondary-dark);transform:translateY(-2px);box-shadow:0 6px 20px #22f2a166}.home .hero{padding:80px 0 120px;display:flex;align-items:center;gap:60px;position:relative}.home .hero-content{flex:1;text-align:left}.home .hero-badge{display:inline-flex;align-items:center;gap:8px;background:#4f00b11a;color:var(--primary);padding:8px 16px;border-radius:var(--radius-pill);font-size:14px;font-weight:700;margin-bottom:24px;text-transform:uppercase;letter-spacing:.5px}.home .hero h1{font-size:clamp(48px,5.5vw,64px);line-height:1.1;margin-bottom:24px;color:var(--text-main)}.home .text-primary{color:var(--primary)}.home .hero p{font-size:20px;color:var(--text-muted);margin-bottom:40px;max-width:500px}.home .hero-buttons{display:flex;gap:16px}.home .hero-image-container{flex:1;position:relative;display:flex;justify-content:center}.home .hero-image-wrapper{position:relative;border-radius:var(--radius-lg);padding:16px;background:#fff;box-shadow:var(--shadow-md);max-width:500px;width:100%}.home .hero-image{width:100%;border-radius:calc(var(--radius-lg) - 8px);display:block;object-fit:cover}.home .floating-badge{position:absolute;background:#fffffff2;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);padding:12px 20px;border-radius:var(--radius-pill);display:flex;align-items:center;gap:8px;font-weight:600;font-size:13px;box-shadow:var(--shadow-md);z-index:10;font-family:Inter,sans-serif;color:var(--text-main)}.home .badge-nn{top:25%;left:-30px}.home .badge-ml{bottom:25%;right:-30px}.home .dot{width:12px;height:12px;border-radius:50%}.home .dot.green{background:#22f2a1}.home .dot.purple{background:#bc8cff}.home .labs-section{padding:80px 0}.home .section-header{text-align:center;margin-bottom:60px}.home .section-header h2{font-size:40px;color:var(--primary);margin-bottom:16px}.home .section-header p{color:var(--text-muted);font-size:18px}.home .grid-3{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:32px}.home .lab-card{background:var(--bg-surface);border-radius:var(--radius-md);padding:32px;border:1px solid rgba(0,0,0,.05);box-shadow:var(--shadow-sm);transition:all .3s ease;position:relative;overflow:hidden;text-align:left}.home .lab-card:hover{transform:translateY(-8px);box-shadow:var(--shadow-hover);border-color:#4f00b133}.home .lab-card:before{content:"";position:absolute;top:0;left:0;width:100%;height:4px;background:linear-gradient(90deg,var(--primary),var(--secondary));transform:scaleX(0);transform-origin:left;transition:transform .3s ease}.home .lab-card:hover:before{transform:scaleX(1)}.home .lab-icon{width:48px;height:48px;background:#4f00b11a;color:var(--primary);border-radius:12px;display:flex;align-items:center;justify-content:center;margin-bottom:24px}.home .lab-card h3{font-size:24px;margin-bottom:12px;color:var(--primary)}.home .lab-card p{color:var(--text-muted);margin-bottom:24px}.home .lab-link{display:inline-flex;align-items:center;gap:8px;color:var(--primary);font-weight:600;font-family:Space Grotesk,sans-serif;font-size:15px}.home .lab-link svg{transition:transform .2s ease}.home .lab-card:hover .lab-link svg{transform:translate(4px)}.home .features{background:var(--primary);color:#fff;padding:100px 0;border-radius:var(--radius-lg);margin:40px 24px}.home .features .section-header h2{color:#fff}.home .features .section-header p{color:#fffc}.home .feature-card{background:#ffffff1a;padding:32px;border-radius:var(--radius-md);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid rgba(255,255,255,.2)}.home .feature-card .lab-icon{background:var(--secondary);color:var(--primary)}.home .feature-card h3{color:#fff;margin-bottom:12px;font-size:22px}.home .feature-card p{color:#fffc}.home footer{padding:40px 0;text-align:center;border-top:1px solid rgba(0,0,0,.05);margin-top:80px}.home .footer-content{display:flex;flex-direction:column;align-items:center;gap:16px}.home .footer-logo{font-family:Space Grotesk,sans-serif;font-weight:700;color:var(--primary);font-size:20px;display:flex;align-items:center;gap:6px}.home .footer-text{color:var(--text-muted);font-size:14px}@media(max-width:768px){.home .nav-links{display:none}.home .hero{flex-direction:column;padding:40px 0 80px;text-align:center}.home .hero-content{text-align:center}.home .hero p{margin-left:auto;margin-right:auto}.home .hero-buttons{justify-content:center}.home .hero h1{font-size:40px}.home .badge-nn{left:-10px}.home .badge-ml{right:-10px}.home .features{margin:40px 0;border-radius:0}}.lesson-lists{font-family:Inter,sans-serif;background:#f8f9fa;color:#111827;overflow-x:hidden;min-height:100vh}.lesson-lists h1,.lesson-lists h2,.lesson-lists h3{font-family:Space Grotesk,sans-serif}.lesson-lists .site-header{display:flex;justify-content:space-between;align-items:center;padding:20px 24px;background:#f8f9facc;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-bottom:1px solid rgba(0,0,0,.05)}.lesson-lists .site-header-container{display:flex;justify-content:space-between;align-items:center;width:100%;max-width:1200px;margin:0 auto}.lesson-lists .site-header .logo{font-family:Space Grotesk,sans-serif;font-size:24px;font-weight:700;color:#4f00b1;display:flex;align-items:center;gap:8px;text-decoration:none}.lesson-lists .site-header .logo-icon{background:#22f2a1;color:#4f00b1;padding:6px;border-radius:8px;display:flex}.lesson-lists .site-nav-links{display:flex;gap:32px;font-weight:500}.lesson-lists .site-nav-links a{color:#6c757d;transition:color .2s ease;text-decoration:none;font-size:16px}.lesson-lists .site-nav-links a:hover{color:#4f00b1}.lesson-lists .site-btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:12px 24px;border-radius:9999px;font-family:Space Grotesk,sans-serif;font-weight:700;font-size:14px;cursor:pointer;transition:all .3s cubic-bezier(.4,0,.2,1);border:none;text-transform:uppercase;text-decoration:none}.lesson-lists .site-btn-primary{background:#4f00b1;color:#fff;box-shadow:0 4px 14px #4f00b14d}.lesson-lists .site-btn-primary:hover{background:#7a33ff;transform:translateY(-2px);box-shadow:0 6px 20px #4f00b166}@media(max-width:768px){.lesson-lists .site-nav-links{display:none}}.lesson-lists nav{display:flex;justify-content:center;gap:8px;padding:16px;background:#f8f9fad9;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-bottom:1px solid #e5e7eb;flex-wrap:wrap;position:sticky;top:0;z-index:100}.lesson-lists .nav-btn{padding:7px 16px;border-radius:20px;border:1.5px solid #e5e7eb;background:transparent;color:#6b7280;cursor:pointer;font-size:13px;font-weight:700;font-family:Inter,sans-serif;transition:all .25s;text-decoration:none}.lesson-lists .nav-btn.active,.lesson-lists .nav-btn:hover{background:#4f11bd;border-color:#4f11bd;color:#fff}.lesson-lists section{display:none;padding:36px 24px;max-width:780px;margin:0 auto;min-height:calc(100vh - 60px)}.lesson-lists section.visible{display:block;animation:fadeUp .4s ease}.lesson-lists h1{font-size:28px;font-weight:700;margin-bottom:8px;color:#111827}.lesson-lists h2{font-size:22px;font-weight:700;margin-bottom:16px;color:#4f11bd}.lesson-lists p{font-size:15px;line-height:1.7;color:#6b7280;margin-bottom:16px}.lesson-lists .emoji-big{font-size:48px;display:block;margin-bottom:12px}.lesson-lists .callout{background:#fff;border-left:4px solid #4f11bd;border-radius:8px;padding:14px 18px;margin-bottom:20px;font-size:14px;color:#374151;box-shadow:0 2px 8px #0000000a}.lesson-lists .callout strong{color:#4f11bd}.lesson-lists pre{background:#1f2937;border:1px solid #374151;border-radius:12px;padding:18px;font-size:14px;font-family:Fira Code,monospace;overflow-x:auto;line-height:1.8;margin-bottom:20px;color:#e5e7eb;white-space:pre-wrap}.lesson-lists .kw{color:#c084fc}.lesson-lists .fn{color:#34d399}.lesson-lists .str{color:#fcd34d}.lesson-lists .num{color:#a78bfa}.lesson-lists .cmt{color:#6b7280}.lesson-lists .var{color:#67e8f9}.lesson-lists .out{color:#fb923c}.lesson-lists .vars-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:12px;margin-bottom:20px}.lesson-lists .var-card{background:#fff;border:1px solid #e5e7eb;border-radius:12px;padding:14px;text-align:center;box-shadow:0 2px 8px #0000000a}.lesson-lists .var-name{font-size:11px;color:#9ca3af;font-family:Fira Code,monospace;margin-bottom:4px}.lesson-lists .var-val{font-size:20px;font-weight:700;color:#7c3aed}.lesson-lists .list-viz{display:flex;gap:4px;align-items:stretch;margin:20px 0;flex-wrap:wrap}.lesson-lists .list-box{background:#fff;border:2px solid #4f11bd;border-radius:10px;min-width:60px;padding:10px 8px;text-align:center;position:relative;transition:all .35s;box-shadow:0 2px 8px #4f11bd14}.lesson-lists .list-box .idx{font-size:10px;color:#9ca3af;font-family:Fira Code,monospace;position:absolute;top:4px;left:0;right:0}.lesson-lists .list-box .val{font-size:17px;font-weight:700;color:#4f11bd;margin-top:10px}.lesson-lists .list-box.highlight{background:#f4eeff;border-color:#7c3aed;transform:translateY(-6px);box-shadow:0 6px 20px #4f11bd26}.lesson-lists .list-box.new-item{animation:popIn .5s ease}@keyframes popIn{0%{transform:translateY(-20px) scale(.7);opacity:0}to{transform:translateY(0) scale(1);opacity:1}}.lesson-lists .controls{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:20px}.lesson-lists input[type=text],.lesson-lists input[type=number]{background:#fff;border:1.5px solid #e5e7eb;border-radius:8px;padding:8px 12px;color:#111827;font-size:14px;width:130px;outline:none;font-family:Inter,sans-serif}.lesson-lists input:focus{border-color:#4f11bd}.lesson-lists button{padding:8px 16px;border-radius:8px;border:1.5px solid #4f11bd;background:#4f11bd;color:#fff;cursor:pointer;font-size:13px;font-weight:700;font-family:Inter,sans-serif;transition:all .2s}.lesson-lists button:hover{background:#7c3aed;border-color:#7c3aed}.lesson-lists button.danger{background:#dc2626;border-color:#dc2626}.lesson-lists button.danger:hover{background:#ef4444;border-color:#ef4444}.lesson-lists button.neutral{background:transparent;color:#6b7280;border-color:#e5e7eb}.lesson-lists button.neutral:hover{background:#f3f4f6;color:#111827}.lesson-lists button.nav-btn{border-color:#e5e7eb}.lesson-lists .output-log{background:#1f2937;border:1px solid #374151;border-radius:10px;padding:14px;min-height:60px;font-family:Fira Code,monospace;font-size:13px;color:#34d399}.lesson-lists .usecase-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:16px;margin-bottom:24px}.lesson-lists .usecase-card{background:#fff;border:1px solid #e5e7eb;border-radius:14px;padding:20px;transition:transform .2s,border-color .2s;cursor:default;box-shadow:0 2px 8px #0000000a}.lesson-lists .usecase-card:hover{transform:translateY(-4px);border-color:#4f11bd;box-shadow:0 8px 24px #4f11bd1a}.lesson-lists .usecase-icon{font-size:32px;margin-bottom:10px}.lesson-lists .usecase-title{font-size:15px;font-weight:700;margin-bottom:6px;color:#4f11bd}.lesson-lists .usecase-desc{font-size:13px;color:#6b7280;line-height:1.5}.lesson-lists .methods-list{display:flex;flex-direction:column;gap:10px}.lesson-lists .method-row{display:flex;align-items:flex-start;gap:14px;background:#fff;border-radius:12px;padding:14px;border:1px solid #e5e7eb;transition:border-color .2s;box-shadow:0 2px 8px #0000000a}.lesson-lists .method-row:hover{border-color:#4f11bd}.lesson-lists .method-name{font-family:Fira Code,monospace;color:#059669;font-size:14px;min-width:120px;font-weight:700}.lesson-lists .method-desc{font-size:13px;color:#6b7280;line-height:1.5}.lesson-lists .method-ex{font-family:Fira Code,monospace;font-size:12px;color:#d97706;margin-top:4px}.lesson-lists .quiz-q{background:#fff;border:1px solid #e5e7eb;border-radius:14px;padding:20px;margin-bottom:16px;box-shadow:0 2px 8px #0000000a}.lesson-lists .quiz-q p{margin-bottom:12px;font-weight:700;color:#111827}.lesson-lists .quiz-opts{display:flex;flex-direction:column;gap:8px}.lesson-lists .quiz-opt{background:#f9fafb;border:1.5px solid #e5e7eb;border-radius:10px;padding:10px 14px;cursor:pointer;font-size:14px;color:#374151;transition:all .2s;font-family:Inter,sans-serif}.lesson-lists .quiz-opt:hover{border-color:#4f11bd;background:#f4eeff}.lesson-lists .quiz-opt.correct{background:#d1fae5;border-color:#059669;color:#059669}.lesson-lists .quiz-opt.wrong{background:#ffe4e6;border-color:#dc2626;color:#dc2626}.lesson-lists .quiz-result{margin-top:10px;font-size:13px}.lesson-lists .story-step.active{animation:fadeIn .4s ease}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.lesson-lists .story-nav{display:flex;gap:10px;align-items:center;margin-top:20px}.lesson-lists .step-dots{display:flex;gap:6px}.lesson-lists .dot{width:8px;height:8px;border-radius:50%;background:#e5e7eb;transition:background .2s}.lesson-lists .dot.active{background:#4f11bd}.lesson-lists .badge{display:inline-block;padding:3px 10px;border-radius:20px;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.5px}.lesson-lists .badge-purple{background:#f4eeff;color:#4f11bd}.lesson-lists .badge-green{background:#d1fae5;color:#059669}.lesson-lists .badge-yellow{background:#fef3c7;color:#d97706}.lesson-lists .progress-wrap{background:#e5e7eb;border-radius:10px;height:6px;margin:16px 0}.lesson-lists .progress-bar{height:6px;border-radius:10px;background:linear-gradient(90deg,#4f11bd,#22f2a1);transition:width .5s}.lesson-lists .shelf{display:flex;gap:3px;align-items:flex-end;margin:16px 0}.lesson-lists .book{width:40px;height:80px;border-radius:4px 4px 0 0;display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:700;writing-mode:vertical-rl;text-orientation:mixed;cursor:default;transition:transform .2s}.lesson-lists .book:hover{transform:translateY(-6px)}.lesson-lists footer{text-align:center;padding:24px;color:#9ca3af;font-size:13px}.lesson{--bg: #f8f9fa;--bg2: #ffffff;--bg3: #f3f4f6;--border: #e5e7eb;--accent: #4f11bd;--accent2: #7c3aed;--accent3: #22f2a1;--accent4: #f59e0b;--purple: #7c3aed;--text: #111827;--muted: #6b7280;--glow: #4f11bd30;--pre-bg: #1f2937;--callout-text: #374151;font-family:Inter,sans-serif;background:var(--bg);color:var(--text);min-height:100vh;overflow-x:hidden}body.light .lesson{--bg: #0d1117;--bg2: #161b22;--bg3: #1c2333;--border: #30363d;--accent: #a78bfa;--accent2: #c4b5fd;--accent3: #34d399;--accent4: #fbbf24;--purple: #c4b5fd;--text: #f3f4f6;--muted: #9ca3af;--glow: #a78bfa40;--pre-bg: #010409;--callout-text: #d1d5db}.lesson *,.lesson *:before,.lesson *:after{transition:background-color .3s ease,border-color .3s ease,color .2s ease,box-shadow .3s ease}.lesson h1,.lesson h2,.lesson h3{font-family:Space Grotesk,sans-serif}.lesson .site-header{display:flex;justify-content:space-between;align-items:center;padding:20px 24px;background:#f8f9facc;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-bottom:1px solid rgba(0,0,0,.05)}.lesson .site-header-container{display:flex;justify-content:space-between;align-items:center;width:100%;max-width:1200px;margin:0 auto}.lesson .site-header .logo{font-family:Space Grotesk,sans-serif;font-size:24px;font-weight:700;color:#4f00b1;display:flex;align-items:center;gap:8px;text-decoration:none}.lesson .site-header .logo-icon{background:#22f2a1;color:#4f00b1;padding:6px;border-radius:8px;display:flex}.lesson .site-nav-links{display:flex;gap:32px;font-weight:500}.lesson .site-nav-links a{color:#6c757d;transition:color .2s ease;text-decoration:none;font-size:16px}.lesson .site-nav-links a:hover{color:#4f00b1}.lesson .site-btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:12px 24px;border-radius:9999px;font-family:Space Grotesk,sans-serif;font-weight:700;font-size:14px;cursor:pointer;transition:all .3s cubic-bezier(.4,0,.2,1);border:none;text-transform:uppercase;text-decoration:none}.lesson .site-btn-primary{background:#4f00b1;color:#fff;box-shadow:0 4px 14px #4f00b14d}.lesson .site-btn-primary:hover{background:#7a33ff;transform:translateY(-2px);box-shadow:0 6px 20px #4f00b166}@media(max-width:768px){.lesson .site-nav-links{display:none}}.lesson .hero{text-align:center;padding:60px 20px 30px;background:radial-gradient(ellipse 80% 60% at 50% 0%,#4f11bd18 0%,transparent 70%);position:relative;overflow:hidden}.lesson .hero:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:repeating-linear-gradient(0deg,transparent,transparent 39px,#ffffff06 39px,#ffffff06 40px),repeating-linear-gradient(90deg,transparent,transparent 39px,#ffffff06 39px,#ffffff06 40px);pointer-events:none}.lesson .hero-badge{display:inline-block;background:#4f11bd15;border:1px solid #4f11bd44;border-radius:99px;padding:4px 16px;font-size:13px;color:var(--accent);font-weight:700;letter-spacing:1px;margin-bottom:16px}body.light .lesson .hero-badge{background:#a78bfa18;border-color:#a78bfa44}.lesson .hero h1{font-size:clamp(32px,6vw,58px);font-weight:900;line-height:1.1;margin-bottom:12px}.lesson .hero h1 span{color:var(--accent)}.lesson .hero p{font-size:17px;color:var(--muted);max-width:540px;margin:0 auto 28px;line-height:1.7}.lesson nav{display:flex;justify-content:center;gap:6px;flex-wrap:wrap;padding:12px 16px;background:var(--bg2);border-bottom:1px solid var(--border);border-top:1px solid var(--border);position:sticky;top:0;z-index:100}.lesson .nav-btn{padding:7px 18px;border-radius:99px;border:1.5px solid var(--border);background:transparent;color:var(--muted);cursor:pointer;font-size:13px;font-weight:700;font-family:Inter,sans-serif;transition:all .2s;text-decoration:none;display:inline-flex;align-items:center}.lesson .nav-btn:hover,.lesson .nav-btn.active{background:var(--accent);border-color:var(--accent);color:#fff;transform:translateY(-1px);box-shadow:0 4px 16px var(--glow)}body.light .lesson .nav-btn.active,body.light .lesson .nav-btn:hover{color:#fff}.lesson .theme-toggle{display:flex;align-items:center;gap:8px;background:var(--bg3);border:1.5px solid var(--border);border-radius:99px;padding:5px 14px 5px 8px;cursor:pointer;font-size:13px;font-weight:700;color:var(--muted);font-family:Inter,sans-serif;margin-left:8px;flex-shrink:0;transition:all .2s}.lesson .theme-toggle:hover{border-color:var(--accent4);color:var(--text)}.lesson .toggle-track{width:36px;height:20px;border-radius:99px;background:var(--bg3);border:1.5px solid var(--border);position:relative;transition:background .3s;flex-shrink:0}body.light .lesson .toggle-track{background:var(--accent4);border-color:var(--accent4)}.lesson .toggle-thumb{position:absolute;top:2px;left:2px;width:14px;height:14px;border-radius:50%;background:var(--muted);transition:transform .3s cubic-bezier(.34,1.56,.64,1),background .3s}body.light .lesson .toggle-thumb{transform:translate(16px);background:#fff}.lesson .toggle-icon{font-size:15px;line-height:1}.lesson section{display:none;padding:36px 20px 60px;max-width:820px;margin:0 auto}.lesson section.visible{display:block;animation:fadeUp .4s ease}@keyframes fadeUp{0%{opacity:0;transform:translateY(18px)}to{opacity:1;transform:none}}.lesson h2{font-size:26px;font-weight:900;margin-bottom:6px}.lesson h2 .emoji{font-size:30px}.lesson .sub{font-size:15px;color:var(--muted);margin-bottom:24px;line-height:1.6}.lesson .callout{background:var(--bg2);border-left:4px solid var(--accent);border-radius:10px;padding:14px 18px;margin-bottom:20px;font-size:14.5px;line-height:1.7;color:var(--callout-text)}.lesson .callout.blue{border-color:var(--accent2)}.lesson .callout.green{border-color:var(--accent3)}.lesson .callout.gold{border-color:var(--accent4)}.lesson .callout.purple{border-color:var(--purple)}.lesson .callout strong{color:var(--accent)}.lesson .callout.blue strong{color:var(--accent2)}.lesson .callout.green strong{color:var(--accent3)}.lesson .callout.gold strong{color:var(--accent4)}.lesson pre{background:var(--pre-bg);border:1px solid var(--border);border-radius:12px;padding:20px;font-size:14px;font-family:Fira Code,monospace;overflow-x:auto;line-height:1.9;margin-bottom:20px;position:relative;color:#e5e7eb}.lesson .kw{color:#c084fc}.lesson .fn{color:#60a5fa}.lesson .str{color:#a7f3d0}.lesson .num{color:#93c5fd}.lesson .cmt{color:#9ca3af;font-style:italic}.lesson .var{color:#e5e7eb}.lesson .out{color:#34d399}.lesson .err{color:#f87171}.lesson .paren{color:#fbbf24}.lesson .cls{color:#fb7185}.lesson .dec{color:#fbbf24}.lesson .cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:14px;margin:20px 0}.lesson .card{background:var(--bg2);border:1.5px solid var(--border);border-radius:14px;padding:18px;transition:transform .2s,border-color .2s,box-shadow .2s}.lesson .card:hover{transform:translateY(-4px);border-color:var(--accent2);box-shadow:0 8px 24px #79c0ff18}.lesson .card .icon{font-size:32px;margin-bottom:10px}.lesson .card h3{font-size:15px;font-weight:800;margin-bottom:6px}.lesson .card p{font-size:13px;color:var(--muted);line-height:1.6}.lesson .card code{font-family:Fira Code,monospace;font-size:12px;color:var(--accent4);background:var(--bg3);padding:2px 6px;border-radius:4px}.lesson table{width:100%;border-collapse:collapse;margin:20px 0;font-size:14px}.lesson th{background:var(--bg3);padding:12px 16px;text-align:left;color:var(--muted);font-weight:700;font-size:12px;letter-spacing:.5px;text-transform:uppercase}.lesson td{padding:12px 16px;border-top:1px solid var(--border)}.lesson tr:hover td{background:var(--bg2)}.lesson .yes{color:#2ba8a0;font-weight:700}.lesson .no{color:var(--accent);font-weight:700}.lesson .demo-box{background:var(--bg2);border:1px solid var(--border);border-radius:14px;padding:20px;margin-bottom:20px}.lesson .demo-box h3{font-size:16px;font-weight:800;margin-bottom:14px}.lesson .demo-controls{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:16px;align-items:center}.lesson .demo-controls input{background:var(--bg3);border:1.5px solid var(--border);border-radius:8px;padding:8px 12px;color:var(--text);font-size:14px;font-family:Fira Code,monospace;outline:none}.lesson .demo-controls input:focus{border-color:var(--accent2)}.lesson .demo-controls select{background:var(--bg3);border:1.5px solid var(--border);border-radius:8px;padding:8px 12px;color:var(--text);font-size:14px;font-family:inherit;outline:none;cursor:pointer}.lesson .btn{padding:8px 18px;border-radius:8px;border:none;font-family:Inter,sans-serif;font-size:14px;font-weight:700;cursor:pointer;transition:all .18s}.lesson .btn-primary{background:var(--accent2);color:#0d1117}.lesson .btn-primary:hover{filter:brightness(1.1);transform:scale(1.03)}.lesson .btn-green{background:var(--accent3);color:#0d1117}.lesson .btn-green:hover{filter:brightness(1.1);transform:scale(1.03)}.lesson .output-log{background:#010409;border:1px solid var(--border);border-radius:10px;padding:14px;font-family:Fira Code,monospace;font-size:13px;line-height:1.9;min-height:60px;color:var(--accent3);max-height:200px;overflow-y:auto;white-space:pre-wrap}.lesson .timeline{position:relative;padding-left:36px}.lesson .timeline:before{content:"";position:absolute;left:12px;top:0;bottom:0;width:2px;background:linear-gradient(var(--accent),var(--accent2),var(--accent3));border-radius:2px}.lesson .tl-item{position:relative;margin-bottom:30px}.lesson .tl-dot{position:absolute;left:-28px;top:4px;width:16px;height:16px;border-radius:50%;background:var(--accent);border:3px solid var(--bg);box-shadow:0 0 10px var(--glow)}.lesson .tl-dot.blue{background:var(--accent2);box-shadow:0 0 10px #79c0ff40}.lesson .tl-dot.green{background:var(--accent3);box-shadow:0 0 10px #56d36440}.lesson .tl-dot.purple{background:var(--purple);box-shadow:0 0 10px #bc8cff40}.lesson .tl-item h3{font-size:15px;font-weight:800;margin-bottom:6px}.lesson .tl-item p{font-size:14px;color:var(--muted);line-height:1.6}.lesson .quiz-q{font-size:16px;font-weight:700;margin-bottom:14px}.lesson .quiz-opts{display:flex;flex-direction:column;gap:8px;margin-bottom:20px}.lesson .quiz-opt{background:var(--bg2);border:1.5px solid var(--border);border-radius:10px;padding:12px 16px;cursor:pointer;font-size:14px;font-weight:600;transition:all .18s;text-align:left;color:var(--text);font-family:Inter,sans-serif}.lesson .quiz-opt:hover:not(:disabled){border-color:var(--accent2);color:var(--accent2)}.lesson .quiz-opt.correct{background:#56d36420;border-color:var(--accent3);color:var(--accent3)}.lesson .quiz-opt.wrong{background:#f7816620;border-color:var(--accent);color:var(--accent)}.lesson .quiz-feedback{font-size:14px;font-weight:700;min-height:22px;margin-bottom:8px}.lesson .q-score{font-size:18px;font-weight:800;color:var(--accent4)}.lesson .progress-bar{display:flex;gap:6px;margin-bottom:28px;flex-wrap:wrap}.lesson .prog-step{flex:1;min-width:40px;height:5px;border-radius:99px;background:var(--bg3);transition:background .3s}.lesson .prog-step.done{background:var(--accent)}.lesson .foot{text-align:center;padding:20px;font-size:12px;color:var(--muted);margin-top:20px}.lesson code{font-family:Fira Code,monospace}.lesson .tuple-rail{display:flex;align-items:center;gap:0;margin:24px 0;overflow-x:auto;padding-bottom:8px}.lesson .tuple-wrap{display:flex;gap:0;align-items:stretch;border:2px solid var(--accent);border-radius:14px;overflow:hidden;box-shadow:0 0 30px var(--glow)}.lesson .t-cell{min-width:72px;padding:14px 10px;text-align:center;background:var(--bg2);border-right:1px solid var(--border);position:relative;transition:background .3s}.lesson .t-cell:last-child{border-right:none}.lesson .t-cell .idx{font-size:10px;color:var(--muted);font-family:Fira Code,monospace}.lesson .t-cell .val{font-size:18px;font-weight:800;color:var(--accent2);margin-top:4px}.lesson .t-cell .lock-icon{position:absolute;top:4px;right:4px;font-size:10px;opacity:.5}.lesson .lock-badge{display:inline-flex;align-items:center;gap:6px;background:#4f11bd18;border:1px solid #4f11bd44;border-radius:99px;padding:4px 14px;font-size:13px;font-weight:700;color:var(--accent);margin-left:12px}body.light .lesson .lock-badge{background:#a78bfa18;border-color:#a78bfa44}.lesson .paren-wrap{display:flex;align-items:center;gap:4px;margin:16px 0;font-size:32px;font-family:Fira Code,monospace;flex-wrap:wrap}.lesson .paren-open,.lesson .paren-close{color:var(--accent4);font-weight:700}.lesson .comma{color:var(--muted);font-size:24px}.lesson .t-input{width:110px;background:var(--bg3);border:1.5px solid var(--border);border-radius:8px;padding:8px 10px;color:var(--text);font-size:14px;font-family:Inter,sans-serif;outline:none}.lesson .t-input:focus{border-color:var(--accent2)}@keyframes shake{0%,to{transform:translate(0)}20%{transform:translate(-6px)}40%{transform:translate(6px)}60%{transform:translate(-4px)}80%{transform:translate(4px)}}.lesson .shake{animation:shake .4s ease}@keyframes popIn{0%{transform:translateY(-12px) scale(.8);opacity:0}to{transform:translateY(0) scale(1);opacity:1}}.lesson .t-cell.pop{animation:popIn .4s ease both}.lesson-vectors{--sky: #f8f9fa;--panel: #ffffff;--card: #ffffff;--accent: #4f00b1;--yellow: #7a33ff;--green: #22f2a1;--blue: #00d382;--purple: #4f00b1;--pink: #7a33ff;--text: #1a1a1a;--muted: #6c757d;background:var(--sky);color:var(--text);font-family:Inter,sans-serif;overflow-x:hidden;min-height:100vh}.lesson-vectors .bg-grid{position:fixed;top:0;left:0;width:100vw;height:100vh;z-index:0;background-image:linear-gradient(to right,rgba(0,0,0,.05) 1px,transparent 1px),linear-gradient(to bottom,rgba(0,0,0,.05) 1px,transparent 1px);background-size:40px 40px;mask-image:radial-gradient(circle at center,black 40%,transparent 80%);-webkit-mask-image:radial-gradient(circle at center,black 40%,transparent 80%);opacity:.6;animation:gridMove 20s linear infinite}.lesson-vectors .container{max-width:860px;margin:0 auto;padding:0 24px 80px;position:relative;z-index:1}.lesson-vectors .hero{text-align:center;padding:60px 0 40px}.lesson-vectors .hero-badge{display:inline-block;background:var(--accent);color:#fff;font-family:Space Grotesk,sans-serif;font-size:13px;letter-spacing:2px;padding:6px 18px;border-radius:30px;margin-bottom:20px;animation:bounce 2s infinite}@keyframes bounce{0%,to{transform:translateY(0)}50%{transform:translateY(-6px)}}.lesson-vectors .hero h1{font-family:Space Grotesk,sans-serif;font-size:clamp(2.4rem,7vw,4.2rem);line-height:1.1;background:linear-gradient(135deg,var(--yellow),var(--accent),var(--pink));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;margin-bottom:16px}.lesson-vectors .hero p{font-size:1.15rem;color:var(--muted);max-width:520px;margin:0 auto;line-height:1.6}.lesson-vectors .section{background:var(--card);border-radius:24px;padding:32px;margin-bottom:32px;border:1px solid rgba(0,0,0,.04);box-shadow:0 8px 40px #00000014;position:relative;overflow:hidden}.lesson-vectors .section:before{content:"";position:absolute;top:0;left:0;right:0;height:3px;border-radius:24px 24px 0 0}.lesson-vectors .section.orange:before{background:linear-gradient(90deg,var(--accent),var(--yellow))}.lesson-vectors .section.teal:before{background:linear-gradient(90deg,var(--green),var(--blue))}.lesson-vectors .section.purple:before{background:linear-gradient(90deg,var(--purple),var(--pink))}.lesson-vectors .section.blue:before{background:linear-gradient(90deg,var(--blue),var(--green))}.lesson-vectors .section.pink:before{background:linear-gradient(90deg,var(--pink),var(--purple))}.lesson-vectors .section-label{font-size:11px;font-weight:800;letter-spacing:3px;text-transform:uppercase;margin-bottom:8px;opacity:.6}.lesson-vectors .section h2{font-family:Space Grotesk,sans-serif;font-size:1.8rem;margin-bottom:16px}.lesson-vectors .section p{color:var(--muted);line-height:1.8;font-size:1.02rem}.lesson-vectors .canvas-box{background:var(--panel);border-radius:16px;padding:16px;margin-top:20px;border:1px solid rgba(0,0,0,.04);text-align:center}.lesson-vectors canvas{border-radius:12px;display:block;margin:0 auto;max-width:100%}.lesson-vectors .canvas-caption{font-size:.82rem;color:var(--muted);margin-top:10px}.lesson-vectors .chips{display:flex;flex-wrap:wrap;gap:10px;margin-top:16px}.lesson-vectors .chip{background:#0000000a;border:1px solid rgba(0,0,0,.08);border-radius:20px;padding:7px 16px;font-size:.88rem;font-weight:700;display:flex;align-items:center;gap:7px}.lesson-vectors .vs-grid{display:grid;grid-template-columns:1fr auto 1fr;gap:12px;align-items:center;margin-top:20px}.lesson-vectors .vs-card{background:#00000005;border-radius:14px;padding:20px;text-align:center}.lesson-vectors .vs-card .big{font-family:Space Grotesk,sans-serif;font-size:1.5rem;margin-bottom:6px}.lesson-vectors .vs-card p{font-size:.88rem;color:var(--muted)}.lesson-vectors .vs-divider{font-family:Space Grotesk,sans-serif;font-size:1.4rem;color:var(--muted);text-align:center}.lesson-vectors .use-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:14px;margin-top:20px}.lesson-vectors .use-card{background:#00000005;border-radius:14px;padding:18px;border:1px solid rgba(0,0,0,.04);transition:transform .2s,box-shadow .2s}.lesson-vectors .use-card:hover{transform:translateY(-4px);box-shadow:0 12px 30px #4f00b126}.lesson-vectors .use-card .icon{font-size:2rem;margin-bottom:10px}.lesson-vectors .use-card h4{font-size:.95rem;font-weight:800;margin-bottom:6px}.lesson-vectors .use-card p{font-size:.82rem;color:var(--muted);line-height:1.5}.lesson-vectors .quiz-q{font-size:1.1rem;font-weight:700;margin-bottom:16px}.lesson-vectors .quiz-opts{display:flex;flex-direction:column;gap:10px}.lesson-vectors .quiz-btn{background:#0000000a;border:2px solid rgba(0,0,0,.04);border-radius:12px;padding:13px 18px;color:var(--text);font-family:Inter,sans-serif;font-size:.95rem;font-weight:700;cursor:pointer;text-align:left;transition:all .2s}.lesson-vectors .quiz-btn:hover{background:#0000000a;transform:translate(4px)}.lesson-vectors .quiz-btn.correct{background:#06d6a033;border-color:var(--green)}.lesson-vectors .quiz-btn.wrong{background:#ff4d9e33;border-color:var(--pink)}.lesson-vectors .quiz-result{margin-top:16px;font-size:1.1rem;font-weight:800}.lesson-vectors .step-row{display:flex;align-items:flex-start;gap:16px;margin-bottom:20px}.lesson-vectors .step-num{width:36px;height:36px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-family:Space Grotesk,sans-serif;font-size:1rem;flex-shrink:0}.lesson-vectors .step-row p{font-size:.97rem;line-height:1.7;color:var(--muted);padding-top:6px}.lesson-vectors .ctrl-row{display:flex;gap:10px;margin-top:14px;flex-wrap:wrap}.lesson-vectors .btn{background:var(--accent);color:#fff;border:none;border-radius:10px;padding:9px 20px;font-family:Inter,sans-serif;font-weight:800;font-size:.9rem;cursor:pointer;transition:transform .15s,opacity .15s}.lesson-vectors .btn:hover{transform:scale(1.05);opacity:.9}.lesson-vectors .btn.secondary{background:#0000000a;color:var(--text)}.lesson-vectors .reveal{opacity:0;transform:translateY(30px);transition:opacity .6s,transform .6s}.lesson-vectors .reveal.visible{opacity:1;transform:translateY(0)}.lesson-vectors nav{display:flex;justify-content:center;padding:16px;background:#f8f9fad9;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);position:sticky;top:0;z-index:100;border-bottom:1px solid rgba(0,0,0,.08)}.lesson-vectors .nav-btn{color:#fff;text-decoration:none;font-weight:800;font-size:13px;background:var(--accent);padding:8px 22px;border-radius:20px;font-family:Space Grotesk,sans-serif;letter-spacing:1px;transition:transform .2s,background .2s}.lesson-vectors .nav-btn:hover{transform:scale(1.05);background:var(--pink)}.lesson-vectors .site-header{display:flex;justify-content:space-between;align-items:center;padding:20px 24px;background:#f8f9facc;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-bottom:1px solid rgba(0,0,0,.05);position:relative;z-index:101}.lesson-vectors .site-header-container{display:flex;justify-content:space-between;align-items:center;width:100%;max-width:1200px;margin:0 auto}.lesson-vectors .site-header .logo{font-family:Space Grotesk,sans-serif;font-size:24px;font-weight:700;color:#4f00b1;display:flex;align-items:center;gap:8px;text-decoration:none}.lesson-vectors .site-header .logo-icon{background:#22f2a1;color:#4f00b1;padding:6px;border-radius:8px;display:flex}.lesson-vectors .site-nav-links{display:flex;gap:32px;font-weight:500;font-family:Inter,sans-serif}.lesson-vectors .site-nav-links a{color:#6c757d;transition:color .2s ease;text-decoration:none;font-size:16px}.lesson-vectors .site-nav-links a:hover{color:#4f00b1}.lesson-vectors .site-btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:12px 24px;border-radius:9999px;font-family:Space Grotesk,sans-serif;font-weight:700;font-size:14px;cursor:pointer;transition:all .3s cubic-bezier(.4,0,.2,1);border:none;text-transform:uppercase;text-decoration:none}.lesson-vectors .site-btn-primary{background:#4f00b1;color:#fff;box-shadow:0 4px 14px #4f00b14d}.lesson-vectors .site-btn-primary:hover{background:#7a33ff;transform:translateY(-2px);box-shadow:0 6px 20px #4f00b166}@media(max-width:768px){.lesson-vectors .site-nav-links{display:none}}.lesson-variables{--primary: #4f00b1;--primary-light: #7a33ff;--secondary: #22f2a1;--secondary-dark: #00d382;--bg: #f8f9fa;--surface: #ffffff;--text: #1a1a1a;--muted: #6c757d;--accent: #4f00b1;--accent-light: rgba(79, 0, 177, .1);--red: #ef4444;--green: #10b981;--blue: #3b82f6;--purple: #7a33ff;--orange: #f59e0b;--border: #e9ecef;--radius-pill: 9999px;font-family:Inter,-apple-system,BlinkMacSystemFont,sans-serif;background:var(--bg);color:var(--text);min-height:100vh;overflow-x:hidden;font-size:16px;line-height:1.6}.lesson-variables h1,.lesson-variables h2,.lesson-variables h3,.lesson-variables h4{font-family:Space Grotesk,sans-serif;font-weight:700;letter-spacing:-.02em}.lesson-variables .bg-grid{position:fixed;top:0;left:0;width:100vw;height:100vh;z-index:-1;background-image:linear-gradient(to right,var(--border) 1px,transparent 1px),linear-gradient(to bottom,var(--border) 1px,transparent 1px);background-size:40px 40px;mask-image:radial-gradient(circle at center,black 40%,transparent 80%);-webkit-mask-image:radial-gradient(circle at center,black 40%,transparent 80%);opacity:.6;animation:gridMove 20s linear infinite}@keyframes gridMove{0%{transform:translateY(0)}to{transform:translateY(40px)}}.lesson-variables nav{position:sticky;top:0;z-index:100;background:#f8f9facc;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-bottom:1px solid rgba(0,0,0,.05);padding:0 24px}.lesson-variables .nav-inner{max-width:1200px;margin:0 auto;display:flex;justify-content:space-between;align-items:center;padding:18px 0}.lesson-variables .logo{font-family:Space Grotesk,sans-serif;font-size:24px;font-weight:700;color:var(--primary);display:flex;align-items:center;gap:8px;text-decoration:none}.lesson-variables .logo-icon{background:var(--secondary);color:var(--primary);padding:6px;border-radius:8px;display:flex}.lesson-variables .nav-links{display:flex;gap:24px;font-weight:500}.lesson-variables .nav-links a{text-decoration:none;color:var(--muted);font-size:.9rem;transition:color .2s;cursor:pointer}.lesson-variables .nav-links a:hover{color:var(--primary)}.lesson-variables .btn-back{display:inline-flex;align-items:center;gap:6px;padding:10px 20px;border-radius:var(--radius-pill);font-family:Space Grotesk,sans-serif;font-weight:700;font-size:14px;background:var(--primary);color:#fff;text-decoration:none;transition:all .3s cubic-bezier(.4,0,.2,1);box-shadow:0 4px 14px #4f00b14d}.lesson-variables .btn-back:hover{background:var(--primary-light);transform:translateY(-2px);box-shadow:0 6px 20px #4f00b166}.lesson-variables header{text-align:center;padding:60px 24px 30px}.lesson-variables header h1{font-size:clamp(2rem,5vw,3rem);font-weight:700;color:var(--text);letter-spacing:-.03em}.lesson-variables header h1 span{color:var(--primary)}.lesson-variables header p{font-size:1.1rem;margin-top:10px;color:var(--muted);max-width:600px;margin-left:auto;margin-right:auto}.lesson-variables section{max-width:960px;margin:24px auto;padding:36px;background:var(--surface);border-radius:16px;border:1px solid var(--border);box-shadow:0 1px 3px #0000000a}.lesson-variables section h2{font-size:1.6rem;font-weight:700;margin-bottom:16px;color:var(--primary);display:flex;align-items:center;gap:10px;flex-wrap:wrap}.lesson-variables section h2 .badge{background:#4f00b11a;color:var(--primary);font-size:.75rem;font-weight:600;padding:3px 10px;border-radius:99px;letter-spacing:.04em;text-transform:uppercase}.lesson-variables section p{margin-bottom:14px;color:var(--text)}.lesson-variables .highlight{color:var(--accent);font-weight:600}.lesson-variables .subtext{color:var(--muted);font-size:.92rem}.lesson-variables pre.code-block{background:#1e293b;color:#e2e8f0;padding:18px 22px;border-radius:10px;font-family:JetBrains Mono,monospace;font-size:.92rem;overflow-x:auto;margin:16px 0;line-height:1.7;white-space:pre}.lesson-variables pre.code-block .kw{color:#b388ff}.lesson-variables pre.code-block .str{color:#34d399}.lesson-variables pre.code-block .num{color:#fbbf24}.lesson-variables pre.code-block .cmt{color:#64748b;font-style:italic}.lesson-variables .assign-stage{position:relative;height:220px;display:flex;justify-content:center;align-items:flex-end;margin:30px 0;border-bottom:2px dashed var(--border);gap:24px}.lesson-variables .slot{width:140px;height:120px;background:var(--bg);border:2px solid var(--border);border-radius:12px;position:relative;display:flex;align-items:center;justify-content:center;font-weight:600;color:var(--muted);font-size:1.15rem;transition:all .3s;font-family:JetBrains Mono,monospace}.lesson-variables .slot:before{content:attr(data-label);position:absolute;top:-30px;background:var(--accent);color:#fff;padding:2px 12px;border-radius:6px;font-size:.8rem;font-family:JetBrains Mono,monospace}.lesson-variables .slot.filled{border-color:var(--accent);background:var(--accent-light);color:var(--accent)}.lesson-variables .value-token{position:absolute;top:-80px;left:50%;transform:translate(-50%);padding:8px 16px;border-radius:10px;font-weight:600;font-size:.95rem;font-family:JetBrains Mono,monospace;opacity:0;white-space:nowrap}.lesson-variables button.play{background:var(--accent);color:#fff;border:none;padding:10px 24px;font-size:.95rem;font-weight:600;border-radius:10px;cursor:pointer;transition:all .15s;font-family:inherit}.lesson-variables button.play:hover{background:var(--primary-light);transform:translateY(-2px);box-shadow:0 6px 20px #4f00b166}.lesson-variables button.play:active{transform:translateY(1px)}.lesson-variables .types-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:16px;margin-top:20px}.lesson-variables .type-card{background:var(--bg);border-radius:14px;padding:22px;border:1px solid var(--border);transition:all .25s}.lesson-variables .type-card:hover{transform:translateY(-4px);box-shadow:0 8px 24px #4f00b11a;border-color:var(--primary)}.lesson-variables .type-card .icon{width:44px;height:44px;border-radius:10px;display:flex;align-items:center;justify-content:center;font-size:1.4rem;margin-bottom:12px}.lesson-variables .type-card h3{font-size:1.05rem;font-weight:700;margin-bottom:6px}.lesson-variables .type-card .desc{color:var(--muted);font-size:.9rem;margin-bottom:10px}.lesson-variables .type-card code{background:#1e293b;color:#34d399;padding:5px 10px;border-radius:6px;display:block;margin:10px 0;font-family:JetBrains Mono,monospace;font-size:.85rem}.lesson-variables .type-card .analogy{font-size:.88rem;color:var(--muted);padding:8px 0 4px;border-top:1px solid var(--border);margin-top:10px}.lesson-variables .type-card .analogy b{color:var(--text)}.lesson-variables .type-card .bits{background:var(--accent-light);color:var(--accent);padding:3px 10px;border-radius:8px;font-size:.78rem;font-weight:600;display:inline-block;margin-top:8px}.lesson-variables .memory-stage{background:#1e293b;border-radius:12px;padding:24px;margin:20px 0}.lesson-variables .memory-grid{display:grid;grid-template-columns:repeat(8,1fr);gap:4px}.lesson-variables .mem-cell{aspect-ratio:1;background:#334155;border:1px solid #475569;border-radius:4px;display:flex;align-items:center;justify-content:center;font-size:.75rem;color:#94a3b8;font-family:JetBrains Mono,monospace;font-weight:500}.lesson-variables .mem-cell.active{background:var(--green);color:#fff;font-weight:700;border-color:var(--green)}.lesson-variables .mem-controls{display:flex;gap:8px;flex-wrap:wrap;margin-top:16px}.lesson-variables .mem-controls button{flex:1;min-width:110px;background:#475569;color:#e2e8f0;border:none;padding:10px;border-radius:8px;cursor:pointer;font-weight:600;font-size:.85rem;font-family:inherit;transition:background .2s}.lesson-variables .mem-controls button:hover{background:var(--primary)}.lesson-variables .mem-info{color:#94a3b8;margin-top:12px;font-size:.9rem;line-height:1.5}.lesson-variables .data-demo{display:flex;gap:16px;align-items:center;flex-wrap:wrap;justify-content:center;margin:24px 0}.lesson-variables .data-item{padding:10px 20px;background:var(--bg);border:2px dashed var(--border);border-radius:10px;font-family:JetBrains Mono,monospace;font-size:.9rem;color:var(--muted);transition:all .3s}.lesson-variables .data-item.labeled{border-color:var(--accent);border-style:solid;background:var(--accent-light);color:var(--accent);font-weight:600}.lesson-variables .arrow-icon{font-size:1.4rem;color:var(--accent)}.lesson-variables ul{margin-left:20px;line-height:2;color:var(--text)}.lesson-variables .quiz-card{background:var(--bg);padding:22px;border-radius:12px;margin:14px 0;border-left:4px solid var(--primary)}.lesson-variables .quiz-card h3{font-size:1rem;font-weight:600;margin-bottom:12px}.lesson-variables .quiz-options{display:flex;flex-direction:column;gap:8px}.lesson-variables .quiz-options button{background:var(--surface);color:var(--text);border:1px solid var(--border);padding:12px 16px;border-radius:10px;cursor:pointer;text-align:left;font-size:.95rem;font-family:inherit;transition:all .15s}.lesson-variables .quiz-options button:hover:not(:disabled){border-color:var(--primary);background:#4f00b114}.lesson-variables .quiz-options button.correct{background:#d1fae5;color:#065f46;border-color:var(--green);animation:pop .4s}.lesson-variables .quiz-options button.wrong{background:#fee2e2;color:#991b1b;border-color:var(--red);animation:shake .4s}@keyframes pop{0%{transform:scale(1)}50%{transform:scale(1.04)}to{transform:scale(1)}}@keyframes shake{0%,to{transform:translate(0)}25%{transform:translate(-6px)}75%{transform:translate(6px)}}.lesson-variables .feedback{margin-top:10px;padding:10px 14px;border-radius:8px;font-size:.9rem}.lesson-variables .feedback.right{background:#d1fae5;color:#065f46}.lesson-variables .feedback.bad{background:#fee2e2;color:#991b1b}.lesson-variables .score-board{text-align:center;font-size:1.3rem;color:var(--text);margin-top:24px;padding:24px;background:#4f00b114;border-radius:14px;border:1px solid var(--primary)}.lesson-variables .score-board b{color:var(--primary)}.lesson-variables .floating{position:fixed;pointer-events:none;z-index:-1;border-radius:50%;opacity:.08}.lesson-variables footer{text-align:center;padding:40px 24px;color:var(--muted);font-size:.85rem;border-top:1px solid rgba(0,0,0,.05);margin-top:40px}.lesson-variables .footer-content{display:flex;flex-direction:column;align-items:center;gap:16px}.lesson-variables .footer-logo{font-family:Space Grotesk,sans-serif;font-weight:700;color:var(--primary);font-size:20px;display:flex;align-items:center;gap:6px}.lesson-variables .footer-text{color:var(--muted);font-size:14px}@media(max-width:768px){.lesson-variables .nav-links{display:none}.lesson-variables section{padding:24px 18px;margin:16px 12px}.lesson-variables .assign-stage{flex-direction:row;gap:12px}.lesson-variables .slot{width:100px;height:90px;font-size:.9rem}}.lesson .fn-machine{display:flex;align-items:center;justify-content:center;gap:0;margin:30px 0;flex-wrap:wrap}.lesson .fn-input-box,.lesson .fn-output-box{background:var(--bg2);border:2px dashed var(--border);border-radius:12px;padding:16px 22px;text-align:center;min-width:120px}.lesson .fn-input-box .label,.lesson .fn-output-box .label{font-size:11px;font-weight:700;text-transform:uppercase;color:var(--muted);letter-spacing:.5px;margin-bottom:6px}.lesson .fn-input-box .value,.lesson .fn-output-box .value{font-family:Fira Code,monospace;font-size:18px;font-weight:800;color:var(--accent2)}.lesson .fn-process-box{background:var(--accent);color:#fff;border-radius:14px;padding:20px 28px;text-align:center;font-weight:800;font-size:16px;box-shadow:0 0 30px var(--glow);position:relative;min-width:160px}.lesson .fn-process-box .fn-label{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.5px;opacity:.7;margin-bottom:4px}.lesson .fn-arrow{font-size:28px;color:var(--accent);padding:0 10px;font-weight:900}@keyframes machineGlow{0%,to{box-shadow:0 0 20px var(--glow)}50%{box-shadow:0 0 40px var(--glow)}}.lesson .fn-process-box.running{animation:machineGlow .8s ease 2}.lesson .scope-viz{margin:20px 0;border:2px solid var(--accent);border-radius:14px;padding:20px;background:var(--bg2);position:relative}.lesson .scope-viz .scope-title{position:absolute;top:-12px;left:16px;background:var(--accent);color:#fff;padding:2px 14px;border-radius:99px;font-size:12px;font-weight:700;letter-spacing:.5px}.lesson .scope-inner{border:2px dashed var(--accent2);border-radius:10px;padding:16px;margin-top:8px;background:var(--bg3);position:relative}.lesson .scope-inner .scope-title{background:var(--accent2)}.lesson .scope-var{display:inline-flex;align-items:center;gap:6px;background:var(--bg2);border:1.5px solid var(--border);border-radius:8px;padding:6px 14px;font-family:Fira Code,monospace;font-size:13px;font-weight:600;margin:4px}.lesson .scope-var .var-name{color:var(--accent2)}.lesson .scope-var .var-val{color:var(--accent3)}.lesson td:first-child{font-family:Fira Code,monospace;color:var(--accent2)}.lesson .btn-danger{background:var(--accent);color:#0d1117}.lesson .btn-danger:hover{filter:brightness(1.1);transform:scale(1.03)}.lesson .demo-controls textarea{background:var(--bg3);border:1.5px solid var(--border);border-radius:8px;padding:8px 12px;color:var(--text);font-size:14px;font-family:Fira Code,monospace;outline:none}.lesson .demo-controls textarea:focus{border-color:var(--accent2)}.lesson .blueprint{display:flex;gap:32px;align-items:flex-start;justify-content:center;margin:30px 0;flex-wrap:wrap}.lesson .bp-box{background:var(--bg2);border:2px solid var(--border);border-radius:16px;padding:22px;min-width:200px;max-width:280px;text-align:center;position:relative}.lesson .bp-box.is-class{border-color:var(--accent);border-style:dashed}.lesson .bp-box.is-object{border-color:var(--accent3);border-style:solid;box-shadow:0 0 20px #22f2a130}.lesson .bp-tag{position:absolute;top:-12px;left:50%;transform:translate(-50%);background:var(--accent);color:#fff;padding:2px 14px;border-radius:99px;font-size:11px;font-weight:800;letter-spacing:.5px;text-transform:uppercase;white-space:nowrap}.lesson .bp-box.is-object .bp-tag{background:var(--accent3);color:#0d1117}.lesson .bp-title{font-family:Fira Code,monospace;font-weight:800;font-size:18px;color:var(--accent2);margin-top:8px;margin-bottom:10px}.lesson .bp-attr{display:flex;align-items:center;gap:8px;font-family:Fira Code,monospace;font-size:13px;padding:4px 0;justify-content:center}.lesson .bp-attr .attr-name{color:var(--accent2)}.lesson .bp-attr .attr-val{color:var(--accent3)}.lesson .bp-arrow{font-size:32px;color:var(--accent);font-weight:900;align-self:center}.lesson .obj-gallery{display:flex;gap:14px;flex-wrap:wrap;margin:16px 0}.lesson .obj-card{background:var(--bg2);border:2px solid var(--accent3);border-radius:14px;padding:16px;min-width:160px;flex:1;text-align:center;transition:transform .2s,box-shadow .2s}.lesson .obj-card:hover{transform:translateY(-4px);box-shadow:0 8px 24px #22f2a120}.lesson .obj-card .obj-emoji{font-size:36px;margin-bottom:8px}.lesson .obj-card .obj-name{font-family:Fira Code,monospace;font-weight:800;font-size:14px;color:var(--accent2);margin-bottom:6px}.lesson .obj-card .obj-detail{font-size:12px;color:var(--muted);line-height:1.5}.lesson .pillars{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:14px;margin:20px 0}.lesson .pillar{background:var(--bg2);border:2px solid var(--border);border-radius:14px;padding:20px 16px;text-align:center;transition:transform .2s,border-color .2s}.lesson .pillar:hover{transform:translateY(-4px);border-color:var(--accent2)}.lesson .pillar .pillar-icon{font-size:36px;margin-bottom:8px}.lesson .pillar h3{font-size:14px;font-weight:800;margin-bottom:4px}.lesson .pillar p{font-size:12px;color:var(--muted);line-height:1.5}.lesson .array-viz{display:flex;gap:0;margin:20px 0;flex-wrap:wrap;justify-content:center}.lesson .arr-cell{background:var(--bg2);border:2px solid var(--accent2);padding:12px 18px;text-align:center;min-width:56px;font-family:Fira Code,monospace;font-weight:800;font-size:16px;color:var(--accent2);position:relative;transition:all .2s}.lesson .arr-cell:first-child{border-radius:12px 0 0 12px}.lesson .arr-cell:last-child{border-radius:0 12px 12px 0}.lesson .arr-cell .idx{position:absolute;top:-18px;left:50%;transform:translate(-50%);font-size:10px;font-weight:700;color:var(--muted);letter-spacing:.5px}.lesson .arr-cell.highlight{background:var(--accent2);color:#fff;box-shadow:0 0 20px var(--glow)}.lesson .arr-label{font-family:Fira Code,monospace;font-size:13px;font-weight:700;color:var(--muted);margin-right:10px;align-self:center}.lesson .shape-box{display:inline-flex;align-items:center;gap:8px;background:var(--bg2);border:1.5px solid var(--border);border-radius:10px;padding:8px 16px;font-family:Fira Code,monospace;font-size:14px;font-weight:700;margin:6px 4px}.lesson .shape-label{color:var(--muted);font-size:12px}.lesson .shape-val{color:var(--accent2)}.lesson .grid-vis{display:inline-grid;gap:0;margin:20px auto;border:2px solid var(--accent2);border-radius:12px;overflow:hidden}.lesson .grid-cell{background:var(--bg2);border:1px solid var(--border);padding:10px 16px;text-align:center;font-family:Fira Code,monospace;font-weight:700;font-size:15px;color:var(--accent2);min-width:50px;transition:all .2s}.lesson .grid-cell.highlight{background:var(--accent2);color:#fff}.lesson .df-table{width:100%;border-collapse:collapse;margin:20px 0;font-size:14px;font-family:Fira Code,monospace;border:2px solid var(--accent2);border-radius:12px;overflow:hidden}.lesson .df-table th{background:var(--accent2);color:#fff;padding:10px 14px;font-size:13px;font-weight:800;text-transform:none;letter-spacing:0}.lesson .df-table td{padding:10px 14px;border-top:1px solid var(--border);text-align:center}.lesson .df-table tr:hover td{background:var(--bg2)}.lesson .df-table .idx{color:var(--muted);font-weight:700;background:var(--bg3);text-align:left}*{margin:0;padding:0;box-sizing:border-box}body{font-family:Inter,sans-serif;background-color:#f8f9fa;color:#1a1a1a;line-height:1.6;overflow-x:hidden}h1,h2,h3,h4{font-family:Space Grotesk,sans-serif;font-weight:700;letter-spacing:-.02em}a{text-decoration:none;color:inherit}button{font-family:inherit}
