/* ============================================================
   Ephoria - site.css
   Light editorial premium. Paper · ink · periwinkle.
   Fraunces (display) · General Sans (UI) · IBM Plex Mono (labels)
   Hairlines, never shadows. Colour is a coded index, never decoration.
   ------------------------------------------------------------
   Contrast contract (measured against paper #FAFAF7):
     ink   #151318  17.6:1   - all primary text
     ink-2 #55515C   7.4:1   - body / secondary text
     ink-3 #6E6A75   5.0:1   - labels, mono, fine print
     iris  #4B4C96   7.2:1   - links, CTAs, the only coloured TEXT
     periwinkle #8384B8 3.4:1 - NEVER text. Rules, dots, marks only.
     spectrum accents            - NEVER text. 8px dots and 2px rules only.
   ============================================================ */

:root{
  --paper:#FAFAF7;
  --paper-2:#F4F3EE;          /* recessed bands */
  --ink:#151318;
  --ink-2:#55515C;
  --ink-3:#6E6A75;
  --peri:#8384B8;
  --iris:#4B4C96;
  --iris-dk:#3C3D7E;

  --coral:#E08783;
  --blue:#799AAB;
  --sage:#7AAE91;
  --brick:#B73D39;
  --caramel:#D29B6A;
  --aqua:#A2D0CD;
  --peach:#EF9E7C;

  --hair:rgba(21,19,24,.12);
  --hair-soft:rgba(21,19,24,.07);
  --hair-strong:rgba(21,19,24,.22);

  --disp:"Fraunces","Iowan Old Style",Georgia,"Times New Roman",serif;
  --ui:"General Sans",-apple-system,BlinkMacSystemFont,"Segoe UI",Helvetica,Arial,sans-serif;
  --mono:"IBM Plex Mono",ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;

  --wrap:1320px;
  --gut:clamp(20px,3.4vw,44px);
  --ease:cubic-bezier(.16,1,.3,1);
  --sec:clamp(26px,2.9vw,42px);   /* the one distance between numbered parts (Badal 2026-09-01: measured ink-to-ink gap ≈ 2×this + ~15px; keep total ≤ ~100px desktop) */
}

*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
html,body{overflow-x:hidden;max-width:100%}
body{
  background:var(--paper);
  color:var(--ink);
  font-family:var(--ui);
  font-size:clamp(17px,1.02vw,19px);
  line-height:1.65;
  font-weight:400;
  -webkit-font-smoothing:antialiased;
  -moz-osx-font-smoothing:grayscale;
}
img,video{display:block;max-width:100%;height:auto}
a{color:inherit;text-decoration:none}
button{font:inherit;color:inherit;background:none;border:0;cursor:pointer}
::selection{background:var(--peri);color:#fff}
:focus-visible{outline:2px solid var(--iris);outline-offset:3px;border-radius:2px}
.vh{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}

.wrap{max-width:var(--wrap);margin:0 auto;padding-inline:var(--gut);position:relative}

/* - paper grain: 4%, multiply, purely optical - */
.grain{
  position:fixed;inset:0;z-index:1;pointer-events:none;opacity:.045;mix-blend-mode:multiply;
  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='.85' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='160' height='160' filter='url(%23n)'/%3E%3C/svg%3E");
}
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}
}

/* ── Type ─────────────────────────────────────────────────── */
h1,h2{
  font-family:var(--disp);font-weight:400;
  font-variation-settings:"opsz" 144,"SOFT" 22,"WONK" 1;
  letter-spacing:-.032em;line-height:.98;
  text-wrap:balance;
}
h1{font-size:clamp(3.2rem,8vw,8.5rem);letter-spacing:-.04em;line-height:.95}
h1 em{font-style:italic;font-variation-settings:"opsz" 144,"SOFT" 60,"WONK" 1;color:var(--iris)}
h2{font-size:clamp(2.2rem,4.4vw,4.1rem)}
h3{font-family:var(--disp);font-weight:500;font-variation-settings:"opsz" 24,"SOFT" 12,"WONK" 0;
   font-size:clamp(1.35rem,1.9vw,1.72rem);letter-spacing:-.018em;line-height:1.15}

.lede{color:var(--ink-2);max-width:62ch;font-size:clamp(17px,1.15vw,20px);line-height:1.6;margin-top:22px}
.fine{font-size:14.5px;line-height:1.6;color:var(--ink-3)}
p+p{margin-top:1.05em}

.mono,.eyebrow,.chip,.strip-label,.badge,.step-n{
  font-family:var(--mono);font-weight:400;
  font-size:11.5px;letter-spacing:.14em;text-transform:uppercase;
  color:var(--ink-3);line-height:1.4;
}
.eyebrow{display:inline-flex;align-items:center;gap:10px;margin-bottom:26px}
.dot{width:8px;height:8px;border-radius:50%;flex:none;display:inline-block}
.dot-peri{background:var(--peri)} .dot-coral{background:var(--coral)}
.dot-sage{background:var(--sage)} .dot-caramel{background:var(--caramel)}
.dot-aqua{background:var(--aqua)} .dot-peach{background:var(--peach)}
.dot-blue{background:var(--blue)}

/* ── Reveal: translateY + opacity only ────────────────────── */
[data-reveal]{opacity:0;transform:translateY(24px);
  transition:opacity .82s var(--ease),transform .82s var(--ease)}
[data-reveal].in{opacity:1;transform:none}
.sec-head [data-reveal]{transition-delay:0s}
.hero-copy>[data-reveal]:nth-child(1){transition-delay:.04s}
.hero-copy>[data-reveal]:nth-child(2){transition-delay:.12s}
.hero-copy>[data-reveal]:nth-child(3){transition-delay:.20s}
.hero-copy>[data-reveal]:nth-child(4){transition-delay:.28s}
.hero-copy>[data-reveal]:nth-child(5){transition-delay:.36s}
.proof-cell:nth-child(2),.steps li:nth-child(2),.plans>:nth-child(2),.band-grid>:nth-child(2){transition-delay:.08s}
.proof-cell:nth-child(3),.steps li:nth-child(3),.plans>:nth-child(3),.band-grid>:nth-child(3){transition-delay:.16s}
.faq:nth-child(2){transition-delay:.06s} .faq:nth-child(3){transition-delay:.12s}
.faq:nth-child(4){transition-delay:.18s} .faq:nth-child(5){transition-delay:.24s}
.faq:nth-child(6){transition-delay:.30s} .faq:nth-child(7){transition-delay:.36s}
html.nofx{scroll-behavior:auto}
html.nofx [data-reveal]{opacity:1;transform:none;transition:none}
html.nofx .marquee-track{animation:none}
html.nofx .mesh{transform:none!important}

/* ── Buttons ──────────────────────────────────────────────── */
.btn{
  display:inline-flex;align-items:center;justify-content:center;
  font-family:var(--ui);font-weight:500;font-size:15px;letter-spacing:-.005em;
  padding:15px 26px;border-radius:999px;border:1px solid transparent;
  transition:background .35s var(--ease),color .35s var(--ease),border-color .35s var(--ease),transform .35s var(--ease);
  text-align:center;
}
.btn-solid{background:var(--iris);color:#fff}
.btn-solid:hover{background:var(--iris-dk)}
.btn-ghost{border-color:var(--hair-strong);color:var(--ink)}
.btn-ghost:hover{border-color:var(--iris);color:var(--iris)}
@media (hover:hover){.btn:hover{transform:translateY(-1px)}}

/* ── Header ───────────────────────────────────────────────── */
.site-head{position:sticky;top:0;z-index:60;background:rgba(250,250,247,.86);
  -webkit-backdrop-filter:saturate(140%) blur(14px);backdrop-filter:saturate(140%) blur(14px);
  border-bottom:1px solid var(--hair-soft)}
.head-in{display:flex;align-items:center;gap:26px;height:74px}
.brand{flex:none;display:block}
.brand img{width:auto;height:20px}
.nav{margin-left:auto;display:flex;gap:clamp(18px,2.1vw,34px)}
.nav a{font-size:15px;color:var(--ink-2);position:relative;padding-block:4px;transition:color .3s var(--ease)}
.nav a::after{content:"";position:absolute;left:0;right:100%;bottom:0;height:1px;background:var(--peri);transition:right .4s var(--ease)}
.nav a:hover{color:var(--ink)} .nav a:hover::after{right:0}
.head-right{display:flex;align-items:center;gap:14px;margin-left:auto}
.nav+.head-right{margin-left:0}
.head-cta{padding:11px 20px;font-size:14px}
.nav-toggle{display:none;width:42px;height:42px;border:1px solid var(--hair);border-radius:999px;
  flex-direction:column;align-items:center;justify-content:center;gap:5px}
.nav-toggle span{display:block;width:15px;height:1px;background:var(--ink);transition:transform .35s var(--ease)}
.nav-toggle[aria-expanded="true"] span:first-child{transform:translateY(3px) rotate(45deg)}
.nav-toggle[aria-expanded="true"] span:last-child{transform:translateY(-3px) rotate(-45deg)}

/* floating CTA (mobile-weighted) */
/* Centred by auto margins, not left:50% - a shrink-to-fit fixed box anchored at
   left:50% may only use half the viewport, which wrapped the label in two. */
.fab{position:fixed;left:0;right:0;bottom:18px;margin-inline:auto;
  width:max-content;max-width:calc(100vw - 28px);
  transform:translateY(140%);z-index:70;
  background:var(--iris);color:#fff;font-weight:500;font-size:15px;
  padding:14px clamp(18px,6vw,26px);border-radius:999px;
  text-align:center;white-space:nowrap;
  transition:transform .5s var(--ease),opacity .4s var(--ease);opacity:0;pointer-events:none;
  box-shadow:0 1px 0 rgba(21,19,24,.10)}
.fab.on{transform:translateY(0);opacity:1;pointer-events:auto}
/* Below ~340px even the tight pill would overflow; trim the type instead of wrapping. */
@media (max-width:340px){.fab{font-size:14px;padding:13px 16px}}
@media (min-width:861px){.fab{display:none}}

/* ── Gradient mesh (hero + footer only) ───────────────────── */
.mesh{position:absolute;inset:-14% -10% -10%;z-index:0;pointer-events:none;
  filter:blur(80px);overflow:hidden;will-change:transform}
.mesh i{position:absolute;display:block;border-radius:50%}
.mesh .b1{width:52vw;height:52vw;max-width:760px;max-height:760px;left:-6%;top:-8%;background:var(--peri);opacity:.22}
.mesh .b2{width:44vw;height:44vw;max-width:640px;max-height:640px;right:-4%;top:14%;background:var(--coral);opacity:.18}
.mesh .b3{width:40vw;height:40vw;max-width:560px;max-height:560px;left:34%;bottom:-14%;background:var(--aqua);opacity:.20}
/* Legibility over the mesh: --ink-3 (5.0:1 on bare paper) drops to 3.5:1 at the
   worst three-disc overlap. Everything sitting on a mesh steps up to --ink-2,
   which holds 5.1:1 even there. */
.hero .eyebrow,.hero-terms,.hero-film figcaption,
.site-foot .foot-bottom small,.site-foot .foot-nav a{color:var(--ink-2)}
@media (max-width:860px){.mesh{filter:blur(58px)}
  .mesh .b1{width:78vw;height:78vw} .mesh .b2{width:70vw;height:70vw} .mesh .b3{width:66vw;height:66vw}}

/* ── Hero ─────────────────────────────────────────────────── */
.hero{position:relative;overflow:hidden;padding-top:clamp(40px,4.4vw,70px);padding-bottom:clamp(26px,2.6vw,40px)}
.hero-grid{display:grid;grid-template-columns:minmax(0,7.2fr) minmax(0,4.8fr);gap:clamp(32px,5vw,72px);align-items:end;z-index:2}
.hero-copy{min-width:0}
.hero h1{margin-bottom:6px}
.hero .lede{max-width:44ch}
.hero-cta{display:flex;flex-wrap:wrap;gap:12px;margin-top:30px}
.hero-terms{margin-top:18px;color:var(--ink-2);letter-spacing:.1em}   /* ink-2: 5.1:1 over the mesh */
.hero-film{min-width:0}
/* caption shares the plate's box exactly, so its first character sits on the plate's left edge */
.hero-film figcaption{margin:14px 0 0 auto;width:min(100%,320px);font-size:11px;letter-spacing:.1em;
  color:var(--ink-2);text-transform:none;line-height:1.55}
.hero-film .plate{aspect-ratio:9/16;max-height:min(52vh,480px);margin-left:auto;width:min(100%,320px)}
.hero-film .plate video{width:100%;height:100%;object-fit:cover}

/* hairline plate - the one framing device on the whole site */
.plate{position:relative;background:var(--paper-2);border:1px solid var(--hair);overflow:hidden}
.plate::after{content:"";position:absolute;inset:0;border:1px solid rgba(255,255,255,.5);pointer-events:none}

/* ── Proof strip ──────────────────────────────────────────── */
.proof{border-block:1px solid var(--hair);background:var(--paper)}
.proof-grid{display:grid;grid-template-columns:repeat(3,1fr)}
.proof-cell{padding:clamp(16px,1.8vw,26px) clamp(18px,2.4vw,40px) clamp(16px,1.8vw,26px) 0;
  border-right:1px solid var(--hair);display:flex;flex-direction:column;gap:8px}
.proof-cell:last-child{border-right:0}
.proof-cell:not(:first-child){padding-left:clamp(18px,2.4vw,40px)}
.proof .num{font-family:var(--disp);font-weight:400;font-variation-settings:"opsz" 96,"SOFT" 20,"WONK" 0;
  font-size:clamp(2.6rem,4.2vw,3.9rem);letter-spacing:-.04em;line-height:.9;font-feature-settings:"tnum" 1}
.proof-cell span{font-size:15px;line-height:1.5;color:var(--ink-2);max-width:26ch}

/* ── Section scaffolding ──────────────────────────────────── */
.sec{padding-block:var(--sec);position:relative;z-index:2}
.sec-head{margin-bottom:clamp(28px,3vw,44px);max-width:min(100%,var(--wrap))}
.sec-head h2{max-width:20ch}
.sec-head .lede{margin-top:18px}

/* ── 01 films: staggered two-height offset grid ───────────── */
/* padding-bottom must clear the nth-child offset below, or the last row clips */
.films{display:grid;grid-template-columns:repeat(4,1fr);gap:clamp(10px,1.1vw,18px);
  align-items:start;padding-bottom:clamp(4px,1vw,14px)}
.film{position:relative;cursor:pointer;background:var(--paper-2);
  border:1px solid var(--hair);overflow:hidden;aspect-ratio:9/16;
  transition:transform .5s var(--ease),border-color .4s var(--ease)}
.films>.film:nth-child(4n+2),.films>.film:nth-child(4n+4){transform:translateY(clamp(20px,3.2vw,48px))}
.films>.film:nth-child(4n+2),.films>.film:nth-child(4n+3){aspect-ratio:9/13.4}
.film video{width:100%;height:100%;object-fit:cover}
.film .chip{position:absolute;left:0;right:0;bottom:0;z-index:2;padding:34px 12px 11px;
  color:#fff;font-size:10.5px;letter-spacing:.11em;
  background:linear-gradient(to top,rgba(15,13,18,.82),rgba(15,13,18,.44) 46%,rgba(15,13,18,0));
  opacity:0;transition:opacity .4s var(--ease)}
.film:hover .chip,.film:focus-visible .chip{opacity:1}
@media (hover:none){.film .chip{opacity:1}}
@media (hover:hover){.films>.film:hover{border-color:var(--peri)}}

/* ── 02 stills: editorial film-strip marquees ─────────────── */
.strip{margin-bottom:clamp(18px,2vw,30px)}
.strip:last-child{margin-bottom:0}
.strip-label{display:flex;align-items:center;gap:10px;max-width:var(--wrap);
  margin:0 auto 14px;padding-inline:var(--gut)}
.marquee{overflow:hidden;position:relative;
  -webkit-mask-image:linear-gradient(90deg,transparent,#000 7%,#000 93%,transparent);
  mask-image:linear-gradient(90deg,transparent,#000 7%,#000 93%,transparent)}
.marquee::before,.marquee::after{content:"";position:absolute;left:0;right:0;height:1px;background:var(--hair-soft);z-index:2}
.marquee::before{top:0} .marquee::after{bottom:0}
.marquee-track{display:flex;gap:clamp(10px,1.1vw,18px);width:max-content;
  padding-block:clamp(10px,1.1vw,18px);animation:mq 74s linear infinite}
.marquee-track.rev{animation-direction:reverse;animation-duration:88s}
.marquee-track figure{width:clamp(168px,17vw,248px);flex:none}
.marquee-track img{width:100%;height:100%;object-fit:cover;aspect-ratio:4/5}
@media (hover:hover) and (pointer:fine){.marquee:hover .marquee-track{animation-play-state:paused}}
@keyframes mq{to{transform:translateX(-50%)}}
.strip-coral .marquee-track figure{border-bottom:2px solid var(--coral)}
.strip-blue .marquee-track figure{border-bottom:2px solid var(--blue)}
.strip-caramel .marquee-track figure{border-bottom:2px solid var(--caramel)}

/* ── 03 how it works ──────────────────────────────────────── */
.steps{list-style:none;display:grid;grid-template-columns:repeat(3,1fr);gap:0;border-top:1px solid var(--hair)}
.steps li{padding:clamp(30px,3.2vw,46px) clamp(20px,2.6vw,44px) clamp(34px,3.6vw,54px) 0;
  border-right:1px solid var(--hair);border-bottom:1px solid var(--hair)}
.steps li:last-child{border-right:0}
.steps li:not(:first-child){padding-left:clamp(20px,2.6vw,44px)}
.step-n{display:inline-flex;align-items:center;gap:9px;color:var(--ink-3);margin-bottom:20px}
.step-n::before{content:"";width:20px;height:2px;background:var(--sage);display:inline-block}
.steps h3{margin-bottom:14px}
.steps p{font-size:16px;line-height:1.6;color:var(--ink-2);max-width:38ch}
.steps .fine{margin-top:18px;padding-top:14px;border-top:1px solid var(--hair-soft);color:var(--ink-3);font-size:13.5px}

/* ── 04 comparison ────────────────────────────────────────── */
.cmp-rivals{display:none}          /* mobile-only rival switcher; shown ≤760px */
.cmp-rivals .mix-lab{display:block}
.cmp-rivals .mix-row{max-width:420px}
.cmp-wrap{border-top:1px solid var(--ink);overflow:hidden}
.cmp{width:100%;border-collapse:collapse;font-size:15px}
.cmp th,.cmp td{text-align:left;vertical-align:top;padding:20px 16px;border-bottom:1px solid var(--hair)}
.cmp thead th{font-family:var(--mono);font-size:11px;letter-spacing:.13em;text-transform:uppercase;
  color:var(--ink-3);font-weight:400;padding-block:16px;border-bottom:1px solid var(--hair)}
.cmp thead th.us{color:var(--ink)}
.cmp tbody th{font-weight:500;color:var(--ink);width:23%;padding-left:0;font-size:15.5px;line-height:1.35}
.cmp td{color:var(--ink-2);width:19.25%}
.cmp .us{background:rgba(131,132,184,.09)}
.cmp thead th.us{background:rgba(131,132,184,.09);color:var(--ink)}
.cmp .us .v{color:var(--ink);font-weight:500}
.cell{display:flex;gap:10px;align-items:flex-start;line-height:1.4}
.tick{width:17px;height:17px;flex:none;margin-top:2px;fill:none;stroke-width:2;stroke-linecap:round}
.tick.yes{stroke:var(--sage)} .tick.no{stroke:var(--brick)} .tick.part{stroke:var(--caramel)}
.cmp-note{margin-top:20px;color:var(--ink-2);font-size:15.5px;max-width:62ch;line-height:1.6}

/* ── 05 pricing ───────────────────────────────────────────── */
.plans{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(14px,1.6vw,24px);align-items:stretch}
/* two cards want less width than three, or the lists sprawl across the card */
.plans-2{grid-template-columns:repeat(2,1fr);max-width:1000px;margin-inline:auto}
.plan{position:relative;display:flex;flex-direction:column;border:1px solid var(--hair);
  padding:clamp(26px,2.6vw,38px);background:var(--paper)}
.plan-feat{border-color:var(--ink);background:var(--paper-2)}
.badge{position:absolute;top:-1px;right:-1px;background:var(--iris);color:#fff;
  padding:7px 14px;font-size:10.5px;letter-spacing:.13em}
.plan-head h3{margin-bottom:18px}
.price{display:flex;flex-wrap:wrap;align-items:baseline;gap:6px;margin-bottom:14px}
.price-custom .per{flex-basis:100%;margin-top:6px}
/* no figures on the page: the slot holds a phrase, so it sets smaller and wraps its own line */
.price-words .amt{font-size:clamp(2.1rem,2.7vw,2.75rem)}
.price-words .per{flex-basis:100%;margin-top:8px}
.price .amt{font-family:var(--disp);font-weight:400;font-variation-settings:"opsz" 96,"SOFT" 20,"WONK" 0;
  font-size:clamp(2.5rem,3.4vw,3.3rem);letter-spacing:-.045em;line-height:1;font-feature-settings:"tnum" 1}
.price .per{font-family:var(--mono);font-size:12px;letter-spacing:.1em;color:var(--ink-3);text-transform:uppercase}
.plan-sub{font-size:15px;line-height:1.5;color:var(--ink-2);padding-bottom:22px;border-bottom:1px solid var(--hair)}
.plan-list{list-style:none;margin:20px 0 26px;display:grid;gap:12px}
.plan-list li{position:relative;padding-left:20px;font-size:15px;line-height:1.5;color:var(--ink-2)}
.plan-list li::before{content:"";position:absolute;left:0;top:.62em;width:8px;height:1px;background:var(--peri)}
.plan-list b{color:var(--ink);font-weight:500}
.plan-cta{margin-top:auto;width:100%}
.plan-note{margin-top:14px}
.plans-foot{margin-top:clamp(20px,2.2vw,32px);text-align:center;color:var(--ink-2);font-size:15.5px}

/* rival-chip row (the comparison table's selector) */
.mix-lab{margin-bottom:11px;color:var(--ink-3);font-size:10.5px}
.mix-row{display:flex;gap:7px}
.mix-b{flex:1;padding:9px 4px;border:1px solid var(--hair-strong);border-radius:999px;
  font-family:var(--mono);font-size:11.5px;letter-spacing:.06em;color:var(--ink-2);
  transition:background .3s var(--ease),color .3s var(--ease),border-color .3s var(--ease)}
.mix-b:hover{border-color:var(--iris);color:var(--iris)}
.mix-b.on{background:var(--ink);border-color:var(--ink);color:var(--paper)}

/* ── Risk-reversal band ───────────────────────────────────── */
.band{background:var(--ink);color:var(--paper);padding-block:clamp(34px,3.8vw,56px);position:relative;z-index:2}
.band-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(22px,3vw,48px)}
.band-grid>div{display:flex;flex-direction:column;gap:9px;padding-left:20px;border-left:1px solid rgba(250,250,247,.22)}
.band-grid b{font-family:var(--disp);font-weight:400;font-variation-settings:"opsz" 48,"SOFT" 16,"WONK" 0;
  font-size:clamp(1.5rem,2.1vw,1.95rem);letter-spacing:-.03em;line-height:1}
.band-grid span{font-size:15px;line-height:1.55;color:rgba(250,250,247,.76);max-width:32ch}

/* ── 06 founder ───────────────────────────────────────────── */
.founder-grid{display:grid;grid-template-columns:minmax(0,4.6fr) minmax(0,7.4fr);gap:clamp(32px,5vw,80px)}
.founder-body{max-width:64ch}
.founder-body p{color:var(--ink-2);font-size:17px;line-height:1.68}
.lead-p{font-family:var(--disp);font-weight:400;font-variation-settings:"opsz" 48,"SOFT" 20,"WONK" 0;
  font-size:clamp(1.4rem,2.1vw,1.9rem)!important;line-height:1.3!important;letter-spacing:-.024em;
  color:var(--ink)!important;margin-bottom:.7em}
.founder-sig{margin-top:24px;padding-top:16px;border-top:1px solid var(--hair);
  color:var(--ink-3);font-size:11px}

/* ── 07 FAQ ───────────────────────────────────────────────── */
.faq-wrap{border-top:1px solid var(--ink);max-width:var(--wrap)}
.faq{border-bottom:1px solid var(--hair)}
.faq summary{list-style:none;cursor:pointer;display:flex;align-items:flex-start;gap:24px;
  padding:22px 0;font-family:var(--disp);font-weight:500;
  font-variation-settings:"opsz" 36,"SOFT" 12,"WONK" 0;
  font-size:clamp(1.14rem,1.6vw,1.45rem);letter-spacing:-.018em;line-height:1.3;
  transition:color .3s var(--ease)}
.faq summary::-webkit-details-marker{display:none}
.faq summary:hover{color:var(--iris)}
.faq summary>span:first-child{flex:1;min-width:0}
.mk{position:relative;width:15px;height:15px;flex:none;margin-top:.42em}
.mk::before,.mk::after{content:"";position:absolute;background:var(--peri);transition:transform .4s var(--ease)}
.mk::before{left:0;top:7px;width:15px;height:1.5px}
.mk::after{left:6.75px;top:0;width:1.5px;height:15px}
.faq[open] .mk::after{transform:scaleY(0)}
.faq-body{padding:0 clamp(24px,4vw,80px) 26px 0;max-width:72ch}
.faq-body p{color:var(--ink-2);font-size:16.5px;line-height:1.68}
.faq-body em{color:var(--ink);font-style:italic}

/* ── 08 contact ───────────────────────────────────────────── */
.contact{border-top:1px solid var(--hair)}
.contact-inner{max-width:880px}
.contact .lede{max-width:52ch}
.cform{margin-top:clamp(26px,3vw,40px);display:grid;grid-template-columns:1fr 1fr;
  gap:clamp(16px,1.8vw,26px)}
.f{display:flex;flex-direction:column;gap:9px;min-width:0}
.f-wide{grid-column:1/-1}
.f>span{color:var(--ink-3);font-size:10.5px}
.f>span i{font-style:normal;opacity:.72;text-transform:none;letter-spacing:.06em}
.f input{width:100%;background:transparent;border:0;border-bottom:1px solid var(--hair-strong);
  padding:11px 0;font-family:var(--ui);font-size:17px;color:var(--ink);
  transition:border-color .35s var(--ease)}
.f input::placeholder{color:rgba(21,19,24,.30)}
.f input:focus{outline:none;border-bottom-color:var(--iris)}
.f-send{grid-column:1/-1;display:flex;flex-wrap:wrap;align-items:center;gap:18px;margin-top:10px}
.cform-note{font-family:var(--mono);font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-3)}
.cform.flash .f input{border-bottom-color:var(--peri)}

/* ── Footer: slim bar (oversized block removed 2026-09-01, Badal) ── */
.site-foot{position:relative;padding-block:26px;border-top:1px solid var(--hair)}
.foot-in{z-index:2}
.foot-bottom{display:flex;flex-wrap:wrap;gap:16px 26px;align-items:center;justify-content:space-between}
.foot-nav{display:flex;flex-wrap:wrap;gap:14px 24px}
.foot-nav a{font-size:14.5px;color:var(--ink-2);transition:color .3s var(--ease)}
.foot-nav a:hover{color:var(--iris)}
.foot-bottom small{color:var(--ink-3);font-size:11px}

/* ── Sent modal (form success) ───────────────────────────────── */
.sent-modal{position:fixed;inset:0;z-index:120;display:flex;align-items:center;justify-content:center;padding:24px}
.sent-modal[hidden]{display:none}
.sent-modal-veil{position:absolute;inset:0;background:rgba(21,19,24,.6);
  -webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}
.sent-modal-inner{position:relative;z-index:2;max-width:420px;width:100%;padding:clamp(28px,4vw,40px);
  background:var(--paper);border:1px solid var(--hair-strong);text-align:center;
  box-shadow:0 24px 60px rgba(21,19,24,.28)}
.sent-modal-inner h3{font-family:var(--disp);font-size:clamp(1.5rem,3vw,1.9rem);color:var(--ink);margin:12px 0 8px}
.sent-modal-inner p{color:var(--ink-2);font-size:15px;line-height:1.6}
.sent-modal-icon{width:44px;height:44px;margin:0 auto;border-radius:999px;background:var(--iris);
  display:flex;align-items:center;justify-content:center}
.sent-modal-icon svg{width:20px;height:20px;fill:none;stroke:#fff;stroke-width:2.4;stroke-linecap:round;stroke-linejoin:round}
.sent-modal-close{margin-top:22px}

/* ── Reel modal ───────────────────────────────────────────── */
.rmodal{position:fixed;inset:0;z-index:95;display:flex;align-items:center;justify-content:center}
.rmodal[hidden]{display:none}
.rmodal-veil{position:absolute;inset:0;background:rgba(21,19,24,.72);
  -webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}
.rmodal-inner{position:relative;z-index:2;margin:0;max-height:86vh;max-width:92vw;aspect-ratio:9/16;
  background:#100E13;border:1px solid rgba(250,250,247,.18);overflow:hidden}
.rmodal-inner video{width:100%;height:100%;object-fit:cover}
.rmodal .chip{position:absolute;left:0;right:0;top:0;z-index:3;padding:14px 16px 30px;color:#fff;
  font-size:10.5px;letter-spacing:.12em;pointer-events:none;
  background:linear-gradient(to bottom,rgba(15,13,18,.72),rgba(15,13,18,0))}
.rm-close{position:absolute;top:8px;right:10px;z-index:4;width:38px;height:38px;color:#fff;
  font-size:26px;line-height:1;border-radius:999px}
.snd{position:absolute;bottom:12px;right:12px;z-index:4;width:40px;height:40px;border-radius:999px;
  background:rgba(21,19,24,.5);border:1px solid rgba(250,250,247,.24);
  display:flex;align-items:center;justify-content:center}
.snd svg{width:19px;height:19px;fill:#fff;stroke:#fff;stroke-width:1.8;stroke-linecap:round}
.snd .ic-off .x,.snd .ic-on .w{fill:none}
.snd .ic-on{display:none} .snd.on .ic-on{display:block} .snd.on .ic-off{display:none}

/* ── privacy.html ─────────────────────────────────────────── */
.legal{max-width:820px;padding-top:clamp(64px,8vw,120px);padding-bottom:clamp(64px,8vw,110px);z-index:2}
.legal h1{font-size:clamp(2.4rem,5.4vw,4.2rem);margin-bottom:8px}
.legal-body{margin-top:clamp(32px,4vw,52px);border-top:1px solid var(--hair);padding-top:clamp(28px,3vw,40px)}
.legal-body p{color:var(--ink-2);font-size:16.5px;line-height:1.7}
.legal-body p+p{margin-top:1.35em}
.legal-body b{color:var(--ink);font-weight:500}
.legal-body a{color:var(--iris);border-bottom:1px solid rgba(75,76,150,.35)}
.legal-body a:hover{border-bottom-color:var(--iris)}
.legal-sig{margin-top:2.4em!important;padding-top:20px;border-top:1px solid var(--hair);
  color:var(--ink-3)!important;font-size:11px!important}
.legal-back{margin-top:clamp(34px,4vw,52px)}

/* ============================================================
   Responsive - restack, never shrink
   ============================================================ */
@media (max-width:1080px){
  .films{grid-template-columns:repeat(3,1fr)}
  .films>.film{transform:none;aspect-ratio:9/16}
  .films>.film:nth-child(2n){transform:translateY(clamp(18px,3vw,40px))}
  .films>.film:nth-child(3n+2){aspect-ratio:9/13.4}
  .founder-grid{grid-template-columns:1fr;gap:34px}
}

@media (max-width:900px){
  .plans{grid-template-columns:1fr;max-width:600px;margin-inline:auto}
  .plan-feat{order:-1}
  .band-grid{grid-template-columns:1fr;gap:26px}
  .steps{grid-template-columns:1fr}
  .steps li{border-right:0;padding-left:0!important;padding-right:0}
  .steps p{max-width:52ch}
}

@media (max-width:860px){
  .nav{position:fixed;inset:74px 0 auto;flex-direction:column;gap:0;background:var(--paper);
    border-bottom:1px solid var(--hair);padding:8px var(--gut) 22px;
    transform:translateY(-130%);transition:transform .45s var(--ease);z-index:59;margin-left:0}
  .nav.open{transform:none}
  .nav a{font-size:19px;padding:14px 0;border-bottom:1px solid var(--hair-soft)}
  .nav a::after{display:none}
  .head-right{margin-left:auto}
  .nav-toggle{display:flex}
  .head-cta{display:none}
  .hero-grid{grid-template-columns:1fr;align-items:start;gap:38px}
  .hero-film .plate{margin-left:0;width:min(72%,280px)}
  .hero-film figcaption{margin-left:0;width:auto;max-width:44ch}
  .proof-grid{grid-template-columns:1fr}
  .proof-cell{border-right:0;border-bottom:1px solid var(--hair);
    padding:20px 0!important;flex-direction:row;align-items:baseline;gap:20px}
  .proof-cell:last-child{border-bottom:0}
  .proof .num{font-size:2.5rem;min-width:118px}
  .proof-cell span{font-size:15px;max-width:34ch}
}

/* comparison: restack to one card per decision */
@media (max-width:760px){
  /* One table, always: Ephoria pinned, one rival at a time via the chips
     (Badal 2026-09-01: the per-row block restack read as five separate tables). */
  .cmp-rivals{display:block;margin-bottom:18px}
  .cmp th,.cmp td{padding:14px 10px}
  .cmp tbody th{width:34%;font-size:14.5px;padding-left:0}
  .cmp td{width:33%}
  .cmp thead th:nth-child(n+3),.cmp tbody td:nth-child(n+3){display:none}
  .cmp-wrap[data-rival="inhouse"] .cmp thead th:nth-child(3),
  .cmp-wrap[data-rival="inhouse"] .cmp tbody td:nth-child(3){display:table-cell}
  .cmp-wrap[data-rival="agency"] .cmp thead th:nth-child(4),
  .cmp-wrap[data-rival="agency"] .cmp tbody td:nth-child(4){display:table-cell}
  .cmp-wrap[data-rival="ai"] .cmp thead th:nth-child(5),
  .cmp-wrap[data-rival="ai"] .cmp tbody td:nth-child(5){display:table-cell}
  .cell{gap:7px}
  .tick{width:15px;height:15px;margin-top:1px}
}

@media (max-width:640px){
  .films{grid-template-columns:repeat(2,1fr)}
  .films>.film{transform:none;aspect-ratio:9/16}
  .films>.film:nth-child(2n){transform:translateY(22px)}
  .films>.film:nth-child(4n+2),.films>.film:nth-child(4n+3),.films>.film:nth-child(3n+2){aspect-ratio:9/16}
  .films>.film:nth-child(4n+3){aspect-ratio:9/13.4}
  .cform{grid-template-columns:1fr}
  .f-send{flex-direction:column;align-items:stretch;gap:14px;text-align:center}
  .f-send .btn{width:100%}
  .marquee-track figure{width:clamp(146px,42vw,190px)}
  .faq summary{gap:16px;padding:22px 0}
  .faq-body{padding-right:0}
  .foot-bottom{flex-direction:column;align-items:flex-start;gap:18px}
  .band-grid>div{padding-left:16px}
}

@media (max-width:380px){
  .head-in{gap:14px}
  .brand img{height:18px}
  .mix-b{font-size:10.5px;letter-spacing:.02em}
  .cmp td{grid-template-columns:1fr;gap:5px}
  .plan{padding:22px 20px}
}

/* ── 08 journal strip (markup written by growth/build.py between the markers) ── */
.jrnsec .jrn{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--hair-soft);border-block:1px solid var(--hair)}
.jrn a{background:var(--paper);display:grid;grid-template-rows:auto 1fr auto;gap:14px;padding:18px 18px 20px;transition:background .3s var(--ease)}
.jrn a:hover{background:var(--paper-2)}
.jrn .th{display:block;aspect-ratio:16/10;overflow:hidden;border:1px solid var(--hair)}
.jrn .th img{width:100%;height:100%;object-fit:cover}
.jrn .kk{font-family:var(--mono);font-size:10.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-3);display:block;margin-bottom:8px}
.jrn .tt{font-family:var(--disp);font-weight:500;font-variation-settings:"opsz" 36,"SOFT" 12,"WONK" 0;font-size:clamp(1.05rem,1.4vw,1.3rem);letter-spacing:-.018em;line-height:1.22;color:var(--ink);display:block}
.jrn .rt{font-family:var(--mono);font-size:10.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-3)}
.jrn-all{margin-top:22px}
@media (max-width:900px){.jrnsec .jrn{grid-template-columns:repeat(2,1fr)}}
@media (max-width:560px){.jrnsec .jrn{grid-template-columns:1fr}}
