:root{--font-ui: "Outfit", sans-serif;--font-mono: "Fira Code", monospace;--fw-ghost: 200;--fw-body: 300;--fw-label: 400;--fw-ui: 500;--fw-sub: 600;--fw-title: 700;--fw-heading: 800;--fw-display: 900;--text-2xs: 11px;--text-xs: 13px;--text-sm: 15px;--text-base: 17px;--text-md: 20px;--text-lg: 24px;--text-xl: 30px;--text-2xl: 38px;--text-3xl: 52px;--lh-tight: 1.1;--lh-snug: 1.25;--lh-normal: 1.45;--lh-relaxed: 1.65}*{margin:0;padding:0;box-sizing:border-box}body{font-family:var(--font-ui);font-weight:var(--fw-body);font-size:var(--text-base);line-height:var(--lh-normal);background:#0a0a0f;color:#e2e8f0;min-height:100vh;overflow-x:hidden;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.t-display{font-weight:var(--fw-display);font-size:var(--text-3xl);line-height:var(--lh-tight)}.t-heading{font-weight:var(--fw-heading);font-size:var(--text-xl);line-height:var(--lh-snug)}.t-title{font-weight:var(--fw-title);font-size:var(--text-lg);line-height:var(--lh-snug)}.t-sub{font-weight:var(--fw-sub);font-size:var(--text-md);line-height:var(--lh-snug)}.t-body{font-weight:var(--fw-body);font-size:var(--text-base);line-height:var(--lh-normal)}.t-label{font-weight:var(--fw-label);font-size:var(--text-sm);line-height:var(--lh-snug)}.t-caption{font-weight:var(--fw-ui);font-size:var(--text-xs);line-height:var(--lh-snug);letter-spacing:.4px}.t-micro{font-weight:var(--fw-sub);font-size:var(--text-2xs);line-height:var(--lh-snug);letter-spacing:1px;text-transform:uppercase}code,pre,.mono{font-family:var(--font-mono);font-variant-ligatures:contextual;font-feature-settings:"calt" 1}::-webkit-scrollbar{width:6px}::-webkit-scrollbar-track{background:#0a0a0f}::-webkit-scrollbar-thumb{background:#7c3aed;border-radius:3px}::-webkit-scrollbar-thumb:hover{background:#9d5bf4}.neon-purple{box-shadow:0 0 20px #7c3aed80}.neon-cyan{box-shadow:0 0 20px #06b6d480}.glow-text{text-shadow:0 0 30px rgba(124,58,237,.8)}.card-flip-container{perspective:1000px;cursor:pointer}.card-flip{transform-style:preserve-3d;transition:transform .6s cubic-bezier(.4,0,.2,1);position:relative}.card-flip.flipped{transform:rotateY(180deg)}.card-face{backface-visibility:hidden;-webkit-backface-visibility:hidden;position:absolute;top:0;left:0;width:100%;height:100%}.card-back{transform:rotateY(180deg)}@keyframes float{0%,to{transform:translateY(0)}50%{transform:translateY(-10px)}}@keyframes pulse-glow{0%,to{box-shadow:0 0 20px #7c3aed4d}50%{box-shadow:0 0 40px #7c3aedcc,0 0 60px #7c3aed66}}@keyframes pulse-ring{0%,to{transform:scale(1);opacity:1}50%{transform:scale(1.08);opacity:.7}}@keyframes gradient-drift{0%{background-position:0% 50%}50%{background-position:100% 50%}to{background-position:0% 50%}}@keyframes scan-line{0%{transform:translateY(-100%)}to{transform:translateY(400%)}}@keyframes spark{0%{transform:translate(0) scale(1);opacity:1}to{transform:translate(var(--tx),var(--ty)) scale(0);opacity:0}}@keyframes orbit{0%{transform:rotate(0) translate(28px) rotate(0)}to{transform:rotate(360deg) translate(28px) rotate(-360deg)}}@keyframes discover-pulse{0%,to{box-shadow:0 0 0 0 var(--glow)}50%{box-shadow:0 0 0 12px transparent}}@keyframes shimmer{0%{background-position:-200% center}to{background-position:200% center}}@keyframes module-skeleton-sweep{0%,62%{transform:translateY(155%) skew(-12deg);opacity:0}65%{transform:translateY(155%) skew(-12deg);opacity:0;animation-timing-function:cubic-bezier(.22,1,.36,1)}89%{transform:translateY(-155%) skew(-12deg);opacity:1}93%,to{transform:translateY(-155%) skew(-12deg);opacity:0}}@keyframes module-skeleton-sweep-soft{0%,70%{transform:translateY(155%) skew(-12deg);opacity:0}73%{transform:translateY(155%) skew(-12deg);opacity:0;animation-timing-function:cubic-bezier(.22,1,.36,1)}95%{transform:translateY(-155%) skew(-12deg);opacity:.5}98%,to{transform:translateY(-155%) skew(-12deg);opacity:0}}.chapter-scroll{scrollbar-width:thin;scrollbar-color:var(--scroll-color, rgba(255,255,255,.18)) transparent}.chapter-scroll::-webkit-scrollbar{width:3px}.chapter-scroll::-webkit-scrollbar-track{background:transparent}.chapter-scroll::-webkit-scrollbar-thumb{background:var(--scroll-color, rgba(255,255,255,.18));border-radius:999px}@keyframes particle-burst{0%{transform:scale(0) rotate(0);opacity:1}to{transform:scale(1.5) rotate(360deg);opacity:0}}@keyframes screen-flash{0%{opacity:0}50%{opacity:.3}to{opacity:0}}.shimmer-text{background:linear-gradient(90deg,#7c3aed,#06b6d4,#7c3aed,#06b6d4);background-size:200% auto;-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;animation:shimmer 3s linear infinite}.grid-bg{background-image:linear-gradient(rgba(124,58,237,.05) 1px,transparent 1px),linear-gradient(90deg,rgba(124,58,237,.05) 1px,transparent 1px);background-size:50px 50px}.glass{background:#ffffff08;backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border:1px solid rgba(255,255,255,.08)}.glass-hover{transition:all .3s ease}.glass-hover:hover{background:#ffffff0f;border-color:#7c3aed66;transform:translateY(-4px);box-shadow:0 20px 40px #0006,0 0 30px #7c3aed33}.btn-primary{background:linear-gradient(135deg,#7c3aed,#5b21b6);border:none;color:#fff;padding:12px 28px;border-radius:12px;font-weight:700;font-size:17px;cursor:pointer;transition:all .3s ease;font-family:var(--font-ui)}.btn-primary:hover{transform:translateY(-2px);box-shadow:0 10px 30px #7c3aed80}.btn-secondary{background:#06b6d426;border:1px solid rgba(6,182,212,.4);color:#06b6d4;padding:10px 24px;border-radius:10px;font-weight:600;font-size:16px;cursor:pointer;transition:all .3s ease;font-family:var(--font-ui)}.btn-secondary:hover{background:#06b6d440;transform:translateY(-2px);box-shadow:0 8px 20px #06b6d44d}.xp-bar-fill{background:linear-gradient(90deg,#7c3aed,#06b6d4);transition:width 1s cubic-bezier(.4,0,.2,1);position:relative;overflow:hidden}.xp-bar-fill:after{content:"";position:absolute;top:0;left:-100%;width:100%;height:100%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.3),transparent);animation:shimmer 2s linear infinite}.tab-active{background:linear-gradient(135deg,#7c3aed22,#06b6d422);border-bottom:2px solid #7c3aed;color:#a78bfa}.code-block{font-family:var(--font-mono);background:#0d0d1a;border:1px solid rgba(124,58,237,.3);border-radius:12px;padding:20px;white-space:pre;overflow-x:auto;font-size:14px;line-height:1.7;color:#a78bfa}.answer-correct{animation:correctFlash .6s ease}.answer-wrong{animation:wrongFlash .6s ease}@keyframes correctFlash{0%{background:#10b98100}30%{background:#10b9814d}to{background:#10b98100}}@keyframes wrongFlash{0%{background:#ef444400}30%{background:#ef44444d}to{background:#ef444400}}@keyframes xpPop{0%{transform:translateY(0) scale(1);opacity:1}to{transform:translateY(-60px) scale(1.5);opacity:0}}.xp-pop{animation:xpPop 1s ease forwards;pointer-events:none;position:fixed;z-index:9999;font-family:var(--font-ui);font-weight:900;font-size:28px;color:#7c3aed;text-shadow:0 0 20px rgba(124,58,237,.8)}
