/* ================================================
   HERO
================================================ */
#hero {
  position:relative; height:100vh; min-height:700px;
  display:flex; align-items:center; justify-content:center;
  overflow:hidden;
}
#hero-canvas { position:absolute; inset:0; z-index:1; }
.hero-bg {
  position:absolute; inset:0; z-index:0;
  background:
    radial-gradient(ellipse 80% 60% at 60% 50%, rgba(201,168,76,.06) 0%, transparent 70%),
    radial-gradient(ellipse 50% 40% at 20% 80%, rgba(27,77,56,.08) 0%, transparent 60%),
    var(--ink);
}
.hero-content {
  position:relative; z-index:10;
  text-align:center; max-width:1000px; padding:0 2rem;
}
.hero-label {
  display:inline-flex; align-items:center; gap:.8rem;
  font-family:var(--mono); font-size:.72rem;
  font-weight:500; letter-spacing:.4em; text-transform:uppercase;
  color:var(--gold); margin-bottom:2.5rem;
  opacity:0; transform:translateY(20px);
  animation:revUp .9s .5s var(--ease) forwards;
}
.hero-label::before, .hero-label::after {
  content:''; display:block; width:36px; height:1px; background:var(--gold);
}
.hero-title {
  font-family:var(--serif);
  font-size:clamp(4.5rem, 12vw, 10rem);
  font-weight:300; line-height:.92;
  letter-spacing:-.05em;
  opacity:0; transform:translateY(60px);
  animation:revUp 1.1s .75s var(--ease) forwards;
}
.hero-title strong { font-weight:700; }
.hero-title .gld { color:var(--gold); }
.hero-title .out {
  -webkit-text-stroke:1px rgba(245,240,232,.25);
  color:transparent;
}
.hero-title .ital { font-style:italic; }
.hero-sub {
  margin-top:2rem; font-size:clamp(.95rem, 2vw, 1.15rem);
  color:var(--w70); line-height:1.8;
  font-weight:300; max-width:640px; margin-left:auto; margin-right:auto;
  opacity:0; transform:translateY(20px);
  animation:revUp .9s 1.05s var(--ease) forwards;
}
.hero-btns {
  margin-top:3.5rem; display:flex; gap:1.4rem; justify-content:center; flex-wrap:wrap;
  opacity:0; transform:translateY(20px);
  animation:revUp .9s 1.25s var(--ease) forwards;
}
.btn-primary {
  display:inline-flex; align-items:center; gap:.7rem;
  background:var(--gold); color:var(--ink);
  padding:1.05rem 3rem; border-radius:100px;
  font-size:.85rem; font-weight:700; letter-spacing:.12em; text-transform:uppercase;
  transition:all .4s var(--ease); border:1.5px solid var(--gold);
}
.btn-primary:hover { background:var(--gold2); border-color:var(--gold2); transform:translateY(-4px); box-shadow:0 20px 50px var(--gglow); }
.btn-outline {
  display:inline-flex; align-items:center; gap:.7rem;
  background:transparent; color:var(--white);
  padding:1.05rem 3rem; border-radius:100px;
  font-size:.85rem; font-weight:500; letter-spacing:.12em; text-transform:uppercase;
  border:1.5px solid var(--w15); transition:all .4s var(--ease);
}
.btn-outline:hover { border-color:var(--gold); color:var(--gold); transform:translateY(-4px); }

/* Hero floating pills */
.h-pill {
  position:absolute; z-index:10;
  display:flex; align-items:center; gap:.7rem;
  background:rgba(10,10,16,.8);
  backdrop-filter:blur(20px);
  -webkit-backdrop-filter:blur(20px);
  border:1px solid var(--border);
  border-radius:100px; padding:.7rem 1.6rem;
  font-size:.8rem; font-weight:500; color:var(--w70);
  white-space:nowrap; pointer-events:none;
  animation:floatY 5s ease-in-out infinite;
}
.h-pill .dot { width:8px; height:8px; border-radius:50%; flex-shrink:0; }
.p1 { top:20%; right:7%; animation-delay:0s; }
.p2 { top:68%; right:5%; animation-delay:1.8s; }
.p3 { top:35%; left:4%; animation-delay:3.2s; }

.scroll-cue {
  position:absolute; bottom:2.5rem; left:50%; transform:translateX(-50%);
  display:flex; flex-direction:column; align-items:center; gap:.5rem;
  opacity:0; animation:revUp .8s 2s forwards;
}
.scroll-cue span { font-size:.68rem; letter-spacing:.3em; text-transform:uppercase; color:var(--w40); font-family:var(--mono); }
.scroll-line { width:1px; height:52px; background:linear-gradient(to bottom, var(--gold), transparent); animation:pulseH 2s ease-in-out infinite; }
@keyframes pulseH { 0%,100%{opacity:1;transform:scaleY(1)} 50%{opacity:.3;transform:scaleY(.5)} }
