*,:before,:after{box-sizing:border-box;border-color:hsl(var(--border));margin:0;padding:0}html{scroll-behavior:smooth}body{background:hsl(var(--background));color:hsl(var(--foreground));-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-feature-settings:"rlig" 1, "calt" 1;font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}:root{--background:0 0% 100%;--foreground:220 20% 10%;--card:0 0% 100%;--card-foreground:220 20% 10%;--primary:217 91% 60%;--primary-foreground:0 0% 100%;--secondary:220 15% 96%;--secondary-foreground:220 20% 10%;--muted:220 15% 96%;--muted-foreground:215 20% 45%;--accent:265 80% 65%;--accent-foreground:0 0% 100%;--destructive:0 72% 51%;--destructive-foreground:0 0% 100%;--border:220 15% 90%;--input:220 15% 90%;--ring:217 91% 60%;--radius:.75rem;--glass-bg:0 0% 100%;--glass-border:220 15% 85%}.dark{--background:220 20% 7%;--foreground:210 30% 95%;--card:220 18% 10%;--card-foreground:210 30% 95%;--primary:217 91% 60%;--primary-foreground:220 20% 5%;--secondary:220 15% 16%;--secondary-foreground:210 30% 90%;--muted:220 15% 14%;--muted-foreground:215 20% 55%;--accent:265 80% 65%;--accent-foreground:210 30% 95%;--destructive:0 72% 51%;--destructive-foreground:0 0% 100%;--border:220 15% 18%;--input:220 15% 16%;--ring:217 91% 60%;--glass-bg:220 18% 12%;--glass-border:220 20% 22%}.gradient-text{background:linear-gradient(135deg, hsl(var(--primary)), hsl(var(--accent)));-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text}.glass{background:hsl(var(--glass-bg) / .7);-webkit-backdrop-filter:blur(16px);border-bottom:1px solid hsl(var(--glass-border) / .5)}.card-glow{transition:box-shadow .3s,transform .3s}.card-glow:hover{box-shadow:0 0 30px hsl(var(--primary) / .15), 0 8px 32px #0006;transform:translateY(-2px)}::-webkit-scrollbar{width:6px}::-webkit-scrollbar-track{background:hsl(var(--background))}::-webkit-scrollbar-thumb{background:hsl(var(--border));border-radius:3px}::-webkit-scrollbar-thumb:hover{background:hsl(var(--muted-foreground))}@keyframes bounce{0%,to{transform:translateY(0)translate(-50%)}50%{transform:translateY(-6px)translate(-50%)}}.animate-bounce{animation:1.5s ease-in-out infinite bounce}
