:root{--color-bg: #0a0a0f;--color-bg-secondary: #12121a;--color-bg-tertiary: #1a1a25;--color-bg-elevated: #1e1e2a;--color-text: #e4e4e7;--color-text-secondary: #a1a1aa;--color-text-muted: #71717a;--color-accent: #818cf8;--color-accent-hover: #a5b4fc;--color-accent-dim: rgba(129, 140, 248, .15);--color-border: #27272a;--color-border-hover: #3f3f46;--color-correct: #34d399;--color-correct-bg: rgba(52, 211, 153, .1);--color-correct-border: rgba(52, 211, 153, .3);--color-wrong: #f87171;--color-wrong-bg: rgba(248, 113, 113, .1);--color-wrong-border: rgba(248, 113, 113, .3);--color-info: #60a5fa;--color-info-bg: rgba(96, 165, 250, .1);--color-warning: #fbbf24;--gradient-primary: linear-gradient(135deg, #818cf8 0%, #c084fc 50%, #f472b6 100%);--gradient-subtle: linear-gradient(135deg, rgba(129, 140, 248, .1) 0%, rgba(192, 132, 252, .1) 100%);--gradient-section: linear-gradient(180deg, rgba(129, 140, 248, .04) 0%, transparent 100%);--font-sans: "Inter", system-ui, -apple-system, sans-serif;--font-mono: "JetBrains Mono", "Fira Code", monospace;--space-xs: .25rem;--space-sm: .5rem;--space-md: 1rem;--space-lg: 1.5rem;--space-xl: 2rem;--space-2xl: 3rem;--space-3xl: 4rem;--radius-sm: .375rem;--radius-md: .5rem;--radius-lg: .75rem;--radius-xl: 1rem;--radius-full: 9999px;--shadow-sm: 0 1px 2px rgba(0, 0, 0, .3);--shadow-md: 0 4px 6px -1px rgba(0, 0, 0, .4);--shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, .5);--shadow-glow: 0 0 40px rgba(129, 140, 248, .15);--shadow-glow-correct: 0 0 20px rgba(52, 211, 153, .15);--shadow-glow-wrong: 0 0 20px rgba(248, 113, 113, .15);--transition-fast: .15s ease;--transition-base: .25s ease;--transition-slow: .35s ease;--container-max: 900px}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{font-family:var(--font-sans);font-size:1rem;line-height:1.6;color:var(--color-text);background:var(--color-bg);min-height:100vh}.app-header{position:sticky;top:0;z-index:100;background:#0a0a0fd9;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);border-bottom:1px solid var(--color-border)}.header-inner{max-width:var(--container-max);margin:0 auto;padding:0 var(--space-lg);display:flex;justify-content:space-between;align-items:center;height:60px}.header-logo{font-weight:700;font-size:1.125rem;background:var(--gradient-primary);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;cursor:pointer;transition:opacity var(--transition-fast)}.header-logo:hover{opacity:.85}.header-nav{display:flex;gap:var(--space-sm)}.header-nav-btn{background:none;border:1px solid transparent;color:var(--color-text-secondary);font-family:inherit;font-size:.8125rem;font-weight:500;padding:var(--space-xs) var(--space-md);border-radius:var(--radius-full);cursor:pointer;transition:all var(--transition-fast)}.header-nav-btn:hover{color:var(--color-text);border-color:var(--color-border-hover)}.header-nav-btn.active{color:var(--color-accent);background:var(--color-accent-dim);border-color:#818cf840}.container{max-width:var(--container-max);margin:0 auto;padding:0 var(--space-lg)}.hero{text-align:center;padding:var(--space-3xl) 0 var(--space-2xl);background:radial-gradient(ellipse at top,rgba(129,140,248,.06) 0%,transparent 60%)}.hero-badge{display:inline-block;padding:var(--space-xs) var(--space-md);background:var(--gradient-subtle);border:1px solid var(--color-border);border-radius:var(--radius-full);font-size:.75rem;color:var(--color-accent);font-weight:500;margin-bottom:var(--space-lg);letter-spacing:.05em}.hero h1{font-size:clamp(2rem,5vw,3rem);line-height:1.15;margin-bottom:var(--space-lg);letter-spacing:-.03em}.hero h1 .gradient-text{background:var(--gradient-primary);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.hero-description{font-size:1.0625rem;color:var(--color-text-secondary);max-width:560px;margin:0 auto var(--space-xl);line-height:1.7}.hero-target{display:inline-flex;align-items:center;gap:var(--space-sm);padding:var(--space-sm) var(--space-lg);background:var(--color-bg-secondary);border:1px solid var(--color-border);border-radius:var(--radius-lg);font-size:.8125rem;color:var(--color-text-muted);margin-bottom:var(--space-2xl)}.hero-target strong{color:var(--color-text-secondary)}.sections-grid{display:grid;gap:var(--space-lg);padding-bottom:var(--space-3xl)}.section-card{background:var(--color-bg-secondary);border:1px solid var(--color-border);border-radius:var(--radius-xl);padding:var(--space-xl) var(--space-xl) var(--space-lg);cursor:pointer;transition:all var(--transition-base);position:relative;overflow:hidden}.section-card:before{content:"";position:absolute;top:0;left:0;right:0;height:3px;background:var(--gradient-primary);opacity:0;transition:opacity var(--transition-base)}.section-card:hover{border-color:var(--color-border-hover);transform:translateY(-2px);box-shadow:var(--shadow-lg)}.section-card:hover:before{opacity:1}.section-card-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:var(--space-sm)}.section-card-number{font-size:.6875rem;font-weight:600;color:var(--color-accent);text-transform:uppercase;letter-spacing:.1em}.section-card-count{font-size:.75rem;color:var(--color-text-muted)}.section-card h3{font-size:1.25rem;font-weight:600;color:var(--color-text);margin-bottom:var(--space-sm);line-height:1.3}.section-card p{font-size:.875rem;color:var(--color-text-secondary);line-height:1.6;margin-bottom:var(--space-md)}.section-card-tags{display:flex;gap:var(--space-xs);flex-wrap:wrap}.section-card-tag{font-size:.6875rem;padding:2px var(--space-sm);background:var(--color-bg-tertiary);border:1px solid var(--color-border);border-radius:var(--radius-full);color:var(--color-text-muted)}.section-card-progress{margin-top:var(--space-md);display:flex;align-items:center;gap:var(--space-sm)}.progress-bar{flex:1;height:4px;background:var(--color-bg-tertiary);border-radius:var(--radius-full);overflow:hidden}.progress-bar-fill{height:100%;background:var(--gradient-primary);border-radius:var(--radius-full);transition:width var(--transition-slow)}.progress-text{font-size:.6875rem;color:var(--color-text-muted);white-space:nowrap}.quiz-view{padding:var(--space-xl) 0 var(--space-3xl)}.quiz-header{display:flex;align-items:center;gap:var(--space-md);margin-bottom:var(--space-2xl)}.quiz-back-btn{background:none;border:1px solid var(--color-border);color:var(--color-text-secondary);font-family:inherit;font-size:.8125rem;padding:var(--space-xs) var(--space-md);border-radius:var(--radius-md);cursor:pointer;transition:all var(--transition-fast);display:flex;align-items:center;gap:var(--space-xs)}.quiz-back-btn:hover{border-color:var(--color-border-hover);color:var(--color-text)}.quiz-progress-info{font-size:.8125rem;color:var(--color-text-muted);margin-left:auto}.quiz-progress-info strong{color:var(--color-accent)}.question-card{background:var(--color-bg-secondary);border:1px solid var(--color-border);border-radius:var(--radius-xl);padding:var(--space-xl);margin-bottom:var(--space-lg);animation:slideUp .35s ease forwards}@keyframes slideUp{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}.question-number{font-size:.6875rem;font-weight:600;color:var(--color-accent);text-transform:uppercase;letter-spacing:.1em;margin-bottom:var(--space-md)}.question-text{font-size:1.0625rem;font-weight:500;line-height:1.6;color:var(--color-text);margin-bottom:var(--space-lg)}.question-context{background:var(--color-bg-tertiary);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:var(--space-md) var(--space-lg);margin-bottom:var(--space-lg);overflow-x:auto}.question-context-label{font-size:.6875rem;font-weight:600;color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.08em;margin-bottom:var(--space-sm)}.question-context pre{font-family:var(--font-mono);font-size:.8125rem;color:var(--color-text-secondary);line-height:1.6;white-space:pre-wrap;word-break:break-all}.choices{display:flex;flex-direction:column;gap:var(--space-sm)}.choice-btn{display:flex;align-items:flex-start;gap:var(--space-md);width:100%;background:var(--color-bg-tertiary);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:var(--space-md) var(--space-lg);cursor:pointer;font-family:inherit;font-size:.9375rem;color:var(--color-text);text-align:left;line-height:1.5;transition:all var(--transition-fast)}.choice-btn:hover:not(:disabled){border-color:var(--color-accent);background:var(--color-accent-dim)}.choice-btn:disabled{cursor:default}.choice-btn .choice-label{display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;border-radius:var(--radius-sm);background:var(--color-bg-secondary);border:1px solid var(--color-border);font-size:.75rem;font-weight:600;color:var(--color-text-muted);flex-shrink:0;margin-top:1px;transition:all var(--transition-fast)}.choice-btn:hover:not(:disabled) .choice-label{border-color:var(--color-accent);color:var(--color-accent)}.choice-btn .choice-text{flex:1}.choice-btn .choice-text code{font-family:var(--font-mono);font-size:.85em;background:#818cf81a;padding:1px 5px;border-radius:var(--radius-sm);color:var(--color-accent)}.choice-btn.correct{border-color:var(--color-correct-border);background:var(--color-correct-bg)}.choice-btn.correct .choice-label{background:var(--color-correct);border-color:var(--color-correct);color:#fff}.choice-btn.wrong{border-color:var(--color-wrong-border);background:var(--color-wrong-bg)}.choice-btn.wrong .choice-label{background:var(--color-wrong);border-color:var(--color-wrong);color:#fff}.choice-btn.dimmed{opacity:.45}.explanation{margin-top:var(--space-lg);padding:var(--space-lg);background:var(--color-bg-tertiary);border:1px solid var(--color-border);border-radius:var(--radius-lg);animation:slideUp .3s ease forwards}.explanation-header{display:flex;align-items:center;gap:var(--space-sm);margin-bottom:var(--space-md)}.explanation-icon{width:20px;height:20px;border-radius:var(--radius-full);display:flex;align-items:center;justify-content:center;font-size:.75rem;font-weight:700}.explanation-icon.correct{background:var(--color-correct);color:#fff}.explanation-icon.wrong{background:var(--color-wrong);color:#fff}.explanation-title{font-size:.875rem;font-weight:600}.explanation-title.correct{color:var(--color-correct)}.explanation-title.wrong{color:var(--color-wrong)}.explanation-text{font-size:.875rem;color:var(--color-text-secondary);line-height:1.7}.explanation-text code{font-family:var(--font-mono);font-size:.85em;background:#818cf81a;padding:1px 5px;border-radius:var(--radius-sm);color:var(--color-accent)}.explanation-text pre{background:var(--color-bg-secondary);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:var(--space-md);margin:var(--space-sm) 0;font-family:var(--font-mono);font-size:.8125rem;overflow-x:auto;white-space:pre-wrap;word-break:break-all}.next-btn{display:inline-flex;align-items:center;gap:var(--space-sm);margin-top:var(--space-lg);padding:var(--space-sm) var(--space-xl);background:var(--gradient-primary);border:none;border-radius:var(--radius-md);color:#fff;font-family:inherit;font-size:.875rem;font-weight:600;cursor:pointer;transition:all var(--transition-fast)}.next-btn:hover{opacity:.9;transform:translateY(-1px);box-shadow:var(--shadow-glow)}.playground{margin-top:var(--space-lg);background:var(--color-bg-secondary);border:1px solid var(--color-border);border-radius:var(--radius-xl);overflow:hidden;animation:slideUp .3s ease forwards}.playground-header{display:flex;align-items:center;justify-content:space-between;padding:var(--space-sm) var(--space-lg);background:var(--color-bg-tertiary);border-bottom:1px solid var(--color-border)}.playground-title{font-size:.75rem;font-weight:600;color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.08em;display:flex;align-items:center;gap:var(--space-sm)}.playground-title:before{content:"▶";color:var(--color-correct);font-size:.625rem}.playground-run-btn{background:var(--color-correct);border:none;color:#fff;font-family:inherit;font-size:.75rem;font-weight:600;padding:var(--space-xs) var(--space-md);border-radius:var(--radius-sm);cursor:pointer;transition:all var(--transition-fast)}.playground-run-btn:hover{opacity:.85;transform:translateY(-1px)}.playground-body{display:grid;grid-template-columns:1fr 1fr;gap:0;min-height:200px}.playground-panel{padding:var(--space-md);position:relative}.playground-panel+.playground-panel{border-left:1px solid var(--color-border)}.playground-panel-label{font-size:.6875rem;font-weight:600;color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.08em;margin-bottom:var(--space-sm)}.playground textarea{width:100%;background:var(--color-bg-tertiary);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:var(--space-md);font-family:var(--font-mono);font-size:.8125rem;color:var(--color-text);line-height:1.6;resize:vertical;min-height:80px;outline:none;transition:border-color var(--transition-fast)}.playground textarea:focus{border-color:var(--color-accent)}.playground-expression{padding:var(--space-md);border-top:1px solid var(--color-border);display:flex;gap:var(--space-sm);align-items:flex-start}.playground-expression label{font-size:.6875rem;font-weight:600;color:var(--color-accent);text-transform:uppercase;letter-spacing:.08em;white-space:nowrap;padding-top:var(--space-sm)}.playground-expression input{flex:1;background:var(--color-bg-tertiary);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:var(--space-sm) var(--space-md);font-family:var(--font-mono);font-size:.875rem;color:var(--color-text);outline:none;transition:border-color var(--transition-fast)}.playground-expression input:focus{border-color:var(--color-accent)}.playground-result{background:var(--color-bg-tertiary);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:var(--space-md);font-family:var(--font-mono);font-size:.8125rem;color:var(--color-correct);line-height:1.6;min-height:80px;white-space:pre-wrap;word-break:break-all}.playground-result.error{color:var(--color-wrong)}.results-view{text-align:center;padding:var(--space-3xl) 0;animation:slideUp .4s ease forwards}.results-card{background:var(--color-bg-secondary);border:1px solid var(--color-border);border-radius:var(--radius-xl);padding:var(--space-2xl);max-width:500px;margin:0 auto}.results-emoji{font-size:3rem;margin-bottom:var(--space-lg)}.results-card h2{font-size:1.5rem;margin-bottom:var(--space-md)}.results-score{font-size:3rem;font-weight:700;background:var(--gradient-primary);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;margin-bottom:var(--space-sm)}.results-detail{font-size:.875rem;color:var(--color-text-secondary);margin-bottom:var(--space-xl)}.results-actions{display:flex;gap:var(--space-md);justify-content:center;flex-wrap:wrap}.btn-secondary{display:inline-flex;align-items:center;gap:var(--space-sm);padding:var(--space-sm) var(--space-lg);background:var(--color-bg-tertiary);border:1px solid var(--color-border);border-radius:var(--radius-md);color:var(--color-text);font-family:inherit;font-size:.875rem;font-weight:500;cursor:pointer;transition:all var(--transition-fast)}.btn-secondary:hover{border-color:var(--color-border-hover);background:var(--color-bg-secondary)}.app-footer{padding:var(--space-xl) 0;border-top:1px solid var(--color-border);text-align:center}.app-footer p{font-size:.8125rem;color:var(--color-text-muted)}.app-footer a{color:var(--color-accent);text-decoration:none}.app-footer a:hover{color:var(--color-accent-hover)}@media (max-width: 700px){.playground-body{grid-template-columns:1fr}.playground-panel+.playground-panel{border-left:none;border-top:1px solid var(--color-border)}.header-nav{gap:var(--space-xs)}.header-nav-btn{font-size:.75rem;padding:var(--space-xs) var(--space-sm)}.quiz-header{flex-wrap:wrap}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.fade-in{animation:fadeIn .5s ease forwards}
