  :root{
    --ink:#161618;
    --ink-2:#4a4a4f;
    --muted:#79797f;
    --bg:#ffffff;
    --bg-alt:#f2f2f1;
    --line:#e2e2df;
    --red:#C8361B;
    --red-soft:#f6e2dd;
    --maxw:1160px;
    --disp:"Space Grotesk", system-ui, sans-serif;
    --body:"Inter", system-ui, sans-serif;
  }
  *{box-sizing:border-box;margin:0;padding:0}
  html{-webkit-text-size-adjust:100%}
  body{
    font-family:var(--body);
    color:var(--ink);
    background:var(--bg);
    line-height:1.55;
    font-size:18px;
    -webkit-font-smoothing:antialiased;
    overflow-x:hidden;
  }
  img{max-width:100%;display:block}
  a{color:inherit}
  .wrap{max-width:var(--maxw);margin:0 auto;padding:0 32px}
  section{padding:96px 0}
  .disp{font-family:var(--disp);letter-spacing:-.02em;line-height:1.02}

  /* ---- reveal ---- */
  .js .reveal{opacity:0;transform:translateY(26px)}
  .reveal.is-in{opacity:1;transform:none;transition:opacity .75s ease, transform .75s cubic-bezier(.2,.7,.2,1)}
  .js .reveal.d1{transition-delay:.08s}
  .js .reveal.d2{transition-delay:.16s}
  .js .reveal.d3{transition-delay:.24s}

  /* ---- header ---- */
  header.site{
    position:sticky;top:0;z-index:40;
    background:rgba(255,255,255,.9);
    backdrop-filter:saturate(1.2) blur(8px);
    border-bottom:1px solid var(--line);
  }
  .site .wrap{display:flex;align-items:center;justify-content:space-between;padding-top:18px;padding-bottom:18px}
  .mark{font-family:var(--disp);font-weight:700;font-size:15px;letter-spacing:.02em}
  .mark .on{color:var(--red)}
  .site .tag{font-size:13px;color:var(--muted);font-weight:500}

  /* ---- hero ---- */
  .hero{padding-top:72px;padding-bottom:64px}
  .hero-grid{display:grid;grid-template-columns:1.15fr .85fr;gap:56px;align-items:center}
  .kicker{font-family:var(--disp);font-weight:600;font-size:14px;letter-spacing:.04em;color:var(--red);margin-bottom:22px}
  h1.hero-h1{
    font-family:var(--disp);font-weight:700;
    font-size:clamp(3.1rem,8.4vw,7.4rem);
    line-height:.96;letter-spacing:-.03em;
  }
  h1.hero-h1 .big{display:block}
  h1.hero-h1 .num{color:var(--red)}
  h1.hero-h1 .to{color:var(--ink-2);font-weight:500;font-size:.42em;letter-spacing:0;display:inline-block;margin:0 .12em}
  .hero-sub{margin-top:30px;max-width:34ch;font-size:19px;color:var(--ink-2)}
  .hero-sub strong{color:var(--ink);font-weight:600}
  .hero-photo{
    position:relative;border-radius:14px;overflow:hidden;
    box-shadow:0 30px 70px -30px rgba(20,20,25,.5);
    aspect-ratio:1/1;background:var(--bg-alt);
  }
  .hero-photo img{width:100%;height:100%;object-fit:cover}
  .hero-photo figcaption{
    position:absolute;left:0;right:0;bottom:0;
    padding:16px 18px 14px;
    background:linear-gradient(0deg,rgba(15,15,18,.82),rgba(15,15,18,0));
    color:#fff;font-size:13.5px;font-weight:500;letter-spacing:.01em
  }

  /* ---- generic section head ---- */
  .lead{font-family:var(--disp);font-weight:700;font-size:clamp(2rem,4.4vw,3.4rem);line-height:1.03;letter-spacing:-.025em;max-width:18ch}
  .lead .num{color:var(--red)}
  .say{margin-top:22px;max-width:46ch;color:var(--ink-2);font-size:19px}
  .say strong{color:var(--ink);font-weight:600}
  .lane{font-family:var(--disp);font-weight:600;font-size:13px;letter-spacing:.06em;color:var(--red);margin-bottom:18px;text-transform:uppercase}

  /* ---- who ---- */
  .who{background:var(--bg-alt)}
  .who-grid{display:grid;grid-template-columns:.9fr 1.1fr;gap:56px;align-items:center}
  .who-portrait{border-radius:12px;overflow:hidden;box-shadow:0 20px 50px -28px rgba(20,20,25,.45);max-width:360px}
  .who-portrait img{width:100%}
  .follow{margin-top:28px;display:flex;align-items:baseline;gap:12px;flex-wrap:wrap}
  .follow .fnum{font-family:var(--disp);font-weight:700;font-size:clamp(2.6rem,6vw,4.2rem);color:var(--red);letter-spacing:-.03em;line-height:1}
  .follow .flabel{font-size:16px;color:var(--muted);font-weight:500;max-width:26ch}

  /* ---- loop (dark) ---- */
  .loop{background:var(--ink);color:#fff}
  .loop .lead{color:#fff}
  .loop .say{color:#c9c9cf}
  .loop .say strong{color:#fff}
  .loop-head{display:grid;grid-template-columns:1.2fr .8fr;gap:48px;align-items:end}
  .loop-stat{text-align:right}
  .loop-stat .snum{font-family:var(--disp);font-weight:700;font-size:clamp(2.8rem,6.4vw,4.6rem);line-height:1;letter-spacing:-.03em;color:#ff6a4d}
  .loop-stat .slabel{margin-top:12px;color:#b6b6bd;font-size:15px;max-width:26ch;margin-left:auto}
  .rail{height:3px;background:rgba(255,255,255,.14);border-radius:2px;margin-top:58px;overflow:hidden}
  .rail-fill{height:100%;background:#ff6a4d;border-radius:2px;transform:scaleX(1);transform-origin:left}
  .js .rail-fill{transform:scaleX(0)}
  .js .loop.go .rail-fill{transform:scaleX(1);transition:transform 2.4s cubic-bezier(.3,.6,.2,1)}
  .flow{display:grid;grid-template-columns:repeat(5,1fr);gap:14px;margin-top:22px}
  .fstep{border:1px solid rgba(255,255,255,.14);border-radius:12px;padding:20px 18px;background:rgba(255,255,255,.045);min-height:138px}
  .js .fstep{opacity:0;transform:translateY(18px)}
  .fstep.lit{opacity:1;transform:none;transition:opacity .5s ease, transform .55s cubic-bezier(.2,.7,.2,1)}
  .fstep .fn{font-family:var(--disp);font-weight:700;font-size:12px;color:#ff6a4d;letter-spacing:.08em;text-transform:uppercase}
  .fstep .ft{margin-top:10px;font-family:var(--body);font-weight:500;font-size:14.5px;line-height:1.45;color:#d8d8dc}
  .loop-cap{margin-top:34px;font-family:var(--disp);font-weight:600;font-size:15px;color:#ff6a4d;letter-spacing:.01em}

  /* ---- phone ---- */
  .feed-wrap{display:grid;grid-template-columns:.95fr 1.05fr;gap:56px;align-items:center}
  .phone{
    width:300px;max-width:100%;margin:0 auto;
    background:#101014;border-radius:44px;padding:12px;
    box-shadow:0 40px 80px -34px rgba(20,20,25,.6);
    position:relative;
  }
  .phone .notch{position:absolute;top:20px;left:50%;transform:translateX(-50%);width:110px;height:24px;background:#101014;border-radius:0 0 14px 14px;z-index:5}
  .screen{background:#fff;border-radius:34px;overflow:hidden;height:588px;display:flex;flex-direction:column}
  .pf-banner{height:70px;background:#dfe4e8 center/cover no-repeat}
  .pf-head{padding:0 16px 14px;position:relative}
  .pf-avatar{width:64px;height:64px;border-radius:50%;border:3px solid #fff;overflow:hidden;margin-top:-32px;background:#eee}
  .pf-avatar img{width:100%;height:100%;object-fit:cover}
  .pf-name{font-weight:700;font-size:17px;margin-top:8px}
  .pf-role{font-size:12.5px;color:#5b5b60;margin-top:1px}
  .pf-foll{font-size:12.5px;color:#8a8a90;margin-top:5px}
  .pf-foll b{color:var(--red)}
  .feed{flex:1;overflow-y:auto;background:#eef0f2;padding:8px;scroll-behavior:smooth;-webkit-overflow-scrolling:touch}
  .post{background:#fff;border-radius:10px;padding:13px 13px 10px;margin-bottom:8px;box-shadow:0 1px 2px rgba(0,0,0,.05)}
  .post-top{display:flex;align-items:center;gap:8px}
  .post-av{width:34px;height:34px;border-radius:50%;overflow:hidden;background:#eee;flex:none}
  .post-av img{width:100%;height:100%;object-fit:cover}
  .post-id .pn{font-weight:600;font-size:13px;line-height:1.15}
  .post-id .pd{font-size:11px;color:#8a8a90}
  .post-body{font-size:13.5px;line-height:1.45;color:#1c1c20;margin:9px 0 10px}
  .post-meta{display:flex;gap:14px;border-top:1px solid #eef0f2;padding-top:8px;font-size:11.5px;color:#6b6b70}
  .post-meta .rx b,.post-meta .cm b{color:var(--ink)}
  .post-meta .dot{color:var(--red)}
  .feed-copy .lead{max-width:16ch}
  .feed-copy .caption{margin-top:22px;display:inline-block;font-family:var(--disp);font-weight:600;font-size:13px;letter-spacing:.03em;color:var(--red)}

  /* ---- cta band ---- */
  .cta-band{background:var(--bg-alt);text-align:center}
  .cta-line{font-family:var(--disp);font-weight:700;font-size:clamp(1.7rem,3.6vw,2.6rem);letter-spacing:-.02em;max-width:20ch;margin:0 auto 30px;line-height:1.06}
  .btn{
    display:inline-block;background:var(--red);color:#fff;text-decoration:none;
    font-family:var(--disp);font-weight:600;font-size:17px;
    padding:17px 34px;border-radius:10px;letter-spacing:.01em;
    box-shadow:0 16px 30px -14px rgba(200,54,27,.7);
    transition:transform .18s ease, box-shadow .18s ease;
  }
  .btn:hover{transform:translateY(-2px);box-shadow:0 22px 38px -14px rgba(200,54,27,.75)}
  .quiet{display:block;margin-top:18px;font-size:14px;color:var(--muted);text-decoration:none}
  .quiet:hover{color:var(--ink)}

  /* ---- cadence ---- */
  .cadence-head{display:flex;justify-content:space-between;align-items:flex-end;gap:24px;flex-wrap:wrap}
  .cad-legend{display:flex;flex-wrap:wrap;gap:10px 24px;font-size:14px;color:var(--muted);margin-top:8px}
  .cad-legend .leg-item{display:inline-flex;align-items:center;gap:8px;white-space:nowrap}
  .cad-legend .swatch{width:12px;height:12px;border-radius:3px;display:inline-block;flex:none}
  .cad-legend .lon{background:var(--red)}
  .cad-legend .loff{background:var(--line)}
  .cad-grid-wrap{margin-top:40px;overflow-x:auto}
  .cad-grid{display:grid;grid-template-columns:repeat(13,1fr);gap:8px;min-width:520px}
  .cad-day{display:grid;grid-template-rows:repeat(2,1fr);gap:8px}
  .cell{aspect-ratio:1;border-radius:5px;background:var(--line)}
  .cell.on{background:var(--red)}
  .js .cell.on{opacity:0;transform:scale(.3)}
  .cell.on.pop{opacity:1;transform:none;transition:opacity .4s ease, transform .5s cubic-bezier(.2,.9,.2,1.4)}
  .cad-axis{display:flex;justify-content:space-between;margin-top:12px;font-size:12.5px;color:var(--muted);min-width:520px}
  @media(max-width:640px){.cad-grid,.cad-axis{min-width:0}.cad-grid{gap:5px}.cad-day{gap:5px}}

  /* ---- lead magnet plates ---- */
  .lm-sec{background:var(--bg-alt)}
  .duo{display:grid;grid-template-columns:1fr 1fr;gap:28px;margin-top:48px;align-items:start;max-width:980px}
  .duo .offset{margin-top:36px}
  .browser{border-radius:12px;overflow:hidden;box-shadow:0 34px 70px -30px rgba(20,20,25,.5);border:1px solid var(--line);background:#fff}
  .b-bar{display:flex;align-items:center;gap:10px;padding:11px 14px;background:#e9e9e6;border-bottom:1px solid var(--line)}
  .b-dots{display:flex;gap:7px}
  .b-dots span{width:11px;height:11px;border-radius:50%;background:#c7c7c2}
  .b-url{flex:1;background:#fff;border-radius:7px;padding:5px 13px;font-size:12.5px;color:#6b6b70;font-family:var(--disp);font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .b-shot img{width:100%;height:auto;display:block}
  .b-cap{margin-top:26px;color:var(--muted);font-size:15px;max-width:56ch}
  .b-cap b{color:var(--ink);font-weight:600}

  /* ---- engagement ---- */
  .eng-grid{display:grid;grid-template-columns:1fr 1fr;gap:40px;margin-top:52px}
  .eng-card{border:1px solid var(--line);border-radius:14px;padding:32px 30px}
  .eng-card .enum{font-family:var(--disp);font-weight:700;font-size:clamp(3rem,7vw,5rem);color:var(--red);line-height:1;letter-spacing:-.03em}
  .eng-card .elabel{margin-top:16px;color:var(--ink-2);font-size:17px;max-width:34ch}
  .eng-cap{margin-top:36px;font-family:var(--disp);font-weight:600;font-size:17px;color:var(--ink);max-width:34ch}

  /* ---- own split ---- */
  .split-grid{display:grid;grid-template-columns:1fr 1fr;gap:32px;margin-top:48px}
  .scard{border:1px solid var(--line);border-radius:14px;padding:34px 32px;background:var(--bg)}
  .scard.keep{border-top:4px solid var(--red)}
  .scard.run{border-top:4px solid var(--ink)}
  .scard .stitle{font-family:var(--disp);font-weight:700;font-size:22px;letter-spacing:-.01em}
  .scard .sbody{margin-top:16px;color:var(--ink-2);font-size:17px}
  .scard .sbody strong{color:var(--ink);font-weight:600}

  /* ---- outcome ---- */
  .outcome{background:var(--bg-alt);text-align:center}
  .outcome .kicker{margin-bottom:14px}
  .outcome .say{margin:24px auto 0}
  .jump{display:flex;align-items:baseline;justify-content:center;gap:16px;flex-wrap:wrap}
  .jump .j-from{font-family:var(--disp);font-weight:700;font-size:clamp(2rem,4.6vw,3.4rem);color:var(--muted);letter-spacing:-.03em;line-height:1}
  .jump .j-arrow{font-family:var(--disp);font-weight:700;font-size:clamp(1.5rem,3.2vw,2.4rem);color:var(--red);line-height:1}
  .jump .j-to{font-family:var(--disp);font-weight:700;font-size:clamp(3.2rem,8vw,6rem);color:var(--red);letter-spacing:-.03em;line-height:1}
  .jump .j-per{font-size:19px;color:var(--ink-2);font-weight:500}

  /* ---- close / plan ---- */
  .close{background:var(--ink);color:#fff;text-align:center}
  .close .lead{color:#fff;margin:0 auto;max-width:24ch}
  .close .say{color:#c9c9cf;margin:26px auto 0;max-width:52ch;font-size:19px}
  .close .say strong{color:#fff}
  .plan{max-width:560px;margin:44px auto 0;text-align:left;border:1px solid rgba(255,255,255,.16);border-radius:14px;padding:34px 34px 30px;background:rgba(255,255,255,.04)}
  .plan-item{display:flex;gap:14px;align-items:flex-start;font-size:17.5px;color:#e7e7ea;padding:9px 0}
  .plan-item .arrow{color:#ff6a4d;font-family:var(--disp);font-weight:700;flex:none}
  .plan-job{margin-top:18px;padding-top:20px;border-top:1px solid rgba(255,255,255,.14);font-size:17px;color:#c9c9cf}
  .plan-job strong{color:#fff;font-weight:600}
  .plan-price{margin-top:14px;font-family:var(--disp);font-weight:700;font-size:26px;letter-spacing:-.01em;color:#fff}
  .plan-price .num{color:#ff6a4d}
  .close .btn{margin-top:40px}
  .close .quiet{color:#9a9aa2}
  .close .quiet:hover{color:#fff}

  /* ---- footer ---- */
  footer.site{padding:34px 0;border-top:1px solid var(--line)}
  footer.site .wrap{display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap}
  footer .fnote{font-size:13px;color:var(--muted)}

  /* ---- responsive ---- */
  @media (max-width:900px){
    section{padding:72px 0}
    .hero-grid,.who-grid,.feed-wrap,.duo,.split-grid{grid-template-columns:minmax(0,1fr);gap:40px}
    .browser{min-width:0;max-width:100%}
    .b-url{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0;flex:1 1 auto}
    .b-shot img{width:100%;height:auto;display:block}
    .hero{padding-top:48px}
    .hero-photo{max-width:420px}
    .who-portrait{margin:0 auto}
    .loop-head{grid-template-columns:1fr;gap:28px}
    .loop-stat{text-align:left}
    .loop-stat .slabel{margin-left:0}
    .flow{grid-template-columns:1fr 1fr;gap:12px}
    .fstep{min-height:0}
    .eng-grid{grid-template-columns:1fr;gap:24px}
    .feed-copy{order:-1}
    .plan{padding:28px 24px 24px}
  }
  @media (max-width:520px){
    .wrap{padding:0 20px}
    body{font-size:17px}
    .hero-sub,.say{font-size:17px}
    .flow{grid-template-columns:1fr 1fr}
  }
  @media (prefers-reduced-motion: reduce){
    .js .reveal{opacity:1;transform:none}
    .js .cell.on{opacity:1;transform:none}
    .js .fstep{opacity:1;transform:none}
    .js .rail-fill{transform:scaleX(1)}
    *{transition:none !important;animation:none !important}
  }

  /* ============================================================
     Additions for the case-study index + the Lemonade / Rise pages.
     Kyle's page keeps its own inline copy of everything above.
     ============================================================ */

  /* ---- index: card grid ---- */
  .idx-hero{padding-top:76px;padding-bottom:56px}
  .idx-hero .lead{max-width:22ch}
  .cases{display:grid;grid-template-columns:repeat(3,1fr);gap:28px;margin-top:8px}
  .ccard{
    display:flex;flex-direction:column;text-decoration:none;
    border:1px solid var(--line);border-radius:14px;overflow:hidden;background:var(--bg);
    transition:transform .2s ease, box-shadow .2s ease, border-color .2s ease;
  }
  .ccard:hover{transform:translateY(-4px);box-shadow:0 30px 60px -34px rgba(20,20,25,.5);border-color:#d2d2ce}
  .ccard .cshot{aspect-ratio:16/10;background:var(--bg-alt);overflow:hidden}
  .ccard .cshot img{width:100%;height:100%;object-fit:cover}
  .ccard .cbody{padding:26px 26px 28px;display:flex;flex-direction:column;flex:1}
  .ccard .clane{font-family:var(--disp);font-weight:600;font-size:12px;letter-spacing:.06em;text-transform:uppercase;color:var(--red);min-height:2.6em}
  .ccard .cname{font-family:var(--disp);font-weight:700;font-size:24px;letter-spacing:-.02em;margin-top:4px;line-height:1.1}
  .ccard .cwhat{margin-top:12px;color:var(--ink-2);font-size:16px;flex:1}
  .ccard .cstat{margin-top:22px;padding-top:18px;border-top:1px solid var(--line);display:flex;align-items:baseline;gap:10px;min-height:76px}
  .ccard .cnum{font-family:var(--disp);font-weight:700;font-size:30px;color:var(--red);letter-spacing:-.02em;line-height:1}
  .ccard .cunit{font-size:14px;color:var(--muted);max-width:22ch}
  .ccard .cgo{margin-top:20px;font-family:var(--disp);font-weight:600;font-size:14px;color:var(--ink)}
  .ccard .cgo .arrow{color:var(--red);margin-left:6px}

  /* ---- stat strip ---- */
  .strip{background:var(--bg-alt)}
  .strip-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:32px;margin-top:44px}
  .sitem .snum2{font-family:var(--disp);font-weight:700;font-size:clamp(2.4rem,5vw,3.6rem);color:var(--red);line-height:1;letter-spacing:-.03em}
  .sitem .slab{margin-top:14px;color:var(--ink-2);font-size:16px;max-width:24ch}

  /* ---- build stack (numbered rows) ---- */
  .stack{margin-top:52px;border-top:1px solid var(--line)}
  .srow{display:grid;grid-template-columns:64px 1fr 1.25fr;gap:28px;padding:30px 0;border-bottom:1px solid var(--line);align-items:start}
  .srow .sidx{font-family:var(--disp);font-weight:700;font-size:15px;color:var(--red);letter-spacing:.04em;padding-top:5px}
  .srow .sname{font-family:var(--disp);font-weight:700;font-size:22px;letter-spacing:-.015em;line-height:1.15}
  .srow .sdesc{color:var(--ink-2);font-size:17px}
  .srow .sdesc strong{color:var(--ink);font-weight:600}
  @media(max-width:900px){
    .srow{grid-template-columns:40px 1fr;gap:16px}
    .srow .sdesc{grid-column:2}
  }

  /* ---- timeline ---- */
  .tl{margin-top:52px;display:grid;gap:0}
  .tlrow{display:grid;grid-template-columns:160px 1fr;gap:32px;padding:26px 0;border-top:1px solid rgba(255,255,255,.14);align-items:start}
  .tlrow:last-child{border-bottom:1px solid rgba(255,255,255,.14)}
  .tlrow .tlwhen{font-family:var(--disp);font-weight:700;font-size:15px;color:#ff6a4d;letter-spacing:.03em;padding-top:3px}
  .tlrow .tlwhat{color:#d8d8dc;font-size:17px}
  .tlrow .tlwhat strong{color:#fff;font-weight:600}
  @media(max-width:900px){.tlrow{grid-template-columns:1fr;gap:8px}}

  /* ---- single wide plate ---- */
  .plate{max-width:1000px;margin-top:48px}
  .plate-cap{margin-top:24px;color:var(--muted);font-size:15px;max-width:60ch}
  .plate-cap b{color:var(--ink);font-weight:600}

  /* ---- scope split (three) ---- */
  .trio{display:grid;grid-template-columns:repeat(3,1fr);gap:26px;margin-top:48px}
  .tcard{border:1px solid var(--line);border-radius:14px;padding:30px 28px;background:var(--bg)}
  .tcard .ttitle{font-family:var(--disp);font-weight:700;font-size:19px;letter-spacing:-.01em}
  .tcard .tbody{margin-top:14px;color:var(--ink-2);font-size:16px}
  .tcard .tbody strong{color:var(--ink);font-weight:600}

  /* ---- pending-quote slot ---- */
  .qslot{max-width:760px;margin:52px auto 0;border-left:4px solid var(--line);padding:6px 0 6px 28px}
  .qslot .qtext{font-family:var(--disp);font-weight:500;font-size:clamp(1.3rem,2.6vw,1.75rem);line-height:1.32;color:var(--muted);letter-spacing:-.01em;font-style:normal}
  .qslot .qwho{margin-top:18px;font-size:15px;color:var(--muted)}
  .qslot .qwho b{color:var(--ink-2);font-weight:600}
  .qpend{display:inline-block;margin-top:14px;font-family:var(--disp);font-weight:600;font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:#9a9aa2;border:1px dashed #c9c9c4;border-radius:5px;padding:5px 10px}

  /* ---- honest note ---- */
  .note{max-width:64ch;margin-top:34px;padding:22px 24px;border:1px solid var(--line);border-radius:12px;background:var(--bg-alt);font-size:16px;color:var(--ink-2)}
  .note b{color:var(--ink);font-weight:600}

  @media(max-width:900px){
    .cases{grid-template-columns:1fr}
    .strip-grid{grid-template-columns:1fr 1fr;gap:26px}
    .trio{grid-template-columns:1fr}
  }
  @media(max-width:520px){
    .strip-grid{grid-template-columns:1fr}
  }

  /* ============================================================
     v2 art direction — editorial pass (2026-07-25 evening).
     Ghost numerals, swipe underlines, marquee bands, framed
     plates, big outcome typography. Kyle keeps his own inline kit.
     ============================================================ */

  section{position:relative}

  /* ---- ghost section numerals ---- */
  html{overflow-x:clip}
  .ghost{
    position:absolute;top:8px;right:0;z-index:0;pointer-events:none;
    font-family:var(--disp);font-weight:700;line-height:1;
    font-size:clamp(9rem,22vw,19rem);letter-spacing:-.04em;
    color:transparent;-webkit-text-stroke:1.5px var(--line);
    user-select:none;
  }
  .loop .ghost, .close .ghost{-webkit-text-stroke:1.5px rgba(255,255,255,.12)}
  .wrap{position:relative;z-index:1}

  /* ---- red swipe underline ---- */
  .swipe{position:relative;display:inline-block;white-space:nowrap}
  .swipe svg{position:absolute;left:-2%;bottom:-.1em;width:104%;height:.34em;overflow:visible}
  .swipe svg path{stroke:var(--red);stroke-width:10;fill:none;stroke-linecap:round;opacity:.92}
  .js .swipe svg path{stroke-dasharray:320;stroke-dashoffset:320}
  .swipe.is-in svg path,.reveal.is-in .swipe svg path{animation:swipe-draw .7s .45s cubic-bezier(.4,.1,.2,1) forwards}
  @keyframes swipe-draw{to{stroke-dashoffset:0}}
  .loop .swipe svg path,.close .swipe svg path{stroke:#ff6a4d}

  /* ---- marquee ticker band ---- */
  .marq{background:var(--ink);overflow:hidden;padding:20px 0;border-top:1px solid var(--ink);border-bottom:1px solid var(--ink)}
  .marq.red{background:var(--red)}
  .marq-track{display:flex;width:max-content;animation:marq 26s linear infinite}
  .marq-chunk{display:flex;flex:none;align-items:center}
  .marq span{font-family:var(--disp);font-weight:700;font-size:15px;letter-spacing:.14em;text-transform:uppercase;color:#fff;padding:0 26px;white-space:nowrap}
  .marq .tick{color:#ff6a4d;padding:0}
  .marq.red .tick{color:#161618}
  @keyframes marq{to{transform:translateX(-50%)}}
  @media (prefers-reduced-motion: reduce){.marq-track{animation:none}}

  /* ---- framed portrait plates ---- */
  .fplate{position:relative;display:inline-block;max-width:100%}
  .fplate::before{
    content:"";position:absolute;inset:0;transform:translate(16px,16px);
    border:2px solid var(--red);border-radius:14px;z-index:0;
  }
  .fplate figure,.fplate>img{position:relative;z-index:1;border-radius:14px;overflow:hidden;display:block;
    box-shadow:0 30px 70px -30px rgba(20,20,25,.5);margin:0}
  .fplate img{width:100%;height:auto;display:block}
  .fplate .fcap{
    position:absolute;left:18px;bottom:18px;z-index:2;
    background:var(--ink);color:#fff;font-family:var(--disp);font-weight:600;
    font-size:13px;letter-spacing:.02em;padding:9px 14px;border-radius:7px;
  }
  .fplate .fcap b{color:#ff6a4d;font-weight:700}

  /* ---- editorial section head with hairline + index ---- */
  .shead{display:flex;align-items:baseline;justify-content:space-between;gap:24px;border-top:2px solid var(--ink);padding-top:26px;margin-bottom:44px}
  .loop .shead,.close .shead{border-top-color:rgba(255,255,255,.3)}
  .shead .lane{margin-bottom:0}
  .shead .sidxn{font-family:var(--disp);font-weight:700;font-size:15px;color:var(--muted);letter-spacing:.08em}

  /* ---- big outcome band v2 ---- */
  .outcome2{background:var(--ink);color:#fff;text-align:left;overflow:hidden}
  .outcome2 .o2-kick{font-family:var(--disp);font-weight:600;font-size:15px;letter-spacing:.05em;color:#ff6a4d;text-transform:uppercase}
  .outcome2 .o2-big{
    font-family:var(--disp);font-weight:700;letter-spacing:-.035em;line-height:.94;
    font-size:clamp(3.4rem,11vw,9.6rem);margin-top:22px;color:#fff;
  }
  .outcome2 .o2-big .dim{color:#6d6d74}
  .outcome2 .o2-big .hot{color:#ff6a4d}
  .outcome2 .o2-sub{margin-top:30px;color:#c9c9cf;font-size:19px;max-width:52ch}
  .outcome2 .o2-sub strong{color:#fff}

  /* ---- oversized hero numeral pair ---- */
  .hero .hnum{display:flex;align-items:baseline;gap:.14em;flex-wrap:wrap}
  .hero .hnum .to{color:var(--ink-2);font-weight:500;font-size:.4em;letter-spacing:-.01em}

  /* ---- stat strip v2: hairline table ---- */
  .strip2{margin-top:52px;border-top:2px solid var(--ink)}
  .strip2 .srow2{display:grid;grid-template-columns:1fr auto;align-items:baseline;gap:24px;padding:22px 0;border-bottom:1px solid var(--line)}
  .strip2 .slab2{font-size:17px;color:var(--ink-2);max-width:44ch}
  .strip2 .slab2 strong{color:var(--ink);font-weight:600}
  .strip2 .snum3{font-family:var(--disp);font-weight:700;font-size:clamp(2.2rem,5vw,3.6rem);color:var(--red);letter-spacing:-.03em;line-height:1;white-space:nowrap}

  /* ---- index hero v2 ---- */
  .idx-hero .lead{max-width:26ch}
  .cases-5{display:grid;grid-template-columns:repeat(3,1fr);gap:28px;margin-top:8px}
  @media(max-width:900px){.cases-5{grid-template-columns:1fr}}

  /* ---- browser plate tone strip ---- */
  .b-bar .b-live{font-family:var(--disp);font-weight:700;font-size:10.5px;letter-spacing:.1em;color:#fff;background:var(--red);border-radius:5px;padding:4px 8px;text-transform:uppercase;flex:none}

  .flow.cols-3{grid-template-columns:repeat(3,1fr)}
  .flow.cols-4{grid-template-columns:repeat(4,1fr)}
  .flow.cols-5{grid-template-columns:repeat(5,1fr)}
  @media(max-width:900px){
    .flow.cols-3,.flow.cols-4,.flow.cols-5{grid-template-columns:1fr 1fr}
    .ghost{font-size:clamp(7rem,26vw,11rem);right:0}
    .fplate::before{transform:translate(10px,10px)}
    .shead{flex-direction:column;gap:8px}
  }

  /* ============================================================
     v3 — editorial index list + next-case bands (2026-07-26).
     ============================================================ */

  /* ---- index list rows ---- */
  .clist{padding-top:20px}
  .crow{
    position:relative;display:grid;
    grid-template-columns:64px minmax(0,1fr) auto 56px;
    align-items:center;gap:28px;
    padding:38px 0;border-top:1px solid var(--line);
    text-decoration:none;
  }
  .clist .crow:last-of-type{border-bottom:1px solid var(--line)}
  .cr-num{font-family:var(--disp);font-weight:600;font-size:14px;letter-spacing:.08em;color:var(--muted)}
  .cr-name{
    display:block;font-family:var(--disp);font-weight:700;
    font-size:clamp(2rem,5.2vw,4.2rem);letter-spacing:-.03em;line-height:1;
    color:var(--ink);transition:color .25s ease, transform .3s cubic-bezier(.2,.7,.2,1);
  }
  .crow:hover .cr-name{color:var(--red);transform:translateX(10px)}
  .cr-meta{display:block;margin-top:12px;color:var(--muted);font-size:15px}
  .cr-stat{text-align:right;font-family:var(--disp);font-weight:700;font-size:clamp(1.2rem,2.3vw,1.8rem);color:var(--ink);letter-spacing:-.02em;white-space:nowrap}
  .cr-stat small{display:block;font-family:var(--body);font-weight:500;font-size:13px;color:var(--muted);margin-top:7px;white-space:normal;max-width:22ch;margin-left:auto}
  .cr-arrow{font-family:var(--disp);font-weight:700;font-size:30px;color:var(--red);opacity:.3;transform:translateX(-8px);transition:opacity .25s, transform .25s;text-align:right}
  .crow:hover .cr-arrow{opacity:1;transform:translateX(0)}
  .cr-img{
    position:fixed;left:0;top:0;width:320px;aspect-ratio:4/3;object-fit:cover;
    border-radius:12px;pointer-events:none;z-index:60;
    opacity:0;transform:scale(.9) rotate(-4deg);
    transition:opacity .28s ease, transform .34s cubic-bezier(.2,.7,.2,1);
    box-shadow:0 40px 80px -30px rgba(20,20,25,.55);
    will-change:left,top;
  }
  @media (hover:hover) and (pointer:fine){
    .crow:hover .cr-img{opacity:1;transform:scale(1) rotate(-2deg)}
  }
  @media (max-width:900px){
    .crow{grid-template-columns:44px minmax(0,1fr);gap:14px;padding:30px 0}
    .cr-stat{grid-column:2;text-align:left;margin-top:10px}
    .cr-stat small{margin-left:0}
    .cr-arrow,.cr-img{display:none}
  }
  @media (prefers-reduced-motion: reduce){
    .cr-img{display:none}
    .crow:hover .cr-name{transform:none}
  }

  /* ---- next-case band ---- */
  .nextcase{display:block;background:var(--ink);text-decoration:none;padding:74px 0 78px;border-top:4px solid var(--red)}
  .nextcase .nc-kick{font-family:var(--disp);font-weight:600;font-size:13px;letter-spacing:.1em;text-transform:uppercase;color:#ff6a4d}
  .nextcase .nc-name{
    display:block;margin-top:16px;font-family:var(--disp);font-weight:700;color:#fff;
    font-size:clamp(2.4rem,7vw,5.4rem);letter-spacing:-.03em;line-height:1;
  }
  .nextcase .arrow{color:#ff6a4d;display:inline-block;margin-left:.12em;transition:transform .28s cubic-bezier(.2,.7,.2,1)}
  .nextcase:hover .arrow{transform:translateX(16px)}

  /* ============================================================
     v4 — de-card pass: boxes become editorial columns/rules.
     ============================================================ */
  .tcard{border:none;border-radius:0;background:transparent;padding:26px 0 0;border-top:2px solid var(--ink)}
  .strip .tcard,.lm-sec .tcard{background:transparent}
  .tcard .ttitle{font-size:20px}

  .fstep{background:transparent;border:none;border-radius:0;border-left:2px solid rgba(255,255,255,.25);padding:4px 0 6px 18px;min-height:0}

  .scard{border:none;border-radius:0;background:transparent;padding:26px 0 0}
  .scard.keep{border-top:3px solid var(--red)}
  .scard.run{border-top:3px solid var(--ink)}

  .note{border:none;border-radius:0;background:transparent;border-left:3px solid var(--red);padding:6px 0 6px 24px}

  .close .plan{border:none;border-radius:0;background:transparent;padding:0;max-width:520px}
  .close .plan-item{border-bottom:1px solid rgba(255,255,255,.12);padding:13px 0}
  .close .plan-job{border-top:none;margin-top:22px;padding-top:0}

  .vcard{border:none !important;border-radius:0 !important;background:transparent !important;padding:26px 0 0 !important}
  .vcard.a{border-top:3px solid var(--red) !important}
  .vcard.b{border-top:3px solid var(--ink) !important}
