* { box-sizing: border-box; }

body {
  font-family: 'Inter', sans-serif;
  background: #050816;
  color: #fff;
  overflow-x: hidden;
}

::selection {
  background: #67e8f9;
  color: #020617;
}

.noise {
  position: fixed;
  inset: 0;
  pointer-events: none;
  opacity: .065;
  z-index: 80;
  background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.55'/%3E%3C/svg%3E");
}

.aurora {
  background:
    radial-gradient(circle at 15% 15%, rgba(0, 215, 255, .34), transparent 34%),
    radial-gradient(circle at 85% 20%, rgba(139, 92, 246, .30), transparent 30%),
    radial-gradient(circle at 55% 85%, rgba(255, 138, 0, .18), transparent 32%),
    linear-gradient(135deg, #050816 0%, #07111f 48%, #020617 100%);
}

.light-mesh {
  background:
    radial-gradient(circle at 15% 12%, rgba(6,182,212,.13), transparent 32%),
    radial-gradient(circle at 85% 20%, rgba(139,92,246,.10), transparent 30%),
    radial-gradient(circle at 50% 90%, rgba(249,115,22,.10), transparent 34%),
    #fff;
}

.glass {
  background: rgba(255,255,255,.075);
  border: 1px solid rgba(255,255,255,.12);
  box-shadow: 0 24px 90px rgba(0,0,0,.28);
  backdrop-filter: blur(22px);
}

.glass-light {
  background: rgba(255,255,255,.78);
  border: 1px solid rgba(15,23,42,.08);
  box-shadow: 0 24px 70px rgba(15,23,42,.10);
  backdrop-filter: blur(18px);
}

.gradient-text {
  background: linear-gradient(90deg, #67e8f9, #c4b5fd, #fb7185, #fbbf24);
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
}

.mesh-card {
  position: relative;
  overflow: hidden;
  isolation: isolate;
}

.mesh-card::before {
  content: '';
  position: absolute;
  inset: -2px;
  background: conic-gradient(from var(--angle), #22d3ee, #8b5cf6, #fb7185, #f59e0b, #22c55e, #22d3ee);
  z-index: -2;
  animation: spin 9s linear infinite;
}

.mesh-card::after {
  content: '';
  position: absolute;
  inset: 1px;
  border-radius: 30px;
  background: rgba(5,8,22,.88);
  z-index: -1;
}

@property --angle {
  syntax: '<angle>';
  initial-value: 0deg;
  inherits: false;
}

@keyframes spin { to { --angle: 360deg; } }

.blob {
  filter: blur(38px);
  opacity: .72;
  animation: floatBlob 9s ease-in-out infinite alternate;
}

@keyframes floatBlob {
  0% { transform: translate3d(0,0,0) scale(1); }
  50% { transform: translate3d(28px,-36px,0) scale(1.11); }
  100% { transform: translate3d(-20px,24px,0) scale(.94); }
}

.magnetic {
  transition: transform .18s ease, box-shadow .18s ease;
}

.magnetic:hover {
  transform: translateY(-4px);
}

.marquee-track {
  animation: marquee 28s linear infinite;
}

.marquee:hover .marquee-track {
  animation-play-state: paused;
}

@keyframes marquee {
  from { transform: translateX(0); }
  to { transform: translateX(-50%); }
}

.color-pill.active {
  background: #fff;
  color: #020617;
  box-shadow: 0 18px 60px rgba(103,232,249,.20);
}

.progress-line {
  transform-origin: left;
  transform: scaleX(0);
}

.nav-link.active {
  color: white;
  background: rgba(255,255,255,.12);
}

.pellet {
  width: 18px;
  height: 13px;
  border-radius: 999px;
  background: var(--pellet-color, #ef4444);
  box-shadow: inset -3px -4px 8px rgba(0,0,0,.22), inset 3px 3px 8px rgba(255,255,255,.22), 0 10px 22px rgba(0,0,0,.18);
  transform: rotate(var(--r, 0deg));
}

.recipe-ring {
  background: conic-gradient(var(--recipe-color, #ef4444), #0f172a 64%, rgba(255,255,255,.12));
}

.page-hero {
  min-height: 62vh;
  padding-top: 9.5rem;
}

#cursor {
  position: fixed;
  top: 0;
  left: 0;
  width: 42px;
  height: 42px;
  border: 1px solid rgba(103,232,249,.45);
  border-radius: 999px;
  pointer-events: none;
  transform: translate(-50%, -50%);
  z-index: 90;
  mix-blend-mode: difference;
  display: none;
}

@media (min-width: 900px) {
  #cursor { display: block; }
}
