/* ═══════════════════════════════════════════════
   SPARKBIT — SHARED DESIGN SYSTEM
   ═══════════════════════════════════════════════ */

@import url('https://fonts.googleapis.com/css2?family=Playfair+Display:ital,wght@0,500;0,600;1,500;1,600&family=Space+Grotesk:wght@400;500;600;700&family=Inter:wght@400;500&display=swap');

:root {
  --black:    #04040b;
  --deep:     #070710;
  --card:     #0c0c18;
  --card-2:   #10101e;
  --purple:   #6d28d9;
  --violet:   #7c3aed;
  --violet-2: #a78bfa;
  --cyan:     #38bdf8;
  --white:    #ffffff;
  --muted:    #94a3b8;
  --muted-2:  #4b5780;
  --line:     rgba(148,163,184,0.07);
  --line-2:   rgba(148,163,184,0.13);
  --ease:     cubic-bezier(0.16,1,0.3,1);
  --iridescent: linear-gradient(135deg,#c4b5fd 0%,#38bdf8 30%,#a78bfa 60%,#67e8f9 100%);
}

*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
html { -webkit-font-smoothing: antialiased; text-rendering: optimizeLegibility; scroll-behavior: smooth; }

body {
  background: var(--black);
  color: var(--white);
  font-family: 'Inter', -apple-system, sans-serif;
  overflow-x: hidden;
  line-height: 1.6;
}

@media (pointer: fine) { body { cursor: none; } a, button { cursor: none; } }

/* ── CURSOR ─────────────────────────────────────── */
#cur-dot {
  position: fixed; width: 8px; height: 8px;
  background: var(--violet-2); border-radius: 50%;
  pointer-events: none; z-index: 9999;
  transform: translate(-50%,-50%);
  transition: width .25s var(--ease), height .25s var(--ease), opacity .25s;
  mix-blend-mode: screen; will-change: left,top;
}
#cur-ring {
  position: fixed; width: 36px; height: 36px;
  border: 1px solid rgba(167,139,250,.4); border-radius: 50%;
  pointer-events: none; z-index: 9998;
  transform: translate(-50%,-50%);
  transition: width .4s var(--ease), height .4s var(--ease), border-color .3s;
  will-change: left,top;
}
body.ch #cur-dot  { width:14px; height:14px; opacity:.5; }
body.ch #cur-ring { width:52px; height:52px; border-color:rgba(167,139,250,.7); }

/* ── NAV ─────────────────────────────────────────── */
.nav {
  position: fixed; top: 0; left: 0; right: 0; z-index: 200;
  padding: 28px 56px;
  display: flex; align-items: center; justify-content: space-between;
  transition: padding .4s var(--ease), background .4s, backdrop-filter .4s;
}
.nav.scrolled {
  padding: 16px 56px;
  background: rgba(4,4,11,.82);
  backdrop-filter: blur(22px); -webkit-backdrop-filter: blur(22px);
  border-bottom: 1px solid var(--line);
}
.logo { display:flex; align-items:center; gap:13px; text-decoration:none; color:var(--white); }
.logo-svg { width:40px; height:40px; flex-shrink:0; }
.logo-text { font-family:'Space Grotesk',sans-serif; font-size:22px; font-weight:700; letter-spacing:-.04em; }
.logo-text em { font-style:normal; background:linear-gradient(120deg,#c4b5fd 0%,#38bdf8 100%); -webkit-background-clip:text; background-clip:text; -webkit-text-fill-color:transparent; }
.nav-links { display:flex; align-items:center; gap:36px; list-style:none; }
.nav-links a { text-decoration:none; font-size:14px; font-weight:500; color:var(--muted); letter-spacing:.01em; transition:color .2s; }
.nav-links a:hover, .nav-links a.active { color:var(--white); }
.nav-links a.active { color:var(--violet-2); }
.nav-right { display:flex; align-items:center; gap:14px; }

/* ── BUTTONS ─────────────────────────────────────── */
.btn-cta {
  display:inline-flex; align-items:center; gap:8px;
  font-family:'Space Grotesk',sans-serif; font-size:14px; font-weight:600; color:#fff;
  background:linear-gradient(135deg,#7c3aed 0%,#38bdf8 100%);
  padding:12px 26px; border-radius:100px; text-decoration:none;
  letter-spacing:.01em; border:none; position:relative; overflow:hidden;
  transition:transform .35s var(--ease),box-shadow .35s;
  box-shadow:0 1px 0 rgba(255,255,255,.08) inset, 0 0 0 1px rgba(124,58,237,.25), 0 8px 32px rgba(109,40,217,.25);
}
.btn-cta::before { content:''; position:absolute; inset:0; background:linear-gradient(135deg,#8b47ff 0%,#4bc7fb 100%); opacity:0; transition:opacity .3s; }
.btn-cta:hover { transform:translateY(-2px); box-shadow:0 1px 0 rgba(255,255,255,.08) inset, 0 0 0 1px rgba(124,58,237,.45), 0 18px 50px rgba(109,40,217,.4); }
.btn-cta:hover::before { opacity:1; }
.btn-cta span { position:relative; z-index:1; }
.btn-cta svg { position:relative; z-index:1; width:16px; height:16px; transition:transform .3s var(--ease); }
.btn-cta:hover svg { transform:translateX(3px); }

.btn-outline {
  display:inline-flex; align-items:center; gap:8px;
  font-family:'Space Grotesk',sans-serif; font-size:14px; font-weight:600; color:var(--muted);
  text-decoration:none; padding:12px 26px; border-radius:100px;
  border:1px solid var(--line-2); letter-spacing:.01em;
  transition:color .3s, border-color .3s, transform .35s var(--ease);
}
.btn-outline:hover { color:var(--white); border-color:rgba(167,139,250,.3); transform:translateY(-2px); }

/* ── PAGE HERO (inner pages) ─────────────────────── */
.page-hero {
  min-height: 52vh; display:flex; flex-direction:column;
  align-items:center; justify-content:center;
  position:relative; padding:160px 24px 80px; text-align:center;
  overflow:hidden;
}
.page-hero-bg {
  position:absolute; inset:0;
  background: radial-gradient(ellipse 60% 50% at 50% 30%, rgba(124,58,237,.18) 0%, transparent 70%);
  pointer-events:none;
}
.page-hero-grid {
  position:absolute; inset:0;
  background-image: linear-gradient(rgba(167,139,250,.025) 1px, transparent 1px), linear-gradient(90deg, rgba(167,139,250,.025) 1px, transparent 1px);
  background-size: 80px 80px;
  -webkit-mask-image: radial-gradient(ellipse 80% 70% at 50% 40%, black 20%, transparent 80%);
  mask-image: radial-gradient(ellipse 80% 70% at 50% 40%, black 20%, transparent 80%);
  pointer-events:none;
}
.page-hero-content { position:relative; z-index:10; max-width:700px; }
.page-kicker {
  display:inline-block; font-family:'Space Grotesk',sans-serif; font-size:12px; font-weight:600;
  letter-spacing:.14em; text-transform:uppercase; color:var(--cyan); margin-bottom:18px;
}
.page-title {
  font-family:'Playfair Display',serif;
  font-size:clamp(38px,5vw,68px); font-weight:600; line-height:1.08;
  letter-spacing:-.025em; color:var(--white); margin-bottom:20px;
}
.page-title .italic { font-style:italic; }
.page-title .gw {
  background:linear-gradient(120deg,#c4b5fd 20%,#38bdf8 50%,#c4b5fd 80%);
  background-size:200% auto; -webkit-background-clip:text; background-clip:text;
  -webkit-text-fill-color:transparent; animation:shine 6s linear infinite;
}
@keyframes shine { to { background-position:-200% center; } }
.page-sub { font-size:18px; color:var(--muted); line-height:1.65; max-width:520px; margin:0 auto; }

/* ── SECTION COMMONS ──────────────────────────────── */
.sec-kicker {
  display:inline-block; font-family:'Space Grotesk',sans-serif; font-size:12px; font-weight:600;
  letter-spacing:.14em; text-transform:uppercase; color:var(--cyan); margin-bottom:18px;
}
.sec-title {
  font-family:'Playfair Display',serif; font-size:clamp(30px,3.8vw,50px);
  font-weight:600; line-height:1.12; letter-spacing:-.025em; color:var(--white); margin-bottom:18px;
}
.sec-sub { font-size:17px; color:var(--muted); line-height:1.65; }

/* ── IRIDESCENT WATERMARK ─────────────────────────── */
.iridescent-wm {
  position:absolute; pointer-events:none; z-index:0;
  font-family:'Playfair Display',serif; font-weight:600;
  background: var(--iridescent);
  -webkit-background-clip:text; background-clip:text;
  -webkit-text-fill-color:transparent;
  opacity:.04; user-select:none; white-space:nowrap;
  letter-spacing:.06em; text-transform:uppercase;
}

/* ── GLASS CARD ──────────────────────────────────── */
.glass-card {
  background: rgba(12,12,24,.7);
  border: 1px solid var(--line-2);
  border-radius: 20px;
  backdrop-filter: blur(16px);
  -webkit-backdrop-filter: blur(16px);
  position:relative; overflow:hidden;
  transition: border-color .4s, transform .4s var(--ease), box-shadow .4s;
}
.glass-card:hover {
  border-color: rgba(124,58,237,.3);
  transform: translateY(-4px);
  box-shadow: 0 20px 60px rgba(109,40,217,.2);
}
.glass-card::before {
  content:''; position:absolute; inset:0; border-radius:20px;
  background: radial-gradient(400px circle at var(--px,50%) var(--py,50%), rgba(124,58,237,.07), transparent 60%);
  opacity:0; transition:opacity .4s; pointer-events:none;
}
.glass-card:hover::before { opacity:1; }

/* ── FOOTER ──────────────────────────────────────── */
footer { border-top:1px solid var(--line); padding:48px 56px 36px; position:relative; z-index:10; }
.foot-inner { display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:20px; }
.foot-left { display:flex; align-items:center; gap:12px; }
.foot-copy { font-size:13px; color:var(--muted-2); }
.foot-links { display:flex; gap:28px; }
.foot-links a { font-size:13px; color:var(--muted-2); text-decoration:none; transition:color .2s; }
.foot-links a:hover { color:var(--white); }

/* ── SCROLL REVEAL ───────────────────────────────── */
.reveal { opacity:0; transform:translateY(28px); transition:opacity .9s var(--ease), transform .9s var(--ease); }
.reveal.in { opacity:1; transform:none; }
.reveal-delay-1 { transition-delay:.1s; }
.reveal-delay-2 { transition-delay:.2s; }
.reveal-delay-3 { transition-delay:.3s; }
.reveal-delay-4 { transition-delay:.4s; }

/* ── MOBILE MENU ──────────────────────────────────── */
.menu-btn {
  display:none; width:42px; height:42px; border-radius:50%;
  background:none; border:1px solid var(--line-2); color:var(--white);
  align-items:center; justify-content:center; position:relative; z-index:301;
}
.menu-btn svg { width:18px; height:18px; transition:opacity .2s; }
.menu-btn .icon-close { display:none; position:absolute; }
.menu-btn.open .icon-open { display:none; }
.menu-btn.open .icon-close { display:block; }
.mobile-menu {
  position:fixed; inset:0; z-index:250;
  background:rgba(4,4,11,.97); backdrop-filter:blur(24px);
  display:flex; flex-direction:column; align-items:center; justify-content:center; gap:36px;
  opacity:0; visibility:hidden; transform:translateY(-12px);
  transition:opacity .35s var(--ease), transform .35s var(--ease), visibility .35s;
}
.mobile-menu.open { opacity:1; visibility:visible; transform:translateY(0); }
.mobile-menu a { font-family:'Playfair Display',serif; font-size:30px; font-weight:600; color:var(--white); text-decoration:none; letter-spacing:-.02em; opacity:0; transform:translateY(16px); transition:opacity .4s var(--ease), transform .4s var(--ease), color .2s; }
.mobile-menu.open a { opacity:1; transform:translateY(0); }
.mobile-menu.open a:nth-child(1){transition-delay:.05s}
.mobile-menu.open a:nth-child(2){transition-delay:.1s}
.mobile-menu.open a:nth-child(3){transition-delay:.15s}
.mobile-menu.open a:nth-child(4){transition-delay:.2s}
.mobile-menu.open a:nth-child(5){transition-delay:.25s}
.mobile-menu.open a:nth-child(6){transition-delay:.3s}
.mobile-menu a:hover { color:var(--violet-2); }
.mobile-menu .mm-cta { margin-top:8px; opacity:0; transform:translateY(16px); transition:opacity .4s var(--ease) .35s, transform .4s var(--ease) .35s; }
.mobile-menu.open .mm-cta { opacity:1; transform:translateY(0); }
body.menu-open { overflow:hidden; }

@media(max-width:900px) {
  .nav-links { display:none; }
  .nav-right .btn-cta { display:none; }
  .menu-btn {
    display:flex;
    border-color: rgba(167,139,250,.5);
    background: linear-gradient(135deg, rgba(124,58,237,.18), rgba(56,189,248,.12));
    box-shadow: 0 0 0 1px rgba(124,58,237,.3), 0 4px 20px rgba(109,40,217,.35);
    color: var(--violet-2);
  }
  .menu-btn.open { border-color:rgba(56,189,248,.6); box-shadow:0 0 0 1px rgba(56,189,248,.4), 0 4px 24px rgba(56,189,248,.4); color:var(--cyan); }
  .nav { padding:22px 28px; }
  .nav.scrolled { padding:16px 28px; }
  footer { padding:40px 28px 28px; }
  .foot-inner { flex-direction:column; align-items:flex-start; }
}

@media(prefers-reduced-motion:reduce) {
  *, *::before, *::after { animation-duration:.01ms!important; transition-duration:.01ms!important; }
  .reveal { opacity:1; transform:none; }
}
