/* ============================================================
   SURE: research section (Papers / Process / Data set)
   Ported 1:1 from sureapp.ai/research (css/research.css + the
   research-facing parts of css/base.css). Layout, spacing and type
   metrics are the originals; colours and typefaces resolve to the
   shared design-system tokens in sure-shared.css via the --rx-* map
   below, so the whole section can be re-skinned in one place.
   Scoped under .rx so nothing here collides with sure-shared.css.
   ============================================================ */
.rx{
  --rx-sheet:var(--page);
  --rx-surface:#ffffff;
  --rx-sunk:var(--surface);
  --rx-ink:var(--ink);
  --rx-ink-soft:var(--ink-3);
  --rx-muted:var(--muted);
  --rx-line:var(--line);
  --rx-line-2:#cbd5e1;
  --rx-dark:var(--dark);
  --rx-dark-line:rgba(255,255,255,.12);
  --rx-dark-muted:rgba(255,251,240,.5);
  --rx-dark-body:rgba(255,251,240,.7);
  --rx-accent:var(--gold-label);
  --rx-accent-tint:var(--gold);
  --rx-accent-wash:var(--cream);
  --rx-mono:ui-monospace,"SF Mono",Menlo,monospace;
  --rx-radius:26px;
  --rx-shadow:0 1px 1px rgba(15,23,42,.04),0 4px 10px -5px rgba(15,23,42,.07),0 16px 40px -22px rgba(15,23,42,.22);
  --rx-shadow-lg:0 2px 4px rgba(15,23,42,.05),0 14px 28px -14px rgba(15,23,42,.13),0 40px 80px -30px rgba(15,23,42,.30);
  --rx-ease-out:cubic-bezier(.23,1,.32,1);
  --rx-gap-grid:clamp(16px,1.7vw,22px);
  /* Floating chrome, expressed in the pill tokens set on :root below:
     12 + 56 primary pill, then 8 + 48 research pill stacked under it. */
  --rx-nav-h:calc(var(--nav-top) + var(--nav-pill));
  --rx-subnav-h:calc(var(--nav-gap) + var(--subnav-pill));
  background:var(--rx-sheet);color:var(--rx-ink);line-height:1.62;
  /* The nav is fixed and takes no flow space, so the document starts where
     the research pill docks, which parks the sub-nav at its own sticky
     offset from the first frame and keeps the two pills from ever jumping. */
  padding-top:calc(var(--nav-top) + var(--nav-pill) + var(--nav-gap));
}
.rx h1,.rx h2,.rx h3,.rx h4{font-family:var(--serif);font-weight:600;line-height:1.12;color:var(--rx-ink);text-wrap:balance;margin:0;letter-spacing:-0.01em;}
.rx p{margin:0 0 1.05em;}
.rx a{color:var(--rx-ink);text-underline-offset:3px;}
.rx strong{font-weight:600;color:var(--rx-ink);}
.rx .sronly{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0;}
.rx table.sronly{table-layout:fixed;max-width:1px;min-width:0;}
.rx table.sronly caption,.rx table.sronly th,.rx table.sronly td{max-width:1px;overflow:hidden;}
/* A <caption> resolves the static position of an absolutely positioned box
   outside the table's flow, so the .sronly caption on Table 1 landed ~1000px
   below the end of the document and gave <html> a second scrollbar of its own:
   a white band under the footer, with the sticky research pill dragged off the
   top as the whole body scrolled away. Hide the caption in flow instead. */
.rx caption.sronly{position:static;clip:auto;clip-path:inset(50%);}
.rx :focus-visible{outline:2px solid var(--rx-accent);outline-offset:2px;border-radius:6px;}
/* anchored targets clear both sticky bars */
.rx [id]{scroll-margin-top:calc(var(--rx-nav-h) + var(--rx-subnav-h) + 12px);}

/* ---------- bands (document rhythm, not landing-page rhythm) ---------- */
.rx .band{background:transparent;padding:clamp(38px,4.6vw,60px) 0;}
.rx .band + .band{padding-top:0;}
.rx header.band{padding-top:clamp(30px,3.6vw,48px);}
.rx .narrow{max-width:720px;margin-left:auto;margin-right:auto;}
.rx .narrowcol{max-width:664px;margin-left:auto;margin-right:auto;}
.rx .seclabel{font-size:11.5px;font-weight:600;letter-spacing:.16em;text-transform:uppercase;color:var(--rx-accent);margin:0 0 16px;}
.rx h2.h{font-size:clamp(1.85rem,4vw,2.8rem);letter-spacing:-.02em;margin:0 0 .5em;}
.rx .lede{font-size:1.12rem;color:var(--rx-muted);max-width:58ch;line-height:1.55;}
.rx .grid{display:grid;gap:var(--rx-gap-grid);}
.rx .grid.c2{grid-template-columns:1fr 1fr;}
@media(max-width:600px){.rx .grid.c2{grid-template-columns:1fr;}}
.rx .chips{display:flex;flex-wrap:wrap;gap:7px;margin:0;}
.rx .anchor{color:var(--rx-line-2);text-decoration:none;font-size:.75em;margin-left:.5em;opacity:0;transition:opacity .15s;}
.rx h2:hover .anchor,.rx h3:hover .anchor,.rx .anchor:focus{opacity:1;color:var(--rx-accent);}

/* ============ FLOATING PILL NAV ============
   Same chrome as the homepage / pricing / who-it's-for pages: the fixed
   header strip is transparent and click-through, and .nav__inner is the
   pill itself. The base dark 93px bar lives in sure-shared.css; this file
   is linked after it, so everything here wins on load order. One
   deliberate difference from the homepage: Request Access never collapses
   here, because the research views have no hero CTA to hand off to. */
:root{
  --nav-top:12px;        /* pill offset from the viewport top */
  --nav-pill:56px;       /* primary pill height              */
  --nav-gap:8px;         /* air between the two pills        */
  --subnav-pill:48px;    /* research pill height             */
  --nav-inset:clamp(12px,3vw,22px);  /* strip padding, shared by both */
  --pill-face:rgba(255,252,244,.86);
  --pill-line:1px solid rgba(29,29,31,.08);
  --pill-blur:saturate(180%) blur(20px);
  --pill-sh:0 16px 40px rgba(22,22,23,.10),0 2px 8px rgba(22,22,23,.05);
  --pill-sh-sub:0 10px 26px rgba(22,22,23,.08),0 1px 4px rgba(22,22,23,.05);
  --pill-ease:cubic-bezier(.4,0,.6,1);
}
.nav{position:fixed;top:0;left:0;right:0;height:auto;background:transparent;
  padding:var(--nav-top) var(--nav-inset) 0;pointer-events:none;}
.nav__inner{pointer-events:auto;height:var(--nav-pill);padding:0 12px 0 24px;
  background:var(--pill-face);
  -webkit-backdrop-filter:var(--pill-blur);backdrop-filter:var(--pill-blur);
  border:var(--pill-line);border-radius:980px;box-shadow:var(--pill-sh);}
.nav .logo-mark{height:22px;}
/* Light chrome: dark links and dark logo on the warm pill. */
.nav .logo-mark path{fill:#161617;}
.nav__links a{color:rgba(29,29,31,.72);transition:color .3s var(--pill-ease);}
.nav__links a:hover,.nav__links a.is-active{color:#1d1d1f;}
.nav__burger span{background:#1d1d1f;}
/* Very narrow phones (≤360px): tighten the pill so logo, Request Access and
   the burger all fit inside the viewport without the burger spilling out. */
@media (max-width:360px){
  .nav .nav__inner{gap:10px;padding:0 8px 0 16px;}
  .nav .logo-mark{height:19px;}
  .nav .nav__cta{gap:12px;}
  .nav .nav__cta .btn--sm{padding:0 12px;font-size:12px;}
  .nav .nav__burger{width:30px;}
}
.nav .btn--sm{height:32px;border-radius:980px;padding:0 16px;font-size:13px;}
/* Research pages are the one place the nav CTA is black instead of gold. */
.nav .btn--gold{background:var(--dark);color:var(--warm-white);border-color:var(--dark);}
.nav .btn--gold:hover{background:#2c2c2e;border-color:#2c2c2e;}
@media (max-width:900px){
  /* backdrop-filter turns the pill into the containing block for fixed
     descendants, which would trap the full-screen overlay menu inside it, so
     drop the blur here and lean on a near-opaque fill instead. */
  .nav__inner{-webkit-backdrop-filter:none;backdrop-filter:none;background:rgba(255,252,244,.97);}
  /* The overlay sheet is still dark, so restore the light link colours the
     base file sets; the rules above would otherwise beat them on order. */
  .nav__links a{color:var(--warm-white);}
  .nav__links a:hover{color:var(--warm-white);}
  .nav__links a.is-active{color:var(--gold);}
  .nav__toggle:checked ~ .nav__burger span{background:var(--warm-white);}
}

/* ============ RESEARCH SUB-NAV ============
   The second pill. Same face, blur, radius and 966px column as the nav
   pill above it, one size down and on a softer shadow so the hierarchy
   reads. .subnav is only the sticky carrier; the .wrap inside it is the
   pill, which keeps it on the exact horizontal rhythm as .nav__inner. */
.rx .subnav{position:sticky;top:calc(var(--nav-top) + var(--nav-pill) + var(--nav-gap));
  z-index:40;padding:0 var(--nav-inset);background:transparent;border:0;box-shadow:none;}
.rx .subnav .wrap{display:flex;align-items:center;justify-content:space-between;gap:20px;
  height:var(--subnav-pill);padding:0 20px 0 24px;
  /* a touch more opaque than the primary pill: sitting lower, it spends far
     more of the scroll over dark paper cards than the top pill ever does */
  background:rgba(255,252,244,.93);
  -webkit-backdrop-filter:var(--pill-blur);backdrop-filter:var(--pill-blur);
  border:var(--pill-line);border-radius:980px;box-shadow:var(--pill-sh-sub);}
.rx .subnav .sn-title{font-family:var(--serif);font-size:16px;font-weight:600;letter-spacing:-.01em;
  color:#1d1d1f;text-decoration:none;white-space:nowrap;}
.rx .subnav .sn-title:hover{color:var(--rx-accent);}
.rx .subnav .sn-tabs{display:flex;align-items:center;gap:clamp(2px,.7vw,8px);margin-left:auto;}
/* Inside a 48px pill an underline would sit on the rounded edge and clip,
   so the active tab is a chip: the same pill language, one level in. */
.rx .subnav .sn-tab{font-size:13.5px;font-weight:500;color:var(--rx-muted);text-decoration:none;
  white-space:nowrap;line-height:1;padding:8px 14px;border-radius:980px;
  transition:color .3s var(--pill-ease),background-color .3s var(--pill-ease);}
.rx .subnav .sn-tab:hover{color:#1d1d1f;background:rgba(29,29,31,.05);}
.rx .subnav .sn-tab.is-on{color:#1d1d1f;font-weight:600;background:rgba(29,29,31,.07);}
@media(max-width:560px){
  /* shrink the token, not just the box, so scroll-margin and the sticky
     TOC offset below stay in step with the pill's real height */
  :root{--subnav-pill:44px;}
  .rx .subnav .wrap{gap:10px;padding:0 8px 0 16px;}
  .rx .subnav .sn-title{font-size:14px;}
  .rx .subnav .sn-tab{font-size:12.5px;padding:7px 10px;}
}
@media(max-width:380px){
  /* the three tabs take the whole pill; the section name is implied by them */
  .rx .subnav .sn-title{display:none;}
  .rx .subnav .wrap{padding:0 6px;}
  .rx .subnav .sn-tabs{margin-left:0;width:100%;justify-content:space-around;}
}

/* ================= RESEARCH INDEX HEADER =================
   Split hero: a dark statement block that bleeds up behind both floating
   pills, then a full-bleed image carrying the programme numbers. The small
   "who we are" column sits left, the headline right of centre, matching the
   reference layout. */
.rx .rhead{position:relative;
  /* the nav is fixed and .rx pads the document for it, and the sticky
     sub-nav sits in flow just above, so pull the dark sheet up under both */
  margin-top:calc(-1 * (var(--rx-nav-h) + var(--rx-subnav-h)));}
.rx .rhead-top{position:relative;isolation:isolate;overflow:hidden;
  background:var(--rx-dark);color:#fffbf0;
  padding:calc(var(--rx-nav-h) + var(--rx-subnav-h) + clamp(48px,6vw,88px)) 0 clamp(52px,6.4vw,96px);}
.rx .rhead-grid{display:grid;grid-template-columns:minmax(200px,280px) minmax(0,1fr);
  gap:clamp(30px,6vw,96px);align-items:start;}
.rx .rhead-side{padding-top:clamp(6px,1.2vw,18px);}
.rx .rhead-kick{font-size:15px;font-weight:700;color:#fffbf0;margin:0 0 8px;letter-spacing:-.005em;}
.rx .rhead-side-p{font-size:13px;line-height:1.6;color:var(--rx-dark-body);max-width:34ch;margin:0;}
.rx .rhead-side-p strong{color:#fffbf0;font-weight:600;}
.rx .rhead-h{font-family:var(--serif);font-weight:600;
  font-size:clamp(1.9rem,3.4vw,3.1rem);line-height:1.1;letter-spacing:-.02em;
  color:#fffbf0;margin:0 0 .55em;text-wrap:balance;}
.rx .rhead-h2{font-size:clamp(.95rem,1.1vw,1.05rem);line-height:1.6;
  color:var(--rx-dark-body);max-width:46ch;margin:0;padding-left:.15em;}
/* full-bleed image with the three programme numbers riding its lower edge */
.rx .rhead-visual{position:relative;isolation:isolate;overflow:hidden;
  height:clamp(300px,44vw,600px);background:var(--rx-dark);}
/* the index carries a four-line headline, so its dark block runs taller than the
   two doc views; a shorter image keeps the page's first white band on screen */
.rx .rhead--index .rhead-visual{height:clamp(260px,32vw,450px);}
.rx .rhead-img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block;}
.rx .rhead-visual::after{content:"";position:absolute;inset:auto 0 0 0;height:58%;pointer-events:none;
  background:linear-gradient(to top,rgba(10,10,11,.84) 0%,rgba(10,10,11,.45) 45%,rgba(10,10,11,0) 100%);}
.rx .rhead-stats{position:absolute;left:0;right:0;bottom:clamp(26px,3.6vw,48px);z-index:1;
  display:flex;flex-wrap:wrap;gap:22px clamp(34px,5vw,72px);color:#fffbf0;}
.rx .rhead-stat{min-width:150px;}
.rx .rhead-n{font-family:var(--serif);font-weight:600;font-size:clamp(2rem,3.4vw,2.8rem);
  line-height:1;letter-spacing:-.02em;font-variant-numeric:tabular-nums;margin-bottom:12px;}
.rx .rhead-l{font-family:var(--rx-mono);font-size:10.5px;line-height:1.55;letter-spacing:.02em;
  color:rgba(255,251,240,.66);}
@media(max-width:960px){
  .rx .rhead-grid{grid-template-columns:1fr;gap:30px;}
  .rx .rhead-side{padding-top:0;}
}
@media(max-width:560px){
  .rx .rhead-top{padding-bottom:44px;}
  .rx .rhead-visual,.rx .rhead--index .rhead-visual{height:clamp(300px,90vw,440px);}
  .rx .rhead-stats{gap:18px 28px;bottom:24px;}
  .rx .rhead-stat{min-width:120px;}
  .rx .rhead-n{margin-bottom:8px;}
}

/* ================= FILTER BAR ================= */
.rx .filterbar{display:flex;flex-wrap:wrap;gap:20px 34px;align-items:flex-end;
  justify-content:space-between;padding-bottom:22px;border-bottom:1px solid var(--rx-line);}
.rx .filtergroup{display:flex;flex-direction:column;gap:11px;min-width:0;}
.rx .filterlabel{font-family:var(--rx-mono);font-size:10.5px;letter-spacing:.11em;text-transform:uppercase;color:var(--rx-muted);}
.rx .chip-f{font-family:inherit;font-size:13px;font-weight:500;color:var(--rx-ink-soft);
  background:var(--rx-surface);border:1px solid var(--rx-line-2);border-radius:999px;
  padding:8px 15px;cursor:pointer;white-space:nowrap;
  transition:border-color .15s,background .15s,color .15s;}
.rx .chip-f:hover{border-color:var(--rx-ink);color:var(--rx-ink);}
.rx .chip-f.is-on{background:var(--rx-ink);border-color:var(--rx-ink);color:var(--rx-sheet);}
.rx .sortsel{font-family:inherit;font-size:13px;color:var(--rx-ink);background:var(--rx-surface);
  border:1px solid var(--rx-line-2);border-radius:999px;padding:8px 34px 8px 15px;cursor:pointer;
  appearance:none;-webkit-appearance:none;
  background-image:linear-gradient(45deg,transparent 50%,var(--rx-muted) 50%),linear-gradient(135deg,var(--rx-muted) 50%,transparent 50%);
  background-position:calc(100% - 17px) 50%,calc(100% - 12px) 50%;
  background-size:5px 5px,5px 5px;background-repeat:no-repeat;}
.rx .sortsel:hover{border-color:var(--rx-ink);}
.rx .resultcount{font-family:var(--rx-mono);font-size:10.5px;letter-spacing:.08em;text-transform:uppercase;color:var(--rx-muted);margin:18px 0 0;}

/* ================= PAPER CARDS ================= */
.rx .paperlist{list-style:none;margin:26px 0 0;padding:0;display:grid;gap:clamp(16px,1.8vw,22px);}
.rx .paper{margin:0;}
.rx .paper-link{position:relative;display:grid;
  grid-template-columns:clamp(230px,26%,290px) minmax(0,1fr);
  gap:clamp(20px,2.6vw,34px);align-items:stretch;
  background:var(--rx-surface);border:1px solid var(--rx-line);border-radius:20px;
  padding:clamp(16px,1.5vw,18px);text-decoration:none;box-shadow:var(--rx-shadow);
  transition:border-color .15s;}
.rx .paper-link:focus-visible{outline:2px solid var(--rx-accent);outline-offset:3px;}
@media(hover:hover) and (pointer:fine){
  .rx .paper-link:hover{border-color:var(--rx-line-2);}
  .rx .paper-link:hover .paper-title{color:var(--rx-accent);}
  .rx .paper-link:hover .paper-cta{background:var(--rx-ink);color:var(--warm-white);border-color:var(--rx-ink);}
  .rx .paper-link:hover .paper-go{transform:translateX(3px);}
  .rx .paper-link:hover .paper-cover-art{transform:scale(1.045);}
}
/* ---- cover ---- */
.rx .paper-cover{position:relative;display:block;overflow:hidden;border-radius:13px;
  background:var(--rx-sunk);min-height:190px;isolation:isolate;}
.rx .paper-cover-art{position:absolute;inset:0;display:block;
  background-size:cover;background-position:center;
  transition:transform .35s var(--rx-ease-out);}
.rx .paper-cover::after{content:"";position:absolute;inset:0;z-index:1;
  background:linear-gradient(180deg,rgba(25,21,16,.38) 0%,rgba(25,21,16,0) 34%,rgba(25,21,16,.10) 52%,rgba(25,21,16,.74) 100%);}
.rx .paper-cover-plate{position:absolute;z-index:2;left:14px;bottom:13px;right:14px;
  display:flex;flex-direction:column;gap:3px;}
.rx .pc-series{font-family:var(--rx-mono);font-size:9.5px;letter-spacing:.15em;text-transform:uppercase;color:rgba(255,255,255,.78);}
.rx .pc-vol{font-family:var(--serif);font-weight:600;font-size:1.28rem;line-height:1.05;letter-spacing:-.01em;color:#FFFFFF;}
.rx .paper-cover-fmt{position:absolute;z-index:2;top:11px;left:12px;
  font-family:var(--rx-mono);font-size:9.5px;letter-spacing:.09em;
  text-transform:uppercase;color:var(--rx-ink);background:rgba(255,255,255,.9);
  border-radius:999px;padding:4px 9px;backdrop-filter:blur(4px);}
/* ---- body ---- */
.rx .paper-body{display:flex;flex-direction:column;min-width:0;padding:6px 8px 4px 0;}
.rx .paper-meta{display:flex;flex-wrap:wrap;align-items:center;gap:8px 12px;margin-bottom:11px;}
.rx .paper-aud{font-size:11px;font-weight:600;color:var(--rx-accent);
  background:var(--rx-accent-wash);border-radius:999px;padding:4px 11px;white-space:nowrap;}
.rx .paper-date,.rx .paper-read{font-family:var(--rx-mono);font-size:10.5px;letter-spacing:.05em;text-transform:uppercase;color:var(--rx-muted);}
.rx .paper-title{display:block;font-family:var(--serif);font-weight:600;
  font-size:clamp(1.35rem,2.2vw,1.72rem);line-height:1.16;letter-spacing:-.016em;
  color:var(--rx-ink);margin-bottom:9px;transition:color .15s;}
.rx .paper-dek{display:block;font-size:14px;line-height:1.6;color:var(--rx-ink-soft);max-width:62ch;}
.rx .paper-dek b{color:var(--rx-ink);font-weight:600;font-variant-numeric:tabular-nums;}
.rx .paper-inside{display:block;margin-top:15px;padding-top:14px;border-top:1px solid var(--rx-line);}
.rx .pi-label{display:block;font-family:var(--rx-mono);font-size:9.5px;letter-spacing:.13em;text-transform:uppercase;color:var(--rx-muted);margin-bottom:9px;}
.rx .pi-list{display:flex;flex-direction:column;gap:6px;}
.rx .pi-item{position:relative;display:block;padding-left:17px;font-size:13.2px;line-height:1.5;color:var(--rx-ink-soft);}
.rx .pi-item::before{content:"";position:absolute;left:2px;top:8px;width:5px;height:5px;border-radius:50%;background:var(--rx-accent-tint);}
.rx .pi-item b{color:var(--rx-ink);font-weight:600;font-variant-numeric:tabular-nums;}
.rx .paper-foot{display:flex;flex-wrap:wrap;align-items:center;gap:10px 16px;margin-top:auto;padding-top:18px;}
.rx .paper-cta{display:inline-flex;align-items:center;gap:8px;font-size:13.5px;font-weight:600;
  color:var(--rx-ink);background:var(--rx-sheet);border:1px solid var(--rx-line-2);
  border-radius:999px;padding:9px 17px;white-space:nowrap;
  transition:background .15s,color .15s,border-color .15s;}
.rx .paper-go{display:inline-block;font-size:15px;line-height:1;transition:transform .18s var(--rx-ease-out);}
.rx .paper-fig{font-size:11.5px;color:var(--rx-muted);}
@media(max-width:860px){
  .rx .paper-link{grid-template-columns:1fr;gap:16px;padding:14px;border-radius:18px;}
  .rx .paper-cover{min-height:0;aspect-ratio:8/3.4;}
  .rx .paper-body{padding:0 4px 6px;}
  .rx .paper-title{font-size:clamp(1.25rem,5.2vw,1.5rem);}
  .rx .paper-foot{padding-top:16px;}
}
@media(max-width:520px){
  .rx .paper-cover{aspect-ratio:8/4.2;}
  .rx .paper-fig{display:none;}
}
.rx .emptystate{font-size:14.5px;color:var(--rx-muted);padding:44px 4px;margin:0;border-bottom:1px solid var(--rx-line);}
.rx .linkbtn{background:none;border:none;padding:0;font:inherit;color:var(--rx-accent);
  font-weight:600;cursor:pointer;text-decoration:underline;text-underline-offset:3px;}
/* index footer cards: process + data set */
.rx .indexfoot{display:grid;grid-template-columns:1fr 1fr;gap:var(--rx-gap-grid);margin-top:clamp(34px,4.4vw,54px);}
@media(max-width:700px){.rx .indexfoot{grid-template-columns:1fr;}}
.rx .indexfoot-card{display:flex;flex-direction:column;background:var(--rx-surface);
  border:1px solid var(--rx-line);border-radius:18px;padding:0;overflow:hidden;text-decoration:none;
  box-shadow:var(--rx-shadow);transition:border-color .15s,transform .18s var(--rx-ease-out);}
.rx .indexfoot-card .rn-body{display:flex;flex-direction:column;gap:6px;flex:1;padding:22px 26px 24px;}
@media(hover:hover) and (pointer:fine){.rx .indexfoot-card:hover{border-color:var(--rx-line-2);transform:translateY(-2px);}}
.rx .ifk{font-family:var(--rx-mono);font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:var(--rx-accent);}
.rx .ift{font-family:var(--serif);font-size:1.2rem;font-weight:600;color:var(--rx-ink);}
.rx .ifd{font-size:13.2px;color:var(--rx-ink-soft);line-height:1.5;}

/* ================= SHARED SUBSCRIBE PANEL (all research pages) ================= */
.rx .rsub{padding:clamp(30px,4vw,52px) 0 clamp(34px,4.4vw,60px);}
.rx .rsub-panel{background:var(--rx-dark);border-radius:var(--rx-radius);
  padding:clamp(30px,4vw,52px) clamp(26px,3.6vw,54px);
  display:grid;grid-template-columns:minmax(0,1fr) minmax(0,420px);
  gap:clamp(26px,4vw,56px);align-items:start;position:relative;overflow:hidden;}
.rx .rsub-panel::before{content:"";position:absolute;inset:auto -60px -70px auto;width:320px;height:260px;
  background:radial-gradient(closest-side,rgba(255,221,120,.28),transparent 70%);pointer-events:none;}
@media(max-width:840px){.rx .rsub-panel{grid-template-columns:1fr;gap:26px;}}
.rx .rsub-panel>*{position:relative;}
.rx .rsub-h{font-family:var(--serif);font-weight:600;color:var(--warm-white);
  font-size:clamp(1.5rem,3vw,2.05rem);line-height:1.16;letter-spacing:-.018em;margin:0 0 .5em;max-width:14ch;}
.rx .rsub-p{font-size:13.8px;line-height:1.62;color:var(--rx-dark-body);margin:0;max-width:48ch;}
.rx .rsub-form-label{font-size:12.5px;font-weight:600;color:var(--warm-white);margin:0 0 10px;}
.rx .rsub-form{display:flex;gap:9px;flex-wrap:wrap;}
.rx .rsub-form input{flex:1 1 200px;min-width:0;font-family:inherit;font-size:14px;color:var(--warm-white);
  background:rgba(255,255,255,.07);border:1px solid var(--rx-dark-line);border-radius:999px;padding:12px 18px;}
.rx .rsub-form input::placeholder{color:rgba(255,251,240,.4);}
.rx .rsub-form input:focus{outline:2px solid var(--rx-accent-tint);outline-offset:1px;}
.rx .rsub-form button{font-family:inherit;font-size:14px;font-weight:600;color:var(--gold-ink);
  background:var(--gold);border:none;border-radius:999px;padding:12px 24px;cursor:pointer;
  white-space:nowrap;transition:transform .14s var(--rx-ease-out),background .15s;}
.rx .rsub-form button:hover{background:color-mix(in srgb,var(--gold) 88%,#000);}
.rx .rsub-form button:active{transform:scale(.975);}
.rx .rsub-fine{font-size:11.5px;color:var(--rx-dark-muted);margin:12px 0 0;line-height:1.5;}
.rx .rsub-fine a{color:var(--rx-accent-tint);}
.rx .rsub-done{display:flex;align-items:center;gap:10px;font-size:14px;color:var(--warm-white);margin:0;}
.rx .rsub-done span{display:inline-grid;place-items:center;width:28px;height:28px;border-radius:50%;background:var(--gold);color:var(--gold-ink);font-size:14px;flex:none;}

/* ================= DOC PAGES: STICKY CONTENTS RAIL ================= */
.rx .docgrid{display:grid;grid-template-columns:200px minmax(0,1fr);gap:clamp(28px,4vw,56px);align-items:start;}
.rx .doccol{min-width:0;}
.rx .toc{position:sticky;top:calc(var(--rx-nav-h) + var(--rx-subnav-h) + 16px);font-size:13px;}
.rx .toc .seclabel{font-size:10.5px;letter-spacing:.14em;color:var(--rx-muted);margin-bottom:12px;}
.rx .toc ol,.rx .toc ul{list-style:none;margin:0;padding:0;}
.rx .toc li{margin:0;}
.rx .toc a{display:block;padding:6px 0 6px 13px;color:var(--rx-muted);text-decoration:none;line-height:1.4;
  border-left:2px solid var(--rx-line);transition:color .15s,border-color .15s;}
.rx .toc a:hover{color:var(--rx-ink);}
.rx .toc a.cur{color:var(--rx-accent);border-left-color:var(--rx-accent);font-weight:600;}
/* the hero on the two doc views left-aligns to the same margin as the rail */
.rx header.band > .wrap.narrow{max-width:none;margin:0 auto;}
.rx header.band > .wrap.narrow > *{max-width:720px;}
/* neutralise the nested band/wrap chrome inside the content column */
.rx .doccol .band{padding:0 0 clamp(30px,3.6vw,46px);}
.rx .doccol .band:last-child{padding-bottom:0;}
.rx .doccol .wrap{width:auto;max-width:none;margin:0;padding:0;}
.rx .doccol .wrap.narrow,.rx .doccol .narrowcol{max-width:720px;margin-left:0;margin-right:0;}
@media(max-width:900px){
  .rx .docgrid{grid-template-columns:minmax(0,1fr);gap:26px;}
  .rx .docgrid > .toc{position:static;top:auto;background:var(--rx-surface);border:1px solid var(--rx-line);
    border-radius:16px;padding:18px 20px;margin-bottom:8px;}
  .rx .doccol{min-width:0;max-width:100%;}
  .rx .doccol .wrap.narrow,.rx .doccol .narrowcol{max-width:none;}
  .rx .doccol .figcard,.rx .doccol .tablewrap{max-width:100%;}
}
@media(max-width:700px){
  .rx .doccol h2 .anchor,.rx .doccol h3 .anchor{display:none;}
  .rx .toc a{padding:8px 0 8px 12px;}
}

/* ---------- prose + document blocks ---------- */
.rx .prose{max-width:68ch;font-size:1.02rem;line-height:1.72;}
.rx .prose h2{font-size:clamp(1.3rem,2.2vw,1.6rem);margin:1.9em 0 .45em;}
.rx .prose h2:first-child{margin-top:0;}
.rx .prose h3{font-size:1.12rem;margin:1.5em 0 .35em;}
.rx .prose p,.rx .prose li{color:var(--rx-ink-soft);}
.rx .prose ul,.rx .prose ol{padding-left:22px;}
.rx .prose a{color:var(--rx-accent);}
.rx .callout{background:var(--rx-sunk);border:1px solid var(--rx-line);border-radius:16px;padding:20px 24px;margin:1.6em 0;}
.rx .callout .ck{font-size:10.5px;font-weight:600;letter-spacing:.13em;text-transform:uppercase;color:var(--rx-accent);margin-bottom:8px;}
.rx .callout p{margin:0;font-size:14.2px;color:var(--rx-ink-soft);}
.rx .callout p+p{margin-top:.7em;}
.rx .limits{background:var(--rx-surface);border:1px solid var(--rx-line-2);border-left:3px solid var(--rx-accent);
  border-radius:14px;padding:22px 26px;margin:1.8em 0;}
.rx .limits .lk{font-size:10.5px;font-weight:600;letter-spacing:.13em;text-transform:uppercase;color:var(--rx-accent);margin-bottom:10px;}
.rx .limits h3{font-size:1.12rem;margin:1.1em 0 .4em;}
.rx .limits h3:first-of-type{margin-top:0;}
.rx .limits p{font-size:13.8px;margin:0 0 .7em;color:var(--rx-ink-soft);}
.rx .limits p:last-child{margin:0;}
.rx .limits ul{font-size:13.8px;margin:0;padding-left:20px;color:var(--rx-ink-soft);}
.rx .provenance{background:var(--rx-sunk);border:1px solid var(--rx-line-2);border-radius:14px;padding:18px 22px;margin:1.6em 0;}
.rx .provenance .pk{font-size:10.5px;font-weight:600;letter-spacing:.13em;text-transform:uppercase;color:var(--rx-muted);margin-bottom:8px;}
.rx .provenance p{font-size:13.4px;margin:0;color:var(--rx-ink-soft);}
.rx .card h3{font-size:1.12rem;margin:0 0 .5em;}
.rx .card ul{margin:0;padding-left:20px;font-size:14.2px;line-height:1.6;color:var(--rx-ink-soft);}
.rx .card li+li{margin-top:.35em;}
/* cite this */
.rx .citebox{background:var(--rx-sunk);border:1px solid var(--rx-line);border-radius:20px;padding:26px 28px;}
.rx .citebox .ck{font-size:10.5px;font-weight:600;letter-spacing:.13em;text-transform:uppercase;color:var(--rx-muted);margin-bottom:14px;}
.rx .citebox dl{margin:0;display:grid;gap:14px;}
.rx .citebox dt{font-size:11.5px;font-weight:600;color:var(--rx-muted);margin-bottom:4px;}
.rx .citebox dd{margin:0;font-size:13.4px;color:var(--rx-ink-soft);line-height:1.55;}
.rx .citebox dd p{margin:10px 0 0;}
.rx .citebox code{font-family:var(--rx-mono);font-size:12px;background:var(--rx-surface);
  border:1px solid var(--rx-line);border-radius:7px;padding:3px 8px;word-break:break-all;display:inline-block;}
/* figure card + data table */
.rx .figcard{background:var(--rx-surface);border:1px solid var(--rx-line);border-radius:22px;padding:clamp(22px,2.6vw,32px);
  box-shadow:var(--rx-shadow);margin:0;max-width:none;}
.rx .figcard .fnum{font-size:10.5px;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--rx-muted);margin-bottom:9px;}
.rx .figcard .ftitle{font-family:var(--serif);font-size:clamp(1.08rem,1.9vw,1.28rem);font-weight:600;
  line-height:1.3;color:var(--rx-ink);margin:0 0 22px;max-width:52ch;}
.rx .figcard .fsrc{font-size:11.5px;color:var(--rx-muted);margin:18px 0 0;padding-top:14px;border-top:1px solid var(--rx-line);line-height:1.5;}
.rx .tablewrap{border:1px solid var(--rx-line);border-radius:20px;background:var(--rx-surface);box-shadow:var(--rx-shadow);overflow-x:auto;}
.rx table.data{width:100%;border-collapse:collapse;min-width:620px;font-size:13.5px;}
.rx table.data th{text-align:left;padding:13px 18px;font-size:11px;font-weight:600;letter-spacing:.09em;
  text-transform:uppercase;color:var(--rx-muted);background:var(--rx-sunk);border-bottom:1px solid var(--rx-line);white-space:nowrap;}
.rx table.data td{padding:11px 18px;border-bottom:1px solid var(--rx-line);color:var(--rx-ink-soft);vertical-align:top;}
.rx table.data tr:last-child td{border-bottom:none;}
.rx table.data td.num{font-variant-numeric:tabular-nums;text-align:right;white-space:nowrap;}
.rx table.data td.sub{color:var(--rx-ink);font-weight:500;}
.rx table.data tr.low td.num{color:var(--rx-accent);font-weight:600;}
.rx .figacts{display:flex;flex-wrap:wrap;gap:9px;margin-top:16px;}
.rx .chipbtn{display:inline-flex;align-items:center;gap:7px;font-family:inherit;font-size:12px;font-weight:600;
  color:var(--rx-ink-soft);background:var(--rx-sheet);border:1px solid var(--rx-line);border-radius:999px;
  padding:8px 15px;cursor:pointer;text-decoration:none;}
.rx .chipbtn:hover{border-color:var(--rx-accent);color:var(--rx-accent);}
.rx .chipbtn svg{width:12px;height:12px;}
/* read next */
.rx .readnext{display:grid;gap:var(--rx-gap-grid);grid-template-columns:repeat(3,1fr);}
.rx .readnext.two{grid-template-columns:repeat(2,1fr);}
@media(max-width:820px){.rx .readnext,.rx .readnext.two{grid-template-columns:1fr;}}
.rx .rncard{display:flex;flex-direction:column;background:var(--rx-surface);border:1px solid var(--rx-line);border-radius:18px;
  padding:0;overflow:hidden;box-shadow:var(--rx-shadow);text-decoration:none;transition:border-color .15s,transform .18s var(--rx-ease-out);}
.rx .rncard .rn-body{display:flex;flex-direction:column;flex:1;padding:20px 22px 22px;}
.rx .rncard .seclabel{font-size:10.5px;letter-spacing:.12em;margin-bottom:10px;}
.rx .rncard strong{font-family:var(--serif);font-size:1.06rem;font-weight:600;margin:0 0 .4em;line-height:1.25;}
.rx .rncard .rn-body span:last-child{font-size:13px;color:var(--rx-muted);margin:0;flex:1;line-height:1.5;}
@media(hover:hover) and (pointer:fine){.rx .rncard:hover{border-color:var(--rx-line-2);transform:translateY(-2px);}}

/* Destination hero, reused as the card thumbnail. The <a> is the only link,
   so the image is decorative and carries an empty alt. */
.rx .rn-thumb{position:relative;display:block;height:clamp(126px,13.5vw,176px);
  background:var(--rx-sunk);overflow:hidden;}
.rx .rn-thumb img{display:block;width:100%;height:100%;object-fit:cover;object-position:center 45%;
  transition:transform .55s var(--rx-ease-out);}
.rx .rn-thumb::after{content:"";position:absolute;inset:0;pointer-events:none;
  box-shadow:inset 0 -1px 0 var(--rx-line);
  background:linear-gradient(to bottom,rgba(15,23,42,.10),rgba(15,23,42,0) 42%);}
@media(hover:hover) and (pointer:fine){
  .rx .rncard:hover .rn-thumb img,
  .rx .indexfoot-card:hover .rn-thumb img{transform:scale(1.035);}
}

/* The footer follows these pages directly; no extra gap above it. */
.rx + .foot{margin-top:0;}

/* ==========================================================================
   VOLUME READER  (research-paper.html)
   Free to read down to the executive summary; the chapters live in the PDF
   and the three-field gate below the summary is the only thing in the way.
   ========================================================================== */

/* ---------- volume header ----------------------------------------------
   Same shape as every other research page: dark sheet, then the full-bleed
   visual with the volume's own numbers riding its lower edge. The image is
   the volume cover, so each volume keeps its own identity.               */
.rx .rhead--paper .rhead-visual{height:clamp(280px,30vw,430px);}
/* Cover art varies from near-black (v3) to pale (v2), so this hero needs a
   deeper, taller scrim than the fixed editorial photos on the other pages. */
.rx .rhead--paper .rhead-visual::after{height:74%;
  background:linear-gradient(to top,rgba(10,10,11,.93) 0%,rgba(10,10,11,.72) 34%,rgba(10,10,11,.28) 70%,rgba(10,10,11,0) 100%);}
.rx .rhead--paper .rhead-l{color:rgba(255,251,240,.8);}
.rx .rhead--paper .rhead-n{font-size:clamp(1.5rem,2.5vw,2.15rem);margin-bottom:10px;}
/* a two-line number (a currency range) must not drop its caption below the
   others, so the captions are pinned to a common baseline */
.rx .rhead--paper .rhead-stats{gap:20px clamp(26px,3.4vw,52px);align-items:stretch;}
.rx .rhead--paper .rhead-stat{min-width:170px;max-width:26ch;display:flex;flex-direction:column;}
.rx .rhead--paper .rhead-l{margin-top:auto;}
.rx .backlink{display:inline-flex;align-items:center;gap:8px;font-size:12.5px;font-weight:500;
  color:var(--rx-dark-muted);text-decoration:none;margin-bottom:22px;transition:color .15s;}
.rx .backlink:hover{color:#fffbf0;}
.rx .fmtlabel{display:flex;align-items:center;gap:9px;font-family:var(--rx-mono);font-size:10.5px;
  letter-spacing:.13em;text-transform:uppercase;color:var(--rx-accent-tint);margin:0 0 16px;}
.rx .fmtlabel .dot{width:6px;height:6px;border-radius:50%;background:var(--rx-accent-tint);flex:none;}
.rx .rhead--paper .rhead-h{font-size:clamp(2rem,4.2vw,3.5rem);margin-bottom:.42em;}
.rx .rhead--paper .subhead{max-width:56ch;font-size:clamp(1rem,1.15vw,1.1rem);}
.rx .rhead--paper .subhead b{color:#fffbf0;font-weight:600;}
.rx .pmeta{display:flex;flex-wrap:wrap;align-items:center;gap:10px 18px;margin-top:26px;
  font-family:var(--rx-mono);font-size:10.5px;letter-spacing:.05em;color:rgba(255,251,240,.52);}
/* Secondary, deliberately quiet: it jumps to the gate rather than promising a
   file, so it serves the reader who already knows they want the PDF without
   competing with the headline or routing everyone past the summary. */
.rx .pdfjump{display:inline-flex;align-items:center;gap:7px;font-family:var(--serif);font-size:12.5px;
  font-weight:600;letter-spacing:0;text-decoration:none;color:rgba(255,251,240,.82);
  border:1px solid rgba(255,251,240,.22);border-radius:999px;padding:6px 15px;
  transition:color .15s,border-color .15s,background .15s;}
.rx .pdfjump:hover{color:var(--rx-accent-tint);border-color:rgba(226,178,74,.5);background:rgba(226,178,74,.07);}
.rx .pdfjump span{transition:transform .18s var(--rx-ease-out);}
@media(hover:hover) and (pointer:fine){.rx .pdfjump:hover span{transform:translateY(2px);}}
/* Four figures need more room than the three the index hero carries: below the
   desktop width they go to a 2x2 grid and the band grows to hold it. */
@media(max-width:860px){
  .rx .rhead--paper .rhead-visual{height:clamp(330px,52vw,430px);}
  .rx .rhead--paper .rhead-stats{display:grid;grid-template-columns:1fr 1fr;gap:18px 24px;}
  .rx .rhead--paper .rhead-stat{min-width:0;max-width:none;}
}
@media(max-width:560px){
  .rx .rhead--paper .rhead-visual{height:clamp(370px,104vw,480px);}
  .rx .rhead--paper .rhead-stats{gap:15px 18px;bottom:22px;}
  .rx .rhead--paper .rhead-n{font-size:1.3rem;margin-bottom:6px;}
  .rx .rhead--paper .rhead-l{font-size:9.5px;line-height:1.5;}
}

/* ---------- the four figures ---------- */
.rx .statcards{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--rx-gap-grid);margin-top:clamp(26px,3vw,40px);}
@media(max-width:820px){.rx .statcards{grid-template-columns:1fr;}}
.rx .statcard{background:var(--rx-surface);border:1px solid var(--rx-line);border-radius:22px;
  padding:clamp(24px,2.6vw,32px);box-shadow:var(--rx-shadow);display:flex;flex-direction:column;}
.rx .statcard .n{font-family:var(--serif);font-weight:600;font-size:clamp(2.1rem,3.6vw,2.9rem);
  line-height:1;letter-spacing:-.025em;color:var(--rx-ink);font-variant-numeric:tabular-nums;margin-bottom:16px;}
.rx .statcard .l{font-size:15px;line-height:1.5;color:var(--rx-ink);font-weight:500;margin-bottom:14px;}
.rx .statcard .s{font-size:12.6px;line-height:1.6;color:var(--rx-muted);margin:auto 0 0;
  padding-top:14px;border-top:1px solid var(--rx-line);}
.rx .statcard .s a{color:var(--rx-accent);}

/* ---------- the gate ---------- */
.rx .gate{position:relative;margin-top:clamp(26px,3vw,38px);
  display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.15fr);gap:0;
  background:var(--rx-surface);border:1px solid var(--rx-line);border-radius:var(--rx-radius);
  box-shadow:var(--rx-shadow-lg);overflow:hidden;}
@media(max-width:860px){.rx .gate{grid-template-columns:1fr;}}

/* the locked half: contents of the PDF, legible but plainly out of reach */
.rx .gate-toc{position:relative;background:var(--rx-dark);color:#fffbf0;
  padding:clamp(26px,2.8vw,36px);display:flex;flex-direction:column;}
.rx .gate-toc .gk{font-family:var(--rx-mono);font-size:10.5px;letter-spacing:.13em;text-transform:uppercase;
  color:var(--rx-accent-tint);margin:0 0 18px;}
.rx .gtoc{list-style:none;margin:0;padding:0;counter-reset:gtoc;display:grid;gap:11px;}
.rx .gtoc li{position:relative;padding-left:26px;font-size:13.6px;line-height:1.45;color:rgba(255,251,240,.78);}
.rx .gtoc li::before{content:"";position:absolute;left:0;top:5px;width:13px;height:13px;border-radius:3px;
  border:1px solid rgba(255,251,240,.34);}
.rx .gtoc li:first-child{color:#fffbf0;font-weight:600;}
.rx .gtoc li:first-child::before{background:var(--rx-accent-tint);border-color:var(--rx-accent-tint);}
.rx .gtoc li:first-child::after{content:"free above";position:absolute;left:26px;top:100%;margin-top:3px;
  font-family:var(--rx-mono);font-size:9px;letter-spacing:.12em;text-transform:uppercase;color:var(--rx-accent-tint);}
.rx .gtoc li:nth-child(2){margin-top:16px;}
/* the locked half is legible but plainly out of reach; the list fades out
   toward the bottom and closes on what the file actually contains */
.rx .gtoc li:nth-last-child(3){opacity:.72;}
.rx .gtoc li:nth-last-child(2){opacity:.56;}
.rx .gtoc li:last-child{opacity:.42;}
.rx .gtoc-foot{margin:auto 0 0;padding-top:22px;font-size:11.8px;line-height:1.6;
  color:rgba(255,251,240,.46);}

/* the form half */
.rx .gate-form{padding:clamp(26px,2.8vw,38px);}
.rx .gh{font-family:var(--serif);font-size:1.22rem;font-weight:600;line-height:1.25;margin:0 0 .5em;color:var(--rx-ink);}
.rx .gp{font-size:14px;line-height:1.6;color:var(--rx-ink-soft);margin:0 0 22px;}
.rx .gform{display:grid;gap:14px;}
.rx .gfield{display:grid;gap:6px;}
.rx .gfield label{font-family:var(--rx-mono);font-size:10.5px;letter-spacing:.11em;text-transform:uppercase;color:var(--rx-muted);}
.rx .gfield input,.rx .gfield select{font-family:inherit;font-size:14.5px;color:var(--rx-ink);
  background:var(--rx-sheet);border:1px solid var(--rx-line-2);border-radius:11px;padding:12px 14px;width:100%;
  transition:border-color .15s,box-shadow .15s;}
.rx .gfield select{appearance:none;-webkit-appearance:none;cursor:pointer;
  background-image:linear-gradient(45deg,transparent 50%,var(--rx-muted) 50%),linear-gradient(135deg,var(--rx-muted) 50%,transparent 50%);
  background-position:calc(100% - 19px) 51%,calc(100% - 14px) 51%;background-size:5px 5px,5px 5px;background-repeat:no-repeat;
  padding-right:38px;}
.rx .gfield input::placeholder{color:var(--rx-muted);}
.rx .gfield input:focus,.rx .gfield select:focus{outline:none;border-color:var(--rx-accent);
  box-shadow:0 0 0 3px rgba(226,178,74,.18);}
.rx .gsub{font-family:inherit;font-size:15px;font-weight:600;color:var(--gold-ink);background:var(--gold);
  border:none;border-radius:12px;padding:14px 18px;cursor:pointer;margin-top:4px;
  transition:filter .15s,transform .12s var(--rx-ease-out),opacity .15s;}
.rx .gsub:hover{filter:brightness(1.04);}
.rx .gsub:active{transform:translateY(1px);}
.rx .gfine{font-size:11.8px;line-height:1.6;color:var(--rx-muted);margin:18px 0 0;}

/* the confirmation that replaces the form */
.rx .gdone{display:flex;flex-direction:column;align-items:flex-start;}
.rx .gtick{display:grid;place-items:center;width:46px;height:46px;border-radius:50%;
  background:var(--rx-accent-wash);color:var(--gold-deep);font-size:21px;margin-bottom:18px;}
.rx .gdone .gp{margin-bottom:16px;}
.rx .gdl{font-size:13.5px;font-weight:600;color:var(--rx-accent);}

/* ---------- read next foot ---------- */
.rx .rnfoot{font-size:13px;color:var(--rx-muted);margin:26px 0 0;}
.rx .rnfoot a{color:var(--rx-ink-soft);}
.rx .rnfoot a:hover{color:var(--rx-accent);}

/* ---------- gate: rejected address ----------------------------------------
   The gate refuses personal, free and disposable domains. This is the message
   that says so, on the light half of the gate beneath the form. */
.rx .gerror{font-size:12.8px;line-height:1.55;font-weight:500;color:var(--red);
  margin:14px 0 0;max-width:52ch;display:none;}
.rx .gerror.show{display:block;}
.rx .gerror::before{content:"";display:inline-block;width:6px;height:6px;border-radius:50%;
  background:var(--red);margin-right:8px;vertical-align:middle;position:relative;top:-1px;}
