@import url('https://fonts.googleapis.com/css2?family=Instrument+Serif:ital@0;1&family=IBM+Plex+Mono:wght@400;500&family=Inter:wght@400;500;600;700&display=swap');

/* ================= DESIGN TOKENS ================= */
:root{
  --ink:#08090f;
  --ink-2:#0f121b;
  --ink-3:#151827;
  --paper:#efebdf;
  --violet:#524aa8;
  --violet-bright:#8b80e8;
  --amber:#c99a5b;
  --gold:#d9b878;
  --cream-text:#e9e6da;
  --muted-on-dark:#83889a;
  --muted-on-light:#6b6558;
  --hair-dark:rgba(233,230,218,.11);
  --hair-light:rgba(10,13,20,.15);
  --radius:2px;
  --max:1160px;
}

/* ================= RESET ================= */
*{margin:0;padding:0;box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  background:var(--ink);
  color:var(--cream-text);
  font-family:'Inter',system-ui,sans-serif;
  line-height:1.5;
  -webkit-font-smoothing:antialiased;
}
@media (prefers-reduced-motion: reduce){ *{animation:none!important;transition:none!important;} }
a{color:inherit;text-decoration:none;}
img{max-width:100%;display:block;}
ul{list-style:none;}
button{font:inherit;cursor:pointer;background:none;border:none;color:inherit;}
.wrap{max-width:var(--max);margin:0 auto;padding:0 32px;}
@media (max-width:640px){ .wrap{padding:0 22px;} }
:focus-visible{outline:2px solid var(--violet-bright);outline-offset:3px;}
.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;}
.skip-link{
  position:absolute;left:16px;top:-60px;background:var(--gold);color:var(--ink);
  padding:10px 16px;font-size:.85rem;font-weight:600;z-index:100;transition:top .15s;
}
.skip-link:focus{top:16px;}

/* ================= TOP LINE ================= */
.top-line{height:2px;background:linear-gradient(90deg, transparent, var(--gold) 45%, var(--gold) 55%, transparent);}

/* ================= HEADER ================= */
header{
  position:sticky;top:0;z-index:30;
  background:rgba(8,9,15,.9);
  backdrop-filter:blur(10px);
  border-bottom:1px solid var(--hair-dark);
}
.headbar{display:flex;align-items:center;justify-content:space-between;height:76px;gap:24px;}
.mark{display:flex;align-items:center;gap:11px;font-family:'Instrument Serif',serif;font-style:italic;font-weight:400;font-size:1.35rem;color:var(--cream-text);letter-spacing:.01em;flex-shrink:0;}
.mark img{width:32px;height:32px;border-radius:50%;flex-shrink:0;}
nav.primary-nav{display:flex;align-items:center;gap:22px;font-size:.8rem;color:var(--muted-on-dark);letter-spacing:.02em;}
nav.primary-nav a{transition:color .15s;}
nav.primary-nav a:hover{color:var(--cream-text);}
nav.primary-nav .nav-item{position:relative;display:flex;align-items:center;padding:12px 0;}
nav.primary-nav .nav-item > a::after{content:'';display:inline-block;margin-left:5px;width:5px;height:5px;border-right:1px solid currentColor;border-bottom:1px solid currentColor;transform:translateY(-2px) rotate(45deg);opacity:.6;}
.nav-dropdown{
  position:absolute;top:100%;left:0;min-width:240px;
  background:var(--ink-2);border:1px solid var(--hair-dark);
  padding:8px 0;opacity:0;visibility:hidden;transform:translateY(4px);
  transition:opacity .15s,transform .15s,visibility .15s;z-index:40;
}
.nav-item:hover .nav-dropdown,
.nav-item:focus-within .nav-dropdown{opacity:1;visibility:visible;transform:translateY(0);}
.nav-dropdown a{display:block;padding:10px 18px;font-size:.8rem;color:var(--muted-on-dark);white-space:nowrap;}
.nav-dropdown a:hover{color:var(--cream-text);background:rgba(233,230,218,.04);}
.head-cta{
  border:1px solid var(--hair-dark);color:var(--cream-text);
  padding:10px 20px;font-size:.82rem;font-weight:500;letter-spacing:.02em;
  transition:border-color .15s,background .15s;white-space:nowrap;
}
.head-cta:hover{border-color:var(--gold);background:rgba(217,184,120,.06);}
.menu-toggle{
  display:none;color:var(--cream-text);font-size:1.3rem;
  background:none;border:1px solid var(--hair-dark);border-radius:2px;
  padding:6px 12px;line-height:1;cursor:pointer;flex-shrink:0;
}
.menu-toggle:hover{border-color:var(--gold);}
@media (max-width:860px){
  nav.primary-nav{display:none;}
  .head-cta{display:none;}
  .menu-toggle{display:block;}
}

/* ================= MOBILE NAV DRAWER ================= */
.mobile-nav{
  display:none;flex-direction:column;
  background:var(--ink-2);border-bottom:1px solid var(--hair-dark);
}
.mobile-nav.is-open{display:flex;}
.mobile-nav > a{
  padding:16px 22px;font-size:.95rem;color:var(--cream-text);
  border-top:1px solid var(--hair-dark);transition:background .15s;
}
.mobile-nav > :first-child{border-top:none;}
.mobile-nav > a:hover{background:rgba(233,230,218,.04);}
.mobile-nav a.mobile-cta{color:var(--gold);font-weight:600;}
.mobile-nav-group{border-top:1px solid var(--hair-dark);}
.mobile-nav-group summary{
  padding:16px 22px;font-size:.95rem;color:var(--cream-text);cursor:pointer;
  list-style:none;display:flex;justify-content:space-between;align-items:center;gap:12px;
  transition:background .15s,color .15s;
}
.mobile-nav-group summary::-webkit-details-marker{display:none;}
.mobile-nav-group summary:hover{background:rgba(233,230,218,.04);}
.mobile-nav-group summary .mn-caret{flex-shrink:0;color:var(--muted-on-dark);font-family:'IBM Plex Mono',monospace;transition:transform .2s;}
.mobile-nav-group[open] summary{color:var(--gold);}
.mobile-nav-group[open] summary .mn-caret{transform:rotate(45deg);color:var(--gold);}
.mobile-nav-group .mobile-sub{display:flex;flex-direction:column;padding-bottom:6px;background:rgba(0,0,0,.15);}
.mobile-nav-group .mobile-sub a{
  padding:12px 22px 12px 34px;font-size:.85rem;color:var(--muted-on-dark);
  border-top:1px solid var(--hair-dark);transition:background .15s,color .15s;
}
.mobile-nav-group .mobile-sub a:hover{background:rgba(233,230,218,.04);color:var(--cream-text);}
@media (min-width:861px){
  .mobile-nav{display:none!important;}
}

/* ================= HERO ================= */
.hero{padding:100px 0 0;}
.hero-top{max-width:660px;}
.doc-tag{
  font-family:'IBM Plex Mono',monospace;font-size:.7rem;letter-spacing:.05em;
  color:var(--muted-on-dark);border-bottom:1px solid var(--hair-dark);
  padding-bottom:16px;margin-bottom:36px;text-transform:uppercase;
}
.doc-tag b{color:var(--gold);font-weight:500;}
h1{
  font-family:'Instrument Serif',serif;font-weight:400;
  font-size:clamp(2.4rem,5.2vw,4.2rem);line-height:1.08;letter-spacing:-0.01em;
  max-width:20ch;
}
.hero-sub{margin-top:24px;font-size:1.06rem;color:#c3c0b3;max-width:50ch;line-height:1.65;}
.hero-ctas{display:flex;gap:14px;margin-top:38px;flex-wrap:wrap;}
.btn-primary{
  background:var(--cream-text);color:var(--ink);
  padding:14px 26px;font-size:.9rem;font-weight:500;letter-spacing:.01em;
  transition:background .15s,transform .15s;display:inline-block;
}
.btn-primary:hover{background:var(--gold);transform:translateY(-1px);}
.btn-ghost{
  padding:14px 24px;font-size:.9rem;font-weight:500;letter-spacing:.01em;
  border:1px solid var(--hair-dark);transition:border-color .15s;display:inline-block;
}
.btn-ghost:hover{border-color:var(--gold);}

/* ================= SECTION HEADERS ================= */
.eyebrow{
  font-family:'IBM Plex Mono',monospace;font-size:.72rem;color:var(--muted-on-dark);
  letter-spacing:.05em;text-transform:uppercase;margin-bottom:16px;
}
.eyebrow-light{color:var(--muted-on-light);}
h2{font-family:'Instrument Serif',serif;font-weight:400;font-size:clamp(1.9rem,3.4vw,2.7rem);line-height:1.15;}

/* ================= STEPS (Observe/Map/Prioritize/Validate) ================= */
.steps-section{padding:100px 0;border-top:1px solid var(--hair-dark);}
.steps-head{max-width:640px;margin-bottom:56px;}
.steps-head p{margin-top:16px;color:var(--muted-on-dark);font-size:1.02rem;line-height:1.65;max-width:52ch;}
.steps{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:0;}
@media (max-width:900px){ .steps{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:32px;} }
@media (max-width:560px){ .steps{grid-template-columns:minmax(0,1fr);} }
.step{padding:0 28px 0 0;border-right:1px solid var(--hair-dark);}
.step:last-child{border-right:none;padding-right:0;}
@media (max-width:900px){ .step{border-right:none;padding:0;} }
.step .num{font-family:'IBM Plex Mono',monospace;font-size:.72rem;color:var(--amber);}
.step h3{font-family:'Instrument Serif',serif;font-weight:400;font-size:1.35rem;margin-top:14px;}
.step p{margin-top:10px;color:var(--muted-on-dark);font-size:.9rem;line-height:1.6;}

/* ================= THESIS (light section) ================= */
.thesis{background:var(--paper);color:var(--ink);padding:100px 0;}
.thesis-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:64px;align-items:start;}
@media (max-width:900px){ .thesis-grid{grid-template-columns:minmax(0,1fr);gap:44px;} }
.thesis h2{max-width:14ch;}
.thesis-text p{font-size:1.02rem;line-height:1.72;color:#302c22;max-width:50ch;}
.thesis-text p + p{margin-top:16px;}
.thesis-cols{display:grid;grid-template-columns:minmax(0,1fr);gap:28px;}
.thesis-col{border-top:1px solid var(--hair-light);padding-top:20px;}
.thesis-col .tag{font-family:'IBM Plex Mono',monospace;font-size:.7rem;color:var(--muted-on-light);letter-spacing:.04em;text-transform:uppercase;}
.thesis-col h4{font-family:'Instrument Serif',serif;font-weight:400;font-size:1.25rem;margin-top:8px;}
.thesis-col p{margin-top:8px;color:#4a463b;font-size:.94rem;line-height:1.6;}

/* ================= MEDICINE COMPARISON ================= */
.compare{padding:104px 0;border-bottom:1px solid var(--hair-dark);}
.compare-head{max-width:640px;margin-bottom:48px;}
.compare-head p{margin-top:16px;color:var(--muted-on-dark);font-size:1.02rem;line-height:1.65;max-width:56ch;}
.compare-table{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);border-top:1px solid var(--hair-dark);}
@media (max-width:700px){ .compare-table{grid-template-columns:minmax(0,1fr);} }
.compare-col{padding:28px;}
.compare-col:first-child{border-right:1px solid var(--hair-dark);}
@media (max-width:700px){ .compare-col:first-child{border-right:none;border-bottom:1px solid var(--hair-dark);} }
.compare-col .tag{font-family:'IBM Plex Mono',monospace;font-size:.7rem;color:var(--muted-on-dark);letter-spacing:.04em;text-transform:uppercase;margin-bottom:18px;display:block;}
.compare-row{padding:14px 0;border-top:1px solid var(--hair-dark);font-size:.95rem;color:#c3c0b3;line-height:1.5;}
.compare-row:first-of-type{border-top:none;}
.compare-note{margin-top:20px;font-size:.78rem;color:var(--muted-on-dark);font-style:italic;}

/* ================= ASAP / SCKG TEASER ================= */
.sckg{padding:104px 0;border-bottom:1px solid var(--hair-dark);}
.sckg-grid{display:grid;grid-template-columns:minmax(0,.95fr) minmax(0,1.05fr);gap:56px;align-items:center;}
@media (max-width:900px){ .sckg-grid{grid-template-columns:minmax(0,1fr);gap:40px;} }
.sckg-text p{color:var(--muted-on-dark);font-size:.98rem;line-height:1.65;max-width:46ch;margin-top:16px;}
.sckg-text ul{margin-top:20px;display:flex;flex-direction:column;gap:10px;}
.sckg-text li{font-size:.92rem;color:#c3c0b3;padding-left:18px;position:relative;}
.sckg-text li::before{content:'—';position:absolute;left:0;color:var(--gold);}
.sckg-ctas{display:flex;gap:14px;margin-top:28px;flex-wrap:wrap;}
.sckg-diagram{display:flex;flex-direction:column;align-items:center;}
.sckg-svg{width:100%;max-width:440px;height:auto;}
.sckg-node{cursor:pointer;transition:transform .8s cubic-bezier(.22,.61,.36,1);}
.sckg-node:focus-visible .glyph-hex{stroke:var(--gold);}
.sckg-node:hover .glyph-hex{stroke-opacity:1;}
.glyph-hex{fill:none;stroke-width:1;stroke-opacity:.7;transition:stroke .3s ease;}
.glyph-bond{stroke-width:.8;opacity:.6;}
.glyph-core{transition:fill .3s ease;}
.sckg-node.is-focused .glyph-hex{stroke:var(--cream-text);stroke-width:1.3;}
.sckg-node.is-focused .glyph-core{fill:var(--cream-text)!important;}
.sckg-edge{stroke:#3a4054;stroke-width:.8;opacity:.5;transition:x1 .8s cubic-bezier(.22,.61,.36,1), y1 .8s cubic-bezier(.22,.61,.36,1), x2 .8s cubic-bezier(.22,.61,.36,1), y2 .8s cubic-bezier(.22,.61,.36,1);}
.sckg-hint{margin-top:14px;text-align:center;font-family:'IBM Plex Mono',monospace;font-size:.7rem;color:var(--muted-on-dark);}
.sckg-legend{margin-top:18px;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);column-gap:20px;row-gap:8px;justify-content:center;font-size:.82rem;color:#c3c0b3;}
.sckg-legend div{display:flex;align-items:center;gap:8px;}
.sckg-legend .dot{width:8px;height:8px;border-radius:50%;flex-shrink:0;}

/* ================= CAPABILITY STACK ================= */
.stack{background:var(--ink-2);padding:100px 0;border-top:1px solid var(--hair-dark);border-bottom:1px solid var(--hair-dark);}
.stack-head{max-width:640px;margin-bottom:48px;}
.stack-head p{margin-top:16px;color:var(--muted-on-dark);font-size:1.02rem;line-height:1.65;max-width:54ch;}
.stack-rows{border-top:1px solid var(--hair-dark);}
.stack-row{
  display:grid;grid-template-columns:60px minmax(0,1fr) minmax(0,2fr);gap:20px;align-items:baseline;
  padding:22px 0;border-bottom:1px solid var(--hair-dark);
}
@media (max-width:700px){ .stack-row{grid-template-columns:44px minmax(0,1fr);} .stack-row .sdesc{grid-column:2;margin-top:6px;} }
.stack-num{font-family:'IBM Plex Mono',monospace;color:var(--amber);font-size:.85rem;}
.stack-name{font-family:'Instrument Serif',serif;font-size:1.2rem;}
.sdesc{color:var(--muted-on-dark);font-size:.9rem;line-height:1.5;}

/* ================= FOUNDER ================= */
.founder{padding:104px 0;border-bottom:1px solid var(--hair-dark);}
.founder-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.4fr);gap:56px;align-items:center;}
@media (max-width:820px){ .founder-grid{grid-template-columns:minmax(0,1fr);gap:32px;} }
.founder-creds{display:flex;flex-direction:column;gap:16px;}
.founder-cred{border-top:1px solid var(--hair-dark);padding-top:14px;font-size:.88rem;color:var(--muted-on-dark);}
.founder-cred b{color:var(--cream-text);font-weight:500;}
.founder-text p{color:var(--muted-on-dark);font-size:1.02rem;line-height:1.7;max-width:52ch;}
.founder-text p + p{margin-top:14px;}

/* ================= INVESTOR VAULT ================= */
.vault{padding:104px 0;text-align:center;border-bottom:1px solid var(--hair-dark);}
.vault-icon{width:44px;height:44px;margin:0 auto 24px;color:var(--gold);}
.vault h2{max-width:22ch;margin:0 auto;}
.vault p{margin-top:16px;color:var(--muted-on-dark);max-width:48ch;margin-left:auto;margin-right:auto;font-size:.98rem;line-height:1.6;}
.vault .btn-ghost{margin-top:28px;}

/* ================= CLOSE / CONTACT ================= */
.close{padding:120px 0;text-align:center;}
.close h2{font-style:italic;max-width:19ch;margin:0 auto;line-height:1.22;}
.close p{margin-top:18px;color:var(--muted-on-dark);font-size:1rem;}
.close .btn-primary{margin-top:32px;}

/* ================= FOOTER ================= */
footer{padding:34px 0;}
.foot-top{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(0,1fr) minmax(0,1fr) minmax(0,1fr);gap:32px;padding-bottom:36px;border-bottom:1px solid var(--hair-dark);margin-bottom:24px;}
@media (max-width:820px){ .foot-top{grid-template-columns:minmax(0,1fr) minmax(0,1fr);} }
@media (max-width:520px){ .foot-top{grid-template-columns:minmax(0,1fr);} }
.foot-brand p{margin-top:14px;color:var(--muted-on-dark);font-size:.86rem;line-height:1.6;max-width:36ch;}
.foot-col h5{font-family:'IBM Plex Mono',monospace;font-size:.7rem;color:var(--muted-on-dark);text-transform:uppercase;letter-spacing:.04em;margin-bottom:14px;}
.foot-col a{display:block;font-size:.86rem;color:#c3c0b3;padding:4px 0;transition:color .15s;}
.foot-col a:hover{color:var(--cream-text);}
.foot-row{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:14px;}
.foot-row .mark{font-size:1rem;}
.foot-social{font-size:.82rem;color:var(--muted-on-dark);letter-spacing:.02em;transition:color .15s;}
.foot-social:hover{color:var(--gold);}
.foot-fine{margin-top:16px;font-size:.75rem;color:#5c6070;line-height:1.65;}

/* ================= INSIGHTS / BLOG ================= */
.insights-section{padding:104px 0;border-bottom:1px solid var(--hair-dark);}
.insights-head{display:flex;justify-content:space-between;align-items:flex-end;gap:32px;margin-bottom:48px;flex-wrap:wrap;}
.insights-head p{margin-top:16px;color:var(--muted-on-dark);max-width:44ch;font-size:.98rem;line-height:1.6;}
.post-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0;border-top:1px solid var(--hair-dark);}
@media (max-width:820px){ .post-grid{grid-template-columns:minmax(0,1fr);} }
.post-card{padding:28px 28px 0 0;border-right:1px solid var(--hair-dark);}
.post-card:last-child{border-right:none;padding-right:0;}
@media (max-width:820px){ .post-card{border-right:none;border-bottom:1px solid var(--hair-dark);padding:28px 0;} .post-card:first-child{padding-top:28px;} }
.post-card .post-meta{font-family:'IBM Plex Mono',monospace;font-size:.7rem;color:var(--amber);letter-spacing:.03em;text-transform:uppercase;}
.post-card h3{font-family:'Instrument Serif',serif;font-weight:400;font-size:1.4rem;margin-top:14px;line-height:1.25;}
.post-card p{margin-top:12px;color:var(--muted-on-dark);font-size:.9rem;line-height:1.6;}
.post-card .read-more{display:inline-block;margin-top:16px;font-size:.82rem;color:var(--gold);}

.insights-list{border-top:1px solid var(--hair-dark);}
.insights-row{display:grid;grid-template-columns:140px minmax(0,1fr);gap:28px;padding:32px 0;border-bottom:1px solid var(--hair-dark);align-items:baseline;}
@media (max-width:640px){ .insights-row{grid-template-columns:minmax(0,1fr);gap:8px;} }
.insights-row .post-meta{font-family:'IBM Plex Mono',monospace;font-size:.72rem;color:var(--muted-on-dark);}
.insights-row h3{font-family:'Instrument Serif',serif;font-weight:400;font-size:1.5rem;}
.insights-row p{margin-top:10px;color:var(--muted-on-dark);font-size:.94rem;line-height:1.6;max-width:60ch;}
.insights-row .read-more{display:inline-block;margin-top:12px;font-size:.82rem;color:var(--gold);}

/* ---- article page ---- */
.article-hero{padding:80px 0 48px;border-bottom:1px solid var(--hair-dark);}
.article-hero .post-meta{font-family:'IBM Plex Mono',monospace;font-size:.72rem;color:var(--amber);letter-spacing:.03em;text-transform:uppercase;}
.article-hero h1{margin-top:18px;max-width:22ch;}
.article-hero .byline{margin-top:20px;color:var(--muted-on-dark);font-size:.9rem;}
.article-body{padding:64px 0;max-width:680px;margin:0 auto;}
.article-body p{font-size:1.05rem;line-height:1.78;color:#c3c0b3;}
.article-body p + p{margin-top:20px;}
.article-body h2{font-size:1.6rem;margin-top:52px;margin-bottom:18px;}
.article-body ul{margin-top:16px;display:flex;flex-direction:column;gap:10px;}
.article-body li{font-size:1rem;color:#c3c0b3;padding-left:20px;position:relative;line-height:1.6;}
.article-body li::before{content:'—';position:absolute;left:0;color:var(--gold);}
.article-disclaimer{margin-top:56px;padding-top:24px;border-top:1px solid var(--hair-dark);font-size:.82rem;color:var(--muted-on-dark);line-height:1.7;font-style:italic;}
.article-back{display:inline-block;margin-top:40px;font-size:.85rem;color:var(--muted-on-dark);}
.article-back:hover{color:var(--cream-text);}

/* ================= HUB PAGES (About/Technologies/Science) ================= */
.hub-hero{padding:100px 0 56px;}
.hub-hero .doc-tag{margin-bottom:28px;}
.hub-nested-cta{
  margin-top:44px;padding:32px;border:1px solid var(--hair-dark);
  display:flex;justify-content:space-between;align-items:center;gap:24px;flex-wrap:wrap;
}
.hub-nested-cta h4{font-family:'Instrument Serif',serif;font-weight:400;font-size:1.3rem;}
.hub-nested-cta p{margin-top:6px;color:var(--muted-on-dark);font-size:.9rem;max-width:44ch;}

/* ================= FAQ ================= */
.faq-list{max-width:760px;margin:0 auto;padding:0 0 64px;display:flex;flex-direction:column;}
.faq-item{border-bottom:1px solid var(--hair-dark);}
.faq-item:first-child{border-top:1px solid var(--hair-dark);}
.faq-item summary{
  list-style:none;cursor:pointer;padding:26px 4px;
  display:flex;align-items:center;justify-content:space-between;gap:24px;
  font-family:'Instrument Serif',serif;font-size:1.2rem;font-weight:400;color:var(--cream-text);
}
.faq-item summary::-webkit-details-marker{display:none;}
.faq-item summary:hover{color:var(--gold);}
.faq-item summary .faq-icon{flex-shrink:0;font-size:1.1rem;color:var(--muted-on-dark);transition:transform .2s;font-family:'IBM Plex Mono',monospace;}
.faq-item[open] summary .faq-icon{transform:rotate(45deg);color:var(--gold);}
.faq-item[open] summary{color:var(--gold);}
.faq-item .faq-answer{padding:0 4px 28px;max-width:64ch;}
.faq-item .faq-answer p{font-size:1rem;line-height:1.75;color:#c3c0b3;}

/* ================= PRESS ================= */
.press-empty{
  max-width:640px;margin:0 auto;padding:32px 0 96px;text-align:center;
}
.press-empty p{font-size:1rem;line-height:1.75;color:var(--muted-on-dark);}
.press-empty p + p{margin-top:14px;}

/* ================= FOOTER SITEMAP ================= */
.foot-top.sitemap{grid-template-columns:minmax(0,1.2fr) minmax(0,1fr) minmax(0,1fr) minmax(0,1fr);}
@media (max-width:980px){ .foot-top.sitemap{grid-template-columns:minmax(0,1fr) minmax(0,1fr);} }
@media (max-width:600px){ .foot-top.sitemap{grid-template-columns:minmax(0,1fr);} }

/* ================= NEWSLETTER + CONTACT ================= */
.newsletter{background:var(--ink-2);padding:96px 0;border-top:1px solid var(--hair-dark);border-bottom:1px solid var(--hair-dark);}
.newsletter-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:64px;align-items:start;}
@media (max-width:860px){ .newsletter-grid{grid-template-columns:minmax(0,1fr);gap:48px;} }
.newsletter h2{max-width:16ch;}
.newsletter-head p{margin-top:16px;color:var(--muted-on-dark);font-size:.98rem;line-height:1.65;max-width:40ch;}
.form-row{display:flex;gap:0;border:1px solid var(--hair-dark);max-width:440px;width:100%;}
.form-row input[type="email"],.form-row input[type="text"]{
  flex:1;min-width:0;background:transparent;border:none;padding:14px 16px;color:var(--cream-text);font-size:.92rem;font-family:'Inter',sans-serif;
}
.form-row input::placeholder{color:var(--muted-on-dark);}
.form-row input:focus{outline:none;}
.form-row button{
  background:var(--gold);color:var(--ink);border:none;padding:14px 22px;font-size:.85rem;font-weight:600;
  letter-spacing:.02em;transition:background .15s;white-space:nowrap;flex-shrink:0;
}
.form-row button:hover{background:var(--cream-text);}
.form-note{margin-top:12px;font-size:.76rem;color:var(--muted-on-dark);max-width:44ch;line-height:1.6;}
.contact-form{display:flex;flex-direction:column;gap:14px;max-width:460px;}
.contact-form label{font-family:'IBM Plex Mono',monospace;font-size:.7rem;color:var(--muted-on-dark);text-transform:uppercase;letter-spacing:.04em;}
.contact-form input,.contact-form textarea{
  background:transparent;border:1px solid var(--hair-dark);padding:12px 14px;color:var(--cream-text);
  font-size:.92rem;font-family:'Inter',sans-serif;width:100%;
}
.contact-form textarea{resize:vertical;min-height:110px;}
.contact-form input:focus,.contact-form textarea:focus{outline:none;border-color:var(--gold);}
.contact-form button{
  align-self:flex-start;background:var(--cream-text);color:var(--ink);border:none;padding:13px 26px;
  font-size:.88rem;font-weight:600;letter-spacing:.01em;transition:background .15s;margin-top:4px;
}
.contact-form button:hover{background:var(--gold);}

/* ================= POINCARE HERO FEATURE ================= */
.poincare-feature{padding:0 0 104px;}
.poincare-stage{position:relative;border:1px solid var(--hair-dark);background:radial-gradient(circle at center, rgba(139,128,232,.06), transparent 70%);}
.poincare-stage svg{width:100%;height:auto;display:block;}
.poincare-cta-row{display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap;margin-top:20px;}
.poincare-hint{font-family:'IBM Plex Mono',monospace;font-size:.72rem;color:var(--muted-on-dark);}
@keyframes poincareIn{from{opacity:0;}to{opacity:1;}}
.p-node{cursor:pointer;animation:poincareIn .5s ease both;}
.p-node .hit{fill:transparent;}
.p-node circle.core{transition:r .2s ease, fill .2s ease;}
.p-node:hover circle.core{r:7;}
.p-node text{font-family:'IBM Plex Mono',monospace;font-size:9px;fill:var(--cream-text);opacity:0;transition:opacity .2s;pointer-events:none;}
.p-node:hover text{opacity:1;}
.p-edge{stroke:#454c63;stroke-width:.8;opacity:.55;}

/* ================= POINCARE: connection highlighting + recenter ================= */
.p-node{transition:opacity .3s ease;}
.p-node.dimmed circle.core{opacity:.22;}
.p-node.dimmed text{display:none;}
.p-node.is-active circle.core{stroke:var(--gold);stroke-width:1.5;}
.p-node.is-active text{opacity:1;fill:var(--gold);}
.p-edge{transition:opacity .3s ease, stroke .3s ease, stroke-width .3s ease;}
.p-edge.dimmed{opacity:.08;}
.p-edge.active{stroke:var(--gold);stroke-width:1.8;opacity:1;}
.poincare-reset{
  font-family:'IBM Plex Mono',monospace;font-size:.72rem;color:var(--muted-on-dark);
  border:1px solid var(--hair-dark);padding:8px 14px;background:transparent;
  transition:border-color .15s,color .15s;cursor:pointer;
}
.poincare-reset:hover{border-color:var(--gold);color:var(--cream-text);}
.poincare-reset[hidden]{display:none;}

/* ================= POINCARE: edge-transform toggle ================= */
.poincare-transform{
  font-family:'IBM Plex Mono',monospace;font-size:.72rem;color:var(--muted-on-dark);
  border:1px solid var(--hair-dark);padding:8px 14px;background:transparent;
  transition:border-color .15s,color .15s;cursor:pointer;
}
.poincare-transform:hover{border-color:var(--gold);color:var(--cream-text);}
.poincare-transform[aria-pressed="true"]{border-color:var(--gold);color:var(--gold);background:rgba(217,184,120,.06);}
.poincare-controls{display:flex;gap:10px;flex-wrap:wrap;}

/* Block clicks on nodes while a Poincare animation is in flight — prevents
   clicks from landing on stale (mid-transition) coordinates. */
svg.is-animating .p-node{pointer-events:none;}

/* ================= EXPLORER 3D: dashboard-style Poincare ball ================= */
.exp-wrap{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:18px;align-items:start;}
@media (max-width:880px){ .exp-wrap{grid-template-columns:minmax(0,1fr);} }

.exp-stage{background:var(--ink-2);border:1px solid var(--hair-dark);border-radius:3px;position:relative;overflow:hidden;}
.exp-toggle{display:flex;border-bottom:1px solid var(--hair-dark);}
.exp-toggle button{
  flex:1;background:none;border:0;color:var(--muted-on-dark);padding:11px 8px;cursor:pointer;
  font-family:'IBM Plex Mono',monospace;font-size:10.5px;letter-spacing:.12em;text-transform:uppercase;
  border-bottom:2px solid transparent;transition:color .18s,border-color .18s;
}
.exp-toggle button:hover{color:var(--cream-text);}
.exp-toggle button[aria-pressed="true"]{color:var(--gold);border-bottom-color:var(--gold);}
.exp-canvas{display:block;width:100%;height:auto;touch-action:none;cursor:grab;}
.exp-canvas:active{cursor:grabbing;}
.exp-caption{padding:10px 14px;font-family:'IBM Plex Mono',monospace;font-size:10.5px;color:var(--muted-on-dark);border-top:1px solid var(--hair-dark);}

.exp-card{background:var(--ink-2);border:1px solid var(--hair-dark);border-radius:3px;padding:15px 16px;margin-bottom:14px;}
.exp-card h6{font-family:'IBM Plex Mono',monospace;font-size:10.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted-on-dark);font-weight:600;margin-bottom:12px;}

.exp-metric{display:flex;justify-content:space-between;align-items:baseline;padding:7px 0;border-bottom:1px solid var(--hair-dark);}
.exp-metric:last-child{border-bottom:0;}
.exp-metric .k{font-size:12px;color:var(--muted-on-dark);}
.exp-metric .v{font-size:15px;font-weight:600;color:var(--cream-text);font-family:'IBM Plex Mono',monospace;}

.exp-legend{display:flex;flex-direction:column;gap:2px;}
.exp-lg{display:flex;align-items:center;gap:9px;padding:4px 0;font-size:12px;color:var(--cream-text);}
.exp-dot{width:9px;height:9px;border-radius:50%;flex:0 0 auto;}
.exp-lg .n{color:var(--muted-on-dark);margin-left:auto;font-size:11px;font-family:'IBM Plex Mono',monospace;}

.exp-note{font-size:11.5px;color:var(--muted-on-dark);line-height:1.55;margin-top:11px;padding-top:11px;border-top:1px solid var(--hair-dark);}

#expSel{min-height:56px;}
#expSel .id{font-size:15px;font-weight:650;color:var(--cream-text);}
#expSel .tr{font-size:10px;letter-spacing:.12em;text-transform:uppercase;margin-top:3px;color:var(--gold);font-family:'IBM Plex Mono',monospace;}
#expSel .nb{font-size:11.5px;color:var(--muted-on-dark);margin-top:9px;line-height:1.6;}
#expSel .ph{color:var(--muted-on-dark);font-size:12.5px;}

.exp-polar{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:12px;margin-top:4px;}
.exp-pcell{text-align:center;}
.exp-pcell canvas{border:1px solid var(--hair-dark);border-radius:2px;background:var(--ink);width:100%;height:auto;}
.exp-pcell .lab{font-size:9.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted-on-dark);margin-top:7px;font-family:'IBM Plex Mono',monospace;}
