:root{--primary-gradient:linear-gradient(135deg,#667eea,#764ba2);--success-gradient:linear-gradient(135deg,#4ade80,#3b82f6);--glass-bg:rgba(255,255,255,0.1);--glass-border:rgba(255,255,255,0.2);--shadow-lg:0 20px 60px rgba(0,0,0,0.3);--shadow-sm:0 10px 30px rgba(0,0,0,0.1);--transition-smooth:all 0.4s cubic-bezier(0.4,0,0.2,1)}.dark-theme{--glass-bg:rgba(0,0,0,0.2);--glass-border:rgba(255,255,255,0.1)}body,html{margin:0;padding:0;min-height:100vh;font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;transition:color .6s cubic-bezier(.4,0,.2,1);box-sizing:border-box;scroll-behavior:smooth;scroll-padding-top:80px;background:linear-gradient(135deg,var(--bg-start,#f8fafc) 0,var(--bg-end,#e2e8f0) 100%)}.dark-theme body{background:linear-gradient(135deg,var(--bg-start,#0f172a) 0,var(--bg-end,#1e293b) 100%)}*,:after,:before{box-sizing:inherit}.nav-link,.navbar-nav .nav-link,a[href^="#"],nav a{scroll-behavior:smooth;scroll-margin-top:80px}.nav-link,.navbar-nav .nav-link,nav a{transition:all .3s cubic-bezier(.4,0,.2,1)}.scroll-to,[data-scroll],[href*="#"]{scroll-behavior:smooth;scroll-margin-top:80px;transition:scroll-behavior .3s ease}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-track{background:var(--bs-light,#f1f1f1);border-radius:5px}.dark-theme ::-webkit-scrollbar-track{background:var(--bs-dark,#2d3748)}::-webkit-scrollbar-thumb{background:linear-gradient(135deg,#3b82f6,#8b5cf6);border-radius:5px}::-webkit-scrollbar-thumb:hover{background:linear-gradient(135deg,#2563eb,#7c3aed)}@keyframes float{0%,to{transform:translateY(0)}50%{transform:translateY(-20px)}}@keyframes glow{0%,to{box-shadow:0 0 20px rgba(59,130,246,.5)}50%{box-shadow:0 0 40px rgba(59,130,246,.8)}}@keyframes slideInFromBottom{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}@keyframes gradientShift{0%{background-position:0 50%}50%{background-position:100% 50%}to{background-position:0 50%}}.float-animation{animation:float 6s ease-in-out infinite}.glow-animation{animation:glow 2s ease-in-out infinite}.gradient-text{background:linear-gradient(135deg,#3b82f6,#8b5cf6,#ec4899);background-size:200% auto;-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;animation:gradientShift 3s ease infinite}.glass-effect{background:var(--glass-bg);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border:1px solid var(--glass-border)}.hover-lift{transition:var(--transition-smooth)}.hover-lift:hover{transform:translateY(-5px);box-shadow:var(--shadow-lg)}.progress-bar{position:fixed;top:0;left:0;right:0;height:3px;background:linear-gradient(90deg,#3b82f6,#8b5cf6);transform-origin:0;z-index:9999}.sandpack-container{border-radius:12px;overflow:hidden;box-shadow:var(--shadow-lg);transition:var(--transition-smooth)}.sandpack-container:hover{transform:translateY(-2px);box-shadow:var(--shadow-lg)}.quiz-item{transition:var(--transition-smooth);border-radius:10px;overflow:hidden}.quiz-item:hover{transform:scale(1.02);box-shadow:var(--shadow-sm)}.nav-link-hover{position:relative;overflow:hidden}.nav-link-hover:after{content:"";position:absolute;bottom:0;left:-100%;width:100%;height:2px;background:linear-gradient(90deg,transparent,#3b82f6,transparent);transition:left .3s ease}.nav-link-hover:hover:after{left:100%}.btn-gradient{background:linear-gradient(135deg,#3b82f6,#8b5cf6);border:none;color:white;transition:var(--transition-smooth);position:relative;overflow:hidden}.btn-gradient:before{content:"";position:absolute;top:0;left:-100%;width:100%;height:100%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.2),transparent);transition:left .5s ease}.btn-gradient:hover:before{left:100%}.btn-gradient:hover{transform:translateY(-2px);box-shadow:0 10px 30px rgba(59,130,246,.4)}.table-hover-glow tbody tr{transition:var(--transition-smooth)}.table-hover-glow tbody tr:hover{background:linear-gradient(90deg,rgba(59,130,246,.1),rgba(139,92,246,.1));transform:translateX(5px)}.skeleton{background:linear-gradient(90deg,var(--bs-secondary-bg) 25%,var(--bs-tertiary-bg) 50%,var(--bs-secondary-bg) 75%);background-size:200% 100%;animation:loading 1.5s infinite}@keyframes loading{0%{background-position:200% 0}to{background-position:-200% 0}}@media (max-width:768px){.glass-effect{backdrop-filter:none;-webkit-backdrop-filter:none}}@media (prefers-reduced-motion:reduce){*,:after,:before{transition:none!important;animation:none!important}}