:root{
  --background:250 47% 6%; --foreground:210 40% 98%;
  --card:250 35% 9%; --card-foreground:210 40% 98%;
  --popover:250 40% 8%; --popover-foreground:210 40% 98%;
  --primary:258 90% 66%; --primary-foreground:0 0% 100%;
  --secondary:250 30% 14%; --secondary-foreground:210 40% 98%;
  --muted:250 25% 14%; --muted-foreground:220 15% 65%;
  --accent:327 90% 58%; --accent-foreground:0 0% 100%;
  --destructive:0 84% 60%; --destructive-foreground:0 0% 98%;
  --border:250 25% 16%; --input:250 25% 16%; --ring:258 90% 66%;
  --radius:1.25rem;
}
*{border-color:hsl(var(--border));}
html{scroll-behavior:smooth;}
body{background:hsl(var(--background));color:hsl(var(--foreground));font-family:'Inter',sans-serif;-webkit-font-smoothing:antialiased;overflow-x:hidden;}
h1,h2,h3,h4,.font-heading{font-family:'Plus Jakarta Sans',sans-serif;}
::selection{background:hsl(var(--primary)/0.3);color:hsl(var(--foreground));}
.glass{background:hsl(var(--card)/0.6);backdrop-filter:blur(20px) saturate(180%);-webkit-backdrop-filter:blur(20px) saturate(180%);border:1px solid hsl(var(--border)/0.5);}
.glass-strong{background:hsl(var(--card)/0.85);backdrop-filter:blur(24px) saturate(180%);-webkit-backdrop-filter:blur(24px) saturate(180%);border:1px solid hsl(var(--border)/0.6);}
.gradient-text{background:linear-gradient(135deg,hsl(var(--primary)),hsl(var(--accent)));-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;}
.gradient-text-accent{background:linear-gradient(135deg,hsl(var(--accent)),hsl(var(--primary)));-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;}
.grid-pattern{background-image:none;}
.noise-texture{background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='0.03'/%3E%3C/svg%3E");}
@keyframes marquee{from{transform:translateX(0)}to{transform:translateX(-50%)}}
.animate-marquee{display:flex;width:max-content;animation:marquee 40s linear infinite;}
.animate-marquee:hover{animation-play-state:paused;}
@keyframes blob{0%,100%{transform:translate(0,0) scale(1)}33%{transform:translate(30px,-50px) scale(1.1)}66%{transform:translate(-20px,20px) scale(0.95)}}
.animate-blob{animation:blob 18s ease-in-out infinite;}
@keyframes scrolldot{0%,100%{transform:translateY(0)}50%{transform:translateY(12px)}}
.animate-scroll-dot{animation:scrolldot 1.5s ease-in-out infinite;}
.reveal{opacity:0;transform:translateY(24px);transition:opacity .6s cubic-bezier(.22,1,.36,1),transform .6s cubic-bezier(.22,1,.36,1);}
.reveal.in{opacity:1;transform:none;}
.fade-up{opacity:0;transform:translateY(20px);animation:fadeUp .7s cubic-bezier(.22,1,.36,1) forwards;}
.fade-up.d1{animation-delay:.1s}.fade-up.d2{animation-delay:.25s}.fade-up.d3{animation-delay:.4s}.fade-up.d4{animation-delay:.55s}
@keyframes fadeUp{to{opacity:1;transform:none}}
[data-lucide]{width:1em;height:1em;display:inline-block;vertical-align:middle;stroke-width:2;}
.cursor-grid{position:relative;width:100%;height:100%;overflow:hidden;}
.cursor-grid__canvas{display:block;width:100%;height:100%;}
/* rich content (blog / page HTML) */
.prose-tq{color:hsl(var(--muted-foreground));line-height:1.75;font-size:1.05rem;}
.prose-tq h2{font-size:1.7rem;font-weight:800;color:hsl(var(--foreground));margin:2rem 0 .8rem;}
.prose-tq h3{font-size:1.3rem;font-weight:700;color:hsl(var(--foreground));margin:1.6rem 0 .6rem;}
.prose-tq p{margin:0 0 1.1rem;}
.prose-tq a{color:hsl(var(--accent));text-decoration:underline;}
.prose-tq ul,.prose-tq ol{margin:0 0 1.1rem 1.4rem;}
.prose-tq li{margin:.35rem 0;}
.prose-tq img{border-radius:1rem;margin:1.4rem 0;max-width:100%;}
.prose-tq blockquote{border-left:3px solid hsl(var(--primary));background:hsl(var(--card)/.5);padding:1rem 1.3rem;border-radius:0 1rem 1rem 0;margin:1.4rem 0;color:hsl(var(--foreground));font-style:italic;}
.prose-tq code{background:hsl(var(--secondary));padding:.15rem .45rem;border-radius:.4rem;font-family:'JetBrains Mono',monospace;font-size:.9em;}
.prose-tq pre{background:#0d1526;color:#cfe6ea;padding:1rem 1.2rem;border-radius:.9rem;overflow:auto;margin:1.4rem 0;}
