/* ============================================================
   THE DREAM STATE — Design System
   Brand colours: Black · White · Deep Purple #270030 · Gold #D4AF37
   Voice: bold challenger, operator-tier, editorial luxe.
   ============================================================ */

:root{
  /* core */
  --ink:        #08070A;
  --ink-2:      #0E0B12;
  --card:       #130E1A;
  --card-2:     #180F22;
  --purple:     #270030;
  --purple-2:   #3B0A4D;
  --purple-3:   #57156E;
  --purple-glow:#7A1E9C;
  --gold:       #D4AF37;
  --gold-2:     #E8C766;
  --gold-3:     #F3DE9B;
  --gold-deep:  #9A7B22;
  --white:      #FFFFFF;
  --cream:      #F7F2E9;
  --mist:       #B7AEC4;     /* muted lavender-grey body text */
  --mist-2:     #8E84A3;
  --line:       rgba(212,175,55,.16);
  --line-2:     rgba(255,255,255,.07);

  /* type */
  --display: "Fraunces", Georgia, "Times New Roman", serif;
  --sans: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  --mono: "Space Mono", "SFMono-Regular", Menlo, monospace;

  /* spacing scale (generous — anti-cramped) */
  --s-1:.5rem; --s-2:1rem; --s-3:1.5rem; --s-4:2rem; --s-5:3rem;
  --s-6:4.5rem; --s-7:6.5rem; --s-8:9rem; --s-9:12rem;

  --maxw: 1240px;
  --radius: 18px;
  --radius-sm: 12px;
  --ease: cubic-bezier(.22,.61,.36,1);
}

*{ box-sizing:border-box; margin:0; padding:0; }
html{ scroll-behavior:smooth; -webkit-font-smoothing:antialiased; }
body{
  font-family:var(--sans);
  background:var(--ink);
  color:var(--mist);
  line-height:1.65;
  font-size:17px;
  overflow-x:hidden;
  position:relative;
}
::selection{ background:var(--gold); color:#1a0020; }

img{ max-width:100%; display:block; }
a{ color:inherit; text-decoration:none; }

/* ---------- Animated background layers (fixed) ---------- */
#bg-canvas{ position:fixed; inset:0; z-index:0; pointer-events:none; }
.bg-aura{
  position:fixed; inset:0; z-index:0; pointer-events:none;
  background:
    radial-gradient(60vw 60vw at 12% -5%, rgba(87,21,110,.55), transparent 60%),
    radial-gradient(48vw 48vw at 92% 8%, rgba(122,30,156,.30), transparent 60%),
    radial-gradient(55vw 55vw at 78% 96%, rgba(39,0,48,.85), transparent 62%),
    radial-gradient(40vw 40vw at 6% 88%, rgba(154,123,34,.10), transparent 60%);
  animation:auraDrift 22s ease-in-out infinite alternate;
}
@keyframes auraDrift{
  0%{ transform:translate3d(0,0,0) scale(1); }
  100%{ transform:translate3d(0,-2.5%,0) scale(1.08); }
}
.bg-grain{
  position:fixed; inset:-50%; z-index:0; pointer-events:none; opacity:.05;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
  animation:grainShift 8s steps(6) infinite;
}
@keyframes grainShift{
  0%{transform:translate(0,0)} 100%{transform:translate(-12%,9%)}
}
.content-layer{ position:relative; z-index:2; }

/* ---------- Layout ---------- */
.wrap{ width:100%; max-width:var(--maxw); margin:0 auto; padding:0 28px; }
.section{ padding:var(--s-8) 0; position:relative; }
.section.tight{ padding:var(--s-6) 0; }
.center{ text-align:center; }
.grid{ display:grid; gap:var(--s-4); }
@media(min-width:780px){
  .g-2{ grid-template-columns:repeat(2,1fr); }
  .g-3{ grid-template-columns:repeat(3,1fr); }
  .g-4{ grid-template-columns:repeat(4,1fr); }
}

/* ---------- Typography ---------- */
.eyebrow{
  font-family:var(--mono); font-size:.74rem; letter-spacing:.32em;
  text-transform:uppercase; color:var(--gold);
  display:inline-flex; align-items:center; gap:.7em; margin-bottom:var(--s-3);
}
.eyebrow::before{ content:""; width:26px; height:1px; background:var(--gold); opacity:.7; }
.eyebrow.solo::before{ display:none; }

h1,h2,h3,h4{ font-family:var(--display); color:var(--white); font-weight:340;
  line-height:1.04; letter-spacing:-.015em; }
h1{ font-size:clamp(2.7rem,6.4vw,5.4rem); font-weight:300; }
h2{ font-size:clamp(2rem,4.3vw,3.5rem); }
h3{ font-size:clamp(1.4rem,2.4vw,2rem); }
h4{ font-size:1.18rem; letter-spacing:0; }
.display-xl{ font-size:clamp(3.2rem,8vw,6.6rem); line-height:.98; }

em,.ital{ font-style:italic; color:var(--gold-2); font-family:var(--display); }
.lead{ font-size:clamp(1.1rem,1.7vw,1.4rem); color:var(--cream); line-height:1.55; }
.muted{ color:var(--mist-2); }
.gold{ color:var(--gold-2); }
.serif{ font-family:var(--display); }
.tag-num{ font-family:var(--mono); color:var(--gold); font-size:.8rem; letter-spacing:.1em; }
p{ max-width:64ch; }
p.wide{ max-width:none; }

/* gradient gold text */
.shine{
  background:linear-gradient(100deg,var(--gold-deep),var(--gold-3) 40%,var(--gold) 60%,var(--gold-deep));
  background-size:200% auto; -webkit-background-clip:text; background-clip:text;
  -webkit-text-fill-color:transparent; color:transparent;
  animation:shineMove 6s linear infinite;
}
@keyframes shineMove{ to{ background-position:200% center; } }

/* ---------- Buttons ---------- */
.btn{
  display:inline-flex; align-items:center; justify-content:center; gap:.6em;
  font-family:var(--sans); font-weight:600; font-size:.96rem; letter-spacing:.01em;
  padding:1rem 1.7rem; border-radius:100px; cursor:pointer; border:1px solid transparent;
  transition:transform .35s var(--ease), box-shadow .35s var(--ease), background .3s, color .3s;
  position:relative; overflow:hidden; white-space:nowrap;
}
.btn .arw{ transition:transform .35s var(--ease); }
.btn:hover .arw{ transform:translateX(4px); }
.btn-gold{
  background:linear-gradient(105deg,var(--gold),var(--gold-2));
  color:#1c0024; box-shadow:0 10px 34px -10px rgba(212,175,55,.6), inset 0 1px 0 rgba(255,255,255,.4);
}
.btn-gold:hover{ transform:translateY(-3px); box-shadow:0 18px 46px -10px rgba(212,175,55,.75); }
.btn-ghost{ background:transparent; color:var(--gold-2); border-color:var(--line); }
.btn-ghost:hover{ border-color:var(--gold); color:var(--gold-3); transform:translateY(-3px);
  background:rgba(212,175,55,.06); }
.btn-light{ background:var(--white); color:#16001c; }
.btn-light:hover{ transform:translateY(-3px); box-shadow:0 16px 40px -12px rgba(255,255,255,.4); }
.btn-lg{ padding:1.15rem 2.2rem; font-size:1.05rem; }
.btn-block{ width:100%; }

/* ---------- Nav ---------- */
.nav{
  position:fixed; top:0; left:0; right:0; z-index:50;
  transition:background .4s, backdrop-filter .4s, border-color .4s, padding .4s;
  border-bottom:1px solid transparent;
}
.nav.scrolled{
  background:rgba(8,7,10,.72); backdrop-filter:blur(18px) saturate(140%);
  border-bottom:1px solid var(--line);
}
.nav-inner{ display:flex; align-items:center; justify-content:space-between;
  max-width:var(--maxw); margin:0 auto; padding:18px 28px; }
.brand{ display:flex; align-items:center; gap:13px; }
.brand svg{ height:38px; width:auto; display:block; }
.brand-mark{ height:42px; width:auto; display:block; border-radius:9px; }
.footer .brand-mark{ height:40px; }
@media(max-width:480px){ .brand-mark{ height:36px; } }
.brand .bwords{ display:flex; flex-direction:column; line-height:1; }
.brand .bwords b{ font-family:var(--display); font-weight:500; color:var(--white);
  font-size:1.05rem; letter-spacing:.02em; }
.brand .bwords span{ font-family:var(--mono); font-size:.54rem; letter-spacing:.42em;
  color:var(--gold); text-transform:uppercase; margin-top:3px; }
.nav-links{ display:none; align-items:center; gap:26px; }
.nav-links a{ font-size:.86rem; color:var(--mist); font-weight:500; position:relative;
  transition:color .25s; }
.nav-links a::after{ content:""; position:absolute; left:0; bottom:-7px; height:1px; width:0;
  background:var(--gold); transition:width .3s var(--ease); }
.nav-links a:hover{ color:var(--white); }
.nav-links a:hover::after,.nav-links a.active::after{ width:100%; }
.nav-links a.active{ color:var(--white); }
.nav-cta{ display:flex; align-items:center; gap:14px; }
.burger{ display:flex; flex-direction:column; gap:5px; background:none; border:0; cursor:pointer; padding:6px; }
.burger span{ width:24px; height:2px; background:var(--gold-2); transition:.3s; }
.nav.open .burger span:nth-child(1){ transform:translateY(7px) rotate(45deg); }
.nav.open .burger span:nth-child(2){ opacity:0; }
.nav.open .burger span:nth-child(3){ transform:translateY(-7px) rotate(-45deg); }
@media(min-width:1160px){
  .nav-links{ display:flex; } .burger{ display:none; }
}
/* mobile menu */
.mobile-menu{
  position:fixed; inset:0; z-index:49; background:rgba(8,6,12,.97);
  backdrop-filter:blur(8px); display:flex; flex-direction:column; justify-content:center;
  padding:0 32px; gap:6px; transform:translateX(100%); transition:transform .5s var(--ease);
}
.nav.open + .mobile-menu, .mobile-menu.open{ transform:translateX(0); }
.mobile-menu a{ font-family:var(--display); font-size:2rem; color:var(--white); padding:.4rem 0;
  border-bottom:1px solid var(--line-2); }
.mobile-menu a .mi{ font-family:var(--mono); font-size:.7rem; color:var(--gold); margin-right:14px; }
.mobile-menu .btn{ margin-top:24px; }

/* ---------- Marquee ticker ---------- */
.ticker{ border-top:1px solid var(--line); border-bottom:1px solid var(--line);
  background:linear-gradient(90deg,rgba(39,0,48,.5),rgba(8,7,10,.2)); overflow:hidden; }
.ticker-track{ display:flex; gap:0; white-space:nowrap; animation:tick 38s linear infinite; }
.ticker:hover .ticker-track{ animation-play-state:paused; }
.ticker-track span{ font-family:var(--mono); font-size:.78rem; letter-spacing:.18em;
  text-transform:uppercase; color:var(--cream); padding:14px 30px; display:inline-flex; align-items:center; }
.ticker-track span b{ color:var(--gold); font-weight:700; }
.ticker-track span::after{ content:"✦"; color:var(--gold); margin-left:30px; opacity:.6; }
@keyframes tick{ to{ transform:translateX(-50%); } }

/* ---------- Cards ---------- */
.card{
  background:linear-gradient(165deg,var(--card),var(--ink-2));
  border:1px solid var(--line-2); border-radius:var(--radius); padding:var(--s-4);
  position:relative; overflow:hidden; transition:transform .4s var(--ease), border-color .4s, box-shadow .4s;
}
.card::before{ content:""; position:absolute; inset:0; border-radius:inherit; padding:1px;
  background:linear-gradient(160deg,rgba(212,175,55,.35),transparent 40%);
  -webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);
  -webkit-mask-composite:xor; mask-composite:exclude; opacity:0; transition:opacity .4s; }
.card:hover{ transform:translateY(-6px); border-color:var(--line);
  box-shadow:0 30px 60px -30px rgba(87,21,110,.8); }
.card:hover::before{ opacity:1; }
.card .kicker{ font-family:var(--mono); font-size:.72rem; letter-spacing:.2em; color:var(--gold);
  text-transform:uppercase; }
.card h3,.card h4{ margin:.6rem 0 .7rem; }
.card p{ font-size:.97rem; }

.num-badge{ font-family:var(--display); font-size:2.2rem; color:var(--gold-2);
  display:block; line-height:1; }

/* pill */
.pill{ display:inline-flex; align-items:center; gap:.5em; font-family:var(--mono);
  font-size:.7rem; letter-spacing:.16em; text-transform:uppercase; color:var(--gold-2);
  border:1px solid var(--line); padding:.5em 1em; border-radius:100px; background:rgba(212,175,55,.05); }
.dot{ width:7px; height:7px; border-radius:50%; background:var(--gold); box-shadow:0 0 10px var(--gold);
  animation:pulse 2s infinite; }
@keyframes pulse{ 0%,100%{opacity:1} 50%{opacity:.3} }

/* ---------- Stats ---------- */
.stat .n{ font-family:var(--display); font-size:clamp(2.6rem,5vw,4.2rem); color:var(--white);
  line-height:1; letter-spacing:-.02em; }
.stat .n .u{ color:var(--gold-2); }
.stat .l{ font-family:var(--mono); font-size:.74rem; letter-spacing:.18em; text-transform:uppercase;
  color:var(--mist-2); margin-top:.8rem; }

/* ---------- Hero ---------- */
.hero{ position:relative; padding:clamp(8rem,16vh,11rem) 0 var(--s-7); overflow:hidden; }
.hero-journey{ position:absolute; inset:0; z-index:0; pointer-events:none; opacity:.9; }
.hero h1{ max-width:16ch; }
.hero .lead{ max-width:54ch; margin-top:var(--s-4); }
.hero-cta{ display:flex; flex-wrap:wrap; gap:14px; margin-top:var(--s-5); align-items:center; }
.hero-cta .micro{ font-family:var(--mono); font-size:.74rem; color:var(--mist-2); letter-spacing:.08em; }

/* ---------- Media / images ---------- */
.media{ border-radius:var(--radius); overflow:hidden; position:relative; background:var(--purple);
  border:1px solid var(--line-2); }
.media img{ width:100%; height:100%; object-fit:cover; transition:transform .9s var(--ease); }
.media:hover img{ transform:scale(1.05); }
.media .cap{ position:absolute; left:14px; bottom:14px; right:14px; font-family:var(--mono);
  font-size:.72rem; letter-spacing:.1em; color:var(--cream); background:rgba(8,6,12,.55);
  backdrop-filter:blur(6px); padding:.6em .9em; border-radius:10px; border:1px solid var(--line); }
.media.ph{ display:flex; align-items:center; justify-content:center; min-height:240px;
  background:
   linear-gradient(135deg,rgba(212,175,55,.07),transparent),
   radial-gradient(circle at 30% 20%,rgba(122,30,156,.5),transparent 60%),
   var(--purple); }
.ph-label{ text-align:center; padding:24px; }
.ph-label .ic{ font-size:1.8rem; color:var(--gold-2); }
.ph-label b{ display:block; font-family:var(--display); color:var(--white); font-size:1.15rem; margin:.4rem 0 .2rem; }
.ph-label span{ font-family:var(--mono); font-size:.68rem; letter-spacing:.14em; text-transform:uppercase; color:var(--mist-2); }
.ratio-4-5{ aspect-ratio:4/5; } .ratio-1-1{ aspect-ratio:1/1; } .ratio-16-9{ aspect-ratio:16/9; }
.ratio-3-2{ aspect-ratio:3/2; }

/* image grid mosaic */
.mosaic{ display:grid; gap:14px; grid-template-columns:repeat(2,1fr); }
@media(min-width:780px){ .mosaic{ grid-template-columns:repeat(4,1fr); grid-auto-rows:120px; } }
.mosaic .media{ grid-column:span 1; }
@media(min-width:780px){
  .mosaic .m-tall{ grid-row:span 3; } .mosaic .m-wide{ grid-column:span 2; grid-row:span 2; }
  .mosaic .m-sq{ grid-row:span 2; }
}

/* ---------- Reviews ---------- */
.review{ background:linear-gradient(165deg,var(--card-2),var(--ink-2)); border:1px solid var(--line-2);
  border-radius:var(--radius); padding:var(--s-4); position:relative; }
.review .stars{ color:var(--gold); letter-spacing:3px; font-size:.95rem; }
.review blockquote{ font-family:var(--display); font-size:1.18rem; line-height:1.5; color:var(--cream);
  margin:1rem 0 1.4rem; font-weight:340; }
.review .who{ display:flex; align-items:center; gap:13px; }
.review .av{ width:44px; height:44px; border-radius:50%; object-fit:cover; border:1px solid var(--line);
  background:var(--purple-2); flex:0 0 auto; display:flex; align-items:center; justify-content:center;
  font-family:var(--display); color:var(--gold-2); font-size:1.1rem; }
.review .who b{ color:var(--white); font-size:.95rem; font-family:var(--sans); display:block; }
.review .who span{ font-size:.82rem; color:var(--mist-2); }
.review .qmark{ position:absolute; top:14px; right:22px; font-family:var(--display); font-size:4rem;
  color:var(--gold); opacity:.13; line-height:1; }

/* ---------- Process / steps ---------- */
.step{ display:grid; gap:var(--s-3); padding:var(--s-4) 0; border-top:1px solid var(--line-2);
  grid-template-columns:1fr; }
@media(min-width:820px){ .step{ grid-template-columns:120px 1fr 1fr; gap:var(--s-5); align-items:start; } }
.step .ph-n{ font-family:var(--display); font-size:3.4rem; color:var(--purple-3); line-height:1; }
.step:hover .ph-n{ color:var(--gold); transition:color .4s; }
.step h3{ margin-bottom:.5rem; }
.step .exp{ color:var(--mist); }
.step .exp .lbl{ font-family:var(--mono); font-size:.68rem; letter-spacing:.16em; text-transform:uppercase;
  color:var(--gold-2); display:block; margin-bottom:.5rem; }

/* ---------- Pricing ---------- */
.price-card{ background:linear-gradient(170deg,var(--card),var(--ink-2)); border:1px solid var(--line-2);
  border-radius:var(--radius); padding:var(--s-5) var(--s-4); position:relative; display:flex; flex-direction:column; }
.price-card.feat{ border-color:var(--gold); box-shadow:0 30px 70px -34px rgba(212,175,55,.5); }
.price-card.feat::after{ content:"Most clients land here"; position:absolute; top:-13px; left:50%;
  transform:translateX(-50%); font-family:var(--mono); font-size:.64rem; letter-spacing:.18em;
  text-transform:uppercase; background:linear-gradient(105deg,var(--gold),var(--gold-2)); color:#1c0024;
  padding:.45em 1em; border-radius:100px; white-space:nowrap; }
.price-card .tname{ font-family:var(--mono); letter-spacing:.2em; text-transform:uppercase; color:var(--gold);
  font-size:.78rem; }
.price-card .amt{ font-family:var(--display); font-size:2.8rem; color:var(--white); margin:.5rem 0 .2rem; }
.price-card .amt small{ font-size:1rem; color:var(--mist-2); font-family:var(--mono); }
.price-card ul{ list-style:none; margin:var(--s-3) 0 var(--s-4); display:grid; gap:.7rem; }
.price-card li{ font-size:.95rem; padding-left:1.7em; position:relative; color:var(--mist); }
.price-card li::before{ content:"✦"; position:absolute; left:0; color:var(--gold); font-size:.8em; top:.15em; }
.price-card .btn{ margin-top:auto; }

/* ---------- FAQ ---------- */
.faq-item{ border-top:1px solid var(--line-2); }
.faq-q{ width:100%; text-align:left; background:none; border:0; cursor:pointer; padding:1.5rem 0;
  display:flex; gap:1.5rem; align-items:flex-start; justify-content:space-between; color:var(--white);
  font-family:var(--display); font-size:1.25rem; }
.faq-q .ic{ flex:0 0 auto; width:30px; height:30px; border:1px solid var(--line); border-radius:50%;
  display:flex; align-items:center; justify-content:center; color:var(--gold-2); transition:.4s; font-size:1.1rem; }
.faq-item.open .faq-q .ic{ transform:rotate(45deg); background:var(--gold); color:#1c0024; border-color:var(--gold); }
.faq-a{ max-height:0; overflow:hidden; transition:max-height .5s var(--ease); }
.faq-a-inner{ padding:0 0 1.6rem; color:var(--mist); max-width:72ch; }
.faq-item.open .faq-a{ max-height:600px; }

/* ---------- Quiz ---------- */
.quiz{ background:linear-gradient(170deg,var(--card),var(--ink-2)); border:1px solid var(--line);
  border-radius:var(--radius); padding:var(--s-5); max-width:680px; margin:0 auto; position:relative; overflow:hidden; }
.quiz-bar{ height:3px; background:var(--line-2); border-radius:3px; overflow:hidden; margin-bottom:var(--s-4); }
.quiz-bar i{ display:block; height:100%; width:16%; background:linear-gradient(90deg,var(--gold),var(--gold-2));
  transition:width .5s var(--ease); }
.quiz-step{ display:none; } .quiz-step.active{ display:block; animation:fadeUp .5s var(--ease); }
.quiz-q{ font-family:var(--display); font-size:1.5rem; color:var(--white); margin-bottom:.4rem; }
.quiz-sub{ font-size:.9rem; color:var(--mist-2); margin-bottom:var(--s-4); }
.quiz-opts{ display:grid; gap:12px; }
.quiz-opt{ text-align:left; background:rgba(255,255,255,.02); border:1px solid var(--line-2);
  border-radius:12px; padding:1rem 1.2rem; cursor:pointer; color:var(--cream); font-size:1rem;
  transition:.25s; display:flex; align-items:center; gap:1rem; font-family:var(--sans); }
.quiz-opt:hover{ border-color:var(--gold); background:rgba(212,175,55,.07); transform:translateX(4px); }
.quiz-opt .k{ font-family:var(--mono); color:var(--gold); font-size:.8rem; border:1px solid var(--line);
  border-radius:7px; padding:.2em .6em; }
.quiz-result{ display:none; text-align:center; }
.quiz-result.active{ display:block; animation:fadeUp .5s var(--ease); }
.quiz input[type=email]{ width:100%; background:rgba(255,255,255,.03); border:1px solid var(--line);
  border-radius:12px; padding:1rem 1.2rem; color:var(--white); font-family:var(--sans); font-size:1rem; margin-bottom:14px; }
.quiz input[type=email]:focus{ outline:none; border-color:var(--gold); }

/* ---------- Diagnosis split / journey diagram ---------- */
.split{ display:grid; gap:var(--s-6); align-items:center; }
@media(min-width:900px){ .split{ grid-template-columns:1.05fr .95fr; } .split.rev>*:first-child{ order:2; } }

.journeymap{ border:1px solid var(--line); border-radius:var(--radius); padding:var(--s-4);
  background:linear-gradient(160deg,rgba(39,0,48,.6),var(--ink-2)); }
.jstep{ display:flex; align-items:center; gap:14px; padding:.7rem 0; }
.jstep .jn{ width:34px; height:34px; flex:0 0 auto; border-radius:50%; border:1px solid var(--line);
  display:flex; align-items:center; justify-content:center; font-family:var(--mono); font-size:.8rem; color:var(--gold-2); }
.jstep.leak .jn{ border-color:#c0392b; color:#ff6b5e; box-shadow:0 0 14px rgba(192,57,43,.5); }
.jstep .jt b{ color:var(--white); font-family:var(--sans); font-size:.95rem; display:block; }
.jstep .jt span{ font-size:.82rem; color:var(--mist-2); }
.jstep.leak .jt span{ color:#ff8a7e; }
.jline{ width:1px; height:14px; background:var(--line); margin-left:17px; }

/* ---------- Banner / CTA strip ---------- */
.cta-band{ position:relative; border-radius:calc(var(--radius) + 6px); overflow:hidden;
  border:1px solid var(--line); background:linear-gradient(135deg,var(--purple),var(--ink-2) 75%);
  padding:clamp(2.5rem,6vw,5rem); text-align:center; }
.cta-band::before{ content:""; position:absolute; inset:0;
  background:radial-gradient(40vw 40vw at 80% 0%,rgba(212,175,55,.18),transparent 60%); }
.cta-band > *{ position:relative; }

/* ---------- Footer ---------- */
.footer{ border-top:1px solid var(--line); padding:var(--s-7) 0 var(--s-4); margin-top:var(--s-6);
  background:linear-gradient(180deg,transparent,rgba(39,0,48,.35)); }
.footer-grid{ display:grid; gap:var(--s-5); grid-template-columns:1fr; }
@media(min-width:780px){ .footer-grid{ grid-template-columns:1.6fr 1fr 1fr 1fr; } }
.footer h5{ font-family:var(--mono); font-size:.72rem; letter-spacing:.2em; text-transform:uppercase;
  color:var(--gold); margin-bottom:1.1rem; }
.footer a{ display:block; color:var(--mist); font-size:.92rem; padding:.32rem 0; transition:color .2s; }
.footer a:hover{ color:var(--white); }
.footer .tag{ color:var(--mist-2); font-size:.92rem; max-width:34ch; margin-top:1rem; }
.footer-bottom{ display:flex; flex-wrap:wrap; gap:14px; justify-content:space-between; align-items:center;
  border-top:1px solid var(--line-2); margin-top:var(--s-5); padding-top:var(--s-4);
  font-family:var(--mono); font-size:.72rem; letter-spacing:.08em; color:var(--mist-2); }

/* ---------- Reveal animations ---------- */
.reveal{ opacity:0; transform:translateY(34px); transition:opacity .9s var(--ease), transform .9s var(--ease); }
.reveal.in{ opacity:1; transform:none; }
.reveal.d1{ transition-delay:.08s } .reveal.d2{ transition-delay:.16s }
.reveal.d3{ transition-delay:.24s } .reveal.d4{ transition-delay:.32s }
@keyframes fadeUp{ from{opacity:0; transform:translateY(20px)} to{opacity:1; transform:none} }

/* utility */
.mt-1{margin-top:var(--s-2)} .mt-2{margin-top:var(--s-4)} .mt-3{margin-top:var(--s-5)} .mt-4{margin-top:var(--s-6)}
.mb-1{margin-bottom:var(--s-2)} .mb-2{margin-bottom:var(--s-4)} .mb-3{margin-bottom:var(--s-5)}
.divider{ height:1px; background:var(--line); margin:var(--s-6) 0; }
.maxw-h{ max-width:760px; } .maxw-m{ max-width:600px; }
.flex{ display:flex; gap:14px; flex-wrap:wrap; }
.flex.ac{ align-items:center; } .flex.jc{ justify-content:center; }

/* ---------- Hero 2-column + 
/* ============================================================
   FINALISATION — mobile menu polish, footer legal, legal docs, FAQ redesign
   ============================================================ */

/* mobile menu neatness */
.mobile-menu{ padding:5.5rem 28px 2rem; justify-content:flex-start; gap:2px; overflow-y:auto; }
.mobile-menu a{ font-size:clamp(1.35rem,6.5vw,1.9rem); padding:.55rem 0; display:flex; align-items:baseline; }
.mobile-menu a .mi{ min-width:34px; }
.mobile-menu .btn{ margin-top:22px; font-size:1rem; align-self:flex-start; }

/* footer legal row */
.footer-legal{ display:flex; flex-wrap:wrap; gap:8px 22px; align-items:center; margin-top:var(--s-5);
  padding-top:var(--s-4); border-top:1px solid var(--line-2); }
.footer-legal a{ font-family:var(--mono); font-size:.72rem; letter-spacing:.1em; text-transform:uppercase;
  color:var(--mist-2); padding:0; transition:color .2s; }
.footer-legal a:hover{ color:var(--gold-2); }
.footer-bottom .est{ color:var(--gold-2); }

/* ---------- Legal documents ---------- */
.legal-hero{ position:relative; padding:8rem 0 1rem; }
.legal-wrap{ max-width:820px; margin:0 auto; }
.legaldoc{ max-width:820px; margin:0 auto; }
.legaldoc .meta{ font-family:var(--mono); font-size:.72rem; letter-spacing:.08em; color:var(--mist-2);
  text-transform:uppercase; margin-bottom:var(--s-4); padding-bottom:var(--s-3); border-bottom:1px solid var(--line); }
.legaldoc h2{ font-size:clamp(1.4rem,3vw,2rem); margin:var(--s-5) 0 var(--s-2); }
.legaldoc h3{ font-size:1.1rem; color:var(--gold-2); margin:var(--s-3) 0 .5rem; }
.legaldoc p{ color:var(--cream); line-height:1.75; margin-bottom:1.1rem; max-width:none; }
.legaldoc ul{ margin:0 0 1.2rem 1.2rem; color:var(--cream); }
.legaldoc li{ margin-bottom:.5rem; line-height:1.7; }
.legaldoc .note{ border:1px dashed var(--line); border-radius:12px; padding:1.1rem 1.3rem; background:rgba(212,175,55,.04);
  font-size:.9rem; color:var(--mist); margin:var(--s-4) 0; }
.legaldoc strong{ color:#fff; }
.legal-toc{ display:flex; flex-wrap:wrap; gap:8px; margin:var(--s-4) 0 var(--s-5); }
.legal-toc a{ font-family:var(--mono); font-size:.68rem; letter-spacing:.08em; text-transform:uppercase;
  color:var(--gold-2); border:1px solid var(--line); border-radius:100px; padding:.45em 1em; transition:.2s; }
.legal-toc a:hover{ background:rgba(212,175,55,.08); }

/* ---------- FAQ redesign ---------- */
.faq2-hero{ padding:8rem 0 var(--s-3); }
.faq2-layout{ display:grid; gap:var(--s-5); grid-template-columns:1fr; align-items:start; }
@media(min-width:920px){ .faq2-layout{ grid-template-columns:240px 1fr; gap:var(--s-6); } }
.faq2-nav{ position:relative; }
@media(min-width:920px){ .faq2-nav{ position:sticky; top:100px; } }
.faq2-nav .nt{ font-family:var(--mono); font-size:.66rem; letter-spacing:.18em; text-transform:uppercase; color:var(--gold); margin-bottom:1rem; }
.faq2-nav a{ display:flex; align-items:center; gap:10px; padding:.6rem .8rem; border-radius:10px; color:var(--mist);
  font-size:.92rem; transition:.2s; border:1px solid transparent; }
.faq2-nav a:hover{ color:#fff; background:rgba(255,255,255,.03); }
.faq2-nav a.active{ color:var(--gold-2); border-color:var(--line); background:rgba(212,175,55,.05); }
.faq2-nav a .qn{ font-family:var(--mono); font-size:.7rem; color:var(--gold); }
.faq2-group{ margin-bottom:var(--s-6); }
.faq2-group > .gh{ display:flex; align-items:center; gap:14px; margin-bottom:var(--s-3); }
.faq2-group > .gh .gi{ width:44px; height:44px; flex:0 0 auto; border-radius:12px; display:flex; align-items:center;
  justify-content:center; border:1px solid var(--line); color:var(--gold-2); background:rgba(212,175,55,.05); }
.faq2-group > .gh .gi svg{ width:24px; height:24px; }
.faq2-group > .gh h2{ font-size:clamp(1.4rem,3vw,1.9rem); }
.faq2-item{ border:1px solid var(--line-2); border-radius:16px; margin-bottom:12px; overflow:hidden;
  background:linear-gradient(165deg, rgba(19,14,26,.6), rgba(10,8,14,.6)); transition:border-color .3s, box-shadow .3s; }
.faq2-item.open{ border-color:var(--line); box-shadow:0 20px 50px -30px rgba(87,21,110,.8); }
.faq2-q{ width:100%; text-align:left; background:none; border:0; cursor:pointer; padding:1.25rem 1.4rem;
  display:flex; gap:1.2rem; align-items:center; justify-content:space-between; color:var(--white);
  font-family:var(--display); font-size:1.12rem; }
.faq2-q .ic{ flex:0 0 auto; width:30px; height:30px; border:1px solid var(--line); border-radius:50%;
  display:flex; align-items:center; justify-content:center; color:var(--gold-2); transition:.4s; font-size:1.1rem; }
.faq2-item.open .faq2-q .ic{ transform:rotate(45deg); background:var(--gold); color:#1c0024; border-color:var(--gold); }
.faq2-a{ max-height:0; overflow:hidden; transition:max-height .5s var(--ease); }
.faq2-a-inner{ padding:0 1.4rem 1.4rem; color:var(--mist); max-width:70ch; line-height:1.7; }
.faq2-item.open .faq2-a{ max-height:640px; }
