/* Source: landing.css */
/* ============================================================================
   ResearchGuru.AI — "The Research Desk" marketing skin.
   Shares the /m/ storefront identity: Fraunces serif display + Inter body +
   IBM Plex Mono labels, navy desk canvas (dark) / cool paper (light), and ONE
   spectral brand gradient (orange → magenta → violet → indigo) as signature.
   The hero specimen is the only warm-paper object on the page (--paper).
   Serves every /home marketing page: index, about, services, pricing,
   contact, conferences, creators. Full light + dark via the toggle.
   ========================================================================== */
@import url("/assets/fonts/researchguru.css?v=20261105-smooth1");
:root{
  /* cool-paper reading room (light) */
  --bg:#f5f6fb; --bg-2:#edf0f9; --card:#ffffff;
  --ink:#10182f; --soft:#454e70; --muted:#6d7694;
  --line:rgba(30,50,110,.12); --line-2:rgba(30,50,110,.2);
  --glass:rgba(255,255,255,.72);

  /* brand + the single spectral signature */
  --navy:#3a3ab8; --orange:#f5921e; --violet:#7b4fc4; --indigo:#5b5bf0;
  --iris:linear-gradient(100deg,#f5921e,#ff5d8f,#c4399a,#7b4fc4,#5b5bf0);
  --iris-soft:linear-gradient(100deg,#ffb86b,#ff8fb4,#c98fe0,#9a8cff);

  /* the manuscript specimen — the one warm-paper object */
  --paper:#f7f3e9; --paper-ink:#26221a;

  /* cinematic dark context (navy desk, not black) */
  --cine:#070a12; --cine-2:#0b1020;

  /* jewel module accents (read as gemstones) */
  --c-blue:#2f6fed; --c-indigo:#4a4ad0; --c-cyan:#0ea5b5; --c-violet:#7b4fc4;
  --c-magenta:#c4399a; --c-green:#1f9d57; --c-orange:#ef7c1b; --c-slate:#5b6486;
  --good:#1f9d57;

  --font:"Inter",-apple-system,BlinkMacSystemFont,"SF Pro Display","Segoe UI",Roboto,sans-serif;
  --disp:"Fraunces",Georgia,"Times New Roman",serif;  /* same display serif as /m/ */
  --mono:"IBM Plex Mono",ui-monospace,monospace;

  --radius:18px; --radius-lg:28px;
  --shadow-s:0 1px 2px rgba(10,20,50,.04),0 8px 24px -12px rgba(10,20,50,.12);
  --shadow-m:0 2px 6px rgba(10,20,50,.05),0 24px 60px -28px rgba(10,20,50,.22);
  --shadow-l:0 40px 90px -34px rgba(10,20,50,.3);
  --ease:cubic-bezier(.22,.8,.2,1);
}
*{ box-sizing:border-box; margin:0; padding:0; }
html{ scroll-behavior:smooth; }
body{ background:var(--bg); color:var(--ink); font-family:var(--font);
  -webkit-font-smoothing:antialiased; text-rendering:optimizeLegibility;
  overflow-x:hidden; line-height:1.5; position:relative; }
a{ color:inherit; text-decoration:none; }
em{ font-style:italic; background:var(--iris); -webkit-background-clip:text;
  background-clip:text; color:transparent; }

/* ░ atmosphere — a whisper of iridescence behind the hero ░ */
.atmos{ position:absolute; inset:0 0 auto; height:120vh; z-index:0; pointer-events:none; overflow:hidden; }
.atmos .leak{ position:absolute; border-radius:50%; filter:blur(90px); opacity:.4; will-change:transform; }
.atmos .l1{ width:42vw; height:42vw; left:-6vw; top:-8vw;
  background:radial-gradient(circle,rgba(245,146,30,.5),transparent 62%); animation:float1 32s ease-in-out infinite; }
.atmos .l2{ width:40vw; height:40vw; right:-6vw; top:-12vw;
  background:radial-gradient(circle,rgba(123,79,196,.5),transparent 62%); animation:float2 40s ease-in-out infinite; }
.atmos .l3{ width:36vw; height:36vw; left:30vw; top:24vh; opacity:.28;
  background:radial-gradient(circle,rgba(91,91,240,.45),transparent 64%); animation:float1 46s ease-in-out infinite reverse; }
.atmos .vignette{ display:none; }
/* Translate only — the scale() that used to be here is why the whole browser
   struggled on this page.

   These keyframes drive four elements that carry a large `filter: blur()`:
   the three .atmos leaks (42vw/40vw/36vw at blur(90px)) and .engine::before
   (70vw at blur(110px)). A translate on a blurred layer is composited — the
   layer is rasterised once and moved. A scale is not: it changes the
   rasterisation, so the blur is recomputed every frame, for the life of the
   page, on roughly nine megapixels of surface at 1920x1080.

   The scale was 1.08-1.10 on a shape whose edges are already 90-110px of
   blur, so removing it is not a visible change. Keep it that way. */
@keyframes float1{ 50%{ transform:translate(5vw,4vh); } }
@keyframes float2{ 50%{ transform:translate(-4vw,6vh); } }

/* Nothing composited animates while the tab is in the background. Chrome
   throttles timers there but keeps compositing CSS animations and decoding
   video, which is how a page nobody is looking at still costs the machine
   frames — and why this was felt as "the whole browser is slow" rather than
   "this page is slow". Set by site.js on visibilitychange. */
html.rg-idle *,
html.rg-idle *::before,
html.rg-idle *::after{ animation-play-state:paused !important; }
.grain{ display:none; }

/* ░ nav — translucent, thin, Apple ░ */
.nav{ position:sticky; top:0; z-index:50; display:flex; align-items:center;
  justify-content:space-between; gap:1rem; padding:.7rem clamp(1rem,4vw,2.4rem);
  background:rgba(255,255,255,.72); backdrop-filter:saturate(180%) blur(20px);
  -webkit-backdrop-filter:saturate(180%) blur(20px);
  border-bottom:1px solid transparent; transition:border-color .3s, background .3s; }
.nav.scrolled{ border-color:var(--line); }
.logo{ display:flex; align-items:center; gap:.1rem; font-weight:700; font-size:1.24rem;
  letter-spacing:-.02em; color:var(--ink); }
.logo .mark{ margin:0 .32em -.16em 0; }
.logo .w2{ color:var(--ink); }
.dotai{ background:var(--iris); -webkit-background-clip:text; background-clip:text;
  color:transparent; font-weight:700; letter-spacing:.02em; }   /* on the baseline, full size */
.links{ display:flex; gap:1.9rem; font-size:.82rem; font-weight:500; color:var(--soft); }
.links a{ position:relative; transition:color .2s; }
.links a:hover{ color:var(--ink); }
.nav-cta{ display:flex; gap:.5rem; align-items:center; }

.ghost,.solid{ font-size:.82rem; font-weight:500; padding:.5rem 1.05rem; border-radius:999px;
  transition:.25s var(--ease); white-space:nowrap; display:inline-flex; align-items:center; gap:.35rem; }
.ghost{ color:var(--ink); }
.ghost:hover{ background:rgba(0,0,0,.05); }
.solid{ position:relative; overflow:hidden; color:#fff; background:var(--iris);
  background-size:180% 100%; background-position:0 0;
  box-shadow:0 14px 34px -12px rgba(123,79,196,.55);
  transition:transform .25s var(--ease), box-shadow .25s var(--ease), background-position .5s var(--ease); }
.solid .lbl,.solid .ar{ position:relative; z-index:1; }
.solid:hover{ transform:translateY(-2px); background-position:100% 0;
  box-shadow:0 18px 40px -12px rgba(123,79,196,.75); }
.solid .ar,.ghost .ar{ display:inline-block; transition:transform .25s var(--ease); }
.solid:hover .ar{ transform:translateX(3px); }
.lg{ font-size:1rem; padding:.95rem 1.7rem; font-weight:500; }

/* ░ hero — white, generous, centered weight on the headline ░ */
.hero{ position:relative; z-index:2; max-width:1240px; margin:0 auto;
  padding:clamp(2.5rem,6vw,5rem) clamp(1rem,5vw,2.4rem) clamp(3rem,6vw,5rem);
  display:grid; grid-template-columns:1.05fr .95fr; gap:clamp(1.5rem,4vw,3.5rem); align-items:center; }
.hero-copy{ position:relative; z-index:3; }
.eyebrow{ display:inline-flex; align-items:center; gap:.55rem; font-size:.78rem; font-weight:500;
  letter-spacing:.01em; color:var(--soft); background:var(--glass); border:1px solid var(--line);
  backdrop-filter:blur(8px); padding:.42rem 1rem .42rem .6rem; border-radius:999px; margin-bottom:1.6rem; }
.eyebrow .spark{ width:9px; height:9px; border-radius:50%; background:var(--iris);
  box-shadow:0 0 10px 1px rgba(196,57,154,.5); }
.hero h1{ font-weight:600; line-height:1; font-size:clamp(2.8rem,6.6vw,5rem);
  letter-spacing:-.025em; color:var(--ink); }
.hero h1 .rot{ display:inline-block; }
.lede{ max-width:50ch; margin:1.5rem 0 0; color:var(--soft);
  font-size:clamp(1.05rem,1.4vw,1.26rem); font-weight:400; letter-spacing:-.01em; }
.hero-cta{ display:flex; gap:1.4rem; align-items:center; flex-wrap:wrap; margin-top:2.2rem; }
.hero-cta .ghost{ padding:.95rem 0; color:var(--navy); font-weight:500; font-size:1rem; }
.hero-cta .ghost::after{ content:" ›"; }
.hero-cta .ghost:hover{ background:none; color:var(--violet); }
.trust{ display:flex; gap:1.4rem; flex-wrap:wrap; margin-top:2.4rem; font-size:.8rem;
  font-weight:500; color:var(--muted); }
.trust span{ display:inline-flex; align-items:center; gap:.4rem; }
.trust span::before{ content:""; width:6px; height:6px; border-radius:50%; background:var(--iris); }

/* ░ signature: the Reading Instrument — a manuscript under the spectral scan ░
   A warm-paper specimen (the only --paper object on the page) is swept top to
   bottom by the brand-gradient beam; margin verdicts surface as it passes and
   the live verdict card below fills in (wired to landing.js via #ringFg,
   #scoreNum and the .m tracks). This IS the product, drawn in CSS. */
.stage{ position:relative; z-index:2; display:flex; flex-direction:column;
  align-items:center; justify-content:center; min-height:480px; }
.stage::before{ content:""; position:absolute; width:min(480px,100%); aspect-ratio:1;
  border-radius:50%; background:var(--iris-soft); opacity:.34; filter:blur(80px); }
@keyframes bob{ 50%{ transform:translateY(-10px); } }
.instrument{ position:relative; z-index:3; width:min(430px,94%); animation:bob 11s ease-in-out infinite; }
.sheet{ position:relative; overflow:hidden; background:var(--paper); color:var(--paper-ink);
  border-radius:12px; padding:1.45rem 1.6rem 4.2rem; transform:rotate(-1deg);
  border:1px solid rgba(120,100,60,.22);
  box-shadow:0 34px 80px -32px rgba(4,8,26,.6), inset 0 1px 0 rgba(255,255,255,.6); }
.sh-head{ display:flex; align-items:center; justify-content:space-between; gap:.8rem;
  font-family:var(--mono); font-size:.58rem; letter-spacing:.09em; text-transform:uppercase;
  color:rgba(38,34,26,.55); padding-bottom:.7rem; border-bottom:1px solid rgba(38,34,26,.16);
  margin-bottom:1.05rem; }
.sh-title{ font-family:var(--disp); font-weight:600; font-style:italic; font-size:1.08rem;
  letter-spacing:-.01em; color:var(--paper-ink); margin-bottom:.95rem; }
.sh-lines i{ display:block; height:7px; border-radius:4px; margin-bottom:9px;
  background:rgba(38,34,26,.15); }
.sh-lines .w96{ width:96%; } .sh-lines .w93{ width:93%; } .sh-lines .w91{ width:91%; }
.sh-lines .w88{ width:88%; } .sh-lines .w84{ width:84%; } .sh-lines .w78{ width:78%; }
.sh-lines .w70{ width:70%; } .sh-lines .w58{ width:58%; }
.sh-lines .hl-red{ background:linear-gradient(90deg,rgba(216,58,82,.6),rgba(216,58,82,.22)); }
.sh-lines .hl-blue{ background:linear-gradient(90deg,rgba(70,110,235,.55),rgba(70,110,235,.2)); }
/* the spectral beam — sweeps the sheet on loop */
.scanbeam{ position:absolute; left:0; right:0; top:-56px; height:52px; pointer-events:none;
  background:linear-gradient(180deg,transparent,rgba(196,57,154,.10) 60%,rgba(123,79,196,.16));
  animation:scan 6s cubic-bezier(.45,.05,.55,.95) infinite; }
.scanbeam::after{ content:""; position:absolute; left:0; right:0; bottom:0; height:2px;
  background:var(--iris); box-shadow:0 0 18px 2px rgba(196,57,154,.65); }
@keyframes scan{ 0%{ transform:translateY(0); opacity:0; } 6%{ opacity:1; }
  86%{ transform:translateY(480px); opacity:1; } 92%,100%{ transform:translateY(480px); opacity:0; } }
/* margin verdicts — stamped as the beam passes */
.note{ position:absolute; right:.65rem; font-family:var(--mono); font-size:.56rem;
  letter-spacing:.05em; padding:.22rem .5rem; border-radius:6px; background:#fffdf6;
  border:1px solid rgba(38,34,26,.18); box-shadow:0 6px 14px -6px rgba(20,15,5,.35);
  opacity:0; animation:noteIn 6s ease infinite; }
.note.n1{ top:31%; color:#b02a44; animation-delay:1.5s; }
.note.n2{ top:52%; color:#3a56c4; animation-delay:2.55s; }
.note.n3{ top:72%; color:#1f7d4d; animation-delay:3.55s; }
@keyframes noteIn{ 0%,4%{ opacity:0; transform:translateX(8px); }
  10%,82%{ opacity:1; transform:none; } 94%,100%{ opacity:0; } }
/* the verdict card — cool glass over warm paper */
.verdict{ position:relative; z-index:4; margin:-3.2rem auto 0; width:100%;
  display:grid; grid-template-columns:auto 1fr; gap:.5rem 1.2rem; align-items:center;
  background:color-mix(in srgb,var(--card) 86%,transparent);
  backdrop-filter:saturate(160%) blur(14px); -webkit-backdrop-filter:saturate(160%) blur(14px);
  border:1px solid var(--line-2); border-radius:18px; box-shadow:var(--shadow-l);
  padding:.95rem 1.2rem 1.15rem; }
.v-head{ grid-column:1/-1; display:flex; align-items:center; justify-content:space-between;
  gap:.8rem; padding-bottom:.6rem; border-bottom:1px solid var(--line); }
.v-title{ font-family:var(--mono); font-size:.6rem; letter-spacing:.14em; text-transform:uppercase;
  color:var(--muted); }
.p-live{ font-family:var(--mono); font-size:.6rem; letter-spacing:.08em;
  text-transform:uppercase; color:var(--good); display:inline-flex; align-items:center; gap:.4rem; }
.p-live i{ width:6px; height:6px; border-radius:50%; background:var(--good);
  box-shadow:0 0 7px 1px var(--good); animation:pulse 1.8s ease-in-out infinite; }
@keyframes pulse{ 50%{ opacity:.4; } }
.dial{ position:relative; width:112px; height:112px; }
.dial svg{ display:block; width:100%; height:100%; }
.ring-fg{ transition:stroke-dashoffset 1.9s var(--ease);
  filter:drop-shadow(0 2px 5px rgba(123,79,196,.35)); }
.dial-num{ position:absolute; inset:0; display:flex; flex-direction:column; align-items:center; justify-content:center; }
.dial-num b{ font-family:var(--disp); font-weight:600; font-size:1.9rem; line-height:1;
  letter-spacing:-.02em; color:var(--ink); }
.dial-num b::after{ content:"%"; font-size:.8rem; font-weight:500; color:var(--muted); margin-left:1px; }
.dial-num span{ font-family:var(--mono); font-size:.52rem; letter-spacing:.12em;
  text-transform:uppercase; color:var(--muted); margin-top:.35rem; }
.metrics{ display:flex; flex-direction:column; gap:.72rem; }
.m{ display:grid; grid-template-columns:1fr auto; grid-template-rows:auto auto;
  align-items:baseline; gap:.3rem .6rem; }
.m label{ grid-column:1; grid-row:1; font-size:.72rem; color:var(--soft); white-space:nowrap; }
.m b{ grid-column:2; grid-row:1; font-family:var(--mono); font-size:.72rem; font-weight:500;
  color:var(--ink); text-align:right; }
.m .track{ grid-column:1/-1; grid-row:2; height:5px; border-radius:5px;
  background:color-mix(in srgb,var(--ink) 15%,transparent); overflow:hidden; }
.m .track i{ display:block; height:100%; width:0; border-radius:5px; background:var(--iris); transition:width 1.5s var(--ease); }
@media(prefers-reduced-motion:reduce){
  .scanbeam{ display:none; }
  .note{ opacity:1; animation:none; transform:none; }
}

/* ░ section scaffolding ░ */
section{ position:relative; z-index:2; }
.stats,.modules,.audience,.benefits,.integrations,.cta-final,.showcase{ max-width:1240px; margin:0 auto; }
.modules,.audience,.benefits,.integrations,.cta-final{ padding:clamp(4.5rem,9vw,8rem) clamp(1rem,5vw,2.4rem); }
.sec-head{ max-width:800px; margin-bottom:3rem; }
.kicker{ display:inline-flex; align-items:center; gap:.55rem; font-family:var(--mono);
  font-size:.68rem; font-weight:500; letter-spacing:.2em; text-transform:uppercase;
  color:var(--muted); margin-bottom:.9rem; }
.kicker::before{ content:""; width:14px; height:14px; border-radius:50%; background:var(--iris);
  box-shadow:0 0 12px rgba(196,57,154,.55); }
.kicker.center{ display:flex; justify-content:center; text-align:center; }
.sec-head h2{ font-weight:600; line-height:1.05; font-size:clamp(2rem,4.4vw,3.2rem);
  letter-spacing:-.02em; color:var(--ink); }
.sec-head p{ margin-top:1rem; color:var(--soft); max-width:56ch; font-size:1.08rem; }

/* stats — light-gray band */
.stats{ position:relative; z-index:3; display:grid; grid-template-columns:repeat(4,1fr); gap:1rem;
  padding:clamp(2.5rem,5vw,3.5rem) clamp(1rem,5vw,2.4rem); }
.stat{ text-align:center; padding:1.6rem 1rem; border-radius:var(--radius);
  background:var(--bg-2); transition:.3s var(--ease); }
.stat:hover{ transform:translateY(-4px); box-shadow:var(--shadow-s); }
.stat b{ display:block; font-weight:700; font-size:clamp(2.2rem,4vw,3.1rem); line-height:1;
  letter-spacing:-.03em; background:var(--iris); -webkit-background-clip:text; background-clip:text; color:transparent; }
.stat span{ font-size:.78rem; font-weight:500; color:var(--muted); margin-top:.6rem; display:block; }
@media(max-width:640px){ .stats{ grid-template-columns:repeat(2,1fr); } }

/* showcase */
.showcase{ position:relative; z-index:2; margin-top:1rem; padding:clamp(3rem,6vw,5rem) clamp(1rem,5vw,2.4rem);
  display:grid; grid-template-columns:1.25fr 1fr; grid-template-areas:"a cap" "a b"; gap:1.3rem; align-items:center; }
.showcase .shot{ overflow:hidden; border-radius:var(--radius-lg); box-shadow:var(--shadow-m); position:relative; }
.showcase .shot img{ display:block; width:100%; height:100%; object-fit:cover; }
.showcase .shot-1{ grid-area:a; aspect-ratio:4/5; }
.showcase .shot-2{ grid-area:b; aspect-ratio:16/10; }
.showcase .shot-cap{ grid-area:cap; }
.showcase .shot-cap h3{ font-weight:700; font-size:clamp(1.5rem,2.6vw,2.2rem); color:var(--ink);
  letter-spacing:-.025em; line-height:1.12; }
.showcase .shot-cap p{ color:var(--soft); margin-top:.85rem; font-size:1.05rem; }
.showcase .shot-cap .mini{ display:flex; gap:.5rem; margin-top:1.2rem; flex-wrap:wrap; }
.showcase .shot-cap .mini span{ font-weight:500; font-size:.8rem; color:var(--soft);
  background:var(--bg-2); border-radius:999px; padding:.42rem .95rem; }
@media(max-width:760px){ .showcase{ grid-template-columns:1fr; grid-template-areas:"cap" "a" "b"; }
  .showcase .shot-1{ aspect-ratio:16/10; } }

/* ░ engine — FULL-BLEED CINEMATIC BLACK BAND ░ */
.engine{ position:relative; max-width:none; overflow:hidden;
  background:var(--cine); color:#f5f5f7;
  padding:clamp(5rem,10vw,9rem) clamp(1rem,5vw,2.4rem);
  --ink:#f5f5f7; --soft:#a1a1a6; --muted:#8a8a8f; --line:rgba(255,255,255,.12);
  --line-2:rgba(255,255,255,.2); --card:rgba(255,255,255,.04); --bg-2:rgba(255,255,255,.05); }
.engine::before{ content:""; position:absolute; left:50%; top:-10%; width:70vw; height:70vw;
  transform:translateX(-50%); border-radius:50%; pointer-events:none;
  background:var(--iris); opacity:.18; filter:blur(110px); animation:float2 30s ease-in-out infinite; }
.engine > *{ position:relative; z-index:1; max-width:1200px; margin-left:auto; margin-right:auto; }
.engine .sec-head h2{ color:#fff; }
.engine .sec-head p{ color:var(--soft); }
.engine-grid{ display:grid; grid-template-columns:repeat(auto-fit,minmax(210px,1fr)); gap:1.1rem; }
.cap{ border-radius:var(--radius); padding:1.8rem 1.55rem; background:rgba(255,255,255,.04);
  border:1px solid rgba(255,255,255,.1); backdrop-filter:blur(8px);
  transition:transform .25s var(--ease),border-color .25s,background .25s; }
.cap:hover{ transform:translateY(-5px); border-color:rgba(255,255,255,.24); background:rgba(255,255,255,.07); }
.cap .ci{ display:inline-flex; align-items:center; justify-content:center; width:48px; height:48px;
  border-radius:14px; font-size:1.4rem; color:#fff; background:var(--iris);
  box-shadow:0 10px 26px -10px rgba(123,79,196,.7); }
.cap h3{ font-weight:600; font-size:1.18rem; margin:1rem 0 .45rem; color:#fff; letter-spacing:-.01em; }
.cap p{ color:var(--soft); font-size:.92rem; }
.badges{ display:flex; flex-wrap:wrap; gap:.6rem; margin-top:2.4rem; justify-content:center; }
.badges span{ font-size:.78rem; font-weight:500; color:var(--soft); border:1px solid rgba(255,255,255,.16);
  border-radius:999px; padding:.5rem 1.1rem; background:rgba(255,255,255,.04); }

/* modules — clean light cards, jewel accents */
.modules{ background:var(--bg); }
.mgrid{ display:grid; grid-template-columns:repeat(auto-fill,minmax(300px,1fr)); gap:1.2rem; }
.mcard{ position:relative; display:flex; flex-direction:column; border-radius:var(--radius);
  background:var(--card); border:1px solid var(--line); box-shadow:var(--shadow-s); overflow:hidden;
  transition:transform .35s var(--ease),border-color .25s,box-shadow .25s; }
.mcard::before{ content:""; position:absolute; inset:0 0 auto; height:3px;
  background:linear-gradient(90deg,var(--ac),transparent 80%); }
.mcard .top{ display:flex; align-items:center; justify-content:space-between; padding:1rem 1.35rem .65rem; }
.mcard .no{ font-family:var(--mono); font-size:.64rem; letter-spacing:.08em; color:var(--muted); }
.mcard .pill{ font-size:.58rem; font-weight:700; letter-spacing:.05em; text-transform:uppercase;
  padding:.26rem .6rem; border-radius:999px; color:var(--ac);
  background:color-mix(in srgb,var(--ac) 10%,transparent); }
.mcard .body{ padding:0 1.4rem 1.45rem; display:flex; flex-direction:column; flex:1; }
.mcard .mi{ font-size:1.7rem; color:var(--ac); line-height:1; }
.mcard h3{ font-weight:600; font-size:1.18rem; line-height:1.2; margin:.6rem 0 0; color:var(--ink); letter-spacing:-.01em; }
.mcard ul{ list-style:none; margin:.95rem 0 0; padding:.95rem 0 0; border-top:1px solid var(--line); flex:1; }
.mcard li{ font-size:.84rem; color:var(--soft); padding:.24rem 0 .24rem 1.2rem; position:relative; }
.mcard li::before{ content:""; position:absolute; left:0; top:.62em; width:5px; height:5px; border-radius:50%; background:var(--ac); }
.mcard .go{ margin-top:1.2rem; display:inline-flex; align-items:center; gap:.5rem; font-size:.84rem; font-weight:600; color:var(--ac); }
.mcard .go .ar{ transition:transform .2s var(--ease); }
.mcard:hover{ transform:translateY(-6px); box-shadow:var(--shadow-m); border-color:color-mix(in srgb,var(--ac) 40%,var(--line)); }
.mcard:hover .go .ar{ transform:translateX(5px); }
.mcard.disabled{ opacity:.9; } .mcard.disabled .go{ color:var(--muted); }

/* integrations marquee — logo-style badges on two counter-scrolling rows */
.integrations{ overflow:hidden; background:var(--bg); }
.marquee{ margin-top:1.4rem;
  -webkit-mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent);
  mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent); }
.marquee.m2{ margin-top:.9rem; }
/* scoped to .marquee — a bare `.track` selector used to leak onto the hero
   verdict meters (which share the class name) and zero them out */
.marquee .track{ display:flex; gap:1.1rem; width:max-content; animation:scroll 42s linear infinite; }
.marquee .track.rev{ animation:scroll-rev 48s linear infinite; }
.marquee .track:hover{ animation-play-state:paused; }
.src-badge{ display:inline-flex; align-items:center; gap:.6rem; white-space:nowrap;
  font-weight:600; font-size:.95rem; color:var(--soft); letter-spacing:-.01em;
  background:var(--card); border:1px solid var(--line); border-radius:14px;
  padding:.6rem 1.1rem .6rem .6rem; box-shadow:var(--shadow-s); transition:.2s; }
.src-badge:hover{ color:var(--ink); transform:translateY(-2px); box-shadow:var(--shadow-m); }
.src-badge .src-logo{ width:30px; height:30px; border-radius:9px; flex:none; object-fit:contain;
  background:#fff; padding:3px; box-shadow:inset 0 0 0 1px rgba(0,0,0,.06); }
@keyframes scroll{ to{ transform:translateX(calc(-100% / 3)); } }
@keyframes scroll-rev{ from{ transform:translateX(calc(-100% / 3)); } to{ transform:translateX(0); } }
[data-theme="dark"] .src-badge{ background:rgba(255,255,255,.05); }

/* audience — light-gray band */
.audience{ background:var(--bg-2); }
.persona-row{ display:grid; grid-template-columns:repeat(3,1fr); gap:1.1rem; }
@media(max-width:960px){ .persona-row{ grid-template-columns:1fr 1fr; } }
@media(max-width:560px){ .persona-row{ grid-template-columns:1fr; } }
.persona-row .persona{ position:relative; display:block; text-align:left; text-decoration:none;
  padding:1.5rem 1.4rem 1.35rem; border-radius:var(--radius-lg); background:var(--card);
  border:1px solid var(--line); box-shadow:var(--shadow-s); overflow:hidden;
  transition:transform .3s var(--ease), box-shadow .3s var(--ease), border-color .3s; }
.persona-row .persona::before{ content:""; position:absolute; inset:0 0 auto 0; height:3px;
  background:var(--pa,#7b4fc4); }
.persona-row .persona::after{ content:""; position:absolute; right:-70px; top:-70px;
  width:190px; height:190px; border-radius:50%; background:var(--pa,#7b4fc4);
  opacity:.07; transition:opacity .3s, transform .4s var(--ease); }
.persona-row .persona:hover{ transform:translateY(-6px); box-shadow:var(--shadow-m);
  border-color:color-mix(in srgb,var(--pa,#7b4fc4) 40%,var(--line)); }
.persona-row .persona:hover::after{ opacity:.13; transform:scale(1.25); }
.persona-row .persona .pi{ width:46px; height:46px; margin:0; border-radius:13px;
  display:grid; place-items:center;
  background:color-mix(in srgb,var(--pa,#7b4fc4) 13%,transparent); color:var(--pa,#7b4fc4); }
.persona-row .persona .pi svg{ width:25px; height:25px; fill:none; stroke:currentColor;
  stroke-width:1.7; stroke-linecap:round; stroke-linejoin:round; }
.persona-row .persona h3{ font-weight:700; font-size:1.08rem; letter-spacing:-.01em;
  margin-top:.85rem; color:var(--ink); }
.persona-row .persona p{ font-size:.85rem; line-height:1.55; color:var(--soft); margin-top:.4rem; }
.persona-row .persona .p-cta{ display:inline-block; margin-top:.8rem; font-size:.8rem;
  font-weight:700; color:var(--pa,#7b4fc4); }
[data-theme="dark"] .persona-row .persona .p-cta{ filter:brightness(1.35); }

/* legacy tile styles (kept for any other .persona usage) */
.persona{ text-align:center; padding:2rem 1rem; border-radius:var(--radius); background:var(--card);
  box-shadow:var(--shadow-s); transition:.3s var(--ease); }
.persona:hover{ transform:translateY(-5px); box-shadow:var(--shadow-m); }
.persona .pi{ display:grid; place-items:center; width:54px; height:54px; margin:0 auto; border-radius:15px;
  background:rgba(123,79,196,.09); color:var(--violet); }
.persona .pi svg{ width:28px; height:28px; fill:none; stroke:currentColor; stroke-width:1.6;
  stroke-linecap:round; stroke-linejoin:round; }
[data-theme="dark"] .persona .pi{ background:rgba(123,79,196,.2); color:#c9c4ff; }
.persona h3{ font-weight:600; font-size:1.02rem; margin-top:.6rem; color:var(--ink); }

/* benefits */
.benefits{ background:var(--bg); }
.benefit-grid{ display:grid; grid-template-columns:repeat(auto-fit,minmax(210px,1fr)); gap:1.1rem; }
.benefit{ border-radius:var(--radius); overflow:hidden; background:var(--bg-2); border:1px solid var(--line);
  transition:.35s var(--ease); }
.benefit:hover{ transform:translateY(-6px); box-shadow:var(--shadow-m); background:var(--card); }
/* illustrated banner — spectral gradient tile with white line-art */
.bn-art{ position:relative; aspect-ratio:16/9; display:grid; place-items:center; overflow:hidden; }
.bn-art::before{ content:""; position:absolute; inset:0;
  background:radial-gradient(120% 95% at 15% 0%, rgba(255,255,255,.30), transparent 55%); }
.bn-art::after{ content:""; position:absolute; inset:0; opacity:.4;
  background-image:linear-gradient(rgba(255,255,255,.11) 1px,transparent 1px),
    linear-gradient(90deg,rgba(255,255,255,.11) 1px,transparent 1px);
  background-size:18px 18px;
  -webkit-mask:radial-gradient(110% 120% at 82% 100%,#000,transparent 68%);
  mask:radial-gradient(110% 120% at 82% 100%,#000,transparent 68%); }
.bn-art svg{ position:relative; z-index:1; width:64%; height:auto;
  filter:drop-shadow(0 8px 16px rgba(0,0,0,.20)); transition:transform .5s var(--ease); }
.benefit:hover .bn-art svg{ transform:scale(1.06); }
.bn-art.g1{ background:linear-gradient(135deg,#f5921e,#ff6a4d); }
.bn-art.g2{ background:linear-gradient(135deg,#ff5d8f,#ff2e63); }
.bn-art.g3{ background:linear-gradient(135deg,#c4399a,#e05aa6); }
.bn-art.g4{ background:linear-gradient(135deg,#7b4fc4,#8f5bd8); }
.bn-art.g5{ background:linear-gradient(135deg,#5b5bf0,#3f83e0); }
.bn-body{ padding:1.35rem 1.5rem 1.6rem; }
.bn-tag{ display:inline-block; font:700 .66rem/1 var(--mono); letter-spacing:.11em; text-transform:uppercase;
  background:var(--iris); -webkit-background-clip:text; background-clip:text; color:transparent; }
.benefit h4{ font-weight:700; font-size:1.14rem; margin:.55rem 0 .4rem; color:var(--ink); letter-spacing:-.01em; }
.benefit p{ color:var(--soft); font-size:.92rem; line-height:1.6; }

/* final cta — dark cinematic close */
.cta-final{ background:var(--bg); }
.cta-final-inner{ position:relative; overflow:hidden; border-radius:var(--radius-lg); text-align:center;
  background:var(--cine); color:#f5f5f7; padding:clamp(3rem,7vw,5.5rem) 1.5rem;
  --ink:#fff; --soft:#a1a1a6; --navy:#bcb6ff; }
.cta-glow{ position:absolute; inset:auto 0 -60% 0; height:120%; z-index:0;
  background:var(--iris); opacity:.22; filter:blur(90px); }
.cta-final h2{ position:relative; z-index:1; font-weight:700; font-size:clamp(2.1rem,5vw,3.6rem);
  line-height:1.06; letter-spacing:-.03em; color:#fff; }
.cta-final p{ position:relative; z-index:1; color:var(--soft); margin:1.15rem auto 0; max-width:54ch; font-size:1.08rem; }
.cta-final .hero-cta{ position:relative; z-index:1; margin-top:2.2rem; justify-content:center; }
.cta-final .ghost{ color:#bcb6ff; }
.cta-final .ghost:hover{ color:#fff; }

/* footer (injected) */
.foot{ position:relative; z-index:2; text-align:center; padding:3rem 1.5rem 5.5rem; border-top:1px solid var(--line); }
.foot-brand{ display:inline-flex; align-items:center; gap:.3rem; font-weight:700; font-size:1.25rem; color:var(--ink); }
.foot p{ color:var(--soft); margin-top:.8rem; font-size:.9rem; }
.foot .muted{ color:var(--muted); font-family:var(--mono); font-size:.74rem; margin-top:.4rem; }

/* sticky bar */
.sticky-cta{ position:fixed; left:50%; bottom:18px; transform:translate(-50%,160%); z-index:60;
  display:flex; align-items:center; gap:1rem; width:min(620px,calc(100% - 2rem)); justify-content:center;
  padding:.6rem .6rem .6rem 1.35rem; border-radius:999px; background:rgba(255,255,255,.82);
  backdrop-filter:saturate(180%) blur(20px); -webkit-backdrop-filter:saturate(180%) blur(20px);
  border:1px solid var(--line); box-shadow:var(--shadow-l); transition:transform .45s var(--ease); }
.sticky-cta.show{ transform:translate(-50%,0); }
.sticky-cta b{ font-weight:600; font-size:.92rem; color:var(--ink); letter-spacing:-.01em; }
.sticky-cta .links-mini{ display:none; }
.sticky-cta a.go-an{ display:inline-flex; align-items:center; gap:.5rem; font-weight:500; font-size:.9rem;
  white-space:nowrap;
  background:var(--ink); color:#fff; padding:.58rem 1.35rem; border-radius:999px; transition:.2s var(--ease); }
.sticky-cta a.go-an:hover{ transform:translateY(-1px); }
.sticky-cta a.go-an span{ transition:transform .2s; } .sticky-cta a.go-an:hover span{ transform:translateX(3px); }
.sticky-cta .sc-close{ background:none; border:none; color:var(--muted); font-size:1.2rem; cursor:pointer; padding:0 .3rem; }
.sticky-cta .sc-close:hover{ color:var(--ink); }
@media(max-width:560px){ .sticky-cta b{ display:none; } }

/* reveal — subtle, Apple-restrained */
.reveal{ opacity:0; transform:translateY(20px); transition:opacity .7s var(--ease), transform .7s var(--ease);
  /* safety net: if the scroll observer never fires, content still appears (no permanently-invisible hero) */
  animation:reveal-fallback .01s linear 1.6s forwards; }
.reveal.in{ opacity:1; transform:none; animation:none; }
@keyframes reveal-fallback{ to{ opacity:1; transform:none; } }
.d1{ transition-delay:.07s; } .d2{ transition-delay:.14s; } .d3{ transition-delay:.21s; } .d4{ transition-delay:.28s; }

/* responsive */
@media(max-width:900px){
  .hero{ grid-template-columns:1fr; }
  .stage{ min-height:380px; margin-top:1rem; }
  .links{ display:none; }
}
@media(prefers-reduced-motion:reduce){ *{ animation:none !important; } .reveal{ opacity:1; transform:none; } }
body.flat .reveal{ opacity:1; transform:none; }

/* ============================ FULL DARK MODE (toggle) ============================ */
:root[data-theme="dark"]{
  --bg:#070a12; --bg-2:#0b1020; --card:#0d1424;
  --ink:#eaf0ff; --soft:#b9c2da; --muted:#7e88a6;
  --line:rgba(140,160,220,.14); --line-2:rgba(140,160,220,.24);
  --glass:rgba(13,20,36,.66); --cine:#05070e; --cine-2:#0b1020;
  --navy:#9b9bff;
  --c-blue:#5fa0ff; --c-indigo:#8a86ff; --c-cyan:#46d6e0; --c-violet:#b48bff;
  --c-magenta:#ff79c0; --c-green:#54dca0; --c-orange:#ffb056; --c-slate:#a6b0d6;
  --shadow-s:0 1px 2px rgba(0,0,0,.5),0 10px 30px -16px rgba(0,0,0,.8);
  --shadow-m:0 2px 8px rgba(0,0,0,.5),0 30px 70px -30px rgba(0,0,0,.85);
  --shadow-l:0 46px 100px -36px rgba(0,0,0,.9);
}
[data-theme="dark"] .nav{ background:rgba(0,0,0,.6); }
[data-theme="dark"] .ghost:hover{ background:rgba(255,255,255,.08); }
[data-theme="dark"] .hero-cta .ghost{ color:var(--navy); }
[data-theme="dark"] .engine{ --card:rgba(255,255,255,.04); }
[data-theme="dark"] .stat{ background:var(--card); }
[data-theme="dark"] .m .track,[data-theme="dark"] .p-foot .tag{ background:rgba(255,255,255,.08); }
[data-theme="dark"] .sticky-cta{ background:rgba(13,20,36,.78); }
[data-theme="dark"] .sticky-cta a.go-an{ background:#f5f5f7; color:#0b1020; }

/* ============================================================================
   Commercial sections — pricing · FAQs · contact  (token-metered product)
   ========================================================================== */
.pricing,.faqs,.contact{ padding:clamp(3rem,7vw,6rem) clamp(1rem,5vw,2rem);
  max-width:1180px; margin:0 auto; }

[data-theme="dark"] .rg-nl-row button{ background:#635bff; }

/* ── pricing ── */
.price-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:1.2rem;
  margin-top:2.4rem; }
/* The plans fetch failed (commerce.js). Above the published cards on /pricing/;
   inside the grid on the homepage, which has no published cards to keep. */
.pricing-unavailable{ display:flex; flex-wrap:wrap; align-items:center; gap:.7rem 1.2rem;
  margin-top:2.4rem; padding:.9rem 1.2rem; background:var(--card); color:var(--soft);
  border:1px solid var(--line-2); border-radius:var(--radius-lg); }
.pricing-unavailable p{ flex:1 1 18rem; margin:0; font-size:.92rem; line-height:1.5; }
.pricing-unavailable .pc-btn{ flex:0 0 auto; width:auto; margin:0; padding:.6rem 1.4rem; }
.pricing-unavailable + .price-grid{ margin-top:1.2rem; }
.price-grid > .pricing-unavailable{ grid-column:1/-1; margin-top:0; }
/* The published cards link where the live ones have buttons; a link does not
   centre its label the way a button does. */
a.pc-btn{ display:block; text-align:center; text-decoration:none; }
.price-card{ position:relative; background:var(--card); border:1px solid var(--line);
  border-radius:var(--radius-lg); padding:1.8rem; box-shadow:var(--shadow-s);
  display:flex; flex-direction:column; transition:transform .4s var(--ease),box-shadow .4s var(--ease); }
.price-card:hover{ transform:translateY(-4px); box-shadow:var(--shadow-m); }
.price-card.featured{ border-color:transparent;
  box-shadow:0 0 0 2px #7b4fc4,var(--shadow-m); }
.pc-tag{ position:absolute; top:-12px; left:50%; transform:translateX(-50%);
  background:var(--iris); color:#fff; font-size:.7rem; font-weight:700;
  letter-spacing:.03em; padding:.3rem .8rem; border-radius:999px; white-space:nowrap; }
.pc-name{ font-weight:700; font-size:1.05rem; color:var(--soft); }
.pc-price{ font-size:2.5rem; font-weight:800; letter-spacing:-.03em; margin:.3rem 0 .1rem; }
.pc-price small{ font-size:1rem; font-weight:500; color:var(--muted); }
/* struck-through regular price + limited-time offer note */
.pc-price .pc-was{ font-size:1.15rem; font-weight:600; color:var(--muted);
  text-decoration:line-through; text-decoration-color:rgba(0,0,0,.3);
  margin-right:.5rem; letter-spacing:-.01em; vertical-align:middle; }
[data-theme="dark"] .pc-price .pc-was{ text-decoration-color:rgba(255,255,255,.35); }
.pc-offer{ display:inline-block; font-size:.72rem; font-weight:600; color:#9a5b00;
  background:linear-gradient(100deg,#fbe6b4,#f7d68a); border-radius:999px;
  padding:.2rem .6rem; margin:.1rem 0 .3rem; letter-spacing:.01em; }
[data-theme="dark"] .pc-offer{ color:#3a2a08; }
/* currency switcher */
.ccy-mount{ display:flex; justify-content:center; margin:0 0 1.4rem; }
.ccy-switch{ display:inline-flex; align-items:center; gap:.45rem; font-size:.85rem;
  color:var(--soft); border:1px solid var(--line); border-radius:999px; padding:.35rem .8rem;
  background:var(--card); }
.ccy-switch .ccy-globe{ opacity:.6; }
.ccy-switch select{ border:none; background:none; font:inherit; color:var(--ink);
  font-weight:600; cursor:pointer; outline:none; }

/* ░ Institution band ░ */
.inst-band{ margin-top:1.2rem; display:grid; grid-template-columns:1.1fr 1fr; gap:2rem;
  align-items:center; padding:2rem clamp(1.4rem,3vw,2.4rem); border-radius:var(--radius-lg);
  border:1px solid var(--line-2); background:
    radial-gradient(120% 140% at 0% 0%, rgba(123,79,196,.10), transparent 60%), var(--card);
  box-shadow:var(--shadow-m); position:relative; overflow:hidden; }
.inst-band::before{ content:""; position:absolute; inset:0 auto 0 0; width:4px; background:var(--iris); }
.inst-kick{ font-size:.74rem; font-weight:700; letter-spacing:.08em; text-transform:uppercase;
  color:var(--violet); }
.inst-name{ font-family:var(--disp); font-weight:700; font-size:1.9rem; letter-spacing:-.02em; margin:.35rem 0 .2rem; }
.inst-blurb{ color:var(--soft); font-size:.95rem; line-height:1.55; max-width:44ch; margin-bottom:.9rem; }
.inst-price{ font-size:2.4rem; font-weight:800; letter-spacing:-.03em; }
.inst-price small{ font-size:.95rem; font-weight:500; color:var(--muted); }
.inst-price .inst-was{ font-size:1.15rem; font-weight:600; color:var(--muted);
  text-decoration:line-through; text-decoration-color:rgba(0,0,0,.3); margin-right:.5rem; vertical-align:middle; }
[data-theme="dark"] .inst-price .inst-was{ text-decoration-color:rgba(255,255,255,.35); }
.inst-offer{ display:inline-block; font-size:.72rem; font-weight:600; color:#9a5b00;
  background:linear-gradient(100deg,#fbe6b4,#f7d68a); border-radius:999px; padding:.2rem .6rem; margin:.5rem 0; }
[data-theme="dark"] .inst-offer{ color:#3a2a08; }
.inst-cta{ display:flex; align-items:center; gap:1.1rem; flex-wrap:wrap; margin-top:.9rem; }
.inst-cta .pc-btn{ width:auto; padding-inline:1.6rem; }
.inst-quote{ font-size:.9rem; font-weight:500; color:var(--violet); }
.inst-quote:hover{ text-decoration:underline; }
.inst-perks{ list-style:none; display:grid; grid-template-columns:1fr 1fr; gap:.5rem 1.2rem; }
.inst-perks li{ position:relative; padding-left:1.4rem; font-size:.88rem; color:var(--soft); line-height:1.45; }
.inst-perks li::before{ content:"✓"; position:absolute; left:0; color:var(--good); font-weight:700; }
@media(max-width:820px){ .inst-band{ grid-template-columns:1fr; gap:1.3rem; }
  .inst-perks{ grid-template-columns:1fr; } }
.pc-tokens{ font-size:.9rem; color:var(--navy); font-weight:600; margin-bottom:1.1rem; }
.pc-perks{ list-style:none; display:flex; flex-direction:column; gap:.6rem;
  margin:0 0 1.5rem; flex:1; }
.pc-perks li{ position:relative; padding-left:1.5rem; font-size:.92rem; color:var(--ink); }
.pc-perks li::before{ content:"✓"; position:absolute; left:0; color:var(--good); font-weight:700; }
.pc-btn{ width:100%; padding:.85rem; border:0; border-radius:14px; font-family:inherit;
  font-weight:700; font-size:.96rem; cursor:pointer; color:#fff; background:var(--ink);
  transition:transform .2s var(--ease),box-shadow .2s var(--ease); }
[data-theme="dark"] .pc-btn{ background:#f5f5f7; color:#08080c; }
.pc-btn:hover{ transform:translateY(-2px); box-shadow:var(--shadow-s); }
.pc-btn.iris{ background:var(--iris); color:#fff; }
/* PayPal as a second, quieter action under the primary button. Their brand
   yellow is fixed in both themes — it is PayPal's colour, not ours, and users
   recognise the button by it. Starts hidden and is revealed only when
   /auth/api/paypal/config reports the gateway configured. */
.pc-paypal{ margin-top:.55rem; background:#ffc439; color:#003087;
  letter-spacing:.02em; font-size:.92rem; }
[data-theme="dark"] .pc-paypal{ background:#ffc439; color:#003087; }
.pc-paypal .pl{ color:#0070ba; }
.pc-paypal:hover{ background:#f0b90b; }
.pc-paypal.hide{ display:none; }
.pc-paypal:disabled{ opacity:.65; cursor:default; transform:none; }
.price-legend{ display:flex; flex-wrap:wrap; justify-content:center; gap:1rem 2rem;
  margin-top:2.2rem; }
.price-legend span{ font-size:.85rem; color:var(--soft); }
.price-legend b{ color:var(--navy); }

/* ── FAQs ── */
.faq-list{ max-width:780px; margin:2.2rem auto 0; display:flex;
  flex-direction:column; gap:.7rem; }
.faq-item{ border:1px solid var(--line); border-radius:16px; overflow:hidden;
  background:var(--card); transition:border-color .3s; }
.faq-item.open{ border-color:var(--line-2); }
.faq-q{ width:100%; text-align:left; background:transparent; border:0; cursor:pointer;
  padding:1.1rem 1.3rem; font-family:inherit; font-size:1.02rem; font-weight:600;
  color:var(--ink); display:flex; align-items:center; justify-content:space-between; gap:1rem; }
.faq-ic{ flex:none; width:24px; height:24px; border-radius:50%; display:grid;
  place-items:center; background:var(--iris); color:#fff; font-size:1.1rem; line-height:1;
  transition:transform .3s var(--ease); }
.faq-item.open .faq-ic{ transform:rotate(45deg); }
.faq-a{ max-height:0; overflow:hidden; transition:max-height .4s var(--ease); }
.faq-item.open .faq-a{ max-height:320px; }
.faq-a p{ padding:0 1.3rem 1.2rem; color:var(--soft); font-size:.95rem; line-height:1.6; }

/* ── contact ── */
.contact-inner{ display:grid; grid-template-columns:1fr 1fr; gap:clamp(1.5rem,5vw,4rem);
  align-items:center; background:var(--card); border:1px solid var(--line);
  border-radius:var(--radius-lg); padding:clamp(1.6rem,4vw,3rem); box-shadow:var(--shadow-s); }
.contact-copy h2{ font-size:clamp(1.6rem,3vw,2.3rem); font-weight:800;
  letter-spacing:-.02em; margin:.5rem 0; }
.contact-copy p{ color:var(--soft); max-width:38ch; }
.contact-meta{ display:flex; flex-direction:column; gap:.5rem; margin-top:1.4rem;
  font-size:.9rem; color:var(--navy); font-weight:600; }
.contact-form{ display:flex; flex-direction:column; gap:.8rem; }
.cf-row{ display:grid; grid-template-columns:1fr 1fr; gap:.8rem; }
.contact-form input,.contact-form textarea{ width:100%; padding:.85rem 1rem;
  border:1px solid var(--line-2); border-radius:13px; font-family:inherit; font-size:.96rem;
  color:var(--ink); background:var(--bg); transition:border-color .2s,box-shadow .2s; resize:vertical; }
.contact-form input:focus,.contact-form textarea:focus{ outline:none; border-color:var(--navy);
  box-shadow:0 0 0 4px color-mix(in srgb,var(--navy) 18%,transparent); }
.contact-form button{ align-self:flex-start; }
.cf-msg{ font-size:.9rem; }
.cf-msg.ok{ color:var(--good); }
.cf-msg.err{ color:#e5484d; }

/* ── toast ── */
#rg-toast{ position:fixed; left:50%; bottom:24px; transform:translate(-50%,140%);
  background:var(--ink); color:var(--bg); padding:.85rem 1.3rem; border-radius:999px;
  font-size:.92rem; font-weight:600; box-shadow:var(--shadow-m); z-index:9998;
  transition:transform .4s var(--ease); max-width:90vw; }
#rg-toast.show{ transform:translate(-50%,0); }
#rg-toast.err{ background:#e5484d; color:#fff; }

@media(max-width:860px){
  .price-grid{ grid-template-columns:1fr; max-width:420px; margin-inline:auto; }
  .contact-inner{ grid-template-columns:1fr; }
}
@media(max-width:520px){ .cf-row{ grid-template-columns:1fr; } }

/* ============================================================================
   Shared site chrome — premium Aurora-Glass nav + mega-menu + footer (site.js)
   ========================================================================== */
.rgn{ position:sticky; top:0; z-index:80; padding:.55rem clamp(1rem,4vw,2rem);
  background:rgba(255,255,255,.62); backdrop-filter:saturate(180%) blur(22px);
  -webkit-backdrop-filter:saturate(180%) blur(22px);
  border-bottom:1px solid transparent; transition:border-color .3s, background .3s; }
.rgn.scrolled{ border-color:var(--line); background:rgba(255,255,255,.82); }
[data-theme="dark"] .rgn{ background:rgba(8,8,12,.55); }
[data-theme="dark"] .rgn.scrolled{ background:rgba(8,8,12,.82); border-color:var(--line); }
.rgn-in{ max-width:1240px; margin:0 auto; display:flex; align-items:center;
  justify-content:space-between; gap:1rem; }
.rgn-logo{ display:inline-flex; align-items:center; gap:.05rem; font-weight:600; font-size:1.34rem;
  letter-spacing:-.02em; color:var(--ink); }
.rgn-logo .w1{ color:var(--ink); font-weight:600; }
.rgn-logo .w2{ font-weight:800;
  background:linear-gradient(95deg,#f5921e 0%,#c4399a 48%,#7b4fc4 100%);
  -webkit-background-clip:text; background-clip:text; -webkit-text-fill-color:transparent;
  color:transparent; }
.rgn-logo .dotai{ background:none; color:#b17c20; -webkit-text-fill-color:currentColor;
  font-weight:800; letter-spacing:-.04em; }

.rgn-links{ display:flex; align-items:center; gap:.25rem; }
.rgn-links > a, .rgn-dt{ position:relative; font:600 .94rem/1 var(--font); color:var(--soft);
  background:none; border:0; cursor:pointer; padding:.55rem .8rem; border-radius:10px;
  display:inline-flex; align-items:center; gap:.3rem; transition:color .2s, background .2s; }
.rgn-links > a:hover, .rgn-dt:hover{ color:var(--ink); background:color-mix(in srgb,var(--ink) 6%,transparent); }
.rgn-links > a.on, .rgn-dt.on{ color:var(--ink); }
.rgn-links > a.on::after{ content:""; position:absolute; left:.8rem; right:.8rem; bottom:.3rem;
  height:2px; border-radius:2px; background:var(--iris); }
.rgn-car{ font-size:.6rem; transition:transform .25s var(--ease); }

/* mega dropdown */
.rgn-drop{ position:relative; }
.rgn-mega{ position:absolute; top:calc(100% + 10px); left:50%; transform:translateX(-50%) translateY(8px);
  width:min(720px,86vw); background:var(--card); border:1px solid var(--line);
  border-radius:20px; box-shadow:var(--shadow-l); padding:1.2rem; opacity:0; visibility:hidden;
  transition:opacity .22s var(--ease), transform .22s var(--ease); }
/* Invisible bridge across the 10px gap above the panel.
   The panel is offset from the trigger for looks, but :hover lives on
   .rgn-drop — so moving the pointer down towards the menu crossed a strip
   where neither the trigger nor the panel was underneath it, :hover was lost,
   and the menu shut before the cursor arrived. It read as the menu snapping
   away for no reason.
   This strip is a child of .rgn-mega, so hovering it keeps the ancestor's
   :hover alive and the pointer never leaves. Height must stay >= the gap in
   `top` above; it is invisible and does not affect layout. */
.rgn-mega::before{ content:""; position:absolute; left:0; right:0; top:-14px;
  height:14px; }
.rgn-drop:hover .rgn-mega, .rgn-drop.open .rgn-mega{ opacity:1; visibility:visible; transform:translateX(-50%) translateY(0); }
.rgn-drop:hover .rgn-car, .rgn-drop.open .rgn-car{ transform:rotate(180deg); }
.rgn-mega-grid{ display:grid; grid-template-columns:repeat(5,1fr); gap:1rem; }
.rgn-col-h{ font:700 .68rem/1 var(--mono); letter-spacing:.1em; text-transform:uppercase;
  color:var(--muted); margin-bottom:.6rem; }
.rgn-col a{ display:flex; align-items:center; gap:.3rem; font-size:.85rem; color:var(--soft);
  padding:.3rem 0; border-radius:6px; transition:color .15s; }
.rgn-col a:hover{ color:var(--navy); }
.rgn-pro{ font:700 .54rem/1 var(--mono); letter-spacing:.06em; font-style:normal;
  color:#7a5a12; background:linear-gradient(100deg,#fbe9c2,#f3d18a); padding:.12rem .3rem; border-radius:5px; }
.rgn-mega-all{ display:inline-flex; align-items:center; gap:.4rem; margin-top:1rem;
  font-weight:700; font-size:.9rem; color:var(--navy); }
.rgn-mega-all span{ transition:transform .2s; } .rgn-mega-all:hover span{ transform:translateX(4px); }

.rgn-cta{ display:flex; align-items:center; gap:.6rem; }
.rgn-ghost{ font:600 .9rem/1 var(--font); color:var(--ink); padding:.55rem .9rem; border-radius:11px;
  border:1px solid var(--line-2); transition:.2s; }
.rgn-ghost:hover{ background:color-mix(in srgb,var(--ink) 6%,transparent); }
.rgn-burger{ display:none; flex-direction:column; gap:4px; background:none; border:0; cursor:pointer; padding:8px; }
.rgn-burger span{ width:22px; height:2px; background:var(--ink); border-radius:2px; transition:.25s; }

/* mobile drawer */
.rgn-drawer{ display:none; flex-direction:column; gap:.2rem; padding:.6rem .4rem 0; }
.rgn-drawer a{ padding:.8rem 1rem; border-radius:10px; font-weight:600; color:var(--ink); }
.rgn-drawer a:hover{ background:color-mix(in srgb,var(--ink) 6%,transparent); }
.rgn-drawer-cta{ background:var(--iris); color:#fff !important; text-align:center; margin-top:.4rem; }
.rgn.drawer-open .rgn-drawer{ display:flex; }
.rgn.drawer-open .rgn-burger span:nth-child(1){ transform:translateY(6px) rotate(45deg); }
.rgn.drawer-open .rgn-burger span:nth-child(2){ opacity:0; }
.rgn.drawer-open .rgn-burger span:nth-child(3){ transform:translateY(-6px) rotate(-45deg); }

@media(max-width:920px){
  .rgn-links{ display:none; }
  .rgn-ghost{ display:none; }
  /* .rgn-solid is hidden by a later rule (after its base definition) so it wins
     on source order; here we just reveal the burger and let the row shrink. */
  .rgn-burger{ display:flex; }
  /* let the CTA cluster shrink rather than force the header wider than the screen */
  .rgn-cta{ min-width:0; gap:.4rem; }
  .rgn-in{ gap:.5rem; }
}
/* very small phones: tighten the logo so it never crowds the burger */
@media(max-width:380px){
  .rgn-logo{ font-size:1.16rem; }
}

/* ── footer ── */
.rgf{ background:var(--bg-2); border-top:1px solid var(--line); margin-top:4rem;
  padding:clamp(2.5rem,5vw,4rem) clamp(1rem,4vw,2rem) 1.5rem; }
[data-theme="dark"] .rgf{ background:var(--cine-2); }
.rgf-in{ max-width:1240px; margin:0 auto; display:grid; grid-template-columns:1.4fr 2fr;
  gap:clamp(2rem,5vw,4rem); }
.rgf-brand p{ color:var(--soft); font-size:.92rem; max-width:42ch; margin:1rem 0 1.2rem; }
.rgf-badges{ display:flex; flex-wrap:wrap; gap:.5rem; }
.rgf-badges span{ font:600 .72rem/1 var(--font); color:var(--soft); border:1px solid var(--line);
  padding:.35rem .65rem; border-radius:999px; }
.rgf-cols{ display:grid; grid-template-columns:repeat(4,1fr); gap:1.5rem; }
.rgf-cols h5{ font:700 .72rem/1 var(--mono); letter-spacing:.1em; text-transform:uppercase;
  color:var(--muted); margin-bottom:.9rem; }
.rgf-cols a{ display:block; color:var(--soft); font-size:.9rem; padding:.32rem 0; transition:color .15s; }
.rgf-cols a:hover{ color:var(--navy); }
.rgf-base{ max-width:1240px; margin:2.5rem auto 0; padding-top:1.3rem; border-top:1px solid var(--line);
  display:flex; flex-wrap:wrap; justify-content:space-between; gap:.6rem;
  font-size:.82rem; color:var(--muted); }
.rgf-mono{ font-family:var(--mono); }
@media(max-width:760px){ .rgf-in{ grid-template-columns:1fr; } .rgf-cols{ grid-template-columns:repeat(2,1fr); } }
@media(max-width:480px){ .rgf-cols{ grid-template-columns:1fr 1fr; } }

/* newsletter sign-up (form.rg-nl, wired by site.js): the footer strip and
   the in-page card on the conference board, conference pages and guides */
.rg-nl{ display:grid; gap:.7rem; }
.rg-nl-copy b{ display:block; font:600 1.02rem/1.35 var(--font); color:var(--ink); }
.rg-nl-copy span{ display:block; color:var(--soft); font-size:.88rem; margin-top:.2rem; }
.rg-nl-copy a{ color:inherit; text-decoration:underline; text-underline-offset:2px; }
.rg-nl-row{ display:flex; flex-wrap:wrap; gap:.5rem; }
.rg-nl-row input[type=email], .rg-nl-row select{ flex:1 1 220px; min-width:0; font:500 .95rem var(--font);
  color:var(--ink); background:var(--card); border:1px solid var(--line-2); border-radius:12px;
  padding:.7rem .9rem; }
.rg-nl-row select{ flex:0 1 210px; }
.rg-nl-row input:focus-visible, .rg-nl-row select:focus-visible{ outline:2px solid var(--navy); outline-offset:1px; }
.rg-nl-row button{ font:600 .95rem var(--font); color:#fff; background:var(--navy); border:0;
  border-radius:12px; padding:.7rem 1.15rem; cursor:pointer; }
.rg-nl-row button:disabled{ opacity:.6; cursor:wait; }
.rg-nl-hp{ position:absolute !important; left:-9999px; width:1px; height:1px; opacity:0; }
.rg-nl-msg{ margin:0; min-height:1.2em; font-size:.88rem; color:var(--soft); }
.rg-nl.done .rg-nl-msg{ color:var(--good); }
.rg-nl.err .rg-nl-msg{ color:#d4483b; }
.rgf-nl{ max-width:1240px; margin:2.5rem auto 0; padding-top:1.6rem; border-top:1px solid var(--line);
  grid-template-columns:minmax(0,1fr) minmax(0,1.1fr); align-items:center; column-gap:2rem; }
.rgf-nl .rg-nl-msg{ grid-column:1 / -1; }
@media(max-width:760px){ .rgf-nl{ grid-template-columns:1fr; } }
.nl-card{ max-width:760px; margin:2.5rem auto; padding:1.6rem 1.7rem; border:1px solid var(--line);
  border-radius:var(--radius); background:var(--card); box-shadow:var(--shadow-s); }
.nl-card h2{ font:600 clamp(1.25rem,2.2vw,1.55rem)/1.25 var(--disp); margin:0 0 .3rem; color:var(--ink); }
.nl-card > p{ color:var(--soft); margin:0 0 1rem; font-size:.95rem; }

/* homepage: static links to the /tools/ and /guides/ pages (written by
   scripts/seo_build.py) — plain anchors a crawler can follow without JS */
.seo-links{ max-width:1240px; margin:clamp(3rem,6vw,5rem) auto 0; padding:0 clamp(1rem,4vw,2rem);
  display:grid; grid-template-columns:2fr 1fr; gap:clamp(1.5rem,4vw,3rem); }
.seo-links h2{ font:700 .72rem/1 var(--mono); letter-spacing:.1em; text-transform:uppercase;
  color:var(--muted); margin-bottom:.9rem; }
.seo-links p{ display:flex; flex-wrap:wrap; gap:.5rem; margin:0; }
.seo-links a{ font:600 .86rem/1 var(--font); color:var(--soft); border:1px solid var(--line);
  border-radius:999px; padding:.55rem .9rem; transition:color .15s,border-color .15s; }
.seo-links a:hover{ color:var(--navy); border-color:var(--navy); }
.seo-links .seo-about{ grid-column:1/-1; }
.seo-links .seo-def{ display:block; font:400 .95rem/1.65 var(--font); color:var(--soft); max-width:88ch; }
.seo-links .seo-def a{ display:inline; font:inherit; color:var(--navy); border:0; border-radius:0;
  padding:0; text-decoration:underline; text-underline-offset:2px; }
@media(max-width:760px){ .seo-links{ grid-template-columns:1fr; } }

/* ============================================================================
   Marketing page shell — used by /about /services /pricing /contact
   ========================================================================== */
.page{ max-width:1180px; margin:0 auto; padding:clamp(2.5rem,6vw,5rem) clamp(1rem,5vw,2rem) 0; }
.page-hero{ text-align:center; max-width:780px; margin:0 auto clamp(2.5rem,5vw,4rem); }
.page-eyebrow{ display:inline-flex; align-items:center; gap:.5rem; font:600 .8rem/1 var(--font);
  color:var(--navy); background:color-mix(in srgb,var(--navy) 10%,transparent);
  padding:.45rem .9rem; border-radius:999px; margin-bottom:1.2rem; }
.page-hero h1{ font-size:clamp(2.2rem,5vw,3.6rem); font-weight:800; letter-spacing:-.03em; line-height:1.04; }
.page-hero h1 em{ font-style:italic; background:var(--iris); -webkit-background-clip:text;
  background-clip:text; color:transparent; }
.page-hero p{ color:var(--soft); font-size:1.08rem; margin-top:1.1rem; }
.section-h{ text-align:center; max-width:640px; margin:0 auto clamp(1.8rem,4vw,2.6rem); }
.section-h .kick{ font:700 .72rem/1 var(--mono); letter-spacing:.12em; text-transform:uppercase;
  background:var(--iris); -webkit-background-clip:text; background-clip:text; color:transparent; }
.section-h h2{ font-size:clamp(1.7rem,3.5vw,2.6rem); font-weight:800; letter-spacing:-.02em; margin-top:.6rem; }
.section-h p{ color:var(--soft); margin-top:.7rem; }

/* ============================================================================
   Marketing page components — buttons, About, Services, Pricing tokens, Contact
   ========================================================================== */
.btn-iris{ display:inline-flex; align-items:center; justify-content:center; gap:.5rem;
  padding:.85rem 1.5rem; border:0; border-radius:8px; font:700 .98rem/1 var(--font);
  color:#fff; background:#635bff; box-shadow:0 3px 5px rgba(99,91,255,.1); cursor:pointer; transition:transform .2s var(--ease),box-shadow .2s var(--ease); }
.btn-iris:hover{ background:#5147eb; transform:translateY(-1px); box-shadow:0 7px 16px -10px rgba(99,91,255,.5); }
.btn-ghost{ display:inline-flex; align-items:center; justify-content:center; gap:.5rem;
  padding:.85rem 1.4rem; border-radius:14px; font:600 .96rem/1 var(--font); color:var(--ink);
  border:1px solid var(--line-2); transition:.2s; }
.btn-ghost:hover{ background:color-mix(in srgb,var(--ink) 6%,transparent); }

.page-cta{ text-align:center; margin:clamp(3.5rem,7vw,6rem) auto 0; padding:clamp(2.5rem,5vw,4rem) 1.5rem;
  background:var(--bg-2); border:1px solid var(--line); border-radius:var(--radius-lg); }
[data-theme="dark"] .page-cta{ background:var(--cine-2); }
.page-cta h2{ font-size:clamp(1.7rem,3.4vw,2.5rem); font-weight:800; letter-spacing:-.02em; }
.page-cta p{ color:var(--soft); margin:.6rem 0 1.6rem; }
.pc-actions{ display:flex; gap:.8rem; justify-content:center; flex-wrap:wrap; }

/* ── About ── */
.about-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:1.2rem; }
.about-card{ background:var(--card); border:1px solid var(--line); border-radius:var(--radius-lg);
  padding:1.8rem; box-shadow:var(--shadow-s); transition:transform .3s var(--ease),box-shadow .3s; }
.about-card:hover{ transform:translateY(-4px); box-shadow:var(--shadow-m); }
.ac-ic{ display:grid; place-items:center; width:48px; height:48px; border-radius:14px; font-size:1.5rem;
  color:#fff; background:var(--iris); margin-bottom:1rem; }
.about-card h3{ font-size:1.2rem; font-weight:700; letter-spacing:-.01em; }
.about-card p{ color:var(--soft); margin-top:.6rem; font-size:.95rem; line-height:1.6; }
.who-row{ display:grid; grid-template-columns:repeat(4,1fr); gap:1rem; }
.who{ background:var(--card); border:1px solid var(--line); border-radius:18px; padding:1.4rem;
  text-align:center; transition:transform .3s var(--ease),border-color .3s; }
.who:hover{ transform:translateY(-4px); border-color:var(--line-2); }
.who span{ font-size:2rem; display:block; }
.who b{ display:block; margin:.6rem 0 .2rem; font-size:1.05rem; }
.who i{ font-style:normal; color:var(--soft); font-size:.86rem; }

/* ── Services ── */
.svc-search{ position:relative; max-width:540px; margin:1.8rem auto 0; }
.svc-search input{ width:100%; font:500 1rem/1 var(--font); color:var(--ink); background:var(--card);
  border:1px solid var(--line-2); border-radius:14px; padding:.95rem 1rem .95rem 2.8rem; box-shadow:var(--shadow-s); }
.svc-search input:focus{ outline:none; border-color:var(--navy); box-shadow:0 0 0 4px color-mix(in srgb,var(--navy) 16%,transparent); }
.svc-search .si{ position:absolute; left:1rem; top:50%; transform:translateY(-50%); color:var(--muted); font-size:1.1rem; }
.svc-chips{ display:flex; flex-wrap:wrap; justify-content:center; gap:.5rem; margin:0 0 2.5rem; }
.svc-chip{ font:600 .88rem/1 var(--font); color:var(--soft); background:var(--card);
  border:1px solid var(--line); border-radius:999px; padding:.5rem 1.05rem; cursor:pointer; transition:.2s; }
.svc-chip:hover{ border-color:var(--navy); color:var(--navy); }
.svc-chip.on{ background:var(--ink); border-color:var(--ink); color:var(--bg); }
.svc-sec{ margin-bottom:clamp(2rem,4vw,3rem); }
.svc-h{ display:flex; align-items:center; gap:.8rem; margin-bottom:1.2rem; }
.svc-h-ic{ display:grid; place-items:center; width:36px; height:36px; border-radius:10px; font-size:1.1rem;
  color:#fff; background:linear-gradient(135deg,var(--a),color-mix(in srgb,var(--a) 60%,#1a1430)); }
.svc-h h2{ font-size:1.4rem; font-weight:800; letter-spacing:-.01em; }
.svc-line{ flex:1; height:1px; background:var(--line); }
.svc-n{ font:500 .74rem/1 var(--mono); color:var(--muted); }
.svc-grid{ display:grid; grid-template-columns:repeat(auto-fill,minmax(248px,1fr)); gap:1rem; }
.svc-card{ position:relative; display:flex; flex-direction:column; background:var(--card);
  border:1px solid var(--line); border-radius:16px; padding:1.2rem; box-shadow:var(--shadow-s);
  transition:transform .2s var(--ease),border-color .2s,box-shadow .2s; overflow:hidden; }
.svc-card::before{ content:""; position:absolute; inset:0 0 auto; height:3px; background:var(--a); opacity:0; transition:.2s; }
.svc-card:hover{ transform:translateY(-4px); border-color:var(--a); box-shadow:var(--shadow-m); }
.svc-card:hover::before{ opacity:1; }
.svc-top{ display:flex; align-items:center; justify-content:space-between; margin-bottom:.8rem; }
.svc-ic{ display:grid; place-items:center; width:38px; height:38px; border-radius:11px; font-size:1.1rem;
  color:var(--a); background:color-mix(in srgb,var(--a) 12%,transparent); }
.svc-badge{ font:500 .68rem/1 var(--mono); color:var(--navy); background:var(--bg-2);
  border-radius:20px; padding:.2rem .5rem; }
.svc-badge.pro{ color:#7a5a12; background:linear-gradient(100deg,#fbe9c2,#f3d18a); font-weight:700; letter-spacing:.04em; }
.svc-nm{ font-weight:700; font-size:1rem; letter-spacing:-.01em; }
.svc-ds{ color:var(--soft); font-size:.84rem; line-height:1.5; margin:.3rem 0 .9rem; flex:1; }
.svc-go{ display:inline-flex; align-items:center; gap:.35rem; font:600 .82rem/1 var(--font); color:var(--a); }
.svc-go span{ transition:transform .2s; } .svc-card:hover .svc-go span{ transform:translateX(4px); }
.svc-empty{ text-align:center; color:var(--muted); padding:3rem 0; }

/* ── Pricing tokens ── */
.token-how{ margin-top:clamp(3rem,6vw,5rem); }
.token-row{ display:grid; grid-template-columns:repeat(4,1fr); gap:1rem; }
.token-card{ text-align:center; background:var(--card); border:1px solid var(--line); border-radius:18px;
  padding:1.6rem 1.2rem; }
.token-card b{ display:block; font-size:1.6rem; font-weight:800; background:var(--iris);
  -webkit-background-clip:text; background-clip:text; color:transparent; }
.token-card span{ display:block; font-weight:700; margin:.3rem 0; }
.token-card i{ font-style:normal; color:var(--soft); font-size:.82rem; line-height:1.5; }
.faqs{ margin-top:clamp(3rem,6vw,5rem); }

/* ── Pricing: the token math (usage-based prices, explained with a grin) ── */
.token-math{ margin-top:clamp(2.5rem,5vw,4rem); }
.tm-lede{ max-width:62ch; margin:-.4rem auto 1.6rem; text-align:center; color:var(--soft);
  font-size:.98rem; line-height:1.65; }
.tm-formula{ max-width:640px; margin:0 auto 1.8rem; background:var(--card); border:1px solid var(--line);
  border-radius:18px; padding:1.2rem 1.4rem; font-family:var(--mono); font-size:.9rem; line-height:1.8;
  color:var(--ink); overflow-x:auto; }
.tm-formula .op{ color:var(--muted); }
.tm-formula small{ display:block; margin-top:.5rem; font-family:var(--font); font-size:.8rem; color:var(--soft); }
.tm-grid{ display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:1rem; }
.tm-row{ background:var(--card); border:1px solid var(--line); border-radius:18px; padding:1.1rem 1.2rem;
  display:grid; grid-template-columns:1fr auto; gap:.2rem 1rem; align-items:baseline; }
.tm-row h3{ margin:0; font-size:.98rem; font-weight:700; color:var(--ink); }
.tm-row .tm-sum{ grid-column:1 / -1; font-family:var(--mono); font-size:.8rem; color:var(--muted); }
.tm-row .tm-cost{ font-weight:800; font-size:1.25rem; white-space:nowrap; background:var(--iris);
  -webkit-background-clip:text; background-clip:text; color:transparent; }
.tm-row p{ grid-column:1 / -1; margin:.35rem 0 0; font-size:.86rem; line-height:1.55; color:var(--soft); }
.tm-plans{ margin:1.8rem auto 0; max-width:760px; text-align:center; font-size:.95rem; line-height:1.7;
  color:var(--soft); }
.tm-plans b{ color:var(--ink); }
.tm-fine{ margin:1rem auto 0; max-width:62ch; text-align:center; font-size:.78rem; color:var(--muted); }
@media(max-width:720px){ .tm-grid{ grid-template-columns:1fr; } }

/* ── Contact ── */
.contact-wrap{ display:grid; grid-template-columns:.8fr 1.2fr; gap:clamp(1.5rem,4vw,3rem);
  align-items:start; }
.contact-aside{ background:var(--card); border:1px solid var(--line); border-radius:var(--radius-lg);
  padding:1.8rem; box-shadow:var(--shadow-s); }
.ca-item{ display:flex; gap:.9rem; align-items:center; padding:.8rem 0; border-bottom:1px solid var(--line); }
.ca-item:last-of-type{ border-bottom:0; }
.ca-item span{ display:grid; place-items:center; width:42px; height:42px; border-radius:12px; font-size:1.2rem;
  color:var(--navy); background:var(--bg-2); flex:none; }
.ca-item b{ display:block; font-size:.95rem; } .ca-item i{ font-style:normal; color:var(--soft); font-size:.86rem; }
.ca-note{ margin-top:1.2rem; font-size:.88rem; color:var(--soft); }
.ca-note a{ color:var(--navy); font-weight:600; }
.ca-head{ font-family:var(--disp,Fraunces),Georgia,serif; font-weight:600; font-size:1.5rem;
  letter-spacing:-.01em; color:var(--ink); line-height:1.2; }
.ca-lead{ margin-top:.9rem; font-size:.95rem; line-height:1.65; color:var(--soft); }
.ca-lead a{ color:var(--navy); font-weight:600; }
[data-theme="dark"] .ca-lead a{ color:#c9c4ff; }
.ca-badges{ display:flex; flex-wrap:wrap; gap:.5rem; margin-top:1.3rem; }
.ca-badges span{ font-size:.76rem; font-weight:600; color:var(--soft); background:var(--bg-2);
  border:1px solid var(--line); border-radius:999px; padding:.34rem .8rem; }
/* The direct address, for anyone who would rather use their own mail client
   than a form. Same link treatment as .ca-lead, including the dark override —
   a link that only picks up its colour in light mode is the bug that painted
   white on white in module.css. */
.ca-mail{ margin-top:1.1rem; font-size:.9rem; line-height:1.6; color:var(--muted); }
.ca-mail a{ color:var(--navy); font-weight:600; }
[data-theme="dark"] .ca-mail a{ color:#c9c4ff; }
.contact-wrap .contact-form{ background:var(--card); border:1px solid var(--line); border-radius:var(--radius-lg);
  padding:1.8rem; box-shadow:var(--shadow-s); }

@media(max-width:920px){
  .about-grid{ grid-template-columns:1fr; } .who-row{ grid-template-columns:1fr 1fr; }
  .token-row{ grid-template-columns:1fr 1fr; } .contact-wrap{ grid-template-columns:1fr; }
}

/* ════════════════════════════════════════════════════════════════════════
   Cinematic video showcase — premium framed product films (added 2026-07-03)
   ════════════════════════════════════════════════════════════════════════ */
.vhero{ position:relative; z-index:2; max-width:1180px;
  margin:clamp(.5rem,3vw,2rem) auto clamp(2rem,6vw,4rem); padding:0 clamp(1rem,5vw,2.4rem); }
.vframe{ position:relative; border-radius:var(--radius-lg); overflow:hidden;
  aspect-ratio:16/9; background:#08080c; box-shadow:var(--shadow-l);
  border:1px solid rgba(255,255,255,.08); isolation:isolate; }
.vframe video{ width:100%; height:100%; object-fit:cover; display:block; }
.vframe::after{ content:""; position:absolute; inset:0; pointer-events:none; border-radius:inherit;
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.07),inset 0 -80px 120px -60px rgba(8,8,12,.7); }
.vframe .vcap{ position:absolute; left:0; right:0; bottom:0; z-index:2; color:#f7f7f9;
  padding:clamp(1.4rem,4vw,2.4rem); background:linear-gradient(to top,rgba(8,8,12,.82),rgba(8,8,12,.15) 60%,transparent); }
.vframe .vcap b{ display:block; font-size:clamp(1.2rem,2.4vw,1.9rem); font-weight:600; letter-spacing:-.025em; }
.vframe .vcap span{ font-size:clamp(.85rem,1.2vw,1rem); color:rgba(247,247,249,.72); }
.vhalo{ position:absolute; inset:-3px; z-index:-1; border-radius:calc(var(--radius-lg) + 3px);
  background:var(--iris); filter:blur(34px); opacity:.3; }
.vplay{ position:absolute; top:1rem; right:1rem; z-index:3; display:flex; align-items:center; gap:.4rem;
  font-size:.72rem; font-weight:600; letter-spacing:.02em; color:#fff; background:rgba(255,255,255,.14);
  border:1px solid rgba(255,255,255,.22); backdrop-filter:blur(8px); padding:.35rem .7rem; border-radius:999px; }
.vplay i{ width:6px; height:6px; border-radius:50%; background:#37d67a; box-shadow:0 0 8px #37d67a; }

/* two-up feature films (replaces the external-image showcase) */
.vcards{ max-width:1180px; margin:clamp(2rem,6vw,4rem) auto; padding:0 clamp(1rem,5vw,2.4rem);
  display:grid; grid-template-columns:1fr 1fr; gap:clamp(1rem,2.4vw,1.6rem); }
.vcard{ position:relative; border-radius:var(--radius-lg); overflow:hidden; aspect-ratio:16/11;
  background:#08080c; box-shadow:var(--shadow-m); border:1px solid rgba(255,255,255,.08);
  transition:transform .4s var(--ease), box-shadow .4s var(--ease); }
.vcard:hover{ transform:translateY(-4px); box-shadow:var(--shadow-l); }
.vcard video{ width:100%; height:100%; object-fit:cover; display:block; }
.vcard .vcap{ position:absolute; inset:auto 0 0 0; z-index:2; color:#f7f7f9;
  padding:clamp(1.2rem,3vw,1.7rem); background:linear-gradient(to top,rgba(8,8,12,.9),transparent); }
.vcard .vk{ font-size:.7rem; letter-spacing:.09em; text-transform:uppercase; color:#ffb86b; font-weight:700; }
.vcard .vcap b{ display:block; font-size:clamp(1.05rem,1.8vw,1.35rem); font-weight:600; margin:.2rem 0 .25rem; letter-spacing:-.02em; }
.vcard .vcap p{ font-size:.88rem; line-height:1.5; color:rgba(247,247,249,.74); }
@media(max-width:800px){ .vcards{ grid-template-columns:1fr; } }

/* final CTA as a cinematic video band */
.cta-final.has-video{ position:relative; overflow:hidden; background:#08080c; }
.cta-final.has-video .cta-bg{ position:absolute; inset:0; z-index:0; width:100%; height:100%;
  object-fit:cover; opacity:.42; }
.cta-final.has-video::after{ content:""; position:absolute; inset:0; z-index:1;
  background:radial-gradient(120% 90% at 50% 30%,rgba(8,8,12,.4),rgba(8,8,12,.86)); }
.cta-final.has-video .cta-final-inner{ position:relative; z-index:2; }
.cta-final.has-video h2,.cta-final.has-video p{ color:#f7f7f9; }
.cta-final.has-video p{ color:rgba(247,247,249,.72); }

/* premium placeholder behind videos — cards look intentional even before playback */
.vframe, .vcard, .cta-final.has-video{ background:radial-gradient(130% 130% at 28% 18%,#1a1a34,#0b0b14 62%,#08080c) !important; }
.vframe .lazyvid, .vcard .lazyvid{ background:transparent; }

/* ── brand logo mark (themed PNG emblem) + commercial "Open tools" CTA ── */
.rgn-logo .rgn-mark{ width:44px; height:38px; margin:0 .5em 0 0; border-radius:0;
  box-shadow:none; flex:none; display:inline-block; transition:transform .2s ease;
  background:url(/assets/logo-mark-light.png) left center/contain no-repeat; }
.rgn-logo:hover .rgn-mark{ transform:scale(1.05); }
:root[data-theme="dark"] .rgn-logo .rgn-mark{
  background-image:url(/assets/logo-mark-dark.png); }
.rgn-solid{ display:inline-flex; align-items:center; gap:.35rem; font-size:.82rem; font-weight:600;
  padding:.52rem 1.1rem; border-radius:999px; color:#fff; white-space:nowrap;
  background:linear-gradient(100deg,#f5921e,#ff5d8f,#c4399a,#7b4fc4,#5b5bf0);
  background-size:180% 100%; box-shadow:0 8px 20px -8px rgba(123,79,196,.55);
  transition:transform .22s var(--ease), box-shadow .22s var(--ease), background-position .5s var(--ease); }
.rgn-solid:hover{ transform:translateY(-1px); box-shadow:0 12px 28px -8px rgba(123,79,196,.7); background-position:100% 0; }
.rgn-solid .rgn-ar{ transition:transform .22s var(--ease); }
.rgn-solid:hover .rgn-ar{ transform:translateX(3px); }
/* Mobile: drop the "Open tools" pill (the drawer carries it) so the nav row
   never overflows the screen. Declared here — after the base .rgn-solid rule —
   so it wins on source order at equal specificity. */
@media(max-width:920px){ .rgn-solid{ display:none; } }

/* ════════════════════════════════════════════════════════════════════════
   Creators / team cards  (2026-07-03)
   ════════════════════════════════════════════════════════════════════════ */
.team-row{ display:grid; grid-template-columns:repeat(3,1fr); gap:clamp(1rem,2.4vw,1.5rem);
  max-width:1080px; margin:0 auto; }
@media(max-width:820px){ .team-row{ grid-template-columns:1fr; } }
.creator-card{ position:relative; border:1px solid var(--line); border-radius:var(--radius-lg);
  padding:clamp(1.6rem,3vw,2.2rem); background:var(--card); box-shadow:var(--shadow-s); text-align:center;
  transition:transform .32s var(--ease), box-shadow .32s var(--ease), border-color .32s var(--ease); }
.creator-card:hover{ transform:translateY(-5px); box-shadow:var(--shadow-m); border-color:transparent; }
.cr-avatar{ width:88px; height:88px; border-radius:50%; margin:0 auto 1.1rem; display:grid; place-items:center;
  font-size:1.75rem; font-weight:700; color:#fff; letter-spacing:.01em; position:relative;
  background:linear-gradient(135deg,#f5921e,#ff5d8f,#c4399a,#7b4fc4,#5b5bf0);
  box-shadow:0 12px 30px -10px rgba(123,79,196,.6); }
.cr-avatar::after{ content:""; position:absolute; inset:-4px; border-radius:50%;
  border:1px solid var(--line); opacity:.6; }
.creator-card h3{ font-size:1.24rem; font-weight:700; letter-spacing:-.015em; color:var(--ink); }
.cr-role{ display:inline-block; margin:.4rem 0 .85rem; font-size:.72rem; font-weight:700; letter-spacing:.04em;
  text-transform:uppercase; color:var(--violet); background:rgba(123,79,196,.11);
  padding:.3rem .75rem; border-radius:999px; }
.creator-card p{ font-size:.93rem; line-height:1.62; color:var(--soft); margin:0; }
.cr-links{ display:flex; gap:.6rem; justify-content:center; margin-top:1rem; }
.cr-links a{ font-size:.8rem; font-weight:600; color:var(--navy); border:1px solid var(--line);
  padding:.34rem .8rem; border-radius:999px; transition:.2s var(--ease); }
.cr-links a:hover{ border-color:var(--violet); color:var(--violet); }
[data-theme="dark"] .cr-role{ color:#c9b6ff; background:rgba(123,79,196,.22); }
[data-theme="dark"] .cr-links a{ color:#cbc4ff; }

/* ════════════════════════════════════════════════════════════════════════
   Free conference tracker  (2026-07-03)
   ════════════════════════════════════════════════════════════════════════ */
.confs{ position:relative; z-index:2; max-width:1200px; margin:0 auto;
  padding:clamp(3rem,7vw,6rem) clamp(1rem,5vw,2.4rem); }
.confs .sec-head{ text-align:center; max-width:640px; margin:0 auto; }
.conf-free{ display:inline-flex; align-items:center; gap:.4rem; font-size:.74rem; font-weight:700;
  letter-spacing:.03em; text-transform:uppercase; color:#1f9d57; background:rgba(31,157,87,.1);
  border:1px solid rgba(31,157,87,.28); padding:.32rem .8rem; border-radius:999px; margin-bottom:1rem; }
.conf-grid{ display:grid; grid-template-columns:repeat(auto-fill,minmax(300px,1fr));
  gap:1.2rem; margin:clamp(1.8rem,4vw,2.8rem) 0 2rem; }
.conf-card{ border:1px solid var(--line); border-radius:var(--radius-lg); overflow:hidden;
  background:var(--card); box-shadow:var(--shadow-s); display:flex; flex-direction:column;
  transition:transform .32s var(--ease), box-shadow .32s var(--ease); }
.conf-card:hover{ transform:translateY(-5px); box-shadow:var(--shadow-m); }
.conf-top{ position:relative; height:98px; display:grid; place-items:center; }
.conf-ic{ display:grid; place-items:center; }
.conf-ic svg{ width:42px; height:42px; fill:none; stroke:#fff; stroke-width:1.5;
  stroke-linecap:round; stroke-linejoin:round; filter:drop-shadow(0 4px 11px rgba(0,0,0,.4)); }
.conf-days{ position:absolute; top:.7rem; right:.7rem; font-size:.68rem; font-weight:700; color:#fff;
  background:rgba(0,0,0,.4); backdrop-filter:blur(6px); padding:.26rem .62rem; border-radius:999px;
  border:1px solid rgba(255,255,255,.18); }
.conf-body{ padding:1.1rem 1.2rem 1.3rem; display:flex; flex-direction:column; gap:.42rem; flex:1; }
.conf-pubs{ display:flex; gap:.5rem; align-items:center; flex-wrap:wrap; }
.conf-pub{ display:inline-flex; align-items:center; font-size:.68rem; line-height:1;
  padding:.28rem .55rem; border-radius:7px; border:1px solid transparent; }
.conf-field{ font-size:.74rem; font-weight:600; color:var(--muted); }
.conf-card h3{ font-size:1.14rem; font-weight:700; letter-spacing:-.012em; line-height:1.25; color:var(--ink); }
.conf-full{ font-size:.82rem; color:var(--soft); line-height:1.4; margin-top:-.15rem; }
.conf-meta{ display:flex; flex-direction:column; gap:.32rem; font-size:.83rem; color:var(--soft); margin-top:.35rem; }
.conf-cfp{ color:var(--violet); font-weight:600; }
.conf-cfp.closed{ color:var(--muted); font-weight:500; }
.conf-link{ margin-top:.7rem; font-size:.85rem; font-weight:600; color:var(--navy);
  transition:color .2s var(--ease); }
.conf-link:hover{ color:var(--violet); }
.conf-note{ text-align:center; font-size:.8rem; color:var(--muted); margin-top:.4rem; }
.conf-filters{ display:flex; gap:.55rem; flex-wrap:wrap; justify-content:center; margin:1.6rem auto 0; max-width:900px; }
.conf-filter{ font-size:.82rem; font-weight:600; padding:.42rem .95rem; border-radius:999px;
  border:1px solid var(--line); background:var(--card); color:var(--soft); cursor:pointer;
  transition:.2s var(--ease); font-family:inherit; }
.conf-filter:hover{ border-color:var(--line-2); color:var(--ink); }
.conf-filter.on{ background:var(--ink); color:var(--bg); border-color:var(--ink); }
[data-theme="dark"] .conf-link{ color:#c9c4ff; }
[data-theme="dark"] .conf-filter.on{ background:#f5f5f7; color:#08080c; border-color:#f5f5f7; }

/* conference filter groups (field + publisher) */
.conf-filterbar{ max-width:960px; margin:0 auto; display:flex; flex-direction:column; gap:.9rem; }
.conf-filter-group{ display:flex; align-items:flex-start; gap:.8rem; flex-wrap:wrap; }
.conf-fl-label{ flex:0 0 auto; font-size:.72rem; font-weight:700; letter-spacing:.06em; text-transform:uppercase;
  color:var(--muted); padding:.5rem 0; min-width:66px; }
.conf-filter-group .conf-filters{ margin:0; flex:1; justify-content:flex-start; }
.conf-empty{ grid-column:1/-1; text-align:center; color:var(--muted); padding:2.5rem 1rem; font-size:.95rem; }

/* card banner = the conference's LOGO on its brand gradient (via the
   same-origin /api/conferences/logo proxy; monogram fallback). Founders'
   feedback 2026-07: scraped site photos looked random here. */
.conf-top{ overflow:hidden; }
.conf-top .conf-ic.corner{ position:absolute; left:.7rem; top:.7rem; z-index:2; opacity:.85; }
.conf-top .conf-ic.corner svg{ width:22px; height:22px; }
.conf-top .conf-days{ position:relative; z-index:2; }
.conf-logobox{ position:relative; z-index:2; display:grid; place-items:center;
  width:132px; height:64px; border-radius:14px; background:#fff; padding:8px;
  box-shadow:0 10px 26px -12px rgba(0,0,0,.55); }
.conf-logobox img{ max-width:100%; max-height:100%; object-fit:contain; display:block; }
.conf-logobox .conf-abbr{ display:none; font-family:Fraunces,Georgia,serif; font-weight:700;
  font-size:1.25rem; letter-spacing:.02em; color:#101423; }
.conf-logobox.miss img{ display:none; }
.conf-logobox.miss .conf-abbr{ display:block; }
.conf-top::after{ content:""; position:absolute; inset:0; z-index:1;
  background:linear-gradient(180deg,rgba(255,255,255,.06),rgba(0,0,0,.28)); }

/* ════════════════════════════════════════════════════════════════════════
   Conference poster hero — auto-rotating, cinematic  (2026-07-10)
   ════════════════════════════════════════════════════════════════════════ */
.conf-hero{ position:relative; max-width:1120px; margin:clamp(1.4rem,4vw,2.6rem) auto 0;
  height:clamp(400px,58vw,500px); border-radius:var(--radius-lg); overflow:hidden;
  border:1px solid var(--line); box-shadow:var(--shadow-m); outline:none;
  background:#08080c; isolation:isolate; }
.conf-hero:focus-visible{ box-shadow:0 0 0 3px rgba(123,79,196,.5), var(--shadow-m); }
.ch-stage{ position:absolute; inset:0; }
.ch-slide{ position:absolute; inset:0; opacity:0; visibility:hidden;
  transition:opacity 1s var(--ease); }
.ch-slide.on{ opacity:1; visibility:visible; }
/* generated poster-art (fallback + colour wash under real posters) */
.ch-bg{ position:absolute; inset:0; transform:scale(1.08);
  background:
    radial-gradient(120% 130% at 15% 12%, var(--c1), transparent 55%),
    radial-gradient(130% 120% at 88% 20%, var(--c2), transparent 50%),
    radial-gradient(150% 150% at 50% 120%, #000 8%, transparent 60%),
    linear-gradient(135deg, var(--c1), #08080c 70%);
  background-size:cover; background-position:center; }
.ch-slide.on .ch-bg{ animation:chZoom 8s var(--ease) forwards; }
.ch-bg.real{ background-blend-mode:normal; }
@keyframes chZoom{ from{ transform:scale(1.12); } to{ transform:scale(1.0); } }
/* legibility overlay: dark scrim on the left where text sits */
.ch-grain{ position:absolute; inset:0;
  background:linear-gradient(90deg, rgba(6,6,10,.86) 0%, rgba(6,6,10,.66) 40%, rgba(6,6,10,.15) 78%, transparent 100%),
    linear-gradient(0deg, rgba(6,6,10,.55), transparent 45%); }
.ch-inner{ position:absolute; inset:0; z-index:2; display:flex; flex-direction:column;
  justify-content:flex-end; gap:.5rem; padding:clamp(1.3rem,4vw,2.6rem);
  max-width:min(680px,86%); color:#fff; }
.ch-meta{ display:flex; align-items:center; gap:.6rem; flex-wrap:wrap; margin-bottom:.2rem; }
.ch-fieldtag{ font-size:.72rem; font-weight:600; color:rgba(255,255,255,.82);
  border:1px solid rgba(255,255,255,.28); padding:.24rem .6rem; border-radius:999px; }
.ch-count{ font-size:.74rem; color:#fff; background:rgba(255,255,255,.16); backdrop-filter:blur(6px);
  border:1px solid rgba(255,255,255,.24); padding:.24rem .66rem; border-radius:999px; }
.ch-count b{ font-weight:800; }
.ch-title{ font-family:var(--disp); font-weight:700; letter-spacing:-.02em; line-height:1.04;
  font-size:clamp(1.7rem,4.4vw,3rem); color:#fff; text-shadow:0 2px 24px rgba(0,0,0,.4); }
.ch-sub{ font-size:clamp(.9rem,1.7vw,1.08rem); color:rgba(255,255,255,.9); line-height:1.4;
  max-width:44ch; }
.ch-facts{ display:flex; gap:1rem; flex-wrap:wrap; font-size:.88rem; color:rgba(255,255,255,.92);
  margin-top:.3rem; }
.ch-cfp{ color:#ffd9a0; font-weight:600; }
.ch-cfp.closed{ color:rgba(255,255,255,.6); font-weight:500; }
.ch-topics{ display:flex; gap:.4rem; flex-wrap:wrap; margin-top:.15rem; }
.ch-topic{ font-size:.72rem; color:rgba(255,255,255,.85); background:rgba(255,255,255,.1);
  border:1px solid rgba(255,255,255,.16); padding:.2rem .55rem; border-radius:7px; }
.ch-actions{ display:flex; gap:.7rem; flex-wrap:wrap; margin-top:.7rem; }
.ch-btn{ display:inline-flex; align-items:center; font-size:.9rem; font-weight:600; color:#08080c;
  background:#fff; padding:.6rem 1.1rem; border-radius:999px; transition:transform .2s var(--ease),opacity .2s; }
.ch-btn:hover{ transform:translateY(-2px); }
.ch-btn.ghost{ background:rgba(255,255,255,.12); color:#fff; border:1px solid rgba(255,255,255,.32);
  backdrop-filter:blur(6px); }
.ch-icon{ position:absolute; top:clamp(1.1rem,3vw,1.9rem); right:clamp(1.1rem,3vw,1.9rem); z-index:2;
  width:clamp(46px,7vw,68px); height:clamp(46px,7vw,68px); opacity:.85; }
.ch-icon svg{ width:100%; height:100%; fill:none; stroke:#fff; stroke-width:1.4;
  stroke-linecap:round; stroke-linejoin:round; filter:drop-shadow(0 4px 14px rgba(0,0,0,.5)); }
/* controls: week label + dots */
.ch-ui{ position:absolute; z-index:3; top:0; left:0; right:0;
  display:flex; align-items:center; justify-content:space-between;
  padding:clamp(1rem,3vw,1.6rem) clamp(1.1rem,3vw,1.9rem); pointer-events:none; }
.ch-week{ pointer-events:auto; font-size:.72rem; font-weight:700; letter-spacing:.03em;
  text-transform:uppercase; color:#fff; background:rgba(255,255,255,.14); backdrop-filter:blur(8px);
  border:1px solid rgba(255,255,255,.24); padding:.34rem .8rem; border-radius:999px; }
.ch-dots{ pointer-events:auto; display:flex; gap:.4rem; margin-left:auto; }
.ch-dot{ width:8px; height:8px; border-radius:999px; border:0; cursor:pointer; padding:0;
  background:rgba(255,255,255,.42); transition:.25s var(--ease); }
.ch-dot:hover{ background:rgba(255,255,255,.7); }
.ch-dot.on{ width:22px; background:#fff; }
@media (max-width:560px){
  .ch-sub{ display:none; } .ch-icon{ display:none; }
  .conf-hero{ height:clamp(360px,80vw,440px); }
}
@media (prefers-reduced-motion:reduce){
  .ch-slide.on .ch-bg{ animation:none; transform:scale(1.02); }
  .ch-slide{ transition:opacity .01s; }
}

/* ════════════════════════════════════════════════════════════════════════
   "What it does" — animated research-lifecycle flow  (2026-07-03)
   ════════════════════════════════════════════════════════════════════════ */
.flow{ position:relative; z-index:2; max-width:1200px; margin:0 auto;
  padding:clamp(2.5rem,6vw,5rem) clamp(1rem,5vw,2.4rem); }
.flow .sec-head{ text-align:center; max-width:660px; margin:0 auto clamp(2rem,5vw,3.5rem); }
.flow-track{ position:relative; }
.flow-line{ position:absolute; top:35px; left:8.33%; right:8.33%; height:3px; border-radius:3px;
  background:var(--line-2); }
.flow-progress{ position:absolute; top:0; left:0; height:100%; width:0; border-radius:3px;
  background:var(--iris); transition:width .7s var(--ease); }
.flow-dot{ position:absolute; top:50%; left:0; width:14px; height:14px; margin:-7px 0 0 -7px; border-radius:50%;
  background:#fff; z-index:2; box-shadow:0 0 0 4px rgba(123,79,196,.35),0 0 18px 4px rgba(196,57,154,.55);
  transition:left .7s var(--ease); }
.flow-steps{ position:relative; display:grid; grid-template-columns:repeat(6,1fr); gap:.5rem; }
.flow-step{ display:flex; flex-direction:column; align-items:center; gap:.4rem; text-align:center; }
.fs-ic{ width:72px; height:72px; display:grid; place-items:center; border-radius:50%;
  background:var(--card); border:1px solid var(--line); box-shadow:var(--shadow-s); color:var(--ink);
  transition:transform .45s var(--ease), box-shadow .45s var(--ease), border-color .45s, background .45s, color .45s; }
.fs-ic svg{ width:30px; height:30px; fill:none; stroke:currentColor; stroke-width:1.6;
  stroke-linecap:round; stroke-linejoin:round; }
.flow-step b{ font-size:.94rem; font-weight:700; color:var(--ink); letter-spacing:-.01em; }
.flow-step i{ font-size:.77rem; color:var(--soft); font-style:normal; line-height:1.35; max-width:150px; }
.flow-step.done .fs-ic{ color:var(--violet); border-color:rgba(123,79,196,.4); }
.flow-step.on .fs-ic{ transform:translateY(-7px) scale(1.12); border-color:transparent; color:#fff;
  background:var(--iris);
  box-shadow:0 16px 34px -10px rgba(123,79,196,.6), 0 0 0 3px rgba(123,79,196,.2); }
@media(max-width:820px){ .flow-steps{ grid-template-columns:repeat(3,1fr); row-gap:1.8rem; } .flow-line{ display:none; } }
@media(max-width:520px){ .flow-steps{ grid-template-columns:repeat(2,1fr); } }

/* why us — differentiators */
.flow-why{ display:grid; grid-template-columns:repeat(3,1fr); gap:1rem;
  max-width:920px; margin:clamp(2.5rem,5vw,4rem) auto 0; }
.fw{ text-align:center; padding:1.4rem 1.2rem; border:1px solid var(--line); border-radius:18px;
  background:var(--card); box-shadow:var(--shadow-s); transition:transform .3s var(--ease); }
.fw:hover{ transform:translateY(-4px); }
.fw b{ display:block; font-size:1.1rem; font-weight:700; margin-bottom:.3rem;
  background:var(--iris); -webkit-background-clip:text; background-clip:text; color:transparent; }
.fw span{ font-size:.88rem; color:var(--soft); line-height:1.5; }
@media(max-width:720px){ .flow-why{ grid-template-columns:1fr; } }

/* currency switcher (pricing) */
.ccy-mount{ display:flex; justify-content:center; margin:0 0 1.5rem; }
.ccy-switch{ display:inline-flex; align-items:center; gap:.5rem; border:1px solid var(--line);
  background:var(--card); border-radius:999px; padding:.42rem .55rem .42rem .95rem;
  box-shadow:var(--shadow-s); font-size:.85rem; color:var(--soft); }
.ccy-switch .ccy-globe{ opacity:.7; }
.ccy-switch select{ border:0; background:transparent; font-family:inherit; font-size:.85rem;
  font-weight:600; color:var(--ink); cursor:pointer; outline:none; }
[data-theme="dark"] .ccy-switch{ background:#17171f; border-color:rgba(255,255,255,.14); }
[data-theme="dark"] .ccy-switch select{ color:#f0f0f4; }
[data-theme="dark"] .ccy-switch select option{ background:#17171f; color:#f0f0f4; }

/* ════════════════════════════════════════════════════════════════════════
   Plan comparison table  (2026-07-03)
   ════════════════════════════════════════════════════════════════════════ */
.compare{ max-width:920px; margin:clamp(3rem,7vw,5rem) auto; padding:0 clamp(1rem,5vw,2.4rem); }
.compare .section-h{ text-align:center; margin-bottom:clamp(1.6rem,4vw,2.4rem); }
.cmp-wrap{ overflow-x:auto; border:1px solid var(--line); border-radius:var(--radius-lg);
  background:var(--card); box-shadow:var(--shadow-s); -webkit-overflow-scrolling:touch; }
.cmp{ width:100%; border-collapse:collapse; min-width:580px; }
.cmp th, .cmp td{ padding:.95rem 1.1rem; text-align:center; font-size:.92rem;
  border-bottom:1px solid var(--line); }
.cmp thead th{ font-size:1.05rem; font-weight:700; color:var(--ink); padding:1.4rem 1.1rem; letter-spacing:-.01em; }
.cmp tbody th{ text-align:left; font-weight:500; color:var(--soft); white-space:nowrap; }
.cmp tbody tr:last-child td, .cmp tbody tr:last-child th{ border-bottom:0; }
.cmp .pop{ background:rgba(123,79,196,.06); }
.cmp thead .pop{ color:var(--violet); position:relative; }
.cmp .cmp-rec{ display:block; font-size:.6rem; font-weight:700; letter-spacing:.06em; text-transform:uppercase;
  color:#fff; background:var(--violet); border-radius:999px; padding:.14rem .5rem; margin:.35rem auto 0; width:max-content; }
.cmp .yes{ color:var(--good); font-weight:700; }
.cmp td.no{ color:var(--muted); }
.cmp tbody tr:hover td, .cmp tbody tr:hover th{ background:rgba(0,0,0,.015); }
.cmp tbody tr:hover .pop{ background:rgba(123,79,196,.09); }
.cmp-foot{ text-align:center; font-size:.85rem; color:var(--muted); margin-top:1.1rem; }
[data-theme="dark"] .cmp tbody tr:hover td, [data-theme="dark"] .cmp tbody tr:hover th{ background:rgba(255,255,255,.03); }
[data-theme="dark"] .cmp .pop{ background:rgba(123,79,196,.14); }

/* creative final CTA — advertising close with a rotating benefit line */
.cta-eyebrow{ display:inline-block; font-size:.78rem; font-weight:600; letter-spacing:.06em;
  text-transform:uppercase; color:rgba(247,247,249,.7); margin-bottom:1rem; }
.cta-final.has-video .cta-rot-line{ font-size:clamp(1.05rem,1.7vw,1.4rem); color:rgba(247,247,249,.85);
  margin-top:.5rem; min-height:1.5em; }
.cta-rot{ font-style:normal; font-weight:700; display:inline-block;
  background:var(--iris-soft); -webkit-background-clip:text; background-clip:text; color:transparent;
  transition:opacity .4s var(--ease), transform .4s var(--ease); }
.cta-benefits{ display:flex; gap:.6rem; flex-wrap:wrap; justify-content:center; margin:1.7rem 0 .3rem; }
.cta-benefits span{ font-size:.8rem; font-weight:600; color:#f7f7f9; background:rgba(255,255,255,.1);
  border:1px solid rgba(255,255,255,.2); border-radius:999px; padding:.42rem .95rem;
  backdrop-filter:blur(6px); }
.cta-final.has-video .cta-trust{ font-size:.8rem; color:rgba(247,247,249,.6); margin-top:1.5rem; }

/* ── suite-aligned typography ────────────────────────────────────────────────
   Headings and the wordmark use the same display font as the tools app
   (module.css --disp), so home and tools read as one product. Body text,
   buttons and labels stay Inter. */
h1, h2, h3, h4, .rgn-logo, .logo{ font-family:var(--disp); }

/* ════════════════════════════════════════════════════════════════════════
   Research Desk skin — hero eyebrow, serif stats, flagship rail (2026-07-17)
   ════════════════════════════════════════════════════════════════════════ */
.eyebrow{ background:none; border:0; backdrop-filter:none; padding:0; margin-bottom:1.5rem;
  font-family:var(--mono); font-size:.68rem; font-weight:500; letter-spacing:.2em;
  text-transform:uppercase; color:var(--muted); }
.eyebrow .spark{ width:14px; height:14px; box-shadow:0 0 14px rgba(196,57,154,.6); }
.stat b{ font-family:var(--disp); font-weight:600; }
.fw b{ font-family:var(--disp); font-weight:600; }
.trust{ font-family:var(--mono); font-size:.72rem; font-weight:400; letter-spacing:.04em; }

/* ── flagship rail — the four sellable flagships ── */
.flagrail{ max-width:1180px; margin:0 auto; padding:clamp(1rem,3vw,2rem) clamp(1rem,5vw,2.4rem) clamp(2.5rem,6vw,4rem);
  display:flex; flex-direction:column; gap:clamp(1.2rem,3vw,1.8rem); }
.fcard{ position:relative; overflow:hidden; display:grid; grid-template-columns:1.05fr 1fr;
  gap:clamp(1.4rem,3.4vw,2.8rem); align-items:center; border-radius:var(--radius-lg);
  border:1px solid var(--line); background:linear-gradient(150deg,var(--card),var(--bg-2));
  box-shadow:var(--shadow-m); padding:clamp(1.5rem,3.6vw,2.6rem); }
.fcard::before{ content:""; position:absolute; inset:0; pointer-events:none;
  background:radial-gradient(110% 140% at 0% 0%, color-mix(in srgb,var(--fa) 9%,transparent), transparent 55%); }
.fcard.alt{ grid-template-columns:1fr 1.05fr; }
.fcard.alt .f-copy{ order:2; }
.f-copy{ position:relative; z-index:1; }
.f-kick{ display:inline-flex; align-items:center; gap:.5rem; font-family:var(--mono);
  font-size:.66rem; font-weight:500; letter-spacing:.16em; text-transform:uppercase; color:var(--fa); }
.f-kick i{ width:8px; height:8px; border-radius:50%; background:var(--fa); box-shadow:0 0 10px var(--fa); }
.fcard h3{ font-weight:600; font-size:clamp(1.5rem,3.1vw,2.25rem); line-height:1.06;
  letter-spacing:-.02em; color:var(--ink); margin:.7rem 0 0; }
.fcard .f-copy > p{ margin:.8rem 0 0; color:var(--soft); max-width:46ch; font-size:.98rem; line-height:1.6; }
.f-feats{ display:flex; flex-wrap:wrap; gap:.45rem; margin-top:1.15rem; }
.f-feats span{ font-family:var(--mono); font-size:.7rem; padding:.34rem .68rem; border-radius:8px;
  border:1px solid var(--line-2); color:var(--soft); }
.f-cta{ display:flex; flex-wrap:wrap; align-items:center; gap:.9rem; margin-top:1.4rem; }
.f-cost{ font-family:var(--mono); font-size:.74rem; color:var(--muted); }
.f-cost b{ color:var(--fa); font-weight:500; }
.f-media{ position:relative; z-index:1; border-radius:18px; overflow:hidden; aspect-ratio:16/10;
  border:1px solid var(--line-2); box-shadow:0 26px 60px -28px rgba(4,8,26,.55); background:#0b1020; }
.f-media video{ width:100%; height:100%; object-fit:cover; display:block; }

/* PlagLab mock — a crisp miniature forensic report (replaces the AI-artwork
   video whose baked-in text was gibberish — founders' feedback 2026-07) */
.mock-plag{ position:absolute; inset:0; display:flex; flex-direction:column; gap:.6rem;
  padding:.95rem 1rem; background:linear-gradient(150deg,#1c1024,#0b0a16); overflow:hidden; }
.mp-bar{ display:flex; align-items:center; gap:.6rem; height:26px; }
.mp-brand{ font-family:var(--mono); font-size:.66rem; font-weight:600; letter-spacing:.1em;
  color:#ff8a75; text-transform:uppercase; }
.mp-file{ font-family:var(--mono); font-size:.62rem; color:rgba(255,255,255,.45); }
.mp-stamp{ margin-left:auto; font-family:var(--mono); font-size:.56rem; font-weight:700;
  letter-spacing:.12em; color:#ffb64b; border:1.5px solid #ffb64b; border-radius:5px;
  padding:.22rem .45rem; transform:rotate(-2deg); }
.mp-scores{ display:grid; grid-template-columns:repeat(3,1fr); gap:.55rem; }
.mp-score{ display:flex; align-items:center; gap:.5rem; border-radius:9px; padding:.5rem .6rem;
  background:rgba(255,255,255,.05); border:1px solid rgba(255,255,255,.08); }
.mp-score i{ width:8px; height:8px; border-radius:50%; flex:none; }
.mp-score i.sim{ background:#ff5d47; box-shadow:0 0 8px #ff5d47; }
.mp-score i.ai{ background:#6f86ff; box-shadow:0 0 8px #6f86ff; }
.mp-score i.ok{ background:#ffb64b; box-shadow:0 0 8px #ffb64b; }
.mp-score b{ color:#fff; font-size:.92rem; font-weight:700; }
.mp-score small{ color:rgba(255,255,255,.5); font-size:.6rem; line-height:1.15; }
.mp-doc{ flex:1; display:flex; flex-direction:column; justify-content:center; gap:.5rem;
  border-radius:10px; border:1px solid rgba(255,255,255,.08); padding:.9rem 1rem;
  background:#f7f5ef; }
.mp-doc .l{ display:block; height:7px; border-radius:4px; background:#c9c4bb; }
.mp-doc .w9{ width:92%; } .mp-doc .w8{ width:84%; } .mp-doc .w7{ width:74%; }
.mp-doc .w6{ width:64%; } .mp-doc .w5{ width:52%; } .mp-doc .w4{ width:38%; }
.mp-doc .hl-red{ background:#e8593f; box-shadow:0 0 0 3px rgba(232,89,63,.22); }
.mp-doc .hl-blue{ background:#4f6fe6; box-shadow:0 0 0 3px rgba(79,111,230,.22); }
.mp-scan{ position:absolute; left:5%; right:5%; height:2px; top:30%;
  background:linear-gradient(90deg,transparent,#ff5d47,transparent); opacity:.75;
  animation:mp-scan 3.4s ease-in-out infinite; pointer-events:none; }
@keyframes mp-scan{ 0%,100%{ top:34%; } 50%{ top:88%; } }
@media (prefers-reduced-motion:reduce){ .mp-scan{ display:none; } }

/* deck mock — Presentation Studio */
.mock-deck{ position:absolute; inset:0; display:flex; flex-direction:column; gap:.55rem;
  padding:.9rem; background:linear-gradient(150deg,#161330,#0a0918); }
.md-bar{ display:flex; align-items:center; gap:.4rem; height:24px; border-radius:7px;
  background:rgba(255,255,255,.07); padding:0 .55rem; }
.md-bar i{ width:9px; height:9px; border-radius:3px; background:rgba(255,255,255,.22); }
.md-bar .go{ margin-left:auto; width:36px; height:11px; border-radius:4px; background:var(--iris); }
.md-slide{ flex:1; display:flex; flex-direction:column; justify-content:center; gap:.55rem;
  border-radius:10px; border:1px solid rgba(255,255,255,.09); padding:1rem 1.2rem;
  background:linear-gradient(140deg,#231d44,#131028); }
.md-slide b{ font-family:var(--disp); font-weight:600; font-size:clamp(.95rem,1.6vw,1.2rem);
  color:#fff; letter-spacing:-.01em; }
.md-sub{ width:52%; height:6px; border-radius:3px; background:rgba(255,255,255,.2); }
.md-chart{ display:flex; align-items:flex-end; gap:.5rem; height:54px; margin-top:.4rem; }
.md-chart i{ flex:1; border-radius:4px 4px 2px 2px; background:var(--iris); opacity:.92; }
.md-chart .h35{ height:35%; } .md-chart .h60{ height:60%; } .md-chart .h45{ height:45%; }
.md-chart .h85{ height:85%; } .md-chart .h70{ height:70%; }
.md-strip{ display:flex; gap:.45rem; }
.md-strip i{ flex:1; height:26px; border-radius:5px; background:rgba(255,255,255,.08);
  border:1px solid rgba(255,255,255,.1); }
.md-strip i.on{ box-shadow:0 0 0 2px #c4399a; background:rgba(196,57,154,.25); }

/* LaTeX mock — Format Studio: source pane → compiled page */
.mock-tex{ position:absolute; inset:0; display:grid; grid-template-columns:1.05fr 1fr; background:#0b1020; }
.mt-code{ padding:.95rem .9rem; font-family:var(--mono); font-size:.56rem; line-height:2;
  color:#8fa3d9; background:#0d1424; border-right:1px solid rgba(140,160,220,.14); overflow:hidden; }
.mt-code i{ display:block; font-style:normal; white-space:nowrap; }
.mt-code .k{ color:#ff8fb4; } .mt-code .s{ color:#ffd08a; } .mt-code .f{ color:#7ee7c7; }
.mt-pagewrap{ position:relative; display:grid; place-items:center; padding:.9rem; }
.mt-page{ width:min(150px,86%); aspect-ratio:8.5/11; background:var(--paper); border-radius:5px;
  box-shadow:0 14px 34px -14px rgba(0,0,0,.7); padding:.85rem .75rem; }
.mt-page b{ display:block; font-family:var(--disp); font-weight:600; font-size:.56rem;
  text-align:center; color:#26221a; margin-bottom:.55rem; line-height:1.25; }
.mt-page i{ display:block; height:4px; border-radius:2px; background:rgba(38,34,26,.2); margin-bottom:5px; }
.mt-page .w94{ width:94%; } .mt-page .w88{ width:88%; } .mt-page .w97{ width:97%; }
.mt-page .w80{ width:80%; } .mt-page .w66{ width:66%; }
.mt-ok{ position:absolute; right:.8rem; bottom:.8rem; font-family:var(--mono); font-size:.56rem;
  letter-spacing:.04em; color:#4ade8f; background:rgba(18,60,38,.75); border:1px solid rgba(74,222,143,.4);
  padding:.22rem .5rem; border-radius:6px; }

@media(max-width:860px){
  .fcard, .fcard.alt{ grid-template-columns:1fr; }
  .fcard.alt .f-copy{ order:0; }
  .f-media{ order:2; }
}

/* ── nav overflow hardening — the CTA cluster (lang · Open tools · tokens ·
   Log in · Sign up) is wider than the old 1240px shell, so the Sign-up pill
   was clipped at the viewport edge on ordinary laptops. Give the bar room,
   then shed the most redundant pieces as the viewport narrows. ── */
.rgn-in{ max-width:1380px; }
@media(max-width:1500px){
  .rgn-links{ gap:.1rem; }
  .rgn-links > a, .rgn-dt{ padding:.55rem .6rem; font-size:.9rem; }
}
@media(max-width:1400px){ .rgn-solid{ display:none; } }   /* "Open tools" duplicated by Services + Sign up */
@media(max-width:1210px){ .rgn .rg-lang-wrap{ display:none; } }
@media(max-width:1080px){
  .rgn-links, .rgn-ghost{ display:none; }
  .rgn-burger{ display:flex; }
}
/* phones: the bar is logo + (tokens · account) + burger — everything must
   shrink so the burger is never pushed past the viewport edge */
@media(max-width:640px){
  .rgn{ padding:.45rem .75rem; }
  .rgn-in{ gap:.5rem; }
  .rgn-logo{ font-size:1.02rem; flex:none; }
  .rgn-logo .rgn-mark{ width:30px; height:26px; margin-right:.3em; }
  .rgn-cta{ gap:.35rem; min-width:0; flex:1; justify-content:flex-end; }
  .rgn-burger{ flex:none; padding:8px 4px 8px 6px; }
  #rg-account{ gap:.35rem; min-width:0; }
  #rg-account .rg-pill{ padding:.3rem .5rem; font-size:.74rem; }
  #rg-account .rg-auth-ghost{ display:none; }   /* Sign-up carries the intent */
  #rg-account .rg-auth-cta{ padding:.42rem .7rem; font-size:.78rem; white-space:nowrap; }
}

/* phones: bottom-right chrome stacks — sticky CTA bar owns the bottom edge,
   theme toggle sits above it, the Guru orb above that (guru.css follows the
   same ladder via --guru-b). theme.js injects its own #theme-toggle style
   later in <head>, hence the !important. */
@media(max-width:640px){
  html #theme-toggle{ bottom:84px !important; right:14px !important; }
  .sticky-cta{ width:auto; gap:.5rem; padding:.5rem .5rem .5rem .9rem; }
}

/* ── premium Services mega-menu — workflow columns + flagship rail ── */
.rgn-mega{ width:min(940px,94vw); padding:0; overflow:hidden; border-radius:22px;
  background:linear-gradient(160deg,var(--card),var(--bg-2)); border-color:var(--line-2); }
.rgn-mega-body{ display:grid; grid-template-columns:1fr 234px; }
.rgn-mega-grid{ grid-template-columns:repeat(5,1fr); gap:1.05rem; padding:1.3rem 1.25rem 1.15rem 1.4rem; }
.rgn-col-h{ display:flex; align-items:center; gap:.45rem; font:500 .62rem/1 var(--mono);
  letter-spacing:.16em; text-transform:uppercase; color:var(--muted);
  padding-bottom:.55rem; margin-bottom:.55rem; border-bottom:1px solid var(--line); }
.rgn-col-h::before{ content:""; width:8px; height:8px; border-radius:3px; background:var(--mc,#a578ff);
  box-shadow:0 0 9px color-mix(in srgb,var(--mc,#a578ff) 70%,transparent); }
.rgn-col a{ position:relative; padding:.34rem .5rem .34rem .55rem; margin-left:-.55rem;
  border-radius:8px; line-height:1.3; transition:color .15s, background .15s, transform .18s var(--ease); }
.rgn-col a:hover{ color:var(--ink); background:color-mix(in srgb,var(--mc,#a578ff) 13%,transparent);
  transform:translateX(2px); }
/* flagship rail */
.rgn-feat{ position:relative; display:flex; flex-direction:column; gap:.55rem; overflow:hidden;
  margin:.65rem .65rem .65rem 0; padding:1.05rem 1.1rem 1rem; border-radius:16px;
  border:1px solid color-mix(in srgb,#d83a52 34%,var(--line));
  background:
    radial-gradient(130% 120% at 100% 0, rgba(216,58,82,.18), transparent 58%),
    linear-gradient(160deg,var(--bg-2),var(--card)); }
.rgn-feat-k{ display:inline-flex; align-items:center; gap:.45rem; font:500 .6rem/1 var(--mono);
  letter-spacing:.14em; text-transform:uppercase; color:#e05a70; }
.rgn-feat-k i{ width:7px; height:7px; border-radius:50%; background:#d83a52; box-shadow:0 0 9px #d83a52; }
.rgn-feat b{ font-family:var(--disp); font-weight:600; font-size:1.02rem; line-height:1.18;
  letter-spacing:-.01em; color:var(--ink); }
.rgn-feat-doc{ display:flex; flex-direction:column; gap:5px; padding:.7rem .65rem; border-radius:9px;
  background:var(--paper); box-shadow:0 8px 20px -10px rgba(10,10,30,.5); }
.rgn-feat-doc i{ display:block; height:5px; border-radius:3px; background:rgba(38,34,26,.16); }
.rgn-feat-doc i.r{ background:linear-gradient(90deg,rgba(216,58,82,.6),rgba(216,58,82,.22)); }
.rgn-feat-doc i.b{ background:linear-gradient(90deg,rgba(70,110,235,.55),rgba(70,110,235,.2)); }
.rgn-feat-go{ display:inline-flex; align-items:center; gap:.4rem; font:600 .82rem/1 var(--font);
  color:var(--ink); margin-top:.1rem; }
.rgn-feat-go span{ transition:transform .2s var(--ease); }
.rgn-feat:hover .rgn-feat-go span{ transform:translateX(4px); }
.rgn-feat:hover{ border-color:color-mix(in srgb,#d83a52 60%,transparent); }
/* commercial footer strip */
.rgn-mega-foot{ display:flex; align-items:center; justify-content:space-between; gap:1rem;
  padding:.8rem 1.4rem; border-top:1px solid var(--line);
  background:color-mix(in srgb,var(--bg-2) 65%,transparent); }
.rgn-mega .rgn-mega-all{ margin-top:0; }
.rgn-mega-note{ font:400 .68rem/1 var(--mono); letter-spacing:.05em; color:var(--muted); }
@media(max-width:1240px){
  .rgn-mega{ width:min(680px,92vw); }
  .rgn-mega-body{ grid-template-columns:1fr; }
  .rgn-feat{ display:none; }
  .rgn-mega-grid{ grid-template-columns:repeat(3,1fr); padding:1.2rem 1.3rem 1rem; }
}

/* ── final CTA — the acceptance letter (the thing every researcher is chasing) ── */
.cta-accept{ display:grid; grid-template-columns:.92fr 1.08fr; gap:clamp(1.8rem,4.5vw,3.4rem);
  align-items:center; text-align:left; max-width:1060px; margin:0 auto; }
.accept-letter{ position:relative; width:100%; max-width:430px; justify-self:center;
  background:var(--paper); color:var(--paper-ink); border-radius:12px;
  padding:1.55rem 1.7rem 3.6rem; transform:rotate(-1.6deg);
  border:1px solid rgba(120,100,60,.24);
  box-shadow:0 36px 80px -30px rgba(0,0,0,.7), inset 0 1px 0 rgba(255,255,255,.6); }
.al-head{ display:flex; align-items:center; justify-content:space-between; gap:.8rem;
  font-family:var(--mono); font-size:.56rem; letter-spacing:.1em; text-transform:uppercase;
  color:rgba(38,34,26,.55); border-bottom:1px solid rgba(38,34,26,.16);
  padding-bottom:.6rem; margin-bottom:.85rem; }
.al-subject{ font-family:var(--mono); font-size:.64rem; letter-spacing:.04em;
  color:rgba(38,34,26,.72); margin-bottom:.6rem; }
.al-body{ font-family:var(--disp); font-weight:500; font-size:1.04rem; line-height:1.55;
  color:var(--paper-ink); }
.al-body em{ background:none; -webkit-background-clip:border-box; background-clip:border-box;
  color:#1f7d4d; -webkit-text-fill-color:#1f7d4d; font-style:italic; }
.al-sign{ font-family:var(--disp); font-style:italic; font-size:.9rem;
  color:rgba(38,34,26,.62); margin-top:.8rem; }
.al-stamp{ position:absolute; right:1.2rem; bottom:1.1rem; font-family:var(--mono);
  font-weight:700; font-size:.8rem; letter-spacing:.22em; text-transform:uppercase;
  color:#1f7d4d; border:3px double #1f7d4d; border-radius:9px; padding:.42rem .85rem .42rem 1.05rem;
  transform:rotate(-7deg); opacity:.92; }
.reveal.in .al-stamp{ animation:stampIn .5s cubic-bezier(.2,.9,.3,1.35) .45s backwards; }
@keyframes stampIn{ from{ transform:rotate(-7deg) scale(2.1); opacity:0; } }
.cta-accept .cta-eyebrow, .cta-accept h2, .cta-accept .cta-rot-line{ text-align:left; }
.cta-accept .cta-benefits, .cta-accept .hero-cta{ justify-content:flex-start; }
.cta-accept .cta-rot-line{ margin-left:0; }
.cta-accept .cta-trust{ text-align:left; }
/* the has-video CTA paints every <p> near-white — the letter must stay ink-on-paper */
.cta-final.has-video .accept-letter p{ color:var(--paper-ink); }
.cta-final.has-video .accept-letter .al-sign{ color:rgba(38,34,26,.62); }
.cta-accept h2{ font-size:clamp(1.9rem,3.3vw,2.9rem); }
@media(max-width:860px){
  .cta-accept{ grid-template-columns:1fr; }
  .accept-letter{ max-width:400px; justify-self:start; }
}
@media(prefers-reduced-motion:reduce){ .reveal.in .al-stamp{ animation:none; } }

/* Source: conf-board.css */
/* ════════════════════════════════════════════════════════════════════════
   The Deadline Board — /conferences/ and the home-page preview
   2026-11-14: rebuilt to the landing page's level. A departures board in the
   hero, the wire of what changed, a map of where research meets next, the
   board itself with a drawer per conference, how the board works (with the
   live health of every source) and a subscribable calendar.
   Uses the site tokens (landing.css / experience.css), so light and dark
   themes both follow. The departures board and the map band stay dark in
   both themes on purpose: they are objects, like the landing's workspace.
   ════════════════════════════════════════════════════════════════════════ */
.cb, .cb-home{ --hot:#e5484d; --warm:#ea7a12; --cool:#16a34a; --ok:#0f9f6e; --ext:#7c5cff;
  --pub-ieee:#00629b; --pub-acm:#0085ca; --pub-springer:#d4271d; --pub-elsevier:#e86100;
  --pub-usenix:#b31b1b; --pub-nature:#006f9c; }
[data-theme="dark"] .cb, [data-theme="dark"] .cb-home{ --hot:#ff6b6f; --warm:#ffad5a; --cool:#4ade80;
  --ok:#34d399; --ext:#b4a3ff; --pub-ieee:#5fb4e8; --pub-acm:#6cc3f0; --pub-springer:#ff7a73;
  --pub-elsevier:#ffa05c; --pub-usenix:#ff7a7a; --pub-nature:#5cc3e6; }

/* full-bleed sections inside the page frame */
.page.cx{ max-width:none; margin:0; padding:0; overflow-x:clip; }
.cx{ --cx-w:min(1240px, calc(100% - 64px)); }
.cx-in{ width:var(--cx-w); margin:0 auto; }
.cx-head{ max-width:760px; }
.cx-head h2{ font:650 clamp(30px,3.4vw,46px)/1.1 var(--font); letter-spacing:-.045em; color:var(--ink); margin:14px 0 0; }
.cx-head > p{ font-size:17px; line-height:1.7; color:var(--soft); margin:16px 0 0; max-width:62ch; }

/* ── hero ─────────────────────────────────────────────────────────────── */
/* the headline spans the page; under it, the search and numbers on the left
   and the departures board on the right */
.cx-hero{ position:relative; isolation:isolate; display:grid; grid-template-columns:minmax(0,.78fr) minmax(0,1.22fr);
  grid-template-areas:"eye eye" "h1 h1" "lede flap" "search flap" "sc flap" "stats flap";
  grid-template-rows:auto auto auto auto auto 1fr; column-gap:56px; width:var(--cx-w); margin:0 auto; padding:140px 0 64px; }
.cx-hero-copy{ display:contents; }
.cx-eyebrow{ grid-area:eye; } .cx-hero h1{ grid-area:h1; } .cx-lede{ grid-area:lede; } .cx-search{ grid-area:search; }
.cx-shortcuts{ grid-area:sc; } .cx-hero .cb-stats{ grid-area:stats; align-self:start; } .cx-flap{ grid-area:flap; align-self:start; margin-top:34px; }
.cb-search{ display:flex; align-items:center; gap:.7rem; padding:.2rem .6rem .2rem 1.1rem; border:1px solid var(--line-2);
  border-radius:999px; background:var(--card); box-shadow:var(--shadow-s); cursor:text;
  transition:border-color .2s var(--ease), box-shadow .2s var(--ease); }
.cb-search:focus-within{ border-color:var(--navy); box-shadow:0 0 0 4px color-mix(in srgb,var(--navy) 18%,transparent); }
.cb-search svg{ width:19px; height:19px; flex:0 0 auto; fill:none; stroke:var(--muted); stroke-width:2; stroke-linecap:round; }
.cb-search input{ flex:1; min-width:0; border:0; outline:0; background:transparent; color:var(--ink); font:inherit; font-size:16px; padding:15px 0; }
.cb-search input::placeholder{ color:var(--muted); }
.cx-hero::before{ content:""; position:absolute; z-index:-1; inset:-40px -30vw -40px;
  background:radial-gradient(42% 60% at 78% 42%, rgba(99,91,255,.13), transparent 70%),
             radial-gradient(30% 40% at 6% 12%, rgba(245,146,30,.07), transparent 72%),
             radial-gradient(30% 45% at 60% 100%, rgba(15,159,110,.06), transparent 70%); pointer-events:none; }
.cx-eyebrow{ display:inline-flex; align-items:center; gap:10px; font:650 12px/1.4 var(--font);
  letter-spacing:.14em; text-transform:uppercase; color:var(--navy); }
.cx-live{ width:8px; height:8px; border-radius:50%; background:#22c55e; flex:none;
  box-shadow:0 0 0 0 rgba(34,197,94,.55); animation:cx-pulse 2.2s ease-out infinite; }
@keyframes cx-pulse{ 0%{ box-shadow:0 0 0 0 rgba(34,197,94,.55); } 70%,100%{ box-shadow:0 0 0 9px rgba(34,197,94,0); } }
.cx-hero h1{ font:700 clamp(40px,5.2vw,78px)/1.04 var(--font); letter-spacing:-.055em; color:var(--ink); margin:22px 0 0; }
.cx-hero h1 em{ font-style:normal; background:linear-gradient(95deg,#635bff 0%,#8b5cf6 45%,#d9488f 100%);
  -webkit-background-clip:text; background-clip:text; color:transparent; -webkit-text-fill-color:transparent; }
.cx-lede{ font-size:clamp(17px,1.45vw,20px); line-height:1.55; letter-spacing:-.015em; color:var(--soft);
  max-width:560px; margin:24px 0 28px; }
.cb-search.cx-search{ max-width:560px; margin:0; border-radius:14px; padding:.15rem .5rem .15rem 1rem; }
.cx-search kbd{ font:500 12px/1 var(--mono); color:var(--muted); border:1px solid var(--line-2); border-bottom-width:2px;
  border-radius:6px; padding:4px 7px; }
.cx-shortcuts{ display:flex; flex-wrap:wrap; gap:8px; margin-top:14px; max-width:600px; }
.cx-sc{ font:600 12.5px/1 var(--font); color:var(--soft); background:var(--card); border:1px solid var(--line);
  border-radius:999px; padding:8px 12px; cursor:pointer; display:inline-flex; align-items:center; gap:7px;
  transition:border-color .2s var(--ease), color .2s var(--ease), transform .2s var(--ease); }
.cx-sc:hover{ color:var(--ink); border-color:var(--line-2); transform:translateY(-1px); }
.cx-sc.on{ color:#fff; background:var(--navy); border-color:var(--navy); }
.cx-sc b{ font-family:var(--mono); font-weight:500; font-size:11.5px; color:var(--muted); }
.cx-sc.on b{ color:rgba(255,255,255,.8); }
.cx-sc i{ width:7px; height:7px; border-radius:50%; background:var(--c, var(--navy)); }

.cb-stats{ display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); }
.cb-stat b, .cb-stat span{ display:block; }
.cx-hero .cb-stats{ grid-template-columns:repeat(2,minmax(0,1fr)); gap:0; max-width:600px; margin:30px 0 0;
  border-top:1px solid var(--line); }
.cx-hero .cb-stats .cb-stat:nth-child(3){ padding-left:0; border-left:0; }
.cx-hero .cb-stats .cb-stat:nth-child(n+3){ border-top:1px solid var(--line); margin-top:16px; }
.cx-hero .cb-stat{ border:0; border-radius:0; background:none; padding:16px 14px 0 0; min-height:0; }
.cx-hero .cb-stat + .cb-stat{ padding-left:16px; border-left:1px solid var(--line); }
.cx-hero .cb-stat b{ font:650 clamp(24px,2.3vw,32px)/1.05 var(--font); letter-spacing:-.04em; color:var(--ink); }
.cx-hero .cb-stat span{ font-size:12.5px; line-height:1.35; color:var(--muted); margin-top:6px; }
.cx-hero .cb-stat.sk{ min-height:64px; border-radius:10px; }

/* the departures board: a mechanical split-flap display, dark in both themes.
   Every cell is a flap module (.fm): an upper and a lower half of the same
   text with a hinge between them. A change folds the old upper half down and
   the new lower half up, like a Solari board. */
.cx-flap{ --amber:#ffb547; --paper:#f4efe2; --tile-a:#262b3a; --tile-b:#1c202c; --tile-c:#171a25; --tile-d:#11141c;
  position:relative; isolation:isolate; border-radius:22px; padding:16px 16px 12px; color:var(--paper);
  background:radial-gradient(120% 80% at 50% 0%, #161b2a 0%, #0b0e16 60%) , #0b0e16;
  border:1px solid #232a3c;
  box-shadow:0 0 0 6px #10131b, 0 0 0 7px #2a3144, 0 60px 90px -40px rgba(10,20,45,.65),
             0 30px 60px -30px rgba(255,170,60,.18), inset 0 1px 0 rgba(255,255,255,.07); }
.cx-flap::before{ content:""; position:absolute; z-index:-1; inset:12% -6% -10%; border-radius:50%;
  background:radial-gradient(closest-side, rgba(255,170,60,.22), rgba(99,91,255,.16) 55%, transparent); filter:blur(30px); }
.cx-flap::after{ content:""; position:absolute; inset:0; border-radius:inherit; pointer-events:none;
  background:linear-gradient(165deg, rgba(255,255,255,.07), transparent 28%),
             repeating-linear-gradient(0deg, rgba(255,255,255,.012) 0 1px, transparent 1px 3px); }
.cx-flap-head{ display:flex; align-items:center; gap:11px; padding:2px 4px 14px; border-bottom:1px solid #1f2535; }
.cx-flap-ico{ width:22px; height:22px; fill:var(--amber); flex:none; filter:drop-shadow(0 0 6px rgba(255,181,71,.5)); }
.cx-flap-head b{ font:800 15px/1 var(--font); letter-spacing:.34em; text-transform:uppercase; color:var(--amber);
  text-shadow:0 0 14px rgba(255,181,71,.35); }
.cx-flap-head span{ font:600 10.5px/1 var(--font); letter-spacing:.18em; text-transform:uppercase; color:#7d86a3; padding-left:11px;
  border-left:1px solid #2a3144; }
.cx-flap-head time{ margin-left:auto; display:inline-flex; align-items:center; gap:8px; font:600 12.5px/1 var(--mono);
  color:var(--amber); letter-spacing:.06em; font-variant-numeric:tabular-nums; }
.cx-flap-head time i{ width:7px; height:7px; border-radius:50%; background:#22c55e; box-shadow:0 0 8px #22c55e; animation:cx-blink 2s ease-in-out infinite; }

/* a flap module */
.fm{ --h:30px; position:relative; height:var(--h); perspective:500px; border-radius:6px; font:700 14px/1 var(--font);
  letter-spacing:.05em; text-transform:uppercase; font-variant-numeric:tabular-nums; color:var(--paper);
  box-shadow:0 2px 0 rgba(0,0,0,.55), inset 0 0 0 1px rgba(255,255,255,.035); }
.fm > span{ position:absolute; left:0; right:0; height:50%; overflow:hidden; backface-visibility:hidden; }
.fm > .u, .fm > .ft{ top:0; border-radius:6px 6px 0 0; background:linear-gradient(180deg,var(--tile-a),var(--tile-b)); }
.fm > .l, .fm > .fb{ bottom:0; border-radius:0 0 6px 6px; background:linear-gradient(180deg,var(--tile-c),var(--tile-d)); }
.fm > span > i{ position:absolute; left:0; right:0; height:var(--h); line-height:var(--h); padding:0 10px; font-style:normal;
  white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.fm > .u > i, .fm > .ft > i{ top:0; } .fm > .l > i, .fm > .fb > i{ bottom:0; }
.fm::after{ content:""; position:absolute; z-index:4; left:0; right:0; top:50%; height:1px; margin-top:-.5px;
  background:rgba(4,5,9,.62); box-shadow:0 1px 0 rgba(255,255,255,.035); }
.fm > .ft{ z-index:3; transform-origin:50% 100%; animation:fm-down .17s cubic-bezier(.55,0,.85,.36) forwards; }
.fm > .ft::after{ content:""; position:absolute; inset:0; background:linear-gradient(180deg,transparent,rgba(0,0,0,.45)); animation:fm-shade .17s forwards; }
.fm > .fb{ z-index:3; transform-origin:50% 0; transform:rotateX(90deg); animation:fm-up .2s .17s cubic-bezier(.2,.75,.3,1.25) forwards; }
@keyframes fm-down{ to{ transform:rotateX(-90deg); } }
@keyframes fm-up{ to{ transform:rotateX(0); } }
@keyframes fm-shade{ from{ opacity:0; } to{ opacity:1; } }
.fm.r > span > i{ text-align:right; }
.fm.c > span > i{ text-align:center; padding:0; }
.fm .dim{ color:#8a93ad; font-weight:600; }
.fm .led{ display:inline-block; width:7px; height:7px; border-radius:50%; margin-right:8px; vertical-align:1px; background:currentColor;
  box-shadow:0 0 8px currentColor; }
.fm.st-final{ color:#ff6b6b; } .fm.st-final .led{ animation:cx-blink 1s steps(2) infinite; }
.fm.st-closing{ color:var(--amber); } .fm.st-open{ color:#4ade80; } .fm.st-ext{ color:#b9a8ff; }
@keyframes cx-blink{ 50%{ opacity:.25; } }

/* next to close: the hero of the board */
.cx-next{ display:block; margin:14px 0 4px; padding:16px 16px 18px; border-radius:16px; text-decoration:none; color:inherit;
  background:linear-gradient(180deg, rgba(255,181,71,.07), rgba(255,181,71,.015)); border:1px solid rgba(255,181,71,.18);
  transition:border-color .2s ease, background .2s ease; }
.cx-next:hover, .cx-next:focus-visible{ border-color:rgba(255,181,71,.42); outline:none; }
.cx-next-top{ display:flex; align-items:center; gap:10px; font:700 10.5px/1 var(--font); letter-spacing:.2em; text-transform:uppercase; color:#8f98b4; }
.cx-next-top .pill{ margin-left:auto; display:inline-flex; align-items:center; gap:7px; padding:6px 9px; border-radius:999px;
  font:800 10.5px/1 var(--font); letter-spacing:.14em; color:var(--c,#ff6b6b); border:1px solid currentColor; background:rgba(0,0,0,.25); }
.cx-next-top .pill i{ width:6px; height:6px; border-radius:50%; background:currentColor; box-shadow:0 0 8px currentColor; animation:cx-blink 1s steps(2) infinite; }
.cx-next-title{ display:flex; flex-wrap:wrap; align-items:baseline; gap:6px 14px; margin-top:12px; }
.cx-next-title b{ font:800 30px/1 var(--font); letter-spacing:-.02em; color:#fff; }
.cx-next-title b small{ font-size:17px; color:#9aa3bf; font-weight:600; letter-spacing:0; }
.cx-next-title span{ font:700 13px/1 var(--font); letter-spacing:.14em; text-transform:uppercase; color:var(--amber); }
.cx-next-title span::before{ content:"→"; margin-right:8px; color:#7d86a3; letter-spacing:0; }
.cx-next-meta{ margin-top:9px; font-size:13px; color:#9aa3bf; line-height:1.5; }
.cx-next-meta em{ font-style:normal; color:#dcd6c6; }
.cx-clock{ display:flex; align-items:flex-start; gap:10px; margin-top:16px; }
.cx-clock .grp{ display:flex; flex-direction:column; align-items:center; gap:8px; }
.cx-clock .grp > div{ display:flex; gap:4px; }
.cx-clock .grp small{ font:700 9.5px/1 var(--font); letter-spacing:.22em; color:#6f7894; }
.cx-clock .sep{ font:800 34px/58px var(--font); color:#3a4157; }
.cx-clock .fm{ --h:58px; width:42px; font:800 42px/1 var(--font); letter-spacing:0; border-radius:8px; color:#fff7e6;
  text-shadow:0 1px 0 rgba(0,0,0,.6); }
.cx-clock .fm > .u, .cx-clock .fm > .ft{ border-radius:8px 8px 0 0; } .cx-clock .fm > .l, .cx-clock .fm > .fb{ border-radius:0 0 8px 8px; }
.cx-clock.days-only .fm{ color:var(--amber); }
.cx-clock-note{ margin-top:10px; font-size:12px; color:#7d86a3; }

.cx-flap-cols, .cx-row{ display:grid; gap:6px; align-items:center;
  grid-template-columns:minmax(0,.9fr) minmax(0,1.15fr) minmax(0,1.5fr) minmax(0,.95fr) minmax(0,1.25fr); }
.cx-flap-cols{ padding:14px 4px 7px; font:700 9.5px/1 var(--font); letter-spacing:.2em; text-transform:uppercase; color:#636c88; }
.cx-flap-cols span:nth-child(4){ text-align:right; padding-right:10px; }
.cx-flap-rows{ display:flex; flex-direction:column; gap:6px; min-height:216px; }
.cx-row{ padding:0; border-radius:8px; text-decoration:none; color:inherit; cursor:pointer; transition:transform .2s ease, filter .2s ease; }
.cx-row:hover, .cx-row:focus-visible{ outline:none; filter:brightness(1.18); transform:translateX(2px); }
.cx-flap-foot{ display:flex; justify-content:space-between; align-items:center; gap:12px; padding:12px 4px 2px; margin-top:12px;
  border-top:1px solid #1f2535; font:500 10.5px/1.4 var(--mono); color:#6f7894; letter-spacing:.02em; }
.cx-dots{ display:inline-flex; gap:6px; }
.cx-dots i{ width:6px; height:6px; border-radius:50%; background:#2b3247; transition:background .3s ease, box-shadow .3s ease; }
.cx-dots i.on{ background:var(--amber); box-shadow:0 0 8px var(--amber); }
.cx-flap-empty{ padding:40px 6px; color:#8b93ab; font-size:13px; }
@media (prefers-reduced-motion:reduce){
  .fm > .ft, .fm > .fb, .fm .led, .cx-next-top .pill i, .cx-flap-head time i{ animation:none; }
}

/* ── the wire: what changed ──────────────────────────────────────────── */
.cx-wire{ width:var(--cx-w); margin:0 auto; display:flex; align-items:stretch; border:1px solid var(--line);
  border-radius:14px; background:var(--card); overflow:hidden; min-height:48px; box-shadow:var(--shadow-s); }
.cx-wire:empty{ display:none; }
.cx-wire-label{ flex:none; display:flex; align-items:center; gap:8px; padding:0 16px; background:var(--ink); color:var(--bg);
  font:650 11px/1 var(--font); letter-spacing:.16em; text-transform:uppercase; }
.cx-wire-view{ position:relative; flex:1; overflow:hidden; display:flex; align-items:center;
  -webkit-mask:linear-gradient(90deg,transparent,#000 4%,#000 96%,transparent); mask:linear-gradient(90deg,transparent,#000 4%,#000 96%,transparent); }
.cx-wire-track{ display:flex; gap:42px; padding:0 24px; white-space:nowrap; width:max-content;
  animation:cx-marquee var(--dur,60s) linear infinite; }
.cx-wire:hover .cx-wire-track, .cx-wire:focus-within .cx-wire-track{ animation-play-state:paused; }
@keyframes cx-marquee{ to{ transform:translateX(-50%); } }
.cx-w{ display:inline-flex; align-items:center; gap:10px; font-size:14px; color:var(--ink); border:0; background:none;
  padding:0; cursor:pointer; font-family:var(--font); }
.cx-w s{ color:var(--muted); text-decoration-thickness:1px; }
.cx-w em{ font-style:normal; color:var(--soft); }
.cx-tag{ font:700 10px/1 var(--font); letter-spacing:.1em; text-transform:uppercase; padding:5px 7px; border-radius:5px;
  color:#fff; background:var(--tg, var(--navy)); }
.cx-tag.extended{ --tg:var(--ext); } .cx-tag.venue{ --tg:#0e7490; } .cx-tag.dates{ --tg:#b45309; }
.cx-tag.announced{ --tg:var(--ok); } .cx-tag.moved-earlier{ --tg:var(--hot); } .cx-tag.new{ --tg:#d9488f; }

/* ── this week ────────────────────────────────────────────────────────── */
.cb-week{ width:var(--cx-w); max-width:none; margin:22px auto 0; padding:0; display:grid;
  grid-template-columns:1.25fr 1fr 1fr; gap:16px; }
.cb-week:empty{ display:none; }
.cb-panel{ border:1px solid var(--line); background:var(--card); border-radius:18px; padding:20px 20px 18px;
  box-shadow:var(--shadow-s); min-width:0; }
.cb-panel h2{ font:650 12px/1.4 var(--font); letter-spacing:.12em; text-transform:uppercase; color:var(--muted);
  margin:0 0 14px; display:flex; align-items:baseline; gap:8px; }
.cb-panel h2 small{ font-family:var(--mono); font-weight:500; letter-spacing:0; text-transform:none; margin-left:auto; }
.cb-soon{ list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:10px; }
.cb-soon li{ display:grid; grid-template-columns:auto minmax(0,1fr) auto; align-items:center; gap:10px; min-width:0; }
.cb-soon b{ color:var(--ink); font-size:14.5px; white-space:nowrap; }
.cb-soon b a{ color:inherit; text-decoration:none; }
.cb-soon em{ grid-column:2; font-style:normal; color:var(--muted); font-size:12.5px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.cb-soon .cx-soon-main{ min-width:0; display:flex; flex-direction:column; }
.cb-soon .cx-tick{ font:500 12.5px/1 var(--mono); color:var(--soft); white-space:nowrap; }
.cb-pill{ font:600 11.5px/1 var(--mono); padding:6px 8px; border-radius:7px; color:#fff; min-width:38px; text-align:center; }
.cb-pill.hot{ background:var(--hot); } .cb-pill.warm{ background:var(--warm); }
.cb-quiet{ color:var(--muted); font-size:14px; margin:0; line-height:1.6; }
.cx-chg{ list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:11px; }
.cx-chg li button{ all:unset; cursor:pointer; display:grid; grid-template-columns:auto 1fr; gap:4px 10px; align-items:center; }
.cx-chg li button:focus-visible{ outline:2px solid var(--navy); outline-offset:3px; border-radius:6px; }
.cx-chg b{ font-size:14px; color:var(--ink); } .cx-chg span{ grid-column:2; font-size:12.5px; color:var(--muted); }
.cx-chg span s{ color:var(--muted); }
.cb-picks{ display:flex; flex-wrap:wrap; gap:8px; }
.cb-pick{ display:flex; flex-direction:column; align-items:flex-start; gap:3px; text-align:left; cursor:pointer;
  border:1px solid var(--line); background:var(--bg-2); color:var(--ink); border-radius:12px; padding:9px 12px;
  font:inherit; transition:border-color .2s var(--ease), transform .2s var(--ease); }
.cb-pick:hover{ border-color:var(--navy); transform:translateY(-1px); }
.cb-pick b{ font-size:14px; } .cb-pick span{ font-size:11.5px; color:var(--muted); }
.cb-fresh{ margin:14px 0 0; font-size:13.5px; color:var(--soft); }
.cb-link{ border:0; background:none; padding:0; font:inherit; color:var(--navy); font-weight:600;
  cursor:pointer; text-decoration:underline; text-underline-offset:3px; }

/* ── where: the map band (dark in both themes) ────────────────────────── */
.cx-map{ position:relative; isolation:isolate; margin-top:96px; padding:76px 0 64px; background:#050a15; color:#dfe5f5; overflow:hidden; }
.cx-map::before{ content:""; position:absolute; inset:0; z-index:-1; pointer-events:none;
  background:radial-gradient(60% 60% at 70% 0%, rgba(99,91,255,.22), transparent 70%),
             radial-gradient(40% 60% at 0% 100%, rgba(15,159,110,.10), transparent 70%),
             radial-gradient(30% 40% at 100% 80%, rgba(255,170,60,.08), transparent 70%); }
.cx-map .cx-head h2{ color:#fff; } .cx-map .cx-head > p{ color:#a9b4cf; } .cx-map .kicker{ color:#a8a2ff; }
.cx-map-top{ display:flex; align-items:flex-end; justify-content:space-between; gap:40px; }
.cx-map-stats{ display:grid; grid-template-columns:repeat(3,auto); gap:0; margin:0; flex:none; }
.cx-map-stats > div{ padding:0 22px; border-left:1px solid #1f2a45; }
.cx-map-stats > div:first-child{ border-left:0; padding-left:0; }
.cx-map-stats dt{ font:700 10.5px/1.3 var(--font); letter-spacing:.16em; text-transform:uppercase; color:#7f8aab; }
.cx-map-stats dd{ margin:6px 0 0; font:650 34px/1 var(--font); letter-spacing:-.04em; color:#fff; font-variant-numeric:tabular-nums; }
.cx-map-stats dd.o{ color:#c8bfff; text-shadow:0 0 18px rgba(169,156,255,.45); }

.cx-map-bar{ display:flex; flex-wrap:wrap; align-items:flex-end; gap:14px 16px; margin-top:28px; }
.cx-picks{ display:flex; gap:12px; flex:none; }
.cx-regions{ display:flex; flex-wrap:wrap; gap:7px; margin-right:auto; }
.cx-reg{ font:600 13px/1 var(--font); color:#c8d0e6; background:rgba(255,255,255,.035); border:1px solid #232d48;
  border-radius:999px; padding:10px 14px; cursor:pointer; display:inline-flex; gap:8px; align-items:center;
  transition:background .2s var(--ease), border-color .2s var(--ease), color .2s var(--ease), transform .2s var(--ease); }
.cx-reg b{ font:500 12px/1 var(--mono); color:#8994b3; }
.cx-reg:hover{ border-color:#4a5578; color:#fff; transform:translateY(-1px); }
.cx-reg.on{ background:linear-gradient(135deg,#635bff,#8b5cf6); border-color:transparent; color:#fff; box-shadow:0 8px 24px -10px rgba(99,91,255,.8); }
.cx-reg.on b{ color:#e3e0ff; }
.cx-pick{ display:flex; flex-direction:column; gap:6px; font:700 10px/1 var(--font); letter-spacing:.16em; text-transform:uppercase; color:#7f8aab; }
.cx-pick select{ width:186px; font:600 14px/1.2 var(--font); letter-spacing:0; text-transform:none; color:#eef1fb;
  background-color:#0d1427; border:1px solid #2a3554; border-radius:11px; padding:11px 34px 11px 13px; cursor:pointer;
  appearance:none; -webkit-appearance:none;
  background-image:linear-gradient(45deg,transparent 50%,#a9b4cf 50%),linear-gradient(135deg,#a9b4cf 50%,transparent 50%);
  background-position:calc(100% - 17px) 52%,calc(100% - 12px) 52%; background-size:5px 5px; background-repeat:no-repeat; }
.cx-pick select:disabled{ opacity:.45; cursor:not-allowed; }
.cx-pick select:focus-visible{ outline:2px solid #a99cff; outline-offset:2px; }
.cx-pick select option{ color:#10182f; background:#fff; }

.cx-map-stage{ position:relative; display:grid; grid-template-columns:340px minmax(0,1fr); height:640px; margin-top:16px;
  border:1px solid #1c2541; border-radius:24px; overflow:hidden; background:radial-gradient(120% 90% at 62% 40%, #0a1026 0%, #05091a 55%, #03060f 100%);
  box-shadow:0 50px 100px -50px rgba(0,0,0,.9), inset 0 1px 0 rgba(255,255,255,.04); }
.cx-map-view{ position:relative; min-width:0; }
.cx-map-view::after{ content:""; position:absolute; inset:0; z-index:1; pointer-events:none;
  background:linear-gradient(180deg, rgba(4,8,20,.62), rgba(4,8,20,0) 70px, rgba(4,8,20,0) calc(100% - 76px), rgba(4,8,20,.78)); }
.cx-map-view canvas{ position:absolute; inset:0; width:100%; height:100%; display:block; cursor:grab; touch-action:pan-y; }
.cx-map-view canvas.drag{ cursor:grabbing; } .cx-map-view canvas.hit{ cursor:pointer; }

/* the panel: what the map is showing, in words */
.cx-panel{ position:relative; z-index:2; overflow:auto; overscroll-behavior:contain; padding:22px 20px 24px;
  border-right:1px solid #1c2541; background:linear-gradient(180deg,rgba(14,21,40,.92),rgba(8,13,27,.96));
  scrollbar-width:thin; scrollbar-color:#2b3656 transparent; }
.cx-p-k{ font:700 10.5px/1.3 var(--font); letter-spacing:.18em; text-transform:uppercase; color:#8f86ff; }
.cx-p-t{ display:flex; align-items:center; gap:10px; margin:8px 0 0; font:700 26px/1.1 var(--font); letter-spacing:-.035em; color:#fff; }
.cx-p-t .cc{ font:600 11px/1 var(--mono); color:#a9b4cf; border:1px solid #2b3656; border-radius:6px; padding:5px 6px; letter-spacing:.06em; }
.cx-p-sub{ margin:6px 0 0; font-size:13px; color:#8f9ab8; line-height:1.5; }
.cx-p-sub b{ color:#fff; font-weight:650; }
.cx-p-note{ margin:14px 0 0; font-size:12px; line-height:1.5; color:#c4935a; }
.cx-p-list .bar i.z{ background:#3a4566; }
.cx-p-nums{ display:grid; grid-template-columns:repeat(3,1fr); gap:8px; margin:16px 0 4px; }
.cx-p-nums div{ padding:10px 10px 9px; border:1px solid #1f2a45; border-radius:12px; background:rgba(255,255,255,.025); }
.cx-p-nums b{ display:block; font:650 22px/1 var(--font); color:#fff; letter-spacing:-.03em; font-variant-numeric:tabular-nums; }
.cx-p-nums span{ display:block; margin-top:5px; font-size:11px; color:#8592b3; }
.cx-p-h{ margin:20px 0 10px; font:700 10.5px/1.3 var(--font); letter-spacing:.16em; text-transform:uppercase; color:#7f8aab;
  display:flex; justify-content:space-between; }
.cx-p-list{ list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:4px; }
.cx-p-list li > button{ all:unset; box-sizing:border-box; width:100%; cursor:pointer; display:grid;
  grid-template-columns:22px minmax(0,1fr) auto; gap:4px 10px; align-items:center; padding:9px 10px; border-radius:11px;
  border:1px solid transparent; transition:background .18s ease, border-color .18s ease, transform .18s ease;
  animation:cx-in-row .45s var(--ease) both; animation-delay:calc(var(--i, 0) * 28ms); }
@keyframes cx-in-row{ from{ opacity:0; transform:translateX(-8px); } }
.cx-p-list li > button:hover, .cx-p-list li > button.on{ background:rgba(99,91,255,.12); border-color:rgba(169,156,255,.35); }
.cx-p-list li > button:focus-visible{ outline:2px solid #a99cff; outline-offset:1px; }
.cx-p-list .rk{ font:600 11px/1 var(--mono); color:#5f6a8c; text-align:right; }
.cx-p-list .nm{ min-width:0; font:600 14px/1.25 var(--font); color:#eef1fb; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.cx-p-list .nm small{ display:block; margin-top:3px; font:500 11.5px/1.2 var(--font); color:#8592b3; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.cx-p-list .nm small.off{ color:#c4935a; }
.cx-p-list .ct{ font:600 12.5px/1 var(--mono); color:#c8bfff; text-align:right; }
.cx-p-list .bar{ grid-column:2 / -1; height:3px; border-radius:3px; background:#1a2340; overflow:hidden; }
.cx-p-list .bar i{ display:block; height:100%; width:var(--w); border-radius:inherit;
  background:linear-gradient(90deg,#635bff,#a99cff); transform-origin:left; animation:cx-grow .8s var(--ease) both; animation-delay:calc(var(--i, 0) * 28ms + .1s); }
.cx-p-list .bar i.o{ background:linear-gradient(90deg,#16a34a,#4ade80); }
@keyframes cx-grow{ from{ transform:scaleX(0); } }
.cx-p-go{ display:flex; align-items:center; justify-content:center; gap:8px; width:100%; margin-top:16px; padding:12px 14px; border-radius:12px;
  border:0; cursor:pointer; font:650 13.5px/1 var(--font); color:#fff; background:linear-gradient(135deg,#635bff,#8b5cf6);
  box-shadow:0 12px 30px -14px rgba(99,91,255,.9); }
.cx-p-go:hover{ filter:brightness(1.08); }
.cx-p-back{ all:unset; cursor:pointer; font:600 12.5px/1 var(--font); color:#a9b4cf; display:inline-flex; gap:6px; align-items:center; margin-bottom:14px; }
.cx-p-back:hover{ color:#fff; } .cx-p-back:focus-visible{ outline:2px solid #a99cff; outline-offset:3px; border-radius:4px; }
.cx-p-conf{ list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:6px; }
.cx-p-conf li > button{ all:unset; box-sizing:border-box; width:100%; cursor:pointer; display:grid; grid-template-columns:minmax(0,1fr) auto;
  gap:3px 10px; padding:11px 12px; border-radius:12px; border:1px solid #1f2a45; background:rgba(255,255,255,.025);
  animation:cx-in-row .45s var(--ease) both; animation-delay:calc(var(--i, 0) * 35ms); transition:border-color .18s ease; }
.cx-p-conf li > button:hover{ border-color:#635bff; }
.cx-p-conf b{ font:700 14.5px/1.2 var(--font); color:#fff; } .cx-p-conf b small{ color:#8592b3; font-weight:500; }
.cx-p-conf em{ font-style:normal; font:600 11.5px/1.2 var(--mono); color:#4ade80; text-align:right; }
.cx-p-conf em.shut{ color:#7f8aab; } .cx-p-conf em.hot{ color:#ff8b8b; }
.cx-p-conf span{ grid-column:1 / -1; font-size:12px; color:#8592b3; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }

/* on the canvas */
.cx-crumbs{ position:absolute; top:16px; left:18px; z-index:2; display:flex; flex-wrap:wrap; align-items:center; gap:6px;
  font:600 12px/1 var(--font); color:#7f8aab; pointer-events:auto; }
.cx-crumbs button{ all:unset; cursor:pointer; color:#a9b4cf; padding:6px 9px; border-radius:8px; background:rgba(10,16,32,.7);
  border:1px solid #1f2a45; backdrop-filter:blur(6px); }
.cx-crumbs button:hover{ color:#fff; border-color:#3a4670; }
.cx-crumbs button.cur{ color:#fff; border-color:rgba(169,156,255,.5); background:rgba(99,91,255,.18); }
.cx-crumbs i{ font-style:normal; color:#3b4566; }
.cx-zoom{ position:absolute; right:16px; top:16px; z-index:2; display:flex; flex-direction:column; border-radius:12px; overflow:hidden;
  border:1px solid #1f2a45; background:rgba(10,16,32,.75); backdrop-filter:blur(6px); }
.cx-zoom button{ all:unset; cursor:pointer; width:36px; height:34px; display:grid; place-items:center; font:500 18px/1 var(--font); color:#c8d0e6; }
.cx-zoom button + button{ border-top:1px solid #1f2a45; }
.cx-zoom button:hover{ background:rgba(99,91,255,.18); color:#fff; }
.cx-zoom button:focus-visible{ outline:2px solid #a99cff; outline-offset:-2px; }
.cx-coord{ position:absolute; left:18px; bottom:14px; z-index:2; font:500 11px/1 var(--mono); color:#6f7ba0; letter-spacing:.04em;
  pointer-events:none; font-variant-numeric:tabular-nums; }
.cx-map-legend{ position:absolute; right:16px; bottom:12px; z-index:2; display:flex; gap:16px; font-size:11.5px; color:#8792b3; pointer-events:none; }
.cx-map-legend i{ display:inline-block; width:8px; height:8px; border-radius:50%; margin-right:7px; background:#6b779f; vertical-align:middle; }
.cx-map-legend i.o{ background:#b7abff; box-shadow:0 0 10px #a99cff; }
.cx-map-legend i.n{ background:linear-gradient(90deg,#8f9cd0 50%,#0a0f24 50%); box-shadow:inset 0 0 0 1px #56618c; }
.cx-map-legend i.t{ width:16px; height:2px; border-radius:2px; background:linear-gradient(90deg,transparent,#ffb547); box-shadow:0 0 6px #ffb547; }
.cx-map-tip{ position:absolute; z-index:3; min-width:210px; max-width:280px; pointer-events:none; transform:translate(-50%, calc(-100% - 18px));
  background:rgba(11,17,33,.95); border:1px solid #2b3552; border-radius:14px; padding:12px 14px; font-size:12.5px; color:#dfe5f5;
  box-shadow:0 24px 50px -20px rgba(0,0,0,.9); backdrop-filter:blur(10px); }
.cx-map-tip b{ display:flex; align-items:center; gap:8px; font-size:15px; color:#fff; }
.cx-map-tip b .cc{ font:600 10px/1 var(--mono); color:#a9b4cf; border:1px solid #2b3656; border-radius:5px; padding:3px 4px; }
.cx-map-tip .n{ display:block; margin-top:5px; color:#9aa6c4; }
.cx-map-tip .n em{ font-style:normal; color:#c8bfff; font-weight:600; }
.cx-map-tip .nx{ display:block; margin-top:8px; padding-top:8px; border-top:1px solid #222c47; color:#ffcf86; font-family:var(--mono); font-size:11.5px; }
.cx-map-tip .ac{ display:block; margin-top:4px; color:#7f8aab; font-size:11.5px; }
.cx-map-credit{ margin:14px 0 0; font-size:11.5px; color:#6c7798; }
.cx-map-credit a{ color:#9aa6c4; }

/* ── the board ───────────────────────────────────────────────────────── */
.cx-boardsec{ width:var(--cx-w); margin:96px auto 0; }
.cx-boardsec > .cx-head{ width:auto; margin:0; }
.cb-bar{ position:sticky; top:74px; z-index:20; width:100%; max-width:none; margin:30px 0 8px;
  display:flex; flex-wrap:wrap; align-items:center; gap:8px; padding:10px 12px; border:1px solid var(--line);
  border-radius:16px; background:var(--glass); box-shadow:var(--shadow-s);
  backdrop-filter:saturate(170%) blur(18px); -webkit-backdrop-filter:saturate(170%) blur(18px); }
.cb-bar select{ font:inherit; font-size:13.5px; color:var(--ink); background-color:var(--card);
  border:1px solid var(--line-2); border-radius:10px; padding:8px 30px 8px 11px; cursor:pointer;
  appearance:none; -webkit-appearance:none; max-width:200px;
  background-image:linear-gradient(45deg,transparent 50%,currentColor 50%),linear-gradient(135deg,currentColor 50%,transparent 50%);
  background-position:calc(100% - 15px) 52%,calc(100% - 10px) 52%; background-size:5px 5px; background-repeat:no-repeat; }
.cb-bar select:focus-visible{ outline:2px solid var(--navy); outline-offset:1px; }
.cb-bar select option{ color:#10182f; background:#fff; }
.cb-quick{ display:flex; gap:6px; flex-wrap:wrap; }
.cb-q{ font:inherit; font-size:13px; font-weight:600; padding:8px 11px; border-radius:10px; cursor:pointer;
  border:1px solid var(--line-2); background:transparent; color:var(--soft); transition:.18s var(--ease); }
.cb-q:hover{ color:var(--ink); border-color:var(--ink); }
.cb-q.on{ background:var(--ink); color:var(--bg); border-color:var(--ink); }
.cb-toggle{ display:inline-flex; align-items:center; gap:7px; font-size:13.5px; color:var(--soft); cursor:pointer; user-select:none; }
.cb-toggle input{ accent-color:var(--navy); width:16px; height:16px; }
.cb-count{ margin-left:auto; font:500 12.5px/1 var(--mono); color:var(--muted); }
.cx-active{ display:flex; flex-wrap:wrap; gap:8px; align-items:center; margin:4px 0 6px; }
.cx-chip{ font:600 12.5px/1 var(--font); color:var(--ink); background:var(--bg-2); border:1px solid var(--line-2);
  border-radius:999px; padding:7px 9px 7px 12px; display:inline-flex; gap:7px; align-items:center; cursor:pointer; }
.cx-chip::after{ content:"×"; font-size:15px; color:var(--muted); line-height:.8; }
.cx-chip:hover{ border-color:var(--ink); }

.cb-list{ max-width:none; margin:0; padding:0; display:flex; flex-direction:column; gap:10px; }
.cb-month{ display:flex; align-items:baseline; gap:12px; margin:30px 0 4px; font:650 22px/1.2 var(--font);
  color:var(--ink); letter-spacing:-.03em; }
.cb-month::after{ content:""; flex:1; height:1px; background:var(--line); transform:translateY(-6px); }
.cb-month small{ font:500 12px/1 var(--mono); color:var(--muted); order:2; letter-spacing:0; }

.cb-t{ position:relative; display:grid; grid-template-columns:104px minmax(0,1fr) auto; gap:20px; align-items:center;
  border:1px solid var(--line); background:var(--card); border-radius:18px; padding:14px 16px 14px 14px;
  transition:border-color .2s var(--ease), transform .2s var(--ease), box-shadow .2s var(--ease); }
.cb-t:hover{ border-color:var(--line-2); transform:translateY(-1px); box-shadow:var(--shadow-m); }
.cb-t.hot{ box-shadow:inset 3px 0 0 var(--hot); }
.cb-t.hot:hover{ box-shadow:inset 3px 0 0 var(--hot), var(--shadow-m); }
.cb-t.is-new::before{ content:""; position:absolute; inset:-1px; border-radius:18px; padding:1px;
  background:var(--iris); -webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);
  -webkit-mask-composite:xor; mask-composite:exclude; pointer-events:none; opacity:.75; }
.cb-t.past{ opacity:.82; }

/* countdown: a ring that drains over the last 60 days */
.cb-cd{ --tone:var(--muted); position:relative; display:flex; flex-direction:column; align-items:center; justify-content:center;
  text-align:center; aspect-ratio:1; width:96px; border-radius:50%;
  background:conic-gradient(var(--tone) calc(var(--p, 0) * 1%), var(--line) 0); }
.cb-cd::before{ content:""; position:absolute; inset:5px; border-radius:50%; background:var(--card); }
.cb-cd > *{ position:relative; }
.cb-cd b{ font:650 27px/1 var(--font); letter-spacing:-.04em; color:var(--tone); }
.cb-cd span{ font:650 9.5px/1.2 var(--font); text-transform:uppercase; letter-spacing:.08em; color:var(--muted); margin-top:4px; }
.cb-cd small{ font:500 10.5px/1.2 var(--mono); color:var(--soft); margin-top:5px; }
.cb-cd.hot{ --tone:var(--hot); } .cb-cd.warm{ --tone:var(--warm); } .cb-cd.cool{ --tone:var(--cool); }
.cb-cd.shut, .cb-cd.tba{ --p:0; } .cb-cd.shut b, .cb-cd.tba b{ font-size:21px; color:var(--muted); }
.cb-cd.tba{ background:none; border:1.5px dashed var(--line-2); }

.cb-main{ min-width:0; }
.cb-l1{ display:flex; flex-wrap:wrap; align-items:center; gap:6px 7px; }
.cb-l1 h3{ font:650 20px/1.2 var(--font); letter-spacing:-.03em; color:var(--ink); margin:0 4px 0 0; }
.cb-l1 h3 .yr{ font-weight:500; font-size:14px; color:var(--muted); letter-spacing:0; }
.cb-l1 h3 a, .cb-l1 h3 button{ all:unset; cursor:pointer; color:inherit; }
.cb-l1 h3 a:hover, .cb-l1 h3 button:hover{ text-decoration:underline; text-underline-offset:3px; }
.cb-l1 h3 a:focus-visible, .cb-l1 h3 button:focus-visible{ outline:2px solid var(--navy); outline-offset:3px; border-radius:4px; }
.cb-b{ font:700 10.5px/1 var(--font); letter-spacing:.02em; padding:5px 7px; border-radius:6px;
  border:1px solid var(--line-2); color:var(--soft); white-space:nowrap; display:inline-flex; align-items:center; gap:4px; }
.cb-b.pub{ color:var(--ink); }
.cb-b.p-ieee{ color:var(--pub-ieee); border-color:color-mix(in srgb,var(--pub-ieee) 45%,transparent); font-style:italic; font-weight:800; }
.cb-b.p-acm{ color:var(--pub-acm); border-color:color-mix(in srgb,var(--pub-acm) 45%,transparent); }
.cb-b.p-springer{ color:var(--pub-springer); border-color:color-mix(in srgb,var(--pub-springer) 45%,transparent); }
.cb-b.p-elsevier{ color:var(--pub-elsevier); border-color:color-mix(in srgb,var(--pub-elsevier) 45%,transparent); }
.cb-b.p-usenix{ color:var(--pub-usenix); border-color:color-mix(in srgb,var(--pub-usenix) 45%,transparent); }
.cb-b.p-nature{ color:var(--pub-nature); border-color:color-mix(in srgb,var(--pub-nature) 45%,transparent); }
.cb-b.rank{ color:#5b45e0; border-color:color-mix(in srgb,#635bff 45%,transparent); background:color-mix(in srgb,#635bff 7%,transparent); }
[data-theme="dark"] .cb-b.rank{ color:#c9bdff; }
.cb-b.ok{ color:var(--ok); border-color:color-mix(in srgb,var(--ok) 45%,transparent); }
.cb-b.ok::before{ content:""; width:10px; height:10px; background:currentColor;
  -webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M20 6 9 17l-5-5' stroke='%23000' stroke-width='3' fill='none' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center/contain no-repeat;
  mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M20 6 9 17l-5-5' stroke='%23000' stroke-width='3' fill='none' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center/contain no-repeat; }
.cb-b.ext{ color:#fff; background:var(--ext); border-color:transparent; }
.cb-b.new{ color:#fff; border-color:transparent; background:var(--iris); }
.cb-b.comm{ color:var(--warm); border-color:color-mix(in srgb,var(--warm) 45%,transparent); border-style:dashed; }
.cb-name{ margin:6px 0 0; color:var(--soft); font-size:14.5px; line-height:1.45;
  display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; }
/* spacing, not "·" separators: a separator wraps to the start of a line */
.cb-meta{ display:flex; flex-wrap:wrap; gap:4px 18px; margin-top:8px; font-size:13px; color:var(--muted); }
.cb-m{ display:inline-flex; align-items:center; gap:6px; }
.cb-m svg{ width:14px; height:14px; fill:none; stroke:currentColor; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round; flex:none; }
.cb-m.fld{ color:var(--soft); }
.cx-mode{ font:600 10.5px/1 var(--font); letter-spacing:.04em; text-transform:uppercase; padding:4px 6px; border-radius:5px;
  background:var(--bg-2); color:var(--soft); border:1px solid var(--line); }
.cx-mode.virtual{ color:#0e7490; } .cx-mode.hybrid{ color:#7c3aed; }
[data-theme="dark"] .cx-mode.virtual{ color:#67e8f9; } [data-theme="dark"] .cx-mode.hybrid{ color:#c4b5fd; }

/* the call, as a line: abstract · paper · notification · conference */
.cx-tl{ position:relative; display:flex; align-items:center; margin:14px 0 2px; height:30px; max-width:640px; }
.cx-tl::before{ content:""; position:absolute; left:4px; right:4px; top:9px; height:2px; border-radius:2px; background:var(--line); }
.cx-tl i{ position:absolute; top:9px; left:4px; height:2px; border-radius:2px; width:var(--now,0%);
  background:linear-gradient(90deg,var(--line-2),var(--navy)); }
.cx-tl span{ position:absolute; top:4px; transform:translateX(-50%); display:flex; flex-direction:column; align-items:center; gap:5px;
  font:500 10.5px/1 var(--mono); color:var(--muted); white-space:nowrap; }
.cx-tl span::before{ content:""; width:10px; height:10px; border-radius:50%; background:var(--card); border:2px solid var(--line-2); }
.cx-tl span.done::before{ background:var(--line-2); }
.cx-tl span.next::before{ background:var(--navy); border-color:var(--navy); box-shadow:0 0 0 4px color-mix(in srgb,var(--navy) 20%,transparent); }
.cx-tl span.next{ color:var(--ink); font-weight:600; }
.cx-tl span.conf::before{ border-radius:3px; border-color:var(--ink); }
.cx-tl span.edge-l{ transform:none; align-items:flex-start; } .cx-tl span.edge-r{ transform:translateX(-100%); align-items:flex-end; }

.cb-act{ display:flex; flex-direction:column; align-items:stretch; gap:7px; min-width:156px; }
.cb-go{ display:inline-flex; align-items:center; justify-content:center; gap:6px; font:600 13.5px/1 var(--font);
  padding:11px 14px; border-radius:11px; background:var(--ink); color:var(--bg); text-decoration:none; border:0; cursor:pointer;
  transition:transform .15s var(--ease), opacity .15s; }
.cb-go:hover{ transform:translateY(-1px); opacity:.92; }
.cb-go i{ font-style:normal; }
.cb-go.ghost{ background:transparent; color:var(--ink); border:1px solid var(--line-2); }
.cx-act2{ display:flex; gap:6px; }
.cb-cal, .cb-vet, .cx-star{ flex:1; white-space:nowrap; font:600 12.5px/1 var(--font); padding:9px 10px; border-radius:10px; cursor:pointer;
  border:1px solid var(--line-2); background:transparent; color:var(--soft); text-align:center; text-decoration:none;
  display:inline-flex; align-items:center; justify-content:center; gap:5px; }
.cb-cal:hover, .cb-vet:hover, .cx-star:hover{ color:var(--ink); border-color:var(--ink); }
.cb-vet{ color:var(--warm); border-color:color-mix(in srgb,var(--warm) 40%,transparent); }
.cx-star svg{ width:14px; height:14px; fill:none; stroke:currentColor; stroke-width:1.8; stroke-linejoin:round; }
.cx-star.on{ color:#b7791f; border-color:color-mix(in srgb,#eab308 55%,transparent); background:color-mix(in srgb,#eab308 10%,transparent); }
.cx-star.on svg{ fill:#eab308; stroke:#b7791f; }

.cb-morewrap{ text-align:center; margin:22px 0 4px; }
.cb-more{ font:600 14px/1 var(--font); padding:13px 22px; border-radius:999px; cursor:pointer;
  border:1px solid var(--line-2); background:var(--card); color:var(--ink); }
.cb-more:hover{ border-color:var(--ink); }
.cb-empty{ display:flex; flex-direction:column; align-items:center; gap:8px; padding:56px 16px;
  border:1px dashed var(--line-2); border-radius:18px; color:var(--muted); text-align:center; }
.cb-empty b{ color:var(--ink); font-size:17px; }
.cb-note{ max-width:860px; margin:26px auto 0; text-align:center; font-size:13px; line-height:1.7; color:var(--muted); }
.cb-note b{ color:var(--soft); }

/* skeleton while the feed loads */
.cb-stat.sk, .cb-t.sk{ min-height:118px; background:linear-gradient(100deg,var(--card) 30%,var(--bg-2) 50%,var(--card) 70%);
  background-size:300% 100%; animation:cb-shimmer 1.4s linear infinite; }
@keyframes cb-shimmer{ to{ background-position:-150% 0; } }

/* ── how the board works ─────────────────────────────────────────────── */
.cx-how{ margin-top:110px; }
.cx-steps{ list-style:none; margin:44px 0 0; padding:0; display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:16px;
  counter-reset:cx; position:relative; }
.cx-steps li{ position:relative; counter-increment:cx; border:1px solid var(--line); background:var(--card); border-radius:18px;
  padding:22px 20px 20px; box-shadow:var(--shadow-s); }
.cx-steps li::before{ content:"0" counter(cx); display:block; font:500 12px/1 var(--mono); color:var(--navy); margin-bottom:16px; }
.cx-steps li::after{ content:""; position:absolute; top:28px; right:-17px; width:18px; height:1px; background:var(--line-2); }
.cx-steps li:last-child::after{ display:none; }
.cx-steps b{ display:block; font:650 21px/1.2 var(--font); letter-spacing:-.03em; color:var(--ink); }
.cx-steps span{ display:block; margin-top:10px; font-size:14px; line-height:1.6; color:var(--soft); }
.cx-steps em{ display:block; margin-top:16px; padding-top:14px; border-top:1px solid var(--line); font:500 12.5px/1.5 var(--mono);
  font-style:normal; color:var(--ink); }
.cx-health{ display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:12px; margin-top:16px; }
.cx-src{ border:1px solid var(--line); border-radius:14px; padding:14px 16px; background:var(--bg-2); font-size:13px; color:var(--soft); }
.cx-src b{ display:flex; align-items:center; gap:8px; font-size:14px; color:var(--ink); margin-bottom:6px; }
.cx-src b i{ width:8px; height:8px; border-radius:50%; background:var(--ok); box-shadow:0 0 0 3px color-mix(in srgb,var(--ok) 20%,transparent); }
.cx-src b i.down{ background:var(--hot); box-shadow:0 0 0 3px color-mix(in srgb,var(--hot) 20%,transparent); }
.cx-src a{ color:var(--navy); }

/* ── calendar ─────────────────────────────────────────────────────────── */
.cx-cal{ margin-top:110px; }
.cx-cal-in{ display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:48px; align-items:center; }
.cx-cal-card{ border:1px solid var(--line); background:var(--card); border-radius:20px; padding:24px; box-shadow:var(--shadow-m); }
.cx-cal-row{ display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:10px; }
.cx-cal-row label{ display:flex; flex-direction:column; gap:7px; font:600 12px/1 var(--font); letter-spacing:.06em;
  text-transform:uppercase; color:var(--muted); }
.cx-cal-row select{ font:inherit; font-size:14px; letter-spacing:0; text-transform:none; color:var(--ink); background:var(--bg-2);
  border:1px solid var(--line-2); border-radius:10px; padding:10px; }
.cx-cal-go{ display:flex; flex-wrap:wrap; gap:10px; margin-top:18px; }
.cx-cal-go a{ text-align:center; white-space:nowrap; flex:1 1 auto; }
.cx-cal-watch{ margin:16px 0 0; font-size:13.5px; color:var(--soft); }
.cx-cal-watch:empty{ display:none; }

/* ── the drawer ───────────────────────────────────────────────────────── */
.cx-drawer{ position:fixed; inset:0 0 0 auto; width:min(580px,100vw); height:100dvh; max-height:none; max-width:none; margin:0;
  padding:0; border:0; border-left:1px solid var(--line); background:var(--card); color:var(--ink);
  box-shadow:-40px 0 90px -30px rgba(6,11,23,.45); overflow:auto; overscroll-behavior:contain; }
.cx-drawer[open]{ animation:cx-in .32s var(--ease); }
@keyframes cx-in{ from{ transform:translateX(40px); opacity:0; } }
.cx-drawer::backdrop{ background:rgba(6,11,23,.42); backdrop-filter:blur(3px); }
.cx-drawer-in{ padding:26px 28px 40px; }
.cx-dx{ position:sticky; top:0; z-index:2; display:flex; align-items:center; gap:10px; margin:-26px -28px 18px; padding:16px 28px;
  background:color-mix(in srgb,var(--card) 92%,transparent); backdrop-filter:blur(10px); border-bottom:1px solid var(--line); }
.cx-dx .cx-x{ margin-left:auto; width:38px; height:38px; border-radius:10px; border:1px solid var(--line-2); background:var(--card);
  color:var(--ink); cursor:pointer; font-size:20px; line-height:1; }
.cx-dx .cb-b{ font-size:10px; }
.cx-d-title{ font:650 34px/1.05 var(--font); letter-spacing:-.045em; margin:0; }
.cx-d-title small{ font-size:18px; color:var(--muted); font-weight:500; letter-spacing:0; }
.cx-d-name{ margin:8px 0 0; color:var(--soft); font-size:15.5px; line-height:1.5; }
.cx-d-count{ display:flex; align-items:baseline; gap:10px; margin:20px 0 0; padding:16px 18px; border-radius:14px;
  background:var(--bg-2); border:1px solid var(--line); }
.cx-d-count b{ font:650 30px/1 var(--mono); letter-spacing:-.03em; color:var(--tone, var(--ink)); }
.cx-d-count span{ font-size:13.5px; color:var(--soft); }
.cx-d-sec{ margin-top:26px; }
.cx-d-sec h3{ font:650 12px/1.4 var(--font); letter-spacing:.12em; text-transform:uppercase; color:var(--muted); margin:0 0 12px; }
.cx-steps-v{ list-style:none; margin:0; padding:0 0 0 4px; position:relative; }
.cx-steps-v::before{ content:""; position:absolute; left:9px; top:8px; bottom:8px; width:2px; background:var(--line); }
.cx-steps-v li{ position:relative; display:grid; grid-template-columns:24px 1fr auto; gap:10px; align-items:baseline; padding:7px 0; }
.cx-steps-v li::before{ content:""; position:relative; z-index:1; width:12px; height:12px; margin-top:2px; border-radius:50%;
  background:var(--card); border:2px solid var(--line-2); }
.cx-steps-v li.done::before{ background:var(--line-2); }
.cx-steps-v li.next::before{ background:var(--navy); border-color:var(--navy); box-shadow:0 0 0 4px color-mix(in srgb,var(--navy) 20%,transparent); }
.cx-steps-v li.conf::before{ border-radius:3px; border-color:var(--ink); }
.cx-steps-v b{ font-size:14.5px; color:var(--ink); font-weight:600; }
.cx-steps-v b small{ font-weight:500; color:var(--muted); font-size:12.5px; }
.cx-steps-v time{ font:500 13px/1.3 var(--mono); color:var(--soft); text-align:right; white-space:nowrap; }
.cx-steps-v li.done b, .cx-steps-v li.done time{ color:var(--muted); }
.cx-facts{ display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:1px; margin:0; background:var(--line);
  border:1px solid var(--line); border-radius:14px; overflow:hidden; }
.cx-facts > div{ background:var(--card); padding:12px 14px; }
.cx-facts dt{ font:600 11px/1.3 var(--font); letter-spacing:.08em; text-transform:uppercase; color:var(--muted); }
.cx-facts dd{ margin:5px 0 0; font-size:14.5px; color:var(--ink); line-height:1.45; }
.cx-facts dd a{ color:var(--navy); }
.cx-verify{ display:flex; gap:12px; align-items:flex-start; padding:14px 16px; border-radius:14px; border:1px solid var(--line);
  background:var(--bg-2); font-size:14px; line-height:1.55; color:var(--soft); }
.cx-verify i{ flex:none; width:26px; height:26px; border-radius:50%; display:grid; place-items:center; font-style:normal;
  font-weight:800; color:#fff; background:var(--muted); font-size:14px; }
.cx-verify.verified i{ background:var(--ok); } .cx-verify.partial i{ background:#ca8a04; }
.cx-verify.unreachable i, .cx-verify.stale i{ background:var(--hot); } .cx-verify.blocked i{ background:#64748b; }
.cx-verify b{ color:var(--ink); display:block; }
.cx-reasons{ list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:8px; }
.cx-reasons li{ display:flex; gap:10px; font-size:14px; color:var(--soft); line-height:1.5; }
.cx-reasons li::before{ content:""; flex:none; width:8px; height:8px; border-radius:50%; margin-top:7px; background:var(--ok); }
.cx-reasons li.bad::before{ background:var(--warm); }
.cx-trust{ display:inline-flex; align-items:center; gap:7px; font:650 12px/1 var(--font); letter-spacing:.06em;
  text-transform:uppercase; padding:6px 9px; border-radius:7px; margin-bottom:12px; }
.cx-trust.established{ color:var(--ok); background:color-mix(in srgb,var(--ok) 12%,transparent); }
.cx-trust.listed{ color:var(--navy); background:color-mix(in srgb,var(--navy) 10%,transparent); }
.cx-trust.caution{ color:var(--warm); background:color-mix(in srgb,var(--warm) 13%,transparent); }
.cx-hist{ width:100%; border-collapse:collapse; font-size:13.5px; }
.cx-hist th{ text-align:left; font:600 11px/1.3 var(--font); letter-spacing:.08em; text-transform:uppercase; color:var(--muted);
  padding:0 8px 8px 0; border-bottom:1px solid var(--line); }
.cx-hist td{ padding:9px 8px 9px 0; border-bottom:1px solid var(--line); color:var(--soft); vertical-align:top; }
.cx-hist td:first-child{ font-family:var(--mono); color:var(--ink); }
.cx-est{ padding:14px 16px; border-radius:14px; border:1px dashed var(--line-2); font-size:14px; line-height:1.55; color:var(--soft); }
.cx-est b{ color:var(--ink); }
.cx-d-acts{ display:flex; flex-wrap:wrap; gap:8px; margin-top:24px; }
.cx-d-acts > *{ flex:1 1 auto; }
.cx-d-src{ margin-top:22px; font-size:12.5px; line-height:1.65; color:var(--muted); }
.cx-d-src a{ color:var(--navy); }
.cx-d-load{ padding:60px 0; text-align:center; color:var(--muted); }

/* the newsletter card and closing call inside the full-bleed page */
.cx > .nl-card, .cx > .page-cta{ width:var(--cx-w); max-width:none; margin-left:auto; margin-right:auto; }
.cx > .nl-card{ margin-top:110px; }
.cx > .page-cta{ margin-top:28px; margin-bottom:96px; }

/* ── home-page preview (#confGrid.cb-home) ──────────────────────────── */
.conf-grid.cb-home{ grid-template-columns:repeat(auto-fill,minmax(320px,1fr)); gap:.8rem; }
.cb-home .cb-t{ grid-template-columns:82px 1fr; text-align:left; gap:1rem; padding:.8rem; }
.cb-home .cb-cd{ width:82px; }
.cb-home .cb-cd b{ font-size:1.45rem; }
.cb-home .cb-name{ -webkit-line-clamp:1; }
.cb-cover{ position:absolute; inset:0; border-radius:18px; }
.cb-cover:focus-visible{ outline:2px solid var(--violet); outline-offset:2px; }

/* ── responsive ──────────────────────────────────────────────────────── */
@media (max-width:1180px){
  .cx-hero{ grid-template-columns:1fr; grid-template-areas:"eye" "h1" "lede" "search" "sc" "stats" "flap";
    grid-template-rows:none; padding-top:124px; }
  .cx-flap{ transform:none; margin-top:40px; justify-self:stretch; max-width:720px; }
  .cb-week{ grid-template-columns:1fr 1fr; }
  .cb-week > :first-child{ grid-column:1 / -1; }
  .cx-map-stage{ grid-template-columns:300px minmax(0,1fr); }
  .cx-map-top{ flex-direction:column; align-items:flex-start; gap:24px; }
  .cx-steps, .cx-health{ grid-template-columns:repeat(2,minmax(0,1fr)); }
  .cx-steps li::after{ display:none; }
  .cx-cal-in{ grid-template-columns:1fr; gap:28px; }
}
@media (max-width:860px){
  .cx{ --cx-w:calc(100% - 40px); }
  .cb-week{ grid-template-columns:1fr; }
  .cb-t{ grid-template-columns:84px minmax(0,1fr); gap:14px; }
  .cb-cd{ width:84px; } .cb-cd b{ font-size:23px; }
  .cb-act{ grid-column:1 / -1; flex-direction:row; flex-wrap:wrap; min-width:0; }
  .cb-act > *{ flex:1 1 auto; }
  /* wrapped onto several lines, a sticky bar would cover half a phone screen */
  .cb-bar{ position:static; }
  .cb-count{ width:100%; margin-left:0; }
  .cx-map{ padding:64px 0; margin-top:70px; }
  .cx-map-stage{ grid-template-columns:1fr; grid-template-rows:400px auto; height:auto; }
  .cx-map-view{ grid-row:1; } .cx-panel{ grid-row:2; max-height:440px; border-right:0; border-top:1px solid #1c2541; }
  .cx-map-legend{ display:none; }
  .cx-picks{ flex:1 1 100%; } .cx-pick{ flex:1 1 0; min-width:0; } .cx-pick select{ width:100%; }
  .cx-map-stats dd{ font-size:26px; } .cx-map-stats > div{ padding:0 14px; }
  .cx-boardsec, .cx-how, .cx-cal{ margin-top:72px; }
  .cx-cal-row{ grid-template-columns:1fr; }
}
@media (max-width:620px){
  .cx-hero{ padding-top:100px; gap:34px; }
  .cx-hero .cb-stats{ grid-template-columns:repeat(2,minmax(0,1fr)); row-gap:16px; }
  .cx-hero .cb-stat:nth-child(3){ padding-left:0; border-left:0; }
  .cx-flap{ padding:12px 10px 10px; border-radius:16px; width:100%; }
  .cx-flap-cols, .cx-row{ grid-template-columns:minmax(0,.95fr) minmax(0,1.1fr) minmax(0,.9fr) minmax(0,1.25fr); gap:4px; }
  .cx-flap-cols span:nth-child(3), .cx-row > :nth-child(3){ display:none; }
  .cx-flap-head span{ display:none; }
  .fm{ --h:26px; font-size:11px; letter-spacing:.03em; } .fm > span > i{ padding:0 7px; }
  .fm .led{ width:6px; height:6px; margin-right:5px; }
  .cx-flap-rows{ min-height:180px; }
  .cx-next{ padding:13px 12px 14px; }
  .cx-next-title b{ font-size:24px; }
  .cx-clock{ gap:4px; }
  .cx-clock .grp > div{ gap:3px; }
  .cx-clock .fm{ --h:40px; width:26px; font-size:26px; border-radius:6px; }
  .cx-clock .sep{ font-size:20px; line-height:40px; }
  .cx-clock .grp small{ letter-spacing:.14em; }
  .cx-flap-cols span{ white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
  .cb-bar select{ flex:1 1 44%; max-width:none; }
  .cb-t{ grid-template-columns:70px minmax(0,1fr); padding:12px; }
  .cb-cd{ width:70px; } .cb-cd b{ font-size:19px; } .cb-cd small{ display:none; }
  .cb-l1 h3{ font-size:18px; }
  .cx-tl{ display:none; }
  .cx-steps, .cx-health{ grid-template-columns:1fr; }
  .cx-drawer-in{ padding:22px 20px 34px; } .cx-dx{ margin:-22px -20px 16px; padding:14px 20px; }
  .cx-facts{ grid-template-columns:1fr; }
  .conf-grid.cb-home{ grid-template-columns:1fr; }
}
@media (prefers-reduced-motion:reduce){
  .cx-live{ animation:none; }
  .cx-wire-track{ animation:none; }
  .cx-wire-view{ overflow-x:auto; }
  .cx-drawer[open]{ animation:none; }
}
@media (forced-colors:active){
  .cb-cd{ background:none; border:1px solid CanvasText; }
  .cx-flap, .cx-map{ forced-color-adjust:none; }
}

/* Source: guru.css */
/* ============================================================================
   Guru — the landing-page research chatbot.
   A small iridescent launcher pinned bottom-right of the hero that opens into
   a glass chat dock. Speaks the landing's own language: Inter/Poppins, the one
   --iris signature, Apple-restrained glass. Inherits every token from
   landing.css, so light/dark follow the site toggle automatically.
   ========================================================================== */

/* The site-wide theme toggle (theme.js) already owns the bottom-right corner at
   bottom:20px/right:20px/46px/z-index:9000. Guru stacks directly above it, with
   the two orbs centred on the same vertical line, and the dock hides the toggle
   while it's open so nothing floats over the composer. */
:root{ --guru-r:17px; --guru-b:78px; }
body.guru-open #theme-toggle{ opacity:0; pointer-events:none; transition:opacity .2s; }

/* ░ launcher — small orb that grows into a pill on hover ░ */
.guru-fab{ position:fixed; right:var(--guru-r); bottom:var(--guru-b);
  z-index:70; display:flex; align-items:center; gap:.55rem; height:52px; padding:0 6px;
  border:1px solid var(--line); border-radius:999px; cursor:pointer;
  background:rgba(255,255,255,.82); backdrop-filter:saturate(180%) blur(20px);
  -webkit-backdrop-filter:saturate(180%) blur(20px);
  box-shadow:var(--shadow-m); font-family:var(--font); color:var(--ink);
  transform:translateY(0) scale(1); opacity:1;
  transition:transform .4s var(--ease), opacity .3s var(--ease), box-shadow .3s var(--ease), padding .3s var(--ease); }
.guru-fab:hover{ transform:translateY(-2px); box-shadow:var(--shadow-l); padding-right:1.05rem; }
.guru-fab.hide{ transform:translateY(140%) scale(.9); opacity:0; pointer-events:none; }
[data-theme="dark"] .guru-fab{ background:rgba(20,20,26,.78); }

/* the mark: an iridescent disc with a slow-turning sheen */
.guru-fab .gm{ position:relative; width:40px; height:40px; flex:none; border-radius:50%;
  background:var(--iris); display:grid; place-items:center; overflow:hidden;
  color:#fff; font-size:1.05rem; line-height:1; }
.guru-fab .gm::after{ content:""; position:absolute; inset:-40%;
  background:conic-gradient(from 0deg,transparent 0 55%,rgba(255,255,255,.55) 72%,transparent 88%);
  animation:guru-turn 4.5s linear infinite; }
.guru-fab .gm i{ position:relative; z-index:1; font-style:normal;
  filter:drop-shadow(0 1px 2px rgba(0,0,0,.25)); }
@keyframes guru-turn{ to{ transform:rotate(360deg); } }

/* the label reveals on hover only — the resting state stays a small orb */
.guru-fab .gl{ max-width:0; overflow:hidden; white-space:nowrap; font-size:.86rem;
  font-weight:500; letter-spacing:-.01em; opacity:0;
  transition:max-width .34s var(--ease), opacity .24s var(--ease); }
.guru-fab:hover .gl,.guru-fab:focus-visible .gl{ max-width:150px; opacity:1; }

/* a soft breathing halo so the eye finds it without it shouting */
.guru-fab .gh{ position:absolute; inset:-6px; border-radius:999px; z-index:-1;
  background:var(--iris); filter:blur(14px); opacity:.28; animation:guru-breathe 5s ease-in-out infinite; }
@keyframes guru-breathe{ 50%{ opacity:.5; transform:scale(1.06); } }

/* first-visit teaser — one line, dismissible, never nags twice */
.guru-teaser{ position:fixed; right:calc(var(--guru-r) + 4px); bottom:calc(var(--guru-b) + 62px);
  z-index:70; max-width:min(262px,calc(100vw - 2.4rem)); padding:.7rem .85rem;
  border:1px solid var(--line); border-radius:14px 14px 4px 14px;
  background:rgba(255,255,255,.9); backdrop-filter:saturate(180%) blur(20px);
  -webkit-backdrop-filter:saturate(180%) blur(20px); box-shadow:var(--shadow-m);
  font-family:var(--font); font-size:.8rem; line-height:1.45; color:var(--soft);
  cursor:pointer; transform:translateY(8px) scale(.96); opacity:0; pointer-events:none;
  transition:transform .45s var(--ease), opacity .35s var(--ease); }
.guru-teaser.show{ transform:none; opacity:1; pointer-events:auto; }
.guru-teaser b{ display:block; color:var(--ink); font-weight:600; margin-bottom:.1rem; }
.guru-teaser .gt-x{ position:absolute; top:4px; right:6px; border:none; background:none;
  color:var(--muted); font-size:.95rem; line-height:1; cursor:pointer; padding:2px; }
.guru-teaser .gt-x:hover{ color:var(--ink); }
[data-theme="dark"] .guru-teaser{ background:rgba(20,20,26,.86); }

/* ░ dock ░ */
.guru-dock{ position:fixed; right:var(--guru-r); bottom:var(--guru-b);
  z-index:9100; display:flex; flex-direction:column; overflow:hidden;
  /* the 9rem reserve keeps the dock's top edge clear of the sticky nav even on
     a short laptop viewport (nav ≈56px; 144px − 78px bottom offset = 66px gap) */
  /* wide enough for a structured answer (a small table, a worked example) */
  width:min(440px,calc(100vw - 2rem)); height:min(680px,calc(100vh - 9rem));
  border:1px solid var(--line); border-radius:22px;
  background:var(--glass); backdrop-filter:saturate(180%) blur(28px);
  -webkit-backdrop-filter:saturate(180%) blur(28px); box-shadow:var(--shadow-l);
  font-family:var(--font); color:var(--ink);
  transform-origin:100% 100%; transform:translateY(14px) scale(.94); opacity:0;
  pointer-events:none; visibility:hidden;
  transition:transform .42s var(--ease), opacity .3s var(--ease), visibility 0s linear .42s; }
.guru-dock.open{ transform:none; opacity:1; pointer-events:auto; visibility:visible;
  transition:transform .42s var(--ease), opacity .3s var(--ease), visibility 0s; }
[data-theme="dark"] .guru-dock{ background:rgba(14,14,19,.82); }

/* header */
.guru-head{ display:flex; align-items:center; gap:.6rem; flex:none;
  padding:.7rem .8rem; border-bottom:1px solid var(--line); }
.guru-head .gm{ position:relative; width:32px; height:32px; flex:none; border-radius:50%;
  background:var(--iris); display:grid; place-items:center; color:#fff; font-size:.9rem; }
.guru-id{ flex:1; min-width:0; }
.guru-id b{ display:block; font-family:var(--disp); font-weight:600; font-size:.92rem;
  letter-spacing:-.01em; line-height:1.2; }
.guru-id span{ display:flex; align-items:center; gap:.32rem; font-size:.68rem; color:var(--muted); }
.guru-id span i{ width:5px; height:5px; border-radius:50%; background:var(--good);
  box-shadow:0 0 0 0 rgba(31,157,87,.5); animation:guru-pulse 2.4s ease-out infinite; }
@keyframes guru-pulse{ 70%{ box-shadow:0 0 0 6px rgba(31,157,87,0); } 100%{ box-shadow:0 0 0 0 rgba(31,157,87,0); } }

.guru-ico{ flex:none; width:30px; height:30px; display:grid; place-items:center;
  border:none; background:none; border-radius:9px; cursor:pointer;
  color:var(--muted); font-size:1rem; line-height:1; transition:.2s var(--ease); }
.guru-ico:hover{ background:rgba(127,127,140,.12); color:var(--ink); }

/* mode menu — the copilot's five personas, kept out of the way until asked for */
.guru-mode{ position:relative; flex:none; }
.guru-mode-btn{ display:inline-flex; align-items:center; gap:.3rem; padding:.28rem .5rem;
  border:1px solid var(--line); border-radius:999px; background:none; cursor:pointer;
  font-family:var(--font); font-size:.7rem; font-weight:500; color:var(--soft);
  transition:.2s var(--ease); white-space:nowrap; }
.guru-mode-btn:hover{ color:var(--ink); border-color:var(--line-2); }
.guru-mode-btn .ch{ font-size:.55rem; opacity:.7; }
.guru-mode-list{ position:absolute; top:calc(100% + 6px); right:0; z-index:3;
  width:190px; padding:.3rem; border:1px solid var(--line); border-radius:14px;
  background:var(--card); box-shadow:var(--shadow-m); display:none; }
.guru-mode-list.open{ display:block; }
.guru-mode-list button{ display:block; width:100%; text-align:left; border:none; background:none;
  padding:.44rem .55rem; border-radius:9px; cursor:pointer; font-family:var(--font);
  font-size:.76rem; color:var(--ink); transition:background .15s; }
.guru-mode-list button:hover{ background:rgba(127,127,140,.12); }
.guru-mode-list button small{ display:block; color:var(--muted); font-size:.66rem; margin-top:.05rem; }
.guru-mode-list button.on{ background:var(--iris-soft); }
[data-theme="dark"] .guru-mode-list button.on{ background:rgba(123,79,196,.28); }

/* ░ transcript ░ */
.guru-body{ flex:1; min-height:0; overflow-y:auto; overscroll-behavior:contain;
  padding:.9rem .8rem 1rem; scroll-behavior:smooth; }
.guru-body::-webkit-scrollbar{ width:8px; }
.guru-body::-webkit-scrollbar-thumb{ background:rgba(127,127,140,.28); border-radius:8px;
  border:2px solid transparent; background-clip:padding-box; }

/* welcome */
.guru-welcome{ padding:.4rem .2rem 0; }
.guru-welcome h4{ font-family:var(--disp); font-weight:600; font-size:1.06rem;
  letter-spacing:-.02em; margin-bottom:.3rem; }
.guru-welcome p{ font-size:.82rem; color:var(--soft); line-height:1.55; margin-bottom:.8rem; }
.guru-seed{ display:flex; flex-direction:column; gap:.4rem; }
.guru-seed button{ text-align:left; padding:.55rem .7rem; border:1px solid var(--line);
  border-radius:12px; background:none; cursor:pointer; font-family:var(--font);
  font-size:.79rem; color:var(--ink); line-height:1.4; transition:.2s var(--ease); }
.guru-seed button:hover{ border-color:var(--line-2); transform:translateX(2px); }
.guru-seed button span{ color:var(--muted); margin-right:.4rem; }

/* bubbles */
.guru-msg{ display:flex; margin-bottom:.7rem; animation:guru-in .45s var(--ease) both; }
@keyframes guru-in{ from{ opacity:0; transform:translateY(8px); } }
.guru-msg.me{ justify-content:flex-end; }
.guru-bub{ max-width:88%; padding:.6rem .8rem; border-radius:16px; font-size:.83rem; line-height:1.6; }
.guru-msg.me .guru-bub{ background:var(--ink); color:var(--bg); border-bottom-right-radius:5px; }
.guru-msg.bot .guru-bub{ background:var(--card); border:1px solid var(--line);
  border-bottom-left-radius:5px; box-shadow:var(--shadow-s); }
[data-theme="dark"] .guru-msg.bot .guru-bub{ background:rgba(255,255,255,.05); }
.guru-bub p{ margin:0 0 .5rem; } .guru-bub p:last-child{ margin-bottom:0; }
.guru-bub ul{ margin:.2rem 0 .5rem 1rem; } .guru-bub li{ margin-bottom:.22rem; }
.guru-bub h1,.guru-bub h2,.guru-bub h3{ font-family:var(--disp); font-size:.88rem;
  font-weight:600; margin:.5rem 0 .3rem; letter-spacing:-.01em; }
.guru-bub code{ font-family:var(--mono); font-size:.76rem; padding:.08em .34em;
  border-radius:5px; background:rgba(127,127,140,.14); }
.guru-bub a{ color:var(--navy); text-decoration:underline; text-underline-offset:2px; }
/* structured answers: numbered steps, comparison tables, code */
.guru-bub ol{ margin:.2rem 0 .5rem 1.1rem; } .guru-bub ol li{ margin-bottom:.22rem; }
.guru-bub h4{ font-family:var(--disp); font-size:.84rem; font-weight:600; margin:.45rem 0 .25rem; }
.guru-bub table{ display:block; max-width:100%; overflow-x:auto; border-collapse:collapse;
  font-size:.74rem; line-height:1.45; margin:.35rem 0 .55rem; }
.guru-bub th,.guru-bub td{ border:1px solid var(--line); padding:.28rem .4rem; text-align:left;
  vertical-align:top; min-width:5.5rem; }
.guru-bub th{ font-weight:600; background:rgba(127,127,140,.08); }
.guru-bub pre{ max-width:100%; overflow-x:auto; padding:.45rem .55rem; border-radius:8px;
  background:rgba(127,127,140,.12); font-size:.74rem; margin:.35rem 0 .5rem; }
.guru-bub pre code{ background:none; padding:0; }
.guru-stage{ font-size:.7rem; color:var(--muted); margin-top:.15rem; }

/* thinking dots */
.guru-dots{ display:flex; gap:4px; padding:.2rem 0; }
.guru-dots i{ width:6px; height:6px; border-radius:50%; background:var(--muted);
  animation:guru-bounce 1.2s ease-in-out infinite; }
.guru-dots i:nth-child(2){ animation-delay:.15s; } .guru-dots i:nth-child(3){ animation-delay:.3s; }
@keyframes guru-bounce{ 0%,60%,100%{ transform:translateY(0); opacity:.4; } 30%{ transform:translateY(-4px); opacity:1; } }

/* real retrieved literature */
.guru-src{ margin-top:.6rem; padding-top:.55rem; border-top:1px solid var(--line); }
.guru-src-h{ font-size:.64rem; font-weight:600; letter-spacing:.09em; text-transform:uppercase;
  color:var(--muted); margin-bottom:.35rem; }
.guru-src a,.guru-src div.s{ display:block; font-size:.73rem; line-height:1.45; color:var(--soft);
  padding:.16rem 0; }
.guru-src a:hover{ color:var(--ink); }
.guru-src b{ color:var(--ink); font-weight:500; }

/* ░ the hand-off — the point of the whole bot, so it reads as the payoff of
   the answer rather than a footnote under it ░ */
.guru-next{ margin-top:.65rem; }
.guru-next .gn-k{ display:block; font-size:.62rem; font-weight:600; letter-spacing:.1em;
  text-transform:uppercase; color:var(--muted); margin-bottom:.3rem; }
/* text-decoration:none wins back the inherited underline from `.guru-bub a`,
   which would otherwise underline the whole card */
.guru-next .gn-go{ position:relative; display:grid; grid-template-columns:1fr auto;
  align-items:center; gap:.1rem .6rem; padding:.6rem .75rem; border-radius:14px;
  border:1px solid transparent; background:var(--iris-soft); overflow:hidden;
  text-decoration:none; transition:transform .22s var(--ease), box-shadow .22s var(--ease); }
.guru-next .gn-go:hover{ transform:translateY(-2px); box-shadow:var(--shadow-m); }
.guru-next .gn-go b{ grid-column:1; font-family:var(--disp); font-weight:600;
  font-size:.83rem; letter-spacing:-.01em; color:#2c1f4a; }
.guru-next .gn-go span{ grid-column:1; font-size:.72rem; line-height:1.45; color:#4a3a6b; }
.guru-next .gn-go i{ grid-column:2; grid-row:1/3; font-style:normal; font-size:.95rem;
  color:#2c1f4a; transition:transform .22s var(--ease); }
.guru-next .gn-go:hover i{ transform:translateX(3px); }
[data-theme="dark"] .guru-next .gn-go{ background:rgba(123,79,196,.26); border-color:rgba(255,255,255,.1); }
[data-theme="dark"] .guru-next .gn-go b,[data-theme="dark"] .guru-next .gn-go i{ color:#f0ecff; }
[data-theme="dark"] .guru-next .gn-go span{ color:#c5bce6; }

/* follow-ups */
.guru-chips{ display:flex; flex-wrap:wrap; gap:.32rem; margin-top:.55rem; }
.guru-chips button{ display:inline-flex; align-items:center; gap:.3rem;
  padding:.3rem .6rem; border:1px solid var(--line); border-radius:999px; background:none;
  cursor:pointer; font-family:var(--font); font-size:.71rem; color:var(--soft);
  line-height:1.3; transition:.2s var(--ease); }
.guru-chips button:hover{ color:var(--ink); border-color:var(--line-2); }

/* an honest note when the answer is ungrounded or the engine is offline */
.guru-note{ font-size:.71rem; color:var(--muted); line-height:1.5; padding:.45rem .6rem;
  border-left:2px solid var(--line-2); margin-top:.5rem; }

/* ░ composer ░ */
.guru-foot{ flex:none; padding:.6rem .7rem .7rem; border-top:1px solid var(--line); }
.guru-composer{ display:flex; align-items:flex-end; gap:.45rem; padding:.35rem .35rem .35rem .75rem;
  border:1px solid var(--line); border-radius:18px; background:var(--card);
  transition:border-color .2s var(--ease); }
.guru-composer:focus-within{ border-color:var(--line-2); }
[data-theme="dark"] .guru-composer{ background:rgba(255,255,255,.05); }
.guru-composer textarea{ flex:1; min-width:0; border:none; background:none; outline:none;
  resize:none; max-height:104px; padding:.42rem 0; font-family:var(--font); font-size:.83rem;
  line-height:1.5; color:var(--ink); }
.guru-composer textarea::placeholder{ color:var(--muted); }
.guru-send{ flex:none; width:32px; height:32px; border:none; border-radius:50%; cursor:pointer;
  background:var(--iris); color:#fff; display:grid; place-items:center; font-size:.86rem;
  transition:.2s var(--ease); }
.guru-send:hover:not(:disabled){ transform:translateY(-1px) scale(1.05); }
.guru-send:disabled{ opacity:.4; cursor:default; }
.guru-legal{ margin-top:.45rem; font-size:.63rem; color:var(--muted); text-align:center; line-height:1.4; }

/* ░ small screens — the dock takes the sheet, the launcher clears the sticky CTA ░ */
/* On phones the sticky CTA bar goes nearly full-width, so the launcher has to
   clear it as well as the theme toggle: 96px sits ~17px above the bar's top
   edge and ~30px above the toggle's. */
/* phones: the sticky CTA owns the bottom edge, the theme toggle moves up to
   84px (landing.css) — Guru climbs one more rung so the ladder never overlaps */
@media(max-width:720px){ :root{ --guru-r:14px; --guru-b:140px; } }
@media(max-width:560px){
  .guru-dock{ right:0; bottom:0; width:100vw; height:min(86vh,100dvh - 3rem);
    border-radius:22px 22px 0 0; border-bottom:none; }
}
@media(prefers-reduced-motion:reduce){
  .guru-fab .gm::after,.guru-fab .gh,.guru-id span i{ animation:none; }
  .guru-msg{ animation:none; }
}

/* Source: experience.css */
/* Approved ResearchGuru previews: shared presentation layer, no API changes. */
:root{--site-width:1320px;--bg:#fff;--bg-2:#f6f8fc;--card:#fff;--ink:#0a2540;--soft:#52627a;--muted:#70819a;--line:#e1e8f1;--line-2:#ced8e7;--navy:#635bff;--indigo:#635bff;--violet:#7c3aed;--disp:"Inter",-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;--font:"Inter",-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;--radius:12px;--radius-lg:18px;--ease:cubic-bezier(.22,1,.36,1);--shadow-s:0 2px 8px rgba(10,37,64,.035);--shadow-m:0 8px 28px rgba(10,37,64,.075);--shadow-l:0 22px 54px -20px rgba(10,37,64,.3)}
html{scroll-padding-top:100px}body{background:var(--bg);color:var(--ink);font-family:var(--font);overflow-x:clip;line-height:1.6}.atmos,.grain{display:none}button,input,select,textarea{font-family:inherit}button,a{-webkit-tap-highlight-color:transparent}button{touch-action:manipulation}img{max-width:100%}a,button{outline-offset:5px}:focus-visible{outline:3px solid #8b80ff!important;outline-offset:4px}a,button{-webkit-user-drag:none}.rg-icon{width:20px;height:20px;display:inline-block;flex:none;vertical-align:middle;object-fit:contain}.skip-link{position:fixed;left:20px;top:-100px;z-index:10000;background:#fff;color:#0a2540;padding:10px 20px;border:2px solid #635bff;border-radius:8px}.skip-link:focus{top:12px}
h1,h2,h3,h4{font-family:var(--disp);letter-spacing:-.035em}h1 em,h2 em,h3 em{font-family:inherit;font-style:normal;background:none;color:var(--navy)}.kicker,.kick{font:650 12px/1.4 var(--font);letter-spacing:.15em;color:var(--navy);text-transform:uppercase}.kicker::before{display:none}.sec-head h2{font-size:clamp(32px,3.65vw,48px);line-height:1.12;font-weight:650;letter-spacing:-.045em}.sec-head>p{font-size:17px;line-height:1.75;max-width:60ch;color:var(--soft)}
.solid,.pc-btn.iris,.rgn-solid{background:#635bff;color:#fff;border:1px solid #635bff;box-shadow:0 3px 5px rgba(99,91,255,.1);border-radius:6px;font-weight:650;transition:background .2s ease,transform .25s var(--ease),box-shadow .25s ease}.solid:hover,.rgn-solid:hover,.pc-btn.iris:hover{background:#5147ea;border-color:#5147ea;transform:translateY(-2px);box-shadow:0 8px 16px -8px rgba(99,91,255,.5)}.solid .ar,.ghost .ar{display:inline-block;transition:transform .25s var(--ease)}.solid:hover .ar,.ghost:hover .ar{transform:translateX(4px)}.ghost{color:var(--navy);font-weight:650}.solid.lg{padding:14px 24px;font-size:16px}.ghost.lg{font-size:16px}.hero-cta{gap:28px}
/* One stable, shared header. The flyout is anchored to the whole header. */
.rgn{height:76px;padding:0 40px;background:rgba(255,255,255,.94);border-bottom:1px solid rgba(211,222,236,.8);backdrop-filter:blur(20px) saturate(1.35);-webkit-backdrop-filter:blur(20px) saturate(1.35);isolation:auto;z-index:100}.rgn.scrolled{background:rgba(255,255,255,.93);border-bottom-color:var(--line);box-shadow:0 3px 15px rgba(10,37,64,.025)}.rgn-in{width:100%;max-width:1360px;height:100%;gap:16px;position:static}.rgn-logo{font-family:Georgia,"Times New Roman",serif;font-size:25px;letter-spacing:-.045em;white-space:nowrap;gap:0;flex:none}.rgn-logo .w1{font-weight:700;color:var(--ink)}.rgn-logo .w2{background:none;color:#635bff;-webkit-text-fill-color:currentColor;font-weight:700}.rgn-logo .dotai{background:none;color:#bd8b1d;-webkit-text-fill-color:currentColor;font-size:1em;padding:0;border-radius:0;margin:0;transform:none;letter-spacing:-.04em}.rgn-logo .rgn-mark{width:40px;height:37px;margin-right:10px;background-image:url('/assets/logo-mark-light.png');background-size:contain;background-repeat:no-repeat;background-position:center;filter:none}.rgn-links{gap:1px;white-space:nowrap}.rgn-links>a,.rgn-dt{font-size:14px;font-weight:550;padding:10px 8px;border-radius:6px;color:var(--ink);gap:5px}.rgn-links>a.on::after{bottom:2px;background:#635bff;left:8px;right:8px;height:2px}.rgn-links>a:hover,.rgn-dt:hover{background:rgba(99,91,255,.055);color:#635bff}.rgn-cta{gap:10px;min-width:0;flex:none;align-items:center}.rgn-solid{font-size:12px;white-space:nowrap;padding:9px 13px;border-radius:6px}.rgn-chevron{width:13px;height:13px;transition:transform .25s cubic-bezier(.6,0,.2,.5)}.rgn-drop.open .rgn-chevron{transform:rotate(180deg)}.rgn-drop{position:static}.rgn-mega{position:absolute;left:50%;top:calc(100% + 10px);width:min(1290px,calc(100% - 56px));padding:0;transform:translateX(-50%) translateY(-8px) scale(.987);transform-origin:top center;border:1px solid rgba(255,255,255,.8);border-radius:18px;background:rgba(255,255,255,.86);box-shadow:0 30px 70px -24px rgba(10,37,64,.26),inset 0 1px rgba(255,255,255,.95);backdrop-filter:blur(30px) saturate(1.65);-webkit-backdrop-filter:blur(30px) saturate(1.65);transition:opacity .19s ease,transform .3s var(--ease),visibility .19s;overflow:visible;max-height:calc(100dvh - 110px);overflow-y:auto;overscroll-behavior:contain}.rgn .rgn-drop:not(.open) .rgn-mega{opacity:0;visibility:hidden;pointer-events:none;transform:translateX(-50%) translateY(-8px) scale(.987)}.rgn-drop.open .rgn-mega{opacity:1;visibility:visible;pointer-events:auto;transform:translateX(-50%) translateY(0) scale(1)}.rgn-mega::before{height:16px;top:-16px}.rgn-mega-body{display:block;padding:28px 32px 24px}.rgn-mega-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:32px}.rgn-col{min-width:0}.rgn-col-h{font:650 14px/1.5 var(--font);text-transform:none;letter-spacing:-.01em;color:var(--ink);padding:0 0 12px;margin:0 0 8px;border-bottom:1px solid var(--line)}.rgn-col-h::before{display:none}.rgn-col a{font:500 13px/1.45 var(--font);padding:7px 8px;margin:0 -8px;min-height:32px;color:#4b5973;gap:6px;border-radius:6px;transition:color .2s ease,background .2s ease,transform .24s var(--ease)}.rgn-col a:hover{background:rgba(99,91,255,.07);color:#635bff;transform:translateX(3px)}.rgn-col a::after{content:none}.rgn-pro{font:700 8px/1.1 var(--font);color:#a37927;background:#fff0ce;padding:3px 4px}.rgn-feat{display:none}.rgn-mega-foot{padding:17px 32px;border-top:1px solid rgba(213,222,236,.8);border-radius:0 0 18px 18px;background:rgba(241,245,252,.7);display:flex;align-items:center;justify-content:space-between;gap:16px}.rgn-mega-all{margin:0;font-size:13px;color:#635bff}.rgn-mega-note{font:12px/1.5 var(--font);color:var(--soft)}.rgn-burger{border:0;background:transparent;color:var(--ink);padding:9px;border-radius:6px}.rgn-burger span{display:none}.rgn-drawer{position:absolute;left:0;right:0;top:100%;padding:16px 24px 26px;border-top:1px solid var(--line);border-bottom:1px solid var(--line);border-radius:0 0 18px 18px;background:rgba(255,255,255,.97);backdrop-filter:blur(25px);-webkit-backdrop-filter:blur(25px);box-shadow:var(--shadow-l);max-height:calc(100dvh - 76px);overflow:auto;opacity:0;visibility:hidden;transform:translateY(-10px);transition:transform .25s var(--ease),opacity .18s ease,visibility .18s;display:flex;flex-direction:column}.rgn:not(.drawer-open) .rgn-drawer{pointer-events:none}.rgn.drawer-open .rgn-drawer{opacity:1;visibility:visible;transform:none}.rgn-drawer>a{padding:13px 8px;min-height:44px;border-bottom:1px solid var(--line);font-size:16px;color:var(--ink)}.rgn-drawer .rgn-drawer-cta{margin-top:14px;color:#635bff;background:#efedff;border-radius:8px;border:0}.rgn #rg-account{display:flex;align-items:center;min-width:85px}.rgn #rg-account .rg-pill,.rgn #rg-account .rg-acc{border-radius:6px;font-size:11px;padding:6px 9px;min-height:32px;white-space:nowrap}.rgn #rg-account .rg-auth-ghost{font-size:11px;white-space:nowrap}.rgn #rg-account .rg-auth-cta{font-size:11px;padding:7px 10px;border-radius:6px;background:#635bff;white-space:nowrap}.rgn #rg-account .rg-auth{gap:7px}.rgn .rg-lang{font-size:12px}.rgn .rg-lang-btn{padding:6px 9px;border-radius:6px;font-size:11px;background:transparent;color:var(--ink);border-color:var(--line)}
/* Reference hero: real semantic document UI above the ribbon image layer. */
.research-home .hero{position:relative;isolation:isolate;display:grid;grid-template-columns:minmax(0,.88fr) minmax(0,1.12fr);align-items:center;gap:32px;width:calc(100% - 128px);max-width:var(--site-width);margin:0 auto;padding:144px 0 88px;min-height:714px;overflow:visible}.hero-copy{min-width:0;z-index:2;position:relative}.hero .eyebrow{font:650 11px/1.6 var(--font);letter-spacing:.17em;text-transform:uppercase;color:#52627a;display:flex;align-items:center;gap:12px;margin-bottom:31px;white-space:nowrap}.eyebrow .spark{width:12px;height:12px;flex:none;background:#8052ff;box-shadow:inset -3px -2px 5px #6030f5;border-radius:50%}.hero h1{font-family:var(--font);font-size:clamp(40px,4.4vw,66px);font-weight:700;line-height:1.09;letter-spacing:-.052em;margin:0;white-space:nowrap}.hero .lede{font-size:clamp(18px,1.75vw,24px);line-height:1.45;font-weight:400;letter-spacing:-.025em;color:#5b6c87;max-width:600px;margin:28px 0 35px}.hero .hero-cta{display:flex;align-items:center;flex-wrap:wrap;margin:0;gap:28px}.hero-note{font-size:15px;color:#52627a;margin:20px 0 0}.hero-note span{padding:0 4px}.ribbon-stage{position:absolute;z-index:-1;top:-245px;right:min(-64px,-4vw);width:min(930px,73vw);height:1130px;overflow:visible;pointer-events:none;contain:layout}.research-ribbon{position:absolute;right:-140px;top:-90px;width:100%;height:100%;object-fit:contain;object-position:top right;max-width:none;will-change:transform;animation:ribbon-breathe 17s ease-in-out infinite alternate}.ribbon-motion{position:absolute;inset:0;width:100%;height:100%;opacity:0}.ribbon-stage.has-webgl .ribbon-motion{opacity:1}.ribbon-stage.has-webgl .research-ribbon{opacity:0;animation:none}.services-open .research-ribbon{animation-play-state:paused}@keyframes ribbon-breathe{to{transform:translate3d(12px,18px,0) rotate(1deg)}}
.workspace-preview{position:relative;z-index:3;align-self:center;background:rgba(255,255,255,.96);border:1px solid #e5e8f2;border-radius:12px;box-shadow:0 24px 35px -23px rgba(10,24,54,.36),0 4px 12px rgba(10,24,54,.05);padding:0;min-width:0;width:100%;text-align:left;color:#101c38;transform:translateY(10px);overflow:hidden}.workspace-bar{min-height:49px;display:flex;align-items:center;gap:16px;padding:11px 17px;border-bottom:1px solid #e4e8f1;background:#fdfdff;font-size:11px;white-space:nowrap}.workspace-bar strong{display:flex;align-items:center;gap:8px;font-size:12px;font-weight:650}.workspace-bar .rg-icon{width:17px;height:17px}.workspace-file{font-size:10px;display:flex;align-items:center;gap:6px;border-left:1px solid #e0e5ee;padding-left:14px;min-width:0;text-overflow:ellipsis;overflow:hidden}.example-label{margin-left:auto;color:#635bff;background:#eeebff;border-radius:20px;padding:4px 9px;font-size:9px;font-weight:600}.workspace-body{display:grid;grid-template-columns:minmax(0,1.65fr) minmax(0,1fr);gap:11px;padding:11px;min-height:390px}.preview-paper,.preview-report{min-width:0;background:#fff;border:1px solid #e4e8f1;border-radius:10px;box-shadow:0 2px 6px rgba(10,37,64,.025);padding:18px 16px}.preview-paper h2{font:700 17px/1.3 var(--font);letter-spacing:-.035em;color:#101c38;margin:0 0 19px}.preview-paper h3{font:700 12px/1.4 var(--font);letter-spacing:-.025em;color:#101c38;margin:15px 0 6px}.preview-paper p{font:450 11px/1.65 var(--font);color:#14213d;margin:0}.preview-paper mark{border-radius:2px;box-decoration-break:clone;-webkit-box-decoration-break:clone;padding:1px 2px;color:inherit;transition:background .22s ease,box-shadow .22s ease}.match-coral{background:#ffd9d6}.match-blue{background:#d4f3fa}.preview-paper mark.selected{box-shadow:0 0 0 2px #a89aff}.preview-report{padding:14px 11px}.preview-report>h3{font:650 12px/1.4 var(--font);display:flex;align-items:center;gap:6px;letter-spacing:-.02em;margin:0 0 14px}.preview-report .rg-icon{width:15px;height:15px}.preview-metric,.preview-citations{display:flex;align-items:center;justify-content:space-between;gap:8px;background:#f5f5fa;border-radius:6px;padding:8px 9px;margin:0 0 7px;font-size:10px}.preview-metric b{font-size:16px}.preview-citations{color:#272444;font-size:9px}.preview-source-label{font-size:9px;color:#52627a;border-bottom:1px solid #e4e8f1;padding:12px 0 6px}.preview-sources button{border:0;border-bottom:1px solid #e4e8f1;background:transparent;display:grid;grid-template-columns:13px 1fr auto;align-items:start;gap:7px;width:100%;text-align:left;padding:10px 0;font-size:8px;line-height:1.55;color:#1e2a46;cursor:pointer;transition:color .2s,background .2s}.preview-sources button:hover{color:#635bff;background:#f8f6ff}.preview-sources button .rg-icon{width:12px;height:12px;opacity:.55}.preview-sources button b{font-size:9px;padding-top:1px}.preview-context{font:400 8px/1.4 var(--font);color:#52627a;margin:10px 0 0;min-height:12px}.workspace-tabs{display:flex;align-items:center;gap:8px;padding:9px 15px 12px;margin:0 8px;border-top:1px solid #dfe4ef}.workspace-tabs button{display:flex;align-items:center;justify-content:center;gap:8px;flex:1;border:0;border-radius:6px;background:transparent;color:#61718e;font-size:11px;font-weight:550;padding:8px 3px;cursor:pointer;white-space:nowrap;transition:color .2s,background .2s}.workspace-tabs button+button{position:relative}.workspace-tabs button+button::before{content:"";position:absolute;left:-4px;height:17px;width:1px;background:#d7deea}.workspace-tabs button .rg-icon{width:16px;height:16px}.workspace-tabs button:hover,.workspace-tabs button.is-active{background:#efebff;color:#5147dc}.workspace-preview[data-view="format"] .preview-paper{font-family:Georgia,serif}.workspace-preview[data-view="format"] .preview-paper p{font-family:Georgia,serif;column-count:2;column-gap:12px;font-size:9px}.workspace-preview[data-view="format"] .preview-paper h2{text-align:center;font-family:Georgia,serif;font-size:18px}.workspace-preview[data-view="references"] .preview-paper mark{background:#e9e4ff}
.source-rail{position:relative;z-index:2;width:calc(100% - 128px);max-width:var(--site-width);margin:0 auto 64px;border-top:1px solid #dbe4f0;border-bottom:1px solid #dbe4f0;padding:22px 0 23px;background:rgba(255,255,255,.78)}.source-rail>p{font-size:10px;font-weight:650;letter-spacing:.17em;text-transform:uppercase;color:#52627a;margin:0 0 20px}.source-rail-logos{display:flex;align-items:center;justify-content:space-between;gap:22px}.source-rail-logos>span{display:flex;align-items:center;gap:10px;font-size:19px;font-weight:650;letter-spacing:-.035em;color:#14213d;white-space:nowrap}.source-rail-logos img{width:29px;height:29px;object-fit:contain}.source-rail-logos>span:nth-child(3){font-size:23px;font-weight:450}.source-rail-logos>span:nth-child(4){font-size:16px}
/* Promotional film: real supplied media, one unobtrusive control. */
.vhero{max-width:var(--site-width);width:calc(100% - 128px);margin:0 auto 100px;padding:0}.vframe{position:relative;border:1px solid var(--line);border-radius:12px;aspect-ratio:16/7.8;overflow:hidden;background:#0a1730;box-shadow:none}.vframe>video{width:100%;height:100%;object-fit:cover}.vhalo{display:none}.vplay{top:20px;left:20px;right:auto;bottom:auto;font-size:11px;letter-spacing:.01em;background:rgba(5,14,33,.55);backdrop-filter:blur(12px);border:1px solid rgba(255,255,255,.2);color:#fff}.vcap{left:28px;right:180px;bottom:28px;background:rgba(5,14,33,.65);padding:18px 22px;border:1px solid rgba(255,255,255,.15);border-radius:10px;backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px)}.vcap b{font:650 23px/1.2 var(--font);letter-spacing:-.035em;color:#fff}.vcap span{font:400 13px/1.6 var(--font);color:#d7deef;margin-top:5px}.video-toggle{position:absolute;right:24px;bottom:28px;min-height:44px;display:flex;align-items:center;gap:8px;border:1px solid rgba(255,255,255,.38);border-radius:8px;padding:11px 14px;background:rgba(255,255,255,.88);color:#0a2540;backdrop-filter:blur(14px);font-size:12px;font-weight:600;cursor:pointer}.video-toggle .rg-icon{width:16px;height:16px}.video-toggle:hover{background:#fff}
.flow,.showcase-v,.modules,.integrations,.audience,.benefits,.confs,.home-pricing,.home-resources{max-width:var(--site-width);width:calc(100% - 128px);margin-left:auto;margin-right:auto;padding:76px 0}.flow{padding-top:0;padding-bottom:80px}.flow .sec-head{max-width:740px}.flow .flow-step{border-radius:10px;box-shadow:none;background:#f8f9fc;border-color:#e5eaf2}.flow-why{border-top:1px solid var(--line);padding-top:28px;gap:36px}.fw b{font-family:var(--font);font-size:17px}.fw span{font-size:14px;line-height:1.7}.stats{max-width:var(--site-width);width:calc(100% - 128px);padding:42px 0;margin:0 auto;border-top:1px solid var(--line);border-bottom:1px solid var(--line);display:grid;grid-template-columns:repeat(4,1fr);gap:0;background:transparent}.stat{text-align:left;border-right:1px solid var(--line);padding-left:32px}.stat:first-child{padding-left:0}.stat:last-child{border:0}.stat b{font:550 38px/1.2 var(--font);letter-spacing:-.05em;color:var(--ink)}.stat span{font:400 13px/1.6 var(--font);color:var(--soft);margin-top:8px}.flagrail{gap:36px}.fcard{border:0;border-radius:0;box-shadow:none;padding:40px 0 65px;gap:64px;background:transparent;border-bottom:1px solid var(--line);overflow:visible}.fcard:last-child{border-bottom:0}.fcard::before{display:none}.f-kick{font-family:var(--font);font-size:11px;text-transform:uppercase;letter-spacing:.1em}.fcard .f-copy h3{font-size:clamp(29px,3vw,41px);line-height:1.17;letter-spacing:-.045em}.fcard .f-copy>p{font-size:16px;line-height:1.8;margin-top:18px}.f-feats{margin-top:20px}.f-feats span{font:500 11px/1.4 var(--font);background:#f2f4fa;border:0;padding:7px 10px;border-radius:5px}.f-cta{margin-top:24px}.f-cost{font-family:var(--font);font-size:11px}.f-media{border:1px solid var(--line);border-radius:12px;box-shadow:var(--shadow-m)}.engine{background:#0a2540;color:#fff;padding:84px max(64px,calc((100vw - var(--site-width))/2));overflow:hidden}.engine::before{display:none}.engine .sec-head{max-width:700px}.engine .sec-head h2{color:#fff}.engine .sec-head p{color:#b7c5d9}.engine .kicker{color:#9da8ff}.engine-grid{grid-template-columns:repeat(5,1fr);gap:0;margin-top:44px}.engine .cap{border:0;border-radius:0;background:transparent;box-shadow:none;border-right:1px solid rgba(255,255,255,.15);padding:10px 24px;transform:none!important}.engine .cap:first-child{padding-left:0}.engine .cap:last-child{border:0}.engine .cap h3{font-size:17px;font-family:var(--font);color:#fff}.engine .cap p{font-size:13px;color:#b7c5d9}.engine .ci{color:#a9b6ff}.engine .badges{justify-content:flex-start}.engine .badges span{font-family:var(--font);font-size:11px;border:1px solid rgba(255,255,255,.2);background:transparent;color:#c5d0e6}.mgrid{grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}.mcard{border:1px solid var(--line);background:var(--card);border-radius:10px;padding:25px;box-shadow:none;transition:transform .25s var(--ease),border-color .25s,box-shadow .25s}.mcard:hover{transform:translateY(-4px);border-color:#c5c0ff;box-shadow:0 15px 30px -23px rgba(99,91,255,.35)}.mcard h3{font-size:22px;letter-spacing:-.035em}.mcard li{font-size:13px;color:var(--soft)}.mcard .no,.mcard .pill{font-family:var(--font);font-size:9px;letter-spacing:.08em}.mcard .mi{width:42px;height:42px;font-size:25px;border-radius:10px}.mcard .go{font-size:12px;color:#635bff}.integrations{border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:45px 0}.src-badge{font:600 14px/1.3 var(--font);border:0;background:#f7f9fc;border-radius:8px;box-shadow:none}.persona-row{grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}.persona{border:0;border-left:1px solid var(--line);padding:20px 26px;border-radius:0;box-shadow:none;background:transparent}.persona h3{font-size:21px}.persona p{font-size:14px;line-height:1.75}.persona:hover{transform:translateY(-3px);box-shadow:none;background:#fafbff}.benefit-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:22px}.benefit{background:#f8f9fd;border:1px solid var(--line);border-radius:12px;box-shadow:none}.bn-art{height:116px;opacity:.95}.bn-body{padding:22px}.bn-body h3{font-size:22px}.bn-body p{font-size:13px;line-height:1.75}.bn-tag{font-family:var(--font);font-size:10px;letter-spacing:.08em}.confs .sec-head p{max-width:720px}.conf-free{font-family:var(--font);background:#edfaf3;color:#16834c;border-radius:5px;font-size:10px}.conf-note{font-family:var(--font);font-size:11px}
/* Four live particle forms, four independently selectable lighting modes. */
.research-universe{--u-ink:#0a2540;--u-soft:#667398;--u-line:#dce5f3;--u-surface:#f8fbff;position:relative;isolation:isolate;width:100%;background:var(--u-surface);color:var(--u-ink);border-top:1px solid var(--u-line);border-bottom:1px solid var(--u-line);transition:background-color .7s ease,color .5s ease}.universe-heading{max-width:var(--site-width);margin:auto;padding:78px 24px 46px;text-align:center;border-left:1px solid var(--u-line);border-right:1px solid var(--u-line)}.universe-heading h2{font-size:clamp(36px,4.3vw,58px);font-weight:650;line-height:1.1;letter-spacing:-.05em;color:var(--u-ink);margin:0}.universe-heading p{font-size:20px;color:var(--u-soft);margin:17px 0 0;letter-spacing:-.025em}.universe-tabs{display:grid;grid-template-columns:repeat(4,1fr);max-width:var(--site-width);margin:auto;border:1px solid var(--u-line);border-bottom:1px solid var(--u-line)}.universe-tabs>button{position:relative;padding:26px 14px 28px;background:none;border:0;border-right:1px solid var(--u-line);color:var(--u-soft);text-align:center;cursor:pointer;transition:color .25s,background .25s}.universe-tabs>button:last-child{border:0}.universe-tabs>button::before{content:"";height:2px;position:absolute;left:10%;right:10%;top:-1px;background:#aa6dff;opacity:0;transform:scaleX(.5);transition:transform .35s var(--ease),opacity .2s}.universe-tabs>button[aria-selected=true]::before{opacity:1;transform:scaleX(1)}.universe-tabs>button[aria-selected=true]{color:var(--u-ink)}.universe-tabs>button:hover{background:rgba(99,91,255,.025);color:var(--u-ink)}.universe-tabs strong{display:block;font-size:27px;font-weight:550;line-height:1.25;letter-spacing:-.04em}.universe-tabs span{display:block;font-size:12px;line-height:1.6;margin-top:7px}.universe-display{height:570px;position:relative;max-width:var(--site-width);margin:auto;overflow:hidden;border-left:1px solid var(--u-line);border-right:1px solid var(--u-line);background:radial-gradient(ellipse at 50% 98%,#eedcff 0,rgba(255,234,219,.55) 32%,transparent 67%);transition:background .8s}.universe-times{position:absolute;top:22px;right:22px;display:flex;align-items:center;z-index:5;gap:2px;background:rgba(255,255,255,.75);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border:1px solid rgba(159,171,210,.2);border-radius:30px;padding:4px;box-shadow:0 2px 6px rgba(49,51,108,.04)}.universe-times button{display:flex;align-items:center;justify-content:center;gap:6px;border:0;background:transparent;color:var(--u-ink);padding:7px 11px;border-radius:24px;font-size:11px;cursor:pointer;transition:background .25s,color .25s}.universe-times button .rg-icon{width:16px;height:16px}.universe-times button[aria-pressed=true]{background:#e9e0ff;color:#5930ec}.universe-times button:hover{background:rgba(130,100,230,.1)}.universe-book{position:absolute;left:50%;transform:translateX(-50%);top:225px;width:90%;height:auto;max-width:none;z-index:1;pointer-events:none;transition:opacity .6s ease,filter .8s ease;will-change:opacity}.universe-canvas{display:block;position:absolute;inset:0;width:100%;height:100%;z-index:2;touch-action:pan-y;cursor:grab}.universe-canvas:active{cursor:grabbing}.universe-caption{position:absolute;bottom:20px;left:26px;right:26px;display:flex;justify-content:space-between;gap:12px;z-index:3;font-size:11px;color:var(--u-soft);pointer-events:none}.universe-tooltip{position:absolute;z-index:4;left:60%;top:35%;padding:10px 13px;border:1px solid rgba(184,184,221,.32);background:rgba(255,255,255,.9);backdrop-filter:blur(12px);box-shadow:0 5px 20px -10px rgba(10,37,64,.3);color:#152644;border-radius:8px;font-size:10px;pointer-events:none;opacity:0;transform:translateY(5px);transition:opacity .18s,transform .22s var(--ease)}.universe-tooltip.show{opacity:1;transform:none}.universe-tooltip strong,.universe-tooltip span{display:block}.universe-tooltip span{color:#52627a;font-size:9px;margin-top:2px}.research-universe[data-time=evening]{--u-surface:#e4eafa;--u-ink:#172b4f;--u-soft:#586793;--u-line:#cdd8ed}.research-universe[data-time=evening] .universe-display{background:radial-gradient(ellipse at 50% 100%,rgba(255,216,160,.8),rgba(152,167,228,.37) 45%,transparent 80%)}.research-universe[data-time=evening] .universe-book{filter:sepia(.1) saturate(.9)}.research-universe[data-time=sunset]{--u-surface:#fff0e9;--u-ink:#182c49;--u-soft:#6d6689;--u-line:#ebd8e2}.research-universe[data-time=sunset] .universe-display{background:radial-gradient(ellipse at 50% 95%,rgba(255,185,126,.7),rgba(233,154,205,.45) 44%,transparent 85%)}.research-universe[data-time=sunset] .universe-book{filter:sepia(.25) saturate(1.3)}.research-universe[data-time=dark]{--u-surface:#09142c;--u-ink:#f4f5ff;--u-soft:#a4b1d6;--u-line:#273659}.research-universe[data-time=dark] .universe-display{background:radial-gradient(ellipse at 50% 95%,#25205e,rgba(20,31,73,.6) 50%,transparent 85%)}.research-universe[data-time=dark] .universe-book{filter:brightness(.88) saturate(.85)}.research-universe[data-time=dark] .universe-times{background:rgba(20,33,66,.83);border-color:#374873}.research-universe[data-time=dark] .universe-times button[aria-pressed=true]{background:#7251c3;color:#fff}.research-universe[data-time=dark] .universe-times .rg-icon{filter:invert(1)}.research-universe[data-time=dark] .universe-tooltip{background:rgba(9,20,44,.95);color:#fff;border-color:#495783}.research-universe[data-time=dark] .universe-tooltip span{color:#bac5e2}.research-universe[data-scene=connect] .universe-book,.research-universe[data-scene=verify] .universe-book{opacity:0}.research-universe[data-scene=publish] .universe-book{opacity:.22}
/* Commerce and editorial sections retain their existing API data and actions. */
.home-pricing{border-top:1px solid var(--line)}.home-pricing .sec-head{margin-bottom:36px}.home-pricing .price-grid{max-width:none;padding:0;width:100%;margin:24px 0}.price-grid{gap:22px}.price-card{border-radius:11px;box-shadow:none;border-color:var(--line);padding:28px;transition:transform .25s var(--ease),box-shadow .25s}.price-card:hover{transform:translateY(-3px);box-shadow:var(--shadow-m)}.price-card.featured{border:1.5px solid #8a79ff;background:#fff}.price-card.featured::before{display:none}.pc-tag{position:static;transform:none;align-self:flex-start;background:#efebff;color:#5147dc;border-radius:5px;font:650 10px/1.4 var(--font);padding:5px 9px;margin-bottom:15px}.pc-name{font:650 23px/1.4 var(--font);color:var(--ink)}.pc-price{font:650 43px/1.2 var(--font);letter-spacing:-.05em;color:var(--ink)}.pc-price small{font-size:15px;color:var(--soft);font-weight:450;letter-spacing:0}.pc-was{font-size:17px;font-weight:450;letter-spacing:0}.pc-tokens{color:#635bff;font:600 14px/1.5 var(--font);margin-top:10px}.pc-offer{font:500 10px/1.5 var(--font);background:#fff4df;color:#956620;border-radius:5px}.pc-perks{margin-top:25px}.pc-perks li{font-size:13px;line-height:1.6;color:var(--soft)}.pc-btn{border-radius:6px;font-size:13px;min-height:43px}.pc-paypal{min-height:32px;font-size:11px;border-color:var(--line);background:transparent!important;margin-top:8px}.pc-paypal .pp,.pc-paypal .pl{font-size:12px}.inst-band{border-radius:10px;background:#f3f0ff;border:1px solid #e2dcff;box-shadow:none}.inst-band h3{font-family:var(--font)}.pricing-details{display:inline-flex;gap:12px;color:#635bff;font-size:14px;font-weight:600;margin-top:18px}.home-resources{border-top:1px solid var(--line)}.resource-columns{display:grid;grid-template-columns:repeat(3,1fr);gap:0;margin-top:44px}.resource-columns article{padding:0 36px;border-left:1px solid var(--line)}.resource-columns article:first-child{padding-left:0;border:0}.resource-columns article:last-child{padding-right:0}.resource-icon{width:36px;height:36px;margin-bottom:23px;opacity:.8}.resource-columns h3{font:650 23px/1.25 var(--font);letter-spacing:-.035em;margin:0 0 12px}.resource-columns p{font-size:15px;line-height:1.7;color:var(--soft);max-width:34ch;margin:0 0 22px}.resource-columns a{font:600 14px/1.5 var(--font);color:#635bff;display:inline-flex;gap:10px}.resource-columns a span{transition:transform .25s var(--ease)}.resource-columns a:hover span{transform:translateX(4px)}
.cta-final{max-width:none;width:100%;border-radius:0;margin:30px 0 0;padding:90px max(64px,calc((100vw - var(--site-width))/2));background:#f7f8fc;color:#0a2540;border-top:1px solid var(--line);isolation:isolate}.cta-final.has-video .cta-bg{opacity:.06;object-position:75% center;filter:saturate(.5)}.cta-final::after{content:"";position:absolute;right:-5%;top:-40%;height:170%;width:60%;background:url('/assets/research-ribbon.webp') center right/contain no-repeat;z-index:-1;pointer-events:none}.cta-final .cta-glow{display:none}.cta-final-inner{max-width:var(--site-width)}.cta-accept{grid-template-columns:1.1fr .9fr;gap:70px;align-items:center}.cta-copy{grid-column:1;grid-row:1}.accept-letter{grid-column:2;grid-row:1;background:#fffdf7;box-shadow:0 20px 45px -30px rgba(10,37,64,.3);border-radius:10px;transform:rotate(-2deg);max-width:420px;justify-self:end}.cta-final.has-video h2,.cta-final.has-video .cta-rot-line,.cta-final.has-video .cta-trust{color:#0a2540}.cta-final.has-video p{color:#52627a}.cta-final .cta-eyebrow{font-family:var(--font);font-size:10px;letter-spacing:.12em;color:#635bff}.cta-final h2{font:650 clamp(34px,3.6vw,49px)/1.12 var(--font);letter-spacing:-.045em}.cta-final .cta-rot-line{font-size:18px;color:var(--soft)}.cta-benefits span{font:500 11px/1.4 var(--font);color:#52627a;background:rgba(255,255,255,.7);border:1px solid var(--line)}.cta-final .cta-trust{font-size:11px}.rgf{background:#f7f9fc;border:0;padding:58px max(32px,calc((100vw - var(--site-width))/2)) 0;color:var(--ink)}.rgf-in{max-width:var(--site-width);gap:70px;padding:0 0 35px}.rgf-brand>p{font-size:13px;line-height:1.8;color:var(--soft);max-width:36ch}.rgf-cols{gap:34px}.rgf-cols h5{font:650 12px/1.5 var(--font);letter-spacing:0;text-transform:none;color:var(--ink);margin-bottom:12px}.rgf-cols a{font-size:12px;padding:5px 0;color:var(--soft)}.rgf-cols a:hover{color:#635bff}.rgf-badges span{font-family:var(--font);font-size:9px;color:var(--soft);border-color:var(--line);background:transparent}.rgf-base{font-size:11px;padding:22px 0;color:var(--soft);border-top:1px solid var(--line)}.rgf-mono{font-family:var(--font)}.rg-nl{border-color:var(--line);border-radius:9px;background:rgba(255,255,255,.65)}.rg-nl-copy b{font:600 14px/1.5 var(--font)}.rg-nl-copy span{font-size:11px}.rg-nl-row input{font-size:13px;border-radius:6px}.rg-nl-row button{background:#635bff;border-radius:6px;font-size:12px}.seo-links{max-width:var(--site-width);width:calc(100% - 128px);margin:0 auto;padding:42px 0;gap:28px}.seo-links h2{font:650 11px/1.5 var(--font);letter-spacing:.08em}.seo-links a{font-size:11px;border-radius:5px;border-color:var(--line);padding:5px 7px}.seo-def{font-size:12px!important;color:var(--soft)!important}.sticky-cta{background:rgba(255,255,255,.94);color:var(--ink);backdrop-filter:blur(20px);border:1px solid var(--line);border-radius:12px;box-shadow:var(--shadow-l);padding:10px 15px}.sticky-cta b{font:550 12px/1.5 var(--font)}.sticky-cta .go-an{background:#635bff;font-size:12px;border-radius:6px}.sticky-cta .sc-close{color:var(--soft)}#theme-toggle{right:auto!important;left:20px;width:40px!important;height:40px!important;box-shadow:var(--shadow-s)!important;z-index:90!important}.reveal{transition:opacity .65s var(--ease),transform .65s var(--ease);transform:translateY(16px)}
/* Secondary public pages share the same type, controls, surfaces and chrome. */
.page{max-width:var(--site-width);padding-top:32px}.page-hero{padding:50px 0 44px;text-align:left}.page-hero h1{font-family:var(--font);font-size:clamp(38px,4.8vw,64px);font-weight:650;line-height:1.1;letter-spacing:-.05em}.page-hero>p{margin:22px 0 0;max-width:64ch;font-size:17px;color:var(--soft)}.page-eyebrow{font:600 11px/1.5 var(--font);letter-spacing:.06em;background:#f0edff;color:#635bff;border-radius:5px}.section-h h2{font-family:var(--font);font-size:32px;line-height:1.2;letter-spacing:-.04em}.svc-card,.faq,.tm-row,.contact-form,.ca-card{border-color:var(--line);border-radius:10px;box-shadow:none}.svc-card h3,.ca-card h3{font-family:var(--font)}.svc-search input,.contact-form input,.contact-form textarea{border-color:var(--line);border-radius:7px}.svc-chip{border-radius:6px;font-size:12px}.faq-q{font-family:var(--font);font-size:15px}.faq-a{font-size:14px;line-height:1.8}.token-math,.compare,.token-how,.faqs{padding-top:55px;padding-bottom:55px}.tm-formula{font-family:var(--mono);font-size:18px;line-height:1.7;border:1px solid var(--line);border-radius:10px;box-shadow:none}.tm-row h3{font-family:var(--font);font-size:16px}.tm-row p{font-size:12px;line-height:1.75}.compare table{font-size:13px}.page-cta{border-radius:12px;background:#f3f0ff;color:var(--ink);border:1px solid #e3ddff}.page-cta h2{font-family:var(--font);font-size:34px}.page-cta p{color:var(--soft)}
[data-theme=dark]{--bg:#091225;--bg-2:#111c31;--card:#111d32;--ink:#edf2ff;--soft:#aab9d2;--muted:#8294b4;--line:#283650;--line-2:#374767;--navy:#aaa0ff}[data-theme=dark] .rgn{background:rgba(9,18,37,.85);border-color:#26354d}[data-theme=dark] .rgn.scrolled{background:rgba(9,18,37,.94)}[data-theme=dark] .rgn-logo .w1{color:#edf2ff}[data-theme=dark] .rgn-logo .w2{color:#b1a4ff}[data-theme=dark] .rgn-logo .rgn-mark{background-image:url('/assets/logo-mark-dark.png')}[data-theme=dark] .rgn-mega,[data-theme=dark] .rgn-drawer{background:rgba(18,29,51,.93);border-color:#35415a}[data-theme=dark] .rgn-mega-foot{background:rgba(9,18,37,.4);border-color:#35415a}[data-theme=dark] .rgn-col a{color:#b9c6e0}[data-theme=dark] .rgn-col a:hover{color:#cdc5ff;background:rgba(172,155,255,.1)}[data-theme=dark] .rgn-burger img,[data-theme=dark] .rgn-chevron{filter:invert(1)}[data-theme=dark] .hero .eyebrow,[data-theme=dark] .hero-note{color:#aab9d2}[data-theme=dark] .hero .lede{color:#aab9d2}[data-theme=dark] .ribbon-stage{opacity:.7}[data-theme=dark] .source-rail{background:rgba(9,18,37,.75);border-color:#283650}[data-theme=dark] .source-rail>p,[data-theme=dark] .source-rail-logos>span{color:#c0cce2}[data-theme=dark] .flow .flow-step,[data-theme=dark] .mcard,[data-theme=dark] .benefit{background:#111d32;border-color:#283650}[data-theme=dark] .f-feats span,[data-theme=dark] .src-badge{background:#17243d;color:#bbc9e2}[data-theme=dark] .price-card,[data-theme=dark] .price-card.featured{background:#111d32}[data-theme=dark] .inst-band{background:#1c2145;border-color:#44406b}[data-theme=dark] .cta-final{background:#0e1a2f}[data-theme=dark] .cta-final.has-video h2,[data-theme=dark] .cta-final.has-video .cta-rot-line{color:#edf2ff}[data-theme=dark] .cta-final.has-video p,[data-theme=dark] .cta-final .cta-trust{color:#aab9d2}[data-theme=dark] .cta-benefits span{background:#15233b;border-color:#35415a;color:#c0cce2}[data-theme=dark] .rgf{background:#081022}[data-theme=dark] .rg-nl{background:#111d32}[data-theme=dark] .page-cta{background:#171d3c;border-color:#35415a}
@media(min-width:1900px){:root{--site-width:1600px}.rgn-in{max-width:1760px}.hero h1{font-size:78px}.hero .lede{font-size:28px}.research-home .hero{gap:64px;padding-top:170px;padding-bottom:130px}.workspace-bar{min-height:62px;font-size:13px}.workspace-bar strong{font-size:15px}.workspace-file{font-size:12px}.example-label{font-size:11px}.workspace-body{min-height:445px;gap:15px;padding:15px}.preview-paper{padding:25px}.preview-paper h2{font-size:22px}.preview-paper h3{font-size:16px}.preview-paper p{font-size:13px}.preview-report{padding:20px 16px}.preview-report>h3{font-size:15px}.preview-metric{font-size:13px}.preview-metric b{font-size:20px}.preview-citations{font-size:12px}.preview-source-label{font-size:11px}.preview-sources button{font-size:11px;padding:14px 0}.preview-context{font-size:10px}.workspace-tabs button{font-size:14px;padding:11px 5px}.source-rail-logos>span{font-size:22px}.ribbon-stage{width:1150px;height:1450px;top:-300px;right:-190px}.universe-display{height:690px}.universe-heading h2{font-size:68px}}
@media(max-width:1220px){.rgn-links{display:none}.rgn-burger{display:flex}.rgn-in{gap:18px}.rgn-cta{margin-left:auto}.research-home .hero{width:calc(100% - 80px);gap:26px;grid-template-columns:.93fr 1.07fr;padding-top:115px}.hero h1{font-size:clamp(37px,4.3vw,53px)}.hero .lede{font-size:19px}.hero .eyebrow{font-size:9px;letter-spacing:.13em}.hero .hero-cta{gap:18px}.hero .solid.lg{padding:12px 18px;font-size:14px}.hero .ghost.lg{font-size:13px}.hero-note{font-size:12px}.workspace-bar{gap:9px;padding:10px 12px}.workspace-bar strong{font-size:10px}.workspace-file{font-size:8px;padding-left:8px}.example-label{font-size:8px;padding:3px 6px}.workspace-body{min-height:320px;grid-template-columns:1.55fr 1fr;gap:8px;padding:8px}.preview-paper{padding:14px 12px}.preview-paper h2{font-size:14px}.preview-paper h3{font-size:10px}.preview-paper p{font-size:9px}.preview-report{padding:12px 8px}.preview-report>h3{font-size:10px}.preview-metric{font-size:9px}.preview-metric b{font-size:14px}.preview-citations{font-size:8px}.preview-sources button{font-size:7px}.workspace-tabs button{font-size:9px;gap:5px}.source-rail,.vhero,.flow,.showcase-v,.modules,.integrations,.audience,.benefits,.confs,.home-pricing,.home-resources,.stats,.seo-links{width:calc(100% - 80px)}.source-rail-logos{gap:15px}.source-rail-logos>span{font-size:16px;gap:7px}.source-rail-logos>span:nth-child(4){font-size:12px}.source-rail-logos img{width:25px;height:25px}.fcard{gap:38px}.mgrid{grid-template-columns:repeat(3,minmax(0,1fr))}.mcard{padding:22px}.mcard h3{font-size:20px}.engine{padding-left:40px;padding-right:40px}.engine-grid{grid-template-columns:repeat(3,1fr);gap:25px}.engine .cap{padding:0 18px}.engine .cap:nth-child(4){padding-left:0}.universe-tabs strong{font-size:24px}.universe-tabs span{font-size:10px}.rgf{padding-left:40px;padding-right:40px}.rgf-in{gap:35px}.rgf-cols{gap:20px}}
@media(max-width:860px){.research-home .hero{grid-template-columns:1fr;width:calc(100% - 64px);padding:85px 0 64px;gap:45px;min-height:0}.hero-copy{max-width:650px}.hero h1{font-size:clamp(43px,7vw,61px)}.hero .lede{font-size:21px}.hero .eyebrow{font-size:10px}.hero-note{font-size:14px}.workspace-preview{width:100%;max-width:700px;transform:none;justify-self:center}.workspace-body{min-height:365px;grid-template-columns:1.65fr 1fr}.workspace-bar strong{font-size:12px}.workspace-file{font-size:10px}.example-label{font-size:9px}.preview-paper{padding:20px}.preview-paper h2{font-size:18px}.preview-paper h3{font-size:12px}.preview-paper p{font-size:11px}.preview-report{padding:18px 13px}.preview-report>h3{font-size:12px}.preview-metric{font-size:11px}.preview-citations{font-size:10px}.preview-source-label{font-size:10px}.preview-sources button{font-size:9px}.preview-context{font-size:9px}.workspace-tabs button{font-size:12px;padding:10px 5px}.ribbon-stage{top:-150px;right:-250px;width:760px;height:1350px;opacity:.55}.source-rail,.vhero,.flow,.showcase-v,.modules,.integrations,.audience,.benefits,.confs,.home-pricing,.home-resources,.stats,.seo-links{width:calc(100% - 64px)}.source-rail-logos{display:grid;grid-template-columns:repeat(3,1fr);gap:25px 18px}.source-rail-logos>span{font-size:18px}.source-rail-logos>span:nth-child(4){font-size:14px}.vframe{aspect-ratio:16/10}.vcap{left:18px;bottom:18px;right:150px;padding:14px}.vcap b{font-size:19px}.vcap span{font-size:11px}.video-toggle{right:18px;bottom:18px;padding:10px;font-size:11px}.flow,.showcase-v,.modules,.audience,.benefits,.confs,.home-pricing,.home-resources{padding-top:60px;padding-bottom:60px}.fcard,.fcard.alt{grid-template-columns:1fr;gap:30px;padding-top:20px;padding-bottom:45px}.fcard.alt .f-copy{order:0}.fcard.alt .f-media{order:1}.f-media{max-width:720px;width:100%}.mgrid,.persona-row,.benefit-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.stat{padding-left:20px}.stat b{font-size:32px}.stat span{font-size:11px}.universe-heading{padding:60px 24px 35px}.universe-heading h2{font-size:45px}.universe-heading p{font-size:17px}.universe-tabs strong{font-size:21px}.universe-tabs>button{padding:21px 8px}.universe-tabs span{font-size:10px;line-height:1.4}.universe-display{height:490px}.universe-times{right:14px;top:16px}.universe-times button{padding:7px 9px;font-size:10px}.home-pricing .price-grid{grid-template-columns:1fr}.price-card{padding:26px;display:grid;grid-template-columns:1fr 1fr;gap:10px 25px}.price-card .pc-name,.price-card .pc-price,.price-card .pc-tokens{grid-column:1}.price-card .pc-tag{grid-column:1/-1}.price-card .pc-perks{grid-column:2;grid-row:2/5;margin-top:0}.price-card .pc-btn{grid-column:1}.price-card .pc-paypal{grid-column:2;align-self:end}.price-card .pc-offer{grid-column:1}.resource-columns article{padding:0 21px}.resource-columns h3{font-size:19px}.resource-columns p{font-size:13px}.resource-columns a{font-size:12px}.cta-final{padding:65px 32px}.cta-accept{gap:40px;grid-template-columns:1fr}.cta-copy{grid-column:1;grid-row:1}.accept-letter{grid-column:1;grid-row:2;justify-self:start;max-width:420px}.cta-final::after{width:90%;right:-28%;top:-15%}.rgf-in{grid-template-columns:1fr;gap:30px}.rgf-cols{grid-template-columns:repeat(4,1fr);gap:20px}.seo-links{grid-template-columns:1fr 1fr}.seo-about{grid-column:1/-1}.page{padding-left:32px;padding-right:32px}.page-hero h1{font-size:49px}}
@media(max-width:600px){.rgn{height:66px;padding:0 17px}.rgn-logo{font-size:17px}.rgn-logo .rgn-mark{width:29px;height:30px;margin-right:6px}.rgn-in{gap:6px}.rgn-cta{gap:5px}.rgn-solid{display:none}.rgn .rg-lang{display:none}.rgn #rg-account{min-width:0}.rgn #rg-account .rg-pill{font-size:10px;padding:5px 7px}.rgn #rg-account .rg-auth-ghost,.rgn #rg-account .rg-auth-cta{display:none}.rgn #rg-account .rg-acc{padding:4px;font-size:10px;min-height:28px}.rgn-burger{padding:7px}.rgn-drawer{max-height:calc(100dvh - 66px)}.research-home .hero{width:calc(100% - 40px);padding:65px 0 38px;gap:36px}.hero h1{font-size:clamp(33px,9.3vw,50px);line-height:1.1;letter-spacing:-.055em;white-space:normal}.hero .eyebrow{font-size:8px;letter-spacing:.12em;margin-bottom:24px;gap:8px;white-space:normal}.eyebrow .spark{width:9px;height:9px}.hero .lede{font-size:17px;margin:22px 0 26px;line-height:1.6;letter-spacing:-.015em}.desktop-break{display:none}.hero .hero-cta{gap:19px;flex-wrap:nowrap}.hero .solid.lg{font-size:14px;min-height:45px;padding:11px 17px}.hero .ghost.lg{font-size:12px}.hero-note{font-size:12px;margin-top:17px}.ribbon-stage{right:-285px;top:-90px;width:640px;height:1000px;opacity:.4}.workspace-preview{border-radius:9px}.workspace-bar{min-height:40px;padding:9px 10px;gap:8px;flex-wrap:wrap}.workspace-bar strong{font-size:10px}.workspace-bar .rg-icon{width:14px;height:14px}.workspace-file{font-size:8px;padding-left:7px}.example-label{display:none}.workspace-body{min-height:300px;grid-template-columns:minmax(0,1.6fr) minmax(0,1fr);padding:6px;gap:6px}.preview-paper{padding:13px 10px;border-radius:7px}.preview-paper h2{font-size:12px;margin-bottom:14px}.preview-paper h3{font-size:9px;margin-top:12px}.preview-paper p{font-size:7.5px;line-height:1.65}.preview-report{padding:11px 8px;border-radius:7px}.preview-report>h3{font-size:9px;gap:4px;margin-bottom:10px}.preview-report .rg-icon{width:12px;height:12px}.preview-metric{font-size:8px;padding:6px}.preview-metric b{font-size:12px}.preview-citations{font-size:7px;padding:6px}.preview-source-label{font-size:7px;padding-top:9px}.preview-sources button{font-size:6.5px;gap:3px;grid-template-columns:10px 1fr auto;padding:9px 0}.preview-sources button .rg-icon{width:10px;height:10px}.preview-sources button b{font-size:7px}.preview-context{font-size:7px}.workspace-tabs{gap:5px;padding:7px 3px}.workspace-tabs button{font-size:8px;padding:7px 2px;gap:4px;min-height:33px}.workspace-tabs button .rg-icon{width:12px;height:12px}.source-rail,.vhero,.flow,.showcase-v,.modules,.integrations,.audience,.benefits,.confs,.home-pricing,.home-resources,.stats,.seo-links{width:calc(100% - 40px)}.source-rail{padding:18px 0 22px;margin-bottom:40px}.source-rail>p{font-size:8px;margin-bottom:20px;letter-spacing:.14em}.source-rail-logos{gap:20px 12px}.source-rail-logos>span{font-size:12px;gap:5px}.source-rail-logos>span:nth-child(3){font-size:16px}.source-rail-logos>span:nth-child(4){font-size:10px;letter-spacing:-.04em}.source-rail-logos img{width:20px;height:20px}.vhero{margin-bottom:60px}.vframe{aspect-ratio:4/3;border-radius:9px}.vplay{top:12px;left:12px;padding:5px 8px;font-size:8px}.vcap{left:12px;right:12px;bottom:64px;padding:12px}.vcap b{font-size:16px}.vcap span{font-size:9px;line-height:1.6}.video-toggle{bottom:12px;right:12px;padding:9px 11px;min-height:38px}.sec-head h2{font-size:32px}.sec-head>p{font-size:14px;line-height:1.8}.kicker,.kick{font-size:9px}.flow,.showcase-v,.modules,.audience,.benefits,.confs,.home-pricing,.home-resources{padding-top:40px;padding-bottom:45px}.flow-track{overflow-x:auto;scroll-snap-type:x mandatory;padding-bottom:15px}.flow-steps{min-width:670px}.flow-why{display:grid;grid-template-columns:1fr;gap:20px;padding-top:22px}.fw b{font-size:15px}.fw span{font-size:13px}.stats{grid-template-columns:repeat(2,1fr);gap:26px 0;padding:30px 0}.stat:nth-child(3){padding-left:0}.stat:nth-child(2){border:0}.stat b{font-size:31px}.stat span{font-size:11px}.fcard,.fcard.alt{padding:10px 0 35px;gap:24px}.fcard .f-copy h3{font-size:29px}.fcard .f-copy>p{font-size:14px}.f-feats{gap:6px}.f-feats span{font-size:9px}.f-cta{gap:12px;flex-wrap:wrap}.f-cost{font-size:9px}.engine{padding:55px 20px}.engine-grid{grid-template-columns:1fr;gap:24px}.engine .cap{border:0;border-top:1px solid rgba(255,255,255,.16);padding:22px 0 0!important}.engine .cap h3{font-size:19px}.engine .cap p{font-size:13px}.engine .ci{font-size:24px}.mgrid,.persona-row,.benefit-grid{grid-template-columns:1fr}.mcard{padding:24px}.mcard h3{font-size:23px}.mcard li{font-size:13px}.persona{border-left:0;border-top:1px solid var(--line);padding:24px 0}.persona h3{font-size:22px}.persona p{max-width:none;font-size:14px}.benefit-grid{gap:16px}.bn-art{height:100px}.bn-body p{font-size:13px}.research-universe{margin-top:15px}.universe-heading{padding:45px 15px 31px}.universe-heading h2{font-size:36px;line-height:1.1}.universe-heading p{font-size:14px;max-width:30ch;margin:16px auto 0}.universe-tabs{grid-template-columns:repeat(2,1fr)}.universe-tabs>button{padding:18px 8px;border-bottom:1px solid var(--u-line)}.universe-tabs>button:nth-child(2){border-right:0}.universe-tabs>button:nth-child(3){border-bottom:0}.universe-tabs>button:last-child{border-bottom:0}.universe-tabs strong{font-size:22px}.universe-tabs span{font-size:9px}.universe-display{height:390px}.universe-times{top:14px;left:50%;right:auto;transform:translateX(-50%);white-space:nowrap;gap:0;padding:3px;max-width:calc(100% - 20px)}.universe-times button{padding:7px 8px;font-size:9px;gap:3px;min-height:34px}.universe-times button .rg-icon{width:13px;height:13px}.universe-caption{bottom:14px;left:14px;right:14px;font-size:8px;gap:5px}.universe-tooltip{font-size:9px;max-width:150px;padding:8px 9px}.universe-tooltip span{font-size:8px}.price-card{display:flex;padding:25px}.pc-price{font-size:39px}.pc-perks{margin-top:22px!important}.pc-name{font-size:21px}.pc-btn{min-height:44px}.resource-columns{grid-template-columns:1fr;gap:26px;margin-top:28px}.resource-columns article,.resource-columns article:first-child,.resource-columns article:last-child{padding:0 0 26px;border:0;border-bottom:1px solid var(--line)}.resource-icon{width:30px;height:30px;margin-bottom:15px}.resource-columns h3{font-size:22px}.resource-columns p{font-size:14px;margin-bottom:15px}.resource-columns a{font-size:13px}.cta-final{padding:52px 20px}.cta-final h2{font-size:34px}.cta-accept{gap:35px}.cta-final .hero-cta{gap:17px;flex-wrap:wrap}.cta-final .hero-cta .solid{font-size:14px;padding:12px 17px}.cta-final .hero-cta .ghost{font-size:12px}.cta-final .cta-rot-line{font-size:16px}.accept-letter{padding:20px;max-width:100%;transform:none}.al-body{font-size:13px}.rgf{padding:42px 20px 0}.rgf-cols{grid-template-columns:repeat(2,1fr);gap:28px}.rgf-cols h5{font-size:13px}.rgf-cols a{font-size:12px}.rgf-base{display:flex;flex-direction:column;align-items:flex-start;gap:9px;font-size:10px}.rg-nl{padding:18px 0;margin-top:10px;border-left:0;border-right:0;border-radius:0;background:none}.rg-nl-copy b{font-size:13px}.rg-nl-row{flex-wrap:wrap;gap:8px}.rg-nl-row input{min-width:0;flex:1;font-size:12px}.rg-nl-row button{font-size:11px;min-height:40px}.seo-links{grid-template-columns:1fr;padding:35px 0}.seo-about{grid-column:1}.seo-links a{font-size:10px}.sticky-cta{left:50%;bottom:12px;max-width:calc(100vw - 28px);width:350px;padding:10px 12px;border-radius:10px}.sticky-cta b{font-size:10px;max-width:150px}.sticky-cta .go-an{font-size:10px;padding:8px 10px}.sticky-cta .sc-close{font-size:17px}.sticky-cta .links-mini{display:none}.page{padding:20px}.page-hero{padding-top:30px;padding-bottom:30px}.page-hero h1{font-size:38px}.page-hero>p{font-size:14px}.section-h h2{font-size:27px}.token-math,.compare,.token-how,.faqs{padding-top:35px;padding-bottom:35px}.tm-formula{font-size:12px}.page-cta h2{font-size:29px}#theme-toggle{left:12px!important;bottom:13px!important;width:34px!important;height:34px!important}}
/* The menu owns its backdrop so it can blur the page beyond the header. */
.ghost::after{content:none}
.hero .ghost::after,.cta-final .ghost::after{display:none}
.research-home .cta-final.has-video .ghost{color:#635bff}
.flagrail{max-width:var(--site-width);padding-inline:0}
.f-media:has(.integrity-demo),.flagship-format .f-media{height:auto;max-height:none;min-height:0;aspect-ratio:auto;overflow:visible;border:0;background:transparent;box-shadow:none}
.fcard.flagship-format{overflow:visible}
.fcard.flagship-format::before{display:block;left:50%;right:auto;top:0;bottom:0;width:100vw;transform:translateX(-50%) skewY(-3deg)}
.flagship-format .mock-tex{position:relative;inset:auto;height:auto;min-height:380px}
.video-toggle{z-index:5}
.vframe .vcap,.vframe::after,.vcard::after{pointer-events:none}
.research-ribbon,.ribbon-motion{right:20px}
.home-pricing .pc-btn:not(.pc-paypal){background:#635bff;color:#fff;border-color:#635bff}
.home-pricing .price-card:last-child .pc-btn:not(.pc-paypal){background:#fff;color:#635bff}
.resource-icon{filter:invert(33%) sepia(94%) saturate(1910%) hue-rotate(232deg) brightness(101%) contrast(101%)}
@media(min-width:861px) and (max-width:1899px){
  .ribbon-stage{width:min(1050px,78vw);height:1250px}
  .hero .eyebrow{font-size:12px;letter-spacing:.17em}
  .hero .solid.lg{font-size:18px;padding:14px 28px}
  .hero .ghost.lg{font-size:18px}
  .preview-paper h2{font-size:20px;margin-bottom:17px}
  .preview-paper h3{font-size:13px}
  .preview-paper p{font-size:12px;line-height:1.6}
  .preview-report>h3{font-size:14px}
  .preview-metric{font-size:12px}.preview-metric b{font-size:20px}
  .preview-citations{font-size:11px}.preview-source-label{font-size:10px}
  .preview-sources button{font-size:10px;padding:12px 0;grid-template-columns:14px 1fr auto}
  .preview-context{font-size:9px}.workspace-tabs button{font-size:12px}
  .source-rail-logos>span{font-size:20px}
}
.rgn-drawer .rgn-drawer-cta{background:#635bff!important;color:#fff!important}
.rgn-drawer .rg-lang-wrap{display:flex;align-self:stretch;border-radius:8px;padding:12px 14px;margin-top:10px}
.rgn-drawer .rg-lang{display:inline-block;font-size:14px;min-height:24px;width:100%}
.research-home{--guru-b:22px;--guru-r:18px}
.research-home .guru-fab .gh{opacity:.12;animation:none}
.research-home .guru-teaser{display:none}
@media(max-width:720px){.research-home{--guru-b:18px;--guru-r:14px}.research-home .guru-fab{padding:5px}.research-home .guru-fab .gm{width:38px;height:38px}.research-home .guru-fab .gh{display:none}.universe-times button{min-height:44px}}
.rgn{backdrop-filter:none;-webkit-backdrop-filter:none}
.rgn-mega-grid{padding:0}
.rgn .rgn-mega,.rgn .rgn-drop:not(.open) .rgn-mega{visibility:visible}
.rgn .rgn-mega{transition:opacity .19s ease,transform .3s var(--ease)}
.rgn .rgn-drawer{visibility:visible;pointer-events:none;transition:transform .25s var(--ease),opacity .18s ease}
.rgn.drawer-open .rgn-drawer{pointer-events:auto}
.rgn-mega{background:rgba(255,255,255,.8);backdrop-filter:blur(28px) saturate(1.6);-webkit-backdrop-filter:blur(28px) saturate(1.6)}
.rgn-logo .rgn-mark{height:40px;width:43px}
.research-home .sticky-cta{display:none}
.research-home .cta-final.has-video{background:#f7f9fc!important}
.research-home .cta-final.has-video::after{inset:auto -8% -55% auto;width:65%;height:180%;background:url('/assets/research-ribbon.webp') center right/contain no-repeat;z-index:-1}
.research-home .cta-final.has-video .cta-bg{opacity:.025;z-index:-2}
.research-home .cta-final .cta-final-inner{background:transparent}
.research-home .cta-final .cta-copy{background:transparent;padding:0}
.research-home .cta-final .accept-letter p{color:#465064}
.research-home .cta-final .cta-benefits span{background:#fff;border:1px solid #dde4ef;color:#53657c}
.seo-links{grid-template-columns:1fr 1.4fr}
.seo-links>div>p:not(.seo-def){display:grid;grid-template-columns:repeat(2,minmax(0,1fr));align-content:start}
.seo-links>div>p>a{line-height:1.45}
.seo-links .seo-about{grid-column:1 / -1}
.integrity-demo{width:100%;overflow:hidden;border:1px solid #dfe5f1;border-radius:14px;background:#fafbff;box-shadow:0 22px 40px -25px rgba(10,37,64,.35);color:#101c38}
.demo-toolbar{display:flex;align-items:center;gap:18px;padding:16px 20px;border-bottom:1px solid #e1e7f0;font-size:10px}
.demo-toolbar strong{display:flex;align-items:center;gap:9px;font-size:17px}
.demo-toolbar .example-label{margin-left:auto;font-size:9px;white-space:nowrap}
.integrity-summary{display:flex;align-items:center;justify-content:space-between;padding:17px 23px;font-size:13px}
.integrity-summary b{font-size:23px;letter-spacing:-.04em}
.integrity-summary span+span{padding-left:20px;border-left:1px solid #d4deee}
.integrity-columns{display:grid;grid-template-columns:1.65fr 1fr;gap:10px;padding:0 12px 12px}
.integrity-columns article,.integrity-columns aside{min-width:0;background:#fff;border:1px solid #e1e7f0;border-radius:8px;padding:17px 15px}
.integrity-columns h4{font-size:16px;line-height:1.3;margin:0 0 20px;letter-spacing:-.03em}
.integrity-columns .mt-section{font-size:12px;line-height:1.4;margin:14px 0 6px}
.integrity-columns p{font-size:10px;line-height:1.7;margin:0;color:#233650}
.integrity-columns mark{background:#ffd7d3;color:inherit;border-radius:2px}
.integrity-columns aside .mt-section{margin:0 0 12px;font-size:13px}
.integrity-columns aside>div{display:flex;align-items:start;justify-content:space-between;gap:13px;border-top:1px solid #e1e7f0;padding:16px 0;font-size:10px;line-height:1.5}
.integrity-columns aside p{font-size:9px;line-height:1.5;color:#657690}
.demo-footer{display:flex;justify-content:space-around;gap:15px;border-top:1px solid #e1e7f0;padding:15px;font-size:11px;color:#635bff}
.fcard.flagship-format{position:relative;isolation:isolate;padding-top:60px;padding-bottom:60px}
.flagship-format::before{content:"";position:absolute;inset:0 calc((var(--site-width) - 100vw)/2);background:#0a2540;z-index:-1;transform:skewY(-3deg)}
.flagship-format .f-copy h3{color:#fff}.flagship-format .f-copy p{color:#b9cce2}.flagship-format .f-kick{color:#65d8ea}.flagship-format .f-feats span{color:#cedbee;border-color:#34506c;background:transparent}
.flagship-format .mock-tex{padding:12px;background:#f4f6fc;border:1px solid #dfe5f1;box-shadow:0 22px 45px -25px #0005;border-radius:12px;min-height:330px}
.flagship-format .mt-code{background:#182235;border-radius:6px;color:#e4e9f7;font-size:11px;line-height:2;padding:20px 14px;overflow:hidden}
.flagship-format .mt-pagewrap{background:#fff;border:1px solid #e1e7f0;border-radius:5px;padding:20px 13px;min-width:0}
.flagship-format .mt-page{height:auto;min-height:250px;background:#fff;padding:0;box-shadow:none;transform:none;border-radius:0}
.research-home .flagship-format .mt-page{width:100%;max-width:none;aspect-ratio:auto;min-height:0;align-self:start}
.research-home .flagship-format .mt-pagewrap{overflow:hidden}
.flagship-format .mt-page>b{font:700 14px/1.3 Georgia,serif;text-align:center;color:#172033;display:block;margin-bottom:10px}
.mt-authors{display:block;text-align:center;font:9px/1.4 Georgia,serif;color:#263348;margin-bottom:19px}
.mt-manuscript{columns:2;column-gap:13px;font:10px/1.5 Georgia,serif;color:#172033}
.mt-manuscript p{font:inherit;margin:0 0 10px}.mt-manuscript .mt-section{font:700 9px/1.5 Georgia,serif;text-align:center;margin:12px 0 6px}
.flagship-format .mt-ok{background:#e6f7ee;color:#25845b;border-radius:5px;font:9px/1.4 var(--font);padding:4px 7px;bottom:-8px;right:7px}
.vcard .video-toggle{bottom:16px;right:16px}
@media(min-width:1900px){.flagship-format::before{inset-inline:calc((var(--site-width) - 100vw)/2)}.integrity-columns p{font-size:12px}.integrity-columns h4{font-size:21px}.integrity-columns aside>div{font-size:12px}}
@media(max-width:1400px){.rgn-logo{font-size:22px}.rgn-in{gap:10px}.rgn-links>a,.rgn-dt{font-size:13px;padding-inline:6px}.flagship-format::before{inset-inline:calc(-1 * max(32px,(100vw - var(--site-width))/2))}}
@media(max-width:860px){.flagship-format::before{inset-inline:-32px}.seo-links{grid-template-columns:1fr}.integrity-columns{grid-template-columns:1.5fr 1fr}.research-home .cta-final.has-video::after{width:100%;height:130%;opacity:.4}}
@media(max-width:600px){.rgn-logo{font-size:20px}.rgn-logo .rgn-mark{width:30px;height:30px;margin-right:7px}.demo-toolbar{padding:12px;gap:10px}.demo-toolbar strong{font-size:14px}.demo-toolbar>span:not(.example-label){display:none}.integrity-summary{padding:13px;font-size:10px}.integrity-summary b{font-size:20px}.integrity-columns{grid-template-columns:1.55fr 1fr;gap:7px;padding:0 7px 7px}.integrity-columns article,.integrity-columns aside{padding:12px 10px}.integrity-columns h4{font-size:12px;margin-bottom:14px}.integrity-columns .mt-section{font-size:10px}.integrity-columns p{font-size:9px;line-height:1.6}.integrity-columns aside>div{font-size:9px;padding:12px 0;gap:6px}.integrity-columns aside .mt-section{font-size:10px}.integrity-columns aside p{font-size:8px}.demo-footer{font-size:9px;padding:12px}.flagship-format::before{inset-inline:-20px}.flagship-format .mock-tex{min-height:280px;padding:7px}.flagship-format .mt-code{font-size:8px;padding:12px 9px}.flagship-format .mt-pagewrap{padding:13px 9px}.flagship-format .mt-page>b{font-size:11px}.mt-manuscript{font-size:8px;column-gap:8px}.mt-authors{font-size:7px}.seo-links>div>p:not(.seo-def){grid-template-columns:1fr 1fr}.research-home .cta-final.has-video::after{opacity:.24}}
/* The approved brand film keeps its complete 16:9 composition at every width. */
.research-home .film-frame{aspect-ratio:auto;background:#fff!important;overflow:hidden}
.research-home .film-frame::after{display:none}
.research-home .film-frame>video{display:block;width:100%;height:auto;aspect-ratio:16/9;object-fit:contain;background:#0a1730}
.research-home .f-media.film-frame{display:block;padding:0;height:auto;min-height:0;border:1px solid var(--line);border-radius:12px;align-self:center}
.f-media.film-frame .film-meta{flex-direction:column;align-items:flex-start;gap:14px;padding:18px 20px}
.f-media.film-frame .film-description b{font-size:16px}
.f-media.film-frame .film-description span{font-size:12px}
.film-meta{display:flex;align-items:center;justify-content:space-between;gap:24px;padding:22px 24px;background:#fff;border-top:1px solid var(--line)}
.film-description b{display:block;font-size:18px;font-weight:600;line-height:1.4;letter-spacing:-.025em;color:var(--ink)}
.film-description span{display:block;margin-top:5px;font-size:13px;line-height:1.6;color:var(--soft)}
.film-actions{display:flex;align-items:center;gap:9px;flex-shrink:0}
.film-actions .video-toggle,.film-actions .video-sound{position:static;min-height:42px;border:1px solid var(--line);border-radius:7px;background:#f7f6ff;color:var(--ink);padding:10px 13px;font-size:12px;font-weight:550;cursor:pointer;white-space:nowrap}
.film-actions .video-sound[aria-pressed=true]{background:#635bff;border-color:#635bff;color:#fff}
@media(max-width:860px){.film-meta{align-items:flex-start;flex-direction:column;gap:16px;padding:20px}.film-description b{font-size:17px}}
@media(max-width:600px){.film-meta{padding:16px;gap:14px}.film-description b{font-size:16px}.film-description span{font-size:12px}.film-actions .video-toggle,.film-actions .video-sound{min-height:42px;padding:10px 12px}}
/* Research universe: readable colour at every lighting setting. */
@property --u-stage { syntax:"<color>"; inherits:true; initial-value:#f5f5fd; }
@property --u-glow { syntax:"<color>"; inherits:true; initial-value:#dcc7f6; }
@property --u-warm { syntax:"<color>"; inherits:true; initial-value:#fde0d0; }
.research-universe {
  --u-ink:#142747; --u-soft:#536386; --u-line:#dbe0ef; --u-surface:#f8f8fd;
  --u-stage:#f5f5fd; --u-glow:#dcc7f6; --u-warm:#fde0d0; --u-accent:#6b3ee8;
  --u-glass:rgba(255,255,255,.8); --u-selected:#ede7fc; --u-selected-ink:#6034cb;
  scroll-margin-top:76px;
  transition:background-color .85s ease,color .6s ease,--u-stage .85s ease,--u-glow .85s ease,--u-warm .85s ease;
}
.universe-heading { padding-top:62px; padding-bottom:38px; }
.universe-tabs>button { padding:24px 14px; }
.universe-tabs>button::before { height:3px; left:0; right:0; background:var(--u-accent); }
.universe-tabs>button[aria-selected=true] { background:var(--u-glass); color:var(--u-ink); }
.universe-tabs>button:hover { background:var(--u-glass); }
.universe-tabs span { font-size:13px; }
.research-universe[data-time] .universe-display {
  height:600px;
  background:radial-gradient(ellipse at 50% 100%,var(--u-glow),transparent 68%),radial-gradient(ellipse at 85% 95%,var(--u-warm),transparent 64%),var(--u-stage);
}
.universe-times { top:22px; right:24px; padding:5px; border-color:var(--u-line); background:var(--u-glass); box-shadow:0 5px 18px -12px rgba(31,22,75,.3); }
.universe-times button { padding:9px 12px; min-height:38px; font-size:12px; font-weight:500; color:var(--u-ink); }
.research-universe[data-time] .universe-times button[aria-pressed=true] { background:var(--u-selected); color:var(--u-selected-ink); box-shadow:0 1px 3px rgba(25,13,72,.08); }
.universe-pause { position:absolute; top:22px; left:24px; width:44px; height:44px; border:1px solid var(--u-line); border-radius:50%; background:var(--u-glass); color:var(--u-ink); display:grid; place-items:center; z-index:5; cursor:pointer; transition:background-color .25s,transform .25s; }
.universe-pause:hover { background:var(--u-selected); transform:scale(1.05); }
.universe-pause .rg-icon { width:18px; height:18px; }
.research-universe .universe-book { filter:saturate(1.08) contrast(1.03); }
.universe-caption { bottom:23px; font-size:12px; color:var(--u-soft); }
.universe-tooltip { font-size:13px; padding:13px 16px; border-radius:10px; max-width:228px; box-shadow:0 8px 28px -14px rgba(22,16,66,.4); transition:opacity .18s; }
.universe-tooltip span { font-size:11px; margin-top:4px; }
.research-universe[data-time=evening] {
  --u-surface:#292459; --u-ink:#f7f5ff; --u-soft:#cbc5e8; --u-line:#544d84;
  --u-stage:#2b245e; --u-glow:#6e56bc; --u-warm:#435c97; --u-accent:#d3bbff;
  --u-glass:rgba(52,42,104,.78); --u-selected:#6650a4; --u-selected-ink:#fff;
}
.research-universe[data-time=sunset] {
  --u-surface:#fff0eb; --u-ink:#35224d; --u-soft:#73566f; --u-line:#e4cbd9;
  --u-stage:#fcecea; --u-glow:#e2b8f5; --u-warm:#f5b292; --u-accent:#8c35ae;
  --u-glass:rgba(255,248,245,.78); --u-selected:#efd8ed; --u-selected-ink:#773087;
}
.research-universe[data-time=dark] {
  --u-surface:#101a3d; --u-ink:#f7f6ff; --u-soft:#bdc9e9; --u-line:#37446c;
  --u-stage:#111b3d; --u-glow:#443793; --u-warm:#192c59; --u-accent:#c4b5fd;
  --u-glass:rgba(27,35,75,.84); --u-selected:#57428d; --u-selected-ink:#fff;
}
.research-universe:is([data-time=evening],[data-time=dark]) .universe-times { background:var(--u-glass); border-color:var(--u-line); }
.research-universe:is([data-time=evening],[data-time=dark]) .universe-times .rg-icon,
.research-universe:is([data-time=evening],[data-time=dark]) .universe-pause .rg-icon { filter:invert(1); }
.research-universe:is([data-time=evening],[data-time=dark]) .universe-tooltip { background:rgba(23,24,61,.93); color:#fff; border-color:#6b6696; }
.research-universe:is([data-time=evening],[data-time=dark]) .universe-tooltip span { color:#d6d7ee; }
.research-universe[data-time=evening] .universe-book { filter:brightness(.94) saturate(1.12); }
.research-universe[data-time=sunset] .universe-book { filter:sepia(.12) saturate(1.15); }
.research-universe[data-time=dark] .universe-book { filter:brightness(.84) saturate(1.1); }
.research-universe[data-scene=publish] .universe-book { opacity:.12; }
@media(min-width:1900px) {
  .research-universe[data-time] .universe-display { height:720px; }
  .universe-tabs span { font-size:15px; }
}
@media(max-width:860px) {
  .universe-heading { padding:48px 24px 32px; }
  .universe-tabs>button { padding:21px 10px; }
  .universe-tabs span { font-size:12px; }
  .research-universe[data-time] .universe-display { height:500px; }
  .universe-times { right:18px; top:18px; }
  .universe-pause { left:18px; top:18px; }
}
@media(max-width:600px) {
  .research-universe { scroll-margin-top:66px; }
  .universe-heading { padding:40px 20px 28px; }
  .universe-heading p { font-size:15px; }
  .universe-tabs>button { padding:18px 12px; }
  .universe-tabs span { font-size:11px; line-height:1.5; max-width:22ch; margin:7px auto 0; }
  .research-universe[data-time] .universe-display { height:420px; }
  .universe-times { top:14px; left:12px; right:12px; max-width:none; transform:none; justify-content:center; padding:3px; }
  .universe-times button { flex:1; min-height:42px; padding:8px 5px; font-size:11px; gap:4px; }
  .universe-times button .rg-icon { width:15px; height:15px; }
  .universe-pause { top:72px; left:14px; width:36px; height:36px; }
  .universe-caption { bottom:17px; left:16px; right:16px; font-size:10px; }
  .universe-tooltip { padding:10px 12px; font-size:12px; max-width:205px; }
  .universe-tooltip span { font-size:10px; }
}
/* Studio films sit on a quiet tinted surface, distinct from the white page. */
.research-home .studio-section-head{display:flex;justify-content:space-between;align-items:flex-end;gap:24px;max-width:none}
.research-home .studio-section-head>div{min-width:0}
.research-home .studio-section-head h2{margin-bottom:0}
.research-home .studio-motion-control{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:44px;flex-shrink:0;padding:10px 14px;margin-bottom:4px;border:1px solid var(--line-2);border-radius:8px;background:var(--bg-2);color:var(--ink);font-size:12px;font-weight:550;cursor:pointer;transition:background-color .2s,border-color .2s}
.research-home .studio-motion-control:hover{background:color-mix(in srgb,var(--indigo) 7%,var(--card));border-color:var(--indigo)}
.research-home .studio-motion-control .rg-icon{width:16px;height:16px}
.research-home .studio-motion-control[hidden]{display:none}
.research-home .modules .mcard{--studio-ink:color-mix(in srgb,var(--studio-accent) 78%,var(--ink));padding:0;background:color-mix(in srgb,var(--studio-accent) 8%,var(--card));border:1px solid color-mix(in srgb,var(--studio-accent) 24%,var(--line));border-radius:14px;box-shadow:0 3px 9px -6px color-mix(in srgb,var(--studio-accent) 24%,transparent)}
.research-home .modules .mcard::before{height:2px;background:var(--studio-accent);opacity:.5}
.research-home .modules .mcard:hover{border-color:color-mix(in srgb,var(--studio-accent) 55%,var(--line));box-shadow:0 14px 28px -22px color-mix(in srgb,var(--studio-accent) 55%,transparent)}
.research-home .modules .mcard .top{padding:18px 20px 14px}
.research-home .modules .mcard .no{font-size:10px;font-weight:600;color:var(--soft);letter-spacing:.1em}
.research-home .modules .mcard .pill{font-size:10px;font-weight:600;line-height:1;padding:6px 9px;color:var(--studio-ink);background:color-mix(in srgb,var(--studio-accent) 10%,var(--card));letter-spacing:.02em}
.research-home .modules .studio-workflow{position:relative;isolation:isolate;overflow:hidden;aspect-ratio:16/9;min-width:0;margin:0 16px;background:color-mix(in srgb,var(--studio-accent) 6%,var(--card));border:1px solid color-mix(in srgb,var(--studio-accent) 20%,var(--line));border-radius:9px;box-shadow:0 3px 12px -7px color-mix(in srgb,var(--studio-accent) 30%,transparent)}
.research-home .modules .studio-workflow-video{display:block;width:100%;height:100%;object-fit:contain;pointer-events:none}
.research-home .modules .studio-workflow.has-media-error::after{content:"";position:absolute;inset:0;background:inherit;z-index:-1}
.research-home .modules .mcard .body{padding:20px 22px 22px}
.research-home .modules .studio-title{display:flex;align-items:center;gap:10px;min-height:34px}
.research-home .modules .mcard .mi{display:grid;place-items:center;flex:none;width:32px;height:32px;border-radius:8px;font-size:20px;color:var(--studio-ink);background:color-mix(in srgb,var(--studio-accent) 10%,var(--card));border:1px solid color-mix(in srgb,var(--studio-accent) 12%,var(--line))}
.research-home .modules .mcard h3{margin:0;font-size:21px;line-height:1.25;letter-spacing:-.035em}
.research-home .modules .mcard ul{margin:16px 0 0;padding:14px 0 0;border-color:color-mix(in srgb,var(--studio-accent) 14%,var(--line))}
.research-home .modules .mcard li{font-size:13px;line-height:1.6;padding:4px 0 4px 14px;color:var(--soft)}
.research-home .modules .mcard li::before{background:var(--studio-accent);width:4px;height:4px;top:13px}
.research-home .modules .mcard .go{margin-top:18px;font-size:12px;color:var(--studio-ink)}
[data-theme=dark] .research-home .modules .mcard{background:color-mix(in srgb,var(--studio-accent) 14%,var(--card));border-color:color-mix(in srgb,var(--studio-accent) 30%,var(--line))}
[data-theme=dark] .research-home .modules .mcard .pill,[data-theme=dark] .research-home .modules .mcard .mi,[data-theme=dark] .research-home .modules .mcard .go{color:color-mix(in srgb,var(--studio-accent) 50%,white)}
[data-theme=dark] .research-home .studio-motion-control .rg-icon{filter:invert(1)}
@media(min-width:601px) and (max-width:1024px){.research-home .modules .mgrid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:600px){.research-home .studio-section-head{align-items:flex-start;flex-direction:column;gap:20px}.research-home .studio-motion-control{margin-bottom:0}.research-home .modules .mgrid{grid-template-columns:minmax(0,1fr);gap:18px}.research-home .modules .mcard .top{padding:16px 18px 12px}.research-home .modules .studio-workflow{margin:0 14px}.research-home .modules .mcard .body{padding:20px}.research-home .modules .mcard h3{font-size:21px}.research-home .modules .mcard li{font-size:14px}.research-home .modules .mcard .go{font-size:13px;min-height:32px}}

/* Rendering budgets keep the approved composition while reducing paint cost. */
.rgn-drop:not(.open) .rgn-mega,.rgn:not(.drawer-open) .rgn-drawer,.guru-dock:not(.open){content-visibility:hidden;backdrop-filter:none!important;-webkit-backdrop-filter:none!important}
.guru-dock:not(.open) *,.guru-dock:not(.open) *::before,.guru-dock:not(.open) *::after,.guru-fab.hide .gm::after{animation-play-state:paused!important}
.guru-fab .gm{isolation:isolate;contain:paint}
.guru-fab .gm::after{will-change:transform}
html[data-render-tier=eco] .guru-fab .gm::after{animation-play-state:paused!important;will-change:auto}
html[data-render-tier=eco] .guru-fab{backdrop-filter:none;-webkit-backdrop-filter:none}
.source-rail.is-looping .source-rail-viewport{contain:layout paint;isolation:isolate;transform:translateZ(0)}
html[data-render-tier=eco] .research-ribbon,html[data-software-graphics=true] .research-ribbon{animation:none!important;will-change:auto}
.ribbon-stage.has-webgl .research-ribbon{will-change:auto}
html.rg-overlay-open .research-ribbon,html.rg-overlay-open .source-rail-track{animation-play-state:paused!important}
html[data-render-tier=balanced] .rgn-mega{backdrop-filter:blur(18px) saturate(1.6);-webkit-backdrop-filter:blur(18px) saturate(1.6)}
html[data-render-tier=eco] .rgn-mega{backdrop-filter:blur(10px) saturate(1.6);-webkit-backdrop-filter:blur(10px) saturate(1.6)}
html[data-render-tier=eco] .universe-times,html[data-render-tier=eco] .universe-tooltip{backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px)}
html[data-render-tier=eco] .universe-book{will-change:auto}
html[data-render-tier=eco] .source-rail{background:var(--bg)}
html[data-render-tier=eco] .source-rail.is-looping .source-rail-viewport{position:relative;-webkit-mask-image:none;mask-image:none}
html[data-render-tier=eco] .source-rail.is-looping .source-rail-viewport::before,html[data-render-tier=eco] .source-rail.is-looping .source-rail-viewport::after{content:"";position:absolute;top:0;bottom:0;width:var(--source-rail-fade);z-index:1;pointer-events:none}
html[data-render-tier=eco] .source-rail.is-looping .source-rail-viewport::before{left:0;background:linear-gradient(to right,var(--bg),transparent)}
html[data-render-tier=eco] .source-rail.is-looping .source-rail-viewport::after{right:0;background:linear-gradient(to left,var(--bg),transparent)}

/* The observer owns reveal timing once it is installed. The no-JS fallback
   remains available, without scheduling dozens of offscreen animations. */
.experience-ready .reveal:not(.in){animation:none}
/* First paint never waits for an animation script. Only offscreen elements
   actually owned by the observer receive an entrance state. */
.research-home .reveal{opacity:1;transform:none;animation:none}
.research-home .reveal.rg-will-reveal:not(.in){opacity:0;transform:translateY(16px);transition:none}
@media print{.research-home .reveal.rg-will-reveal{opacity:1!important;transform:none!important;animation:none!important}}

/* Homepage literature rail: one accessible source list and one visual repeat. */
/* The first screen must be readable before the deferred reveal observer runs. */
.research-home .hero .reveal{opacity:1;transform:none;transition:none}
.research-home .research-ribbon{animation-play-state:var(--ribbon-play-state,paused)}
.research-home .source-rail{--source-rail-fade:32px;min-width:0}
.research-home .source-rail-viewport{min-width:0;max-width:100%}
.research-home .source-rail:not(.is-looping) .source-rail-logos{display:flex;flex-wrap:wrap}
.research-home .source-rail .source-rail-logos[aria-hidden=true]{display:none}
.research-home .source-rail.is-looping .source-rail-viewport{position:relative;overflow:hidden;-webkit-mask-image:none;mask-image:none}
.research-home .source-rail.is-looping .source-rail-viewport::before,.research-home .source-rail.is-looping .source-rail-viewport::after{content:"";position:absolute;inset-block:0;width:var(--source-rail-fade);z-index:1;pointer-events:none}
.research-home .source-rail.is-looping .source-rail-viewport::before{left:0;background:linear-gradient(to right,var(--bg),transparent)}
.research-home .source-rail.is-looping .source-rail-viewport::after{right:0;background:linear-gradient(to left,var(--bg),transparent)}
.research-home .source-rail.is-looping .source-rail-track{display:flex;width:max-content;animation:source-rail-scroll var(--source-rail-duration,40s) linear infinite;animation-play-state:var(--source-rail-play-state,paused);will-change:transform}
.research-home .source-rail.is-looping .source-rail-logos{display:flex;flex:0 0 auto;flex-wrap:nowrap;justify-content:space-around;box-sizing:border-box;min-width:var(--source-rail-width);padding-inline:calc(var(--source-rail-gap)/2)}
@keyframes source-rail-scroll{to{transform:translate3d(-50%,0,0)}}
@media(max-width:600px){.research-home .source-rail{--source-rail-fade:16px}}
@media(prefers-reduced-motion:reduce){.research-home .source-rail.is-looping .source-rail-viewport{overflow:visible;-webkit-mask-image:none;mask-image:none}.research-home .source-rail.is-looping .source-rail-track{display:block;width:auto;animation:none;transform:none;will-change:auto}.research-home .source-rail.is-looping .source-rail-logos{flex-wrap:wrap;min-width:0;padding:0;justify-content:space-between}.research-home .source-rail.is-looping .source-rail-logos[aria-hidden=true],.research-home .source-rail-control{display:none}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto!important}*,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}.reveal{opacity:1;transform:none}.research-ribbon{animation:none;will-change:auto}.workspace-preview{transform:none}.ribbon-motion{display:none!important}.ribbon-stage.has-webgl .research-ribbon{opacity:1}.universe-tooltip{display:none}.universe-book{will-change:auto}.universe-pause{display:none}}

/* ── Dark mode: light surfaces and dark accents that had no dark rule ──
   A hardcoded light background under theme-coloured text is what made these
   headings vanish. The paper-style product previews stay light on purpose: they
   show a document, and their own text is dark. */
[data-theme=dark] .research-home .cta-final.has-video{background:#0e1a2f!important}
[data-theme=dark] .research-home .cta-final.has-video .ghost{color:#b1a4ff}
[data-theme=dark] .research-home .cta-final .cta-benefits span{background:#15233b;border-color:#35415a;color:#c0cce2}
[data-theme=dark] .cta-final .cta-eyebrow{color:#b1a4ff}
[data-theme=dark] .research-home .film-frame{background:#111d32!important}
[data-theme=dark] .film-meta{background:#111d32;border-top-color:#283650}
[data-theme=dark] .film-actions .video-toggle,[data-theme=dark] .film-actions .video-sound{background:#1a2740;border-color:#35415a;color:#edf2ff}
[data-theme=dark] .film-actions .video-sound[aria-pressed=true]{background:#635bff;border-color:#635bff;color:#fff}
[data-theme=dark] .video-toggle:hover{background:#22304d}
[data-theme=dark] .persona:hover{background:#15233b}
[data-theme=dark] .persona-row .persona .p-cta{filter:none;color:color-mix(in srgb,var(--pa,#7b4fc4) 55%,#fff)}
[data-theme=dark] .audience{background:transparent}
[data-theme=dark] .flow[data-lifecycle]{--lc-primary-ink:#b1a4ff}
[data-theme=dark] .f-kick{color:color-mix(in srgb,var(--fa) 55%,#fff)}
[data-theme=dark] .svc-go{color:color-mix(in srgb,var(--a) 55%,#fff)}
[data-theme=dark] .pc-tokens,[data-theme=dark] .pricing-details,[data-theme=dark] .resource-columns a{color:#b1a4ff}
[data-theme=dark] .pc-tag,[data-theme=dark] .page-eyebrow{background:rgba(177,164,255,.15);color:#d9d4ff}
[data-theme=dark] .pc-offer{background:rgba(255,196,57,.14);color:#ffd98a}
[data-theme=dark] .inst-kick,[data-theme=dark] .inst-quote,[data-theme=dark] .cmp thead .pop{color:#c9c4ff}
[data-theme=dark] .pc-paypal .pp{color:#a9c5ff}
[data-theme=dark] .pc-paypal .pl{color:#8bd6ff}
[data-theme=dark] .rgn-drawer .rgn-drawer-cta{background:rgba(177,164,255,.16);color:#d9d4ff}
[data-theme=dark] .cb-pill.hot{color:#2b0607}
[data-theme=dark] .inst-was,[data-theme=dark] .inst-price small{color:#aab9d2}
[data-theme=dark] .f-cost b{color:color-mix(in srgb,var(--fa,#b1a4ff) 55%,#fff)}
[data-theme=dark] .conf-free{background:rgba(52,199,123,.14);color:#7fe0ad}
/* .cta-final p centres itself with auto margins, which pushed this left-aligned line inward. */
.cta-accept .cta-trust{margin-left:0}
[data-theme=dark] .cb-pill.warm{color:#2b1a06}

/* Load and refresh without jumps, 2026-11-08. A refresh paints nothing until the
   reading position is restored (index.html). The network fades in on its first
   frame and the book once decoded; the book's box matches experience.js resize(),
   so the script's sizing moves nothing. */
html.rg-restoring body{opacity:0}
.universe-display{container-type:size}
.universe-book{width:min(82cqw,1090px);top:calc(87cqh - min(82cqw,1090px)*.28633)}
@container (max-width:599.98px){.universe-book{width:94cqw;top:calc(87cqh - 94cqw*.28633)}}
.universe-canvas{opacity:0;transition:opacity .45s ease}
.universe-canvas.is-live{opacity:1}
.research-universe:not(.book-ready) .universe-book{opacity:0;animation:universe-book-failsafe 0s 4s forwards}
@keyframes universe-book-failsafe{to{opacity:1}}
/* Its lighting is settled while parsing; transitions only once the page is ready,
   or that settling would play as a white-to-dark fade on refresh. */
html:not(.experience-ready) .research-universe,html:not(.experience-ready) .research-universe *{transition:none!important}

/* Native offscreen rendering, with the real DOM still searchable and readable.
   Remember measured sizes after entry. Restore visits use the fully measured
   layout so historical reading positions never depend on estimated heights. */
@supports (content-visibility:auto){
 html:not(.rg-restored-view) .research-home #main-content > :is(.showcase-v,.engine,.modules,.integrations,.audience,.benefits,.confs,.home-pricing,.home-resources,.cta-final,.seo-links){content-visibility:auto;contain-intrinsic-block-size:auto var(--rg-section-size,900px)}
 .research-home #main-content > .showcase-v{--rg-section-size:2400px}
 .research-home #main-content > .modules{--rg-section-size:1800px}
 .research-home #main-content > .integrations{--rg-section-size:240px}
 .research-home #main-content > .home-pricing{--rg-section-size:500px}
 @media(max-width:680px){
  .research-home #main-content > .showcase-v{--rg-section-size:3600px}
  .research-home #main-content > .engine{--rg-section-size:1400px}
  .research-home #main-content > .modules{--rg-section-size:6050px}
  .research-home #main-content > .audience{--rg-section-size:1700px}
  .research-home #main-content > .benefits{--rg-section-size:1900px}
 }
 @media print{.research-home #main-content > *{content-visibility:visible!important;contain-intrinsic-block-size:none!important}}
}
.seo-links h2{color:var(--ink)}
/* Readable small labels on light marketing surfaces. Keep decorative card
   accents; the label inks use the documented text/semantic palette. */
[data-theme="light"] .research-home :is(.f-cost,.conf-note,.cb-empty>span){color:#52627a}
[data-theme="light"] .research-home .f-kick{color:var(--ink)}
[data-theme="light"] .research-home #audience .kicker{color:#5147dc}
[data-theme="light"] .research-home .conf-free{color:#16805d}

/* Source: navigation.css */
/* Shared marketing navigation. Visual tokens extend the existing research palette. */
.rgn-static-mobile { display: none; }
/* The first-paint nav shares the scripted nav's breakpoint and burger box, so the swap is invisible. */
#nav.rgn-static .rgn-static-mobile summary { list-style: none; cursor: pointer; }
#nav.rgn-static .rgn-static-mobile summary::-webkit-details-marker { display: none; }
@media (max-width: 1380px) {
  #nav.rgn-static .rgn-links { display: none; }
  #nav.rgn-static .rgn-static-mobile { display: block; position: relative; }
  #nav.rgn-static .rgn-static-mobile nav { position: absolute; right: 0; top: 48px; display: grid; min-width: 190px; padding: 10px; border: 1px solid var(--nav-line); border-radius: 14px; background: var(--nav-panel); box-shadow: 0 12px 30px #172b4d20; }
  #nav.rgn-static .rgn-static-mobile a { min-height: 44px; padding: 12px; color: var(--nav-ink); text-decoration: none; border-radius: 8px; }
  #nav.rgn-static .rgn-static-mobile a:focus-visible { outline: 2px solid var(--nav-violet); outline-offset: -2px; }
}
#nav.rgn {
  --nav-ink: #172b4d;
  --nav-muted: #596b85;
  --nav-violet: #635bff;
  --nav-line: rgba(111, 132, 166, .16);
  --nav-glass: rgba(255, 255, 255, .82);
  --nav-panel: rgba(252, 253, 255, .91);
  --nav-ease: cubic-bezier(.22, 1, .36, 1);
  --nav-layer: 400;
  position: fixed;
  inset: 0 0 auto;
  height: 68px;
  width: auto;
  padding: 0 max(24px, calc((100vw - 1740px) / 2 + 22px));
  border: 0;
  border-bottom: 1px solid var(--nav-line);
  border-radius: 0;
  background: transparent;
  color: var(--nav-ink);
  box-shadow: 0 0 0 0 rgba(22, 42, 82, 0);
  backdrop-filter: none;
  -webkit-backdrop-filter: none;
  z-index: var(--nav-layer);
  isolation: auto;
  transition: box-shadow .28s var(--nav-ease), border-color .28s;
}
#nav.rgn::before {
  content: "";
  position: absolute;
  inset: 0;
  border-radius: inherit;
  pointer-events: none;
  z-index: -1;
  background: var(--nav-glass);
  transition: background .28s var(--nav-ease);
  backdrop-filter: blur(22px) saturate(1.55);
  -webkit-backdrop-filter: blur(22px) saturate(1.55);
}
#nav.rgn.scrolled { --nav-glass: var(--nav-panel); background: transparent; box-shadow: 0 12px 28px -18px rgba(22, 42, 82, .28); }
#nav .rgn-in { position: static; display: flex; align-items: center; justify-content: space-between; height: 100%; max-width: none; gap: 22px; margin: 0; }
#nav .rgn-logo { display: inline-flex; align-items: center; font: 700 23px/1 Georgia, "Times New Roman", serif; letter-spacing: -.05em; text-decoration: none; white-space: nowrap; flex: none; }
#nav .rgn-logo .rgn-mark { display: block; flex: none; width: 38px; height: 37px; margin-right: 8px; background: url('/assets/logo-mark-light.png') left center / contain no-repeat; }
#nav .rgn-logo .w1 { color: var(--nav-ink); }
#nav .rgn-logo .w2 { color: var(--nav-violet); }
#nav .rgn-logo .dotai { transform: none; color: #b17c20; font-weight: 800; letter-spacing: -.04em; }
/* .AI sits on the baseline with the rest of the name, never raised: landing.css's
   old generic .dotai is a flex-start, half-size badge. Owner request 2026-11-13. */
.rgn-logo .dotai { align-self: auto; margin: 0; padding: 0; font-size: 1em; vertical-align: baseline; transform: none; }
#nav .rgn-links { display: flex; align-items: center; flex: 1; justify-content: center; gap: 2px; white-space: nowrap; }
#nav .rgn-links > a, #nav .rgn-dt {
  position: relative; display: inline-flex; align-items: center; justify-content: center; gap: 5px;
  min-height: 40px; padding: 9px 10px; border: 0; border-radius: 10px;
  background: transparent; color: var(--nav-ink); font: 550 14px/1.4 var(--font, Inter, sans-serif);
  text-decoration: none; cursor: pointer; transition: background .18s, color .18s;
}
#nav .rgn-links > a::after { display: none; }
#nav .rgn-links > a:hover, #nav .rgn-dt:hover, #nav .rgn-drop.open .rgn-dt { color: var(--nav-violet); background: rgba(99, 91, 255, .075); }
#nav .rgn-links > a.on, #nav .rgn-dt.on { color: var(--nav-violet); background: rgba(99, 91, 255, .07); }
#nav .rgn-chevron { width: 13px; height: 13px; fill: none; stroke: currentColor; stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; filter: none; transition: transform .28s var(--nav-ease); }
#nav .rgn-drop.open .rgn-chevron { transform: rotate(180deg); }
#nav .rgn-drop { position: static; }
#nav .rgn-cta { display: flex; align-items: center; gap: 9px; margin-left: auto; flex: none; }
#nav .rgn-solid, #nav .rgn-drawer-cta {
  display: inline-flex; align-items: center; justify-content: center; gap: 12px;
  min-height: 38px; padding: 9px 14px; margin: 0; border: 1px solid rgba(68, 54, 225, .2); border-radius: 10px;
  background: linear-gradient(180deg, #746cff, #635bff); color: #fff; font: 650 12px/1.4 var(--font, Inter, sans-serif); white-space: nowrap; text-decoration: none;
  box-shadow: 0 3px 8px rgba(80, 67, 214, .14), inset 0 1px 0 rgba(255,255,255,.22);
  transition: background .18s, box-shadow .18s, transform .18s;
}
#nav .rgn-solid:hover, #nav .rgn-drawer-cta:hover { background: #5349e8; transform: translateY(-1px); box-shadow: 0 6px 14px -4px rgba(80,67,214,.35); }
#nav .rgn-solid svg, #nav .rgn-drawer-cta svg { width: 16px; height: 16px; fill: none; stroke: currentColor; stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; }
#nav .rgn-account-home { display: contents; }
#nav #rg-account { display: inline-flex; align-items: center; gap: 7px; min-width: 0; position: relative; }
#nav #rg-account:empty { min-width: 100px; }
#nav .rgn-account-loading { display: inline-flex; align-items: center; justify-content: center; width: 198px; min-height: 36px; padding: 7px 9px; border: 1px solid var(--nav-line); border-radius: 10px; color: var(--nav-muted); background: rgba(127,127,167,.035); font: 450 10px/1.4 var(--font, Inter, sans-serif); white-space: nowrap; }
#nav #rg-account .rg-pill { display: inline-flex; align-items: center; justify-content: center; min-height: 36px; border: 1px solid var(--nav-line); border-radius: 10px; padding: 7px 10px; background: rgba(242,244,255,.72); color: var(--nav-ink); font-size: 11px; white-space: nowrap; text-decoration: none; }
#nav #rg-account .rg-dia { color: var(--nav-violet); font-size: 10px; }
#nav #rg-account .rg-pill.low { color: #8f4d13; background: #fff5e6; border-color: #ebd6b9; }
#nav #rg-account .rg-auth-ghost { display: inline-flex; align-items: center; min-height: 36px; padding: 7px 5px; color: var(--nav-ink); font-size: 11px; text-decoration: none; }
#nav #rg-account .rg-auth-cta { display: inline-flex; align-items: center; justify-content: center; min-height: 36px; padding: 7px 10px; border: 1px solid var(--nav-line); border-radius: 10px; background: rgba(255,255,255,.7); color: var(--nav-ink); font-size: 11px; text-decoration: none; box-shadow: none; }
#nav #rg-account .rg-auth-cta:hover, #nav #rg-account .rg-auth-ghost:hover { color: var(--nav-violet); background: rgba(99,91,255,.07); }
#nav #rg-account .rg-auth-cta span { display: none; }
#nav #rg-account .rg-acc { position: relative; padding: 0; min-height: 36px; background: transparent; border: 0; border-radius: 10px; box-shadow: none; }
#nav .rgn-account-trigger { display: inline-flex; align-items: center; gap: 7px; min-height: 36px; padding: 4px 7px 4px 4px; border: 1px solid var(--nav-line); border-radius: 10px; background: rgba(255,255,255,.58); color: var(--nav-ink); font: inherit; cursor: pointer; }
#nav .rgn-account-trigger .rg-acc-meta { display: none; }
#nav .rgn-account-trigger .rg-av { display: grid; place-items: center; width: 26px; height: 26px; font-size: 11px; border-radius: 7px; background: #eeebff; color: #584adb; }
#nav .rgn-account-trigger .rg-caret { font-size: 10px; color: var(--nav-muted); }
#nav #rg-account .rg-bell { display: grid; place-items: center; width: 36px; height: 36px; min-height: 36px; border: 1px solid var(--nav-line); border-radius: 10px; background: rgba(255,255,255,.5); color: var(--nav-muted); cursor: pointer; }
#nav #rg-account .rg-menu, #nav #rg-bell-panel { top: calc(100% + 14px); right: 0; border: 1px solid var(--nav-line); border-radius: 16px; background: var(--nav-panel); color: var(--nav-ink); box-shadow: 0 18px 50px -15px rgba(23,43,77,.25); backdrop-filter: blur(20px); -webkit-backdrop-filter: blur(20px); }
#nav #rg-account .rg-menu a { color: var(--nav-ink); min-height: 40px; }
#nav #rg-account .rg-menu a:hover { background: rgba(99,91,255,.07); color: var(--nav-violet); }
#nav .rg-lang-wrap { display: inline-flex; align-items: center; gap: 5px; padding: 7px 8px; min-height: 36px; margin: 0; border: 1px solid transparent; border-radius: 10px; color: var(--nav-muted); background: transparent; font: 500 12px/1.4 var(--font, Inter, sans-serif); }
#nav .rg-lang-wrap:hover, #nav .rg-lang-wrap:focus-within { border-color: var(--nav-line); background: rgba(255,255,255,.6); }
#nav .rg-lang { display: inline-block; max-width: 116px; min-height: 22px; padding: 0; border: 0; background: transparent; color: inherit; font: inherit; cursor: pointer; }
#nav .rg-lang-ic { display: inline-flex; align-items: center; font-size: 17px; opacity: .8; }
#nav .rgn-burger { display: none; align-items: center; justify-content: center; width: 40px; height: 40px; padding: 9px; border: 1px solid var(--nav-line); border-radius: 10px; background: rgba(255,255,255,.5); color: var(--nav-ink); cursor: pointer; }
#nav .rgn-burger svg, #nav .rgn-drawer-close svg { display: block; width: 22px; height: 22px; fill: none; stroke: currentColor; stroke-width: 1.6; stroke-linecap: round; stroke-linejoin: round; }
#nav :is(a, button, summary, select):focus-visible { outline: 2px solid var(--nav-violet); outline-offset: 3px; }
#nav :is(button, a):active { transform: translateY(1px); }

/* One bounded flyout: four real workflow groups and the existing PlagLab lens. */
#nav .rgn-mega {
  position: absolute; inset: calc(100% + 12px) auto auto 50%; width: min(1290px, calc(100% - 24px));
  max-height: calc(100dvh - 112px); margin: 0; padding: 0; overflow: auto; overscroll-behavior: contain;
  border: 1px solid rgba(255,255,255,.96); border-radius: 23px; background: var(--nav-panel);
  box-shadow: 0 34px 80px -30px rgba(30,44,91,.35), 0 0 0 1px rgba(104,123,159,.12), inset 0 1px 0 #fff;
  backdrop-filter: blur(30px) saturate(1.6); -webkit-backdrop-filter: blur(30px) saturate(1.6);
  transform: translateX(-50%) translateY(-9px) scale(.985); transform-origin: 50% 0;
  opacity: 0; visibility: hidden; pointer-events: none; content-visibility: hidden;
  transition: opacity .16s ease, transform .22s var(--nav-ease), visibility 0s .22s;
  scrollbar-width: thin; scrollbar-color: #b7bfd7 transparent;
}
#nav .rgn-mega::before { display: none; }
#nav .rgn-drop.open .rgn-mega { opacity: 1; visibility: visible; pointer-events: auto; content-visibility: visible; transform: translateX(-50%) translateY(0) scale(1); transition: opacity .2s ease, transform .36s var(--nav-ease), visibility 0s; }
#nav .rgn-drop:not(.open) .rgn-mega { opacity: 0; visibility: hidden; pointer-events: none; transform: translateX(-50%) translateY(-9px) scale(.985); }
#nav .rgn-drop.closing .rgn-mega { visibility: visible; content-visibility: visible; }
#nav .rgn-mega-body { display: grid; grid-template-columns: minmax(0, 1fr) 210px; gap: 26px; padding: 26px; }
#nav .rgn-mega-grid { display: grid; grid-template-columns: repeat(4, minmax(0,1fr)); gap: 21px; padding: 0; }
#nav .rgn-col { min-width: 0; opacity: 1; }
#nav .rgn-col-h { display: flex; align-items: center; gap: 8px; padding: 0 0 14px; margin: 0 0 9px; border-bottom: 1px solid var(--nav-line); color: var(--nav-ink); font: 650 13px/1.35 var(--font, Inter, sans-serif); letter-spacing: -.015em; text-transform: none; white-space: nowrap; }
#nav .rgn-category-ic { display: grid; place-items: center; flex: none; width: 27px; height: 27px; border-radius: 8px; color: var(--mc); background: color-mix(in srgb, var(--mc) 9%, transparent); box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--mc) 8%, transparent); }
#nav .rgn-category-ic svg { width: 17px; height: 17px; }
#nav .rgn-col svg { display: block; fill: none; stroke: currentColor; stroke-width: 1.6; stroke-linecap: round; stroke-linejoin: round; }
#nav .rgn-col .rgn-tool { position: relative; display: flex; align-items: center; gap: 8px; min-height: 40px; padding: 9px 6px; margin: 0 -6px; border-radius: 9px; background: transparent; color: #4f617c; font: 500 13px/1.45 var(--font, Inter, sans-serif); text-decoration: none; white-space: normal; transition: background .18s, color .18s; transform: none; }
#nav .rgn-tool::after { display: none; }
#nav .rgn-tool-ic { flex: none; width: 17px; color: #7785a2; }
#nav .rgn-tool-ic svg { width: 17px; height: 17px; }
#nav .rgn-tool-name { min-width: 0; }
#nav .rgn-pro { flex: none; margin-left: auto; padding: 3px 5px; border: 1px solid rgba(177,124,32,.14); border-radius: 5px; background: #fff5df; color: #8c641d; font: 650 9px/1.1 var(--font, Inter, sans-serif); letter-spacing: .01em; text-transform: none; }
#nav .rgn-tool-arrow { display: none; }
#nav .rgn-col .rgn-tool:hover { color: var(--mc); background: color-mix(in srgb, var(--mc) 6%, transparent); transform: none; }
#nav .rgn-tool:hover .rgn-tool-ic { color: var(--mc); }
#nav .rgn-feat { display: flex; position: relative; flex-direction: column; align-items: flex-start; overflow: hidden; min-width: 0; padding: 19px; border: 1px solid rgba(131,111,220,.15); border-radius: 16px; background: radial-gradient(ellipse at 10% 0%, rgba(238,231,255,.85), transparent 70%), linear-gradient(160deg, #f7f4ff, #eff5fe); color: var(--nav-ink); text-decoration: none; transition: border-color .2s, box-shadow .2s; }
#nav .rgn-feat:hover { border-color: rgba(99,91,255,.35); box-shadow: 0 8px 20px -10px rgba(99,91,255,.2); }
#nav .rgn-feat-k { color: #7261a5; font: 650 10px/1.5 var(--font, Inter, sans-serif); letter-spacing: .035em; }
#nav .rgn-feat h3 { margin: 11px 0 0; font: 650 27px/1.12 var(--font, Inter, sans-serif); letter-spacing: -.045em; color: var(--nav-ink); }
#nav .rgn-feat-image { display: block; width: calc(100% + 32px); height: auto; aspect-ratio: 1491 / 1055; object-fit: contain; margin: 2px -16px -2px; filter: none; }
#nav .rgn-feat p { margin: 0 0 19px; color: #69718e; font: 400 12px/1.65 var(--font, Inter, sans-serif); }
#nav .rgn-feat-go { display: flex; align-items: center; gap: 17px; margin-top: auto; color: #6350ce; font: 650 12px/1.4 var(--font, Inter, sans-serif); }
#nav .rgn-feat-go svg { width: 17px; height: 17px; fill: none; stroke: currentColor; stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; transition: transform .2s var(--nav-ease); }
#nav .rgn-feat:hover .rgn-feat-go svg { transform: translateX(3px); }
#nav .rgn-mega-foot { display: flex; align-items: center; justify-content: space-between; gap: 20px; min-height: 58px; padding: 15px 27px; border-top: 1px solid var(--nav-line); border-radius: 0; background: rgba(241,244,253,.65); }
#nav .rgn-mega-all { display: inline-flex; align-items: center; gap: 13px; margin: 0; color: #5a50dc; font: 650 12px/1.5 var(--font, Inter, sans-serif); text-decoration: none; }
#nav .rgn-mega-all svg { width: 17px; height: 17px; fill: none; stroke: currentColor; stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; }
#nav .rgn-mega-note { display: inline-flex; gap: 10px; align-items: center; color: #687994; font: 400 11px/1.5 var(--font, Inter, sans-serif); }
.rgn-shade { position: fixed; inset: 0; z-index: 390; width: 100%; height: 100%; padding: 0; border: 0; border-radius: 0; background: rgba(35,43,78,.08); cursor: default; opacity: 0; visibility: hidden; pointer-events: none; transition: opacity .2s, visibility 0s .2s; }
.rgn-shade[data-open=true] { opacity: 1; visibility: visible; pointer-events: auto; transition: opacity .2s, visibility 0s; }
/* Keep the existing Pro dialog's close control above its decorative heading. */
.rgn-shade ~ .rg-modal-ov .rg-x { position: absolute; top: 12px; right: 12px; z-index: 1; display: grid; place-items: center; width: 44px; height: 44px; padding: 0; }

/* Native modal drawer owns focus and background inertness on compact screens. */
#nav .rgn-drawer { position: fixed; inset: 12px 12px auto auto; width: min(450px, calc(100vw - 24px)); max-width: none; max-height: calc(100dvh - 24px); margin: 0; padding: 0; border: 1px solid rgba(255,255,255,.9); border-radius: 22px; color: var(--nav-ink); background: var(--nav-panel); box-shadow: 0 25px 90px -25px rgba(20,32,68,.4), 0 0 0 1px var(--nav-line); backdrop-filter: blur(28px) saturate(1.4); -webkit-backdrop-filter: blur(28px) saturate(1.4); opacity: 1; visibility: visible; transform: none; transition: none; overflow: visible; }
#nav .rgn-drawer:not([open]) { display: none !important; }
#nav .rgn-drawer[open] { display: flex; flex-direction: column; content-visibility: visible; pointer-events: auto; }
#nav .rgn-drawer::backdrop { background: rgba(23,35,64,.22); backdrop-filter: blur(3px); -webkit-backdrop-filter: blur(3px); }
#nav .rgn-drawer-head { display: flex; justify-content: space-between; align-items: center; gap: 12px; padding: 16px 18px; border-bottom: 1px solid var(--nav-line); flex: none; }
#nav .rgn-drawer-close { display: grid; place-items: center; flex: none; width: 44px; height: 44px; border: 1px solid var(--nav-line); border-radius: 12px; background: rgba(255,255,255,.5); color: var(--nav-muted); cursor: pointer; }
#nav .rgn-drawer-account { display: flex; flex: none; min-height: 0; padding: 14px 22px 0; }
#nav .rgn-drawer-account:empty { display: none; }
#nav .rgn-drawer-account #rg-account { display: flex; width: 100%; gap: 9px; padding-bottom: 14px; border-bottom: 1px solid var(--nav-line); }
#nav .rgn-drawer-account #rg-account .rg-pill, #nav .rgn-drawer-account #rg-account .rg-auth-ghost, #nav .rgn-drawer-account #rg-account .rg-auth-cta { display: inline-flex; min-height: 42px; font-size: 12px; }
#nav .rgn-drawer-account #rg-account .rg-auth-ghost { margin-left: auto; }
#nav .rgn-drawer-account .rg-acc { margin-left: auto; min-width: 0; flex: 0 1 auto; }
#nav .rgn-drawer-account .rgn-account-trigger { min-height: 42px; min-width: 0; max-width: 100%; }
#nav .rgn-drawer-account .rgn-account-trigger .rg-acc-meta { display: flex; min-width: 0; max-width: 115px; text-align: left; font-size: 11px; }
#nav .rgn-drawer-account .rgn-account-trigger .rg-acc-meta b { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; max-width: 100%; }
#nav .rgn-drawer-account #rg-account :is(.rg-pill, .rg-bell) { flex-shrink: 0; }
#nav #rg-account .rg-menu-h { overflow-wrap: anywhere; }
#nav .rgn-drawer-account #rg-account .rg-tok-w { display: inline; }
#nav .rgn-drawer-account #rg-account .rg-menu { width: min(280px, calc(100vw - 68px)); top: calc(100% + 8px); }
#nav .rgn-drawer-account #rg-bell-panel { position: absolute; top: calc(100% - 6px); right: 0; width: min(340px, calc(100vw - 68px)); max-height: 55dvh; }
#nav .rgn-drawer-scroll { flex: 1 1 auto; min-height: 0; padding: 10px 14px; overflow-y: auto; overscroll-behavior: contain; scrollbar-width: thin; scrollbar-color: #b7bfd7 transparent; }
#nav .rgn-mobile-links { display: flex; flex-direction: column; gap: 3px; }
#nav .rgn-mobile-links > a, #nav .rgn-mobile-services > summary { display: flex; align-items: center; justify-content: space-between; gap: 12px; min-height: 49px; padding: 13px 13px; border: 0; border-radius: 11px; background: transparent; color: var(--nav-ink); font: 550 17px/1.4 var(--font, Inter, sans-serif); text-decoration: none; cursor: pointer; }
#nav .rgn-mobile-links > a.on, #nav .rgn-mobile-links > a:hover, #nav .rgn-mobile-services[open] > summary { color: var(--nav-violet); background: rgba(99,91,255,.065); }
#nav .rgn-mobile-services > summary { list-style: none; }
#nav .rgn-mobile-services > summary::-webkit-details-marker { display: none; }
#nav .rgn-mobile-services > summary svg { width: 17px; height: 17px; fill: none; stroke: currentColor; stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; transition: transform .2s var(--nav-ease); }
#nav .rgn-mobile-services[open] > summary svg { transform: rotate(180deg); }
#nav .rgn-mobile-groups { display: grid; gap: 16px; padding: 17px 13px 19px; }
#nav .rgn-mobile-group h3 { margin: 0 0 6px; color: var(--nav-muted); font: 650 11px/1.5 var(--font, Inter, sans-serif); letter-spacing: .025em; }
#nav .rgn-mobile-group > a { display: flex; align-items: center; gap: 10px; min-height: 44px; padding: 10px 9px; margin: 0 -9px; border-radius: 8px; color: var(--nav-ink); font: 450 14px/1.5 var(--font, Inter, sans-serif); text-decoration: none; }
#nav .rgn-mobile-group > a:hover { background: rgba(99,91,255,.065); color: var(--nav-violet); }
#nav .rgn-drawer-foot { display: flex; justify-content: space-between; align-items: center; gap: 12px; flex: none; padding: 14px 20px max(16px, env(safe-area-inset-bottom)); border-top: 1px solid var(--nav-line); }
#nav .rgn-drawer-language { min-width: 0; }
#nav .rgn-drawer-language .rg-lang-wrap { display: inline-flex; min-height: 44px; padding: 8px 9px; margin: 0; }
#nav .rgn-drawer-language .rg-lang { display: inline-block; width: auto; max-width: 150px; min-height: 28px; font-size: 13px; }
#nav .rgn-drawer .rgn-drawer-cta { min-height: 44px; padding-inline: 16px; border-radius: 11px; }

@media (max-width: 1550px) and (min-width: 1381px) {
  #nav.rgn { padding-inline: 20px; }
  #nav .rgn-in { gap: 10px; }
  #nav .rgn-links { gap: 0; }
  #nav .rgn-links > a, #nav .rgn-dt { padding-inline: 8px; font-size: 13px; }
  #nav .rgn-logo { font-size: 21px; }
  #nav .rgn-logo .rgn-mark { width: 34px; margin-right: 6px; }
  #nav .rgn-cta { gap: 7px; }
}
@media (max-width: 1380px) {
  #nav .rgn-links { display: none; }
  #nav .rgn-burger { display: inline-flex; }
}
@media (max-width: 920px) {
  #nav .rgn-account-home, #nav .rgn-cta > .rg-lang-wrap { display: none; }
}
@media (max-width: 760px) {
  #nav.rgn { height: 62px; padding-inline: 14px; }
  #nav .rgn-in { gap: 8px; }
  #nav .rgn-logo { font-size: 20px; }
  #nav .rgn-logo .rgn-mark { width: 30px; height: 32px; margin-right: 5px; }
  #nav .rgn-cta { gap: 7px; }
  #nav .rgn-solid { min-height: 40px; padding: 8px 11px; font-size: 11px; gap: 7px; }
  #nav .rgn-burger { width: 44px; height: 44px; }
  #nav .rgn-drawer { inset: 10px 10px auto; width: calc(100vw - 20px); max-height: calc(100dvh - 20px); border-radius: 20px; }
  #nav .rgn-drawer-head { padding: 13px 16px; }
  .research-home .hero { padding-top: 104px; }
}
@media (max-width: 420px) {
  #nav .rgn-in { gap: 6px; }
  #nav .rgn-logo { font-size: 18px; }
  #nav .rgn-logo .rgn-mark { width: 27px; height: 30px; margin-right: 4px; }
  #nav .rgn-solid { padding-inline: 9px; font-size: 10.5px; gap: 6px; min-height: 44px; }
}
@media (max-width: 360px) {
  #nav .rgn-in, #nav .rgn-cta { gap: 5px; }
  #nav .rgn-logo { font-size: 17px; }
  #nav .rgn-logo .rgn-mark { width: 25px; }
  #nav .rgn-solid { width: 44px; padding: 9px; }
  #nav .rgn-solid .rgn-cta-label { display: none; }
  #nav .rgn-drawer-account { padding-inline: 17px; }
  #nav .rgn-drawer-foot { padding-inline: 16px; }
  #nav .rgn-drawer-language .rg-lang { max-width: 128px; }
}
#nav .rgn-cta { justify-content: flex-end; }
#nav .rgn-burger { flex: none; }
/* Self-contained on pages without the landing reset (PlagLab, Remediation Lab). */
#nav.rgn, #nav.rgn *, #nav.rgn *::before, #nav.rgn *::after { box-sizing: border-box; }
#nav.rgn { font-family: var(--font, Inter, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif); font-size: 16px; line-height: 1.6; }
#nav .rgn-logo { color: var(--nav-ink); gap: 0; }
/* App pages reuse this nav through <div id="rg-nav" data-nav="app">. It is the
   same flush bar as on the marketing pages; the page reserves the space the
   fixed bar covers (the mount before site.js runs, the header after).
   Workspaces with a rail read --rg-nav-space to start their columns below it. */
:root { --rg-nav-space: 68px; }
body:has(> [data-nav="app"]) { padding-top: var(--rg-nav-space); }
@media (max-width: 760px) { :root { --rg-nav-space: 62px; } }
@media print { body:has(> [data-nav="app"]) { padding-top: 0; } }
[data-theme=dark] #nav.rgn { --nav-ink: #e4eafa; --nav-muted: #a6b4cd; --nav-violet: #b6acff; --nav-line: rgba(158,174,206,.2); --nav-glass: rgba(18,29,51,.86); --nav-panel: rgba(21,32,56,.96); }
[data-theme=dark] #nav.rgn.scrolled { box-shadow: 0 12px 28px -16px rgba(0,0,0,.7); }
[data-theme=dark] #nav .rgn-logo .rgn-mark { background-image: url('/assets/logo-mark-dark.png'); }
[data-theme=dark] #nav .rgn-col .rgn-tool { color: #b6c1d8; }
[data-theme=dark] #nav .rgn-feat { background: linear-gradient(155deg, #2d2850, #1c304c); border-color: #51476f; }
[data-theme=dark] #nav .rgn-feat-k, [data-theme=dark] #nav .rgn-feat p { color: #c1b9da; }
[data-theme=dark] #nav .rgn-feat-go, [data-theme=dark] #nav .rgn-mega-all { color: #b6acff; }
[data-theme=dark] #nav .rgn-mega-foot { background: rgba(12,22,42,.45); }
[data-theme=dark] #nav .rgn-pro { background: #3b3121; border-color: #68532b; color: #efd197; }
[data-theme=dark] #nav :is(.rgn-account-trigger, .rgn-burger, .rgn-drawer-close, .rg-lang-wrap:hover) { background: rgba(255,255,255,.04); }
[data-theme=dark] #nav #rg-account :is(.rg-pill, .rg-auth-cta, .rg-bell) { background: rgba(255,255,255,.05); }
[data-theme=dark] #nav #rg-account .rg-pill.low { background: #3c3023; color: #f0cc8c; }
html[data-render-tier=balanced] #nav.rgn::before { backdrop-filter: blur(16px); -webkit-backdrop-filter: blur(16px); }
html[data-render-tier=balanced] #nav .rgn-mega { backdrop-filter: blur(18px) saturate(1.3); -webkit-backdrop-filter: blur(18px) saturate(1.3); }
html[data-render-tier=eco] #nav.rgn { --nav-glass: rgba(255,255,255,.97); --nav-panel: #fcfdff; }
html[data-render-tier=eco][data-theme=dark] #nav.rgn { --nav-glass: #121d33; --nav-panel: #152038; }
html[data-render-tier=eco] #nav, html[data-render-tier=eco] #nav :is(.rgn-mega, .rgn-drawer, .rg-menu, #rg-bell-panel) { backdrop-filter: none; -webkit-backdrop-filter: none; }
html[data-render-tier=eco] #nav .rgn-drawer::backdrop { backdrop-filter: none; -webkit-backdrop-filter: none; }
html[data-render-tier=eco] #nav.rgn::before { background: var(--nav-glass); backdrop-filter: none; -webkit-backdrop-filter: none; }
/* Load without movement: the language switcher and the account controls arrive
   after first paint, into boxes that already have their final size. */
#nav .rgn-cta > :is(.rg-lang-slot, .rg-lang-wrap) { flex: 0 0 118px; width: 118px; min-width: 0; box-sizing: border-box; }
#nav .rgn-cta > .rg-lang-slot { display: inline-block; min-height: 36px; }
#nav .rgn-cta > .rg-lang-wrap .rg-lang { min-width: 0; flex: 1 1 auto; }
#nav .rgn-cta :is(#rg-account, .rgn-account-slot) { display: inline-flex; align-items: center; justify-content: flex-end; gap: 7px; min-width: 200px; }
#nav .rgn-account-loading { width: 200px; color: transparent; border-color: transparent; background: transparent; box-shadow: none; }
#nav .rgn-account-loading * { color: transparent; }
#nav #rg-account > :not(.rgn-account-loading) { animation: rgn-account-in .32s ease-out both; }
@keyframes rgn-account-in { from { opacity: 0; } }
@media (max-width: 1210px) { #nav .rgn-cta > .rg-lang-slot { display: none; } }
/* Light/dark switch: in the nav, after the language picker (owner request
   2026-11-13). It is the page's only switch: the floating one is not built
   (site.js) and a studio's own toolbar switch steps aside. The icon follows
   data-theme from first paint: a moon offers dark, a sun offers light. */
#nav .rgn-theme { display: inline-flex; flex: none; align-items: center; justify-content: center; width: 38px; height: 38px; padding: 0; margin: 0; border: 1px solid var(--nav-line); border-radius: 10px; background: rgba(255,255,255,.5); color: var(--nav-ink); cursor: pointer; transition: background .18s, border-color .18s, color .18s; }
#nav .rgn-theme:hover { color: var(--nav-violet); border-color: rgba(99,91,255,.35); background: rgba(99,91,255,.075); }
#nav .rgn-theme:focus-visible { outline: 2px solid var(--nav-violet); outline-offset: 2px; }
#nav .rgn-theme svg { display: block; width: 18px; height: 18px; fill: none; stroke: currentColor; stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; }
#nav .rgn-theme .rgn-theme-sun, [data-theme=dark] #nav .rgn-theme .rgn-theme-moon { display: none; }
[data-theme=dark] #nav .rgn-theme .rgn-theme-sun { display: block; }
[data-theme=dark] #nav .rgn-theme { background: rgba(255,255,255,.04); }
body:has(#nav .rgn-theme) #rgs-theme, body:has(#nav .rgn-theme) #theme-toggle { display: none !important; }
@media (max-width: 760px) { #nav .rgn-theme { width: 44px; height: 44px; } }
/* Phones: room for the switch without pushing the menu button off screen.
   Open tools becomes its arrow (as it already was at 360px and below; the
   accessible name stays, and the menu drawer keeps the full button). */
@media (max-width: 480px) {
  #nav .rgn-cta:has(.rgn-theme) > .rgn-solid { width: 44px; min-width: 44px; padding: 9px; gap: 0; }
  #nav .rgn-cta:has(.rgn-theme) > .rgn-solid .rgn-cta-label { display: none; }
}
@media (max-width: 420px) {
  #nav .rgn-cta:has(.rgn-theme) { gap: 5px; }
  #nav .rgn-theme { width: 40px; height: 40px; }
}
/* The smallest phones keep Open tools in the menu drawer only. */
@media (max-width: 340px) { #nav .rgn-cta:has(.rgn-theme) > .rgn-solid { display: none; } }
@media (forced-colors: active) { #nav .rgn-theme { border-color: ButtonBorder; color: ButtonText; background: ButtonFace; } }

@media (max-width: 920px) { #nav .rgn-account-slot { display: none; } }
@media (prefers-reduced-transparency: reduce) {
  #nav.rgn { --nav-glass: #fff; --nav-panel: #fcfdff; }
  #nav, #nav.rgn::before, #nav :is(.rgn-mega, .rgn-drawer, .rg-menu, #rg-bell-panel) { backdrop-filter: none; -webkit-backdrop-filter: none; }
  [data-theme=dark] #nav.rgn { --nav-glass: #121d33; --nav-panel: #152038; }
}
@media (prefers-reduced-motion: reduce) {
  #nav, #nav *, .rgn-shade { animation: none !important; transition: none !important; scroll-behavior: auto !important; }
}
@media (forced-colors: active) {
  #nav.rgn, #nav :is(.rgn-mega, .rgn-drawer, .rgn-feat, .rg-menu) { background: Canvas; color: CanvasText; border: 1px solid ButtonBorder; box-shadow: none; }
  #nav.rgn::before { display: none; }
  #nav :is(.rgn-solid, .rgn-drawer-cta) { background: ButtonFace; color: ButtonText; border: 1px solid ButtonBorder; }
}
@media print { #nav.rgn, .rgn-shade { display: none !important; } }

/* Source: lifecycle.css */
/* One native manuscript, six connected views. Marketing demo, never a live analysis. */
.flow[data-lifecycle] { --lc-primary: #635bff; --lc-primary-ink: #5147dc; --lc-cyan: #087b96; --lc-gold: #9a6416; --lc-line: var(--line, #e1e8f1); --lc-surface: var(--card, #fff); --lc-ink: var(--ink, #0a2540); scroll-margin-top: 95px; }
.flow[data-lifecycle] .sec-head { max-width: 780px; margin: 0 auto 34px; }
.lc-tabs { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 8px; margin-bottom: 19px; }
.lc-tab { display: flex; align-items: center; gap: 12px; min-width: 0; min-height: 69px; padding: 13px 15px; border: 1px solid var(--lc-line); border-radius: 11px; text-align: left; background: var(--bg-2, #f6f8fc); color: var(--lc-ink); font-family: var(--font); cursor: pointer; transition: border-color 180ms, background 180ms, box-shadow 220ms, transform 220ms var(--ease); }
.lc-tab > svg { width: 25px; height: 25px; flex: 0 0 25px; fill: none; stroke: currentColor; stroke-width: 1.5; stroke-linecap: round; stroke-linejoin: round; }
.lc-tab > span { min-width: 0; }
.lc-tab b { display: block; font: 650 13px/1.4 var(--font); letter-spacing: -.015em; white-space: nowrap; }
.lc-tab small { display: block; font: 400 10px/1.5 var(--font); color: var(--soft); margin-top: 3px; }
.lc-tab:hover { background: #f1edff; border-color: #bcb1f5; transform: translateY(-2px); }
.lc-tab:active { transform: translateY(0); }
.lc-tab[aria-selected="true"] { background: var(--lc-primary); color: #fff; border-color: var(--lc-primary); box-shadow: 0 4px 12px -5px #635bff73; }
.lc-tab[aria-selected="true"] small { color: #fff; }
.lifecycle-player { position: relative; border: 1px solid #dce0ed; border-radius: 14px; overflow: hidden; isolation: isolate; background: var(--lc-surface); box-shadow: 0 4px 8px #0a254003, 0 16px 35px -26px #40368a35; }
.lc-toolbar { display: flex; align-items: center; justify-content: space-between; gap: 12px; min-height: 54px; padding: 10px 22px; border-bottom: 1px solid var(--lc-line); background: var(--lc-surface); position: relative; z-index: 5; }
.lc-file { display: flex; align-items: center; gap: 11px; min-width: 0; color: var(--lc-ink); }
.lc-file > svg { width: 21px; height: 24px; flex: none; fill: none; stroke: currentColor; stroke-width: 1.55; stroke-linecap: round; stroke-linejoin: round; }
.lc-file > b { font: 600 13px/1.4 var(--font); letter-spacing: -.02em; }
.lc-file > span { padding-left: 17px; margin-left: 5px; border-left: 1px solid var(--lc-line); font: 400 11px/1.4 var(--font); color: var(--soft); }
.lc-main { display: grid; grid-template-columns: minmax(0, 1.72fr) minmax(340px, 1fr); position: relative; min-height: 424px; }
.lc-paper-stage { display: grid; place-items: center; position: relative; padding: 20px 28px; min-width: 0; overflow: hidden; background: radial-gradient(ellipse at 16% 76%, #e7e7fd, transparent 56%), radial-gradient(ellipse at 87% 16%, #e0f0ff, transparent 50%), radial-gradient(ellipse at 90% 96%, #fbeddd, transparent 48%), #f5f3fc; }
.lc-paper { position: relative; z-index: 2; width: 100%; max-width: 650px; min-height: 365px; padding: 22px 28px 30px; border: 1px solid #e2e5ef; border-radius: 10px; background: #fff; color: #18263d; box-shadow: 0 4px 10px #0a254010, 0 18px 30px -17px #635bff4d; box-sizing: border-box; }
.lc-paper h3.lc-paper-title { margin: 0 0 13px; padding: 0 0 12px; border-bottom: 1px solid #c8cfda; color: #101b30; font: 700 23px/1.16 Georgia, 'Times New Roman', serif; letter-spacing: -.035em; }
.lc-paper h4 { margin: 10px 0 3px; color: #182338; font: 700 17px/1.2 Georgia, 'Times New Roman', serif; letter-spacing: -.025em; }
.lc-paper p { margin: 0; font: 400 13.5px/1.38 Georgia, 'Times New Roman', serif; letter-spacing: 0; color: #232a38; }
.lc-paper-section { position: relative; break-inside: avoid; }
.lc-paper-section:first-child h4 { margin-top: 0; }
.lc-mark { --mark: #dcd3ff; padding: 1px 0; background: transparent; color: inherit; border-radius: 3px; box-decoration-break: clone; -webkit-box-decoration-break: clone; transition: background 300ms; }
.lc-mark.lc-cyan { --mark: #c9f1f5; }
.lc-mark.lc-gold { --mark: #ffe4b4; }
.lifecycle-player[data-stage="analyze"] .lc-mark, .lifecycle-player[data-stage="integrity"] .lc-mark, .lifecycle-player[data-stage="refine"] .lc-mark { background: var(--mark); }
.lifecycle-player[data-stage="analyze"] .lc-paper h4 { color: var(--lc-primary-ink); }
.lc-document-label { position: absolute; right: 21px; bottom: 11px; color: #69758b; font: 400 8px/1.4 var(--font); letter-spacing: .015em; }
.lc-scan-plane { display: none; position: absolute; z-index: 3; left: 17px; right: 17px; top: 78px; height: 17px; border-top: 1px solid #9983fa91; background: linear-gradient(180deg, #9983fa1f, #b3e7eb14, transparent); pointer-events: none; animation: lc-scan 4.8s cubic-bezier(.45,0,.55,1) infinite alternate; animation-play-state: paused; }
.lifecycle-player[data-stage="analyze"] .lc-scan-plane, .lifecycle-player[data-stage="integrity"] .lc-scan-plane { display: block; }
.lifecycle-player[data-running="true"] .lc-scan-plane { animation-play-state: running; }
.lc-story { position: relative; padding: 22px 27px 88px; min-width: 0; z-index: 3; background: var(--lc-surface); box-sizing: border-box; }
.lc-step-label { color: var(--lc-primary-ink); font: 600 11px/1.5 var(--font); letter-spacing: -.01em; margin-bottom: 9px; }
.lc-story h3 { color: var(--lc-ink); font: 650 clamp(23px, 1.9vw, 28px)/1.13 var(--font); letter-spacing: -.045em; margin: 0 0 10px; }
.lc-story > p { color: var(--soft); font: 400 14px/1.5 var(--font); margin: 0 0 17px; }
.lc-info { display: grid; gap: 8px; }
.lc-info-row { --row-accent: var(--lc-primary-ink); display: flex; align-items: center; gap: 11px; min-height: 49px; padding: 8px 12px; border-radius: 8px; background: #f3effb; }
.lc-info-row.lc-cyan { --row-accent: var(--lc-cyan); background: #edf8fa; }
.lc-info-row.lc-gold { --row-accent: var(--lc-gold); background: #fcf5e9; }
.lc-info-icon { flex: 0 0 23px; display: grid; place-items: center; color: var(--row-accent); }
.lc-info-icon svg { width: 23px; height: 23px; fill: none; stroke: currentColor; stroke-width: 1.5; stroke-linecap: round; stroke-linejoin: round; }
.lc-info-row b { display: block; color: var(--lc-ink); font: 600 13px/1.35 var(--font); letter-spacing: -.01em; }
.lc-info-row div > span { display: block; color: var(--soft); font: 400 11px/1.45 var(--font); margin-top: 2px; }
.lc-tool-link { position: absolute; left: 27px; bottom: 23px; display: inline-flex; align-items: center; gap: 8px; color: var(--lc-primary-ink); font: 600 13px/1.5 var(--font); text-decoration: none; transition: gap 220ms var(--ease); }
.lc-tool-link:hover { gap: 14px; }
.lc-tool-link svg { width: 17px; height: 17px; fill: none; stroke: currentColor; stroke-width: 1.6; stroke-linecap: round; stroke-linejoin: round; }
.lc-connectors { position: absolute; inset: 0; width: 100%; height: 100%; overflow: visible; z-index: 4; pointer-events: none; opacity: 1; transition: opacity 220ms; }
.lifecycle-player[data-stage="draft"] .lc-connectors { opacity: 0; }
.lc-connection { color: var(--lc-primary); }
.lc-connection.lc-cyan { color: #0891b2; }
.lc-connection.lc-gold { color: #c58c28; }
.lc-connection > path { fill: none; stroke: currentColor; stroke-width: 1.25; opacity: .62; }
.lc-connection > circle { fill: currentColor; }
.lc-connection > path.lc-flow-pulse { stroke-dasharray: 6 590; stroke-width: 2.8; opacity: .8; animation: lc-connection-flow 4.5s linear infinite; animation-play-state: paused; }
.lc-connection:nth-child(2) > path.lc-flow-pulse { animation-delay: -.9s; }
.lc-connection:nth-child(3) > path.lc-flow-pulse { animation-delay: -1.8s; }
.lifecycle-player[data-running="true"] .lc-flow-pulse { animation-play-state: running; }
.lc-revision, .lc-references, .lc-citation { display: none; }
.lifecycle-player[data-stage="refine"] .lc-base-abstract { display: none; }
.lifecycle-player[data-stage="refine"] .lc-revision { display: block; }
.lc-revision-label { display: block; color: var(--lc-primary-ink); font: 500 8px/1.4 var(--font); letter-spacing: .02em; margin-bottom: 5px; }
.lc-paper .lc-original { color: #59667d; text-decoration: line-through; text-decoration-color: #b7bfd0; font-size: 12px; margin-bottom: 7px; }
.lc-edit { color: #243150; background: #e7e0ff; border-radius: 3px; padding-block: 2px; box-decoration-break: clone; -webkit-box-decoration-break: clone; }
.lc-format-controls { position: absolute; bottom: 58px; left: 27px; display: flex; gap: 5px; }
.lc-format-controls[hidden] { display: none; }
.lc-format-controls button { min-width: 48px; padding: 5px 11px; border-radius: 6px; border: 1px solid #d9d5ec; background: var(--lc-surface); color: var(--soft); font: 500 10px/1.5 var(--font); cursor: pointer; transition: background 150ms, color 150ms, border-color 150ms; }
.lc-format-controls button:hover { border-color: #a99ce9; background: #f4f0ff; color: var(--lc-primary-ink); }
.lc-format-controls button[aria-pressed="true"] { color: var(--lc-primary-ink); background: #eee9ff; border-color: #c5bbfa; }
.lifecycle-player[data-stage="format"] .lc-paper-body, .lifecycle-player[data-stage="match"] .lc-paper-body { column-count: 2; column-gap: 20px; }
.lifecycle-player[data-stage="format"] .lc-paper p, .lifecycle-player[data-stage="match"] .lc-paper p { font-size: 12.5px; }
.lifecycle-player[data-stage="format"] .lc-paper h4, .lifecycle-player[data-stage="match"] .lc-paper h4 { font-size: 15px; }
.lifecycle-player[data-stage="format"] .lc-references, .lifecycle-player[data-stage="match"] .lc-references { display: block; break-inside: avoid; }
.lc-paper .lc-references p { margin-top: 4px; font-size: 9px; }
.lifecycle-player[data-stage="format"] .lc-citation, .lifecycle-player[data-stage="match"] .lc-citation { display: inline; color: var(--lc-primary-ink); }
.lc-footer { display: grid; grid-template-columns: minmax(0, 1fr) 280px; align-items: center; gap: 28px; min-height: 66px; padding: 12px 24px 14px; background: var(--bg-2, #f6f8fc); border-top: 1px solid var(--lc-line); }
.lc-timeline { position: relative; min-width: 0; }
.lc-timeline-track { position: absolute; top: 8px; left: 8.33%; right: 8.33%; height: 1px; background: #c7d0de; }
.lc-timeline-track > span { display: block; height: 100%; width: 0; background: var(--lc-primary); transition: width 600ms var(--ease); }
.lc-timeline-items { position: relative; display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 4px; }
.lc-timeline-items > span { text-align: center; min-width: 0; }
.lc-timeline-items i { display: grid; place-items: center; margin: 0 auto 6px; width: 15px; height: 15px; background: var(--lc-surface); border: 1px solid #bac5d5; border-radius: 50%; color: var(--lc-primary-ink); font: 500 9px/1 var(--font); box-sizing: border-box; }
.lc-timeline-items b { display: block; color: var(--soft); font: 400 10px/1.4 var(--font); white-space: nowrap; }
.lc-timeline-items > span.is-active i { background: var(--lc-primary); border-color: var(--lc-primary); box-shadow: 0 0 0 3px var(--lc-surface), 0 0 0 4px #ada1f8; }
.lc-timeline-items > span.is-active b { color: var(--lc-ink); font-weight: 600; }
.lc-timeline-items > span.is-done i { background: #e9e2ff; border-color: #9e87f2; }
.lc-timeline-items > span.is-done i::after { content: ""; width: 6px; height: 3px; border-left: 1.25px solid currentColor; border-bottom: 1.25px solid currentColor; transform: rotate(-45deg) translateY(-1px); }
.lc-footer > p { margin: 0; padding-left: 24px; border-left: 1px solid #d4dbea; color: var(--soft); font: 400 10px/1.5 var(--font); }
.lc-step-timer { height: 2px; position: absolute; bottom: 0; inset-inline: 0; z-index: 6; background: #635bff08; pointer-events: none; }
.lc-step-timer > span { display: block; width: 100%; height: 100%; background: #8e7df8; transform: scaleX(0); transform-origin: left; }
.lc-announcement { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; }
.flow[data-lifecycle] .flow-why { width: 100%; max-width: none; margin: 29px 0 0; padding: 0; gap: 0; border-top: 0; }
.flow[data-lifecycle] .fw { border: 0; border-right: 1px solid var(--lc-line); border-radius: 0; padding: 0 27px; background: none; box-shadow: none; transform: none; }
.flow[data-lifecycle] .fw:first-child { padding-left: 10px; }
.flow[data-lifecycle] .fw:last-child { border-right: 0; padding-right: 10px; }
.flow[data-lifecycle] .fw b { color: var(--lc-primary-ink); background: none; -webkit-text-fill-color: currentColor; font: 600 16px/1.5 var(--font); }
.flow[data-lifecycle] .fw span { font-size: 12px; line-height: 1.7; }
@keyframes lc-scan { from { transform: translateY(0); opacity: .45; } to { transform: translateY(214px); opacity: .8; } }
@keyframes lc-connection-flow { from { stroke-dashoffset: 596; } to { stroke-dashoffset: 0; } }
html[data-render-tier="eco"] .lc-flow-pulse, html[data-render-tier="eco"] .lc-scan-plane { animation: none; }
html[data-render-tier="eco"] .lifecycle-player .lc-flow-pulse, html[data-render-tier="eco"] .lifecycle-player .lc-scan-plane { display: none; }
[data-theme="dark"] .lc-paper-stage { background: radial-gradient(ellipse at 15% 70%, #34355f, transparent 58%), radial-gradient(ellipse at 85% 25%, #183f59, transparent 54%), #182440; }
[data-theme="dark"] .lc-info-row { background: #635bff1a; }
[data-theme="dark"] .lc-info-row.lc-cyan { background: #0891b21a; }
[data-theme="dark"] .lc-info-row.lc-gold { background: #c58c281a; }
[data-theme="dark"] .lc-tab:hover { background: #635bff26; }
@media (max-width: 1220px) and (min-width: 760px) {
  .lc-tab { gap: 8px; padding: 11px 10px; }
  .lc-tab > svg { width: 21px; height: 21px; flex-basis: 21px; }
  .lc-tab b { font-size: 12px; }
  .lc-tab small { font-size: 9px; }
  .lc-main { grid-template-columns: minmax(0, 1.55fr) minmax(310px, 1fr); min-height: 478px; }
  .lc-paper-stage { padding: 22px; }
  .lc-paper { padding: 21px 23px 29px; }
  .lc-paper h3.lc-paper-title { font-size: 21px; }
  .lc-paper p { font-size: 13px; }
  .lc-story { padding: 23px 22px 91px; }
  .lc-story h3 { font-size: 25px; }
  .lc-story > p { font-size: 13px; }
  .lc-info-row { padding: 8px 9px; gap: 8px; }
  .lc-info-row b { font-size: 12px; }
  .lc-info-row div > span { font-size: 10px; }
  .lc-tool-link, .lc-format-controls { left: 22px; }
  .lc-footer { grid-template-columns: minmax(0, 1fr) 215px; gap: 15px; padding-inline: 17px; }
  .lc-footer > p { padding-left: 16px; font-size: 9px; }
}
@media (max-width: 759px) {
  .flow[data-lifecycle] { width: calc(100% - 32px); }
  .flow[data-lifecycle] .sec-head { margin-bottom: 25px; }
  .flow[data-lifecycle] .sec-head h2 { font-size: 34px; }
  .flow[data-lifecycle] .sec-head > p { font-size: 14px; line-height: 1.7; }
  .lc-tabs { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 7px; margin-bottom: 15px; }
  .lc-tab { min-height: 84px; padding: 10px 8px; gap: 6px; align-items: flex-start; }
  .lc-tab > svg { width: 17px; height: 19px; flex-basis: 17px; margin-top: 1px; }
  .lc-tab b { font-size: 11px; }
  .lc-tab small { font-size: 10px; line-height: 1.45; margin-top: 4px; }
  .lc-toolbar { padding: 11px 12px; min-height: 62px; gap: 6px; }
  .lc-file { display: grid; grid-template-columns: 18px minmax(0, 1fr); gap: 1px 7px; }
  .lc-file > svg { grid-row: span 2; width: 18px; height: 22px; }
  .lc-file > b { font-size: 11px; white-space: nowrap; }
  .lc-file > span { border: 0; padding: 0; margin: 0; font-size: 9px; }
  .lc-main { grid-template-columns: minmax(0, 1fr); min-height: 0; }
  .lc-paper-stage { padding: 20px 14px; min-height: 0; }
  .lc-paper { padding: 20px 19px 30px; min-height: 410px; border-radius: 9px; }
  .lc-paper h3.lc-paper-title { font-size: 21px; padding-bottom: 11px; margin-bottom: 12px; }
  .lc-paper h4 { font-size: 16px; margin-top: 12px; }
  .lc-paper p { font-size: 12.5px; line-height: 1.4; }
  .lc-extended { display: none; }
  .lc-story { padding: 23px 20px 91px; min-height: 410px; border-top: 1px solid var(--lc-line); }
  .lc-step-label { font-size: 11px; margin-bottom: 8px; }
  .lc-story h3 { font-size: 25px; }
  .lc-story > p { font-size: 13px; margin-bottom: 17px; }
  .lc-info-row { min-height: 49px; }
  .lc-info-row b { font-size: 12px; }
  .lc-info-row div > span { font-size: 11px; }
  .lc-tool-link { left: 20px; bottom: 23px; font-size: 12px; }
  .lc-format-controls { left: 20px; }
  .lc-format-controls button { min-height: 29px; }
  .lc-connectors { display: none; }
  .lifecycle-player[data-stage="format"] .lc-paper-body, .lifecycle-player[data-stage="match"] .lc-paper-body { column-count: 1; }
  .lifecycle-player[data-stage="format"] .lc-paper-section:nth-child(3), .lifecycle-player[data-stage="match"] .lc-paper-section:nth-child(3) { display: none; }
  .lifecycle-player[data-stage="format"] .lc-paper h4, .lifecycle-player[data-stage="match"] .lc-paper h4 { font-size: 15px; }
  .lc-paper .lc-references p { font-size: 9px; }
  .lc-footer { grid-template-columns: minmax(0, 1fr); gap: 9px; padding: 14px 10px 12px; }
  .lc-footer > p { border: 0; padding: 0; text-align: center; font-size: 9px; }
  .lc-footer > p br { display: none; }
  .lc-timeline-items b { font-size: 9px; }
  .lc-timeline-items i { width: 13px; height: 13px; }
  .lc-timeline-track { top: 7px; }
  .lc-timeline-items > span.is-active i { box-shadow: 0 0 0 2px var(--lc-surface), 0 0 0 3px #ada1f8; }
  .flow[data-lifecycle] .flow-why { gap: 20px; margin-top: 25px; }
  .flow[data-lifecycle] .fw, .flow[data-lifecycle] .fw:first-child, .flow[data-lifecycle] .fw:last-child { padding: 0 15px; border: 0; }
  .flow[data-lifecycle] .fw span { font-size: 13px; }
}
@media (max-width: 360px) { .lc-tab { flex-direction: column; gap: 5px; } .lc-tab small { font-size: 10px; } .lc-file > svg { display: none; } .lc-file { grid-template-columns: minmax(0, 1fr); } .lc-paper { min-height: 446px; } .lc-story { min-height: 460px; } }
@media (prefers-reduced-motion: reduce) { .flow[data-lifecycle] *, .flow[data-lifecycle] *::before, .flow[data-lifecycle] *::after { animation: none !important; transition: none !important; } .lc-flow-pulse, .lc-scan-plane { display: none !important; } }
@media (forced-colors: active) { .lc-connectors, .lc-scan-plane { display: none; } .lc-tab[aria-selected="true"] { border: 2px solid Highlight; } .lc-paper, .lc-info-row, .lifecycle-player { border: 1px solid CanvasText; } .lc-mark { text-decoration: underline; } }

/* Source: colophon.css */
/* ResearchGuru colophon — the public footer's closing scene.

   The footer is always night-dark, in both site themes. Near the end of a
   page the page itself behaves like a lifted sheet: the footer stays put and
   the sheet slides away over it (`.is-under`, compositor-driven through a
   scroll timeline where supported, colophon.js otherwise). Under the sheet:
   a slow ink-in-water sky (WebGL, CSS gradient fallback) and the giant
   ResearchGuru.AI lockup at the head of the footer, where the name plays a
   series-opening title (variant cuts, a letter scramble, a lock) before it
   settles as the logo.

   Native text is the first paint and the no-JavaScript, reduced-motion,
   forced-colours and failure state. Owner: colophon.js. */

.rgc {
  --rgc-bg: #050713;
  --rgc-ink: #f2f4ff;
  --rgc-soft: #aeb6da;
  --rgc-faint: #858eb3;
  --rgc-line: rgba(214, 222, 255, .12);
  --rgc-violet: #b7abff;
  --rgc-gold: #e9bb5c;
  --rgc-gutter: clamp(20px, 4.4vw, 64px);
  --rgc-radius: clamp(22px, 2.8vw, 44px);
  --rgc-width: 1312px;
  position: relative;
  display: block;
  overflow: clip;
  isolation: isolate;
  margin: 0;
  padding: 0;
  border: 0;
  background: var(--rgc-bg);
  color: var(--rgc-ink);
  color-scheme: dark;
  font: 400 15px/1.55 var(--font, "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif);
  text-align: left;
}
.rgc *, .rgc *::before, .rgc *::after { box-sizing: border-box; }

/* The bottom of the page sheet: same colour as the page above it, rounded
   corners over the footer, a soft shadow cast onto the sky. */
.rgc-edge {
  position: absolute; z-index: 5; left: 0; right: 0; top: 0;
  height: var(--rgc-radius);
  background: var(--rgc-sheet, var(--bg, #fff));
  border-radius: 0 0 var(--rgc-radius) var(--rgc-radius);
  box-shadow: 0 22px 44px -16px rgba(0, 0, 0, .7), 0 1px 0 rgba(255, 255, 255, .05);
  pointer-events: none;
}

[data-theme="dark"] .rgc-edge {
  box-shadow: 0 22px 44px -16px rgba(0, 0, 0, .85), 0 1px 0 rgba(183, 171, 255, .24);
}

.rgc-under {
  position: relative; z-index: 1;
  padding: calc(var(--rgc-radius) + clamp(40px, 8.5vh, 92px)) var(--rgc-gutter) 0;
}
.rgc.is-under .rgc-under { will-change: transform; }

/* ── sky ── */
.rgc-sky {
  position: absolute; z-index: -1; inset: 0; overflow: hidden; pointer-events: none;
  background:
    radial-gradient(60% 55% at 78% 30%, rgba(99, 91, 255, .30), transparent 70%),
    radial-gradient(45% 50% at 18% 62%, rgba(196, 57, 154, .16), transparent 72%),
    radial-gradient(40% 45% at 50% 105%, rgba(68, 92, 230, .30), transparent 70%),
    radial-gradient(30% 35% at 92% 88%, rgba(245, 146, 30, .10), transparent 70%),
    var(--rgc-bg);
}
.rgc-sky canvas {
  position: absolute; inset: 0; width: 100%; height: 100%; display: block;
  opacity: 0; transition: opacity 1.1s ease;
}
.rgc-sky.is-live canvas { opacity: 1; }
.rgc-grain {
  position: absolute; inset: 0; opacity: .07;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 .9 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
  background-size: 180px 180px;
}

/* ── letter + directory ── */
.rgc-inner {
  max-width: var(--rgc-width); margin: 0 auto;
  display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr);
  gap: clamp(36px, 6vw, 104px); align-items: start;
}
.rgc-kicker {
  display: flex; align-items: center; gap: 10px; margin: 0;
  font: 600 11px/1.4 var(--font, "Inter", sans-serif); letter-spacing: .16em; text-transform: uppercase;
  color: var(--rgc-violet);
}
.rgc-kicker::before {
  content: ""; width: 7px; height: 7px; border-radius: 50%; flex: none;
  background: linear-gradient(135deg, #f5921e, #c4399a 55%, #635bff);
  box-shadow: 0 0 0 4px rgba(99, 91, 255, .18);
}
.rgc-title {
  margin: 16px 0 12px; max-width: 15ch;
  font: 650 clamp(30px, 3vw, 44px)/1.06 var(--font, "Inter", sans-serif); letter-spacing: -.045em;
  color: var(--rgc-ink);
}
.rgc-title em {
  font-style: normal;
  background: linear-gradient(95deg, #f6a554 0%, #e2589f 46%, #a597ff 100%);
  -webkit-background-clip: text; background-clip: text; color: transparent;
  -webkit-text-fill-color: transparent;
}
.rgc-sub { margin: 0 0 22px; max-width: 40ch; color: var(--rgc-soft); font-size: 15px; }

.rgc .rgc-nl { display: block; margin: 0; padding: 0; max-width: 470px; border: 0; border-radius: 0; background: none; }
.rgc .rgc-nl .rg-nl-row {
  display: flex; flex-wrap: nowrap; gap: 6px; padding: 5px;
  border: 1px solid rgba(214, 222, 255, .16); border-radius: 14px;
  background: rgba(255, 255, 255, .055);
  transition: border-color .2s ease, background-color .2s ease, box-shadow .2s ease;
}
.rgc .rgc-nl .rg-nl-row:focus-within {
  border-color: rgba(183, 171, 255, .7); background: rgba(255, 255, 255, .08);
  box-shadow: 0 0 0 4px rgba(99, 91, 255, .22);
}
.rgc .rgc-nl input[type=email] {
  flex: 1 1 auto; min-width: 0; margin: 0; padding: 10px 12px;
  border: 0; border-radius: 10px; outline: none; background: transparent;
  color: var(--rgc-ink); font: 500 15px/1.3 var(--font, "Inter", sans-serif);
}
.rgc .rgc-nl input[type=email]::placeholder { color: #8890b6; opacity: 1; }
.rgc .rgc-nl input[type=email]:focus-visible { outline: none; }
.rgc .rgc-nl button {
  flex: none; min-height: 42px; margin: 0; padding: 0 18px;
  border: 0; border-radius: 10px; cursor: pointer;
  background: #635bff; color: #fff; font: 600 14px/1 var(--font, "Inter", sans-serif);
  transition: background-color .2s ease, transform .2s ease;
}
.rgc .rgc-nl button:hover { background: #7770ff; }
.rgc .rgc-nl button:active { transform: translateY(1px); }
.rgc .rgc-nl button:focus-visible { outline: 2px solid #fff; outline-offset: 2px; }
.rgc .rgc-nl button:disabled, .rgc .rgc-nl input:disabled { cursor: default; opacity: .7; }
.rgc .rgc-nl .rg-nl-msg { margin: 8px 2px 0; font-size: 13px; color: var(--rgc-soft); }
.rgc .rgc-nl .rg-nl-msg:empty { display: none; }
.rgc .rgc-nl.done .rg-nl-msg { color: #8be8c0; }
.rgc .rgc-nl.err .rg-nl-msg { color: #ffa3b1; }
.rgc-fine { margin: 10px 2px 0; font-size: 12.5px; color: var(--rgc-faint); }
.rgc-fine a { color: var(--rgc-soft); text-decoration: underline; text-underline-offset: 3px; text-decoration-color: rgba(174, 182, 218, .4); }
.rgc-fine a:hover { color: var(--rgc-ink); }

.rgc-cols { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: clamp(18px, 2.4vw, 40px); }
.rgc-cols h3 {
  margin: 2px 0 14px; color: var(--rgc-ink);
  font: 600 12px/1.4 var(--font, "Inter", sans-serif); letter-spacing: .02em;
}
.rgc-cols a {
  position: relative; display: block; width: fit-content; max-width: 100%; padding: 5px 0;
  color: var(--rgc-soft); font-size: 14px; line-height: 1.45; text-decoration: none;
  transition: color .2s ease;
}
.rgc-cols a::after {
  content: ""; position: absolute; left: 0; right: 0; bottom: 3px; height: 1px;
  background: linear-gradient(90deg, #f5921e, #c4399a 50%, #a597ff);
  transform: scaleX(0); transform-origin: left center;
  transition: transform .35s cubic-bezier(.2, .8, .2, 1);
}
.rgc-cols a:hover, .rgc-cols a:focus-visible { color: var(--rgc-ink); }
.rgc-cols a:hover::after, .rgc-cols a:focus-visible::after { transform: scaleX(1); }
.rgc-cols a:focus-visible, .rgc-base a:focus-visible { outline: 2px solid var(--rgc-violet); outline-offset: 3px; border-radius: 3px; }
.rgc-cols .rgc-cta { color: var(--rgc-violet); }
.rgc-note { margin: 12px 0 0; max-width: 21ch; color: var(--rgc-faint); font-size: 12px; line-height: 1.5; }

.rgc-base {
  text-shadow: 0 1px 14px rgba(5, 7, 19, .85), 0 0 2px rgba(5, 7, 19, .6);
  max-width: var(--rgc-width); margin: clamp(26px, 4vh, 40px) auto 0; padding: 16px 0 clamp(18px, 3vh, 28px);
  display: flex; flex-wrap: wrap; align-items: center; gap: 8px 28px;
  border-top: 1px solid var(--rgc-line);
  color: var(--rgc-soft); font-size: 12.5px;
}
.rgc-badges { display: flex; flex-wrap: wrap; gap: 6px 18px; }
.rgc-badges span { display: inline-flex; align-items: center; gap: 8px; }
.rgc-badges span::before { content: ""; width: 4px; height: 4px; border-radius: 50%; background: var(--rgc-violet); opacity: .85; }
.rgc-up {
  margin-left: auto; display: inline-flex; align-items: center; gap: 8px;
  color: var(--rgc-soft); text-decoration: none; transition: color .2s ease;
}
.rgc-up svg { width: 15px; height: 15px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; transition: transform .3s ease; }
.rgc-up:hover { color: var(--rgc-ink); }
.rgc-up:hover svg { transform: translateY(-2px); }

/* ── the brand: the lockup, where the title plays ── */
.rgc-brand { display: flex; flex-direction: column; align-items: flex-start; }
.rgc-mark {
  position: relative; display: inline-flex; align-items: center; gap: .3em;
  color: inherit; text-decoration: none; border-radius: 8px;
  font: 700 clamp(28px, 2.5vw, 38px)/1 Georgia, "Times New Roman", serif;
  -webkit-text-size-adjust: none; text-size-adjust: none;
}
.rgc-mark:focus-visible { outline: 2px solid var(--rgc-violet); outline-offset: 6px; }
.rgc-mark-icon {
  flex: none; width: 1.32em; height: 1.26em;
  background: url('/assets/logo-mark-dark.png') center / contain no-repeat;
}
.rgc-name { position: relative; display: inline-block; }
.rgc-word {
  display: inline-block; white-space: nowrap; user-select: none;
  font: inherit; line-height: 1.12; letter-spacing: -.05em;
}
.rgc-word > span {
  /* room for the ink that the tight tracking pushes past each word's box,
     so its last letter is painted whole */
  padding: 0 .09em; margin: 0 -.09em;
  -webkit-background-clip: text; background-clip: text;
  color: transparent; -webkit-text-fill-color: transparent;
}
.rgc-word .w1 { background-image: linear-gradient(180deg, #ffffff 8%, #e3e7fb 52%, #aab4e2 100%); }
.rgc-word .w2 { background-image: linear-gradient(180deg, #ddd5ff 8%, #ab9bff 52%, #7867f0 100%); }
.rgc-word .w3 { background-image: linear-gradient(180deg, #ffe4a6 8%, #ecbb59 52%, #b9822a 100%); }
.rgc-about { margin: 22px 0 20px; max-width: 38ch; color: var(--rgc-soft); font-size: 15px; line-height: 1.75; }
.rgc-brand .rgc-badges { gap: 8px; }
.rgc-brand .rgc-badges span {
  padding: 6px 12px; border: 1px solid rgba(214, 222, 255, .16); border-radius: 999px;
  background: rgba(255, 255, 255, .035); color: var(--rgc-soft); font-size: 12px; font-weight: 600;
}
.rgc-brand .rgc-badges span::before { display: none; }

/* ── the research letter: a strip under the directory ── */
.rgc-letter {
  max-width: var(--rgc-width); margin: clamp(36px, 6vh, 60px) auto 0;
  display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 18px 48px; align-items: center;
  padding: clamp(22px, 2.6vw, 30px) clamp(22px, 3vw, 36px);
  border: 1px solid rgba(214, 222, 255, .12); border-radius: 18px;
  background: linear-gradient(120deg, rgba(255, 255, 255, .065), rgba(255, 255, 255, .02));
}
.rgc-letter .rgc-title { margin: 10px 0 6px; max-width: none; font-size: clamp(22px, 2vw, 28px); }
.rgc-letter .rgc-sub { margin: 0; }
.rgc-letter .rgc-nl { max-width: none; }

/* The ignition (colophon.js): while it plays, the name is drawn on a canvas
   from the same glyph positions and the text waits underneath, invisible;
   the last frame matches it exactly and hands back to it. */
.rgc.is-seq .rgc-word { opacity: 0; }
.rgc.is-seq.is-done .rgc-word { opacity: 1; transition: opacity .45s ease; }
/* max-width: the site's global canvas cap would cut it to the name's width,
   and the last letters (the I of .AI) would only appear at the hand-back. */
.rgc-fire { position: absolute; left: 0; display: block; max-width: none; max-height: none; pointer-events: none; z-index: 2; }

/* ── the lifted sheet: scroll-linked, on the compositor where supported ── */
@keyframes rgc-under { from { transform: translate3d(0, -100%, 0); } to { transform: translate3d(0, 0, 0); } }
@supports (animation-timeline: view()) {
  .rgc.is-under.is-timeline { view-timeline: --rgc-reveal block; }
  .rgc.is-under.is-timeline .rgc-under {
    animation: rgc-under linear both;
    animation-timeline: --rgc-reveal;
    animation-range: entry 0% entry 100%;
  }
}

/* ── responsive ── */
@media (max-width: 1100px) {
  .rgc-inner { grid-template-columns: 1fr; gap: 44px; }
  .rgc-letter { grid-template-columns: 1fr; }
}
@media (max-width: 720px) {
  .rgc-under { padding-top: calc(var(--rgc-radius) + 44px); }
  .rgc-cols { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 30px 20px; }
  .rgc-title { font-size: 30px; }
  .rgc-sub { font-size: 14px; }
  .rgc-base { gap: 10px 18px; font-size: 12px; }
  .rgc-badges { order: 3; width: 100%; }
  .rgc-up { margin-left: 0; }
  /* the floating theme and assistant buttons sit in this strip, not on the text */
  .rgc-base { padding-bottom: 96px; }
}
@media (max-width: 380px) {
  .rgc .rgc-nl .rg-nl-row { flex-wrap: wrap; }
  .rgc .rgc-nl input[type=email] { flex-basis: 100%; }
  .rgc .rgc-nl button { flex: 1 1 auto; }
}

/* ── static modes ── */
@media (prefers-reduced-motion: reduce) {
  .rgc-sky canvas { transition: none; }
  .rgc-up svg, .rgc-cols a::after { transition: none; }
}
@media (forced-colors: active) {
  .rgc-sky, .rgc-edge, .rgc-fire { display: none; }
  .rgc-word > span { color: CanvasText; -webkit-text-fill-color: CanvasText; background: none; }
  .rgc.is-seq .rgc-word { opacity: 1; }
}
@media print {
  .rgc-sky, .rgc-edge, .rgc-fire { display: none; }
  .rgc.is-seq .rgc-word { opacity: 1; }
  .rgc { background: #fff; color: #000; }
}
