/* =========================
   ROOT / RESET / BASE
========================= */

:root{
  --bg:#020617;
  --card:rgba(255,255,255,.04);
  --border:rgba(255,255,255,.08);
  --muted:#94a3b8;
  --primary:#67e8f9;
  --white:#fff;
}

*{
  margin:0;
  padding:0;
  box-sizing:border-box;
  font-family:'Inter',sans-serif;
}

html{
  scroll-behavior:smooth;
}

body{
  background:var(--bg);
  color:var(--white);
  overflow-x:hidden;
  position:relative;
}

/* =========================
   BACKGROUND EFFECTS
========================= */

body::before{
  content:'';
  position:fixed;
  inset:0;
  z-index:-2;
  background:
    radial-gradient(circle at 20% 20%, rgba(34,211,238,.10), transparent 30%),
    radial-gradient(circle at 80% 30%, rgba(99,102,241,.08), transparent 30%),
    radial-gradient(circle at 50% 80%, rgba(236,72,153,.06), transparent 35%);
}

.canvas-glow{
  position:fixed;
  inset:0;
  pointer-events:none;
  z-index:-1;
}

/* =========================
   BUTTONS
========================= */

.btn{
  display:inline-block;
  padding:16px 32px;
  border-radius:999px;
  text-decoration:none;
  font-weight:700;
  transition:.35s;
}

.btn-primary{
  background:linear-gradient(135deg,#67e8f9,#22d3ee);
  color:#04111d;
}

.btn-secondary{
  background:rgba(255,255,255,.03);
  border:1px solid rgba(255,255,255,.10);
  color:#fff;
}

/* =========================
   UNIVERSAL MODAL BASE
========================= */

.universal-modal{
  position:fixed;
  inset:0;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:24px;
  z-index:10000;
  background:rgba(2,6,23,.82);
  backdrop-filter:blur(18px);

  opacity:0;
  visibility:hidden;
  pointer-events:none;
  transition:.35s;
}

.universal-modal.active{
  opacity:1;
  visibility:visible;
  pointer-events:auto;
}

.universal-modal-box{
  width:min(920px,95%);
  max-height:90vh;
  overflow:auto;
  padding:38px;
  border-radius:34px;
  background:#0f172a;
  border:1px solid rgba(255,255,255,.08);
}

.close-universal{
  position:absolute;
  top:18px;
  right:18px;
  width:46px;
  height:46px;
  border:none;
  border-radius:16px;
  background:rgba(255,255,255,.04);
  color:#fff;
  cursor:pointer;
}

/* =========================
   REVEAL ANIMATION
========================= */

.reveal{
  opacity:0;
  transform:translateY(50px);
  transition:.8s ease;
}

.reveal.active{
  opacity:1;
  transform:translateY(0);
}