/* ─────────────────────────────────────────────────────────────
   home animation overlay  ·  v0.3
   loaded only by site/home.html  ·  ~6KB inc. CSS
   ───────────────────────────────────────────────────────────── */

/* ── 1.  Word stagger (hero) ─────────────────────────── */
.split{opacity:1 !important;animation:none !important}
.split .word{display:inline-block;vertical-align:baseline}
.split .word > span{
  display:inline-block;
  transform:translateY(28px);
  opacity:0;
  animation:heroIn .85s cubic-bezier(.2,.74,.2,1) both;
  animation-delay:var(--d,0ms);
  will-change:transform,opacity;
}
@keyframes heroIn{
  from {transform:translateY(28px);opacity:0}
  60%  {opacity:1}
  to   {transform:translateY(0);opacity:1}
}

/* ── 2.  Italic <em> editorial underline draw ────────── */
.em-uline{position:relative}
.em-uline::after{
  content:'';position:absolute;left:0;right:0;bottom:-2px;height:1px;
  background:var(--accent);transform:scaleX(0);transform-origin:0 50%;
  transition:transform .9s cubic-bezier(.4,.7,.2,1) .15s;pointer-events:none;
}
.em-uline.lit::after{transform:scaleX(1)}

/* ── 3.  Stat counter (visual only — JS swaps the text) ─ */
.strip-cell .v em{font-variant-numeric:tabular-nums}

/* ── 4.  Section / row reveal ────────────────────────── */
.r{opacity:0;transform:translateY(22px);transition:opacity .8s cubic-bezier(.2,.7,.3,1),transform .8s cubic-bezier(.2,.7,.3,1);will-change:transform,opacity}
.r.in{opacity:1;transform:none}
.r-1{transition-delay:.04s}.r-2{transition-delay:.10s}.r-3{transition-delay:.18s}.r-4{transition-delay:.26s}.r-5{transition-delay:.34s}.r-6{transition-delay:.42s}

/* ── 5.  Manifesto strike + replacement reveal ───────── */
.manifesto p .strike{position:relative;text-decoration:none;color:var(--muted)}
.manifesto p .strike::after{
  content:'';position:absolute;left:-2%;right:-2%;top:50%;height:2px;
  background:var(--accent);transform:scaleX(0);transform-origin:0 50%;
  transition:transform 1.05s cubic-bezier(.55,.05,.25,.92);
  border-radius:1px;
}
.manifesto.struck p .strike::after{transform:scaleX(1)}
.manifesto p .strike,
.manifesto p em{transition:color .55s ease}
.manifesto p > em:first-of-type{
  opacity:0;transform:translateY(8px);
  transition:opacity .9s cubic-bezier(.2,.7,.3,1) .85s,transform .9s cubic-bezier(.2,.7,.3,1) .85s;
}
.manifesto.struck p > em:first-of-type{opacity:1;transform:none}

/* ── 6.  Chapter rail (fixed) ────────────────────────── */
.chapter-rail{
  position:fixed;top:50%;right:18px;transform:translateY(-50%);
  z-index:40;display:flex;flex-direction:column;gap:14px;
  opacity:0;transition:opacity .4s ease;pointer-events:none;
}
.chapter-rail.show{opacity:1;pointer-events:auto}
.chapter-rail .ch{
  display:flex;align-items:center;gap:10px;
  font-family:var(--mono);font-size:9px;letter-spacing:.18em;
  color:var(--muted);text-transform:uppercase;text-decoration:none;
  transition:color .25s,gap .25s;
}
.chapter-rail .ch:hover{color:var(--accent);gap:14px}
.chapter-rail .ch .bar{
  width:18px;height:1px;background:var(--line-2);transition:all .3s;flex:0 0 auto;
}
.chapter-rail .ch.cur{color:var(--accent)}
.chapter-rail .ch.cur .bar{background:var(--accent);width:34px;height:2px}
.chapter-rail .ch .lbl{opacity:0;transform:translateX(-6px);transition:all .3s;white-space:nowrap}
.chapter-rail .ch:hover .lbl,.chapter-rail .ch.cur .lbl{opacity:1;transform:none}
@media (max-width:1240px){.chapter-rail{display:none}}

/* ── 7.  Magnetic primary CTA ────────────────────────── */
.btn.primary.magnet{transition:transform .22s cubic-bezier(.2,.7,.3,1),background .2s}

/* ── 8.  Live eyebrow clock ──────────────────────────── */
.eyebrow .clock{font-variant-numeric:tabular-nums;opacity:.85}
.eyebrow .clock::before{content:'·';margin:0 8px;color:var(--line-2)}

/* reduced motion: opt out gracefully */
@media (prefers-reduced-motion: reduce){
  .split .word > span{animation:none;transform:none;opacity:1}
  .em-uline::after{transition:none}
  .r{transition:none;opacity:1;transform:none}
  .manifesto p .strike::after,.manifesto p > em:first-of-type{transition:none}
  .manifesto p > em:first-of-type{opacity:1;transform:none}
  .btn.primary.magnet{transition:none}
}
