@import url('https://fonts.googleapis.com/css2?family=DM+Serif+Display:ital@0;1&family=Outfit:wght@200;300;400&display=swap');

:root {
  --void:   #03030a;
  --deep:   #070710;
  --lift:   #0d0d1c;
  --edge:   #161628;
  --line:   rgba(255,255,255,0.055);
  --white:  #f0ece6;
  --mist:   rgba(240,236,230,0.78);
  --fog:    rgba(240,236,230,0.38);
  --ghost:  rgba(240,236,230,0.06);
  --silver: #a8a49c;
  --dim:    #6a6660;
  --plasma: #7b6cff;
  --aurora: #4ecdc4;
  --ember:  #ff6b4a;
  --glow:   rgba(123,108,255,0.12);
}

*, *::before, *::after { margin:0; padding:0; box-sizing:border-box; }
html { scroll-behavior:smooth; }

body {
  background: var(--void);
  color: var(--white);
  font-family: 'Outfit', sans-serif;
  font-weight: 300;
  overflow-x: hidden;
  cursor: none;
}

/* grain */
body::after {
  content:''; position:fixed; inset:0; z-index:800; pointer-events:none;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='180' height='180' filter='url(%23n)' opacity='0.028'/%3E%3C/svg%3E");
}

/* ── cursor ── */
#cur { width:6px; height:6px; background:var(--white); border-radius:50%; position:fixed; z-index:9999; transform:translate(-50%,-50%); pointer-events:none; mix-blend-mode:difference; transition:transform .1s; }
#cur-ring { width:36px; height:36px; border:1px solid rgba(255,255,255,0.12); border-radius:50%; position:fixed; z-index:9998; transform:translate(-50%,-50%); pointer-events:none; transition:all .25s cubic-bezier(.23,1,.32,1); }
body:has(a:hover) #cur-ring { width:56px; height:56px; border-color:rgba(123,108,255,0.35); }
body:has(button:hover) #cur-ring { width:56px; height:56px; border-color:rgba(123,108,255,0.35); }

/* ── nav ── */
nav {
  position:fixed; top:0; left:0; right:0; z-index:600;
  height:68px; display:flex; align-items:center; justify-content:space-between;
  padding:0 3rem;
  border-bottom:1px solid var(--line);
  background:rgba(3,3,10,0.75);
  backdrop-filter:blur(28px); -webkit-backdrop-filter:blur(28px);
}
.nav-logo {
  font-family:'DM Serif Display',serif; font-style:italic;
  font-size:1.35rem; letter-spacing:0.01em;
  color:var(--white); text-decoration:none;
}
.nav-logo span { font-style:normal; opacity:.45; }
.nav-links { display:flex; gap:2.8rem; list-style:none; }
.nav-links a {
  font-size:0.6rem; font-weight:300; letter-spacing:0.2em; text-transform:uppercase;
  color:var(--silver); text-decoration:none; transition:color .35s;
}
.nav-links a:hover, .nav-links a.active { color:var(--white); }
.nav-cta {
  font-size:0.58rem; font-weight:300; letter-spacing:0.18em; text-transform:uppercase;
  color:var(--void); background:var(--white); padding:0.65rem 1.6rem;
  text-decoration:none; transition:all .35s; display:inline-block;
}
.nav-cta:hover { background:var(--plasma); color:var(--white); }
.nav-burger { display:none; flex-direction:column; gap:5px; background:none; border:none; cursor:none; }
.nav-burger span { display:block; width:20px; height:1px; background:var(--silver); transition:all .3s; }
.nav-mobile {
  display:none; position:fixed; top:68px; left:0; right:0; bottom:0;
  background:var(--void); z-index:500; flex-direction:column;
  padding:3.5rem 3rem; gap:2rem; border-top:1px solid var(--line);
}
.nav-mobile.open { display:flex; }
.nav-mobile a {
  font-family:'DM Serif Display',serif; font-style:italic; font-size:2.5rem;
  color:var(--fog); text-decoration:none; transition:color .3s;
  border-bottom:1px solid var(--line); padding-bottom:1.5rem;
}
.nav-mobile a:hover { color:var(--white); }

/* ── section label ── */
.s-label {
  font-size:0.52rem; font-weight:300; letter-spacing:0.38em; text-transform:uppercase;
  color:var(--silver); margin-bottom:4rem;
  display:flex; align-items:center; gap:1.5rem;
}
.s-label::before { content:''; width:24px; height:1px; background:var(--dim); flex-shrink:0; }

/* ── ticker ── */
.ticker { overflow:hidden; border-top:1px solid var(--line); border-bottom:1px solid var(--line); padding:.8rem 0; }
.t-track { display:inline-block; white-space:nowrap; animation:tick 28s linear infinite; }
.t-track span { font-size:0.5rem; font-weight:300; letter-spacing:0.28em; text-transform:uppercase; color:var(--silver); padding:0 2.5rem; }
.t-track em { color:var(--dim); font-style:normal; }
@keyframes tick { to { transform:translateX(-50%); } }

/* ── page header (inner pages) ── */
.pg-header {
  padding-top:68px; min-height:52vh;
  display:flex; flex-direction:column; justify-content:flex-end;
  padding-bottom:5rem; border-bottom:1px solid var(--line);
  position:relative; overflow:hidden;
}
.pg-glow { position:absolute; inset:0; pointer-events:none; }
.pg-header-inner { padding:0 3rem; position:relative; z-index:1; }
.pg-eyebrow {
  font-size:0.52rem; font-weight:300; letter-spacing:0.35em; text-transform:uppercase;
  color:var(--silver); margin-bottom:2rem; display:flex; align-items:center; gap:1.2rem;
}
.pg-eyebrow::before { content:''; width:24px; height:1px; background:var(--dim); }
.pg-header h1 {
  font-family:'DM Serif Display',serif; font-style:italic;
  font-size:clamp(3rem,7vw,6.5rem); font-weight:400; line-height:.96;
  letter-spacing:0.01em; color:var(--white);
}
.pg-header h1 span { font-style:normal; opacity:.55; }
.pg-sub {
  font-size:0.72rem; font-weight:300; letter-spacing:0.06em; line-height:1.95;
  color:var(--silver); margin-top:2rem; max-width:460px;
}

/* ── numbers ── */
.n-band { padding:5rem 3rem; border-top:1px solid var(--line); border-bottom:1px solid var(--line); }
.n-grid { display:grid; grid-template-columns:repeat(4,1fr); }
.n-item { padding:0 2.5rem; border-right:1px solid var(--line); }
.n-item:first-child { padding-left:0; }
.n-item:last-child { border-right:none; }
.n-val { font-family:'DM Serif Display',serif; font-size:3.5rem; font-weight:400; line-height:1; color:var(--white); }
.n-val sub { font-style:italic; font-size:1.2rem; opacity:.45; vertical-align:baseline; font-family:'Outfit',sans-serif; font-weight:300; letter-spacing:0.05em; }
.n-lbl { font-size:0.5rem; font-weight:300; letter-spacing:0.25em; text-transform:uppercase; color:var(--silver); margin-top:.6rem; }

/* ── cta band ── */
.cta-band {
  padding:9rem 3rem; text-align:center; position:relative; overflow:hidden;
  border-top:1px solid var(--line);
}
.cta-band-glow {
  position:absolute; top:50%; left:50%; transform:translate(-50%,-50%);
  width:700px; height:400px;
  background:radial-gradient(ellipse, rgba(123,108,255,0.09) 0%, transparent 65%);
  pointer-events:none;
}
.cta-band h2 {
  font-family:'DM Serif Display',serif; font-style:italic;
  font-size:clamp(2rem,5vw,4.5rem); font-weight:400; line-height:1.05;
  color:var(--mist); margin-bottom:3rem; letter-spacing:0.02em;
}
.cta-band h2 em { font-style:normal; color:var(--white); }

/* ── buttons ── */
.btn {
  font-size:0.58rem; font-weight:300; letter-spacing:0.22em; text-transform:uppercase;
  padding:.95rem 2.5rem; text-decoration:none; display:inline-block; transition:all .35s;
}
.btn-solid { background:var(--white); color:var(--void); }
.btn-solid:hover { background:var(--plasma); color:var(--white); }
.btn-ghost { background:transparent; color:var(--fog); border:1px solid var(--line); }
.btn-ghost:hover { border-color:rgba(255,255,255,0.15); color:var(--white); }

/* ── footer ── */
footer { border-top:1px solid var(--line); padding:6rem 3rem 0; }
.ft-top { display:grid; grid-template-columns:2fr 1fr 1fr 1fr; gap:5rem; padding-bottom:5rem; border-bottom:1px solid var(--line); }
.ft-logo { font-family:'DM Serif Display',serif; font-style:italic; font-size:1.6rem; color:var(--white); text-decoration:none; display:block; margin-bottom:1rem; }
.ft-logo span { font-style:normal; opacity:.35; }
.ft-tag { font-size:0.62rem; font-weight:300; font-style:italic; color:var(--silver); margin-bottom:1.8rem; letter-spacing:0.06em; }
.ft-blurb { font-size:0.6rem; font-weight:300; line-height:1.9; color:var(--silver); max-width:280px; margin-bottom:2.2rem; }
.ft-email { font-size:0.58rem; font-weight:300; letter-spacing:0.12em; color:var(--mist); text-decoration:none; border-bottom:1px solid var(--dim); padding-bottom:2px; transition:all .3s; }
.ft-email:hover { color:var(--white); border-color:var(--silver); }
.ft-col h5 { font-size:0.46rem; font-weight:300; letter-spacing:0.35em; text-transform:uppercase; color:var(--silver); margin-bottom:1.8rem; }
.ft-col ul { list-style:none; }
.ft-col li { margin-bottom:.9rem; }
.ft-col a { font-family:'DM Serif Display',serif; font-style:italic; font-size:.9rem; color:var(--silver); text-decoration:none; transition:color .3s; }
.ft-col a:hover { color:var(--white); }
.ft-bottom { display:flex; justify-content:space-between; align-items:center; padding:1.8rem 0; }
.ft-bottom p { font-size:0.46rem; font-weight:300; letter-spacing:0.2em; text-transform:uppercase; color:var(--dim); }

/* ── reveal ── */
.r { opacity:0; transform:translateY(20px); transition:opacity 1.1s cubic-bezier(.16,1,.3,1), transform 1.1s cubic-bezier(.16,1,.3,1); }
.r.on { opacity:1; transform:translateY(0); }
.r.d1 { transition-delay:.12s; }
.r.d2 { transition-delay:.24s; }
.r.d3 { transition-delay:.38s; }
.r.d4 { transition-delay:.52s; }

/* ── responsive ── */
@media(max-width:960px){
  nav { padding:0 1.5rem; }
  nav .nav-links, nav .nav-cta { display:none; }
  .nav-burger { display:flex; }
  .pg-header-inner { padding:0 1.5rem; }
  .n-grid { grid-template-columns:1fr 1fr; gap:2rem; }
  .n-item { border-right:none; border-bottom:1px solid var(--line); padding:0 0 2rem; }
  .n-item:last-child { border-bottom:none; }
  .ft-top { grid-template-columns:1fr 1fr; gap:2.5rem; }
  .n-band, .cta-band { padding:4rem 1.5rem; }
  footer { padding:4rem 1.5rem 0; }
}
