/* ─── Finance Chicks ──────────────────────────────────────────────── */
/* Editorial luxury system. All page palettes drive off custom props. */

:root{
  /* Crimson Court — default */
  --cream:        #f4ebde;
  --cream-2:      #ebe0d0;
  --paper:        #faf3e7;
  --ink:          #1a1612;
  --ink-2:        #2c2620;
  --muted:        #6b5d51;
  --rule:         #d8c8b3;
  --crimson:      #b2243f;
  --crimson-dk:   #82132a;
  --oxblood:      #4a1320;
  --gold:         #c69a55;
  --gold-2:       #a07a3b;
  --blush:        #e8b9b3;

  --display:        "Bricolage Grotesque", "Helvetica Neue", Arial, sans-serif;
  --display-serif:  "Bricolage Grotesque", "Helvetica Neue", Arial, sans-serif;
  --fancy:          "Bricolage Grotesque", "Helvetica Neue", Arial, sans-serif;
  --body:           "Manrope", -apple-system, system-ui, sans-serif;
  --mono:           "JetBrains Mono", ui-monospace, monospace;

  --max: 1440px;
  --gutter: clamp(20px, 3vw, 56px);
  --rule-w: 1px;
  --radius: 12px;
  --radius-s: 8px;
  --shadow-card: 0 1px 0 rgba(0,0,0,.03), 0 1px 2px rgba(0,0,0,.04), 0 4px 12px -6px rgba(0,0,0,.08);
  --shadow-elev: 0 1px 0 rgba(0,0,0,.03), 0 8px 24px -10px rgba(0,0,0,.18);
}

/* Theme: champagne-noir */
[data-theme="noir"]{
  --cream: #0f0d0b; --cream-2:#15120e; --paper:#0a0907;
  --ink: #f1e6d0; --ink-2:#d9caa9; --muted:#9a8a72;
  --rule:#3a3024; --crimson:#e84a64; --crimson-dk:#c5354c;
  --oxblood:#7a1f30; --gold:#e5be7b; --gold-2:#caa05a; --blush:#c89089;
}
/* Theme: blush-boudoir */
[data-theme="blush"]{
  --cream:#fbeae6; --cream-2:#f5d7d0; --paper:#fff4f0;
  --ink:#2a1018; --ink-2:#3d1822; --muted:#7b5b5e;
  --rule:#e8c9c1; --crimson:#9b1f3b; --crimson-dk:#691125;
  --oxblood:#4d0e1a; --gold:#b88454; --gold-2:#8f6235; --blush:#d98a82;
}
/* Theme: oxblood-court (deep + saturated) */
[data-theme="oxblood"]{
  --cream:#e9d9c0; --cream-2:#dbc6a4; --paper:#efe2ca;
  --ink:#1a0b10; --ink-2:#2a0f17; --muted:#6e5447;
  --rule:#c1a585; --crimson:#7d1024; --crimson-dk:#560713;
  --oxblood:#3a0a14; --gold:#9c7438; --gold-2:#785625; --blush:#c98c83;
}

*,*::before,*::after{box-sizing:border-box}
html,body{margin:0;padding:0}
html{scroll-behavior:smooth}
body{
  background:var(--cream);
  color:var(--ink);
  font-family:var(--body);
  font-size:16px;
  line-height:1.55;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
  overflow-x:hidden;
}

::selection{ background:var(--crimson); color:var(--cream); }

img,svg{display:block;max-width:100%}
button{font:inherit;color:inherit;background:none;border:0;padding:0}
a{color:inherit;text-decoration:none}

/* ── Type primitives ─────────────────────────────────────── */
.display{ font-family:var(--display); font-weight:700; letter-spacing:-.025em; line-height:.95; }
.display-serif{ font-family:var(--display-serif); font-weight:600; letter-spacing:-.015em; line-height:.95; }
.fancy{ font-family:var(--fancy); font-weight:400; letter-spacing:-.005em; line-height:1; }
.italic-display{ font-family:var(--display-serif); font-style:italic; font-weight:500; }
.kicker{
  font-family:var(--mono); font-size:11px; letter-spacing:.22em; text-transform:uppercase;
  color:var(--ink-2);
}
.kicker--gold{ color:var(--gold-2); }
.kicker--crimson{ color:var(--crimson); }
.smallcaps{
  font-family:var(--body); font-weight:600; font-size:12px; letter-spacing:.18em;
  text-transform:uppercase;
}
.serif-num{ font-family:var(--display); font-variant-numeric:lining-nums; }

/* ── Layout ──────────────────────────────────────────────── */
.shell{ max-width:var(--max); margin:0 auto; padding:0 var(--gutter); }
.rule{ height:var(--rule-w); background:var(--ink); width:100%; }
.rule--soft{ background:var(--rule); }
.rule--gold{ background:var(--gold); }
.rule--double{
  height:6px;
  background:
    linear-gradient(var(--ink),var(--ink)) top/100% var(--rule-w) no-repeat,
    linear-gradient(var(--ink),var(--ink)) bottom/100% var(--rule-w) no-repeat;
}

/* ── Custom cursor (disabled) ─────────────────────────── */
.fc-cursor, .fc-cursor-dot{ display:none !important; }
/* Custom cursor is off, so restore native cursors everywhere.
   (Overrides the scattered `cursor:none` that would otherwise hide the mouse
   over buttons, links, tiles, and inputs.) */
body{ cursor:auto; }
a, button, .chip, .pin, [data-magnetic], [role="button"],
.mbr-tile, .mbr-video, .pmod, .pw__head, .premium-back, .acctnav__link,
.mbr-sub__signin, .mbr-modal__close, .rvb2__export, .dca__scenario,
.panel__tabs a, .panel__tabs button, .btn, .btn-text,
input[type="range"], input[type="range"]::-webkit-slider-thumb{
  cursor:pointer !important;
}
input:not([type="range"]), textarea, [contenteditable="true"]{ cursor:text !important; }
.fc-cursor_off{
  position:fixed; top:0; left:0; width:34px; height:34px;
  border:var(--rule-w) solid var(--ink); border-radius:50%;
  transform:translate(-50%,-50%); pointer-events:none; z-index:9999;
  mix-blend-mode:difference; transition:width .25s ease, height .25s ease, border-color .2s;
}
.fc-cursor::before, .fc-cursor::after{
  content:""; position:absolute; background:var(--ink);
}
.fc-cursor::before{ left:50%; top:-4px; width:var(--rule-w); height:8px; transform:translateX(-50%); }
.fc-cursor::after { top:50%; left:-4px; width:8px; height:var(--rule-w); transform:translateY(-50%); }
.fc-cursor-dot{
  position:fixed; top:0; left:0; width:5px; height:5px; border-radius:50%;
  background:var(--crimson); transform:translate(-50%,-50%);
  pointer-events:none; z-index:9999; mix-blend-mode:normal;
}
.fc-cursor.is-active{ width:64px; height:64px; background:var(--crimson); border-color:var(--crimson); }
.fc-cursor.is-text{ width:4px; height:28px; border-radius:1px; background:var(--ink); }
.fc-cursor.is-text::before,.fc-cursor.is-text::after{display:none}

/* ── Header / Nav (Masthead) ─────────────────────────────── */
.masthead{
  position:sticky; top:0; z-index:60; background:color-mix(in oklab, var(--cream) 92%, transparent);
  border-bottom:var(--rule-w) solid var(--rule);
  backdrop-filter:blur(14px) saturate(140%);
  -webkit-backdrop-filter:blur(14px) saturate(140%);
}
.masthead__inner{
  display:flex; align-items:center; justify-content:space-between;
  padding:14px var(--gutter); gap:24px;
}
.masthead__wordmark{
  font-family:var(--display); font-weight:700; font-size:20px;
  letter-spacing:-.02em; line-height:1; text-align:left;
  display:inline-flex; align-items:center; gap:10px; color:var(--ink);
}
.masthead__wordmark .mark{
  display:inline-block; width:22px; height:22px; border-radius:6px;
  background:linear-gradient(135deg, var(--crimson), var(--oxblood) 70%, var(--gold));
  position:relative; flex-shrink:0;
  box-shadow: 0 1px 0 color-mix(in oklab, var(--ink) 18%, transparent) inset,
              0 6px 14px -8px color-mix(in oklab, var(--crimson) 80%, transparent);
}
.masthead__wordmark .mark::after{
  content:""; position:absolute; left:4px; top:4px; right:4px; bottom:4px;
  border-radius:3px; border:1.5px solid color-mix(in oklab, var(--cream) 75%, transparent);
}
.masthead__left, .masthead__right{ display:flex; align-items:center; gap:10px; }
.masthead__meta{ display:none; }

/* Masthead live-status pill (avatar + pulse) */
.mast-status{
  display:inline-flex; align-items:center; gap:10px;
  padding:4px 14px 4px 4px; border-radius:999px;
  background:var(--paper);
  border:1px solid color-mix(in oklab, var(--ink) 8%, transparent);
  position:relative;
  transition: background .2s, border-color .2s, transform .2s;
}
.mast-status:hover{
  background:color-mix(in oklab, var(--crimson) 6%, var(--paper));
  border-color:color-mix(in oklab, var(--crimson) 30%, transparent);
  transform:translateY(-1px);
}
.mast-status__avatar{
  width:30px; height:30px; border-radius:50%; flex-shrink:0;
  background:linear-gradient(135deg, var(--crimson), var(--oxblood));
  color:var(--cream); display:flex; align-items:center; justify-content:center;
  font-family:var(--display); font-weight:700; font-size:11px; letter-spacing:-.02em;
  position:relative;
}
.mast-status__pulse{
  position:absolute; left:28px; top:50%; transform:translateY(-50%);
  width:8px; height:8px; border-radius:50%;
  background:#3aa663; box-shadow:0 0 0 2px var(--paper);
  animation: mastPulse 1.8s cubic-bezier(.4,0,.6,1) infinite;
}
.mast-status:hover .mast-status__pulse{ box-shadow:0 0 0 2px color-mix(in oklab, var(--crimson) 6%, var(--paper)); }
@keyframes mastPulse{
  0%, 100%{ opacity:1; transform:translateY(-50%) scale(1); }
  50%{      opacity:.55; transform:translateY(-50%) scale(1.4); }
}
.mast-status__lbl{
  display:flex; flex-direction:column; line-height:1.1; gap:1px;
}
.mast-status__lbl b{
  font-family:var(--body); font-size:12px; font-weight:700; color:var(--ink);
  letter-spacing:.01em;
}
.mast-status__lbl span{
  font-family:var(--mono); font-size:9.5px; letter-spacing:.04em; color:var(--muted);
  text-transform:uppercase;
}
@media (max-width: 1100px){
  .mast-status{ display:none; }
}

.navbar{
  display:flex; align-items:center; gap:4px;
  padding:0; border-top:0; background:transparent;
}
.navlink{
  font-family:var(--body); font-size:13px; letter-spacing:.005em;
  text-transform:none; font-weight:500; color:var(--ink-2);
  position:relative; padding:8px 12px; border-radius:8px;
  transition:background .2s, color .2s;
}
.navlink .num{ display:none; }
.navlink::after{ display:none; }
.navlink:hover{ background:color-mix(in oklab, var(--ink) 6%, transparent); color:var(--ink); }
.navlink.is-active{ color:var(--ink); background:color-mix(in oklab, var(--crimson) 12%, transparent); }

/* ── Buttons ─────────────────────────────────────────────── */
.btn{
  display:inline-flex; align-items:center; gap:8px;
  padding:10px 18px; border-radius:8px;
  font-family:var(--body); font-weight:600; font-size:13.5px;
  letter-spacing:0; text-transform:none;
  border:1px solid color-mix(in oklab, var(--ink) 18%, transparent); background:var(--paper); color:var(--ink);
  transition:background .2s, color .2s, transform .25s, box-shadow .2s, border-color .2s;
  white-space:nowrap; box-shadow:0 1px 0 rgba(0,0,0,.04);
}
.btn:hover{ background:color-mix(in oklab, var(--ink) 6%, transparent); border-color:color-mix(in oklab, var(--ink) 35%, transparent); }
.btn--filled{ background:var(--ink); color:var(--cream); border-color:var(--ink); box-shadow:0 1px 0 rgba(255,255,255,.1) inset, 0 4px 14px -6px rgba(0,0,0,.35); }
.btn--filled:hover{ background:var(--ink-2); color:var(--cream); }
.btn--crimson{ background:var(--crimson); color:var(--cream); border-color:var(--crimson);
  box-shadow:0 1px 0 rgba(255,255,255,.18) inset, 0 6px 16px -8px color-mix(in oklab, var(--crimson) 80%, transparent); }
.btn--crimson:hover{ background:var(--crimson-dk); border-color:var(--crimson-dk); }
.btn--ghost{ background:transparent; border-color:color-mix(in oklab, var(--ink) 15%, transparent); color:var(--ink-2); box-shadow:none; }
.btn--ghost:hover{ background:transparent; color:var(--crimson); border-color:var(--crimson); }

/* Bright CTAs — vivid, girly, high-pop */
.btn--bright{
  background:linear-gradient(135deg, #ff5d97 0%, #ff2d6f 52%, #e8175a 100%);
  color:#fff; border-color:transparent;
  box-shadow:0 1px 0 rgba(255,255,255,.35) inset,
    0 10px 26px -10px rgba(255,45,111,.75),
    0 2px 8px -3px rgba(232,23,90,.5);
}
.btn--bright:hover{
  background:linear-gradient(135deg, #ff74a8 0%, #ff3d7c 52%, #f02463 100%);
  border-color:transparent; color:#fff;
  transform:translateY(-1px);
}
.btn--bright.btn--lg::after{ border-color:rgba(255,77,139,.55); }
.btn--bright.btn--lg:hover .arrow{ transform:translateX(3px); }

.btn--bright-alt{
  background:linear-gradient(135deg, #ffd76b 0%, #ffa94d 55%, #ff8a5c 100%);
  color:#5a160f; border-color:transparent;
  box-shadow:0 1px 0 rgba(255,255,255,.5) inset,
    0 10px 26px -10px rgba(255,150,70,.7),
    0 2px 8px -3px rgba(255,138,92,.45);
}
.btn--bright-alt:hover{
  background:linear-gradient(135deg, #ffe088 0%, #ffba62 55%, #ff9d72 100%);
  border-color:transparent; color:#5a160f;
  transform:translateY(-1px);
}
.btn--bright-alt.btn--lg::after{ border-color:rgba(255,160,80,.6); }
.btn--bright-alt.btn--lg:hover .arrow{ transform:translateY(3px); }
.btn .arrow{ display:inline-block; transition:transform .25s; }
.btn:hover .arrow{ transform:translateX(3px); }

/* Large primary CTA */
.btn--lg{
  padding:18px 32px; font-size:15px; letter-spacing:.01em;
  border-radius:12px; gap:10px;
  box-shadow:
    0 1px 0 rgba(255,255,255,.22) inset,
    0 10px 28px -10px color-mix(in oklab, var(--crimson) 80%, transparent),
    0 2px 6px -2px color-mix(in oklab, var(--crimson) 50%, transparent);
  position:relative;
}
.btn--lg::after{
  content:""; position:absolute; inset:-3px; border-radius:14px;
  border:1px solid color-mix(in oklab, var(--crimson) 30%, transparent);
  pointer-events:none; opacity:0; transition:opacity .25s;
}
.btn--lg:hover::after{ opacity:1; }
.btn--lg .arrow{ font-size:16px; }
.btn--crimson.btn--lg:hover .arrow{ transform:translateY(3px); }

/* Hero CTA stack */
.hero__cta{
  display:flex; flex-direction:column; align-items:flex-start; gap:14px;
  margin-top:4px;
}

/* Inline text-only secondary button */
.btn-text{
  background:none; border:0; padding:4px 2px; cursor:none;
  font-family:var(--body); font-weight:600; font-size:13px; letter-spacing:.01em;
  color:var(--ink-2); text-decoration:underline; text-underline-offset:5px;
  text-decoration-thickness:1px; text-decoration-color:color-mix(in oklab, var(--ink) 25%, transparent);
  transition:color .2s, text-decoration-color .2s;
}
.btn-text:hover{ color:var(--crimson); text-decoration-color:var(--crimson); }

/* ── Marquee ─────────────────────────────────────────────── */
.marquee{
  display:flex; overflow:hidden; gap:0;
  border-top:1px solid var(--rule);
  border-bottom:1px solid var(--rule);
  background:var(--cream);
  padding:14px 0;
}
.marquee__track{
  display:flex; gap:0; flex-shrink:0; animation:marquee 38s linear infinite;
  will-change:transform;
}
.marquee__item{
  display:inline-flex; align-items:center; gap:36px; padding:0 28px;
  font-family:var(--display); font-weight:600;
  font-size:clamp(18px,2.4vw,30px); line-height:1; white-space:nowrap; letter-spacing:-.02em;
  color:var(--ink);
}
.marquee__item .star{ color:var(--crimson); }
.marquee--crimson{ background:var(--crimson); color:var(--cream); border-color:var(--crimson-dk); }
.marquee--crimson .marquee__item{ color:var(--cream); }
.marquee--crimson .marquee__item .star{ color:var(--gold); }
.marquee--ink{ background:var(--ink); color:var(--cream); }
.marquee--ink .marquee__item{ color:var(--cream); }
.marquee--ink .marquee__item .star{ color:var(--gold); }
@keyframes marquee{ from{transform:translateX(0)} to{transform:translateX(-50%)} }
.marquee:hover .marquee__track{ animation-play-state:paused; }

/* ── Newsletter inline ───────────────────────────────────── */
.nl{
  display:flex; align-items:stretch; gap:0; border:var(--rule-w) solid var(--ink);
  border-radius:999px; overflow:hidden; background:var(--paper);
  max-width:560px;
}
.nl input{
  flex:1; border:0; outline:0; background:transparent;
  padding:16px 22px; font-family:var(--body); font-size:14px; color:var(--ink);
}
.nl input::placeholder{ color:var(--muted); font-style:italic; }
.nl button{
  padding:0 24px; background:var(--ink); color:var(--cream);
  font-family:var(--body); font-weight:700; font-size:11.5px; letter-spacing:.2em;
  text-transform:uppercase; cursor:none; transition:background .3s;
}
.nl button:hover{ background:var(--crimson); }
.nl-success{
  padding:14px 22px; font-family:var(--display); font-weight:600; font-size:16px; letter-spacing:-.01em;
  color:var(--crimson);
}

/* ── Hero (Home) ─────────────────────────────────────────── */
.hero{
  position:relative; padding:20px 0 24px; background:var(--cream);
  background-image:
    radial-gradient(ellipse 80% 60% at 20% 0%, color-mix(in oklab, var(--crimson) 10%, transparent), transparent 70%),
    radial-gradient(ellipse 70% 50% at 100% 100%, color-mix(in oklab, var(--gold) 12%, transparent), transparent 70%);
}
.hero__deck{
  display:grid; grid-template-columns: 1.4fr 1fr;
  column-gap:36px; row-gap:0; align-items:center; padding:0 var(--gutter);
}
.hero__kicker{
  display:flex; flex-direction:column; gap:8px; grid-column:1; order:0;
  margin-bottom:6px;
}
.hero__byline{
  display:flex; flex-direction:column; gap:18px; padding-top:6px;
  grid-column:1; order:2;
}
.hero__byline p{ margin:0; font-size:16px; color:var(--ink-2); max-width:52ch; line-height:1.6; }
.hero__byline .row{ flex-wrap:wrap; gap:10px; }
.hero__credit{
  font-family:var(--mono); font-size:10.5px; letter-spacing:.2em; text-transform:uppercase;
  color:var(--muted);
}
.hero__panel{
  grid-column:2; grid-row:1 / span 3;
  align-self:stretch; min-height:440px;
  background:var(--paper); border:1px solid color-mix(in oklab, var(--ink) 12%, transparent);
  border-radius:16px; padding:20px; position:relative; overflow:hidden;
  box-shadow: 0 1px 0 rgba(255,255,255,.6) inset, 0 24px 60px -32px rgba(0,0,0,.18);
  display:flex; flex-direction:column; gap:14px;
}
.hero__panel::before{
  content:""; position:absolute; inset:0; pointer-events:none;
  background:
    radial-gradient(circle at 100% 0%, color-mix(in oklab, var(--crimson) 18%, transparent), transparent 50%);
}
/* Hero CTAs side-by-side */
.hero__cta--row{
  flex-direction:row; flex-wrap:wrap; align-items:center; gap:12px;
}

/* ── Centered hero with financial-data animation behind ──── */
.hero--centered{
  min-height:clamp(580px, 80vh, 780px);
  display:flex; align-items:center; justify-content:center;
  padding:48px var(--gutter); overflow:hidden;
  background:#0d0809;
}
.hero--centered .hero__visual{
  position:absolute; inset:0; z-index:0;
  border-radius:0; min-height:0;
  background:#0d0809; box-shadow:none;
}
.hero__center{
  position:relative; z-index:1; text-align:center;
  display:flex; flex-direction:column; align-items:center; gap:24px;
  max-width:940px; margin:0 auto;
}
.hero__center .hero__kicker{ align-items:center; margin:0; }
.hero__center .hero__kicker{ align-items:center; margin:0; }
.hero__center .hero__credit{ text-align:center; max-width:46ch; color:color-mix(in oklab, var(--cream) 58%, transparent); }
.hero__center .hero__headline{ text-align:center; color:#ffffff; text-shadow:0 2px 40px rgba(0,0,0,.55); }
.hero__center .hero__headline .crimson,
.hero__center .hero__headline .ampersand,
.hero__center .hero__headline .serif-it{ color:#ec4664; text-shadow:0 0 28px rgba(236,70,100,.45); }
.hero__center .hero__headline .outline{ color:#ffffff; }
.hero__center .hero__headline .rotator__word{ color:#ff4d68; text-shadow:0 0 34px rgba(255,77,104,.55); }
.hero__byline-text{
  margin:0; font-size:17px; color:color-mix(in oklab, var(--cream) 80%, transparent); max-width:56ch; line-height:1.6;
}
.hero__center .hero__cta--row{ justify-content:center; }
.hero--centered .badge{
  background:color-mix(in oklab, var(--cream) 12%, transparent);
  border-color:color-mix(in oklab, var(--cream) 22%, transparent);
  color:var(--cream);
}

/* Hero animated visual — full-bleed dark financial backdrop */
.hero__visual{
  position:absolute; inset:0; overflow:hidden; background:#0d0809;
}
.hero__visual-canvas{
  position:absolute; inset:0; width:100%; height:100%; display:block;
}
.hero__visual-veil{
  position:absolute; inset:0; pointer-events:none;
  background:
    radial-gradient(58% 56% at 50% 48%, color-mix(in oklab, #0d0809 78%, transparent) 0%, color-mix(in oklab, #0d0809 30%, transparent) 55%, transparent 80%),
    linear-gradient(180deg, #0d0809 0%, transparent 18%, transparent 80%, #0d0809 100%),
    linear-gradient(90deg, color-mix(in oklab, #0d0809 70%, transparent) 0%, transparent 14%, transparent 86%, color-mix(in oklab, #0d0809 70%, transparent) 100%);
}

.hero__headline{
  font-family:var(--display); font-weight:700;
  font-size:clamp(38px, 5.4vw, 76px); line-height:1; letter-spacing:-.035em;
  margin:0; color:var(--ink); text-wrap:balance;
}
.hero__headline .crimson{ color:var(--crimson); }
.hero__headline .outline{
  color:var(--ink-2); font-weight:600;
}
.hero__headline .ampersand{ color:var(--crimson); font-weight:500; font-style:normal; }
.hero__headline .serif-it{
  font-family:var(--display-serif); font-style:italic; font-weight:500; color:var(--crimson);
}

/* Hero word rotator — JS-driven so the container sizes to the active word */
.rotator{
  display:inline-block; position:relative; vertical-align:baseline; line-height:inherit;
}
.rotator__word{
  position:absolute; left:0; top:0;
  opacity:0; transform:translateY(22%);
  transition: opacity .42s ease, transform .42s cubic-bezier(.2,.7,.2,1);
  white-space:nowrap; pointer-events:none;
  font-family:var(--display-serif); font-style:italic; font-weight:500; color:var(--crimson);
}
.rotator__word.is-active{
  position:static;
  opacity:1; transform:translateY(0);
  pointer-events:auto;
}
@media (prefers-reduced-motion: reduce){
  .rotator__word{ transition:none; }
}
.hero__byline{
  display:flex; flex-direction:column; gap:12px; padding-top:0; margin-top:10px;
}
.hero__byline p{ margin:0; font-size:15px; color:var(--ink-2); }
.hero__credit{
  font-family:var(--mono); font-size:10.5px; letter-spacing:.2em; text-transform:uppercase;
  color:var(--muted);
}
.hero__sub{
  display:grid; grid-template-columns:repeat(4, 1fr); gap:24px;
  padding:32px var(--gutter) 12px; margin-top:24px;
  border-top:1px solid var(--rule);
}
.hero__stat{ display:flex; flex-direction:column; gap:4px; }
.hero__stat .num{
  font-family:var(--display); font-weight:700; font-size:38px; letter-spacing:-.035em;
  line-height:1; color:var(--ink);
}
.hero__stat .num .pct{ color:var(--crimson); }
.hero__stat .lbl{
  font-family:var(--body); font-size:13px; color:var(--ink-2);
}
.hero__dropcap{ display:none; }

/* Page intro for inner pages */
.pageintro{
  padding:72px 0 24px; border-bottom:1px solid var(--rule);
  background:
    radial-gradient(ellipse 60% 60% at 80% 0%, color-mix(in oklab, var(--crimson) 8%, transparent), transparent 70%);
}
.pageintro__grid{
  display:grid; grid-template-columns:1.4fr 1fr; gap:48px; align-items:end;
  padding:0 var(--gutter);
}
.pageintro__title{
  font-family:var(--display); font-weight:700;
  font-size:clamp(44px, 6.4vw, 92px); line-height:1.02; letter-spacing:-.035em; margin:0;
}
.pageintro__title em{ font-family:var(--display-serif); font-style:italic; font-weight:500; color:var(--crimson); }
.pageintro__title .fancy{ font-style:italic; color:var(--crimson); }
.pageintro__lede{ max-width:460px; font-size:15.5px; color:var(--ink-2); line-height:1.6; }
.pageintro__meta{ display:none; }

/* ── Editorial features grid (Home) ──────────────────────── */
.feature-grid{
  display:grid; grid-template-columns:repeat(12, 1fr); gap:24px;
  padding:80px var(--gutter); border-bottom:1px solid var(--rule);
}
.feat{ position:relative; padding:14px; border-radius:var(--radius);
  background:var(--paper); border:1px solid color-mix(in oklab, var(--ink) 10%, transparent);
  box-shadow:var(--shadow-card);
  transition: transform .3s cubic-bezier(.2,.7,.2,1), box-shadow .3s, border-color .3s;
}
.feat:hover{ transform:translateY(-3px); box-shadow:var(--shadow-elev); border-color:color-mix(in oklab, var(--ink) 22%, transparent); }
.feat__img{
  aspect-ratio: 4/5; background:var(--cream-2); position:relative; overflow:hidden;
  border:0; border-radius:8px;
}
.feat__img--wide{ aspect-ratio: 4/3; }
.feat__img--portrait{ aspect-ratio: 3/4; }
.feat__kicker{ margin-top:14px; padding:0 4px; }
.feat__title{
  font-family:var(--display); font-weight:700;
  font-size:clamp(20px,1.9vw,26px); line-height:1.18; letter-spacing:-.02em;
  margin:8px 4px 10px; color:var(--ink);
}
.feat__deck{ font-size:14px; color:var(--ink-2); margin:0 4px 12px; line-height:1.55; }
.feat__by{
  font-family:var(--mono); font-size:10.5px; letter-spacing:.12em; text-transform:uppercase;
  color:var(--muted); padding:0 4px 4px;
}

/* Placeholders */
.placeholder{
  position:absolute; inset:0; display:flex; align-items:center; justify-content:center;
  font-family:var(--mono); font-size:10.5px; letter-spacing:.2em; text-transform:uppercase;
  color:var(--ink); text-align:center;
  background:
    repeating-linear-gradient(135deg, transparent 0 16px, color-mix(in oklab, var(--ink) 9%, transparent) 16px 17px),
    var(--cream-2);
}
.placeholder--crimson{
  background:
    repeating-linear-gradient(135deg, transparent 0 16px, color-mix(in oklab, var(--cream) 14%, transparent) 16px 17px),
    var(--crimson); color:var(--cream);
}
.placeholder--oxblood{
  background:
    repeating-linear-gradient(135deg, transparent 0 16px, color-mix(in oklab, var(--cream) 14%, transparent) 16px 17px),
    var(--oxblood); color:var(--cream);
}
.placeholder--ink{
  background:
    repeating-linear-gradient(135deg, transparent 0 18px, color-mix(in oklab, var(--cream) 12%, transparent) 18px 19px),
    var(--ink); color:var(--cream);
}
.placeholder__inner{
  display:flex; flex-direction:column; gap:10px; align-items:center;
  background:color-mix(in oklab, var(--cream) 92%, transparent);
  padding:14px 18px; border:.6px solid currentColor; max-width:75%;
}
.placeholder--crimson .placeholder__inner,
.placeholder--oxblood .placeholder__inner,
.placeholder--ink .placeholder__inner{
  background:color-mix(in oklab, var(--ink) 78%, transparent); color:var(--cream);
  border-color:color-mix(in oklab, var(--cream) 50%, transparent);
}

/* Tag chips */
.chip{
  display:inline-flex; align-items:center; gap:8px; padding:7px 14px;
  border:var(--rule-w) solid var(--ink); border-radius:999px;
  font-family:var(--mono); font-size:10.5px; letter-spacing:.18em; text-transform:uppercase;
  color:var(--ink); background:transparent;
  transition:background .25s, color .25s;
}
.chip:hover{ background:var(--ink); color:var(--cream); }
.chip--crimson{ background:var(--crimson); color:var(--cream); border-color:var(--crimson); }
.chip--gold{ background:var(--gold); color:var(--ink); border-color:var(--gold); }

/* ── Pull quote ──────────────────────────────────────────── */
.pullquote{
  padding:80px var(--gutter);
  border-bottom:1px solid var(--rule); background:var(--paper);
  position:relative;
}
.pullquote .quote-mark{ display:none; }
.pullquote__body{
  font-family:var(--display); font-weight:600;
  font-size:clamp(26px,3.2vw,44px); line-height:1.14; letter-spacing:-.025em;
  text-wrap:balance; text-align:center; margin:0 auto; max-width:980px; color:var(--ink);
}
.pullquote__body em{ font-family:var(--display-serif); font-style:italic; font-weight:500; color:var(--crimson); }
.pullquote__attrib{
  text-align:center; margin-top:24px;
  font-family:var(--mono); font-size:11px; letter-spacing:.14em; text-transform:uppercase;
  color:var(--muted);
}

/* ── Section header (kicker + headline) ──────────────────── */
.sectionhead{
  display:grid; grid-template-columns: 1fr auto; gap:24px; align-items:end;
  padding:80px var(--gutter) 20px; border-bottom:1px solid var(--rule);
}
.sectionhead__title{
  font-family:var(--display); font-weight:700;
  font-size:clamp(32px,4vw,56px); line-height:1.04; letter-spacing:-.035em; margin:0;
}
.sectionhead__title em{ font-family:var(--display-serif); font-style:italic; font-weight:500; color:var(--crimson); }
.sectionhead__title .num{
  font-family:var(--display-serif); font-style:italic; color:var(--crimson); margin-right:.1em; font-weight:600;
}

/* ── Pinboard (Hot takes) ────────────────────────────────── */
.pinboard{
  position:relative; padding:80px var(--gutter); min-height:760px;
  background:var(--paper);
  background-image:
    radial-gradient(circle at 1px 1px, color-mix(in oklab, var(--ink) 10%, transparent) 1px, transparent 0);
  background-size:24px 24px;
  border-bottom:1px solid var(--rule);
}
.pin{
  position:absolute; padding:20px 22px 22px; max-width:330px;
  background:var(--cream); border:1px solid color-mix(in oklab, var(--ink) 14%, transparent);
  border-radius:10px; box-shadow:var(--shadow-elev);
  user-select:none;
}
.pin.is-drag{ cursor:grabbing; z-index:99; transition:none; }
.pin__no{
  font-family:var(--mono); font-size:10px; letter-spacing:.1em; text-transform:uppercase;
  color:var(--crimson); margin-bottom:8px; font-weight:600;
}
.pin__title{
  font-family:var(--display); font-weight:700;
  font-size:21px; line-height:1.12; letter-spacing:-.02em; margin:0 0 10px;
}
.pin__body{ font-size:13.5px; color:var(--ink-2); margin:0; }
.pin--crimson{ background:linear-gradient(150deg, var(--crimson), var(--crimson-dk)); color:var(--cream); border-color:var(--crimson-dk); }
.pin--crimson .pin__no{ color:var(--gold); }
.pin--crimson .pin__body{ color:var(--cream); }
.pin--ink{ background:linear-gradient(150deg, var(--ink), var(--ink-2)); color:var(--cream); border-color:var(--ink); }
.pin--ink .pin__no{ color:var(--gold); }
.pin--ink .pin__body{ color:var(--cream); }
.pin--gold{ background:linear-gradient(150deg, var(--gold), var(--gold-2)); color:var(--ink); border-color:var(--gold-2); }
.pin--gold .pin__no{ color:var(--oxblood); }
.pin__tape{ display:none; }

/* ── Manifesto long-form ─────────────────────────────────── */
.manifesto{ padding:80px var(--gutter) 32px; }
.manifesto__grid{
  display:grid; grid-template-columns:repeat(12,1fr); gap:36px;
}
.manifesto__no{
  grid-column:1/3;
  font-family:var(--display-serif); font-style:italic; font-weight:700;
  font-size:140px; line-height:.85; color:var(--crimson);
}
.manifesto__body{ grid-column:3/11; }
.manifesto__body h2{
  font-family:var(--display); font-weight:700;
  font-size:clamp(34px,4vw,58px); line-height:1.02; letter-spacing:-.03em; margin:0 0 28px;
}
.manifesto__body h2 em{ font-family:var(--display-serif); font-style:italic; font-weight:600; }
.manifesto__body p{
  font-size:17px; line-height:1.65; margin:0 0 22px; color:var(--ink);
  max-width:62ch;
}
.manifesto__body p:first-of-type::first-letter{
  font-family:var(--display-serif); font-style:italic; font-weight:700;
  font-size:80px; line-height:.7; float:left; padding:6px 10px 0 0; color:var(--crimson);
}
.manifesto__body em{ color:var(--crimson); font-style:italic; }
.manifesto__body strong{ color:var(--ink); font-weight:700; }
.manifesto__aside{
  grid-column:11/13; font-family:var(--mono); font-size:10.5px; letter-spacing:.18em;
  text-transform:uppercase; color:var(--muted); padding-top:8px;
}

/* ── About spread ────────────────────────────────────────── */
.about-spread{
  display:grid; grid-template-columns:1.05fr 1.5fr; gap:48px;
  padding:64px var(--gutter); border-bottom:var(--rule-w) solid var(--ink);
}
.about-portrait{ aspect-ratio:3/4; position:relative; border:var(--rule-w) solid var(--ink); }
.about-portrait__tag{
  position:absolute; left:14px; bottom:14px; background:var(--cream);
  padding:8px 12px; border:var(--rule-w) solid var(--ink);
}
.about-copy h2{
  font-family:var(--display); font-weight:700;
  font-size:clamp(34px,4.2vw,58px); line-height:1.02; letter-spacing:-.03em; margin:0 0 24px;
}
.about-copy h2 em{ font-family:var(--display-serif); font-style:italic; font-weight:600; }
.about-copy p{ font-size:16px; line-height:1.7; color:var(--ink); margin:0 0 18px; max-width:58ch; }
.about-copy p:first-of-type::first-letter{
  font-family:var(--display-serif); font-style:italic; font-weight:700;
  font-size:72px; line-height:.75; float:left; padding:8px 10px 0 0; color:var(--crimson);
}
.about-facts{
  margin-top:24px; display:grid; grid-template-columns:repeat(2,1fr); gap:18px;
  padding-top:24px; border-top:var(--rule-w) solid var(--ink);
}
.fact .num{
  font-family:var(--display); font-weight:700; font-size:52px; line-height:1; letter-spacing:-.04em;
  color:var(--crimson);
}
.fact .lbl{
  font-family:var(--mono); font-size:10.5px; letter-spacing:.18em; text-transform:uppercase;
  color:var(--muted); margin-top:6px;
}

/* ── Watch (TikTok phones) ───────────────────────────────── */
.watch-grid{
  display:grid; grid-template-columns:repeat(3, 1fr);
  gap:36px; justify-items:center;
  padding:56px var(--gutter);
}
@media (max-width: 1100px){ .watch-grid{ grid-template-columns:repeat(2,1fr); } }
@media (max-width: 640px){
  .watch-grid{ grid-template-columns:1fr; padding:28px 10px; gap:22px; }
}

/* TikTok embed — fixed design width, scaled to fit any column */
.tt-embed{ width:100%; display:flex; justify-content:center; }
.tt-embed__frame{
  position:relative; width:100%; max-width:325px; overflow:hidden;
  border-radius:18px; background:#000;
  box-shadow: 0 24px 60px -24px color-mix(in oklab, var(--ink) 60%, transparent);
}
.tt-embed__frame iframe{
  position:absolute; top:0; left:0; border:0; background:#000; display:block;
}

/* TikTok phone size + iframe fill */
.tt-phone{
  width: 100%;
  max-width: 320px;
  aspect-ratio: 9 / 19.5;
}
.tt-phone .phone__screen{
  background:#000;
}
.tt-phone .phone__screen iframe{
  flex:1; width:100%; height:100%; border:0; display:block;
  background:#000;
}
.phone{
  aspect-ratio:9/19.5; border-radius:36px; padding:8px;
  background:var(--ink); position:relative; overflow:hidden;
  box-shadow: 0 24px 60px -24px color-mix(in oklab, var(--ink) 60%, transparent);
  transition:transform .4s cubic-bezier(.2,.7,.2,1);
}
.phone:hover{ transform:translateY(-6px) rotate(-1deg); }
.phone__screen{
  position:absolute; inset:8px; border-radius:28px; overflow:hidden;
  background:var(--ink-2);
  display:flex; flex-direction:column;
}
.phone__notch{
  position:absolute; top:14px; left:50%; transform:translateX(-50%);
  width:90px; height:24px; border-radius:14px; background:#000; z-index:2;
}
.phone__caption{
  position:absolute; left:14px; right:14px; bottom:22px; z-index:3; color:#fff;
}
.phone__hash{
  font-family:var(--mono); font-size:10.5px; letter-spacing:.1em; opacity:.85; margin-bottom:6px;
}
.phone__title{
  font-family:var(--display); font-weight:700; font-size:17px; line-height:1.15; letter-spacing:-.02em;
  margin:0;
}
.phone__stats{
  position:absolute; right:14px; bottom:84px; z-index:3; color:#fff;
  display:flex; flex-direction:column; gap:18px; align-items:center;
}
.phone__stat{ display:flex; flex-direction:column; align-items:center; gap:4px; }
.phone__stat .v{ font-family:var(--body); font-weight:700; font-size:12px; }
.phone__stat .ic{ font-family:var(--fancy); font-size:22px; }
.phone__topbar{
  position:absolute; top:50px; left:0; right:0; display:flex; justify-content:center; gap:24px; z-index:3;
  font-family:var(--body); font-size:13px; font-weight:600; color:#fff;
}
.phone__topbar span:first-child{ opacity:.55; }
.phone__topbar span:nth-child(2){ position:relative; }
.phone__topbar span:nth-child(2)::after{
  content:""; position:absolute; left:0; right:0; bottom:-6px; height:2px; background:#fff;
}
.phone__art{ position:absolute; inset:0; }
.phone__play{
  position:absolute; left:50%; top:48%; transform:translate(-50%,-50%); z-index:2;
  font-size:42px; color:rgba(255,255,255,.85); font-family:var(--fancy);
}

/* ── Newsletter page perks ───────────────────────────────── */
.nl-page{
  margin: 0 var(--gutter); padding: 48px 0 8px;
}
.nl-page__perks{
  display: grid; grid-template-columns: repeat(3, 1fr); gap: 28px;
}
.nl-perk h3{
  font-family: var(--display); font-weight: 700; font-size: 22px;
  letter-spacing: -.02em; margin: 10px 0 8px; color: var(--ink);
}
.nl-perk p{
  font-size: 14.5px; line-height: 1.6; color: var(--ink-2); margin: 0;
  max-width: 32ch;
}
@media (max-width: 760px){
  .nl-page__perks{ grid-template-columns: 1fr; gap: 22px; }
  .nl-page{ padding: 32px 0 4px; }
}

/* ── Newsletter big section ──────────────────────────────── */
.letters{
  padding:96px var(--gutter); background:var(--cream); color:var(--ink);
  position:relative; overflow:hidden;
  background-image:
    radial-gradient(ellipse 60% 60% at 100% 0%, color-mix(in oklab, var(--crimson) 10%, transparent), transparent 60%),
    radial-gradient(ellipse 50% 50% at 0% 100%, color-mix(in oklab, var(--gold) 12%, transparent), transparent 60%);
}
.letters .kicker{ color:var(--crimson); }
.letters h2{
  font-family:var(--display); font-weight:700;
  font-size:clamp(40px,5.6vw,84px); line-height:1.02; letter-spacing:-.04em; margin:18px 0 20px;
  max-width:18ch; color:var(--ink);
}
.letters h2 em{ font-family:var(--display-serif); font-style:italic; font-weight:500; color:var(--crimson); }
.letters p.lede{ font-size:16px; color:var(--ink-2); max-width:60ch; margin:0 0 28px; line-height:1.65; }
.letters .nl{ background:var(--paper); border-color:var(--ink); }
.letters .nl input{ color:var(--ink); }
.letters .nl input::placeholder{ color:var(--muted); }
.letters .nl button{ background:var(--ink); color:var(--cream); }
.letters .nl button:hover{ background:var(--crimson); color:var(--cream); }
.letters__ornament{ display:none; }

/* Centered variant — used for the homepage newsletter section */
.letters--center{ text-align:center; }
.letters--center h2,
.letters--center p.lede,
.letters--center .kicker{ margin-left:auto; margin-right:auto; }
.letters--center h2{ max-width:22ch; }
.letters--center .nl-embed{ margin-left:auto; margin-right:auto; }
.letters--center .nl-embed__fallback{ text-align:center; }

/* Letters archive grid */
.archive{
  padding:80px var(--gutter); border-bottom:1px solid var(--rule);
}
.archive__grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:24px; margin-top:36px; }
.issue{
  padding:24px; background:var(--paper); border:1px solid color-mix(in oklab, var(--ink) 10%, transparent);
  border-radius:var(--radius); box-shadow:var(--shadow-card);
  position:relative; transition:transform .35s, box-shadow .35s, border-color .35s;
}
.issue:hover{ transform:translateY(-3px); box-shadow:var(--shadow-elev); border-color:color-mix(in oklab, var(--crimson) 35%, transparent); }
.issue__no{
  font-family:var(--mono); font-size:11px; letter-spacing:.08em; text-transform:uppercase;
  color:var(--crimson); font-weight:600;
}
.issue__title{
  font-family:var(--display); font-weight:700;
  font-size:21px; line-height:1.18; letter-spacing:-.02em; margin:8px 0 10px; color:var(--ink);
}
.issue__deck{ font-size:14px; color:var(--ink-2); margin:0 0 18px; }
.issue__meta{
  display:flex; justify-content:space-between; align-items:center;
  padding-top:12px; border-top:1px solid var(--rule);
  font-family:var(--mono); font-size:10.5px; letter-spacing:.08em; text-transform:uppercase;
  color:var(--muted);
}

/* ── Courses ─────────────────────────────────────────────── */
.course-grid{
  display:grid; grid-template-columns:repeat(12,1fr); gap:24px;
  padding:80px var(--gutter); border-bottom:1px solid var(--rule);
}
.course{
  position:relative; padding:32px; background:var(--paper);
  border:1px solid color-mix(in oklab, var(--ink) 10%, transparent); border-radius:var(--radius);
  display:flex; flex-direction:column; gap:14px; min-height:520px;
  box-shadow:var(--shadow-card);
  transition:transform .3s cubic-bezier(.2,.7,.2,1), box-shadow .3s, border-color .3s;
}
.course:hover{ transform:translateY(-3px); box-shadow:var(--shadow-elev); }
.course--feature{ background:linear-gradient(160deg, var(--crimson), var(--oxblood) 90%); color:var(--cream); border-color:var(--crimson); }
.course--feature .course__price, .course--feature .kicker{ color:var(--gold); }
.course--feature .course__name{ color:var(--cream); }
.course--dark{ background:linear-gradient(160deg, var(--ink), var(--ink-2)); color:var(--cream); border-color:var(--ink); }
.course--dark .course__name{ color:var(--cream); }
.course--dark .kicker{ color:var(--gold); }
.course__no{
  font-family:var(--display); font-weight:700; font-size:14px; letter-spacing:.04em;
  color:var(--crimson); margin-bottom:4px; text-transform:none;
}
.course--feature .course__no, .course--dark .course__no{ color:var(--gold); }
.course__name{
  font-family:var(--display); font-weight:700;
  font-size:30px; line-height:1.08; letter-spacing:-.03em; margin:0;
}
.course__deck{ font-size:14.5px; line-height:1.6; opacity:.92; margin:6px 0 14px; }
.course__price{
  font-family:var(--display); font-weight:700; font-size:32px; letter-spacing:-.03em; color:var(--crimson);
}
.course__bullets{ list-style:none; padding:0; margin:8px 0 0; font-size:13.5px; }
.course__bullets li{ padding:8px 0; border-top:var(--rule-w) solid color-mix(in oklab, currentColor 18%, transparent); display:flex; gap:10px; }
.course__bullets li::before{
  content:"✓"; font-family:var(--body); font-weight:700; color:var(--crimson); width:16px; flex-shrink:0;
}
.course--feature .course__bullets li::before, .course--dark .course__bullets li::before{ color:var(--gold); }
.course__cta{ margin-top:auto; }

/* ── Contact ─────────────────────────────────────────────── */
.contact{
  display:grid; grid-template-columns:1.2fr 1fr; gap:48px;
  padding:64px var(--gutter); border-bottom:var(--rule-w) solid var(--ink);
}
.contact__form{ display:flex; flex-direction:column; gap:18px; }
.contact__row{ display:grid; grid-template-columns:1fr 1fr; gap:18px; }
.field{
  display:flex; flex-direction:column; gap:6px;
}
.field label{
  font-family:var(--mono); font-size:10.5px; letter-spacing:.18em; text-transform:uppercase;
  color:var(--muted);
}
.field input, .field textarea, .field select{
  border:0; border-bottom:var(--rule-w) solid var(--ink); padding:10px 0;
  font-family:var(--body); font-size:15px; color:var(--ink); background:transparent;
  outline:none; resize:none;
}
.field input:focus, .field textarea:focus, .field select:focus{
  border-color:var(--crimson);
}
.contact__info dl{ margin:0; }
.contact__info dt{
  font-family:var(--mono); font-size:10.5px; letter-spacing:.2em; text-transform:uppercase;
  color:var(--muted); margin-top:18px;
}
.contact__info dd{
  margin:6px 0 0; font-family:var(--display); font-weight:600; font-size:22px; letter-spacing:-.02em;
  color:var(--ink);
}
.contact__info dd a:hover{ color:var(--crimson); }

/* ── Footer ──────────────────────────────────────────────── */
.foot{
  background:var(--ink); color:var(--cream); padding:80px var(--gutter) 28px;
  position:relative;
}
.foot__top{
  display:grid; grid-template-columns: 1.4fr 1fr 1fr 1.2fr; gap:48px;
  border-bottom:1px solid color-mix(in oklab, var(--cream) 14%, transparent);
  padding-bottom:44px;
}
.foot__brand h3{
  font-family:var(--display); font-weight:700; font-size:30px; line-height:1.15;
  letter-spacing:-.025em; margin:14px 0 14px;
}
.foot__brand h3 em{ font-family:var(--display-serif); font-style:italic; font-weight:500; color:var(--crimson); }
.foot__brand .wordmark{
  display:inline-flex; align-items:center; gap:10px;
  font-family:var(--display); font-weight:700; font-size:18px; letter-spacing:-.02em; color:var(--cream);
}
.foot__brand .wordmark .mark{
  display:inline-block; width:22px; height:22px; border-radius:6px;
  background:linear-gradient(135deg, var(--crimson), var(--oxblood) 70%, var(--gold));
  position:relative; flex-shrink:0;
}
.foot__brand .wordmark .mark::after{
  content:""; position:absolute; left:4px; top:4px; right:4px; bottom:4px;
  border-radius:3px; border:1.5px solid color-mix(in oklab, var(--cream) 75%, transparent);
}
.foot__brand p{ font-size:14px; color:color-mix(in oklab, var(--cream) 65%, transparent); max-width:36ch; margin:0; line-height:1.6; }
.foot__col h4{
  font-family:var(--body); font-size:12px; letter-spacing:.04em; text-transform:none; font-weight:600;
  color:color-mix(in oklab, var(--cream) 55%, transparent); margin:0 0 14px;
}
.foot__col ul{ list-style:none; padding:0; margin:0; display:flex; flex-direction:column; gap:8px; }
.foot__col a{ font-family:var(--body); font-weight:500; font-size:14px; letter-spacing:0; color:var(--cream); }
.foot__col a:hover{ color:var(--crimson); }
.foot__giant{ display:none; }
.foot__bottom{
  display:flex; justify-content:space-between; align-items:center; gap:24px;
  padding-top:24px; margin-top:24px;
  font-family:var(--body); font-size:12px; letter-spacing:0; text-transform:none;
  color:color-mix(in oklab, var(--cream) 50%, transparent);
}

/* ── Scroll reveal ───────────────────────────────────────── */

/* ── Thesis page: math callouts + DCA calculator ─────────── */
.thesis-math{
  padding: 80px var(--gutter);
  border-bottom: 1px solid var(--rule);
}
.thesis-math__grid{
  display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px;
}
.thesis-math__card{
  background: var(--paper);
  border: 1px solid color-mix(in oklab, var(--ink) 10%, transparent);
  border-radius: var(--radius); padding: 28px;
  box-shadow: var(--shadow-card);
  display: flex; flex-direction: column; gap: 12px;
}
.thesis-math__card h3{
  font-family: var(--display); font-weight: 700;
  font-size: 22px; line-height: 1.18; letter-spacing: -.02em;
  margin: 6px 0 4px; color: var(--ink);
}
.thesis-math__card p{
  font-size: 14.5px; line-height: 1.62; color: var(--ink-2); margin: 0;
}
.thesis-math__card--dark{
  background: linear-gradient(160deg, var(--ink), var(--ink-2));
  color: var(--cream); border-color: var(--ink);
}

/* DCA calculator card */
.dca{
  margin: 0 var(--gutter) 80px;
  padding: 32px;
  background: var(--paper);
  border: 1px solid color-mix(in oklab, var(--ink) 10%, transparent);
  border-radius: 16px;
  box-shadow: var(--shadow-elev);
  position: relative; overflow: hidden;
}
.dca::before{
  content:""; position:absolute; inset:0; pointer-events:none;
  background:
    radial-gradient(ellipse 50% 40% at 100% 0%, color-mix(in oklab, var(--crimson) 10%, transparent), transparent 60%),
    radial-gradient(ellipse 40% 30% at 0% 100%, color-mix(in oklab, var(--gold) 8%, transparent), transparent 60%);
}
.dca > *{ position: relative; }

.dca__head{ margin-bottom: 24px; }
.dca__title{
  font-family: var(--display); font-weight: 700;
  font-size: clamp(28px, 3.4vw, 44px); letter-spacing: -.03em; line-height: 1.04;
  margin: 10px 0 8px; color: var(--ink);
}
.dca__sub{ font-size: 14.5px; line-height: 1.6; color: var(--ink-2); margin: 0; max-width: 64ch; }

.dca__scenarios{
  display: flex; gap: 6px; flex-wrap: wrap;
  margin: 20px 0 14px;
}
.dca__scenario{
  flex: 1 1 0; min-width: 120px;
  padding: 10px 14px; border-radius: 10px;
  background: var(--cream);
  border: 1px solid color-mix(in oklab, var(--ink) 10%, transparent);
  text-align: left; cursor: none;
  display: flex; flex-direction: column; gap: 2px;
  transition: background .2s, border-color .2s, transform .2s;
}
.dca__scenario:hover{
  border-color: color-mix(in oklab, var(--crimson) 30%, transparent);
  transform: translateY(-1px);
}
.dca__scenario.is-active{
  background: var(--ink); border-color: var(--ink);
  box-shadow: 0 1px 0 rgba(255,255,255,.12) inset, 0 6px 18px -8px rgba(0,0,0,.4);
}
.dca__scenario.is-active .dca__scenario-label{ color: var(--cream); }
.dca__scenario.is-active .dca__scenario-sub{ color: var(--gold); }
.dca__scenario-label{
  font-family: var(--display); font-weight: 700; font-size: 14px;
  letter-spacing: -.01em; color: var(--ink);
}
.dca__scenario-sub{
  font-family: var(--mono); font-size: 10.5px; letter-spacing: .04em;
  color: var(--muted);
}

.dca__blurb{
  font-size: 14px; color: var(--ink-2); margin: 0 0 24px;
  font-style: italic;
}

.dca__controls{
  display: grid; grid-template-columns: 1fr 1fr; gap: 24px;
  margin-bottom: 20px;
}
.dca__ctrl{ display: flex; flex-direction: column; gap: 8px; }
.dca__ctrl-row{
  display: flex; justify-content: space-between; align-items: baseline; gap: 12px;
}
.dca__ctrl-lbl{
  font-family: var(--mono); font-size: 11px; letter-spacing: .06em;
  text-transform: uppercase; color: var(--muted);
}
.dca__ctrl-val{
  font-family: var(--display); font-weight: 700; font-size: 18px;
  letter-spacing: -.02em; color: var(--ink);
}
.dca__ctrl input[type="range"]{
  -webkit-appearance: none; appearance: none;
  width: 100%; height: 4px; background: var(--rule); border-radius: 2px;
  outline: none; cursor: none;
}
.dca__ctrl input[type="range"]::-webkit-slider-thumb{
  -webkit-appearance: none; appearance: none;
  width: 18px; height: 18px; border-radius: 50%;
  background: var(--crimson); border: 2px solid var(--cream);
  box-shadow: 0 2px 6px rgba(0,0,0,.2);
  cursor: none;
}
.dca__ctrl input[type="range"]::-moz-range-thumb{
  width: 16px; height: 16px; border-radius: 50%;
  background: var(--crimson); border: 2px solid var(--cream);
  box-shadow: 0 2px 6px rgba(0,0,0,.2); cursor: none;
}

.dca__chart-wrap{
  background: color-mix(in oklab, var(--cream) 60%, transparent);
  border: 1px solid color-mix(in oklab, var(--ink) 8%, transparent);
  border-radius: 10px; padding: 14px; margin-bottom: 20px;
  position: relative;
}
.dca__chart{ width: 100%; height: auto; display: block; }
.dca__axis{
  font-family: var(--mono); font-size: 9.5px; fill: var(--muted);
  letter-spacing: .04em;
}
.dca__legend{ font-family: var(--mono); font-size: 10.5px; fill: var(--ink-2); }
.dca__readout{
  position: absolute; left: 14px; bottom: 14px;
  font-family: var(--mono); font-size: 11px; color: var(--ink);
  background: var(--paper); padding: 6px 10px; border-radius: 6px;
  border: 1px solid color-mix(in oklab, var(--ink) 10%, transparent);
  box-shadow: var(--shadow-card);
  pointer-events: none;
}

.dca__stats{
  display: grid; grid-template-columns: repeat(5, 1fr); gap: 12px;
  margin-bottom: 20px;
}
.dca__stat{
  padding: 16px; border-radius: 10px;
  background: var(--cream);
  border: 1px solid color-mix(in oklab, var(--ink) 8%, transparent);
}
.dca__stat-lbl{
  font-family: var(--mono); font-size: 10px; letter-spacing: .06em;
  text-transform: uppercase; color: var(--muted); margin-bottom: 6px;
}
.dca__stat-val{
  font-family: var(--display); font-weight: 700;
  font-size: 24px; letter-spacing: -.03em; line-height: 1; color: var(--ink);
}
.dca__stat-sub{
  font-family: var(--mono); font-size: 10.5px; color: var(--muted); margin-top: 4px;
}
.dca__stat--upro .dca__stat-val{ color: var(--crimson); }
.dca__stat--multi{ background: var(--ink); border-color: var(--ink); }
.dca__stat--multi .dca__stat-lbl{ color: var(--gold); }
.dca__stat--multi .dca__stat-val{ color: var(--cream); }
.dca__stat--multi .dca__stat-sub{ color: color-mix(in oklab, var(--cream) 50%, transparent); }
.dca__stat--dd .dca__stat-val{ color: var(--oxblood); }

.dca__disclosure{
  font-family: var(--mono); font-size: 10.5px; line-height: 1.6;
  color: var(--muted); padding-top: 16px;
  border-top: 1px solid var(--rule);
  letter-spacing: .02em;
}

/* ── Calculator teaser card on the Thesis page ────────── */
.calc-teaser{
  margin: 0 var(--gutter) 80px;
  padding: 36px;
  background: linear-gradient(135deg,
    var(--ink) 0%,
    color-mix(in oklab, var(--oxblood) 30%, var(--ink)) 100%);
  color: var(--cream);
  border-radius: 16px;
  position: relative; overflow: hidden;
  box-shadow: var(--shadow-elev);
}
.calc-teaser::before{
  content:""; position:absolute; inset:0;
  background:
    radial-gradient(ellipse 50% 50% at 100% 0%, color-mix(in oklab, var(--crimson) 24%, transparent), transparent 60%);
  pointer-events:none;
}
.calc-teaser__inner{
  position:relative;
  display: grid; grid-template-columns: 1.1fr 1fr; gap: 40px; align-items: center;
}
.calc-teaser__title{
  font-family: var(--display); font-weight: 700;
  font-size: clamp(28px, 3.6vw, 44px); letter-spacing: -.035em; line-height: 1.05;
  margin: 10px 0 14px; color: var(--cream);
}
.calc-teaser__title em{ color: var(--crimson); font-family: inherit; font-style: italic; font-weight: 500; }
.calc-teaser__lede{
  font-size: 15px; line-height: 1.6;
  color: color-mix(in oklab, var(--cream) 75%, transparent); margin: 0 0 14px;
  max-width: 48ch;
}
.calc-teaser__bullets{
  list-style: none; padding: 0; margin: 0;
  display: flex; flex-direction: column; gap: 8px;
}
.calc-teaser__bullets li{
  font-size: 13.5px; color: color-mix(in oklab, var(--cream) 80%, transparent);
  padding-left: 22px; position: relative;
}
.calc-teaser__bullets li::before{
  content: "✓"; position: absolute; left: 0; color: var(--gold);
  font-weight: 700;
}
.calc-teaser .kicker{ color: var(--gold); }

.calc-teaser__preview{
  position: relative; background: var(--cream); color: var(--ink);
  border-radius: 12px; padding: 0; overflow: hidden;
  box-shadow: 0 20px 50px -24px rgba(0,0,0,.5);
  aspect-ratio: 16 / 11;
}
.calc-teaser__chrome{
  display: flex; align-items: center; gap: 6px;
  padding: 10px 14px;
  border-bottom: 1px solid color-mix(in oklab, var(--ink) 10%, transparent);
}
.calc-teaser__chrome > span:not(.calc-teaser__lock){
  width: 8px; height: 8px; border-radius: 50%;
  background: color-mix(in oklab, var(--ink) 14%, transparent);
}
.calc-teaser__chrome > span:nth-child(1){ background: #ec6a5e; }
.calc-teaser__chrome > span:nth-child(2){ background: #f4be4f; }
.calc-teaser__chrome > span:nth-child(3){ background: #61c554; }
.calc-teaser__chrome em{
  flex: 1; text-align: center; font-style: normal;
  font-family: var(--mono); font-size: 10.5px; letter-spacing: .04em;
  color: var(--muted);
}
.calc-teaser__lock{
  font-size: 11px; color: var(--muted);
}
.calc-teaser__chart{
  width: 100%; height: auto; padding: 14px 18px 18px;
  display: block;
}
.calc-teaser__blur{
  position: absolute; left: 14px; right: 14px; bottom: 14px; top: 50px;
  backdrop-filter: blur(2px);
  background: color-mix(in oklab, var(--cream) 55%, transparent);
  display: flex; align-items: center; justify-content: center;
  border-radius: 8px;
  border: 1px dashed color-mix(in oklab, var(--ink) 18%, transparent);
}
.calc-teaser__lock-large{
  display: flex; flex-direction: column; align-items: center; gap: 6px;
  color: var(--ink);
}
.calc-teaser__lock-large span{
  font-family: var(--mono); font-size: 10.5px; letter-spacing: .08em;
  text-transform: uppercase; color: var(--ink-2);
}

@media (max-width: 900px){
  .calc-teaser__inner{ grid-template-columns: 1fr; }
}

/* ── Paywall page ─────────────────────────────────────── */
.paywall-stage{ position: relative; overflow: hidden; padding: 64px 0 96px; }
.paywall__bg{ position: absolute; inset: 0; z-index: 0; }
.paywall__bg-canvas{ position: absolute; inset: 0; width: 100%; height: 100%; display: block; }
.paywall__bg-veil{
  position: absolute; inset: 0; pointer-events: none;
  background:
    radial-gradient(54% 64% at 50% 50%, color-mix(in oklab, var(--cream) 78%, transparent) 0%, color-mix(in oklab, var(--cream) 25%, transparent) 60%, transparent 82%),
    linear-gradient(180deg, var(--cream) 0%, transparent 14%, transparent 86%, var(--cream) 100%);
}
.paywall{
  position: relative; z-index: 1;
  margin: 0 auto; max-width: 600px; padding: 0 var(--gutter);
}

/* Centered single-column paywall (locked preview removed) */
.paywall__panel{ text-align: center; align-items: center; }
.paywall__icon{ margin: 0 auto 16px; order: 1; }
.paywall__panel .kicker{ order: 2; }
.paywall__title{ order: 3; }
.paywall__lede{ order: 4; margin-left: auto; margin-right: auto; }
.paywall__cta{ order: 5; align-items: center; width: 100%; }
.paywall__features{ order: 6; width: fit-content; max-width: 100%; margin-left: auto; margin-right: auto; text-align: left; }
.paywall__steps{ order: 7; width: fit-content; max-width: 100%; margin-left: auto; margin-right: auto; text-align: left; }
.paywall__code{ order: 8; width: 100%; max-width: 380px; margin-left: auto; margin-right: auto; text-align: left; }
.paywall__success{ order: 5; }
.pw-price{ font-size: 1.3em; font-weight: 800; color: var(--crimson); letter-spacing: -.01em; }

/* Larger kicker + centered PayPal buttons */
.paywall__panel .kicker{ font-size: 13.5px; letter-spacing: .16em; }
.paywall__cta{ max-width: 380px; margin-left: auto; margin-right: auto; }
.paywall__pp,
.paywall__pp-buttons,
.paywall__pp-placeholder{ width: 100%; max-width: 360px; margin-left: auto; margin-right: auto; }
.paywall__locked-preview{
  background: var(--paper);
  border: 1px solid color-mix(in oklab, var(--ink) 10%, transparent);
  border-radius: 16px;
  padding: 28px;
  position: relative; overflow: hidden;
  box-shadow: var(--shadow-card);
}
.paywall__locked-preview::after{
  content:""; position:absolute; inset:0; pointer-events:none;
  background:
    linear-gradient(180deg, transparent 50%, color-mix(in oklab, var(--paper) 92%, transparent) 100%),
    repeating-linear-gradient(
      135deg,
      transparent 0 24px,
      color-mix(in oklab, var(--ink) 3%, transparent) 24px 25px
    );
  backdrop-filter: blur(.5px);
}
.paywall__locked-chart{ position:relative; z-index: 1; }
.paywall__locked-stats{
  display: grid; grid-template-columns: repeat(3, 1fr); gap: 12px;
  margin-top: 20px; position: relative; z-index: 1;
}
.paywall__stat{
  padding: 14px;
  background: var(--cream); border-radius: 10px;
  border: 1px solid color-mix(in oklab, var(--ink) 8%, transparent);
}
.paywall__stat span{
  display: block;
  font-family: var(--display); font-weight: 700; font-size: 20px;
  letter-spacing: -.03em; color: var(--ink);
  filter: blur(4px);
}
.paywall__stat b{
  display: block; margin-top: 6px;
  font-family: var(--mono); font-size: 10px; letter-spacing: .06em;
  text-transform: uppercase; color: var(--muted); font-weight: 500;
}

.paywall__panel{
  background: var(--paper);
  border: 1px solid color-mix(in oklab, var(--ink) 10%, transparent);
  border-radius: 16px;
  padding: 36px;
  box-shadow: var(--shadow-elev);
  display: flex; flex-direction: column;
  position: relative; overflow: hidden;
}
.paywall__panel::before{
  content:""; position:absolute; inset:0; pointer-events:none;
  background: radial-gradient(circle at 100% 0%, color-mix(in oklab, var(--crimson) 12%, transparent), transparent 55%);
}
.paywall__panel > *{ position: relative; }
.paywall__icon{
  width: 48px; height: 48px; border-radius: 12px;
  background: linear-gradient(135deg, var(--crimson), var(--oxblood));
  color: var(--cream);
  display: flex; align-items: center; justify-content: center;
  margin-bottom: 18px;
  box-shadow: 0 8px 20px -10px color-mix(in oklab, var(--crimson) 80%, transparent);
}
.paywall__title{
  font-family: var(--display); font-weight: 700;
  font-size: clamp(28px, 3.4vw, 40px); letter-spacing: -.035em; line-height: 1.04;
  margin: 8px 0 12px;
}
.paywall__lede{
  font-size: 15px; line-height: 1.6; color: var(--ink-2);
  margin: 0 0 20px; max-width: 50ch;
}
.paywall__features{
  list-style: none; padding: 0; margin: 0 0 28px;
  display: flex; flex-direction: column; gap: 10px;
}
.paywall__features li{
  font-size: 14px; color: var(--ink-2); line-height: 1.5;
  padding-left: 24px; position: relative;
}
.paywall__features li::before{
  content: "✓"; position: absolute; left: 0; top: 0;
  color: var(--crimson); font-weight: 700;
}
.paywall__cta{
  display: flex; flex-direction: column; gap: 8px;
  align-items: flex-start;
  padding-bottom: 24px; margin-bottom: 24px;
  border-bottom: 1px solid var(--rule);
}
.paywall__cta-sub{
  font-family: var(--mono); font-size: 11px; letter-spacing: .04em;
  color: var(--muted);
}

/* PayPal button + pay-flow steps */
.paywall__pp{ position: relative; min-height: 46px; }
.paywall__pp-buttons{ position: relative; z-index: 1; }
.paywall__pp-loading{
  font-family: var(--mono); font-size: 11px; letter-spacing: .04em;
  color: var(--muted); padding: 14px 0;
}
.paywall__pp-placeholder{
  display: flex; align-items: center; gap: 10px;
  padding: 14px 16px; border-radius: 12px;
  border: 1px dashed color-mix(in oklab, var(--ink) 22%, transparent);
  background: color-mix(in oklab, var(--cream) 50%, transparent);
  font-size: 13px; color: var(--muted); line-height: 1.4;
}
.paywall__pp-placeholder--err{
  border-color: color-mix(in oklab, var(--crimson) 40%, transparent);
  color: var(--crimson);
}
.paywall__pp-mark{
  font-family: var(--display); font-weight: 800; font-size: 14px;
  color: #003087; flex-shrink: 0;
}

/* Post-payment success panel */
.paywall__success{ animation: fadeUp .4s ease both; }
.paywall__success-badge{
  display: inline-flex; align-items: center; gap: 7px;
  font-family: var(--mono); font-size: 11px; font-weight: 700;
  letter-spacing: .05em; text-transform: uppercase;
  color: #2a8050;
  background: color-mix(in oklab, #2a8050 12%, transparent);
  padding: 6px 11px; border-radius: 999px; margin-bottom: 16px;
}
.paywall__success-title{
  font-family: var(--display); font-weight: 800; font-size: 26px;
  line-height: 1.1; letter-spacing: -.02em; color: var(--ink);
  margin: 0 0 8px;
}
.paywall__success-lede{
  font-size: 14.5px; line-height: 1.55; color: var(--ink-2);
  margin: 0 0 20px; max-width: 46ch;
}
.paywall__success-code{
  display: flex; align-items: center; justify-content: space-between;
  gap: 12px; padding: 14px 18px; margin-bottom: 12px;
  border-radius: 12px;
  background: color-mix(in oklab, var(--crimson) 7%, transparent);
  border: 1px solid color-mix(in oklab, var(--crimson) 22%, transparent);
}
.paywall__success-code-lbl{
  font-family: var(--mono); font-size: 10.5px; letter-spacing: .06em;
  text-transform: uppercase; color: var(--muted);
}
.paywall__success-code-val{
  font-family: var(--mono); font-weight: 700; font-size: 20px;
  letter-spacing: .08em; color: var(--crimson);
}
.paywall__success-link{ display: flex; gap: 8px; margin-bottom: 18px; }
.paywall__success-link input{
  flex: 1; min-width: 0;
  padding: 11px 13px;
  font-family: var(--mono); font-size: 12px; color: var(--ink-2);
  border: 1px solid color-mix(in oklab, var(--ink) 14%, transparent);
  border-radius: 9px; background: var(--paper);
  outline: none;
}
.paywall__success-link input:focus{ border-color: var(--crimson); }
.paywall__success-open{ width: 100%; justify-content: center; }
.paywall__success-note{
  font-family: var(--mono); font-size: 11px; letter-spacing: .03em;
  color: var(--muted); margin: 12px 0 0; text-align: center;
}
@keyframes fadeUp{ from{ opacity: 0; transform: translateY(8px); } to{ opacity: 1; transform: none; } }
.paywall__handle{
  font-family: var(--mono); font-weight: 700; color: #3D95CE;
  background: color-mix(in oklab, #3D95CE 10%, transparent);
  padding: 1px 6px; border-radius: 4px;
}

.paywall__steps{
  list-style: none; padding: 0; margin: 0 0 28px;
  counter-reset: stp;
  display: flex; flex-direction: column; gap: 14px;
  padding: 18px 20px;
  background: var(--cream);
  border-radius: 10px;
  border: 1px solid color-mix(in oklab, var(--ink) 8%, transparent);
}
.paywall__steps li{
  counter-increment: stp;
  display: grid; grid-template-columns: 26px 1fr; gap: 12px;
  font-size: 14px; line-height: 1.55; color: var(--ink-2);
  align-items: start;
}
.paywall__steps li::before{
  content: counter(stp);
  display: flex; align-items: center; justify-content: center;
  width: 22px; height: 22px; border-radius: 50%;
  background: var(--crimson); color: var(--cream);
  font-family: var(--display); font-weight: 700; font-size: 12px;
  margin-top: 1px;
}
.paywall__steps b{ color: var(--ink); }
.paywall__steps em{
  font-family: var(--display); font-style: italic; color: var(--crimson);
}

.paywall__code label{ display: flex; flex-direction: column; gap: 2px; margin-bottom: 10px; }
.paywall__code-lbl{
  font-family: var(--display); font-weight: 700; font-size: 15px;
  letter-spacing: -.01em; color: var(--ink);
}
.paywall__code-hint{
  font-size: 12.5px; color: var(--muted);
}
.paywall__code-row{
  display: flex; gap: 8px;
}
.paywall__code-row input{
  flex: 1;
  padding: 12px 14px;
  border: 1px solid color-mix(in oklab, var(--ink) 14%, transparent);
  border-radius: 10px;
  font-family: var(--mono); font-size: 13px; letter-spacing: .1em;
  text-transform: uppercase; color: var(--ink);
  background: var(--cream);
  outline: none; transition: border-color .15s;
}
.paywall__code-row input:focus{
  border-color: var(--crimson);
  box-shadow: 0 0 0 3px color-mix(in oklab, var(--crimson) 18%, transparent);
}
.paywall__err{
  margin-top: 10px; font-size: 12.5px; color: var(--crimson);
  font-style: italic;
}

@media (max-width: 900px){
  .paywall{ grid-template-columns: 1fr; }
}

/* Mobile: surface the description + PayPal button above the fold —
   panel jumps above the locked preview, and the CTA lifts up under the lede. */
@media (max-width: 640px){
  .paywall{ margin: 28px auto 64px; }
  .paywall__panel{ padding: 22px 20px; }
  .paywall__icon{ display: none; }
  .paywall__title{ font-size: 26px; margin: 4px 0 10px; }
  .paywall__lede{ font-size: 14.5px; margin-bottom: 18px; }
  .paywall__cta{ margin-bottom: 20px; padding-bottom: 20px; }
  .paywall__features{ margin-bottom: 22px; }
}

/* Expired-access banner inside the paywall */
.paywall__expired-banner{
  position: relative; z-index: 2;
  display: flex; align-items: center; gap: 10px;
  margin-bottom: 14px;
  padding: 10px 14px;
  background: color-mix(in oklab, var(--crimson) 12%, var(--paper));
  border: 1px solid color-mix(in oklab, var(--crimson) 38%, transparent);
  border-radius: 8px;
  font-size: 13px; color: var(--crimson); font-weight: 600;
}
.paywall__expired-dot{
  width: 8px; height: 8px; border-radius: 50%;
  background: var(--crimson);
  box-shadow: 0 0 0 3px color-mix(in oklab, var(--crimson) 22%, transparent);
}
.member-banner{
  margin: 0 var(--gutter) 0;
  padding: 12px 18px;
  background: color-mix(in oklab, #3aa663 14%, var(--paper));
  border: 1px solid color-mix(in oklab, #3aa663 35%, transparent);
  border-radius: 10px;
  display: flex; align-items: center; gap: 12px;
  font-size: 13.5px; color: var(--ink-2);
}
.member-banner__dot{
  width: 8px; height: 8px; border-radius: 50%; background: #3aa663;
  flex-shrink: 0;
  box-shadow: 0 0 0 3px color-mix(in oklab, #3aa663 22%, transparent);
  animation: pulse 2s infinite;
}
.member-banner b{ color: var(--ink); }
.member-banner__sign-out{
  margin-left: auto;
  font-family: var(--body); font-size: 12px; font-weight: 600;
  color: var(--muted); cursor: none;
  background: none; border: 0; padding: 4px 8px;
  text-decoration: underline; text-underline-offset: 3px;
}
.member-banner__sign-out:hover{ color: var(--crimson); }

/* ── Pin links (clickable hot-take pins on the manifesto board) ── */
.pin--link{
  display: block; text-decoration: none; color: inherit;
  transition: transform .25s cubic-bezier(.2,.7,.2,1), box-shadow .25s;
  cursor: none;
}
.pin--link:hover{
  transform: translate(-2px, -3px) rotate(0deg) !important;
  box-shadow: 12px 12px 0 color-mix(in oklab, var(--ink) 70%, transparent);
  z-index: 5;
}
.pin__read{
  display: block; margin-top: 10px;
  font-family: var(--mono); font-size: 10.5px;
  letter-spacing: .06em; text-transform: uppercase;
  color: var(--crimson); opacity: 0;
  transition: opacity .25s;
}
.pin--link:hover .pin__read{ opacity: 1; }
.pin--crimson .pin__read,
.pin--ink .pin__read{ color: var(--gold); }
.pin--gold .pin__read{ color: var(--oxblood); }

/* ── Take article page ───────────────────────────────────── */
.take-intro{
  padding: 72px 0 24px;
  border-bottom: 1px solid var(--rule);
  background:
    radial-gradient(ellipse 60% 60% at 80% 0%, color-mix(in oklab, var(--crimson) 8%, transparent), transparent 70%);
}
.take-intro__inner{
  max-width: 880px; margin: 0 auto; padding: 0 var(--gutter);
}
.take-intro__back{
  font-family: var(--mono); font-size: 11px; letter-spacing: .06em;
  color: var(--muted); text-transform: uppercase;
  display: inline-block; margin-bottom: 16px;
  transition: color .15s;
}
.take-intro__back:hover{ color: var(--crimson); }
.take-intro__title{
  font-family: var(--display); font-weight: 700;
  font-size: clamp(40px, 6vw, 80px); letter-spacing: -.035em; line-height: 1.04;
  margin: 14px 0 18px; color: var(--ink); text-wrap: balance;
}
.take-intro__deck{
  font-family: var(--display); font-style: italic; font-weight: 500;
  font-size: clamp(18px, 2vw, 24px); line-height: 1.4;
  color: var(--ink-2); max-width: 56ch; margin: 0 0 24px;
}
.take-intro__meta{
  display: flex; gap: 10px; align-items: center;
  font-family: var(--mono); font-size: 11px; letter-spacing: .06em;
  color: var(--muted); text-transform: uppercase;
  flex-wrap: wrap;
}
.take-intro__unlisted{
  padding: 3px 8px; border-radius: 4px;
  background: color-mix(in oklab, var(--ink) 8%, transparent);
  color: var(--ink-2); font-weight: 600;
}

.take-article{
  max-width: 880px; margin: 0 auto;
  padding: 64px var(--gutter);
  display: grid; grid-template-columns: 1fr 220px; gap: 56px;
  align-items: start;
}
.take-article__body p{
  font-size: 17.5px; line-height: 1.72;
  color: var(--ink); margin: 0 0 22px; max-width: 62ch;
}
.take-article__lead{
  font-size: 19px !important; line-height: 1.6 !important;
  color: var(--ink) !important;
}
.take-article__lead::first-letter{
  font-family: var(--display); font-weight: 700;
  font-size: 64px; line-height: .82;
  float: left; padding: 6px 10px 0 0;
  color: var(--crimson);
}
.take-article__body em{
  font-family: var(--display); font-style: italic; font-weight: 500;
  color: var(--crimson);
}
.take-article__cta{ margin-top: 28px; }

.take-article__aside{
  display: flex; flex-direction: column; gap: 18px;
  padding: 20px;
  background: var(--paper);
  border: 1px solid color-mix(in oklab, var(--ink) 10%, transparent);
  border-radius: 12px;
  position: sticky; top: 88px;
}
.take-aside__block .kicker{ margin-bottom: 4px; }
.take-aside__val{
  font-family: var(--display); font-weight: 700; font-size: 18px;
  letter-spacing: -.02em; color: var(--ink);
}

.take-nav{
  max-width: 880px; margin: 0 auto;
  padding: 0 var(--gutter) 48px;
  display: grid; grid-template-columns: 1fr 1fr; gap: 16px;
}
.take-nav__item{
  display: flex; flex-direction: column; gap: 4px;
  padding: 18px 22px;
  background: var(--paper);
  border: 1px solid color-mix(in oklab, var(--ink) 10%, transparent);
  border-radius: 12px;
  text-decoration: none;
  transition: border-color .15s, transform .15s, background .15s;
}
.take-nav__item:hover{
  border-color: color-mix(in oklab, var(--crimson) 35%, transparent);
  background: color-mix(in oklab, var(--crimson) 4%, var(--paper));
  transform: translateY(-2px);
}
.take-nav__item--right{ text-align: right; }
.take-nav__dir{
  font-family: var(--mono); font-size: 10.5px;
  letter-spacing: .06em; text-transform: uppercase;
  color: var(--muted);
}
.take-nav__title{
  font-family: var(--display); font-weight: 700; font-size: 15px;
  letter-spacing: -.01em; color: var(--ink); line-height: 1.25;
}

.take-cta{
  text-align: center;
  padding: 80px var(--gutter);
  background: var(--ink); color: var(--cream);
  background-image:
    radial-gradient(ellipse 60% 60% at 100% 0%, color-mix(in oklab, var(--crimson) 30%, transparent), transparent 60%);
}
.take-cta .kicker{ color: var(--gold); }
.take-cta__title{
  font-family: var(--display); font-weight: 700;
  font-size: clamp(28px, 4vw, 48px); letter-spacing: -.035em; line-height: 1.04;
  margin: 14px 0 24px; max-width: 22ch; margin-left: auto; margin-right: auto;
}

@media (max-width: 720px){
  .take-article{ grid-template-columns: 1fr; gap: 24px; }
  .take-article__aside{ position: static; }
  .take-nav{ grid-template-columns: 1fr; }
}

/* ── Calculator Suite ─────────────────────────────────── */
.suite-toc{
  margin: 24px var(--gutter) 0;
  padding: 16px;
  display: flex; gap: 8px; flex-wrap: wrap;
  background: var(--paper);
  border: 1px solid color-mix(in oklab, var(--ink) 10%, transparent);
  border-radius: 12px;
  box-shadow: var(--shadow-card);
}
.suite-toc__item{
  flex: 1 1 0; min-width: 180px;
  padding: 14px 16px;
  background: var(--cream);
  border: 1px solid color-mix(in oklab, var(--ink) 8%, transparent);
  border-radius: 8px;
  font-family: var(--body); font-weight: 600; font-size: 14px;
  color: var(--ink);
  display: flex; align-items: center; gap: 10px;
  transition: background .15s, border-color .15s, transform .15s;
}
.suite-toc__item:hover{
  background: color-mix(in oklab, var(--crimson) 6%, var(--cream));
  border-color: color-mix(in oklab, var(--crimson) 30%, transparent);
  transform: translateY(-1px);
}
.suite-toc__item b{
  font-family: var(--mono); font-size: 11px; font-weight: 700;
  color: var(--crimson); letter-spacing: .04em;
}

.suite-anchor{ scroll-margin-top: 96px; }
.suite-divider{
  display: flex; align-items: center; gap: 14px;
  margin: 56px var(--gutter) 20px;
}
.suite-divider::before, .suite-divider::after{
  content: ""; flex: 1; height: 1px;
  background: color-mix(in oklab, var(--ink) 14%, transparent);
}
.suite-divider span{
  font-family: var(--mono); font-size: 11px; font-weight: 700;
  letter-spacing: .12em; text-transform: uppercase;
  color: var(--muted);
  padding: 6px 14px;
  border: 1px solid color-mix(in oklab, var(--ink) 14%, transparent);
  border-radius: 999px;
  background: var(--paper);
}

/* Calculator card baseline (shared by all three) */
.calc-card{ /* extends .dca */ }

/* Rent vs Buy — 3-column control grid on desktop */
.rvb__controls{
  display: grid; grid-template-columns: repeat(3, 1fr); gap: 18px 24px;
  margin-bottom: 20px;
}
@media (max-width: 900px){
  .rvb__controls{ grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 560px){
  .rvb__controls{ grid-template-columns: 1fr; }
}

/* Rent vs Buy — annual breakdown table */
.rvb__table-toggle{
  font-family: var(--mono); font-size: 11px; letter-spacing: .04em;
  text-transform: uppercase; color: var(--crimson);
  background: none; border: none; cursor: none;
  padding: 0; margin: 0 0 16px;
}
.rvb__table-toggle:hover{ text-decoration: underline; }
.rvb__table-wrap{
  border: 1px solid color-mix(in oklab, var(--ink) 8%, transparent);
  border-radius: 10px; overflow: auto; max-height: 360px;
  margin-bottom: 20px;
}
.rvb__table{
  width: 100%; border-collapse: collapse;
  font-family: var(--mono); font-size: 11.5px;
  font-variant-numeric: tabular-nums;
}
.rvb__table thead{ position: sticky; top: 0; z-index: 2; }
.rvb__table th{
  background: var(--cream);
  padding: 8px 10px; text-align: right; white-space: nowrap;
  font-size: 9.5px; font-weight: 700; letter-spacing: .05em;
  text-transform: uppercase; color: var(--muted);
  border-bottom: 1px solid color-mix(in oklab, var(--ink) 12%, transparent);
}
.rvb__table th:first-child{ text-align: left; }
.rvb__th-buy{ color: var(--ink-2); }
.rvb__th-rent{ color: var(--crimson); }
.rvb__table td{
  padding: 6px 10px; text-align: right; color: var(--ink-2);
  border-bottom: 1px solid color-mix(in oklab, var(--ink) 6%, transparent);
}
.rvb__table tr:last-child td{ border-bottom: none; }
.rvb__table tr:hover td{ background: color-mix(in oklab, var(--cream) 60%, transparent); }
.rvb__td-yr{ text-align: left !important; font-weight: 700; color: var(--ink) !important; }
.rvb__pos{ color: #2a8050 !important; font-weight: 600; }
.rvb__neg{ color: var(--oxblood) !important; font-weight: 600; }

/* ── Rent vs Buy v2 — input panels ─────────────────────────── */
.rvb2__panels{ display: grid; grid-template-columns: 1fr 1fr; gap: 16px; margin-bottom: 22px; }
@media (max-width: 760px){ .rvb2__panels{ grid-template-columns: 1fr; } }
.rvb2__panel{
  border: 1px solid color-mix(in oklab, var(--ink) 12%, transparent);
  border-radius: 12px; padding: 16px 18px;
  background: color-mix(in oklab, var(--cream) 40%, transparent);
}
.rvb2__panel-title{
  display: flex; align-items: center; gap: 8px;
  font-family: var(--mono); font-size: 10.5px; font-weight: 700;
  letter-spacing: .08em; text-transform: uppercase; color: var(--muted);
  padding-bottom: 10px; margin-bottom: 12px;
  border-bottom: 1px solid color-mix(in oklab, var(--ink) 10%, transparent);
}
.rvb2__dot{ width: 7px; height: 7px; border-radius: 50%; flex-shrink: 0; }
.rvb2__grid{ display: grid; grid-template-columns: 1fr 1fr; gap: 10px 14px; }
.rvb2__field{ display: flex; flex-direction: column; gap: 4px; }
.rvb2__field-lbl{
  font-family: var(--mono); font-size: 9.5px; font-weight: 600;
  letter-spacing: .04em; text-transform: uppercase; color: var(--muted);
}
.rvb2__field input{
  width: 100%; height: 36px; padding: 6px 10px;
  border: 1px solid color-mix(in oklab, var(--ink) 14%, transparent);
  border-radius: 8px; background: var(--paper); color: var(--ink);
  font-family: var(--mono); font-size: 14px; outline: none;
  -moz-appearance: textfield;
}
.rvb2__field input::-webkit-outer-spin-button,
.rvb2__field input::-webkit-inner-spin-button{ -webkit-appearance: none; margin: 0; }
.rvb2__field input:focus{ border-color: var(--crimson); }
.rvb2__note{
  margin-top: 12px; padding: 8px 11px; border-radius: 8px;
  font-family: var(--mono); font-size: 11px; line-height: 1.45;
}
.rvb2__note--ok{ background: color-mix(in oklab, #2a8050 10%, transparent); color: #2a8050; }
.rvb2__note--warn{ background: color-mix(in oklab, var(--gold) 16%, transparent); color: var(--oxblood); }
.rvb2__hint{
  margin-top: 12px; padding: 9px 11px; border-radius: 8px;
  background: color-mix(in oklab, var(--cream) 60%, transparent);
  font-size: 12px; line-height: 1.5; color: var(--ink-2);
}

/* winner cards */
.rvb2__winners{ display: grid; grid-template-columns: 1fr 1fr; gap: 12px; margin-bottom: 22px; }
@media (max-width: 760px){ .rvb2__winners{ grid-template-columns: 1fr; } }
.rvb2__winner{
  border-radius: 12px; padding: 16px 18px;
  border: 1px solid color-mix(in oklab, var(--ink) 12%, transparent);
}
.rvb2__winner--hi{
  border-color: color-mix(in oklab, var(--crimson) 40%, transparent);
  background: color-mix(in oklab, var(--crimson) 7%, transparent);
}
.rvb2__winner-lbl{
  font-family: var(--mono); font-size: 10px; letter-spacing: .06em;
  text-transform: uppercase; color: var(--muted); margin-bottom: 6px;
}
.rvb2__winner-val{
  font-family: var(--display); font-weight: 800; font-size: 26px;
  letter-spacing: -.02em; color: var(--ink);
}
.rvb2__winner-val.pos{ color: #2a8050; }
.rvb2__winner-val.neg{ color: var(--oxblood); }

/* summary metrics */
.rvb2__summaries{ display: grid; grid-template-columns: 1fr 1fr; gap: 18px; margin-bottom: 22px; }
@media (max-width: 760px){ .rvb2__summaries{ grid-template-columns: 1fr; } }
.rvb2__sum-lbl{
  font-family: var(--mono); font-size: 10.5px; font-weight: 700;
  letter-spacing: .06em; text-transform: uppercase; margin-bottom: 8px;
}
.rvb2__metrics{ display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; }
.rvb2__metric{
  border: 1px solid color-mix(in oklab, var(--ink) 10%, transparent);
  border-radius: 8px; padding: 10px 12px; background: var(--paper);
}
.rvb2__metric-lbl{
  font-family: var(--mono); font-size: 9px; letter-spacing: .04em;
  text-transform: uppercase; color: var(--muted); margin-bottom: 3px;
}
.rvb2__metric-val{ font-family: var(--display); font-weight: 700; font-size: 17px; color: var(--ink); }
.rvb2__metric-val.neg{ color: var(--oxblood); }
.rvb2__metric-val.pos{ color: #2a8050; }

/* table actions + export */
.rvb2__table-actions{ display: flex; align-items: center; gap: 14px; flex-wrap: wrap; margin-bottom: 14px; }
.rvb2__table-actions .rvb__table-toggle{ margin: 0; }
.rvb2__export{
  display: inline-flex; align-items: center; gap: 7px;
  font-family: var(--mono); font-size: 11px; letter-spacing: .04em;
  text-transform: uppercase; font-weight: 600; color: var(--cream);
  background: var(--ink); border: none; border-radius: 8px;
  padding: 9px 14px; cursor: none;
}
.rvb2__export:hover{ background: var(--crimson); }

/* wide table — group headers, ROI colors, muted cells */
.rvb__table--wide{ min-width: 1500px; }
.rvb__grp-buy{
  color: var(--ink-2) !important;
  border-left: 2px solid color-mix(in oklab, var(--ink) 20%, transparent) !important;
}
.rvb__grp-rent{
  color: var(--crimson) !important;
  border-left: 2px solid color-mix(in oklab, var(--crimson) 30%, transparent) !important;
}
thead .rvb__grp-buy, thead .rvb__grp-rent{ text-align: center !important; }
.rvb__td-total{ font-weight: 700; color: var(--ink) !important; }
.rvb__roi-pos{ color: #2a8050 !important; font-weight: 600; }
.rvb__roi-neg{ color: var(--oxblood) !important; font-weight: 600; }
.rvb__muted{ color: color-mix(in oklab, var(--ink) 28%, transparent) !important; }
.rvb__pmi{ color: var(--oxblood) !important; }

/* ETF picker chips */
.etf__picker{
  display: flex; flex-wrap: wrap; gap: 8px;
  margin: 0 0 24px;
}
.etf__chip{
  padding: 8px 12px;
  background: var(--cream);
  border: 1px solid color-mix(in oklab, var(--ink) 10%, transparent);
  border-radius: 999px;
  display: inline-flex; align-items: center; gap: 8px;
  font-family: var(--body); font-size: 12.5px; color: var(--ink-2);
  cursor: none;
  transition: background .15s, border-color .15s, transform .15s;
}
.etf__chip:hover{
  border-color: color-mix(in oklab, var(--crimson) 28%, transparent);
  transform: translateY(-1px);
}
.etf__chip.is-on{
  background: var(--ink); color: var(--cream); border-color: var(--ink);
}
.etf__chip.is-on .etf__chip-ret{ color: var(--gold); }
.etf__chip-id{
  font-family: var(--mono); font-size: 11px; font-weight: 700;
  letter-spacing: .04em; color: var(--crimson);
}
.etf__chip.is-on .etf__chip-id{ color: var(--gold); }
.etf__chip-name{ font-weight: 500; }
.etf__chip-ret{
  font-family: var(--mono); font-size: 11px; color: var(--muted);
}

/* ETF results grid */
.etf__results{
  display: grid; grid-template-columns: repeat(2, 1fr); gap: 12px;
  margin-bottom: 20px;
}
@media (max-width: 720px){
  .etf__results{ grid-template-columns: 1fr; }
}
.etf__result{
  padding: 14px;
  background: var(--cream);
  border: 1px solid color-mix(in oklab, var(--ink) 8%, transparent);
  border-top: 3px solid var(--crimson);
  border-radius: 10px;
  display: flex; flex-direction: column; gap: 8px;
}
.etf__result-head{
  display: flex; align-items: center; gap: 10px;
}
.etf__result-id{
  font-family: var(--mono); font-size: 11px; font-weight: 700;
  letter-spacing: .04em; color: var(--crimson);
}
.etf__result-name{
  font-family: var(--display); font-weight: 700; font-size: 15px;
  letter-spacing: -.01em; color: var(--ink); flex: 1;
}
.etf__result-risk{
  font-family: var(--mono); font-size: 9.5px; font-weight: 600;
  letter-spacing: .04em; text-transform: uppercase;
  padding: 3px 7px; border-radius: 4px;
  background: color-mix(in oklab, var(--ink) 8%, transparent);
  color: var(--ink-2);
}
.etf__result-risk--low{ background: color-mix(in oklab, #3aa663 14%, transparent); color: #2a8050; }
.etf__result-risk--moderate{ background: color-mix(in oklab, var(--gold) 18%, transparent); color: var(--gold-2); }
.etf__result-risk--high{ background: color-mix(in oklab, var(--crimson) 14%, transparent); color: var(--crimson); }
.etf__result-risk--very-high{ background: color-mix(in oklab, var(--oxblood) 16%, transparent); color: var(--oxblood); }
.etf__result-risk--maximum{ background: var(--ink); color: var(--gold); }

.etf__result-bar{
  height: 6px; width: 100%;
  background: color-mix(in oklab, var(--ink) 8%, transparent);
  border-radius: 3px; overflow: hidden;
}
.etf__result-bar-fill{
  height: 100%; border-radius: 3px;
  transition: width .4s cubic-bezier(.2,.7,.2,1);
}
.etf__result-stats{
  display: flex; justify-content: space-between; align-items: baseline;
  font-family: var(--mono); font-size: 11px; color: var(--muted);
}
.etf__result-stats b{
  font-family: var(--display); font-weight: 700; font-size: 18px;
  letter-spacing: -.02em; color: var(--ink);
}

/* Thesis closing CTA */
.thesis-cta{
  text-align: center; padding: 96px var(--gutter);
  background: var(--cream);
  border-bottom: 1px solid var(--rule);
}
.thesis-cta h3{
  font-family: var(--display); font-weight: 700;
  font-size: clamp(34px, 4.4vw, 58px); letter-spacing: -.035em; line-height: 1.04;
  margin: 14px 0 16px; color: var(--ink);
}
.thesis-cta p{
  font-size: 15.5px; line-height: 1.6; color: var(--ink-2);
  max-width: 56ch; margin: 0 auto 28px;
}

@media (max-width: 960px){
  .thesis-math__grid{ grid-template-columns: 1fr; }
  .dca__controls{ grid-template-columns: 1fr; }
  .dca__stats{ grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 640px){
  .dca__scenarios{ flex-direction: column; }
  .dca__scenario{ flex: 1 1 auto; }
  .dca{ margin: 0 var(--gutter) 48px; padding: 22px; }
}

/* ── Scroll reveal ───────────────────────────────────────── */
.reveal{ opacity:0; transform:translateY(28px); transition:opacity .9s ease, transform .9s cubic-bezier(.2,.7,.2,1); }
.reveal.is-in{ opacity:1; transform:none; }

/* ── Capability cards (tech 3-up) ────────────────────────── */
.caps{
  display:grid; grid-template-columns:repeat(3,1fr); gap:20px;
  padding:80px var(--gutter); border-bottom:1px solid var(--rule);
  background:var(--ink);
}
.caps .kicker--crimson{ color:var(--gold); }
.caps .sectionhead__title{ color:var(--cream); }
.caps > div p{ color:color-mix(in oklab, var(--cream) 72%, transparent) !important; }
.cap{
  position:relative; padding:28px; border-radius:var(--radius);
  background:color-mix(in oklab, var(--cream) 6%, transparent);
  border:1px solid color-mix(in oklab, var(--cream) 14%, transparent);
  box-shadow:0 20px 50px -30px rgba(0,0,0,.6); display:flex; flex-direction:column; gap:14px; min-height:280px;
  transition:transform .3s cubic-bezier(.2,.7,.2,1), box-shadow .3s, border-color .3s;
}
.cap:hover{ transform:translateY(-3px); box-shadow:0 26px 60px -28px rgba(0,0,0,.7); border-color:color-mix(in oklab, var(--crimson) 50%, transparent); }
.cap__icon{
  width:40px; height:40px; border-radius:10px; display:flex; align-items:center; justify-content:center;
  background:linear-gradient(135deg, var(--crimson), var(--oxblood));
  color:var(--cream); font-family:var(--display); font-weight:700; font-size:18px;
  box-shadow: 0 1px 0 rgba(255,255,255,.2) inset, 0 8px 20px -10px color-mix(in oklab, var(--crimson) 80%, transparent);
}
.cap__title{
  font-family:var(--display); font-weight:700; font-size:20px; letter-spacing:-.02em;
  line-height:1.2; margin:0; color:var(--cream);
}
.cap__body{ font-size:14.5px; line-height:1.6; color:color-mix(in oklab, var(--cream) 70%, transparent); margin:0; }
.cap__link{
  margin-top:auto; font-family:var(--body); font-size:13px; font-weight:600; color:var(--gold);
  display:inline-flex; align-items:center; gap:6px;
}
.cap__link:hover{ color:var(--cream); }
.cap__link .arrow{ transition:transform .25s; }
.cap__link:hover .arrow{ transform:translateX(3px); }

/* Decorative chart card variant */
.cap--chart{ overflow:hidden; }
.cap__chart{
  position:relative; border-radius:8px;
  background:linear-gradient(180deg,
    color-mix(in oklab, var(--crimson) 8%, transparent),
    color-mix(in oklab, var(--crimson) 0%, transparent) 70%);
  border:1px solid color-mix(in oklab, var(--ink) 8%, transparent);
  padding:14px 14px 10px;
  margin: -8px -8px 4px;
}
.cap__chart-head{
  display:flex; justify-content:space-between; align-items:baseline; gap:12px;
  margin-bottom:8px;
}
.cap__chart-ticker{
  font-family:var(--mono); font-size:10.5px; letter-spacing:.04em;
  color:var(--muted);
}
.cap__chart-pct{
  font-family:var(--display); font-weight:700; font-size:20px; letter-spacing:-.02em;
  color:var(--crimson);
}
.cap__chart-svg{
  width:100%; height:auto; display:block;
}
.cap__chart-grid line{
  stroke: color-mix(in oklab, var(--ink) 12%, transparent);
  stroke-width: .7;
  stroke-dasharray: 2 4;
}
.cap__chart-foot{
  display:flex; justify-content:space-between; margin-top:6px;
  font-family:var(--mono); font-size:10px; color:var(--muted); letter-spacing:.04em;
}

/* ── Section intro: kicker + headline + lede side-by-side ─ */
.sintro{ padding:96px var(--gutter) 0; display:grid; grid-template-columns:1.4fr 1fr; gap:48px; align-items:end; }
.sintro h2{ font-family:var(--display); font-weight:700; font-size:clamp(34px,4.4vw,60px); line-height:1.04; letter-spacing:-.035em; margin:14px 0 0; }
.sintro h2 em{ font-family:var(--display-serif); font-style:italic; font-weight:500; color:var(--crimson); }
.sintro p{ font-size:15.5px; color:var(--ink-2); line-height:1.65; margin:0; max-width:48ch; }

/* ── Hero panel (tech preview card) ────────────────────── */
.badge{
  display:inline-flex; align-items:center; gap:8px;
  padding:6px 12px; border-radius:999px;
  background:color-mix(in oklab, var(--crimson) 12%, transparent);
  border:1px solid color-mix(in oklab, var(--crimson) 30%, transparent);
  font-family:var(--body); font-size:12px; font-weight:600; color:var(--crimson);
  letter-spacing:0; text-transform:none;
}
.badge__dot{
  width:6px; height:6px; border-radius:50%; background:var(--crimson);
  box-shadow:0 0 0 4px color-mix(in oklab, var(--crimson) 22%, transparent);
  animation: pulse 2s infinite;
}
@keyframes pulse{
  0%,100%{ box-shadow:0 0 0 4px color-mix(in oklab, var(--crimson) 22%, transparent); }
  50%{    box-shadow:0 0 0 8px color-mix(in oklab, var(--crimson) 0%, transparent); }
}

.panel__chrome{
  display:flex; align-items:center; gap:12px; padding-bottom:14px;
  border-bottom:1px solid color-mix(in oklab, var(--ink) 10%, transparent);
}
.panel__dots{ display:flex; gap:6px; }
.panel__dots i{
  width:10px; height:10px; border-radius:50%; background:color-mix(in oklab, var(--ink) 14%, transparent);
}
.panel__dots i:nth-child(1){ background:#ec6a5e; }
.panel__dots i:nth-child(2){ background:#f4be4f; }
.panel__dots i:nth-child(3){ background:#61c554; }
.panel__url{
  flex:1; text-align:center; font-family:var(--mono); font-size:11px; letter-spacing:.02em;
  color:var(--muted);
}
.panel__tabs{
  display:flex; gap:0; border-bottom:1px solid color-mix(in oklab, var(--ink) 10%, transparent);
  margin-top:-4px;
}
.panel__tabs span,
.panel__tabs button,
.panel__tabs a{
  padding:10px 12px; font-family:var(--body); font-size:12.5px; font-weight:500;
  color:var(--muted); position:relative; cursor:none;
  background:none; border:0;
  text-decoration:none;
  transition: color .15s;
}
.panel__tabs button:hover,
.panel__tabs a:hover{ color:var(--ink); }
.panel__tabs span.is-active,
.panel__tabs button.is-active,
.panel__tabs a.is-active{ color:var(--ink); }
.panel__tabs span.is-active::after,
.panel__tabs button.is-active::after,
.panel__tabs a.is-active::after{
  content:""; position:absolute; left:8px; right:8px; bottom:-1px; height:2px; background:var(--crimson); border-radius:1px;
}

.panel__row{
  display:flex; align-items:center; gap:12px; padding:14px 4px 6px;
}
.panel__avatar{
  width:36px; height:36px; border-radius:10px; flex-shrink:0;
  background:linear-gradient(135deg, var(--crimson), var(--oxblood));
  color:var(--cream); display:flex; align-items:center; justify-content:center;
  font-family:var(--display); font-weight:700; font-size:13px; letter-spacing:-.02em;
}
.panel__from{
  font-family:var(--body); font-size:13.5px; font-weight:600; color:var(--ink);
  white-space:nowrap; overflow:hidden; text-overflow:ellipsis;
}
.panel__time{ font-family:var(--mono); font-size:10.5px; color:var(--muted); margin-top:2px; }
.panel__pill{
  font-family:var(--mono); font-size:10px; font-weight:700; letter-spacing:.04em;
  color:var(--cream); background:var(--crimson); padding:3px 8px; border-radius:6px;
}

.panel__subject{
  padding:8px 4px 6px; font-family:var(--display); font-weight:700; font-size:18px;
  letter-spacing:-.02em; color:var(--ink); line-height:1.2;
}
.panel__preview{
  padding:0 4px 14px; font-size:13.5px; line-height:1.6; color:var(--ink-2);
}
.panel__preview em{ font-family:var(--display-serif); font-style:italic; color:var(--crimson); font-weight:500; }
.panel__chips{ display:flex; gap:8px; flex-wrap:wrap; padding:0 4px 14px; }
.panel__chips .chip{
  font-size:10px; padding:4px 10px; letter-spacing:.04em; text-transform:none;
}
.panel__cta-row{ display:flex; gap:8px; padding:0 4px; }
.panel__foot{
  display:flex; justify-content:space-between; align-items:center; gap:12px;
  margin-top:14px; padding:10px 4px 0;
  border-top:1px solid color-mix(in oklab, var(--ink) 10%, transparent);
  font-family:var(--mono); font-size:10.5px; color:var(--muted);
}
.dot{ display:inline-block; width:6px; height:6px; border-radius:50%; background:var(--muted); margin-right:6px; vertical-align:1px; }
/* Embedded newsletter (iframe) */
.nl-embed{
  margin-top: 24px;
  width: 100%;
  max-width: 720px;
  position: relative;
  border-radius: 16px;
  overflow: hidden;
  background: color-mix(in oklab, var(--cream) 6%, transparent);
  border: 1px solid color-mix(in oklab, var(--cream) 16%, transparent);
  box-shadow: 0 24px 60px -30px rgba(0,0,0,.55);
}
.nl-embed__frame{
  position: relative; width: 100%; overflow: hidden; border-radius: 16px;
}
.nl-embed__frame iframe{
  position: absolute; top: 0; left: 0; border: 0; background: transparent;
  color-scheme: light dark;
}
.nl-embed iframe{
  display: block;
  width: 100%;
  height: 760px;
  border: 0;
  background: transparent;
  color-scheme: light dark;
}
.nl-embed__fallback{
  display: block;
  padding: 12px 16px;
  background: color-mix(in oklab, var(--cream) 6%, transparent);
  border-top: 1px solid color-mix(in oklab, var(--cream) 14%, transparent);
  font-family: var(--body); font-size: 12.5px; color: var(--gold);
  text-align: center;
}
.nl-embed__fallback:hover{ color: var(--cream); }
@media (max-width: 640px){
  .letters{ padding: 44px var(--gutter); }
}

/* Contact (simple) */
.contact-simple{
  padding: 64px var(--gutter) 96px;
  display: flex; justify-content: center;
}
.contact-card{
  width: 100%; max-width: 720px;
  background: var(--paper);
  border: 1px solid color-mix(in oklab, var(--ink) 10%, transparent);
  border-radius: 16px; padding: 40px 40px 36px;
  box-shadow: var(--shadow-elev);
  position: relative; overflow: hidden;
}
.contact-card::before{
  content: ""; position: absolute; inset: 0;
  background: radial-gradient(circle at 100% 0%, color-mix(in oklab, var(--crimson) 12%, transparent), transparent 55%);
  pointer-events: none;
}
.contact-card > *{ position: relative; }
.contact-card__email{
  font-family: var(--display); font-weight: 700;
  font-size: clamp(28px, 4vw, 44px); letter-spacing: -.03em; line-height: 1.05;
  margin: 12px 0 14px; overflow-wrap: anywhere;
}
.contact-card__email a{ color: var(--ink); }
.contact-card__email a:hover{ color: var(--crimson); }
.contact-card__lede{
  font-size: 15.5px; line-height: 1.65; color: var(--ink-2);
  max-width: 58ch; margin: 0;
}
.contact-card__rules{
  margin-top: 32px; padding-top: 24px;
  border-top: 1px solid var(--rule);
}
.contact-card__rules ol{
  list-style: none; padding: 0; margin: 14px 0 0;
  display: flex; flex-direction: column; gap: 10px;
  counter-reset: rule;
}
.contact-card__rules li{
  counter-increment: rule;
  display: grid; grid-template-columns: 28px 1fr; gap: 12px;
  font-size: 14.5px; color: var(--ink-2); line-height: 1.55;
}
.contact-card__rules li::before{
  content: counter(rule, decimal-leading-zero);
  font-family: var(--mono); font-size: 10.5px; font-weight: 700;
  color: var(--crimson); padding-top: 3px; letter-spacing: .04em;
}
.contact-card__socials{
  margin-top: 28px; padding-top: 24px;
  border-top: 1px solid var(--rule);
  display: flex; gap: 10px; flex-wrap: wrap;
}

/* Stylized "compose email" preview inside the contact card */
.contact-card__compose{
  margin-top: 32px;
  background: var(--cream);
  border: 1px solid color-mix(in oklab, var(--ink) 10%, transparent);
  border-radius: 12px; overflow: hidden;
  box-shadow: 0 1px 0 rgba(255,255,255,.6) inset, 0 20px 50px -28px rgba(0,0,0,.18);
  position: relative;
  transform: rotate(-.6deg);
  transition: transform .4s cubic-bezier(.2,.7,.2,1);
}
.contact-card__compose:hover{ transform: rotate(0deg); }
.compose__chrome{
  display:flex; align-items:center; gap:12px;
  padding: 10px 14px;
  background: color-mix(in oklab, var(--ink) 4%, var(--cream));
  border-bottom: 1px solid color-mix(in oklab, var(--ink) 8%, transparent);
}
.compose__dots{ display:flex; gap:6px; }
.compose__dots i{
  width:8px; height:8px; border-radius:50%; background:color-mix(in oklab, var(--ink) 18%, transparent);
}
.compose__dots i:nth-child(1){ background:#ec6a5e; }
.compose__dots i:nth-child(2){ background:#f4be4f; }
.compose__dots i:nth-child(3){ background:#61c554; }
.compose__label{
  font-family: var(--mono); font-size: 10.5px; letter-spacing: .04em;
  color: var(--muted); flex:1; text-align:center;
}
.compose__field{
  display:grid; grid-template-columns: 64px minmax(0,1fr); gap: 12px;
  padding: 12px 18px;
  border-bottom: 1px solid color-mix(in oklab, var(--ink) 6%, transparent);
  align-items: center;
}
.compose__lbl{
  font-family: var(--mono); font-size: 10.5px; letter-spacing: .04em;
  color: var(--muted); text-transform: uppercase;
}
.compose__val{
  font-family: var(--body); font-size: 14.5px; color: var(--ink);
  min-width: 0; overflow-wrap: anywhere;
}
.compose__val b{ color: var(--crimson); font-weight: 600; }
.compose__val--muted{ color: var(--muted); }
.compose__field--subject .compose__val{
  display:inline-flex; align-items:baseline; gap:1px;
}
.compose__type{
  font-family: var(--display); font-weight: 600; font-size: 15.5px;
  letter-spacing: -.01em; color: var(--ink);
  overflow:hidden; white-space:nowrap; max-width:fit-content;
  animation: composeType 4s steps(28, end) infinite;
}
.compose__cursor{
  display:inline-block; width:2px; height:1em;
  background: var(--crimson); margin-left: 2px; transform: translateY(2px);
  animation: composeBlink 1s steps(2, end) infinite;
}
@keyframes composeBlink{ 0%{opacity:1} 50%{opacity:0} 100%{opacity:1} }
@keyframes composeType {
  0%   { max-width: 0; }
  35%  { max-width: 22ch; }
  80%  { max-width: 22ch; }
  90%  { max-width: 0; }
  100% { max-width: 0; }
}
.compose__body{
  padding: 18px;
  display:flex; flex-direction:column; gap: 8px;
}
.compose__line{
  height: 8px; border-radius: 4px;
  background: color-mix(in oklab, var(--ink) 10%, transparent);
  width: 100%;
}
.compose__line--short{ width: 70%; }
.compose__line--mid  { width: 88%; }
.compose__send{
  padding: 10px 14px 14px; display:flex; justify-content:flex-end;
  border-top: 1px solid color-mix(in oklab, var(--ink) 6%, transparent);
}
.compose__pill{
  font-family: var(--mono); font-size: 11px; letter-spacing: .04em;
  color: var(--cream); background: var(--crimson);
  padding: 6px 12px; border-radius: 999px; font-weight: 600;
}
@media (max-width: 640px){
  .contact-simple{ padding: 40px 14px 64px; }
  .contact-card{ padding: 26px 20px 24px; }
  .contact-card__email{ font-size: clamp(19px, 6vw, 28px); }
}

/* ── Misc utilities ────────────────────────────────────── */
.row{ display:flex; gap:16px; flex-wrap:wrap; align-items:center; }
.spacer{ flex:1; }
.center{ text-align:center; }
.mt-s{margin-top:12px}.mt-m{margin-top:24px}.mt-l{margin-top:48px}
.col-span-3{grid-column:span 3}.col-span-4{grid-column:span 4}.col-span-5{grid-column:span 5}
.col-span-6{grid-column:span 6}.col-span-7{grid-column:span 7}.col-span-8{grid-column:span 8}
.col-span-12{grid-column:span 12}

/* mobile fallback */
@media (max-width: 900px){
  .masthead__inner{ flex-wrap:wrap; gap:12px; padding:12px var(--gutter); }
  .masthead__left{ order:0; }
  .masthead__right{ order:1; }
  .navbar{ order:2; flex-basis:100%; overflow-x:auto; padding-bottom:6px; gap:2px; }
  .navlink{ padding:6px 10px; font-size:12.5px; }
  .hero__deck{ grid-template-columns:1fr; }
  .hero__panel{ grid-column:1; grid-row:auto; min-height:auto; }
  .hero__visual{ grid-column:1; grid-row:auto; min-height:340px; }
  .hero--centered .hero__visual{ min-height:0; }
  .hero__sub{ grid-template-columns:repeat(2,1fr); }
  .feature-grid{ grid-template-columns:repeat(2,1fr); }
  .feature-grid > *{ grid-column:span 2; }
  .pullquote{ padding:48px var(--gutter); }
  .manifesto__grid{ grid-template-columns:1fr; }
  .manifesto__no, .manifesto__body, .manifesto__aside{ grid-column:1; }
  .about-spread{ grid-template-columns:1fr; }
  .watch-grid{ grid-template-columns:repeat(2,1fr); }
  .course-grid > *{ grid-column:span 12!important; }
  .contact{ grid-template-columns:1fr; }
  .foot__top{ grid-template-columns:1fr 1fr; }
  .archive__grid{ grid-template-columns:1fr; }
  .caps{ grid-template-columns:1fr; }
  .pageintro__grid{ grid-template-columns:1fr; }
  .sintro{ grid-template-columns:1fr; }
  body{ cursor:auto; }
  .fc-cursor,.fc-cursor-dot{ display:none; }
}

/* Mobile: keep the hero CTAs above the fold (no scroll to reach them) */
@media (max-width: 640px){
  .hero--centered{ min-height:auto; padding:20px var(--gutter) 28px; }
  .hero--centered .hero__visual{ min-height:0; }
  .hero__center{ gap:15px; max-width:none; }
  .hero--centered .hero__headline{ font-size:clamp(27px, 7.6vw, 38px); }
  .hero__byline-text{ font-size:14px; }
  .hero__cta--row{ width:100%; gap:10px; }
  .hero__cta--row .btn--lg{ flex:1 1 0; justify-content:center; padding:13px 14px; font-size:13.5px; }
  /* trim the gap between the hero and the newsletter section */
  .hero--centered{ padding-bottom:18px; }
  .hero--centered + .letters{ padding-top:40px; }
}

/* ═══════════════════════════════════════════════════════════════
   MEMBERS AREA — auth nav, subscribe panel, dashboard, videos
   ═══════════════════════════════════════════════════════════════ */

/* masthead account controls */
.acctnav{ display:flex; align-items:center; gap:14px; }
.acctnav__link{
  font-family:var(--mono); font-size:12px; font-weight:600; letter-spacing:.03em;
  color:var(--ink-2); background:none; border:none; cursor:none; padding:4px 2px;
  white-space:nowrap;
}
.acctnav__link:hover{ color:var(--crimson); }
.acctnav__link--muted{ color:var(--muted); }
.acctnav__join{ font-size:12.5px; }

/* gate loading */
.mbr-loading{
  display:flex; align-items:center; justify-content:center; gap:12px;
  padding:96px var(--gutter); color:var(--muted);
  font-family:var(--mono); font-size:12px; letter-spacing:.04em;
}
.mbr-loading__spinner{
  width:16px; height:16px; border-radius:50%;
  border:2px solid color-mix(in oklab, var(--ink) 18%, transparent);
  border-top-color:var(--crimson); animation:mbrspin .7s linear infinite;
}
@keyframes mbrspin{ to{ transform:rotate(360deg); } }

/* subscribe / paywall panel */
.mbr-sub{ padding:56px var(--gutter) 96px; display:flex; justify-content:center; }
.mbr-sub__card{
  max-width:620px; width:100%; text-align:center;
  border:1px solid color-mix(in oklab, var(--ink) 12%, transparent);
  border-radius:18px; padding:44px 40px;
  background:color-mix(in oklab, var(--cream) 45%, var(--paper));
  box-shadow:var(--shadow-card, 0 24px 60px -40px rgba(0,0,0,.4));
}
.mbr-sub__price{ font-size:1.3em; font-weight:800; color:var(--crimson); letter-spacing:-.01em; }
.mbr-sub__title{
  font-family:var(--display); font-weight:800; font-size:clamp(28px,4vw,42px);
  letter-spacing:-.03em; line-height:1.05; margin:12px 0 14px; color:var(--ink);
}
.mbr-sub__lede{ font-size:15.5px; line-height:1.6; color:var(--ink-2); max-width:46ch; margin:0 auto 26px; }
.mbr-sub__list{
  list-style:none; padding:0; margin:0 auto 30px; max-width:440px;
  text-align:left; display:flex; flex-direction:column; gap:12px;
}
.mbr-sub__list li{
  position:relative; padding-left:28px; font-size:14.5px; line-height:1.5; color:var(--ink-2);
}
.mbr-sub__list li::before{
  content:'✦'; position:absolute; left:0; top:1px; color:var(--crimson); font-size:13px;
}
.mbr-sub__list b{ color:var(--ink); }
.mbr-sub__cta{ display:flex; flex-direction:column; align-items:center; gap:14px; }
.mbr-sub__signin{
  font-family:var(--mono); font-size:11.5px; letter-spacing:.03em;
  color:var(--ink-2); background:none; border:none; cursor:none;
}
.mbr-sub__signin:hover{ color:var(--crimson); text-decoration:underline; }
.mbr-sub__note{
  margin-top:22px; padding:10px 14px; border-radius:10px;
  background:color-mix(in oklab, var(--gold) 16%, transparent);
  font-family:var(--mono); font-size:11px; line-height:1.5; color:var(--oxblood);
}
.mbr-sub__note code{ background:color-mix(in oklab, var(--ink) 10%, transparent); padding:1px 5px; border-radius:4px; }

/* dashboard tiles */
.mbr-dash{
  display:grid; grid-template-columns:repeat(3,1fr); gap:18px;
  padding:8px var(--gutter) 96px; max-width:var(--max); margin:0 auto;
}
.mbr-tile{
  text-align:left; cursor:none; display:flex; flex-direction:column; gap:10px;
  padding:28px 26px; border-radius:16px;
  border:1px solid color-mix(in oklab, var(--ink) 12%, transparent);
  background:var(--paper); min-height:210px;
  transition:transform .3s cubic-bezier(.2,.7,.2,1), box-shadow .3s, border-color .3s;
}
.mbr-tile:hover{
  transform:translateY(-3px); border-color:color-mix(in oklab, var(--crimson) 40%, transparent);
  box-shadow:0 26px 60px -34px rgba(0,0,0,.4);
}
.mbr-tile--soft{ background:color-mix(in oklab, var(--cream) 50%, var(--paper)); }
.mbr-tile__kicker{
  font-family:var(--mono); font-size:10px; font-weight:700; letter-spacing:.1em;
  text-transform:uppercase; color:var(--crimson);
}
.mbr-tile__title{ font-family:var(--display); font-weight:700; font-size:22px; letter-spacing:-.02em; margin:0; color:var(--ink); }
.mbr-tile__desc{ font-size:14px; line-height:1.55; color:var(--ink-2); margin:0; flex:1; }
.mbr-tile__go{ font-family:var(--mono); font-size:12px; font-weight:600; color:var(--ink); margin-top:auto; }
.mbr-tile:hover .mbr-tile__go{ color:var(--crimson); }

/* video library */
.mbr-videos{
  display:grid; grid-template-columns:repeat(2,1fr); gap:20px;
  padding:8px var(--gutter) 96px; max-width:var(--max); margin:0 auto;
}
.mbr-video{
  text-align:left; cursor:none; display:flex; flex-direction:column;
  border-radius:14px; overflow:hidden;
  border:1px solid color-mix(in oklab, var(--ink) 12%, transparent);
  background:var(--paper);
  transition:transform .3s cubic-bezier(.2,.7,.2,1), box-shadow .3s, border-color .3s;
}
.mbr-video:hover{
  transform:translateY(-3px); border-color:color-mix(in oklab, var(--crimson) 40%, transparent);
  box-shadow:0 26px 60px -34px rgba(0,0,0,.4);
}
.mbr-video__thumb{
  position:relative; aspect-ratio:16/9;
  background:linear-gradient(135deg, var(--ink) 0%, var(--oxblood) 100%);
  display:flex; align-items:center; justify-content:center;
}
.mbr-video__play{
  width:56px; height:56px; border-radius:50%;
  background:color-mix(in oklab, var(--cream) 92%, transparent); color:var(--crimson);
  display:flex; align-items:center; justify-content:center;
  box-shadow:0 8px 24px -8px rgba(0,0,0,.5); transition:transform .3s;
}
.mbr-video:hover .mbr-video__play{ transform:scale(1.08); }
.mbr-video__dur{
  position:absolute; bottom:10px; right:10px;
  font-family:var(--mono); font-size:10.5px; font-weight:600; letter-spacing:.04em;
  color:var(--cream); background:color-mix(in oklab, var(--ink) 70%, transparent);
  padding:3px 8px; border-radius:999px;
}
.mbr-video__num{
  position:absolute; top:10px; left:12px;
  font-family:var(--display); font-weight:800; font-size:16px;
  color:color-mix(in oklab, var(--cream) 70%, transparent);
}
.mbr-video__body{ padding:18px 20px 22px; }
.mbr-video__title{ font-family:var(--display); font-weight:700; font-size:19px; letter-spacing:-.02em; margin:0 0 6px; color:var(--ink); }
.mbr-video__desc{ font-size:13.5px; line-height:1.55; color:var(--ink-2); margin:0; }

/* video modal */
.mbr-modal{
  position:fixed; inset:0; z-index:1000; display:flex; align-items:center; justify-content:center;
  padding:24px; background:color-mix(in oklab, var(--ink) 78%, transparent);
  backdrop-filter:blur(4px); animation:mbrfade .2s ease both;
}
@keyframes mbrfade{ from{ opacity:0; } to{ opacity:1; } }
.mbr-modal__box{
  position:relative; width:min(920px,100%); background:var(--paper);
  border-radius:16px; overflow:hidden; box-shadow:0 40px 100px -30px rgba(0,0,0,.7);
}
.mbr-modal__close{
  position:absolute; top:12px; right:12px; z-index:2;
  width:34px; height:34px; border-radius:50%; border:none; cursor:none;
  background:color-mix(in oklab, var(--ink) 72%, transparent); color:var(--cream);
  font-size:14px;
}
.mbr-modal__close:hover{ background:var(--crimson); }
.mbr-modal__frame{ position:relative; aspect-ratio:16/9; background:var(--ink); }
.mbr-modal__frame iframe{ position:absolute; inset:0; width:100%; height:100%; border:0; }
.mbr-modal__placeholder{
  position:absolute; inset:0; display:flex; flex-direction:column; align-items:center; justify-content:center;
  gap:8px; text-align:center; color:var(--cream); padding:24px;
}
.mbr-modal__placeholder p{ font-size:13px; color:color-mix(in oklab, var(--cream) 70%, transparent); max-width:36ch; }
.mbr-modal__placeholder code{ background:color-mix(in oklab, var(--cream) 16%, transparent); padding:1px 5px; border-radius:4px; }
.mbr-modal__meta{ padding:18px 22px 22px; }
.mbr-modal__meta h3{ font-family:var(--display); font-weight:700; font-size:20px; margin:0 0 6px; color:var(--ink); }
.mbr-modal__meta p{ font-size:14px; line-height:1.55; color:var(--ink-2); margin:0; }

@media (max-width: 760px){
  .mbr-dash{ grid-template-columns:1fr; }
  .mbr-videos{ grid-template-columns:1fr; }
}
@media (max-width: 640px){
  .acctnav{ gap:10px; }
  .mbr-sub{ padding:36px 14px 64px; }
  .mbr-sub__card{ padding:30px 22px; }
}

/* Premium page — smaller intro title + expandable widgets */
.premium-page .pageintro__title{ font-size:clamp(30px, 4vw, 46px); }
.premium-page .pageintro{ padding:44px 0 22px; }

/* Leverage chart: pull controls/chart up — less intro + back-link air */
.premium-page--chart .pageintro{ padding:28px 0 10px; }
.premium-page--chart .pageintro__title{ margin:0; }
.premium-page--chart .premium-stack{
  gap:8px;
  padding:4px var(--gutter) 48px;
}
.premium-page--chart .premium-back{ margin-bottom:0; }

.premium-stack{
  display:flex; flex-direction:column; gap:20px;
  padding:8px var(--gutter) 96px; max-width:var(--max); margin:0 auto;
}
.pw{
  border:1px solid color-mix(in oklab, var(--ink) 12%, transparent);
  border-radius:16px; overflow:hidden; background:var(--paper);
}
.pw.is-open{ border-color:color-mix(in oklab, var(--crimson) 26%, transparent); }
.pw__head{
  width:100%; text-align:left; cursor:none; background:none; border:none;
  display:flex; align-items:center; justify-content:space-between; gap:16px;
  padding:22px 26px;
}
.pw.is-open .pw__head{ border-bottom:1px solid color-mix(in oklab, var(--ink) 10%, transparent); }
.pw__head:hover .pw__title{ color:var(--crimson); }
.pw__head-text{ display:flex; flex-direction:column; gap:4px; }
.pw__kicker{
  font-family:var(--mono); font-size:10px; font-weight:700; letter-spacing:.1em;
  text-transform:uppercase; color:var(--crimson);
}
.pw__title{ font-family:var(--display); font-weight:700; font-size:22px; letter-spacing:-.02em; color:var(--ink); }
.pw__desc{ font-size:13.5px; line-height:1.5; color:var(--ink-2); max-width:60ch; }
.pw__toggle{
  flex-shrink:0; width:34px; height:34px; border-radius:50%;
  display:flex; align-items:center; justify-content:center;
  background:color-mix(in oklab, var(--ink) 6%, transparent);
  color:var(--ink); font-size:20px; font-family:var(--display); font-weight:400;
  transition:background .25s, color .25s;
}
.pw.is-open .pw__toggle{ background:var(--crimson); color:var(--cream); }
.pw__body{ padding:24px 26px 28px; }
.pw__body .dca{ margin:0; }

/* videos flush inside a widget */
.mbr-videos--flush{ padding:0; max-width:none; }

/* ── Premium module tiles ─────────────────────────────────── */
.pmods{
  display:grid; grid-template-columns:repeat(2,1fr); gap:20px;
  padding:8px var(--gutter) 96px; max-width:var(--max); margin:0 auto;
}
.pmod{
  position:relative; overflow:hidden; cursor:none; text-align:left;
  display:flex; flex-direction:column; gap:0; min-height:240px;
  padding:28px 28px 26px; border-radius:18px;
  border:1px solid color-mix(in oklab, var(--ink) 12%, transparent);
  background:var(--paper);
  transition:transform .35s cubic-bezier(.2,.7,.2,1), box-shadow .35s, border-color .35s;
}
.pmod::after{
  content:''; position:absolute; inset:0; pointer-events:none; opacity:.5;
  background:radial-gradient(120% 90% at 100% 0%, color-mix(in oklab, var(--crimson) 8%, transparent), transparent 55%);
}
.pmod--tech::after{ background:radial-gradient(120% 90% at 100% 0%, color-mix(in oklab, var(--crimson) 12%, transparent), color-mix(in oklab, var(--gold) 8%, transparent) 45%, transparent 70%); }
.pmod--zones::after{ background:radial-gradient(120% 90% at 100% 0%, color-mix(in oklab, var(--ink) 8%, transparent), transparent 55%); }
.pmod--chart::after{ background:radial-gradient(120% 90% at 100% 0%, color-mix(in oklab, var(--gold) 12%, transparent), transparent 55%); }
.pmod:hover{
  transform:translateY(-4px);
  border-color:color-mix(in oklab, var(--crimson) 42%, transparent);
  box-shadow:0 30px 70px -34px rgba(0,0,0,.45);
}
.pmod__icon{
  position:absolute; top:22px; z-index:1;
  width:46px; height:46px; border-radius:13px;
  display:flex; align-items:center; justify-content:center;
  background:linear-gradient(135deg, var(--crimson), var(--oxblood));
  color:var(--cream);
  box-shadow:0 1px 0 rgba(255,255,255,.22) inset, 0 10px 24px -10px color-mix(in oklab, var(--crimson) 80%, transparent);
}
.pmod__icon--left{ left:26px; }
.pmod__icon--right{ right:26px; }
.pmod--tech .pmod__icon{ background:linear-gradient(135deg, #e84a64, var(--gold)); }
.pmod--chart .pmod__icon{ background:linear-gradient(135deg, var(--gold), var(--oxblood)); }
.pmod--zones .pmod__icon{ background:linear-gradient(135deg, var(--ink), var(--oxblood)); }

/* label sits opposite the icon */
.pmod__label{
  font-family:var(--mono); font-size:10px; font-weight:700; letter-spacing:.14em;
  text-transform:uppercase; color:var(--crimson); position:relative; z-index:1;
  margin-bottom:auto;
}
.pmod--icon-left .pmod__label{ text-align:right; }
.pmod--icon-right .pmod__label{ text-align:left; }
/* push label clear of the icon */
.pmod--icon-left .pmod__label{ padding-left:58px; }
.pmod--icon-right .pmod__label{ padding-right:58px; }

.pmod__title{
  position:relative; z-index:1; display:block;
  font-family:var(--display); font-weight:800; line-height:.98; letter-spacing:-.03em;
  font-size:clamp(30px, 3.4vw, 40px); color:var(--ink); margin-top:18px;
}
.pmod__go{
  position:relative; z-index:1; margin-top:18px;
  font-family:var(--mono); font-size:12px; font-weight:600; color:var(--ink);
}
.pmod:hover .pmod__go{ color:var(--crimson); }
.pmod:hover .pmod__go .arrow{ display:inline-block; transform:translateX(3px); transition:transform .3s; }

/* graphic title fragments */
.pmt{ font-family:var(--display); font-weight:800; }
.pmt-serif{ font-family:var(--display-serif); font-style:italic; font-weight:500; color:var(--crimson); }
.pmt-grad{
  font-family:var(--display); font-weight:800;
  background:linear-gradient(100deg, #e84a64 0%, var(--crimson) 45%, var(--gold) 100%);
  -webkit-background-clip:text; background-clip:text; -webkit-text-fill-color:transparent; color:transparent;
}
.pmt-outline{
  font-family:var(--display); font-weight:800; font-size:1.15em;
  color:transparent; -webkit-text-stroke:1.6px var(--ink); letter-spacing:.01em;
}
.pmt-sub{
  display:block; margin-top:4px;
  font-family:var(--mono); font-size:12px; font-weight:600; letter-spacing:.16em;
  text-transform:uppercase; color:var(--muted); -webkit-text-fill-color:currentColor;
}

/* back link + coming soon */
.premium-back{
  align-self:flex-start; margin-bottom:20px; cursor:none;
  font-family:var(--mono); font-size:12px; font-weight:600; letter-spacing:.03em;
  color:var(--ink-2); background:none; border:none; display:inline-flex; align-items:center; gap:7px;
}
.premium-back:hover{ color:var(--crimson); }
.pmod__soon{
  position:relative; z-index:1; align-self:flex-start; margin-top:10px;
  display:inline-block; padding:4px 10px; border-radius:999px;
  font-family:var(--mono); font-size:10px; font-weight:700; letter-spacing:.12em; text-transform:uppercase;
  background:color-mix(in oklab, var(--ink) 8%, transparent); color:var(--ink-2);
  border:1px solid color-mix(in oklab, var(--ink) 14%, transparent);
}
.pmod--soon .pmod__go{ color:var(--muted); }
.pmod--soon:hover .pmod__go{ color:var(--crimson); }
.coming-soon{
  border:1px dashed color-mix(in oklab, var(--ink) 22%, transparent);
  border-radius:18px; padding:72px 32px; text-align:center;
  background:color-mix(in oklab, var(--cream) 45%, var(--paper));
}
.coming-soon__badge{
  display:inline-block; margin-bottom:18px; padding:6px 16px; border-radius:999px;
  font-family:var(--mono); font-size:11px; font-weight:700; letter-spacing:.12em; text-transform:uppercase;
  background:var(--crimson); color:var(--cream);
}
.coming-soon__title{ font-family:var(--display); font-weight:800; font-size:clamp(24px,3vw,34px); letter-spacing:-.02em; color:var(--ink); margin:0 0 10px; }
.coming-soon__note{ font-size:15px; color:var(--ink-2); margin:0; }

@media (max-width: 760px){
  .pmods{ grid-template-columns:1fr; }
  .premium-page--chart .pageintro{ padding:18px 0 6px; }
  .premium-page--chart .pageintro__title{ font-size:clamp(26px, 7vw, 34px); }
  .premium-page--chart .premium-stack{ padding-top:0; gap:4px; }
}

/* Leverage chart iframe embed — no inner scroll box; height set by postMessage */
.chart-embed{
  border:0;
  border-radius:0;
  overflow:visible;
  background:transparent;
  width:100%;
}
.chart-embed__frame{
  display:block;
  width:100%;
  min-height:980px;
  border:0;
  background:transparent;
  overflow:hidden;
}

@media (max-width: 640px){
  .pw__head{ padding:18px 18px; }
  .pw__body{ padding:18px 16px 22px; }
}
