/* ============================================================
   Biohacking Cancer — book funnel design system
   "luminous-graphite": editorial · monochrome · premium
   Sora (headings) + Inter (body). Standalone from the teal home site.
   Palette from the Figma spec (Palette.png / Typography.png).
   ============================================================ */

:root{
  --ink:#15171A;        /* body text + dark sections */
  --ink-deep:#0E1012;   /* deepest black for hero base */
  --white:#FFFFFF;      /* headlines on dark */
  --paper:#FCFCFB;      /* page background */
  --surface:#F2F3F4;    /* section background */
  --surface-2:#E4E7EA;  /* alternate section */
  --tint:#F0F2F4;       /* accent tint */
  --card:#D9DDE1;       /* card fill (light) */
  --border:#9DA4AC;     /* borders / icons */
  --muted:#727A84;      /* secondary text */

  --font-head:'Sora',-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;
  --font-body:'Inter',-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;

  --maxw:1180px;
  --pad:clamp(64px,9vw,120px);
  --radius:10px;
}

*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{
  margin:0;
  font-family:var(--font-body);
  color:var(--ink);
  background:var(--paper);
  line-height:1.6;
  overflow-x:hidden;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
}
img{max-width:100%;height:auto;display:block}
a{color:inherit}

/* ---------- layout ---------- */
.wrap{max-width:var(--maxw);margin:0 auto;padding-inline:clamp(20px,5vw,40px)}
.sec{padding-block:var(--pad);position:relative}
.sec.paper{background:var(--paper)}
.sec.surface{background:var(--surface)}
.sec.surface-2{background:var(--surface-2)}
.sec.dark{background:var(--ink);color:var(--white)}
.sec.dark .lead,.sec.dark p{color:rgba(255,255,255,.74)}
.narrow{max-width:820px}

/* ---------- type ---------- */
h1,h2,h3,h4{font-family:var(--font-head);font-weight:700;line-height:1.04;letter-spacing:-.02em;margin:0}
.h-hero{font-size:clamp(38px,5.6vw,66px);font-weight:800;line-height:1.0}
.h-sec{font-size:clamp(28px,4.2vw,46px)}
.h-sub{font-size:clamp(21px,2.6vw,30px);font-weight:700}
.eyebrow{
  font-family:var(--font-head);font-weight:600;font-size:13px;
  letter-spacing:.16em;text-transform:uppercase;color:var(--muted);
  margin:0 0 18px;line-height:1.5;
}
.eyebrow::before{content:"";width:7px;height:7px;background:var(--border);display:inline-block;margin-right:10px;vertical-align:middle}
.sec.dark .eyebrow{color:rgba(255,255,255,.55)}
.sec.dark .eyebrow::before{background:rgba(255,255,255,.4)}
.lead{font-size:clamp(17px,1.7vw,20px);line-height:1.6;color:var(--ink)}
p{color:var(--muted)}
.strong-ink{color:var(--ink);font-weight:400}
.sec.dark .strong-ink{color:#fff}

/* ---------- buttons ---------- */
.btn{
  font-family:var(--font-head);font-weight:600;font-size:16px;
  display:inline-flex;align-items:center;gap:10px;
  padding:15px 26px;border-radius:var(--radius);border:1px solid transparent;
  text-decoration:none;cursor:pointer;transition:transform .15s ease,opacity .15s ease;
  white-space:nowrap;
}
.btn:hover{transform:translateY(-1px)}
.btn.dark{background:var(--ink);color:#fff}
.btn.light{background:#fff;color:var(--ink)}
.btn.ghost{background:transparent;color:inherit;padding-inline:6px;opacity:.9}
.btn.ghost:hover{opacity:1}
.btn.block{width:100%;justify-content:center}
.btn.sm{padding:11px 20px;font-size:14px}

/* ---------- header ---------- */
.fnl-hdr{position:sticky;top:0;z-index:20;background:rgba(21,23,26,.82);backdrop-filter:blur(12px);border-bottom:1px solid rgba(255,255,255,.08)}
.fnl-hdr__in{display:flex;align-items:center;justify-content:space-between;height:66px}
.fnl-logo{font-family:var(--font-head);font-weight:700;font-size:18px;letter-spacing:-.01em;color:#fff;text-decoration:none}
.fnl-hdr .btn.dark{background:#fff;color:var(--ink)}

/* ---------- hero (luminous-graphite) ---------- */
.hero{
  background:
    radial-gradient(1100px 520px at 80% 14%, rgba(255,255,255,.12), transparent 58%),
    linear-gradient(118deg, transparent 28%, rgba(255,255,255,.05) 44%, rgba(255,255,255,.16) 49.5%, rgba(255,255,255,.05) 55%, transparent 70%),
    linear-gradient(157deg, #17191C 0%, #101214 58%, var(--ink-deep) 100%);
  color:var(--white);
  overflow:hidden;
}
.hero .lead,.hero p{color:rgba(255,255,255,.76)}
.hero-grid{display:grid;grid-template-columns:1.05fr .95fr;gap:clamp(32px,5vw,72px);align-items:center}
.hero-cta{display:flex;flex-wrap:wrap;align-items:center;gap:14px;margin-top:30px}
.hero p+p{margin-top:16px}
.hero-eyebrow{color:rgba(255,255,255,.62)}

/* book cover art in hero */
.cover-art{position:relative;filter:drop-shadow(0 40px 80px rgba(0,0,0,.6))}
.cover-art img{border-radius:6px;margin-inline:auto}

/* ---------- opt-in form card ---------- */
.optin-card{
  background:rgba(255,255,255,.04);
  border:1px solid rgba(255,255,255,.12);
  border-radius:14px;padding:clamp(24px,3vw,34px);
  backdrop-filter:blur(6px);
}
.optin-card .eyebrow{color:rgba(255,255,255,.6)}
.optin-card h2{color:#fff;font-size:26px;margin-bottom:8px}
.optin-card .sub{color:rgba(255,255,255,.7);font-size:15px;margin:0 0 20px}
.field{width:100%;font-family:var(--font-body);font-size:16px;color:#fff;
  background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.16);
  border-radius:8px;padding:14px 16px;margin-bottom:12px}
.field::placeholder{color:rgba(255,255,255,.5)}
.field:focus{outline:none;border-color:rgba(255,255,255,.5);background:rgba(255,255,255,.09)}
.optin-list{margin-top:20px;border-top:1px solid rgba(255,255,255,.12);padding-top:16px;display:flex;flex-direction:column;gap:12px}
.optin-list__row{display:flex;align-items:center;gap:14px}
.optin-list__num{font-family:var(--font-head);font-weight:700;font-size:12px;color:rgba(255,255,255,.85);
  background:rgba(255,255,255,.1);border-radius:6px;width:34px;height:34px;display:flex;align-items:center;justify-content:center;flex:0 0 auto}
.optin-list__t{color:#fff;font-weight:600;font-size:15px;line-height:1.25}
.optin-list__t span{display:block;font-family:var(--font-head);font-weight:600;font-size:10.5px;letter-spacing:.12em;color:rgba(255,255,255,.5);text-transform:uppercase;margin-top:3px}
.form-note{font-size:13px;color:rgba(255,255,255,.55);margin:12px 0 0;line-height:1.5}

/* ---------- badges ---------- */
.pdf-badge{display:inline-flex;align-items:center;gap:10px;margin-bottom:16px}
.pdf-badge b{font-family:var(--font-head);font-weight:700;font-size:12px;letter-spacing:.04em;background:var(--ink);color:#fff;padding:5px 9px;border-radius:5px}
.pdf-badge span{font-family:var(--font-head);font-weight:600;font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}

/* ---------- bonus blocks ---------- */
.bonus{display:grid;grid-template-columns:.9fr 1.1fr;gap:clamp(28px,5vw,64px);align-items:center}
.bonus.flip .bonus__media{order:2}
.bonus__media{background:#fff;border:1px solid var(--card);border-radius:14px;padding:clamp(22px,3vw,40px);box-shadow:0 24px 60px rgba(21,23,26,.10)}
.bonus__media img{margin-inline:auto;filter:drop-shadow(0 24px 40px rgba(0,0,0,.35))}
.bonus h3{font-size:clamp(22px,2.7vw,30px);line-height:1.12;margin-bottom:16px}
.you-get-h{margin-bottom:clamp(36px,5vw,60px)}
.ul-check{list-style:none;margin:8px 0 0;padding:0;display:flex;flex-direction:column;gap:12px}
.ul-check li{position:relative;padding-left:26px;color:var(--muted);line-height:1.5}
.ul-check li::before{content:"";position:absolute;left:0;top:9px;width:9px;height:9px;border:1.5px solid var(--ink);border-radius:2px}
.mini-h{font-family:var(--font-head);font-weight:700;color:var(--ink);font-size:15px;margin:22px 0 4px}
.callout{border-left:3px solid var(--ink);background:var(--tint);padding:16px 20px;margin-top:24px;font-size:15.5px;color:var(--ink);border-radius:0 8px 8px 0}

/* ---------- discover cards ---------- */
.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:20px}
.disc-card{background:#fff;border:1px solid rgba(255,255,255,.1);border-radius:4px;padding:26px 28px;display:flex;gap:18px;align-items:flex-start}
.disc-num{font-family:var(--font-head);font-weight:700;font-size:15px;color:#fff;background:var(--ink);border:1px solid rgba(255,255,255,.14);width:44px;height:44px;border-radius:4px;display:flex;align-items:center;justify-content:center;flex:0 0 auto}
.disc-card p{color:var(--ink);margin:0;font-size:16px;line-height:1.45}
.disc-card p b{font-weight:700}
.disc-foot{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:20px;margin-top:44px}
.disc-foot .h-sub{color:#fff}

/* ---------- reader fit ---------- */
.fit{display:grid;grid-template-columns:1fr 1fr;gap:28px;margin-top:clamp(30px,4vw,46px)}
.fit__col{border-radius:12px;padding:clamp(26px,3vw,38px)}
.fit__col.yes{background:var(--ink);color:#fff}
.fit__col.no{background:var(--surface);border:1px solid var(--card)}
.fit__h{font-family:var(--font-head);font-weight:700;font-size:14px;letter-spacing:.1em;text-transform:uppercase;margin:0 0 22px}
.fit__col.yes .fit__h{color:rgba(255,255,255,.55)}
.fit__col.no .fit__h{color:var(--muted)}
.fit ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:18px}
.fit li{position:relative;padding-left:32px;line-height:1.45}
.fit__col.yes li{color:rgba(255,255,255,.9)}
.fit__col.no li{color:var(--ink)}
.fit li::before{position:absolute;left:0;top:1px;font-size:16px;line-height:1.4}
.fit__col.yes li::before{content:"\2713";color:#fff;opacity:.85}
.fit__col.no li::before{content:"\2715";color:var(--border)}

/* ---------- faq ---------- */
.faq{display:grid;grid-template-columns:.7fr 1.3fr;gap:clamp(28px,5vw,60px);align-items:start}
.faq__q{margin-top:8px}
.faq details{background:#fff;border-radius:8px;margin-bottom:14px;border:1px solid var(--card);overflow:hidden}
.faq summary{list-style:none;cursor:pointer;padding:22px 26px;font-family:var(--font-head);font-weight:700;font-size:17px;color:var(--ink);display:flex;justify-content:space-between;gap:20px;align-items:center}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";font-weight:400;font-size:24px;color:var(--muted);flex:0 0 auto}
.faq details[open] summary::after{content:"\2013"}
.faq__a{padding:0 26px 24px;color:var(--muted);line-height:1.6}
.faq__a.todo{color:#9a6b00;background:#fff8e6;border-top:1px dashed #e6c766;padding-top:14px;font-size:14px}

/* ---------- method diagram + reality graph ---------- */
.method{display:grid;grid-template-columns:1fr 1fr;gap:clamp(28px,5vw,60px);align-items:center}
.reality-grid{display:grid;grid-template-columns:1fr 1fr;gap:22px;margin-top:clamp(28px,4vw,44px)}
.reality-card{background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.08);border-radius:12px;padding:clamp(24px,3vw,34px)}
.reality-card .strong-ink{font-family:var(--font-head);font-weight:700;font-size:19px;display:block;margin-bottom:14px}
.diagram,.reality-graph{width:100%;height:auto}

/* ---------- author ---------- */
.author-grid{display:grid;grid-template-columns:.8fr 1.2fr;gap:clamp(30px,5vw,60px);align-items:center;margin-top:8px}
.author-photo{border-radius:12px;overflow:hidden;background:#0c0d0f;box-shadow:0 24px 60px rgba(21,23,26,.18)}
.pull{border-left:3px solid var(--ink);background:var(--tint);padding:18px 22px;margin:20px 0;font-family:var(--font-head);font-weight:600;font-size:19px;line-height:1.35;color:var(--ink);border-radius:0 8px 8px 0}
.sec.dark .pull{border-color:#fff;background:rgba(255,255,255,.06);color:#fff}
.stack p{margin:0 0 16px}

/* ---------- inside the book ---------- */
.inside{display:grid;grid-template-columns:1.1fr .9fr;gap:clamp(30px,5vw,60px);align-items:center}
.inside__media img{margin-inline:auto;filter:drop-shadow(0 30px 55px rgba(0,0,0,.28))}

/* ---------- final cta (device) ---------- */
.final{display:grid;grid-template-columns:1.05fr .95fr;gap:clamp(28px,5vw,56px);align-items:center}
.final__media img{margin-inline:auto}

/* ---------- thank-you ---------- */
.ty-wrap{min-height:70vh;display:flex;align-items:center;justify-content:center;background:var(--surface);padding:clamp(40px,8vw,90px) 20px}
.ty-card{background:#fff;max-width:820px;width:100%;border-radius:16px;padding:clamp(34px,5vw,64px);box-shadow:0 30px 70px rgba(21,23,26,.10)}
.ty-card .kicker{font-style:italic;color:var(--muted);font-size:15px;margin:0 0 18px}
.ty-card h1{font-size:clamp(34px,5vw,52px);margin-bottom:20px}
.ty-card p{color:var(--ink);margin:0 0 16px;font-size:16.5px}
.ty-card .quote{border-left:3px solid var(--ink);padding:6px 0 6px 18px;font-family:var(--font-head);font-weight:700;font-size:20px;color:var(--ink);margin:20px 0}
.ty-card .sig{font-style:italic;color:var(--muted);margin-top:24px}

/* ---------- footer ---------- */
.fnl-ftr{background:var(--ink-deep);color:rgba(255,255,255,.6);padding:52px 0}
.fnl-ftr__brand{font-family:var(--font-head);font-weight:700;color:#fff;margin:0 0 16px;font-size:16px}
.fnl-ftr__nav{display:flex;flex-wrap:wrap;gap:22px;margin-bottom:18px}
.fnl-ftr__nav a{color:rgba(255,255,255,.7);text-decoration:none;font-size:14px}
.fnl-ftr__nav a:hover{color:#fff}
.fnl-ftr__fine{font-size:13px;color:rgba(255,255,255,.42);margin:0;max-width:70ch;line-height:1.6}

/* ---------- responsive ---------- */
@media (max-width:880px){
  .hero-grid,.bonus,.grid-2,.fit,.faq,.method,.reality-grid,.author-grid,.inside,.final{grid-template-columns:1fr}
  .bonus.flip .bonus__media{order:0}
  .cover-art{max-width:340px;margin-inline:auto}
  .hero-grid .cover-art{order:-1}
  .disc-foot{flex-direction:column;align-items:flex-start}
  .method .diagram{max-width:420px;margin-inline:auto}
}
@media (max-width:520px){
  .fnl-hdr .btn{display:none}
  .btn{width:100%;justify-content:center}
  .hero-cta{flex-direction:column;align-items:stretch}
}
