/* ============================================================
   The Zero Follower Series — site stylesheet
   Self-contained. No external requests. Fonts bundled locally.
   ============================================================ */
@font-face { font-family:"EB Garamond"; src:url("assets/fonts/EBGaramond-Regular.ttf"); font-weight:400; font-style:normal; font-display:swap; }
@font-face { font-family:"EB Garamond"; src:url("assets/fonts/EBGaramond-Italic.ttf"); font-weight:400; font-style:italic; font-display:swap; }
@font-face { font-family:"EB Garamond"; src:url("assets/fonts/EBGaramond-Bold.ttf"); font-weight:700; font-style:normal; font-display:swap; }
@font-face { font-family:"Montserrat"; src:url("assets/fonts/Montserrat-Regular.ttf"); font-weight:400; font-style:normal; font-display:swap; }
@font-face { font-family:"Montserrat"; src:url("assets/fonts/Montserrat-SemiBold.ttf"); font-weight:600; font-style:normal; font-display:swap; }
@font-face { font-family:"Montserrat"; src:url("assets/fonts/Montserrat-Bold.ttf"); font-weight:700; font-style:normal; font-display:swap; }
@font-face { font-family:"Montserrat"; src:url("assets/fonts/Montserrat-ExtraBold.ttf"); font-weight:800; font-style:normal; font-display:swap; }

:root{
  --bg:#080d20;
  --bg-2:#0d1530;
  --bg-3:#111a3d;
  --ink:#f4f6fc;
  --muted:#a9b3cf;
  --faint:#6f7ba0;
  --accent:#2da4f3;
  --accent-soft:#7cc7ff;
  --line:rgba(140,160,200,.16);
  --serif:"EB Garamond", Georgia, "Times New Roman", serif;
  --sans:"Montserrat", -apple-system, "Segoe UI", Arial, sans-serif;
  --maxw:1120px;
}
*{ box-sizing:border-box; margin:0; padding:0; }
html{ scroll-behavior:smooth; }
body{
  background:var(--bg);
  color:var(--ink);
  font-family:var(--sans);
  font-size:16px; line-height:1.6;
  -webkit-font-smoothing:antialiased;
}
::selection{ background:var(--accent); color:#04101f; }
img{ max-width:100%; display:block; }
a{ color:var(--accent-soft); }

.wrap{ max-width:var(--maxw); margin:0 auto; padding:0 clamp(1.25rem, 5vw, 4rem); }

/* ---------- top bar ---------- */
.topbar{
  position:sticky; top:0; z-index:50;
  background:rgba(8,13,32,.88); backdrop-filter:blur(10px);
  border-bottom:1px solid var(--line);
}
.topbar .wrap{ display:flex; align-items:center; justify-content:space-between; padding-top:.9rem; padding-bottom:.9rem; }
.wordmark{
  font-family:var(--sans); font-weight:800; font-size:.8rem; letter-spacing:.22em;
  color:var(--ink); text-decoration:none; text-transform:uppercase;
}
.wordmark span{ color:var(--accent); }
.nav{ display:flex; gap:1.6rem; }
.nav a{
  font-size:.72rem; font-weight:600; letter-spacing:.14em; text-transform:uppercase;
  color:var(--muted); text-decoration:none;
}
.nav a:hover{ color:var(--ink); }
@media (max-width:640px){ .nav{ display:none; } }

/* ---------- hero ---------- */
.hero{ padding:clamp(4rem,10vh,7rem) 0 clamp(3rem,7vh,5rem); }
.kicker{
  font-size:.72rem; font-weight:700; letter-spacing:.3em; text-transform:uppercase;
  color:var(--accent); margin-bottom:1.4rem;
}
.hero h1{
  font-family:var(--serif); font-weight:700;
  font-size:clamp(2.3rem, 5.2vw, 4.1rem);
  line-height:1.12; letter-spacing:-.01em; max-width:20ch;
}
.hero h1 em{ font-style:italic; color:var(--accent-soft); }
.hero .lede{
  margin-top:1.6rem; max-width:58ch; color:var(--muted);
  font-size:clamp(1.02rem, 1.4vw, 1.15rem);
}
.cta-row{ margin-top:2.4rem; display:flex; flex-wrap:wrap; gap:1rem; align-items:center; }

/* ---------- buttons ---------- */
.btn{
  display:inline-block; font-family:var(--sans); font-weight:700; font-size:.82rem;
  letter-spacing:.12em; text-transform:uppercase; text-decoration:none;
  padding:1rem 1.9rem; border-radius:2px; cursor:pointer; border:0;
  transition:transform .15s ease, background .15s ease, color .15s ease;
}
.btn-primary{ background:var(--accent); color:#04101f; }
.btn-primary:hover{ background:var(--accent-soft); transform:translateY(-2px); }
.btn-ghost{ background:transparent; color:var(--ink); box-shadow:inset 0 0 0 1px var(--faint); }
.btn-ghost:hover{ box-shadow:inset 0 0 0 1px var(--accent); color:var(--accent-soft); }
.btn-dark{ background:#04101f; color:var(--ink); box-shadow:inset 0 0 0 1px var(--accent); }
.btn-dark:hover{ background:var(--bg-3); }
.micro{ font-size:.78rem; color:var(--faint); }

/* ---------- sections ---------- */
section{ padding:clamp(3.5rem,9vh,6rem) 0; }
.rule{ border:0; border-top:1px solid var(--line); }
.sec-label{
  font-size:.7rem; font-weight:700; letter-spacing:.28em; text-transform:uppercase;
  color:var(--accent); margin-bottom:1.2rem;
}
h2.display{
  font-family:var(--serif); font-weight:700;
  font-size:clamp(1.8rem, 3.6vw, 2.9rem); line-height:1.15; max-width:24ch;
}
.prose{ color:var(--muted); max-width:62ch; margin-top:1.2rem; }
.prose strong{ color:var(--ink); }

/* pain points — big serif statements with dividers */
.pains{ margin-top:3rem; }
.pain{
  padding:2.2rem 0; border-top:1px solid var(--line);
  display:grid; grid-template-columns:3rem 1fr; gap:1.2rem; align-items:baseline;
}
.pain:last-child{ border-bottom:1px solid var(--line); }
.pain .n{ font-family:var(--serif); font-style:italic; color:var(--accent); font-size:1.3rem; }
.pain p{ font-family:var(--serif); font-size:clamp(1.25rem,2.4vw,1.8rem); line-height:1.35; color:var(--ink); }
.pivot{
  margin-top:2.6rem; font-family:var(--serif); font-style:italic;
  font-size:clamp(1.3rem,2.6vw,1.9rem); color:var(--accent-soft); max-width:30ch;
}

/* feature list — typographic, no cards */
.features{ margin-top:2.6rem; display:grid; grid-template-columns:repeat(auto-fit,minmax(230px,1fr)); gap:2.4rem 2.8rem; }
.feature h3{ font-size:.95rem; font-weight:700; letter-spacing:.02em; margin-bottom:.5rem; }
.feature .fk{ font-size:.68rem; font-weight:700; letter-spacing:.24em; text-transform:uppercase; color:var(--accent); display:block; margin-bottom:.7rem; }
.feature p{ color:var(--muted); font-size:.92rem; }

/* ---------- book shelf ---------- */
.shelf{ margin-top:3rem; display:grid; grid-template-columns:repeat(auto-fit,minmax(190px,1fr)); gap:2rem; }
.booklink{ text-decoration:none; color:inherit; display:block; }
.bookcard .cov{
  border:1px solid var(--line);
  transition:transform .2s ease, box-shadow .2s ease;
}
.bookcard:hover .cov{ transform:translateY(-6px); box-shadow:0 18px 40px rgba(0,0,0,.5); }
.bookcard h3{ margin-top:1rem; font-size:.92rem; font-weight:700; line-height:1.35; }
.bookcard .plat{ font-size:.68rem; font-weight:700; letter-spacing:.22em; color:var(--accent); text-transform:uppercase; }
.bookcard p{ margin-top:.4rem; font-size:.85rem; color:var(--muted); }
.bookcard .price{ margin-top:.6rem; font-size:.82rem; font-weight:700; color:var(--ink); }

/* ---------- bundle band ---------- */
.bundle{
  background:linear-gradient(160deg, var(--bg-2), #0a1a3d 70%);
  border-top:1px solid var(--line); border-bottom:1px solid var(--line);
}
.bundle-grid{ display:grid; grid-template-columns:1.1fr .9fr; gap:3rem; align-items:center; }
@media (max-width:820px){ .bundle-grid{ grid-template-columns:1fr; } }
.price-tag{ display:flex; align-items:baseline; gap:1rem; margin:1.4rem 0 .4rem; }
.price-now{ font-family:var(--serif); font-weight:700; font-size:clamp(3rem,6vw,4.4rem); line-height:1; }
.price-was{ color:var(--faint); text-decoration:line-through; font-size:1.3rem; }
.save-chip{
  background:var(--accent); color:#04101f; font-weight:800; font-size:.72rem;
  letter-spacing:.14em; text-transform:uppercase; padding:.35rem .7rem; border-radius:2px;
}
.stack{ display:flex; gap:.55rem; align-items:flex-end; justify-content:center; }
.stack img{ width:19%; border:1px solid var(--line); box-shadow:0 10px 26px rgba(0,0,0,.45); }
.stack img:nth-child(1){ transform:rotate(-4deg) translateY(6px); }
.stack img:nth-child(2){ transform:rotate(-2deg) translateY(2px); }
.stack img:nth-child(4){ transform:rotate(2deg) translateY(2px); }
.stack img:nth-child(5){ transform:rotate(4deg) translateY(6px); }

/* audience */
.aud-list{ margin-top:2.4rem; columns:2; column-gap:3rem; }
@media (max-width:720px){ .aud-list{ columns:1; } }
.aud-list li{
  list-style:none; padding:1rem 0; border-top:1px solid var(--line);
  color:var(--muted); font-size:.95rem;
}
.aud-list li strong{ color:var(--ink); display:block; font-size:.98rem; }

/* honesty box */
.honesty{
  border:1px solid var(--line); padding:2rem; margin-top:2.6rem;
  font-family:var(--serif); font-size:1.15rem; line-height:1.55; color:var(--muted);
}
.honesty strong{ color:var(--ink); }

/* ---------- book detail page ---------- */
.bookhero{ display:grid; grid-template-columns:minmax(240px,360px) 1fr; gap:3.2rem; align-items:start; padding-top:clamp(3rem,7vh,5rem); padding-bottom:clamp(3rem,7vh,5rem); }
@media (max-width:820px){ .bookhero{ grid-template-columns:1fr; } .bookhero .cov{ max-width:300px; } }
.bookhero .cov{ border:1px solid var(--line); box-shadow:0 24px 60px rgba(0,0,0,.55); }
.bookhero h1{ font-family:var(--serif); font-weight:700; font-size:clamp(1.9rem,4vw,3rem); line-height:1.12; margin-top:.6rem; }
.tagline{ font-family:var(--serif); font-style:italic; font-size:1.25rem; color:var(--accent-soft); margin-top:1rem; }
.buyrow{ margin-top:2rem; padding:1.6rem; border:1px solid var(--line); background:var(--bg-2); }
.buyrow .p{ font-family:var(--serif); font-size:2.2rem; font-weight:700; }
.inside-list{ margin-top:2.2rem; }
.inside-list li{
  list-style:none; padding:.85rem 0 .85rem 1.6rem; border-top:1px solid var(--line);
  color:var(--muted); position:relative; font-size:.95rem;
}
.inside-list li::before{ content:"—"; position:absolute; left:0; color:var(--accent); }
.chapters{ margin-top:.6rem; columns:2; column-gap:3rem; }
@media (max-width:720px){ .chapters{ columns:1; } }
.chapters li{ list-style:none; padding:.5rem 0; border-top:1px solid var(--line); font-size:.88rem; color:var(--muted); }
.chapters li b{ color:var(--ink); font-weight:600; }

/* upsell strip */
.upsell{
  margin-top:3rem; border:1px solid var(--line); background:var(--bg-2);
  padding:1.8rem; display:flex; flex-wrap:wrap; gap:1.4rem; align-items:center; justify-content:space-between;
}
.upsell p{ font-family:var(--serif); font-size:1.25rem; }
.upsell .micro{ margin-top:.3rem; }

/* ---------- legal ---------- */
.legal h1{ font-family:var(--serif); font-size:clamp(1.9rem,4vw,2.6rem); margin:0 0 1.6rem; }
.legal h2{ font-size:1rem; margin:2rem 0 .6rem; letter-spacing:.02em; }
.legal p, .legal li{ color:var(--muted); font-size:.95rem; margin-bottom:.8rem; max-width:70ch; }
.legal ul{ padding-left:1.2rem; }

/* ---------- footer ---------- */
footer{ border-top:1px solid var(--line); padding:3rem 0 2.4rem; margin-top:2rem; }
.disclaimer{
  font-size:.78rem; color:var(--faint); line-height:1.6; max-width:80ch;
  padding:1.4rem; border:1px dashed var(--line); margin-bottom:2rem;
}
.foot-grid{ display:flex; flex-wrap:wrap; justify-content:space-between; gap:1.4rem; align-items:center; }
.foot-links{ display:flex; flex-wrap:wrap; gap:1.4rem; }
.foot-links a{ font-size:.72rem; letter-spacing:.12em; text-transform:uppercase; color:var(--muted); text-decoration:none; }
.foot-links a:hover{ color:var(--ink); }
.copyright{ font-size:.75rem; color:var(--faint); }

/* reveal on scroll */
.reveal{ opacity:1; }
.reveal.pre{ opacity:0; transform:translateY(18px); transition:opacity .6s ease, transform .6s ease; }
.reveal.pre.on{ opacity:1; transform:none; }
@media (prefers-reduced-motion:reduce){ .reveal.pre{ opacity:1; transform:none; transition:none; } }

/* thanks page */
.dl-box{ border:1px solid var(--line); background:var(--bg-2); padding:2rem; margin-top:1.6rem; }
.dl-box li{ list-style:none; padding:.7rem 0; border-top:1px solid var(--line); }
.dl-box li:first-child{ border-top:0; }
