/* ============================================================
   Build My Longevity — shared design system
   One stylesheet for every page (homepage, compare, thought
   leaders, longevity tech, find-your-test, privacy policy).
   Tokens and component patterns are unchanged from the three
   proven reference artifacts — see /reference/README.md.
   ============================================================ */

@import url('https://fonts.googleapis.com/css2?family=Fraunces:opsz,wght@9..144,440;9..144,560;9..144,650&family=Archivo:wght@400;500;600;700&family=IBM+Plex+Mono:wght@400;500;600&display=swap');

:root{
  color-scheme: light;
  --bg:#f6f7f5; --surface:#ffffff; --surface-2:#eef1ee;
  --ink:#16211d; --ink-soft:#4b5951; --ink-faint:#8a958e;
  --accent:#1f6f52; --accent-soft:#e4efe8;
  --stamp:#8f631f; --stamp-soft:#f7ecd9;
  --line:#dde3de;
  --flag:#a5432f; --flag-soft:#f6e3de;
  --shadow: 0 1px 2px rgba(22,33,29,.05), 0 8px 20px -12px rgba(22,33,29,.18);
}
@media (prefers-color-scheme: dark){
  :root:not([data-theme="light"]){
    --bg:#121712; --surface:#1a221c; --surface-2:#212b23;
    --ink:#e9ede8; --ink-soft:#a7b6ad; --ink-faint:#6d7a72;
    --accent:#5bcf95; --accent-soft:#1e3226;
    --stamp:#e0a75d; --stamp-soft:#3a2d18;
    --line:#2b362f;
    --flag:#e28d78; --flag-soft:#3a2420;
    --shadow: 0 1px 2px rgba(0,0,0,.3), 0 8px 24px -12px rgba(0,0,0,.5);
  }
}
:root[data-theme="dark"]{
  --bg:#121712; --surface:#1a221c; --surface-2:#212b23;
  --ink:#e9ede8; --ink-soft:#a7b6ad; --ink-faint:#6d7a72;
  --accent:#5bcf95; --accent-soft:#1e3226;
  --stamp:#e0a75d; --stamp-soft:#3a2d18;
  --line:#2b362f;
  --flag:#e28d78; --flag-soft:#3a2420;
  --shadow: 0 1px 2px rgba(0,0,0,.3), 0 8px 24px -12px rgba(0,0,0,.5);
}

*{box-sizing:border-box;}
html{background:var(--bg);}
body{
  margin:0; background:var(--bg); color:var(--ink);
  font-family:"Archivo",system-ui,sans-serif; line-height:1.55;
}
img{max-width:100%;}
[hidden]{display:none!important;}
.wrap{max-width:1080px; margin:0 auto; padding:0 24px 96px;}
.mono{font-family:"IBM Plex Mono",ui-monospace,monospace; font-variant-numeric:tabular-nums;}
h1,h2,h3{font-family:"Fraunces",Georgia,serif; text-wrap:balance; margin:0;}
a{color:var(--accent);}
p{margin:0;}

.skip-link{
  position:absolute; left:12px; top:-48px; background:var(--accent); color:#fff;
  padding:10px 16px; border-radius:6px; z-index:100; text-decoration:none; font-weight:600;
  transition:top .15s;
}
.skip-link:focus{top:12px;}

/* ---------- site header ---------- */
header.site{border-bottom:1px solid var(--line); background:var(--bg);}
.site-inner{
  max-width:1080px; margin:0 auto; padding:16px 24px;
  display:flex; align-items:center; justify-content:space-between; gap:20px; flex-wrap:wrap;
}
.wordmark{font-family:"Fraunces",serif; font-weight:650; font-size:18px; color:var(--ink); text-decoration:none; white-space:nowrap; display:inline-flex; align-items:center;}
.wordmark .dot{color:var(--accent);}
.brandmark{width:21px; height:21px; margin-right:9px; flex-shrink:0;}
.brandmark .bm-ring{fill:var(--accent);}
.brandmark .bm-check{fill:none; stroke:#fff; stroke-width:2.3; stroke-linecap:round; stroke-linejoin:round;}
nav.sitenav{display:flex; gap:22px; flex-wrap:wrap;}
nav.sitenav a{font-size:13.5px; color:var(--ink-soft); font-weight:500; text-decoration:none;}
nav.sitenav a:hover{color:var(--accent);}
nav.sitenav a.current{color:var(--accent);}
@media (max-width:640px){
  .site-inner{padding:14px 20px;}
  nav.sitenav{gap:14px;}
  nav.sitenav a{font-size:12.5px;}
}

/* ---------- page header ---------- */
header.top{border-bottom:1px solid var(--line); padding:40px 24px 28px;}
.eyebrow{
  font-family:"IBM Plex Mono",monospace; font-size:12.5px; letter-spacing:.09em;
  text-transform:uppercase; color:var(--accent); margin-bottom:14px;
}
h1.title{font-size:clamp(30px,4.2vw,44px); font-weight:650; font-optical-sizing:auto; max-width:20ch;}
.lede{color:var(--ink-soft); font-size:17px; max-width:62ch; margin-top:14px;}
.stampline{display:flex; flex-wrap:wrap; gap:10px 22px; margin-top:26px;}
.stamp{
  font-family:"IBM Plex Mono",monospace; font-size:12.5px; color:var(--ink-soft);
  display:flex; align-items:baseline; gap:6px;
}
.stamp b{color:var(--ink); font-weight:600;}
.stamp .dot{color:var(--line);}

/* ---------- buttons / CTAs ---------- */
.cta-row{display:flex; flex-wrap:wrap; gap:12px; margin-top:28px;}
.btn{
  font-family:"Archivo",sans-serif; font-weight:600; font-size:14.5px; text-decoration:none;
  padding:12px 22px; border-radius:8px; display:inline-flex; align-items:center; gap:8px;
  border:1px solid transparent; cursor:pointer;
}
.btn.primary{background:var(--accent); color:#fff;}
.btn.primary:hover{opacity:.92;}
.btn.secondary{background:var(--surface); color:var(--ink); border-color:var(--line);}
.btn.secondary:hover{border-color:var(--accent); color:var(--accent);}
.btn:disabled{opacity:.5; cursor:not-allowed;}

/* ---------- trust band ---------- */
.trust-band{
  margin-top:28px; border:1px solid var(--accent); background:var(--accent-soft);
  border-radius:10px; padding:14px 20px; font-size:14.5px; color:var(--ink);
  max-width:70ch; line-height:1.5;
}
.trust-band b{color:var(--accent);}

/* ---------- section shell ---------- */
section{padding:52px 24px 0;}
section > .wrap{padding:0;}
.section-head{margin-bottom:22px;}
.section-label{
  font-family:"IBM Plex Mono",monospace; font-size:12px; letter-spacing:.08em;
  text-transform:uppercase; color:var(--ink-faint); margin-bottom:8px;
}
h2.section-title{font-size:26px; font-weight:600;}
.section-note{color:var(--ink-soft); font-size:15px; max-width:64ch; margin-top:8px;}
.th-sub{display:block; font-family:"Archivo",sans-serif; text-transform:none; letter-spacing:0; font-size:10.5px; font-weight:400; color:var(--ink-faint); margin-top:2px;}
.col-key{
  display:flex; gap:10px; align-items:flex-start; border:1px solid var(--line); border-radius:8px;
  background:var(--surface); padding:12px 16px; margin-bottom:16px; font-size:13.5px; color:var(--ink-soft);
}
.col-key svg{width:16px; height:16px; flex-shrink:0; margin-top:2px; color:var(--ink-faint);}
.col-key b{color:var(--ink);}

/* ---------- category cards (homepage) ---------- */
.cat-grid{display:grid; grid-template-columns:repeat(auto-fit,minmax(230px,1fr)); gap:16px;}
.cat-card{
  border:1px solid var(--line); border-radius:12px; background:var(--surface); box-shadow:var(--shadow);
  padding:20px 22px; text-decoration:none; color:var(--ink); display:block;
}
.cat-card:hover{border-color:var(--accent);}
.cat-card h3{font-size:18px; font-weight:650; margin-bottom:6px;}
.cat-card .count{font-family:"IBM Plex Mono",monospace; font-size:12px; color:var(--accent); margin-bottom:10px; display:block;}
.cat-card p{font-size:13.5px; color:var(--ink-soft); line-height:1.5;}

/* ---------- table preview (homepage) ---------- */
.table-scroll{overflow-x:auto; border:1px solid var(--line); border-radius:10px; background:var(--surface); box-shadow:var(--shadow);}
table{border-collapse:collapse; width:100%; min-width:820px;}
thead th{
  text-align:left; font-family:"IBM Plex Mono",monospace; font-size:11.5px;
  letter-spacing:.06em; text-transform:uppercase; color:var(--ink-soft);
  background:var(--surface-2); padding:13px 16px; border-bottom:1px solid var(--line);
  cursor:pointer; user-select:none; white-space:nowrap;
}
thead th:hover{color:var(--accent);}
thead th.no-sort{cursor:default;}
thead th .arrow{opacity:.4; margin-left:4px; font-size:10px;}
thead th.active .arrow{opacity:1; color:var(--accent);}
tbody td{padding:15px 16px; border-bottom:1px solid var(--line); vertical-align:top; font-size:14.5px;}
tbody tr:last-child td{border-bottom:none;}
tbody tr:hover{background:var(--surface-2);}
td.provider{font-family:"Fraunces",serif; font-weight:600; font-size:16px;}
td.provider a{color:var(--ink); text-decoration:none; border-bottom:1px solid var(--line);}
td.provider a:hover{color:var(--accent); border-color:var(--accent);}
td.price{font-family:"IBM Plex Mono",monospace; font-weight:600; font-size:15px;}
td .sub{display:block; font-family:"IBM Plex Mono",monospace; font-size:11.5px; color:var(--ink-faint); font-weight:400; margin-top:2px;}
.badge{display:inline-block; font-family:"IBM Plex Mono",monospace; font-size:11.5px; padding:3px 9px; border-radius:20px; white-space:nowrap;}
.badge.full{background:var(--accent-soft); color:var(--accent);}
.badge.partial{background:var(--stamp-soft); color:var(--stamp);}
.badge.none{background:var(--surface-2); color:var(--ink-faint);}
.visit-link{font-family:"IBM Plex Mono",monospace; font-size:12.5px; white-space:nowrap;}
.table-more{margin-top:14px; font-size:13.5px; color:var(--ink-soft);}

/* ---------- filter pills ---------- */
.filter-row{display:flex; flex-wrap:wrap; gap:8px; margin-bottom:16px;}
.filter-pill{
  font-family:"Archivo",sans-serif; font-size:13.5px; font-weight:500;
  background:var(--surface); color:var(--ink-soft); border:1px solid var(--line);
  border-radius:20px; padding:7px 14px; cursor:pointer;
}
.filter-pill .mono{font-family:"IBM Plex Mono",monospace; font-size:12px; margin-left:4px; opacity:.7;}
.filter-pill:hover{border-color:var(--accent); color:var(--ink);}
.filter-pill.active{background:var(--accent); border-color:var(--accent); color:var(--surface);}
.filter-pill.active .mono{opacity:.85;}
tbody tr.hidden-row{display:none;}
.card.hidden-row{display:none;}

/* ---------- quiz promo band ---------- */
.quiz-promo{
  border:1px solid var(--accent); border-radius:14px; background:var(--surface);
  box-shadow:var(--shadow); padding:28px 30px; display:flex; flex-wrap:wrap;
  gap:20px; align-items:center; justify-content:space-between;
}
.quiz-promo .qp-copy{flex:1 1 380px;}
.quiz-promo h3{font-size:21px; margin-bottom:8px;}
.quiz-promo p{color:var(--ink-soft); font-size:14.5px; max-width:56ch;}

/* ---------- ruled-out callout ---------- */
.ruledout{
  margin-top:22px; border:1px solid var(--flag); border-left-width:4px; border-radius:8px;
  background:var(--flag-soft); padding:18px 20px;
}
.ruledout h3{font-size:15px; font-family:"Archivo",sans-serif; font-weight:700; color:var(--flag); margin-bottom:8px;}
.ruledout ul{margin:0; padding-left:20px; font-size:14px; color:var(--ink-soft);}
.ruledout li{margin-bottom:4px;}
.ruledout b{color:var(--ink);}

/* ---------- provider cards ---------- */
.cards{display:flex; flex-direction:column; gap:16px;}
.card{
  border:1px solid var(--line); border-radius:12px; background:var(--surface);
  box-shadow:var(--shadow); overflow:hidden; scroll-margin-top:24px;
}
.card > summary{
  list-style:none; cursor:pointer; padding:20px 22px; display:flex;
  align-items:center; justify-content:space-between; gap:16px; flex-wrap:wrap;
}
.card > summary::-webkit-details-marker{display:none;}
.card-head-left{display:flex; align-items:baseline; gap:14px; flex-wrap:wrap;}
.card-head-left .avatar{align-self:center; width:30px; height:30px; font-size:12.5px;}
.card[data-region="global"] .card-head-left .avatar{background:var(--stamp-soft); color:var(--stamp);}
.card-name{font-family:"Fraunces",serif; font-size:21px; font-weight:650;}
.card-tag{font-family:"IBM Plex Mono",monospace; font-size:12px; color:var(--ink-faint);}
.card-price{font-family:"IBM Plex Mono",monospace; font-size:15px; font-weight:600; color:var(--accent);}
.toggle-icon{font-family:"IBM Plex Mono",monospace; color:var(--ink-faint); font-size:13px; flex-shrink:0;}
.card[open] .toggle-icon::before{content:"– collapse";}
.card:not([open]) .toggle-icon::before{content:"+ full profile";}
.card-teaser{flex:1 0 100%; margin:0; font-size:13.5px; color:var(--ink-soft); line-height:1.5; max-width:70ch;}
.card[open] .card-teaser{display:none;}

.card-body{padding:0 22px 24px; border-top:1px solid var(--line); padding-top:20px;}
.service-note{
  background:var(--stamp-soft); color:var(--stamp); border-radius:8px; padding:10px 14px;
  font-size:13.5px; margin-bottom:18px;
}
.angle{font-size:14.5px; color:var(--ink); max-width:70ch; margin-bottom:18px;}
.angle::before{content:"\2192  "; color:var(--accent); font-weight:600;}
.credential{color:var(--ink-soft); font-size:14.5px; max-width:70ch; margin-bottom:14px;}

.marker-grid{display:flex; flex-wrap:wrap; gap:8px; margin-bottom:22px;}
.marker{
  font-family:"IBM Plex Mono",monospace; font-size:12px; padding:6px 10px; border-radius:7px;
  border:1px solid var(--line); display:flex; gap:6px; align-items:center;
}
.marker .k{color:var(--ink-soft);}
.marker.yes{background:var(--accent-soft); border-color:transparent;}
.marker.yes .k{color:var(--accent); font-weight:600;}
.marker.addon{background:var(--stamp-soft); border-color:transparent;}
.marker.addon .k{color:var(--stamp);}
.marker.no .k{color:var(--ink-faint);}

.fact-grid{
  display:grid; grid-template-columns:repeat(auto-fit,minmax(230px,1fr)); gap:18px 24px;
  margin-bottom:20px;
}
.fact dt{
  font-family:"IBM Plex Mono",monospace; font-size:11px; letter-spacing:.05em; text-transform:uppercase;
  color:var(--ink-faint); margin-bottom:5px;
}
.fact dd{margin:0; font-size:14px; color:var(--ink); line-height:1.5;}

.card-footer{
  display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:10px;
  border-top:1px solid var(--line); padding-top:16px; margin-top:20px;
  font-family:"IBM Plex Mono",monospace; font-size:12px; color:var(--ink-faint);
}
.card-footer a{color:var(--ink-soft);}

.reclist{margin:0; padding-left:1.3em;}
.reclist li{margin-bottom:9px; font-size:14.5px; color:var(--ink); line-height:1.55;}
.reclist li::marker{font-family:"IBM Plex Mono",monospace; font-size:.85em; color:var(--accent);}
.reclist li:last-child{margin-bottom:0;}

.crossref{
  border:1px dashed var(--line); border-radius:12px; background:var(--surface);
  padding:16px 20px; font-size:14px; color:var(--ink-soft); margin-bottom:16px;
}
.crossref a{color:var(--accent); font-weight:600;}

/* ---------- rank table (thought leaders consensus) ---------- */
.rank-table{display:flex; flex-direction:column;}
.rank-row{
  display:grid; grid-template-columns:160px 1fr 54px; align-items:center; gap:16px;
  padding:14px 0; border-top:1px solid var(--line);
}
.rank-row:first-child{border-top:none; padding-top:4px;}
.rank-name{font-family:"Archivo",sans-serif; font-weight:600; font-size:14.5px; color:var(--ink);}
.rank-bar-track{height:9px; border-radius:5px; background:var(--surface-2); overflow:hidden;}
.rank-bar-fill{height:100%; background:var(--accent); border-radius:5px;}
.rank-score{font-family:"IBM Plex Mono",monospace; font-size:12.5px; color:var(--accent); text-align:right; font-weight:600;}
.rank-who{
  grid-column:2 / 3; margin-top:6px; font-size:12.5px; color:var(--ink-faint);
  font-family:"IBM Plex Mono",monospace;
}
.rank-who a{color:var(--ink-faint);}
.rank-single{font-size:14px; color:var(--ink-soft); margin-top:16px; padding-top:16px; border-top:1px solid var(--line);}
.rank-single a{color:var(--ink-soft); text-decoration:underline;}
@media (max-width:640px){ .rank-row{grid-template-columns:110px 1fr 40px; gap:10px;} }

/* ---------- longevity tech tiers (kept for internal/future use) ---------- */
.tier{margin-bottom:22px;}
.tier:last-child{margin-bottom:0;}
.tier-h{font-family:"Archivo",sans-serif; font-weight:700; font-size:14px; color:var(--ink); margin-bottom:8px; display:flex; align-items:center; gap:8px;}
.tier-h .mono{font-weight:500; color:var(--ink-faint); font-size:12px;}
.tier ul{margin:0; padding-left:1.2em;}
.tier li{font-size:14px; color:var(--ink-soft); margin-bottom:7px; line-height:1.5;}
.tier li:last-child{margin-bottom:0;}
.tier li b{color:var(--ink);}
.tier li a{color:var(--ink); font-weight:600;}

/* ---------- methodology / prose ---------- */
.method{
  border:1px solid var(--line); border-radius:12px; background:var(--surface);
  padding:26px 28px; box-shadow:var(--shadow);
}
.method p{color:var(--ink-soft); font-size:15px; max-width:70ch;}
.method p + p{margin-top:12px;}
.method strong{color:var(--ink);}
.method h3{font-size:16px; color:var(--ink); margin-top:22px; margin-bottom:6px;}
.method h3:first-child{margin-top:0;}
.method ul{color:var(--ink-soft); font-size:15px; max-width:70ch; padding-left:1.3em;}
.method li{margin-bottom:6px;}

/* ---------- FAQ ---------- */
.faq{display:flex; flex-direction:column; gap:2px;}
.faq-item{border-bottom:1px solid var(--line); padding:18px 2px;}
.faq-item:first-child{border-top:1px solid var(--line);}
.faq-q{font-family:"Fraunces",serif; font-weight:600; font-size:17px; margin-bottom:8px;}
.faq-a{color:var(--ink-soft); font-size:14.5px; max-width:70ch;}
.faq-a .cite{color:var(--ink-faint); font-family:"IBM Plex Mono",monospace; font-size:12.5px;}

/* ---------- quiz ---------- */
.quiz-shell{max-width:640px; margin:0 auto;}
.quiz-progress{display:flex; align-items:center; gap:6px; margin-bottom:8px;}
.quiz-progress .step-dot{flex:1; height:4px; border-radius:3px; background:var(--line);}
.quiz-progress .step-dot.done{background:var(--accent);}
.quiz-progress .step-dot.now{background:var(--stamp);}
.quiz-step-label{font-family:"IBM Plex Mono",monospace; font-size:12px; letter-spacing:.06em; text-transform:uppercase; color:var(--ink-faint); margin-bottom:18px;}
.quiz-q{font-size:24px; font-weight:650; margin-bottom:8px;}
.quiz-sub{color:var(--ink-soft); font-size:14.5px; margin-bottom:24px; max-width:56ch;}
.option-grid{display:flex; flex-direction:column; gap:10px; margin-bottom:28px;}
.option-grid.two-col{display:grid; grid-template-columns:repeat(auto-fit,minmax(220px,1fr));}
.option-card{
  border:1.5px solid var(--line); border-radius:10px; background:var(--surface);
  padding:16px 18px; cursor:pointer; text-align:left; font-family:"Archivo",sans-serif; width:100%;
}
.option-card:hover{border-color:var(--accent);}
.option-card.selected{border-color:var(--accent); background:var(--accent-soft);}
.option-card .opt-title{display:block; font-weight:650; font-size:15.5px; color:var(--ink); margin-bottom:4px;}
.option-card .opt-note{display:block; font-size:13px; color:var(--ink-soft); line-height:1.45;}
.option-card.selected .opt-title{color:var(--accent);}
.checkbox-row{
  display:flex; align-items:flex-start; gap:10px; border:1px solid var(--line); border-radius:10px;
  padding:14px 16px; margin-bottom:12px; background:var(--surface); font-size:13.5px; color:var(--ink-soft);
}
.checkbox-row input{margin-top:3px; flex-shrink:0; width:16px; height:16px;}
.field-row{display:flex; flex-direction:column; gap:6px; margin-bottom:16px;}
.field-row label{font-family:"IBM Plex Mono",monospace; font-size:11.5px; letter-spacing:.05em; text-transform:uppercase; color:var(--ink-faint);}
.field-row input[type=text],.field-row input[type=email]{
  font-family:"Archivo",sans-serif; font-size:15px; padding:11px 14px; border:1px solid var(--line);
  border-radius:8px; background:var(--surface); color:var(--ink);
}
.quiz-nav{display:flex; justify-content:space-between; gap:12px; margin-top:8px;}
.quiz-trust{font-size:13px; color:var(--ink-faint); margin-top:16px; max-width:56ch;}
.result-card{
  border:1px solid var(--line); border-radius:12px; background:var(--surface); box-shadow:var(--shadow);
  padding:20px 22px; margin-bottom:14px;
}
.result-rank{font-family:"IBM Plex Mono",monospace; font-size:11px; color:var(--accent); text-transform:uppercase; letter-spacing:.06em; margin-bottom:6px;}
.result-head{display:flex; justify-content:space-between; align-items:baseline; gap:14px; flex-wrap:wrap; margin-bottom:8px;}
.result-name{font-family:"Fraunces",serif; font-size:20px; font-weight:650;}
.result-price{font-family:"IBM Plex Mono",monospace; font-weight:600; color:var(--accent);}
.result-why{font-size:14px; color:var(--ink-soft); margin-bottom:10px;}
.result-why b{color:var(--ink);}
.result-meta{font-family:"IBM Plex Mono",monospace; font-size:12px; color:var(--ink-faint); display:flex; gap:16px; flex-wrap:wrap;}
.fallback-note{
  border:1px solid var(--stamp); background:var(--stamp-soft); color:var(--stamp);
  border-radius:8px; padding:12px 16px; font-size:13.5px; margin-bottom:18px;
}
.result-section{margin-bottom:32px;}
.result-section:last-child{margin-bottom:0;}
.result-section-head{margin-bottom:14px;}
.result-section-label{font-family:"IBM Plex Mono",monospace; font-size:11.5px; letter-spacing:.06em; text-transform:uppercase; color:var(--accent);}
.result-section-title{font-family:"Fraunces",serif; font-size:19px; font-weight:650; margin-top:2px;}
.result-section-note{font-size:13.5px; color:var(--ink-soft); margin-top:4px;}
.managed-badge{display:inline-block; font-family:"IBM Plex Mono",monospace; font-size:10.5px; background:var(--accent-soft); color:var(--accent); border-radius:20px; padding:2px 9px; margin-left:8px; vertical-align:middle;}

/* ---------- footer ---------- */
footer.site-footer{
  margin-top:60px; padding:24px; border-top:1px solid var(--line);
  text-align:center; font-family:"IBM Plex Mono",monospace; font-size:12px; color:var(--ink-faint);
}
.footer-nav{display:flex; justify-content:center; gap:20px; flex-wrap:wrap; margin-bottom:10px; font-family:"Archivo",sans-serif; font-size:13px;}
.footer-nav a{color:var(--ink-soft); text-decoration:none;}
.footer-nav a:hover{color:var(--accent);}

@media (max-width:640px){
  header.top{padding:32px 20px 24px;}
  section{padding:40px 20px 0;}
  .wrap{padding:0 20px 80px;}
  .quiz-q{font-size:20px;}
}

/* ============================================================
   Premium editorial pass — 7 Sep 2026
   Two layers below: (1) sitewide motion/interaction polish that
   every page already benefits from with no markup changes, and
   (2) homepage-only components (hero grid, stamp seal, category
   icons, table avatars) as the proof of concept for the rest of
   the site. See docs/01-domain-migration-status.md.
   ============================================================ */

/* ---- 1. Sitewide motion polish ---- */
.btn,.cat-card,.pillar-card,.path-card,.quiz-promo,nav.sitenav a,.filter-pill,.option-card,
td.provider a,.card>summary,.brandmark{
  transition:transform .18s ease, box-shadow .18s ease, border-color .18s ease,
             color .18s ease, background-color .18s ease, opacity .18s ease;
}
.btn.primary:hover{transform:translateY(-1px); box-shadow:0 6px 16px -6px rgba(31,111,82,.45);}
.btn.secondary:hover{transform:translateY(-1px);}
.btn .arrow{display:inline-block; transition:transform .18s ease;}
.btn:hover .arrow{transform:translateX(3px);}
.cat-card:hover,.pillar-card:hover,.path-card:hover{transform:translateY(-3px); box-shadow:0 14px 28px -16px rgba(22,33,29,.28);}
.quiz-promo:hover{box-shadow:0 14px 30px -16px rgba(22,33,29,.22);}
@media (prefers-reduced-motion: reduce){
  *,*::before,*::after{transition-duration:.001ms!important; animation-duration:.001ms!important; scroll-behavior:auto!important;}
}

/* ---- 2. Homepage hero: editorial two-column layout ---- */
header.hero-editorial{
  border-bottom:1px solid var(--line); padding:56px 24px 36px;
  background-image:radial-gradient(var(--line) 1px, transparent 1px);
  background-size:20px 20px; background-position:-10px -10px;
}
.hero-grid{
  max-width:1080px; margin:0 auto; display:grid;
  grid-template-columns:1fr auto; gap:52px; align-items:start;
}
.hero-copy{min-width:0;}
.eyebrow-rule{display:inline-flex; align-items:center; gap:10px; margin-bottom:14px;}
.eyebrow-rule .rule{width:28px; height:1px; background:var(--accent); display:inline-block;}
.eyebrow-rule .eyebrow{margin-bottom:0;}

/* ---- Stamp seal (the trust mark, made visual) ---- */
.stamp-seal{display:flex; flex-direction:column; align-items:center; flex-shrink:0; width:172px;}
.ss-wrap{width:132px; height:132px; position:relative;}
.ss-ring{
  position:absolute; inset:0; border-radius:50%;
  background:repeating-conic-gradient(var(--stamp) 0deg 7deg, transparent 7deg 16deg);
  -webkit-mask:radial-gradient(farthest-side, transparent calc(100% - 9px), #000 calc(100% - 9px));
          mask:radial-gradient(farthest-side, transparent calc(100% - 9px), #000 calc(100% - 9px));
}
.ss-core{
  position:absolute; inset:18px; border-radius:50%; background:var(--accent);
  display:flex; align-items:center; justify-content:center; box-shadow:var(--shadow);
}
.ss-core svg{width:38px; height:38px; color:#fff;}
.ss-caption{text-align:center; margin-top:14px;}
.ss-caption-main{display:block; font-family:"Archivo",sans-serif; font-weight:600; font-size:13px; color:var(--ink);}
.ss-caption-sub{display:block; font-size:11px; letter-spacing:.06em; text-transform:uppercase; color:var(--ink-faint); margin-top:3px;}
@media (max-width:820px){
  .hero-grid{grid-template-columns:1fr; gap:32px;}
  .stamp-seal{flex-direction:row; width:auto; gap:16px; align-items:center;}
  .ss-caption{text-align:left; margin-top:0;}
}

/* ---- Category cards: icon + editorial numbering ---- */
.cat-card{position:relative;}
.cat-card .cat-num{
  position:absolute; top:18px; right:20px; font-family:"IBM Plex Mono",monospace;
  font-size:11.5px; color:var(--ink-faint);
}
.cat-icon{
  width:40px; height:40px; border-radius:50%; background:var(--accent-soft);
  display:flex; align-items:center; justify-content:center; margin-bottom:14px;
}
.cat-icon svg{width:20px; height:20px; color:var(--accent); stroke-width:1.7;}

/* ---- Table preview: initial avatars ---- */
td.provider{display:flex; align-items:center; gap:10px;}
.avatar{
  width:26px; height:26px; border-radius:50%; background:var(--accent-soft); color:var(--accent);
  font-family:"IBM Plex Mono",monospace; font-weight:600; font-size:11.5px;
  display:flex; align-items:center; justify-content:center; flex-shrink:0;
}

/* ---- Trust band icon ---- */
.trust-band{display:flex; gap:12px; align-items:flex-start;}
.trust-band svg{width:18px; height:18px; color:var(--accent); flex-shrink:0; margin-top:1px;}
.trust-band .tb-text{flex:1;}

/* ============================================================
   Guide page — 7 Sep 2026 (pillar grid + two-path cards)
   ============================================================ */
.pillar-grid{display:grid; grid-template-columns:repeat(auto-fit,minmax(180px,1fr)); gap:16px;}
.pillar-card{
  border:1px solid var(--line); border-radius:12px; background:var(--surface);
  box-shadow:var(--shadow); padding:20px 20px 22px;
}
.pillar-icon{width:38px; height:38px; border-radius:50%; background:var(--accent-soft); display:flex; align-items:center; justify-content:center; margin-bottom:13px;}
.pillar-icon svg{width:19px; height:19px; color:var(--accent);}
.pillar-card h3{font-size:16px; font-weight:650; margin-bottom:6px;}
.pillar-card p{font-size:13.5px; color:var(--ink-soft); line-height:1.5;}

.path-grid{display:grid; grid-template-columns:repeat(auto-fit,minmax(280px,1fr)); gap:20px;}
.path-card{
  border:1px solid var(--line); border-radius:14px; background:var(--surface);
  box-shadow:var(--shadow); padding:26px 26px 24px;
}
.path-icon{width:44px; height:44px; border-radius:50%; display:flex; align-items:center; justify-content:center; margin-bottom:16px;}
.path-icon svg{width:22px; height:22px;}
.path-card.managed .path-icon{background:var(--accent-soft);}
.path-card.managed .path-icon svg{color:var(--accent);}
.path-card.diy .path-icon{background:var(--stamp-soft);}
.path-card.diy .path-icon svg{color:var(--stamp);}
.path-card h3{font-size:20px; margin-bottom:8px;}
.path-card > p{font-size:14.5px; color:var(--ink-soft); line-height:1.55;}
.path-card ul{margin:16px 0 20px; padding-left:1.2em;}
.path-card li{font-size:14px; color:var(--ink-soft); margin-bottom:7px; line-height:1.5;}
.path-card li b{color:var(--ink);}

/* ============================================================
   Research page — 10 Sep 2026
   Reuses .cards/.card/.card-footer/.badge/.fact-grid/.toggle-icon
   as-is; only the pieces genuinely specific to a research entry
   (tag row, gist line, expand-row) are new.
   ============================================================ */
.research-tags{display:flex; gap:8px; align-items:center; margin-bottom:11px; flex-wrap:wrap;}
.research-gist{font-size:14.5px; color:var(--ink-soft); max-width:64ch;}
.research-meta{display:flex; justify-content:space-between; align-items:center; gap:16px; margin-top:14px;}
.card.research[open] .toggle-icon::before{content:"– hide the technical bit";}
.card.research:not([open]) .toggle-icon::before{content:"+ the technical bit";}
.badge.strong-evidence{background:var(--accent-soft); color:var(--accent);}
.badge.moderate-evidence{background:var(--stamp-soft); color:var(--stamp);}
.badge.early-evidence{background:var(--surface-2); color:var(--ink-faint);}
