:root{
  --max:1180px;
  --serif:"Newsreader","Iowan Old Style","Palatino Linotype",Palatino,Georgia,serif;
  --sans:-apple-system,BlinkMacSystemFont,"Segoe UI",Inter,Roboto,Helvetica,Arial,sans-serif;
  --r:14px;--ease:cubic-bezier(.16,.8,.3,1);
}
/* Light theme (default tokens) */
:root,[data-theme="light"]{
  --ink:#10201b;--muted:#5d6b65;--line:#e4ebe7;--bg:#fbfdfc;--bg2:#f1f7f3;
  --card:#ffffff;--accent:#1f8a5b;--accent-dk:#136241;--accent-lite:#1f8a5b;
  --warm:#c8773b;--glass:rgba(255,255,255,.72);--shadow:rgba(16,32,27,.13);
  --hero1:#e9f5ee;--hero2:#dCEbe0;
}
/* Dark theme — cutting-edge default */
[data-theme="dark"]{
  --ink:#eaf3ee;--muted:#8ba298;--line:#1e2c26;--bg:#0a1410;--bg2:#0e1b15;
  --card:#0f1d17;--accent:#3ddc91;--accent-dk:#34c785;--accent-lite:#7df0bc;
  --warm:#e8a35e;--glass:rgba(12,24,18,.66);--shadow:rgba(0,0,0,.5);
  --hero1:#10271d;--hero2:#0a1812;
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
body{margin:0;background:var(--bg);color:var(--ink);font-family:var(--sans);
  line-height:1.6;font-size:17px;-webkit-font-smoothing:antialiased;
  transition:background .3s var(--ease),color .3s var(--ease)}
a{color:var(--accent-dk);text-decoration:none;transition:color .15s}
a:hover{text-decoration:underline}
img{max-width:100%;display:block}
.wrap{max-width:var(--max);margin:0 auto;padding:0 22px}
::selection{background:var(--accent);color:#04130c}

/* reading progress bar */
.reading-progress{position:fixed;top:0;left:0;right:0;height:3px;z-index:60;background:transparent;opacity:0;transition:opacity .3s}
.reading-progress.on{opacity:1}
.reading-progress span{display:block;height:100%;width:0;background:linear-gradient(90deg,var(--accent),var(--accent-lite));box-shadow:0 0 12px var(--accent)}

/* header */
.topbar{border-bottom:1px solid var(--line);background:var(--glass);position:sticky;top:0;z-index:50;
  backdrop-filter:saturate(1.6) blur(14px);-webkit-backdrop-filter:saturate(1.6) blur(14px)}
.topbar .wrap{display:flex;align-items:center;justify-content:space-between;height:66px;gap:18px}
.head-actions{display:flex;align-items:center;gap:10px}
.theme-toggle{width:38px;height:38px;border-radius:10px;border:1px solid var(--line);background:var(--bg2);
  cursor:pointer;font-size:17px;line-height:1;display:grid;place-items:center;transition:.15s var(--ease);color:var(--ink)}
.theme-toggle:hover{border-color:var(--accent);transform:translateY(-1px)}
.theme-toggle::before{content:"🌙"}
[data-theme="dark"] .theme-toggle::before{content:"☀️"}
.menu-toggle{display:none;width:40px;height:38px;border:1px solid var(--line);background:var(--bg2);border-radius:10px;
  cursor:pointer;flex-direction:column;gap:4px;align-items:center;justify-content:center;padding:0}
.menu-toggle span{width:18px;height:2px;background:var(--ink);border-radius:2px;transition:.2s var(--ease)}
.menu-toggle[aria-expanded="true"] span:nth-child(1){transform:translateY(6px) rotate(45deg)}
.menu-toggle[aria-expanded="true"] span:nth-child(2){opacity:0}
.menu-toggle[aria-expanded="true"] span:nth-child(3){transform:translateY(-6px) rotate(-45deg)}
.brand{display:flex;align-items:center;gap:11px;font-weight:700;font-size:21px;letter-spacing:-.02em;color:var(--ink)}
.brand:hover{text-decoration:none}
.brand .dot{width:30px;height:30px;flex:0 0 30px}
.brand small{font-weight:500;color:var(--muted);font-size:12px;letter-spacing:.14em;text-transform:uppercase}
.nav{display:flex;gap:22px;font-size:14.5px;font-weight:600;align-items:center}
.nav a{color:var(--muted);position:relative;padding:4px 0}
.nav a:hover{color:var(--accent-dk);text-decoration:none}
.nav a.active{color:var(--ink)}
.nav a.active::after{content:"";position:absolute;left:0;right:0;bottom:-2px;height:2px;background:var(--accent);border-radius:2px}
@media(max-width:860px){
  .menu-toggle{display:flex}
  .nav{position:fixed;inset:66px 0 auto 0;flex-direction:column;align-items:flex-start;gap:0;
    background:var(--card);border-bottom:1px solid var(--line);padding:8px 22px 18px;
    transform:translateY(-8px);opacity:0;pointer-events:none;transition:.22s var(--ease);font-size:17px}
  .nav.open{transform:translateY(0);opacity:1;pointer-events:auto}
  .nav a{padding:11px 0;width:100%;border-bottom:1px solid var(--line)}
}

/* kicker / section labels */
.kicker{font-family:var(--sans);font-size:12px;font-weight:700;letter-spacing:.16em;
  text-transform:uppercase;color:var(--accent);margin:0 0 9px}
.section-head{display:flex;align-items:baseline;justify-content:space-between;
  border-bottom:2px solid var(--ink);padding-bottom:8px;margin:54px 0 26px}
.section-head h2{font-family:var(--sans);font-size:15px;font-weight:800;letter-spacing:.12em;
  text-transform:uppercase;margin:0}
.section-head a{font-size:13px;font-weight:600;color:var(--muted)}

/* hero / lead */
.lead{display:grid;grid-template-columns:1.5fr 1fr;gap:42px;padding:48px 0 8px}
@media(max-width:820px){.lead{grid-template-columns:1fr;gap:30px;padding:30px 0 0}}
.lead-main .kicker{color:var(--warm)}
.lead-main h1{font-family:var(--serif);font-size:clamp(30px,4.6vw,50px);line-height:1.07;
  letter-spacing:-.02em;margin:.1em 0 .35em}
.lead-main h1 a{color:var(--ink)}
.lead-main p{font-size:19px;color:var(--muted);margin:0 0 14px;max-width:38ch}
.byline{font-size:13px;color:var(--muted);letter-spacing:.02em}
.byline b{color:var(--ink);font-weight:600}
.lead-side{display:flex;flex-direction:column;gap:20px;border-left:1px solid var(--line);padding-left:26px}
@media(max-width:820px){.lead-side{border-left:0;padding-left:0;border-top:1px solid var(--line);padding-top:22px}}
.lead-side article h3{font-family:var(--serif);font-size:20px;line-height:1.18;margin:.15em 0 .3em}
.lead-side article h3 a{color:var(--ink)}
.lead-side article p{margin:0;font-size:14.5px;color:var(--muted)}

/* card grid */
.grid{display:grid;grid-template-columns:repeat(3,1fr);gap:26px}
@media(max-width:820px){.grid{grid-template-columns:1fr 1fr}}
@media(max-width:560px){.grid{grid-template-columns:1fr}}
.card{background:var(--card);border:1px solid var(--line);border-radius:14px;
  overflow:hidden;display:flex;flex-direction:column;transition:transform .15s,box-shadow .15s}
.card:hover{transform:translateY(-3px);box-shadow:0 14px 34px -18px rgba(19,32,28,.4)}
.card .thumb{aspect-ratio:16/9;background:linear-gradient(135deg,#e8f3ec,#d6ebe0)}
.card .body{padding:17px 18px 20px;display:flex;flex-direction:column;flex:1}
.tag{align-self:flex-start;font-size:11px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;
  color:var(--accent);margin-bottom:9px}
.card h3{font-family:var(--serif);font-size:20px;line-height:1.2;margin:0 0 9px}
.card h3 a{color:var(--ink)}
.card p{margin:0 0 14px;font-size:14.5px;color:var(--muted)}
.card .meta{margin-top:auto;font-size:12.5px;color:var(--muted)}

/* article page */
.article{max-width:720px;margin:0 auto;padding:18px 0 10px}
.article .kicker{color:var(--warm)}
.article h1{font-family:var(--serif);font-size:clamp(28px,4.4vw,44px);line-height:1.1;
  letter-spacing:-.02em;margin:.1em 0 .4em}
.article .standfirst{font-size:20px;color:var(--muted);line-height:1.5;margin:0 0 22px}
.article .meta{display:flex;gap:14px;align-items:center;font-size:13.5px;color:var(--muted);
  border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:13px 0;margin-bottom:30px}
.article .meta b{color:var(--ink)}
.article-body{font-family:var(--serif);font-size:19.5px;line-height:1.72}
.article-body p{margin:0 0 1.15em}
.article-body h2{font-family:var(--sans);font-size:22px;letter-spacing:-.01em;margin:1.6em 0 .5em}
.article-body blockquote{margin:1.4em 0;padding:4px 0 4px 22px;border-left:3px solid var(--accent);
  font-style:italic;color:var(--ink)}
.article-body a{border-bottom:1px solid rgba(31,138,91,.35)}
.article-body a:hover{text-decoration:none;border-bottom-color:var(--accent)}
.disclaimer{background:#f3f8f5;border:1px solid var(--line);border-radius:12px;padding:16px 18px;
  font-family:var(--sans);font-size:13.5px;color:var(--muted);margin:34px 0}

/* newsletter */
.signup{background:linear-gradient(135deg,var(--accent-dk),#0c4a31);color:#eafaf2;border-radius:18px;
  padding:38px 34px;margin:56px 0;display:grid;grid-template-columns:1.3fr 1fr;gap:26px;align-items:center}
@media(max-width:720px){.signup{grid-template-columns:1fr;padding:28px 22px}}
.signup h2{font-family:var(--serif);font-size:27px;margin:0 0 8px;color:#fff}
.signup p{margin:0;color:#bfe6d2;font-size:15px}
.signup form{display:flex;gap:9px;flex-wrap:wrap}
.signup .fine,.signup .signup-msg,.signup .consent{flex-basis:100%}
.signup .consent{display:flex;gap:9px;align-items:flex-start;margin-top:10px;font-size:12.5px;color:#bfe6d2;cursor:pointer;line-height:1.45}
.signup .consent input{flex:0 0 auto;width:16px;height:16px;margin-top:1px;accent-color:#c97b3f;cursor:pointer}
.signup .signup-msg{margin-top:8px;font-size:13px;font-weight:600;min-height:1px}
.signup .signup-msg.ok{color:#9be8c2}
.signup .signup-msg.err{color:#ffc7b0}
.signup input{flex:1;border:0;border-radius:10px;padding:13px 14px;font-size:15px;font-family:var(--sans)}
.signup button{border:0;border-radius:10px;padding:13px 18px;font-weight:700;font-size:15px;
  background:var(--warm);color:#fff;cursor:pointer}
.signup button:hover{background:#b3672f}
.signup .fine{margin-top:10px;font-size:12px;color:#9fd3ba}

/* breadcrumbs */
.crumbs{font-size:13px;color:var(--muted);padding:18px 0 0;letter-spacing:.02em}
.crumbs a{color:var(--muted)}
.crumbs a:hover{color:var(--accent-dk)}

/* section landing hero */
.sec-hero{padding:26px 0 6px;border-bottom:2px solid var(--ink);margin-bottom:30px}
.sec-hero h1{font-family:var(--serif);font-size:clamp(30px,4.4vw,46px);letter-spacing:-.02em;margin:.1em 0 .25em}
.sec-hero .standfirst{font-size:19px;color:var(--muted);margin:0;max-width:62ch}
.muted{color:var(--muted)}

/* card thumbnail accents per section */
.thumb.t-therapeutics{background:linear-gradient(135deg,#dCEbe0,#bfe0cf)}
.thumb.t-science{background:linear-gradient(135deg,#e8f3ec,#d6ebe0)}
.thumb.t-gut-brain{background:linear-gradient(135deg,#e7eef6,#d6e2f0)}
.thumb.t-industry{background:linear-gradient(135deg,#f6efe4,#ecdfca)}
.thumb.t-diagnostics{background:linear-gradient(135deg,#eef0f3,#dfe3ea)}


/* sources */
.sources{margin:30px 0;font-family:var(--sans)}
.sources h2{font-size:14px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);margin:0 0 10px}
.sources ol{margin:0;padding-left:20px}
.sources li{font-size:14px;color:var(--muted);margin-bottom:7px}

/* related */
.related{margin:46px 0 10px}
.related h2{font-family:var(--sans);font-size:15px;font-weight:800;letter-spacing:.1em;text-transform:uppercase;
  border-bottom:2px solid var(--ink);padding-bottom:8px;margin:0 0 22px}
.backlink{font-size:14px;color:var(--muted);margin-top:30px}
.foot .disclose{font-size:12.5px;color:var(--warm);margin-top:10px}

/* footer */
footer{border-top:1px solid var(--line);background:var(--card);margin-top:60px;padding:40px 0 54px}
.foot{display:flex;justify-content:space-between;gap:30px;flex-wrap:wrap}
.foot .col h4{font-size:12px;letter-spacing:.13em;text-transform:uppercase;color:var(--muted);margin:0 0 12px}
.foot .col a{display:block;color:var(--ink);font-size:14.5px;margin-bottom:8px}
.foot .about{max-width:330px;color:var(--muted);font-size:14px}
.foot .about .brand{font-size:18px;margin-bottom:10px}
.legal{margin-top:30px;border-top:1px solid var(--line);padding-top:18px;font-size:12.5px;color:var(--muted);
  display:flex;justify-content:space-between;gap:14px;flex-wrap:wrap}

/* ============================================================
   CUTTING-EDGE LAYER — motion, glow, theme-aware polish (v3)
   ============================================================ */

/* animated aurora behind the hero */
.lead{position:relative}
.lead::before{content:"";position:absolute;inset:-60px -40px auto -40px;height:380px;z-index:-1;
  background:
    radial-gradient(40% 60% at 18% 20%,color-mix(in oklab,var(--accent) 28%,transparent),transparent 70%),
    radial-gradient(38% 55% at 82% 10%,color-mix(in oklab,var(--warm) 22%,transparent),transparent 70%),
    radial-gradient(50% 70% at 60% 90%,color-mix(in oklab,var(--accent) 16%,transparent),transparent 70%);
  filter:blur(36px);opacity:.8;animation:drift 18s ease-in-out infinite alternate}
@keyframes drift{from{transform:translate3d(0,0,0) scale(1)}to{transform:translate3d(0,-14px,0) scale(1.06)}}

.lead-main h1{font-weight:600;letter-spacing:-.025em}
.lead-main h1 a{background:linear-gradient(transparent 70%,color-mix(in oklab,var(--accent) 30%,transparent) 0);transition:background-size .3s}

/* live dateline chip */
.live-chip{display:inline-flex;align-items:center;gap:7px;font-family:var(--sans);font-size:11px;font-weight:700;
  letter-spacing:.14em;text-transform:uppercase;color:var(--accent-dk);background:var(--bg2);
  border:1px solid var(--line);padding:5px 11px;border-radius:100px;margin-bottom:14px}
.live-chip .pulse{width:8px;height:8px;border-radius:50%;background:var(--accent);box-shadow:0 0 0 0 var(--accent);animation:pulse 2.4s infinite}
@keyframes pulse{0%{box-shadow:0 0 0 0 color-mix(in oklab,var(--accent) 70%,transparent)}70%{box-shadow:0 0 0 10px transparent}100%{box-shadow:0 0 0 0 transparent}}

/* cards — glass + lift + accent edge */
.card{background:var(--card);border:1px solid var(--line);border-radius:var(--r);overflow:hidden;
  display:flex;flex-direction:column;position:relative;transition:transform .25s var(--ease),box-shadow .25s var(--ease),border-color .25s}
.card::after{content:"";position:absolute;inset:0;border-radius:var(--r);pointer-events:none;
  box-shadow:inset 0 0 0 1px transparent;transition:.25s}
.card:hover{transform:translateY(-4px);box-shadow:0 22px 50px -26px var(--shadow);border-color:color-mix(in oklab,var(--accent) 45%,var(--line))}
.card h3 a{background-image:linear-gradient(var(--accent),var(--accent));background-size:0 2px;background-repeat:no-repeat;background-position:0 100%;transition:background-size .3s var(--ease)}
.card:hover h3 a{background-size:100% 2px}
.card .thumb{position:relative;overflow:hidden}
.card .thumb::after{content:"";position:absolute;inset:0;background:radial-gradient(120% 120% at 0 0,transparent 40%,color-mix(in oklab,var(--accent) 16%,transparent))}
[data-theme="dark"] .thumb{filter:saturate(.7) brightness(.5)}

/* scroll reveal */
[data-reveal]{opacity:0;transform:translateY(16px);transition:opacity .6s var(--ease),transform .6s var(--ease)}
[data-reveal].in{opacity:1;transform:none}

/* article body refinements in dark */
.article-body a{color:var(--accent-dk)}
[data-theme="dark"] .article-body a{border-bottom-color:color-mix(in oklab,var(--accent) 50%,transparent)}
.section-head{border-bottom-color:color-mix(in oklab,var(--ink) 30%,var(--line))}

/* tidy focus states for a11y */
a:focus-visible,button:focus-visible,input:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:4px}

@media(prefers-reduced-motion:reduce){
  *{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important;scroll-behavior:auto!important}
  [data-reveal]{opacity:1;transform:none}
}

/* FAQ accordion */
.faq{margin:36px 0}
.faq h2{font-family:var(--sans);font-size:15px;font-weight:800;letter-spacing:.1em;text-transform:uppercase;
  border-bottom:2px solid var(--ink);padding-bottom:8px;margin:0 0 14px}
.faq-item{border:1px solid var(--line);border-radius:10px;margin-bottom:10px;background:var(--card);overflow:hidden}
.faq-item summary{cursor:pointer;padding:15px 18px;font-family:var(--sans);font-weight:650;font-size:16px;list-style:none;display:flex;justify-content:space-between;gap:12px}
.faq-item summary::-webkit-details-marker{display:none}
.faq-item summary::after{content:"+";color:var(--accent);font-weight:700;transition:transform .2s}
.faq-item[open] summary::after{content:"–"}
.faq-item div{padding:0 18px 16px;font-family:var(--sans);font-size:15.5px;color:var(--muted);line-height:1.6}
.faq-item div p{margin:.2em 0 .6em}

/* ---- Exit-intent quiz modal ---- */
.xq-overlay{position:fixed;inset:0;z-index:9999;background:rgba(6,12,9,.72);backdrop-filter:blur(3px);
  display:none;align-items:center;justify-content:center;padding:20px}
.xq-overlay.show{display:flex;animation:xqFade .2s ease}
@keyframes xqFade{from{opacity:0}to{opacity:1}}
.xq-modal{position:relative;width:100%;max-width:460px;background:#0f1714;border:1px solid #24332c;
  border-radius:18px;padding:30px 28px;box-shadow:0 24px 70px rgba(0,0,0,.5);color:#e8f1ec;
  font-family:var(--sans,sans-serif)}
.xq-close{position:absolute;top:12px;right:14px;background:none;border:0;color:#7f998d;font-size:26px;
  line-height:1;cursor:pointer}
.xq-close:hover{color:#e8f1ec}
.xq-kicker{margin:0 0 6px;font-size:12px;text-transform:uppercase;letter-spacing:.6px;color:#39d98a;font-weight:700}
.xq-modal h2{font-family:var(--serif,Georgia,serif);font-size:23px;line-height:1.25;margin:0 0 14px;color:#fff}
.xq-sub{color:#bcd2c7;font-size:14px;margin:0 0 16px}
.xq-prompt{font-size:14px;color:#cfe0d8;margin:0 0 12px;font-weight:600}
.xq-opts{display:grid;gap:9px}
.xq-opts button{text-align:left;padding:13px 15px;border-radius:11px;border:1px solid #2b3a32;
  background:#141d18;color:#e8f1ec;font-size:15px;cursor:pointer;transition:.12s}
.xq-opts button:hover{border-color:#39d98a;background:#17221c;transform:translateY(-1px)}
.xq-form{display:flex;flex-direction:column;gap:11px}
.xq-form input[type=email]{border:1px solid #2b3a32;border-radius:11px;padding:13px 14px;font-size:15px;
  background:#0c130f;color:#fff}
.xq-consent{display:flex;gap:9px;align-items:flex-start;font-size:12.5px;color:#bcd2c7;line-height:1.45;cursor:pointer}
.xq-consent input{flex:0 0 auto;width:16px;height:16px;margin-top:1px;accent-color:#c97b3f;cursor:pointer}
.xq-form button,.xq-cta{border:0;border-radius:11px;padding:14px 16px;font-weight:700;font-size:15px;
  background:#c97b3f;color:#1a1208;cursor:pointer;text-align:center;text-decoration:none;display:block}
.xq-form button:hover,.xq-cta:hover{background:#d98a4a}
.xq-msg{font-size:13px;font-weight:600;min-height:1px}
.xq-msg.err{color:#ffc7b0}
.xq-code{display:flex;gap:10px;align-items:stretch;margin:6px 0 16px}
.xq-code span{flex:1;font-family:ui-monospace,Menlo,monospace;font-size:20px;font-weight:700;letter-spacing:1px;
  background:#0c130f;border:1px dashed #39d98a;border-radius:11px;padding:13px 14px;color:#39d98a;text-align:center}
.xq-code button{border:1px solid #2b3a32;background:#141d18;color:#e8f1ec;border-radius:11px;padding:0 16px;cursor:pointer;font-size:13px;font-weight:600}
.xq-second{display:block;margin-top:10px;text-align:center;font-size:13px;font-weight:600;color:#9be8c2;text-decoration:none}
.xq-second:hover{text-decoration:underline}
.xq-fine{font-size:11.5px;color:#7f998d;margin:12px 0 0;text-align:center}
@media(max-width:520px){.xq-modal{padding:26px 20px}.xq-modal h2{font-size:20px}}
