:root{
  --grad: linear-gradient(115deg,#7c3aed 0%,#6366f1 45%,#22d3ee 100%);
  --grad-soft: linear-gradient(115deg,rgba(124,58,237,.18),rgba(99,102,241,.14),rgba(34,211,238,.18));
}
*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  background:#060608;
  color:#e7e7ef;
  font-family:'Inter',sans-serif;
  overflow-x:hidden;
}
h1,h2,h3,h4,.font-display{font-family:'Space Grotesk',sans-serif;}

::selection{background:#7c3aed; color:#fff;}

.grad-text{
  background:var(--grad);
  -webkit-background-clip:text;
  background-clip:text;
  color:transparent;
}
.grad-bg{background:var(--grad);}
.glass{
  background:rgba(255,255,255,.035);
  border:1px solid rgba(255,255,255,.09);
  backdrop-filter:blur(18px);
}
.glass-strong{
  background:rgba(15,15,22,.72);
  border:1px solid rgba(255,255,255,.08);
  backdrop-filter:blur(20px);
}
.card-hover{transition:transform .45s cubic-bezier(.16,1,.3,1), border-color .45s, box-shadow .45s;}
.card-hover:hover{
  transform:translateY(-6px);
  border-color:rgba(124,58,237,.45);
  box-shadow:0 25px 60px -20px rgba(124,58,237,.35);
}
.btn-primary{
  background:var(--grad);
  background-size:180% 180%;
  transition:background-position .6s ease, transform .3s ease, box-shadow .3s ease;
  box-shadow:0 10px 40px -10px rgba(124,58,237,.55);
}
.btn-primary:hover{background-position:100% 50%; transform:translateY(-2px); box-shadow:0 18px 50px -12px rgba(34,211,238,.45);}
.btn-ghost{
  border:1px solid rgba(255,255,255,.18);
  transition:all .3s ease;
}
.btn-ghost:hover{border-color:rgba(255,255,255,.5); background:rgba(255,255,255,.06);}

.blob{position:absolute; border-radius:9999px; filter:blur(90px); opacity:.55; pointer-events:none;}
.blob-anim{animation:float 14s ease-in-out infinite;}
@keyframes float{
  0%,100%{transform:translate(0,0) scale(1);}
  50%{transform:translate(40px,-30px) scale(1.08);}
}
@keyframes floatSlow{
  0%,100%{transform:translate(0,0);}
  50%{transform:translate(-30px,25px);}
}
.noise::before{
  content:"";
  position:absolute; inset:0;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='120'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='0.035'/%3E%3C/svg%3E");
  pointer-events:none;
}

.marquee-track{display:flex; width:max-content; animation:marquee 32s linear infinite;}
@keyframes marquee{from{transform:translateX(0);} to{transform:translateX(-50%);}}

.num-badge{
  width:2.75rem; height:2.75rem;
  display:flex; align-items:center; justify-content:center;
  border-radius:9999px;
  background:var(--grad-soft);
  border:1px solid rgba(255,255,255,.12);
  font-family:'Space Grotesk',sans-serif;
  font-weight:600;
}

.nav-link{position:relative;}
.nav-link::after{
  content:"";
  position:absolute; left:0; bottom:-4px;
  width:0; height:1.5px;
  background:var(--grad);
  transition:width .3s ease;
}
.nav-link:hover::after{width:100%;}

details > summary{list-style:none; cursor:pointer;}
details > summary::-webkit-details-marker{display:none;}
details[open] .chev{transform:rotate(45deg);}
.chev{transition:transform .3s ease;}

.tilt-card{transition:transform .5s ease;}

::-webkit-scrollbar{width:10px;}
::-webkit-scrollbar-track{background:#060608;}
::-webkit-scrollbar-thumb{background:linear-gradient(#7c3aed,#22d3ee); border-radius:6px;}

.section-label{
  letter-spacing:.2em;
  text-transform:uppercase;
  font-size:.72rem;
  font-weight:600;
}

.stat-count{font-variant-numeric:tabular-nums;}

.form-input{
  background:rgba(255,255,255,.04);
  border:1px solid rgba(255,255,255,.12);
  transition:border-color .3s, background .3s;
}
.form-input:focus{outline:none; border-color:#7c3aed; background:rgba(255,255,255,.07);}

/* Cookie consent banner */
#cookieBanner{
  position:fixed; left:0; right:0; bottom:0; z-index:80;
  background:rgba(10,10,15,.92);
  border-top:1px solid rgba(255,255,255,.1);
  backdrop-filter:blur(16px);
  padding:1.1rem 1.25rem;
}
#cookieBanner.hidden{display:none;}

/* Long-form article typography (blog posts) */
.prose-article{color:#cfd0da; line-height:1.85;}
.prose-article h2{font-family:'Space Grotesk',sans-serif; color:#fff; font-weight:700; font-size:1.6rem; margin:2.4rem 0 1rem;}
.prose-article h3{font-family:'Space Grotesk',sans-serif; color:#fff; font-weight:600; font-size:1.25rem; margin:1.8rem 0 .8rem;}
.prose-article p{margin:1rem 0;}
.prose-article ul,.prose-article ol{margin:1rem 0 1rem 1.4rem; display:flex; flex-direction:column; gap:.5rem;}
.prose-article li{list-style:disc;}
.prose-article a{color:#a5b4fc; text-decoration:underline; text-underline-offset:3px;}
.prose-article strong{color:#fff; font-weight:600;}
.prose-article blockquote{border-left:2px solid #7c3aed; padding-left:1.2rem; color:#e7e7ef; font-style:italic; margin:1.6rem 0;}
