/* ============================================================
   1 · CUSTOM PROPERTIES
   ============================================================ */
:root{
  --ink:#0A0A0B; --ink-2:#1A1A1D; --ink-3:#2A2A2E;
  --paper:#FFFFFF; --paper-2:#F4F4F2; --paper-3:#E8E8E4; --bone:#FAFAF8;
  --line:rgba(10,10,11,0.14); --line-soft:rgba(10,10,11,0.08); --line-dark:rgba(244,239,230,0.14);
  --muted:rgba(10,10,11,0.58); --muted-dark:rgba(244,239,230,0.62);
  --blue:#0655FF; --blue-2:#0444CC; --blue-tint:#DCE5FF; --blue-deep:#03257A;
  --signal:#B5FF3C; --rust:#C2410C;

  --font-sans:"IBM Plex Sans",ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif;
  --font-mono:"IBM Plex Mono",ui-monospace,"SF Mono",Menlo,monospace;
  --font-serif:"IBM Plex Serif","Times New Roman",serif;

  --r-sm:4px; --r:8px; --r-lg:14px; --r-xl:22px;
  --container:1320px; --gutter:32px;
  --read:46rem;           /* reading column */
  --t1:cubic-bezier(.2,.7,.2,1);
  --t2:cubic-bezier(.7,0,.3,1);
}

/* ============================================================
   2 · BASE / RESET
   ============================================================ */
*,*::before,*::after{box-sizing:border-box;}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;}
html{scroll-padding-top:96px;}
@media (prefers-reduced-motion: reduce){
  html{scroll-behavior:auto;}
  *{animation-duration:.001ms !important;animation-iteration-count:1 !important;transition-duration:.001ms !important;}
}
body{
  margin:0;font-family:var(--font-sans);font-weight:400;font-size:17px;line-height:1.5;
  color:var(--ink);background:var(--paper);-webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;font-feature-settings:"ss01","cv11";
}
img,svg{display:block;max-width:100%;}
a{color:inherit;text-decoration:none;}
button{font:inherit;color:inherit;background:none;border:0;cursor:pointer;padding:0;}
input{font:inherit;color:inherit;}
::selection{background:var(--ink);color:var(--paper);}
.mono{font-family:var(--font-mono);font-feature-settings:"tnum";}
.serif{font-family:var(--font-serif);}

.skip{position:absolute;left:-9999px;top:8px;background:var(--ink);color:var(--paper);padding:10px 14px;border-radius:var(--r);z-index:9999;}
.skip:focus{left:16px;}
:focus-visible{outline:2px solid var(--blue);outline-offset:3px;border-radius:3px;}

/* ============================================================
   3 · LAYOUT
   ============================================================ */
.wrap{max-width:var(--container);margin:0 auto;padding-left:var(--gutter);padding-right:var(--gutter);}

/* ---- buttons ---- */
.btn{display:inline-flex;align-items:center;gap:10px;height:48px;padding:0 22px;border-radius:999px;
  font-family:var(--font-sans);font-size:15px;font-weight:500;letter-spacing:-.005em;white-space:nowrap;
  transition:background .2s var(--t1),color .2s var(--t1),border-color .2s var(--t1);min-height:44px;}
.btn .arr{transition:transform .25s var(--t1);}
.btn:hover .arr{transform:translateX(4px);}
.btn-primary{background:var(--blue);color:#fff;}
.btn-primary:hover{background:var(--blue-2);}
.btn-ink{background:var(--ink);color:var(--bone);}
.btn-ink:hover{background:var(--ink-2);}
.btn-ghost{background:transparent;color:var(--ink);border:1px solid var(--line);}
.btn-ghost:hover{border-color:var(--ink);}

/* ============================================================
   4 · READING-PROGRESS BAR
   ============================================================ */
.progress{position:fixed;top:0;left:0;height:3px;width:100%;z-index:80;background:transparent;pointer-events:none;}
.progress span{display:block;height:100%;width:0;background:var(--blue);transform-origin:left;transition:width .08s linear;}

/* ============================================================
   5 · NAV  (§ canonical shell)
   ============================================================ */
.nav{position:sticky;top:0;z-index:50;background:rgba(255,255,255,.78);
  backdrop-filter:blur(12px) saturate(140%);-webkit-backdrop-filter:blur(12px) saturate(140%);
  border-bottom:1px solid var(--line-soft);}
.nav-inner{display:flex;align-items:center;justify-content:space-between;height:64px;gap:24px;}
.brand{display:inline-flex;align-items:center;gap:10px;}
.brand-logo{height:34px;width:auto;display:block;}
.nav-links{display:flex;align-items:center;gap:6px;}
.nav-link{font-size:14.5px;color:var(--ink);padding:8px 12px;border-radius:8px;display:inline-flex;align-items:center;gap:6px;
  transition:background .15s var(--t1);position:relative;}
.nav-link:hover{background:rgba(10,10,11,.06);}
.nav-link .caret{font-size:10px;opacity:.5;}
.nav-link[aria-current="page"]{color:var(--blue);}
.nav-link[aria-current="page"]::after{content:"";position:absolute;left:12px;right:12px;bottom:2px;height:2px;border-radius:2px;background:var(--blue);}
.nav-cta{display:flex;align-items:center;gap:12px;}
.nav-mono{font-family:var(--font-mono);font-size:11.5px;color:var(--muted);display:flex;align-items:center;gap:6px;}
.nav-mono .pulse{width:6px;height:6px;border-radius:50%;background:#16A34A;box-shadow:0 0 0 0 rgba(22,163,74,.6);animation:pulse 2s infinite;}
@keyframes pulse{0%{box-shadow:0 0 0 0 rgba(22,163,74,.5);}70%{box-shadow:0 0 0 8px rgba(22,163,74,0);}100%{box-shadow:0 0 0 0 rgba(22,163,74,0);}}
.nav-burger{display:none;width:40px;height:40px;border-radius:8px;border:1px solid var(--line);align-items:center;justify-content:center;}
@media (max-width:980px){.nav-links{display:none;}.nav-mono{display:none;}.nav-burger{display:inline-flex;}}

/* ============================================================
   6 · ARTICLE SHELL
   ============================================================ */
.article-top{padding:28px 0 0;}
.breadcrumb{display:flex;flex-wrap:wrap;align-items:center;gap:8px;font-family:var(--font-mono);font-size:11.5px;
  letter-spacing:.02em;color:var(--muted);}
.breadcrumb a{color:var(--muted);border-bottom:1px solid transparent;padding-bottom:1px;transition:color .15s var(--t1),border-color .15s var(--t1);}
.breadcrumb a:hover{color:var(--blue);border-color:var(--blue);}
.breadcrumb .sep{opacity:.4;}
.breadcrumb .here{color:var(--ink);}

.article-head{padding:40px 0 8px;}
.head-inner{max-width:var(--read);}
.cat-pill{display:inline-flex;align-items:center;gap:8px;font-family:var(--font-mono);font-size:11px;letter-spacing:.06em;
  text-transform:uppercase;color:var(--blue);background:var(--blue-tint);padding:6px 12px;border-radius:999px;
  transition:background .18s var(--t1);}
.cat-pill::before{content:"";width:6px;height:6px;background:var(--blue);}
.cat-pill:hover{background:#cbd9ff;}
h1.headline{font-family:var(--font-sans);font-weight:500;font-size:clamp(34px,4.7vw,60px);line-height:1.03;
  letter-spacing:-.03em;margin:22px 0 0;text-wrap:balance;}
h1.headline em{font-style:italic;font-family:var(--font-serif);font-weight:400;letter-spacing:-.015em;color:var(--blue);}
.dek{font-size:clamp(18px,1.5vw,21px);line-height:1.5;color:var(--muted);margin:24px 0 0;max-width:42rem;text-wrap:pretty;}

/* ---- byline (E-E-A-T core) ---- */
.byline{margin:32px 0 0;padding:22px 0 0;border-top:1px solid var(--line);display:flex;flex-wrap:wrap;
  align-items:center;gap:18px;justify-content:space-between;}
.byline-id{display:flex;align-items:center;gap:14px;}
.byline-avatar{width:46px;height:46px;border-radius:50%;flex-shrink:0;background:var(--ink);color:var(--bone);
  display:grid;place-items:center;font-family:var(--font-mono);font-size:14px;font-weight:500;letter-spacing:.02em;}
.byline-text{display:flex;flex-direction:column;gap:3px;}
.byline-by{font-size:15px;line-height:1.35;}
.byline-by .author{font-weight:600;color:var(--ink);border-bottom:1px solid var(--line);transition:border-color .15s var(--t1);}
.byline-by .author:hover{border-color:var(--ink);}
.byline-meta{font-family:var(--font-mono);font-size:11.5px;letter-spacing:.02em;color:var(--muted);}
.byline-meta b{color:var(--ink);font-weight:500;}

/* ---- share row ---- */
.share{display:flex;align-items:center;gap:8px;}
.share-lbl{font-family:var(--font-mono);font-size:10.5px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);margin-right:2px;}
.share-btn{width:40px;height:40px;border-radius:999px;border:1px solid var(--line);display:grid;place-items:center;
  color:var(--ink);transition:border-color .18s var(--t1),background .18s var(--t1),color .18s var(--t1);}
.share-btn:hover{border-color:var(--blue);color:var(--blue);}
.share-btn svg{width:17px;height:17px;}
.share-btn.copied{border-color:var(--blue);color:var(--blue);}
.copy-toast{font-family:var(--font-mono);font-size:11px;color:var(--blue);opacity:0;transition:opacity .2s var(--t1);}
.copy-toast.show{opacity:1;}

/* ============================================================
   7 · LEAD FIGURE — pipeline diagram
   ============================================================ */
.lead-fig{margin:44px 0 8px;}
.diagram{border:1px solid var(--line);border-radius:var(--r-lg);background:var(--bone);overflow:hidden;}
.diagram-head{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:16px 22px;border-bottom:1px solid var(--line);
  font-family:var(--font-mono);font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);}
.diagram-head .dot{display:inline-flex;gap:5px;align-items:center;}
.diagram-head .dot i{width:7px;height:7px;border-radius:50%;background:var(--blue);display:inline-block;}
.diagram-body{padding:14px;}
.diagram svg{width:100%;height:auto;}
figcaption{font-family:var(--font-mono);font-size:11.5px;letter-spacing:.01em;color:var(--muted);margin-top:14px;
  max-width:var(--read);line-height:1.5;}
figcaption b{color:var(--ink);font-weight:500;}

/* diagram element styles */
.dg-node{fill:var(--paper);stroke:var(--line);stroke-width:1.2;}
.dg-node.ink{fill:var(--ink);stroke:var(--ink);}
.dg-node.blue{fill:var(--blue);stroke:var(--blue);}
.dg-tier{font-family:var(--font-mono);font-size:9px;letter-spacing:.12em;text-transform:uppercase;}
.dg-title{font-family:var(--font-sans);font-weight:600;font-size:13px;}
.dg-sub{font-family:var(--font-mono);font-size:9.5px;letter-spacing:.01em;}
.dg-flow{fill:none;stroke:var(--line);stroke-width:1.6;}
.dg-flow.live{stroke:var(--blue);stroke-width:1.8;}
.dg-pip{font-family:var(--font-mono);font-size:9px;letter-spacing:.06em;text-transform:uppercase;}
@media (prefers-reduced-motion: no-preference){
  .anim-flow{stroke-dasharray:var(--len);stroke-dashoffset:var(--len);}
  .in .anim-flow{animation:draw 1s var(--t1) forwards;}
  .in .anim-flow.d2{animation-delay:.18s;}
  .in .anim-flow.d3{animation-delay:.5s;}
  .in .anim-flow.d4{animation-delay:.72s;}
  .in .anim-flow.d5{animation-delay:.94s;}
  @keyframes draw{to{stroke-dashoffset:0;}}
  .dg-pop{opacity:0;transform:translateY(6px);transform-box:fill-box;transform-origin:center;}
  .in .dg-pop{animation:pop .5s var(--t1) forwards;}
  .in .dg-pop.p2{animation-delay:.15s;}
  .in .dg-pop.p3{animation-delay:.45s;}
  .in .dg-pop.p4{animation-delay:.68s;}
  .in .dg-pop.p5{animation-delay:.9s;}
  .in .dg-pop.p6{animation-delay:1.1s;}
  @keyframes pop{to{opacity:1;transform:translateY(0);}}
}

/* ============================================================
   8 · BODY GRID — sticky TOC + prose
   ============================================================ */
.layout{display:grid;grid-template-columns:240px minmax(0,1fr);gap:64px;align-items:start;
  max-width:var(--container);margin:0 auto;padding:32px var(--gutter) 0;}
.toc{position:sticky;top:96px;}
.toc-mobile-toggle{display:none;}
.toc-label{font-family:var(--font-mono);font-size:10.5px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);
  margin:0 0 16px;padding-bottom:12px;border-bottom:1px solid var(--line);}
.toc ol{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:2px;counter-reset:toc;}
.toc li{counter-increment:toc;}
.toc a{display:grid;grid-template-columns:22px 1fr;gap:10px;padding:7px 0;font-size:13px;line-height:1.35;color:var(--muted);
  transition:color .15s var(--t1);align-items:start;}
.toc a::before{content:counter(toc,decimal-leading-zero);font-family:var(--font-mono);font-size:10.5px;color:var(--line);
  padding-top:1px;transition:color .15s var(--t1);}
.toc a:hover{color:var(--ink);}
.toc a.active{color:var(--blue);}
.toc a.active::before{color:var(--blue);}

/* prose column */
.prose{max-width:var(--read);}
.prose h2{font-family:var(--font-sans);font-weight:500;font-size:clamp(26px,2.6vw,36px);line-height:1.1;letter-spacing:-.025em;
  margin:64px 0 0;scroll-margin-top:96px;text-wrap:balance;}
.prose h2:first-of-type{margin-top:8px;}
.prose h3{font-family:var(--font-sans);font-weight:600;font-size:20px;line-height:1.25;letter-spacing:-.012em;margin:40px 0 0;
  scroll-margin-top:96px;}
.prose h3 .th{font-family:var(--font-mono);font-size:11px;font-weight:500;letter-spacing:.06em;color:var(--blue);
  display:block;margin-bottom:6px;text-transform:uppercase;}
.prose p{margin:18px 0 0;line-height:1.62;color:rgba(10,10,11,.82);}
.prose p.first{margin-top:24px;}
.prose strong{font-weight:600;color:var(--ink);}
.prose a.xlink{color:var(--blue);border-bottom:1px solid rgba(6,85,255,.32);padding-bottom:1px;
  transition:border-color .15s var(--t1);}
.prose a.xlink:hover{border-color:var(--blue);}

/* prose lists */
.prose ol.named,.prose ul.named{margin:24px 0 0;padding:0;list-style:none;display:flex;flex-direction:column;gap:2px;
  counter-reset:fm;border-top:1px solid var(--line);}
.prose ol.named li,.prose ul.named li{counter-increment:fm;padding:20px 0;border-bottom:1px solid var(--line);
  display:grid;grid-template-columns:34px 1fr;gap:18px;line-height:1.6;color:rgba(10,10,11,.82);}
.prose ol.named li::before{content:counter(fm,decimal-leading-zero);font-family:var(--font-mono);font-size:12px;color:var(--blue);
  padding-top:3px;font-weight:500;}
.prose ul.named li::before{content:"";width:9px;height:9px;margin-top:9px;background:var(--blue);}
.prose .named li b,.prose .named li strong{color:var(--ink);font-weight:600;}

/* pull-quote (breakout) */
.pullquote{margin:48px 0 8px;padding:0;border:0;}
.pullquote blockquote{margin:0;font-family:var(--font-serif);font-style:italic;font-weight:400;
  font-size:clamp(22px,2.4vw,30px);line-height:1.32;letter-spacing:-.01em;color:var(--ink);}
.pullquote .mark{display:block;width:34px;height:4px;background:var(--blue);margin-bottom:22px;}

/* callouts */
.callout{margin:40px 0 8px;border:1px solid var(--line);border-radius:var(--r-lg);background:var(--paper);overflow:hidden;}
.callout-head{display:flex;align-items:center;gap:10px;padding:14px 24px;background:var(--ink);color:var(--bone);
  font-family:var(--font-mono);font-size:11px;letter-spacing:.08em;text-transform:uppercase;}
.callout-head .sq{width:8px;height:8px;background:var(--signal);}
.callout-body{padding:22px 24px;font-size:15.5px;line-height:1.6;color:rgba(10,10,11,.82);}
.callout-body strong{color:var(--ink);font-weight:600;}

/* code block */
.code{margin:32px 0 8px;border:1px solid var(--ink-3);border-radius:var(--r-lg);background:var(--ink);overflow:hidden;}
.code-cap{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 18px;border-bottom:1px solid var(--ink-3);
  font-family:var(--font-mono);font-size:11px;letter-spacing:.04em;color:var(--muted-dark);}
.code-cap .lights{display:inline-flex;gap:6px;}
.code-cap .lights i{width:9px;height:9px;border-radius:50%;background:var(--ink-3);display:inline-block;}
.code pre{margin:0;padding:20px 22px;overflow-x:auto;}
.code code{font-family:var(--font-mono);font-size:13px;line-height:1.65;color:#E8E8E4;white-space:pre;display:block;
  -webkit-font-smoothing:auto;}
.code .c-key{color:#7AA0FF;}
.code .c-fn{color:var(--signal);}
.code .c-str{color:#E2B36B;}
.code .c-com{color:rgba(244,239,230,.45);font-style:italic;}
.code .c-num{color:#E2B36B;}

/* comparison table */
.table-wrap{margin:32px 0 8px;border:1px solid var(--line);border-radius:var(--r-lg);overflow:hidden;}
table.cmp{width:100%;border-collapse:collapse;font-size:14.5px;}
table.cmp caption{text-align:left;font-family:var(--font-mono);font-size:11px;letter-spacing:.06em;text-transform:uppercase;
  color:var(--muted);padding:16px 22px;border-bottom:1px solid var(--line);background:var(--bone);}
table.cmp th,table.cmp td{text-align:left;padding:16px 22px;border-bottom:1px solid var(--line);vertical-align:middle;}
table.cmp thead th{font-family:var(--font-mono);font-size:11px;letter-spacing:.04em;text-transform:uppercase;color:var(--muted);
  font-weight:500;background:var(--paper);}
table.cmp tbody td:first-child{font-weight:500;color:var(--ink);max-width:280px;}
table.cmp tbody tr:last-child td{border-bottom:0;}
table.cmp tbody tr:last-child{background:rgba(6,85,255,.04);}
table.cmp .acc{font-family:var(--font-mono);font-weight:500;color:var(--ink);white-space:nowrap;}
table.cmp tbody tr:last-child .acc{color:var(--blue);}
table.cmp .lat{font-family:var(--font-mono);color:var(--muted);}
table.cmp .meter{display:block;height:5px;border-radius:3px;background:var(--paper-3);margin-top:8px;overflow:hidden;max-width:160px;}
table.cmp .meter i{display:block;height:100%;background:var(--ink);border-radius:3px;}
table.cmp tbody tr:last-child .meter i{background:var(--blue);}

/* mid CTA band (soft) */
.mid-cta{margin:48px 0 8px;border-radius:var(--r-lg);overflow:hidden;background:var(--ink);color:var(--bone);
  position:relative;padding:30px 34px;}
.mid-cta::before{content:"";position:absolute;inset:0;background-image:
  linear-gradient(rgba(244,239,230,.05) 1px,transparent 1px),
  linear-gradient(90deg,rgba(244,239,230,.05) 1px,transparent 1px);background-size:40px 40px;
  -webkit-mask-image:linear-gradient(180deg,black,transparent 80%);mask-image:linear-gradient(180deg,black,transparent 80%);}
.mid-cta-inner{position:relative;display:flex;align-items:center;gap:24px;flex-wrap:wrap;justify-content:space-between;}
.mid-cta-ey{font-family:var(--font-mono);font-size:10.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--signal);
  display:flex;align-items:center;gap:8px;margin-bottom:12px;}
.mid-cta-ey .sq{width:8px;height:8px;background:var(--signal);}
.mid-cta p{margin:0;font-size:16px;line-height:1.55;color:var(--bone);max-width:46rem;}
.mid-cta p .xlink{color:#9DB8FF;border-bottom:1px solid rgba(157,184,255,.4);}
.mid-cta p .xlink:hover{border-color:#9DB8FF;}

/* ============================================================
   9 · WIDE SECTIONS (below article)
   ============================================================ */
.band{padding:90px 0;}
.band-bone{background:var(--bone);border-top:1px solid var(--line);}
.section-eyebrow{font-family:var(--font-mono);font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);
  display:flex;align-items:center;gap:14px;margin-bottom:28px;}
.section-eyebrow .rule{flex:1;height:1px;background:var(--line);}

/* takeaways */
.takeaways{max-width:var(--container);margin:64px auto 0;padding:0 var(--gutter);}
.tk-card{border:1px solid var(--line);border-radius:var(--r-lg);background:var(--bone);overflow:hidden;}
.tk-head{display:flex;align-items:baseline;justify-content:space-between;gap:16px;padding:22px 28px;border-bottom:1px solid var(--line);}
.tk-head h2{margin:0;font-size:20px;font-weight:600;letter-spacing:-.01em;}
.tk-head .tl{font-family:var(--font-mono);font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--blue);}
.tk-list{list-style:none;margin:0;padding:8px 28px 16px;counter-reset:tk;}
.tk-list li{counter-increment:tk;display:grid;grid-template-columns:30px 1fr;gap:18px;padding:18px 0;
  border-bottom:1px solid var(--line);line-height:1.55;color:rgba(10,10,11,.84);}
.tk-list li:last-child{border-bottom:0;}
.tk-list li::before{content:counter(tk,decimal-leading-zero);font-family:var(--font-mono);font-size:12px;color:var(--blue);
  font-weight:500;padding-top:2px;}
.tk-list li b{color:var(--ink);font-weight:600;}

/* FAQ */
.faq-wrap{display:grid;grid-template-columns:.7fr 1.5fr;gap:56px;align-items:start;}
.faq-list{border-top:1px solid var(--line);}
.faq-item{border-bottom:1px solid var(--line);}
.faq-q{width:100%;display:grid;grid-template-columns:1fr 32px;gap:16px;align-items:start;padding:24px 0;text-align:left;cursor:pointer;}
.faq-q .qt{font-size:18px;font-weight:500;letter-spacing:-.012em;line-height:1.35;}
.faq-q .ic{position:relative;width:28px;height:28px;border-radius:50%;border:1px solid var(--line);display:grid;place-items:center;
  transition:background .25s var(--t1),border-color .25s var(--t1);align-self:start;}
.faq-q .ic::before,.faq-q .ic::after{content:"";position:absolute;background:var(--ink);transition:transform .3s var(--t1),background .2s var(--t1);}
.faq-q .ic::before{width:10px;height:1.5px;}
.faq-q .ic::after{width:1.5px;height:10px;}
.faq-item[aria-expanded="true"] .faq-q .ic{background:var(--ink);border-color:var(--ink);}
.faq-item[aria-expanded="true"] .faq-q .ic::before,.faq-item[aria-expanded="true"] .faq-q .ic::after{background:var(--bone);}
.faq-item[aria-expanded="true"] .faq-q .ic::after{transform:scaleY(0);}
.faq-a{display:grid;grid-template-rows:0fr;transition:grid-template-rows .35s var(--t1);}
.faq-a>div{overflow:hidden;}
.faq-item[aria-expanded="true"] .faq-a{grid-template-rows:1fr;}
.faq-a .inner{padding:0 0 26px;font-size:15.5px;line-height:1.62;color:var(--muted);max-width:42rem;}
.faq-side h2{font-family:var(--font-sans);font-weight:500;font-size:clamp(28px,3vw,40px);line-height:1.05;letter-spacing:-.025em;margin:0;}
.faq-side h2 em{font-style:italic;font-family:var(--font-serif);font-weight:400;}

/* author bio */
.bio-card{display:grid;grid-template-columns:120px 1fr;gap:32px;align-items:start;border:1px solid var(--line);
  border-radius:var(--r-lg);background:var(--paper);padding:36px;}
.bio-portrait{width:120px;height:120px;border-radius:var(--r-lg);overflow:hidden;background:var(--ink);color:var(--bone);
  display:grid;place-items:center;position:relative;}
.bio-portrait img{width:100%;height:100%;object-fit:cover;}
.bio-portrait .ph{font-family:var(--font-mono);font-size:30px;letter-spacing:.04em;}
.bio-body .role{font-family:var(--font-mono);font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--blue);}
.bio-body h3{font-size:22px;font-weight:600;letter-spacing:-.015em;margin:8px 0 0;}
.bio-body p{margin:14px 0 0;font-size:15.5px;line-height:1.62;color:rgba(10,10,11,.82);max-width:48rem;}
.bio-body p a{color:var(--blue);border-bottom:1px solid rgba(6,85,255,.32);}
.bio-body p a:hover{border-color:var(--blue);}

/* trust bar */
.trust-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:0;border:1px solid var(--line);border-radius:var(--r-lg);
  overflow:hidden;background:var(--paper);}
.trust-cell{padding:26px 22px;border-right:1px solid var(--line);display:flex;flex-direction:column;gap:12px;
  min-height:148px;transition:background .18s var(--t1);}
.trust-cell:last-child{border-right:0;}
.trust-cell:hover{background:var(--bone);}
.trust-cell .ix{font-family:var(--font-mono);font-size:10px;letter-spacing:.06em;color:var(--line);}
.trust-cell .badge-img{height:40px;display:flex;align-items:center;}
.trust-cell .badge-img img{max-height:40px;width:auto;object-fit:contain;}
.trust-cell .tnum{font-family:var(--font-serif);font-style:italic;font-size:34px;line-height:1;color:var(--ink);}
.trust-cell .tnum .plus{color:var(--blue);font-style:normal;font-size:.7em;}
.trust-cell .tlabel{font-family:var(--font-mono);font-size:11px;line-height:1.4;color:var(--muted);margin-top:auto;}
@media (max-width:980px){.trust-grid{grid-template-columns:repeat(2,1fr);}
  .trust-cell{border-right:1px solid var(--line);border-bottom:1px solid var(--line);}
  .trust-cell:nth-child(2n){border-right:0;}}
@media (max-width:520px){.trust-grid{grid-template-columns:1fr;}
  .trust-cell{border-right:0;}}

/* related posts */
.rel-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;}
.rel-card{display:flex;flex-direction:column;gap:16px;border:1px solid var(--line);border-radius:var(--r-lg);background:var(--paper);
  padding:28px;min-height:200px;transition:background .18s var(--t1),border-color .18s var(--t1),transform .25s var(--t1);}
.rel-card:hover{background:var(--bone);border-color:var(--ink);transform:translateY(-3px);}
.rel-pill{font-family:var(--font-mono);font-size:10px;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);
  display:inline-flex;align-items:center;gap:7px;}
.rel-pill::before{content:"";width:6px;height:6px;background:var(--blue);}
.rel-card h3{font-size:18px;font-weight:500;letter-spacing:-.012em;line-height:1.3;margin:0;color:var(--ink);}
.rel-foot{margin-top:auto;display:flex;align-items:center;justify-content:space-between;font-family:var(--font-mono);
  font-size:11px;color:var(--muted);}
.rel-foot .arr{color:var(--blue);transition:transform .25s var(--t1);}
.rel-card:hover .arr{transform:translateX(4px);}
@media (max-width:860px){.rel-grid{grid-template-columns:1fr;}}

/* conversion CTA band (dark, atmospheric blue) */
.conv{position:relative;overflow:hidden;color:#fff;
  background:
    radial-gradient(60% 100% at 100% 0%,rgba(122,160,255,.30),transparent 60%),
    radial-gradient(70% 90% at 0% 100%,rgba(2,30,120,.55),transparent 60%),
    linear-gradient(135deg,#0858FF 0%,#0540D6 50%,#0432A8 100%);}
.conv::before{content:"";position:absolute;inset:0;pointer-events:none;background-image:
  linear-gradient(rgba(255,255,255,.06) 1px,transparent 1px),
  linear-gradient(90deg,rgba(255,255,255,.06) 1px,transparent 1px);background-size:56px 56px;
  -webkit-mask-image:radial-gradient(80% 80% at 50% 40%,black,transparent 80%);
  mask-image:radial-gradient(80% 80% at 50% 40%,black,transparent 80%);}
.conv::after{content:"";position:absolute;top:-60%;left:50%;width:130%;height:220%;transform:translateX(-50%);
  border-radius:50%;border:1px solid rgba(255,255,255,.10);box-shadow:0 0 0 80px rgba(255,255,255,.04);pointer-events:none;}
.conv .wrap{position:relative;padding:96px 32px;max-width:980px;text-align:center;}
.conv .sig{display:inline-flex;align-items:center;gap:8px;font-family:var(--font-mono);font-size:11px;letter-spacing:.1em;
  text-transform:uppercase;color:rgba(255,255,255,.78);margin-bottom:22px;}
.conv .sig i{width:7px;height:7px;border-radius:50%;background:var(--signal);box-shadow:0 0 0 0 rgba(181,255,60,.6);animation:pulse-sig 2s infinite;}
@keyframes pulse-sig{0%{box-shadow:0 0 0 0 rgba(181,255,60,.5);}70%{box-shadow:0 0 0 10px rgba(181,255,60,0);}100%{box-shadow:0 0 0 0 rgba(181,255,60,0);}}
.conv h2{font-family:var(--font-sans);font-weight:500;font-size:clamp(36px,5vw,64px);line-height:1.0;letter-spacing:-.03em;margin:0;}
.conv p{font-size:clamp(16px,1.5vw,19px);line-height:1.55;color:rgba(255,255,255,.85);max-width:40rem;margin:22px auto 0;}
.conv-cta{display:flex;align-items:center;justify-content:center;gap:22px;flex-wrap:wrap;margin-top:36px;}
.conv .btn-white{background:#fff;color:var(--blue);}
.conv .btn-white:hover{background:var(--ink);color:#fff;}
.conv .txt-link{color:#fff;font-size:15px;font-weight:500;display:inline-flex;align-items:center;gap:8px;
  border-bottom:1px solid rgba(255,255,255,.4);padding-bottom:3px;transition:border-color .15s var(--t1);}
.conv .txt-link:hover{border-color:#fff;}
.conv .txt-link .arr{transition:transform .25s var(--t1);}
.conv .txt-link:hover .arr{transform:translateX(4px);}

/* newsletter */
.news{border-top:1px solid var(--line);background:var(--paper);}
.news .wrap{padding:48px 32px;display:flex;align-items:center;gap:40px;flex-wrap:wrap;justify-content:space-between;}
.news-copy{max-width:34rem;}
.news-copy .ey{font-family:var(--font-mono);font-size:10.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--blue);}
.news-copy h3{font-size:21px;font-weight:500;letter-spacing:-.015em;margin:8px 0 0;}
.news-form{display:flex;flex-direction:column;gap:10px;min-width:min(420px,100%);flex:1;}
.news-row{display:flex;gap:8px;}
.news-row input{flex:1;height:48px;padding:0 16px;border:1px solid var(--line);border-radius:999px;background:var(--bone);
  font-size:14.5px;min-width:0;transition:border-color .15s var(--t1),background .15s var(--t1);}
.news-row input:focus{outline:none;border-color:var(--blue);background:var(--paper);}
.news-consent{font-family:var(--font-mono);font-size:10.5px;line-height:1.5;color:var(--muted);letter-spacing:.01em;}
.news-consent a{color:var(--blue);border-bottom:1px solid rgba(6,85,255,.3);}

/* ============================================================
   10 · FOOTER (§ canonical shell)
   ============================================================ */
.footer{background:var(--ink);color:var(--bone);padding:80px 0 32px;}
.footer-top{display:grid;grid-template-columns:1.5fr 1fr 1fr 1fr;gap:48px;padding-bottom:48px;border-bottom:1px solid var(--line-dark);}
.footer-brand .brand-logo{height:52px;filter:brightness(0) invert(1);opacity:.95;}
.footer-brand .desc{color:var(--muted-dark);font-size:14px;line-height:1.55;margin:18px 0 22px;max-width:360px;}
.footer-creds{display:flex;flex-wrap:wrap;gap:8px;}
.footer-creds .cred{font-family:var(--font-mono);font-size:10px;letter-spacing:.03em;color:var(--muted-dark);
  border:1px solid var(--line-dark);border-radius:999px;padding:5px 11px;}
.footer-creds .cred.iso{color:var(--bone);border-color:rgba(244,239,230,.3);}
.footer-col h4{font-family:var(--font-mono);font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted-dark);
  margin:0 0 18px;font-weight:500;}
.footer-col ul{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:12px;}
.footer-col a{color:var(--bone);font-size:14px;transition:color .15s var(--t1);}
.footer-col a:hover{color:#7AA0FF;}
.footer-bot{display:flex;justify-content:space-between;align-items:center;padding-top:28px;flex-wrap:wrap;gap:16px;
  font-family:var(--font-mono);font-size:11px;color:var(--muted-dark);letter-spacing:.04em;}
.footer-bot .legal{display:flex;gap:24px;}
.footer-bot a:hover{color:var(--bone);}
.social-row{display:flex;gap:10px;}
.social-row a{width:34px;height:34px;border-radius:999px;border:1px solid var(--line-dark);display:grid;place-items:center;
  transition:border-color .18s var(--t1),background .18s var(--t1);}
.social-row a:hover{border-color:rgba(244,239,230,.4);background:var(--ink-2);}
.social-row img{width:16px;height:16px;filter:brightness(0) invert(1);opacity:.85;}
@media (max-width:980px){.footer-top{grid-template-columns:1fr 1fr;}}
@media (max-width:540px){.footer-top{grid-template-columns:1fr;}}

/* ============================================================
   11 · MOTION / REVEAL
   ============================================================ */
.fade-up{opacity:0;transform:translateY(18px);transition:opacity .7s var(--t1),transform .7s var(--t1);}
.fade-up.in{opacity:1;transform:translateY(0);}

/* ============================================================
   12 · RESPONSIVE
   ============================================================ */
@media (max-width:1080px){
  .layout{grid-template-columns:1fr;gap:0;}
  .toc{position:static;top:auto;margin:0 0 8px;border:1px solid var(--line);border-radius:var(--r-lg);background:var(--bone);}
  .toc-inner{display:none;padding:0 20px 16px;}
  .toc.open .toc-inner{display:block;}
  .toc-label{display:none;}
  .toc-mobile-toggle{display:flex;align-items:center;justify-content:space-between;width:100%;padding:16px 20px;
    font-family:var(--font-mono);font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--ink);}
  .toc-mobile-toggle .chev{transition:transform .25s var(--t1);}
  .toc.open .toc-mobile-toggle .chev{transform:rotate(180deg);}
  .faq-wrap{grid-template-columns:1fr;gap:28px;}
}
@media (max-width:640px){
  :root{--gutter:20px;}
  .byline{flex-direction:column;align-items:flex-start;gap:20px;}
  .bio-card{grid-template-columns:1fr;gap:20px;}
  .bio-portrait{width:84px;height:84px;}
  .band{padding:64px 0;}
  .conv .wrap{padding:72px 20px;}
  table.cmp .meter{display:none;}
  table.cmp th:nth-child(3),table.cmp td:nth-child(3){display:none;}
}