/* Acts of Evolution, site chrome. Option B, Front Page.
   The map keeps its own theme. Rating chips stay on the existing green, yellow and red. */
@import url("https://fonts.googleapis.com/css2?family=Graduate&family=Oswald:wght@500;600;700&family=Source+Sans+3:ital,wght@0,400;0,600;0,700;1,400&display=swap");

:root{
  --bg:#F3EDE0;
  --surface:#FFFFFF;
  --surface-2:#E7E0D2;
  --ink:#14233F;
  --text:#14233F;
  --muted:#5A6273;
  --text-2:#5A6273;
  --line:#14233F;
  --panel:#FFFFFF;
  --black:#F3EDE0;
  --navy:#14233F;
  --navy-deep:#0C1629;
  --cream:#F3EDE0;
  --rule:#7E1C2B;
  --green:#14233F;
  --blue:#14233F;
  --accent:#14233F;
  --accent-2:#E7E1D3;
  --accent-ink:#F3EDE0;
  --font-head:"Graduate", Georgia, serif;
  --font-body:"Source Sans 3", system-ui, sans-serif;
  --font-ui:"Oswald", system-ui, sans-serif;
  --font-num:"Oswald", sans-serif;
  --hero-title-font:var(--font-head);
  --hero-title-weight:400;
  --hero-title-tracking:-.045em;
  --hero-title-leading:.98;
  --rate-green:#7fd894;
  --rate-yellow:#e9c85e;
  --rate-red:#ef6a5b;
  /* same validated categorical hues as the AI Map's dark theme, reused for the
     AI-exposure tag in the company table/panel so the two views agree */
  --exp-direct:#3987e5;
  --exp-infra:#d95926;
  --exp-enabler:#199e70;
  --exp-other:#9a9890;
}
/* Data pages keep the rule stripe, in navy. Crimson stays on the other pages. */
.data-page{--rule:#14233F}

*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;
  background:var(--black);
  color:var(--ink);
  font-family:var(--font-body);
  -webkit-font-smoothing:antialiased;
}
.site-header, .site-header nav, .nav-links, .button, .eyebrow, .kicker, .footer-brand, .footer-links, .stack-chip, .stack-strip-label, .share-btn, .share-label, .nav-cta{
  font-family:var(--font-ui);
  font-weight:600;
}
a{color:inherit;text-decoration:none}
img,svg{display:block}
h1,h2,h3,p,blockquote{margin:0}

.skip-link{
  position:absolute; left:-9999px; top:0; z-index:100;
  background:var(--green); color:var(--cream); padding:10px 16px; font-size:13px; font-weight:800;
}
.skip-link:focus{left:12px; top:12px}

a:focus-visible, button:focus-visible, [tabindex]:focus-visible{
  outline:2px solid var(--green); outline-offset:3px;
}

/* ---------- header ---------- */
.site-header{
  height:auto; min-height:156px; display:flex; align-items:center; justify-content:space-between;
  padding:8px clamp(22px,5vw,76px); border-bottom:3px solid var(--rule);
  position:sticky; top:0; z-index:40;
  background:rgba(243,237,224,.94); backdrop-filter:blur(14px);
}
.brand{display:flex; align-items:center; gap:12px; font-size:13px; font-weight:800; letter-spacing:.14em; text-transform:uppercase; position:relative}
.site-header .brand-lockup{
  display:block; height:135px; width:auto;
  border:0; flex:none;
}
.brand-compact{display:none}
.site-header .brand-badge{display:block; height:64px; width:auto; border:0; flex:none}
.brand-word{
  font-family:"Oswald", sans-serif; font-weight:700; font-size:18px;
  letter-spacing:.12em; color:#14233F; line-height:1;
}
.site-header .brand-mark::before{content:none}
.brand-name{
  position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden;
  clip:rect(0,0,0,0); white-space:nowrap; border:0;
}
.footer-brand .brand-mark{display:none}
@media (max-width:720px){
  .site-header{height:84px; min-height:0; padding:0 16px}
  .site-header .brand-lockup{display:none}
  .brand-compact{display:flex; align-items:center; gap:8px}
}
.site-header nav{display:flex; align-items:center; gap:28px; font-size:13px; color:var(--text-2)}
.site-header nav a:hover{color:var(--accent)}
.nav-cta{
  display:flex; align-items:center; gap:8px; border:1px solid var(--accent); padding:10px 14px; color:var(--accent-ink)!important; background:var(--accent);
}
.nav-cta:hover{border-color:var(--green); color:var(--green)!important}
.nav-links{display:flex; align-items:center; gap:28px}

/* ---------- hero ---------- */
.hero{
  display:grid; gap:22px; align-items:start;
  padding:72px clamp(22px,5vw,76px) 54px; position:relative; overflow:hidden;
}
.hero:before{
  content:""; position:absolute; inset:0;
  background-image:linear-gradient(rgba(90,110,98,.07) 1px,transparent 1px),
                    linear-gradient(90deg,rgba(90,110,98,.07) 1px,transparent 1px);
  background-size:48px 48px;
  mask-image:linear-gradient(to bottom,black 0%,black 55%,transparent 100%);
}
.hero-copy{position:relative; z-index:1; max-width:900px}
.eyebrow,.kicker{font-size:11px; font-weight:700; letter-spacing:.18em; color:var(--green)}
.eyebrow{display:flex; gap:9px; align-items:center}
.eyebrow span{width:7px; height:7px; background:var(--green); border-radius:50%; box-shadow:0 0 16px var(--green)}
h1,h2,h3{font-family:var(--font-head); font-weight:400}
html.hero-title-b{
  --hero-title-font:var(--font-num);
  --hero-title-weight:700;
  --hero-title-tracking:-.02em;
  --hero-title-leading:.92;
}
h1{font-size:clamp(42px,6.4vw,88px); line-height:.95; letter-spacing:-.05em; margin:22px 0 24px; font-weight:400}
h1 em{font-family:Georgia,serif; font-weight:400; font-style:italic; color:var(--green)}
.hero-lede{font-size:clamp(16px,1.4vw,20px); line-height:1.55; color:var(--ink); max-width:620px}
.hero-actions{display:flex; gap:12px; margin-top:30px; flex-wrap:wrap}
.button{
  min-height:48px; padding:0 18px; display:inline-flex; align-items:center; gap:12px;
  font-size:13px; font-weight:800; letter-spacing:.03em; border:1px solid transparent; cursor:pointer;
}
.button.primary{background:var(--accent); color:var(--accent-ink)}
.button.primary:hover{background:#4e1019}
.button.secondary{border:1px solid #465049; color:var(--ink)}
.button.secondary:hover{border-color:#7c8a7f}
.button.light{background:#0b0e0c; color:#fff; white-space:nowrap}
.button.light:hover{background:#171c17}
.microcopy{font-size:11px; color:#737d76; margin-top:16px}
.hero-stats{
  position:relative; z-index:1; display:flex; gap:clamp(20px,4vw,56px); flex-wrap:wrap;
  padding-top:30px; border-top:1px solid var(--line); margin-top:12px;
}
.hero-stats div{display:flex; flex-direction:column; gap:4px}
.hero-stats strong{font:400 30px Georgia,serif; color:var(--ink)}
.hero-stats span{font-size:11px; color:var(--muted); letter-spacing:.04em}

/* ---------- 3D hero teaser ---------- */
.hero3d{
  position:relative; height:100vh; min-height:560px; max-height:960px; overflow:hidden;
  border-bottom:1px solid var(--line); cursor:pointer;
}
#hero3dCanvas{position:absolute; inset:0}
#hero3dCanvas canvas{outline:none}
.hero3d-overlay{
  position:absolute; left:0; right:0; top:0; bottom:0; z-index:2;
  display:flex; flex-direction:column; align-items:center; justify-content:center; text-align:center;
  padding:0 22px; pointer-events:none;
  background:radial-gradient(ellipse 780px 480px at 50% 50%, rgba(243,237,224,.92) 0%, rgba(243,237,224,.72) 55%, rgba(243,237,224,0) 82%);
  color:var(--ink);
}
.hero3d-overlay .eyebrow{justify-content:center; color:var(--blue)}
.hero3d-overlay h1, .hero3d-overlay h2{
  font-size:clamp(38px,6.4vw,80px); line-height:.98; letter-spacing:-.04em; margin:20px 0 18px;
  color:var(--ink);
}
.hero3d-lede{font-size:clamp(15px,1.6vw,19px); color:var(--ink); margin:0 0 30px}
.hero3d-cta{pointer-events:auto}
.hero3d-scroll{
  position:absolute; left:50%; bottom:26px; transform:translateX(-50%); z-index:2;
  display:flex; flex-direction:column; align-items:center; gap:6px; color:#9ba29c; font-size:11px;
  letter-spacing:.04em; text-decoration:none; pointer-events:auto;
}
.hero3d-scroll:hover{color:#fff}
.hero3d-scroll svg{animation:hero3d-bob 1.8s ease-in-out infinite}
@keyframes hero3d-bob{0%,100%{transform:translateY(0)}50%{transform:translateY(5px)}}
@media (max-width:720px){
  .hero3d{height:88vh}
}

/* ---------- stack chips (clickable AI-stack layer filters) ---------- */
.stack-strip{
  padding:22px clamp(22px,5vw,76px); border-top:1px solid var(--line); border-bottom:1px solid var(--line);
}
.stack-strip-label{font-size:10px; color:var(--green); font-weight:800; letter-spacing:.14em; margin-bottom:14px; display:block}
.stack-chips{display:flex; flex-wrap:wrap; gap:8px}
.stack-chip{
  border:1px solid #35403a; background:transparent; color:#c2c8c3; font-size:12px; padding:8px 12px;
  cursor:pointer; display:flex; align-items:center; gap:7px; font-family:inherit;
}
.stack-chip b{color:var(--muted); font-weight:600; font-size:10.5px}
.stack-chip:hover{border-color:var(--green); color:#fff}

/* ---------- company database (table + toolbar) ---------- */
.db-section{padding:88px clamp(22px,5vw,76px) 100px; border-bottom:1px solid var(--line)}
.db-head{display:flex; justify-content:space-between; align-items:flex-end; gap:24px; margin-bottom:8px; flex-wrap:wrap}
.db-head h2{font-size:clamp(30px,3.6vw,48px); line-height:1.08; letter-spacing:-.03em; max-width:640px}
.db-head-meta{display:flex; gap:22px; flex-wrap:wrap}
.db-head-meta div{display:flex; flex-direction:column; gap:3px}
.db-head-meta strong{font:400 24px Georgia,serif}
.db-head-meta span{font-size:10px; color:var(--muted); letter-spacing:.05em}
.db-lede{color:var(--ink); font-size:15px; max-width:680px; margin:14px 0 30px; line-height:1.6}

.db-toolbar{display:flex; gap:10px; flex-wrap:wrap; margin-bottom:20px}
.db-search{
  flex:1 1 240px; min-width:200px; background:var(--panel); border:1px solid #35403a; color:var(--ink);
  padding:11px 14px; font-size:13px; font-family:inherit;
}
.db-search:focus{outline:2px solid var(--green); outline-offset:1px}
.db-select{
  background:var(--panel); border:1px solid #35403a; color:var(--ink); padding:11px 12px; font-size:13px; font-family:inherit;
}
.db-result-count{font-size:11px; color:var(--muted); letter-spacing:.04em; margin-bottom:10px}

/* Plain-language "what this sector is and does" blurb, shown when a stack-
   layer chip or the layer dropdown selects a specific sector -- appears
   before the (now-filtered) company list, same idea as the 3D map's own
   per-sector sidebar description. */
.layer-blurb{
  background:var(--panel); border:1px solid #35403a; border-left:3px solid var(--green);
  padding:16px 18px; margin-bottom:18px;
}
.layer-blurb h3{margin:0 0 6px; font-size:14px; letter-spacing:.04em; color:var(--green); text-transform:uppercase}
.layer-blurb p{margin:0; font-size:14px; line-height:1.6; color:var(--ink); max-width:760px}

.db-table-wrap{border:1px solid #35403a; background:var(--panel); overflow-x:auto}
.db-table{width:100%; border-collapse:collapse; font-size:13px; min-width:760px}
.db-table thead th{
  text-align:left; font-size:10.5px; letter-spacing:.06em; color:var(--muted); text-transform:uppercase;
  padding:13px 16px; border-bottom:1px solid var(--line); white-space:nowrap; cursor:pointer; user-select:none;
}
.db-table thead th:hover{color:var(--ink)}
.db-table tbody tr{border-bottom:1px solid var(--line); cursor:pointer}
.db-table tbody tr:hover{background:rgba(183,243,74,.05)}
.db-table tbody tr:last-child{border-bottom:none}
.db-table td{padding:13px 16px; vertical-align:middle}
.db-table td b{display:block; font-size:13.5px; color:var(--ink); font-weight:700}
.db-table td small{display:block; font-size:11px; color:var(--muted); margin-top:2px}
.ticker{
  display:inline-block; font:11.5px ui-monospace,SFMono-Regular,Menlo,monospace; background:rgba(183,243,74,.1);
  color:var(--green); padding:2px 6px; border-radius:3px;
}
.private-label{font-size:12.5px; color:#c2c8c3}
.layer-name{font-size:12.5px; color:#c2c8c3}
.exposure-tag{display:inline-flex; align-items:center; gap:6px; font-size:12px; color:#c2c8c3; white-space:nowrap}
.exposure-tag i{width:8px; height:8px; border-radius:50%; display:inline-block; flex:none}
.exposure-tag.lg{font-size:13px}
.profile-btn{
  display:inline-flex; align-items:center; gap:6px; background:transparent; border:1px solid #465049; color:var(--ink);
  font-size:11.5px; font-weight:700; padding:7px 10px; cursor:pointer; font-family:inherit; white-space:nowrap;
}
.profile-btn:hover{border-color:var(--green); color:var(--green)}
.empty-row{padding:40px 16px; text-align:center; color:var(--muted)}
.link-btn{background:none; border:none; color:var(--green); text-decoration:underline; cursor:pointer; font:inherit; padding:0}
.db-note{font-size:12px; color:#737d76; margin-top:16px; max-width:680px; line-height:1.6}

/* ---------- company profile panel ---------- */
.panel-backdrop{
  position:fixed; inset:0; background:rgba(4,6,5,.7); z-index:80; display:none; align-items:stretch; justify-content:flex-end;
}
.panel-backdrop.open{display:flex}
.company-panel{
  width:min(560px,100%); background:var(--panel); border-left:1px solid #35403a; overflow-y:auto; position:relative;
  padding:30px 30px 60px;
}
.panel-close{
  position:absolute; top:20px; right:20px; background:transparent; border:1px solid #465049; color:var(--ink);
  width:32px; height:32px; cursor:pointer; font-size:14px;
}
.panel-close:hover{border-color:var(--green); color:var(--green)}
.panel-head{padding-right:40px}
.panel-id{font-size:11px; color:var(--muted); letter-spacing:.06em; margin-bottom:8px}
.panel-head h2{font-size:clamp(26px,3vw,34px); letter-spacing:-.03em; margin-bottom:14px}
.panel-tags{display:flex; gap:10px; align-items:center; margin-bottom:14px; flex-wrap:wrap}
.ticker-link{
  display:inline-flex; align-items:center; gap:6px; font-size:13px; color:var(--green); margin-bottom:26px;
}
.ticker-link code{font:12px ui-monospace,SFMono-Regular,Menlo,monospace; background:rgba(183,243,74,.1); padding:2px 6px; border-radius:3px}
.ticker-link.muted{color:var(--muted)}
.panel-body{border-top:1px solid var(--line); padding-top:22px}
.fact{margin-bottom:26px}
.fact>span{display:block; font-size:10.5px; font-weight:800; letter-spacing:.1em; color:var(--green); margin-bottom:8px; text-transform:uppercase}
.fact p{font-size:14.5px; line-height:1.65; color:var(--ink)}
.fact-note{font-size:11.5px; color:#737d76; line-height:1.55; margin-top:8px}
.peer-list{display:flex; flex-wrap:wrap; gap:8px}
.peer-chip{
  background:transparent; border:1px solid #35403a; color:#c2c8c3; font-size:12px; padding:6px 10px; cursor:pointer; font-family:inherit;
}
.peer-chip:hover{border-color:var(--green); color:var(--green)}
.rel-list{display:flex; flex-direction:column; gap:14px}
.rel-row{border:1px solid #26302b; padding:12px 14px; background:rgba(255,255,255,.015)}
.rel-sentence{font-size:13.5px; line-height:1.5; color:var(--ink); margin-bottom:6px}
.rel-meta{display:flex; gap:8px; margin-bottom:6px; flex-wrap:wrap}
.rel-type{font-size:10px; color:var(--muted); border:1px solid #35403a; padding:1px 6px; border-radius:3px}
.rel-status{font-size:10px; padding:1px 6px; border-radius:3px; font-weight:700}
.rel-status-current{color:#8fd6ad; border:1px solid #2b5c42}
.rel-status-dated{color:#e0c46b; border:1px solid #5c4f2b}
.rel-status-comparison{color:#9a9890; border:1px solid #3a3a37}
.rel-claim{font-size:12.5px; color:var(--ink); line-height:1.5; margin-bottom:6px}
.rel-source{font-size:11.5px; color:var(--green)}
.map-link{margin-top:10px; width:100%; justify-content:center}

/* ---------- mission ---------- */
.mission{
  padding:100px clamp(22px,9vw,150px); display:grid; grid-template-columns:1fr 3fr; gap:40px;
  border-bottom:1px solid var(--line);
}
.section-number{font-size:10px; letter-spacing:.16em; color:#8a948d}
.mission-copy h2{font-size:clamp(34px,4.6vw,64px); line-height:1.04; letter-spacing:-.04em; margin:20px 0 30px}
.mission-copy>p:last-child{max-width:700px; color:var(--ink); font-size:19px; line-height:1.6}

/* ---------- principles ---------- */
.principles{
  display:grid; grid-template-columns:repeat(4,1fr); padding:0 clamp(22px,5vw,76px);
  border-bottom:1px solid var(--line);
}
.principles article{padding:54px 30px 60px; border-right:1px solid var(--line); border-left:1px solid var(--line); margin-left:-1px; min-height:280px; position:relative}
.principles article:first-child{margin-left:0}
.principles svg{color:var(--green); margin-bottom:44px}
.principles article>span{position:absolute; right:20px; top:22px; color:#86918a; font:italic 14px Georgia,serif}
.principles h3{font-size:18px; margin:0 0 14px}
.principles p{font-size:14px; line-height:1.65; color:#919b94; margin:0}

/* ---------- founder ---------- */
.founder{
  display:grid; grid-template-columns:1fr 1.1fr 1.4fr; gap:5vw; padding:100px clamp(22px,9vw,150px); align-items:start;
  border-bottom:1px solid var(--line);
}
.founder-rule{height:1px; background:var(--rule); margin-top:9px}
.founder blockquote{font:italic clamp(30px,3.6vw,56px)/1.06 Georgia,serif; margin:22px 0; color:#f6f7f3}
.founder-note{font-size:16px; line-height:1.7; color:var(--ink); padding-top:22px}
.founder-note p{margin:0 0 22px}
.founder-note p:last-child{margin-bottom:0}

/* ---------- final cta ---------- */
.final-cta{
  margin:70px clamp(22px,5vw,76px); padding:56px 60px; background:var(--green); color:var(--cream);
  display:flex; align-items:flex-end; justify-content:space-between; gap:26px; flex-wrap:wrap;
}
.final-cta .kicker{color:var(--cream)}
.final-cta h2{font-size:clamp(32px,3.6vw,54px); margin:16px 0 0; letter-spacing:-.03em}

/* ---------- footer ---------- */
footer{
  display:grid; grid-template-columns:1fr 1.5fr 1fr; gap:44px; padding:56px clamp(22px,5vw,76px);
  border-top:3px solid var(--rule); color:#5A6273; font-size:12px; line-height:1.6;
}
.footer-brand{display:flex; align-items:center; gap:12px; color:var(--ink); letter-spacing:.1em; text-transform:uppercase}
.footer-copy p{margin:0 0 8px}
.footer-links{display:flex; justify-content:flex-end; gap:22px; align-self:start}
.footer-links a:hover{color:#fff}
/* Footer-only link to /desk. Delete every <a class="footer-desk"> to remove it. */

/* ---------- disclosures / legal page ---------- */
.legal-page{min-height:100vh}
.legal-wrap{max-width:820px; margin:70px auto 100px; padding:0 clamp(22px,5vw,40px)}
.legal-wrap h1{font-size:clamp(42px,6vw,72px); letter-spacing:-.04em; margin:16px 0 0}
.legal-wrap .updated{color:var(--green); font-size:11px; letter-spacing:.12em; font-weight:800}
.legal-wrap section{border-top:1px solid var(--line); padding:30px 0}
.legal-wrap section:first-of-type{margin-top:40px}
.legal-wrap h2{font-size:19px; margin:0 0 14px}
.legal-wrap p,.legal-wrap li{color:var(--ink); line-height:1.75; font-size:16px; margin:0}
.legal-wrap a{color:var(--green); text-decoration:underline}
.legal-wrap ol{margin:14px 0 0; padding-left:1.25em}
.legal-wrap li+li{margin-top:8px}
.legal-wrap blockquote{font:italic clamp(22px,3vw,34px)/1.2 Georgia,serif; color:var(--ink); margin:18px 0 0}

/* ---------- responsive ---------- */
@media (max-width:980px){
  .principles{grid-template-columns:1fr 1fr}
  .founder{grid-template-columns:1fr}
  .founder-rule{width:90px}
  .mission{grid-template-columns:1fr; gap:20px}
}
@media (max-width:720px){
  .site-header nav a:not(.nav-cta):not(.nav-index):not(.nav-map){display:none}
  .site-header{padding:0 16px}
  .nav-cta{padding:9px 12px; font-size:12px}
  .hero{padding-top:44px}
  .hero-stats{gap:28px}
  .principles{grid-template-columns:1fr}
  .principles article{min-height:auto; padding:40px 4px 44px}
  .mission,.founder{padding-top:64px; padding-bottom:64px}
  .db-section{padding:56px clamp(16px,5vw,76px) 72px}
  .final-cta{padding:36px 26px; flex-direction:column; align-items:flex-start; margin:48px clamp(16px,5vw,76px)}
  footer{grid-template-columns:1fr; gap:24px}
  .footer-links{justify-content:flex-start}
  .company-panel{padding:24px 18px 50px}
}

/* Release 2.3: keyboard access and comparison */
:focus-visible{outline:3px solid var(--blue);outline-offset:3px}
.sort-button{font:inherit;color:inherit;background:none;border:0;padding:10px 0;cursor:pointer;text-align:left}.sort-button:after{content:' ↕'}
.compare-toolbar{display:flex;flex-wrap:wrap;align-items:center;gap:16px;margin:16px 0;font-size:14px}.compare-check{display:flex;align-items:center;gap:6px;font-size:13px;margin-bottom:8px;cursor:pointer}.compare-check input{width:18px;height:18px}
.comparison-scroll{overflow:auto}.comparison-table{border-collapse:collapse;width:100%;font-size:14px}.comparison-table th,.comparison-table td{padding:14px;border-bottom:1px solid #354039;vertical-align:top;text-align:left;min-width:150px}.company-panel:has(.comparison-table){width:min(1100px,100vw);max-width:100vw}.comparison-table th:first-child{min-width:110px}
button:disabled{opacity:.45;cursor:not-allowed}.fact-note{overflow-wrap:anywhere}.rel-row{overflow-wrap:anywhere}

/* ---------- V3.7 signal layer ---------- */
.sig-dot{width:9px; height:9px; border-radius:50%; display:inline-block; flex:none; border:2px solid currentColor; background:transparent}
.sig-dot-green{color:#4cc38a}.sig-dot-yellow{color:#e8b44a}.sig-dot-red{color:#ef6a5b}.sig-dot-gray{color:#7c867f}
#sectorNav .sig-dot{margin-left:auto}
#sectorNav .sig-dot + small{margin-left:8px}
.sig-pill{display:inline-flex; align-items:center; gap:7px; font-size:12px; font-weight:700; border-radius:999px; padding:4px 11px 4px 9px; border:1px solid; margin:2px 0}
.sig-pill i{width:9px; height:9px; border-radius:50%; border:2px solid currentColor}
.sig-pill-green{color:#7fdcae; border-color:#2f6b4c; background:rgba(76,195,138,.08)}
.sig-pill-yellow{color:#f0c86f; border-color:#6b5829; background:rgba(232,180,74,.08)}
.sig-pill-red{color:#f58f83; border-color:#73332c; background:rgba(239,106,91,.08)}
.sig-pill-gray{color:#a3aba5; border-color:#3a433e}
.sig-sub{font-size:13.5px; color:#a8b2ab; line-height:1.55; margin:0}
.sig-list{display:grid; gap:10px; margin-top:10px}
.sig-card{border:1px solid #26302b; border-left:3px solid #7c867f; padding:12px 14px; background:rgba(255,255,255,.015)}
.sig-card.sig-headwind{border-left-color:#ef6a5b}.sig-card.sig-tailwind{border-left-color:#4cc38a}.sig-card.sig-mixed{border-left-color:#e8b44a}
.sig-card.sig-expired{opacity:.6}
.sig-top{display:flex; flex-wrap:wrap; gap:6px 12px; font-size:11px; color:#8f9a93; text-transform:uppercase; letter-spacing:.06em; font-weight:700}
.sig-headwind .sig-pol{color:#f58f83}.sig-tailwind .sig-pol{color:#7fdcae}.sig-mixed .sig-pol{color:#f0c86f}
.sig-mag{border:1px solid #37413b; border-radius:3px; padding:0 5px; font-weight:600}
.sig-headline{font-size:14.5px; line-height:1.4; margin:7px 0 8px; color:#eef2ee; letter-spacing:0}
.sig-chips{display:flex; flex-wrap:wrap; gap:6px; margin-bottom:6px}
.sig-chip{cursor:pointer; font:inherit; font-size:11.5px; color:#d6e2dc; background:#15201b; border:1px solid #33443b; border-radius:999px; padding:3px 10px}
.sig-chip:hover{border-color:var(--blue); color:var(--ink)}
.sig-chip-sector{border-style:dashed}
.sig-chip-thesis.sig-eff-against{color:#f5a79d}.sig-chip-thesis.sig-eff-supports{color:#95e0b9}
.sig-more summary{cursor:pointer; font-size:12px; color:var(--blue); margin:4px 0}
.sig-more p{font-size:13.5px; line-height:1.6; color:#d0d6d1; margin:6px 0}
.sig-toggle{display:flex; gap:8px; align-items:center; font-size:12.5px; color:#b8c2bb; margin-bottom:6px}
.sig-toggle input{accent-color:var(--blue)}
.sig-disclaimer{border-top:1px solid #26302b; padding-top:10px; margin-top:16px}
.sector-signal{display:flex; flex-wrap:wrap; align-items:center; gap:8px 12px; margin-top:10px; pointer-events:auto}
.sector-signal-count{font-size:12.5px; color:#9dabbb}
.sig-link-btn{cursor:pointer; font:inherit; font-size:12.5px; color:var(--blue); background:none; border:0; padding:0; text-decoration:underline; text-underline-offset:3px}
.thesis-row{border:1px solid #26302b; padding:14px 16px; margin-bottom:10px; background:rgba(255,255,255,.015); scroll-margin-top:12px}
.thesis-row.thesis-flash{border-color:var(--blue)}
.thesis-head{display:flex; flex-wrap:wrap; align-items:center; gap:8px 10px}
.thesis-head h3{font-size:16px; margin:0; letter-spacing:0}
.thesis-id{font-size:11px; font-weight:800; color:#7c867f}
.thesis-threshold{font-size:14px; line-height:1.6; color:var(--ink); margin:8px 0 4px}
.thesis-basis{font-weight:700; color:#95e0b9}.thesis-basis-working{color:#f0c86f}
.thesis-sigs{list-style:none; padding:0; margin:8px 0 0; display:grid; gap:5px}
.thesis-sigs li{font-size:12.5px; line-height:1.5; color:#c9d0cb; padding-left:10px; border-left:2px solid}
.thesis-sigs li.eff-against{border-color:#ef6a5b}.thesis-sigs li.eff-supports{border-color:#4cc38a}
.sig-legend{display:flex; flex-wrap:wrap; align-items:center; gap:4px 12px; font-size:12px}
.sig-legend span{display:inline-flex; align-items:center; gap:5px}
.sig-legend-note{color:#7e8c99}

/* ---------- V3.7.1 2D fallback map (no-WebGL browsers) ---------- */
.map2d{background:radial-gradient(ellipse at 50% 40%, #0d1620 0%, #05070a 70%); overflow:hidden}
.map2d-svg{width:100%; height:100%; display:block; cursor:grab}
.map2d-svg:active{cursor:grabbing}
.m2-sector-bg{fill-opacity:.045; stroke-opacity:.35; stroke-width:1.2}
.m2-sector-halo{fill:none; stroke-width:3; stroke-opacity:.85}
.m2-sector-title{font:800 19px Arial, sans-serif; cursor:pointer; letter-spacing:-.01em}
.m2-sector-title:hover{text-decoration:underline}
.m2-sector-count{font:600 12px Arial, sans-serif; fill:#7e8c99}
.m2-sector.m2-dim{opacity:.35}
.m2-link{fill:none; stroke-width:1; stroke-opacity:.07; pointer-events:stroke; cursor:pointer}
.m2-link-dated{stroke-dasharray:5 4}.m2-link-comparison{stroke-dasharray:1.5 4}
.m2-link.m2-link-hover{stroke-opacity:.55; stroke-width:1.6}
.m2-link.m2-link-quiet{stroke-opacity:.025}
.m2-link.m2-link-on{stroke-opacity:.9; stroke-width:2}
.m2-node{cursor:pointer; outline:none}
.m2-dot{stroke:#05070a; stroke-width:1.5}
.m2-ring{fill:none; stroke-width:2.5}
.m2-label{font:600 10.5px Arial, sans-serif; fill:#dfe6ec; paint-order:stroke; stroke:#05070a; stroke-width:3px; pointer-events:none}
.m2-zoomed-out .m2-label{display:none}
.m2-node:hover .m2-dot,.m2-node:focus-visible .m2-dot{stroke:#fff}
.m2-node:focus-visible .m2-label{fill:var(--blue)}
.m2-node.m2-selected .m2-dot{stroke:var(--blue); stroke-width:3}
.m2-node.m2-dim{opacity:.13}
.m2-focus .m2-node.m2-related .m2-label,.m2-focus .m2-node.m2-selected .m2-label{display:block}
.map2d-note{position:absolute; left:16px; bottom:16px; max-width:340px; font-size:12px; line-height:1.5; color:#b8c4cf; background:rgba(9,15,21,.92); border:1px solid #2d3a47; border-radius:8px; padding:9px 12px; pointer-events:none}
.map2d-note b{color:#e8eef4}
.hero3d .map2d-note{display:none}
@media(max-width:600px){ .map2d-note{left:10px; right:10px; max-width:none; bottom:10px} }
.hero3d .map2d-svg{opacity:.42}
.hero3d .m2-label{display:none}
.map2d-note{pointer-events:auto; padding-right:34px}
.map2d-note button{position:absolute; top:6px; right:6px; background:none; border:0; color:#8a98a6; cursor:pointer; font-size:13px; padding:4px 6px}
.map2d-note button:hover{color:#fff}

/* ---------- V3.7.1 audit polish ---------- */

/* ---------- V3.8 sector list dropdown in single-company view ---------- */
#sectorCompanies.is-collapsed{display:block}
.sector-dd{position:relative; display:inline-block; pointer-events:auto}
.sector-dd summary{list-style:none; cursor:pointer; display:inline-flex; align-items:center; gap:8px; font-size:13px; font-weight:700; color:#dde8f3; background:rgba(12,21,31,.94); border:1px solid #344558; border-radius:6px; padding:7px 12px}
.sector-dd summary::-webkit-details-marker{display:none}
.sector-dd summary::after{content:"▾"; color:#9fb0c1; font-size:12px}
.sector-dd[open] summary::after{content:"▴"}
.sector-dd summary:hover{border-color:var(--blue)}
.sector-dd-list{position:absolute; z-index:26; top:calc(100% + 6px); left:0; width:min(560px, calc(100vw - 320px)); max-height:min(52vh, 420px); overflow:auto; display:flex; flex-wrap:wrap; gap:6px; padding:10px; background:#0b131c; border:1px solid #344558; border-radius:8px; box-shadow:0 18px 50px rgba(0,0,0,.6)}
@media(max-width:600px){ .sector-dd-list{width:calc(100vw - 28px)} .sector-dd summary{font-size:12px} }
#sectorCompanies.is-collapsed{overflow:visible}

.db-input{
  background:var(--panel); border:1px solid #35403a; color:var(--ink); padding:11px 12px; font-size:13px; font-family:inherit;
  min-width:190px;
}
.db-input:focus{outline:2px solid var(--green); outline-offset:1px}

/* The fund picker carries long fund names; without a cap its intrinsic width pushed the mobile page sideways. */
@media (max-width:640px){
}

/* ---- Chaos Map (V3.11): every relationship drawn at once ---- */
.m2-link.m2-link-chaos{stroke-opacity:.30; stroke-width:1.1}
.m2-link.m2-link-chaos.m2-link-hover,.m2-link.m2-link-chaos.m2-link-on{stroke-opacity:.95; stroke-width:2}
.m2-chaos .m2-label{display:none}
.m2-chaos .m2-node:hover .m2-label,.m2-chaos .m2-node:focus-visible .m2-label{display:block}

/* ---- Email capture (V3.11) ---- */
.signup-section{
  display:grid; grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr); gap:40px; align-items:start;
  padding:72px 6vw; border-top:1px solid var(--line); background:var(--panel); color:var(--ink);
  scroll-margin-top:116px;
}
.signup-copy h2{margin:6px 0 14px; font-size:clamp(24px,3.2vw,36px); line-height:1.15; color:var(--ink)}
.signup-copy p{max-width:520px; font-size:15px; line-height:1.65; color:var(--ink); margin:0 0 12px}
.signup-never{color:var(--muted); font-size:13.5px !important; border-left:2px solid #35403a; padding-left:12px}
.signup-form{background:var(--panel); border:1px solid #35403a; border-radius:4px; padding:24px; max-width:460px}
.signup-row{display:flex; flex-direction:column; gap:6px; margin-bottom:14px}
.signup-row label{font-size:11px; letter-spacing:.09em; text-transform:uppercase; color:var(--muted); font-weight:700}
.signup-form input[type=email],.signup-form select{
  background:#0e1310; border:1px solid #35403a; color:var(--ink); padding:12px 13px; font-size:14px; font-family:inherit; width:100%;
}
.signup-form input[type=email]:focus,.signup-form select:focus{outline:2px solid var(--green); outline-offset:1px}
.signup-form .button{width:100%; justify-content:center; margin-top:4px}
.signup-note{font-size:12px; line-height:1.6; color:var(--muted); margin:14px 0 0}
.signup-promise{font-size:16px; line-height:1.6; color:var(--ink); margin:0; max-width:36em}
.signup-embed{
  width:100%; min-width:0; box-sizing:border-box;
  background:var(--panel); border:1px solid #35403a; border-top:3px solid var(--green); padding:12px;
}
.signup-embed iframe{display:block; width:100%; max-width:100%; height:320px; border:0; background:var(--panel)}
.signup-embed-fallback{display:none; margin:0}
.signup-embed-link{margin:0}
.signup-embed-link .button{display:inline-flex}
@media (max-width:480px){
  .signup-embed iframe{display:none}
  .signup-embed-fallback{display:block}
  .signup-embed{background:var(--panel)}
}
.signup-action{margin:0}
.signup-inline .signup-promise{margin:0}
.signup-hp{position:absolute; left:-9999px; width:1px; height:1px; overflow:hidden}
main.legal-page.desk-main{min-height:0}
.desk-page .desk-lead{color:#f3f5f2; font-size:18px; line-height:1.45; margin:22px 0 0}
.desk-page .desk-lead + p{margin-top:16px}
.desk-page .desk-waitlist{border-top:1px solid var(--line); margin-top:36px; padding-top:28px}
.desk-page .signup-form{position:relative; margin-top:8px}
.desk-thanks{max-width:460px}
.desk-thanks h2{font-size:22px; margin:0 0 12px}
.desk-thanks p{margin:0 0 12px}
.desk-disclaimer{margin-top:28px !important}
@media(max-width:860px){ .signup-section{grid-template-columns:1fr; padding:52px 5vw; gap:26px} .signup-form{max-width:none} }

/* Pulse archive reuses the homepage signup band above the issue list. */
.pulse-archive > .db-section.blog-index{border-bottom:0}
.pulse-archive > .db-section.blog-index:first-child{padding-bottom:28px}
.pulse-archive > .signup-section + .db-section.blog-index{padding-top:36px; border-bottom:1px solid var(--line)}
.pulse-archive > .signup-section{grid-template-columns:1fr}
.pulse-archive > .signup-section{padding-left:clamp(22px,5vw,76px);padding-right:clamp(22px,5vw,76px)}
.pulse-archive > .signup-section .signup-copy{max-width:calc(1100px - 2*clamp(22px,5vw,76px))}
@media (max-width:720px){.pulse-archive > .signup-section{padding-left:clamp(16px,5vw,76px);padding-right:clamp(16px,5vw,76px)}}
.pulse-archive > .subscribe-block{
  box-sizing:border-box; width:auto;
  max-width:calc(1100px - 2 * clamp(22px, 5vw, 76px));
  margin-left:clamp(22px, 5vw, 76px); margin-right:clamp(22px, 5vw, 76px);
}
@media (max-width:720px){
  .pulse-archive > .subscribe-block{
    max-width:calc(1100px - 2 * clamp(16px, 5vw, 76px));
    margin-left:clamp(16px, 5vw, 76px); margin-right:clamp(16px, 5vw, 76px);
  }
}

/* ---- Briefings (V3.11) ---- */
.blog-index{max-width:1100px}
.blog-lede{max-width:760px; font-size:16px; line-height:1.7; color:var(--ink); margin:0 0 18px}
.blog-archive-note{
  max-width:760px; font-size:13.5px; line-height:1.65; color:var(--ink);
  background:var(--panel); border:1px solid var(--line); border-left:3px solid var(--green); padding:14px 16px; margin:0 0 34px;
}
.blog-archive-note b{color:var(--ink)}
.post-cards{display:grid; gap:2px; border-top:1px solid #232b26}
.post-card{padding:26px 0; border-bottom:1px solid #232b26}
.post-card-date{font-size:11px; letter-spacing:.1em; text-transform:uppercase; color:var(--muted); margin:0 0 8px}
.post-card h2{margin:0 0 10px; font-size:clamp(20px,2.4vw,27px); line-height:1.2; max-width:820px}
.post-card h2 a{color:var(--ink); text-decoration:none}
.post-card h2 a:hover{color:var(--green)}
.post-card p{max-width:760px; font-size:15px; line-height:1.65; color:var(--ink); margin:0}
.post-card-more{margin-top:12px !important}
.post-card-more a{font-size:13px; font-weight:700; color:var(--green); text-decoration:none}

.post{max-width:760px; margin:0 auto; padding:56px 5vw 40px}
.post .kicker a{color:inherit; text-decoration:none}
.post h1{font-size:clamp(27px,4vw,42px); line-height:1.13; margin:10px 0 16px}
.post-dek{font-size:17px; line-height:1.6; color:var(--ink); margin:0 0 18px}
.post-byline{
  margin:0 0 8px; color:var(--navy); font-family:var(--font-body);
  font-size:14px; font-weight:600; letter-spacing:.02em; line-height:1.3;
}
.post-meta{font-size:12.5px; color:var(--muted); margin:0 0 30px; padding-bottom:20px; border-bottom:1px solid #232b26}
.post-meta b{color:var(--ink)}
.post-archive{color:#7c867f}
.post-body p{font-size:16.5px; line-height:1.78; color:var(--ink); margin:0 0 20px}
.post-body h2{font-size:21px; line-height:1.3; margin:34px 0 14px; color:var(--ink)}
.post-body h3{font-size:17px; line-height:1.35; margin:26px 0 12px; color:var(--ink)}
.post-body b,.post-body strong{color:var(--ink)}
.post-body a{color:var(--green)}
.post-body ul,.post-body ol{margin:0 0 20px; padding-left:1.25em}
.post-body li{font-size:16.5px; line-height:1.7; color:var(--ink); margin:0 0 8px}
.post-body li p{margin:0}
.post-body blockquote{margin:22px 0; padding:0 0 0 18px; border-left:3px solid var(--green)}
.post-body blockquote p{color:var(--ink)}
.post-body hr{border:0; border-top:1px solid #232b26; margin:28px 0}
.post-body{overflow-wrap:break-word}
.post-body .post-pull{margin:26px 0; padding:0 0 0 18px; border-left:3px solid var(--green); font-size:18px; line-height:1.6; color:var(--ink)}
.post-list{margin:0 0 20px; padding-left:20px}
.post-list li{font-size:16px; line-height:1.7; color:var(--ink); margin-bottom:8px}
.post-box{background:var(--panel); border:1px solid #35403a; border-left:3px solid #7c867f; padding:18px 20px; margin:30px 0}
.post-box.watch{border-left-color:var(--green)}
.post-box h3{margin:0 0 10px; font-size:12px; letter-spacing:.1em; text-transform:uppercase; color:var(--muted)}
.post-box p{font-size:14.5px; line-height:1.7; color:var(--ink); margin:0 0 10px}
.post-box p:last-child{margin-bottom:0}
.post-sources{margin:34px 0 10px}
.post-sources h3,.post-related h3{font-size:12px; letter-spacing:.1em; text-transform:uppercase; color:var(--muted); margin:0 0 12px}
.post-sources ul{list-style:none; padding:0; margin:0 0 14px}
.post-sources li{padding:9px 0; border-bottom:1px solid #232b26; font-size:14px; color:var(--ink)}
.post-sources li a{color:var(--ink)}
.post-sources li span{display:block; color:#7c867f; font-size:12px; margin-top:3px}
.post-related{margin:30px 0}
.post-chips{display:flex; flex-wrap:wrap; gap:8px; margin-bottom:16px}
.post-chip{
  font-size:12.5px; color:var(--ink); border:1px solid #35403a; padding:6px 11px; border-radius:3px; text-decoration:none;
}
.post-chip:hover{border-color:var(--green); color:var(--green)}
.post-nav{display:grid; grid-template-columns:1fr 1fr; gap:14px; margin:36px 0 10px}
.post-nav-link{
  border:1px solid #35403a; padding:16px; text-decoration:none; color:var(--ink); font-size:14.5px; line-height:1.4;
}
.post-nav-link span{display:block; font-size:11px; letter-spacing:.1em; text-transform:uppercase; color:var(--muted); margin-bottom:6px}
.post-nav-link:hover{border-color:var(--green)}
.signup-inline{
  display:grid; grid-template-columns:1fr 1fr; gap:24px; align-items:center; margin:40px 0 0;
  border-top:1px solid #232b26; padding-top:28px;
}
.signup-inline p{font-size:14px; line-height:1.65; color:#b7beb8; margin:6px 0 0; max-width:420px}
.signup-inline .signup-not-advice{grid-column:1 / -1; max-width:none}
.signup-form.slim{padding:0; background:none; border:0; max-width:420px}
.sig-briefing{margin:8px 0 0; font-size:13px}
.sig-briefing a{color:var(--green); text-decoration:none; font-weight:600}
.sig-briefing a:hover{text-decoration:underline}
@media(max-width:760px){
  .post-nav,.signup-inline{grid-template-columns:1fr}
  .post{padding:40px 5vw 30px}
  .post-body p{font-size:16px}
}

/* Subscribe block. Copy is pipeline/subscribe_block.json. */
.subscribe-block{
  box-sizing:border-box; max-width:100%; margin:28px 0; padding:18px 16px 16px;
  border:1px solid #35403a; border-top:3px solid var(--green); background:var(--panel);
  overflow-wrap:anywhere;
}
.subscribe-block-headline{
  margin:0 0 8px; font-size:clamp(22px, 5.2vw, 28px); line-height:1.2; font-weight:800; color:var(--ink);
}
.subscribe-block-line,.subscribe-block-disclaimer{
  margin:0; max-width:36rem; font-size:15px; line-height:1.55; color:var(--muted);
}
.subscribe-block-line{margin:0 0 14px}
.subscribe-block-disclaimer{margin:12px 0 0; font-size:13px}
.subscribe-block-action{margin:0}
.subscribe-block .subscribe-block-headline{margin:0 0 8px;max-width:none;font-size:clamp(22px,5.2vw,28px);line-height:1.2;font-weight:800;color:var(--ink)}
.subscribe-block .subscribe-block-line,.subscribe-block .subscribe-block-disclaimer{margin:0;max-width:36rem;font-size:15px;line-height:1.55;color:var(--muted)}
.subscribe-block .subscribe-block-line{margin:0 0 14px}
.subscribe-block .subscribe-block-disclaimer{margin:12px 0 0;font-size:13px}
.subscribe-block .subscribe-block-action{margin:0;max-width:none;font-size:16px;line-height:normal;color:var(--ink)}
.subscribe-block .button{
  min-height:48px; max-width:100%; text-decoration:none; box-sizing:border-box;
}
@media (max-width:560px){
  .subscribe-block .button{width:100%; justify-content:center}
}

/* ---- Exit-intent signup (V3.12) ---- */
.exit-backdrop{
  position:fixed; inset:0; z-index:200; display:grid; place-items:center; padding:20px;
  background:rgba(4,6,5,.72); backdrop-filter:blur(3px); opacity:0; transition:opacity .2s ease;
}
.exit-backdrop.is-open{opacity:1}
.exit-modal{
  position:relative; width:min(560px,100%); background:var(--panel); border:1px solid #35403a; border-top:3px solid var(--green);
  padding:30px 30px 26px; box-shadow:0 30px 80px rgba(0,0,0,.6); transform:translateY(8px); transition:transform .2s ease;
}
.exit-backdrop.is-open .exit-modal{transform:none}
.exit-modal h2{margin:8px 0 12px; font-size:clamp(21px,2.6vw,28px); line-height:1.18}
.exit-modal p{font-size:14.5px; line-height:1.65; color:var(--ink); margin:0}
.exit-close{
  position:absolute; top:10px; right:10px; width:34px; height:34px; display:grid; place-items:center; cursor:pointer;
  background:transparent; border:1px solid #35403a; color:#c2c8c3; font-size:13px; font-family:inherit;
}
.exit-close:hover{border-color:var(--green); color:var(--green)}
.exit-form{margin-top:18px}
.exit-label{display:block; font-size:11px; letter-spacing:.09em; text-transform:uppercase; color:var(--muted); font-weight:700; margin-bottom:6px}
.exit-row{display:flex; gap:10px}
.exit-row input{
  flex:1 1 auto; min-width:0; background:#0e1310; border:1px solid #35403a; color:var(--ink);
  padding:12px 13px; font-size:14px; font-family:inherit;
}
.exit-row input:focus{outline:2px solid var(--green); outline-offset:1px}
.exit-row .button{flex:none; white-space:nowrap}
.exit-note{font-size:12px !important; color:var(--muted) !important; margin-top:12px !important}
.exit-status{margin-top:14px !important; color:var(--green) !important; font-size:15px !important}
.exit-subscribe{margin-top:18px}
.exit-subscribe .button{text-decoration:none}
@media(max-width:560px){ .exit-modal{padding:26px 20px 22px} .exit-row{flex-direction:column} .exit-row .button,.exit-subscribe .button{width:100%; justify-content:center} }
@media (prefers-reduced-motion: reduce){ .exit-backdrop,.exit-modal{transition:none} }
.exit-note a{color:var(--green); text-decoration:underline}

/* ---- Minor signals (V3.14): filed, shown, but never colouring anything ---- */
.sig-minor-block{border-top:1px solid #232b26; margin-top:14px; padding-top:12px}
.sig-minor-head{color:var(--muted) !important; letter-spacing:.02em}
.sig-minor-ul li.eff-minor b{color:var(--muted)}
.sig-minor-block .sig-card{opacity:.92}

/* Social handles in the footer */
.footer-social{display:inline-flex; gap:14px; margin-left:4px}
.footer-social a::before{content:"↗"; font-size:10px; margin-right:4px; opacity:.6}

/* ---------- Share and follow (V3.17) ----------
   Plain links to public share URLs. No third-party script, no SDK, no counter: the site's own
   argument is that claims should be checkable, which is hard to square with loading someone
   else's tracking JavaScript on every page. */
.share-row,.follow-row{margin-top:18px; padding-top:16px; border-top:1px solid var(--line)}
.share-row.compact,.follow-row.compact{margin-top:12px; padding-top:12px}
.share-label{
  font-size:10.5px; letter-spacing:.14em; text-transform:uppercase; font-weight:800;
  color:var(--muted); margin:0 0 10px;
}
.share-btns{display:flex; flex-wrap:wrap; gap:8px}
.share-btn{
  display:inline-flex; align-items:center; gap:7px; cursor:pointer; font:inherit; font-size:12.5px; font-weight:600;
  color:#cfd6d0; background:#0f1512; border:1px solid #2c352f; border-radius:999px;
  padding:8px 13px; text-decoration:none; line-height:1; white-space:nowrap;
  transition:border-color .15s, color .15s, background .15s;
}
.share-btn svg{flex:none}
.share-btn:hover{border-color:var(--green); color:#fff; background:#141b16}
.share-btn.is-copied{border-color:var(--green); color:var(--green)}
.share-native{background:var(--green); color:var(--cream); border-color:var(--green); font-weight:800}
.share-native:hover{background:#c9ff62; color:#11170f}
.share-note{font-size:11.5px; color:#78827b; margin:10px 0 0; line-height:1.5}
.share-row.compact .share-note{display:none}
@media(max-width:560px){
  .share-btn span{font-size:12px}
  .share-btns{gap:7px}
}

/* Footer: handles become icon pills so they read as accounts, not as two more nav links. */
.footer-social{display:inline-flex; gap:10px; margin-left:4px; align-items:center}
.footer-social a{
  display:inline-flex; align-items:center; gap:6px; color:var(--muted);
  border:1px solid #2c352f; border-radius:999px; padding:5px 11px; font-size:11.5px; font-weight:700;
}
.footer-social a:hover{border-color:var(--green); color:var(--green)}
.footer-social a::before{content:none}
.footer-social svg{width:14px; height:14px; flex:none}

/* The follow block that sits with the email signup: three ways to keep up, one row. */
.follow-block{
  margin:0 clamp(22px,5vw,76px) 70px; padding:26px 30px; border:1px solid var(--line); background:#0c110e;
  display:flex; align-items:center; justify-content:space-between; gap:22px; flex-wrap:wrap;
}
.follow-block h3{font-size:19px; margin:6px 0 4px; letter-spacing:-.01em}
.follow-block p{font-size:13.5px; color:#98a19a; margin:0; max-width:56ch; line-height:1.6}
.follow-block .follow-row{margin:0; padding:0; border:0}

/* Hero: the question, the running count, then the two ways in. */
.hero3d-overlay .hero-score{justify-content:center; margin:0 0 4px; text-shadow:0 0 18px rgba(0,0,0,.85)}
.hero3d-overlay .hero3d-ctas{justify-content:center; pointer-events:auto}
.hero3d-overlay .hero3d-lede{margin-bottom:18px}
.hero3d-scroll span{max-width:min(90vw,420px); text-align:center; line-height:1.5}
/* On a wide screen the question and its answer sit side by side rather than leaving a column empty. */
@media(min-width:1080px){
  .score-head{
    max-width:none; display:grid; grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr);
    column-gap:clamp(36px,5vw,84px); align-items:start;
  }
  .score-head .kicker{grid-column:1 / -1}
  .scoreboard h2{grid-column:1; margin-top:16px}
  .score-lede{grid-column:1; margin-top:20px}
  .score-summary{grid-column:2; grid-row:2 / 3; margin-top:26px; align-self:start}
  .score-chips{grid-column:2; grid-row:3 / 4; margin-top:20px}
  .score-framing{grid-column:2; grid-row:4 / 5; margin-top:18px}
}
/* The header is sticky, so anchored jumps need room or they land under it. */
.scoreboard,.score-card,.db-section{scroll-margin-top:200px}
#universe,#companies{scroll-margin-top:200px}
.page-title{padding:32px clamp(22px,5vw,76px) 8px}
.page-title h1{font-size:clamp(32px,4vw,48px); line-height:1.05; letter-spacing:-.03em; margin:8px 0 0}
/* A signal can point at a layer the current view does not draw (a sector lens shows a subset).
   It is still named, but it is not a button, because there is nowhere here to fly to. */
.sig-chip-sector.is-offmap{
  display:inline-flex; align-items:center; opacity:.72; cursor:default;
  border-style:dashed;
}

/* ---- V3.17 responsive repairs ----
   Adding "Space" and "Robotics" to the nav pushed the header past the viewport at tablet width, and the
   footer's new icon pills did the same on a phone. The rows may wrap above 720px. At 720px and narrower
   the phone header below keeps the Index pill and a short Map label on one line. */
.site-header{gap:18px; flex-wrap:wrap; row-gap:0}
.nav-links{flex-wrap:wrap; justify-content:flex-end; gap:18px 22px}
@media(max-width:1180px){
  .site-header nav{gap:18px}
}
@media(max-width:1000px){
  .nav-cta{font-size:12px; padding:9px 12px}
  .nav-links{gap:14px 16px}
  .site-header{padding:0 clamp(16px,4vw,40px)}
}
/* Phone header. The Index link stays, drawn as a pill, and the map control
   shows the short label. Both spans are in the markup; the short one is hidden
   until this breakpoint so wider screens keep the full label. */
.nav-label-short{display:none}
@media (max-width:720px){
  .site-header{flex-wrap:nowrap; align-items:center; padding:0 12px; gap:8px}
  .site-header nav,.nav-links{flex-wrap:nowrap; gap:8px}
  .brand{flex:none; white-space:nowrap}
  .nav-cta,.nav-index,.nav-map{flex:none; white-space:nowrap}
  .nav-index{order:1}
  .nav-cta,.nav-map{order:2}
  .nav-index,.nav-map{
    display:inline-flex; align-items:center; border:1px solid #536159;
    padding:8px 10px; font-size:12px; color:var(--ink);
  }
  .nav-cta{padding:8px 10px; font-size:12px}
  .nav-cta .nav-label-full,.nav-map .nav-label-full{display:none}
  .nav-cta .nav-label-short,.nav-map .nav-label-short{display:inline}
  .nav-index:hover,.nav-map:hover{border-color:var(--green); color:var(--green)!important}
}
@media (max-width:364px){
  .site-header{padding:0 8px; gap:6px}
  .brand{letter-spacing:.04em; font-size:11px; gap:6px}
  .site-header nav,.nav-links{gap:6px}
  .nav-index,.nav-map,.nav-cta{padding:7px 8px}
}
footer{overflow-wrap:anywhere}
.footer-links{flex-wrap:wrap; row-gap:10px}
.footer-social{flex-wrap:wrap}
@media(max-width:620px){
  .footer-links{justify-content:flex-start; gap:14px}
  .footer-social{margin-left:0; width:100%}
}
/* The sector sidebar's own heading is not the page heading on a lens, where the lens card holds it. */
.sector-intro h2{font-size:22px; margin:0 0 7px; letter-spacing:-.01em}
.score-nosource{color:#f0c86f; font-weight:700}
.score-working{border-left:2px solid #6b5829; padding-left:10px; margin-top:8px !important}

/* ---------- The AI universe section (V3.18) ----------
   The map is the thing only this site has, so it gets the space directly under the question rather
   than sitting below nine tracker cards, which is where an earlier draft buried it. */
.universe{
  display:grid; grid-template-columns:minmax(0,1.35fr) minmax(0,.65fr); gap:clamp(30px,5vw,80px);
  align-items:start; padding:78px clamp(22px,5vw,76px) 72px; border-bottom:1px solid var(--line);
  background:var(--bg);
  color:var(--ink);
  scroll-margin-top:116px;
}
.universe h2{font-size:clamp(28px,3.6vw,46px); letter-spacing:-.03em; line-height:1.08; margin:14px 0 0; color:var(--ink)}
.universe-copy p{font-size:clamp(14.5px,1.5vw,16.5px); line-height:1.7; color:var(--ink); margin:18px 0 0; max-width:62ch}
.universe-ctas{display:flex; flex-wrap:wrap; gap:12px; margin-top:28px}
.universe-secondary{font-size:13px !important; color:var(--muted) !important; margin-top:20px !important}
.universe-secondary a{color:var(--green); text-decoration:underline; text-underline-offset:3px}
.universe-stats{
  display:grid; gap:2px; border:1px solid var(--line); background:var(--line); align-self:start;
}
.universe-stats div{background:var(--bg); padding:20px 22px}
.universe-stats strong{display:block; font-size:clamp(28px,3.4vw,40px); letter-spacing:-.03em; font-variant-numeric:tabular-nums; color:var(--blue)}
.universe-stats span{display:block; font-size:11.5px; letter-spacing:.09em; text-transform:uppercase; color:var(--ink); margin-top:5px}
@media(max-width:900px){
  .universe{grid-template-columns:1fr; padding:54px clamp(18px,5vw,30px) 50px}
  .universe-stats{grid-template-columns:1fr 1fr}
  .universe-stats div:last-child:nth-child(odd){grid-column:1/-1}
}

/* ---------- The AI Economy Pulse ----------
   Text under the map intro, above the nine trackers the letter scores.
   The only homepage signup box is #updates, further down the page.
   Front Page (style B): newsprint ground, ink type, deep-blue links.
   The map-theme gradient that used to sit here is gone. */
.pulse-signup{
  padding:72px clamp(22px,5vw,76px); border-bottom:1px solid var(--line);
  background:var(--bg); color:var(--ink); scroll-margin-top:116px;
}
.pulse-signup h2{font-size:clamp(26px,3.2vw,40px); letter-spacing:-.03em; line-height:1.1; margin:14px 0 0; color:var(--ink)}
.pulse-lead{font-size:clamp(14.5px,1.5vw,16.5px); line-height:1.7; color:var(--ink); margin:16px 0 0; max-width:62ch}
.pulse-read{margin:18px 0 0; font-size:14.5px; line-height:1.5; max-width:62ch; color:var(--ink)}
.pulse-signup a{color:var(--blue); text-decoration:underline; text-underline-offset:3px}
.pulse-read a{font-weight:700}
.pulse-signup a:hover{color:var(--blue)}
.pulse-signup .signup-never{margin-top:18px; max-width:62ch; color:var(--muted)}
.pulse-signup .signup-note{max-width:62ch; color:var(--muted)}
@media(max-width:860px){
  .pulse-signup{padding:52px clamp(18px,5vw,30px)}
}

/* ---------- Bubble Watch ----------
   Palette tokens only. No traffic-light colours and no dark-theme greys. */
.tracker{padding:74px clamp(22px,5vw,76px) 70px; border-bottom:1px solid var(--accent-2); scroll-margin-top:116px; background:var(--bg); color:var(--ink)}
.track-head{display:grid; grid-template-columns:minmax(0,1.2fr) minmax(0,.8fr); gap:clamp(24px,4vw,64px); align-items:end}
.tracker h2{font-size:clamp(26px,3.2vw,40px); letter-spacing:-.03em; line-height:1.1; margin:14px 0 0; color:var(--ink)}
.track-lede{font-size:15px; line-height:1.68; color:var(--ink); margin:16px 0 0; max-width:62ch}
.track-summary{font-size:clamp(16px,1.7vw,19px); font-weight:700; line-height:1.5; padding-left:15px; border-left:3px solid var(--blue); margin:0; color:var(--ink)}
.track-legend{display:flex; flex-wrap:wrap; gap:8px 18px; margin-top:14px; font-size:12.5px; color:var(--ink)}
.track-leg{display:inline-flex; align-items:center; gap:7px; white-space:nowrap; color:var(--ink)}
.track-leg i{width:9px; height:9px; border-radius:50%; flex:none; border:2px solid var(--ink); background:var(--bg)}
.track-leg b{color:var(--ink); font-variant-numeric:tabular-nums}
.track-leg-red i{border-color:var(--ink); background:var(--accent-2)}
.track-leg-yellow i{border-color:var(--blue); background:var(--bg)}
.track-leg-green i{border-color:var(--blue); background:var(--accent-2)}
.track-leg-gray i{border-color:var(--ink); background:var(--bg)}

.track-list{list-style:none; margin:34px 0 0; padding:0; border-top:1px solid var(--accent-2)}
.track-row{border-bottom:1px solid var(--accent-2); border-left:3px solid transparent; background:var(--bg); color:var(--ink)}
.track-row.track-red{border-left-color:var(--ink)}
.track-row.track-yellow{border-left-color:var(--blue)}
.track-row.track-green{border-left-color:var(--blue)}
.track-row.track-gray{border-left-color:var(--accent-2)}
.track-row summary{
  cursor:pointer; list-style:none; display:flex; align-items:center; gap:18px;
  padding:16px 18px 16px 20px; color:var(--ink); background:var(--bg);
}
.track-row summary::-webkit-details-marker{display:none}
.track-row summary:hover{background:var(--accent-2)}
.track-row summary:focus-visible{outline:2px solid var(--blue); outline-offset:-2px}
.track-pill{flex:none; min-width:168px}
.track-main{display:flex; flex-direction:column; gap:5px; min-width:0; flex:1 1 auto}
.track-q{font-size:16.5px; font-weight:700; letter-spacing:-.012em; color:var(--ink)}
.track-latest{font-size:12.5px; line-height:1.5; color:var(--ink); overflow:hidden; text-overflow:ellipsis; display:-webkit-box; -webkit-line-clamp:1; -webkit-box-orient:vertical}
.track-eff{font-weight:800; font-size:10px; letter-spacing:.09em; text-transform:uppercase}
.track-eff-against{color:var(--ink)} .track-eff-supports{color:var(--blue)}
.track-date{color:var(--ink); white-space:nowrap}
.track-none{font-style:italic; color:var(--ink)}
.track-open{flex:none; color:var(--blue); font-size:18px; font-weight:800; width:14px; text-align:center}
.track-row details[open] .track-open::before{content:"\2212"}
.track-row details[open] .track-open{font-size:0}
.track-row details[open] .track-open::before{font-size:18px}
.track-row details[open] .track-latest{-webkit-line-clamp:unset}
.track-body{padding:2px 20px 22px 20px; max-width:88ch; background:var(--bg); color:var(--ink)}
.track-why{font-size:14px; line-height:1.68; color:var(--ink); margin:0 0 14px}
.track-threshold{font-size:14px; line-height:1.62; color:var(--ink); margin:0 0 8px}
.track-nosource{color:var(--ink); font-weight:700}
.track-working{border-left:2px solid var(--accent-2); padding-left:10px; margin-top:8px !important}
.track-sigs li{font-size:12.5px; color:var(--ink)}
.track-sig-date{color:var(--ink)}
.track-sigs li.eff-minor{border-color:var(--accent-2)}
.track-link{margin:14px 0 0}
.track-link a{color:var(--blue); font-size:13px; font-weight:700}
.track-link a:hover{text-decoration:underline}
.track-row.track-flash{box-shadow:inset 0 0 0 2px var(--blue)}
.tracker .thesis-basis,.tracker .thesis-basis-working{color:var(--ink)}
.tracker .thesis-sigs li.eff-against,.tracker .thesis-sigs li.eff-supports,.tracker .thesis-sigs li.eff-minor{border-color:var(--accent-2)}

.index-strip{padding:16px clamp(22px,5vw,76px); border-bottom:1px solid var(--line); background:#101612}
.index-strip p{margin:0; max-width:110ch; font-size:14.5px; line-height:1.5; color:#c5cdc8}
.index-strip a{color:var(--green); font-weight:700}
.index-strip a:hover{text-decoration:underline}

.track-foot{margin-top:30px; padding-top:22px; border-top:1px solid var(--accent-2); color:var(--ink); background:var(--bg)}
.track-foot .fact-note{max-width:104ch; line-height:1.72}
.track-cta{display:flex; flex-wrap:wrap; gap:12px; margin-top:20px}
@media(max-width:820px){
  .track-head{grid-template-columns:1fr; gap:24px; align-items:start}
  .track-score{margin-top:4px}
}
@media(max-width:640px){
  .tracker{padding:52px clamp(18px,5vw,30px) 50px}
  .track-row summary{flex-wrap:wrap; gap:10px; padding:15px 14px 15px 16px}
  .track-pill{min-width:0; order:2}
  .track-main{order:1; flex-basis:100%}
  .track-open{order:3; margin-left:auto}
  .track-body{padding:2px 14px 20px 16px}
  .track-q{font-size:15.5px}
}

/* The running count under the hero question. Shares its colour vocabulary with the tracker legend. */
.hero-score{
  display:flex; flex-wrap:wrap; gap:8px 20px; margin:20px 0 0; padding:0;
  font-size:13.5px; color:#cfd6d0; justify-content:center;
}
.hero-score-item{display:inline-flex; align-items:center; gap:7px; white-space:nowrap}
.hero-score-item i{width:9px; height:9px; border-radius:50%; flex:none; border:2px solid}
.hero-score-item b{font-variant-numeric:tabular-nums; font-size:15px; color:#fff}
.hero-score-red i{border-color:#ef6a5b; background:rgba(239,106,91,.25)}
.hero-score-yellow i{border-color:#e8b44a; background:rgba(232,180,74,.25)}
.hero-score-green i{border-color:#4cc38a; background:rgba(76,195,138,.25)}
.hero-score-gray i{border-color:#6d766f}
.hero3d-overlay .hero-score{text-shadow:0 0 18px rgba(0,0,0,.85)}
.hero3d-overlay .hero3d-lede{max-width:64ch; margin-left:auto; margin-right:auto}
.hero3d-overlay h1 em{font-style:italic; color:var(--green)}

/* ---------- The reader poll (V3.19) ----------
   One question under the trackers. The trackers say what the evidence says; this asks the reader what
   they think, which is a different thing and is labelled as one. Votes go to Netlify Forms. */
/* scroll-margin so the sticky header does not sit on the heading when the poll is linked to. */
.poll{padding:64px clamp(22px,5vw,76px) 70px; border-bottom:1px solid var(--line); background:#0b100d; scroll-margin-top:116px}
.poll-inner{max-width:760px}
.poll h2{font-size:clamp(26px,3.2vw,40px); letter-spacing:-.03em; margin:14px 0 0}
.poll-sub{font-size:15px; line-height:1.65; color:#a9b2ab; margin:14px 0 0; max-width:60ch}
.poll-form{margin-top:26px}
.poll-form fieldset{border:0; padding:0; margin:0}
.poll-options{display:flex; flex-wrap:wrap; gap:10px}
.poll-option{
  display:inline-flex; align-items:center; gap:9px; cursor:pointer;
  border:1px solid #2c352f; background:#0f1512; border-radius:999px; padding:11px 17px;
  font-size:14px; color:#cfd6d0; transition:border-color .15s, background .15s, color .15s;
}
.poll-option:hover{border-color:#4e5a52; color:#fff}
.poll-option input{accent-color:var(--green); width:16px; height:16px; margin:0; flex:none}
.poll-option:has(input:checked){border-color:var(--green); background:#182019; color:#fff}
.poll-option:has(input:focus-visible){outline:2px solid var(--green); outline-offset:2px}
.poll-form .button{margin-top:20px}
.poll-note{font-size:12px; line-height:1.6; color:#78827b; margin:16px 0 0; max-width:66ch}
.poll-status{margin:18px 0 0; color:var(--green); font-size:15px}
.poll-result{
  margin:22px 0 0; font-size:17px; line-height:1.55; color:var(--ink);
  padding-left:16px; border-left:3px solid var(--green);
}
.poll-again{margin-top:14px; font-size:13px}
/* Netlify's honeypot: off-screen rather than display:none, which screen readers and Netlify both prefer. */
.poll-hp{position:absolute; left:-9999px; top:0; width:1px; height:1px; overflow:hidden}
.visually-hidden{position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap; border:0}
@media(max-width:640px){
  .poll{padding:48px clamp(18px,5vw,30px) 52px}
  .poll-options{flex-direction:column; align-items:stretch}
  .poll-option{border-radius:10px; justify-content:flex-start}
}

/* ---------- Landing scoreboard (preview) ----------
   Sits under the header and above the map. Band colors are the tracker's
   green / yellow / red (#4cc38a, #e8b44a, #ef6a5b). No orange. */
.sb-landing{
  padding:14px 14px 16px; border-bottom:1px solid var(--line);
  background:#0b100d;
}
.sb-head{
  display:flex; align-items:center; justify-content:space-between; gap:8px;
  margin:0 0 4px;
}
.sb-kicker{
  margin:0; font-size:11px; font-weight:800; letter-spacing:.16em; text-transform:uppercase;
  color:var(--muted);
}
.sb-preview{
  display:inline-flex; align-items:center; margin:0; padding:4px 10px;
  background:#26302b; color:var(--muted); border:1px solid #7c867f;
  font-size:12px; font-weight:800; letter-spacing:.04em;
  border-radius:999px; white-space:nowrap; line-height:1.2;
}
.sb-preview[hidden]{display:none}
.sb-score{
  display:flex; align-items:baseline; flex-wrap:wrap; gap:6px 12px; color:inherit;
}
.sb-score-num{
  font-size:clamp(56px, 17vw, 72px); line-height:.85; letter-spacing:-.045em; font-weight:700;
  font-variant-numeric:tabular-nums; color:var(--ink);
}
.sb-change{font-size:14px; font-weight:800; font-variant-numeric:tabular-nums}
.sb-change.is-green,.sb-versus b.is-green{color:#7fdcae}
.sb-change.is-yellow,.sb-versus b.is-yellow{color:#f0c86f}
.sb-change.is-red,.sb-versus b.is-red{color:#C62828}
.sb-fear{
  display:grid; grid-template-columns:auto minmax(0,1fr) auto auto; align-items:center;
  gap:8px; margin-top:10px; color:inherit;
}
.sb-fear-name{
  font-size:11px; font-weight:800; letter-spacing:.14em; text-transform:uppercase; color:var(--muted);
}
.sb-fear-track{
  height:10px; background:#1c2420; border-radius:99px; overflow:hidden;
}
.sb-fear-fill{display:block; height:100%; border-radius:99px; max-width:100%}
.sb-fear-fill.is-green,.sb-versus-bar.is-green{background:#4cc38a}
.sb-fear-fill.is-yellow,.sb-versus-bar.is-yellow{background:#e8b44a}
.sb-fear-fill.is-red,.sb-versus-bar.is-red{background:#ef6a5b}
.sb-fear-value{
  font-size:22px; font-weight:700; line-height:1; font-variant-numeric:tabular-nums; color:var(--ink);
}
.sb-chip{
  display:inline-flex; align-items:center; width:fit-content; max-width:100%;
  padding:2px 6px; border-radius:999px; color:#11170f;
  font-size:10px; font-weight:800; letter-spacing:.01em; line-height:1.3; white-space:nowrap;
}
.sb-chip.is-green{background:#4cc38a}
.sb-chip.is-yellow{background:#e8b44a}
.sb-chip.is-red{background:#ef6a5b}
.sb-chip.is-gray{background:#3a433e;color:#e4e8e5;white-space:normal}
.sb-tiles{
  display:grid; grid-template-columns:repeat(3, minmax(0, 1fr)); gap:6px; margin-top:12px;
}
.sb-tile{
  display:flex; flex-direction:column; align-items:flex-start; gap:3px; min-width:0;
  padding:8px 6px 7px; background:var(--panel); border:1px solid var(--line); border-top:3px solid transparent;
  color:inherit;
}
.sb-tile.is-green{border-top-color:#4cc38a}
.sb-tile.is-yellow{border-top-color:#e8b44a}
.sb-tile.is-red{border-top-color:#ef6a5b}
.sb-tile.is-gray{border-top-color:#7c867f}
.sb-tile:hover,.sb-versus:hover{background:#121915}
.sb-tile-name{
  font-size:12px; line-height:1.2; font-weight:700; color:var(--ink);
  white-space:nowrap;
}
.sb-versus{
  display:block; margin-top:12px; padding-top:10px; border-top:1px solid var(--line); color:inherit;
}
.sb-versus-line{
  display:flex; align-items:center; gap:8px; margin:0;
  font-size:13px; font-weight:700; line-height:1.2;
}
.sb-versus-side{white-space:nowrap; color:var(--ink)}
.sb-versus-who{font-weight:700}
.sb-versus-track{
  flex:1 1 auto; display:flex; align-items:center; gap:3px; min-width:28px; height:8px;
}
.sb-versus-bar{display:block; height:8px; border-radius:99px; min-width:4px}
.sb-ahead{
  margin:6px 0 0; font-size:13px; line-height:1.35; font-weight:700; color:#c5cdc8;
}
.track-row{scroll-margin-top:116px}
/* On a phone the tall centered hero left a large empty band under the scoreboard.
   Keep the map preview, but start the headline a short way below the ticker. */
@media (max-width:375px){
  .hero3d{height:auto; min-height:0; max-height:none}
  .hero3d-overlay{
    position:relative; justify-content:flex-start;
    padding:32px 16px 84px;
  }
}
@media (max-width:360px){
  .sb-landing{padding:12px 10px 14px}
  .sb-tiles{gap:5px}
  .sb-tile{padding:7px 5px 6px}
  .sb-tile-name{font-size:11px}
  .sb-versus-line{font-size:12px; gap:6px}
  .sb-fear{gap:6px}
  .sb-chip{font-size:9.5px; padding:2px 4px}
}
@media (min-width:721px){
  .sb-landing{padding:28px clamp(22px, 5vw, 76px) 22px}
  .sb-body{
    display:grid; grid-template-columns:minmax(0, 1fr);
    row-gap:16px; align-items:center;
  }
  .sb-tiles{grid-column:1; grid-row:1; margin-top:0; gap:8px}
  .sb-versus{grid-column:1; margin-top:0}
  .sb-tile{padding:12px 10px 10px}
  .sb-tile-name{font-size:13px}
  .sb-body:not(:has(.sb-lead)){grid-template-columns:1fr}
  .sb-body:not(:has(.sb-lead)) .sb-tiles{
    grid-column:1; grid-row:1;
    grid-template-columns:repeat(3, minmax(0, 220px));
    justify-content:start;
  }
}

/* ===== homepage v2 (P1-1) =====
   Index bar, tagline and reference. Uses the variables above.
   Follow and boom stay hidden until their own phase.
   The weekly finding is built from site/finding.json and the standings card
   from site/finding-standings.json. An empty finding stays off the page.
   An empty video stays off the page and the copy remains. */
.index-bar{
  background:var(--panel); color:var(--ink); border-bottom:1px solid var(--line);
  font-size:13px; line-height:1.4; max-width:100%;
}
.index-bar[hidden]{display:none}
.index-bar-line, .index-bar-asof{
  max-width:1040px; margin:0 auto; padding:8px 16px 0;
  display:flex; flex-wrap:wrap; align-items:baseline; gap:0 4px; min-width:0;
}
.index-bar-asof{
  display:block; padding-bottom:8px; color:var(--muted); font-size:12px;
}
.index-bar a{color:var(--green); text-decoration:underline; text-underline-offset:3px}
.index-bar a:hover{color:var(--ink)}
.index-bar-neg{color:var(--blue); font-variant-numeric:tabular-nums}
.index-bar-line span{font-variant-numeric:tabular-nums}
.home-v2{
  max-width:1040px; margin:0 auto; padding:28px 16px 8px;
  display:flex; flex-direction:column; gap:40px; min-width:0;
}
.home-v2 > .subscribe-block{margin:0}
.home-intro h1{
  font-family:var(--hero-title-font); font-weight:var(--hero-title-weight);
  font-size:clamp(40px, 8vw, 88px); line-height:var(--hero-title-leading);
  letter-spacing:var(--hero-title-tracking);
  text-transform:uppercase; margin:0; max-width:16ch;
}
.home-intro h1 span{color:var(--green)}
.home-intro p{
  margin:14px 0 0; font-size:clamp(18px, 2.2vw, 22px); line-height:1.45;
  max-width:46ch; color:var(--text-2);
}
.home-intro em{font-style:normal; color:#7fd894}
.home-intro strong{color:#ef6a5b; font-weight:700}
.home-slot[hidden]{display:none}
.home-ref{
  display:grid; grid-template-columns:minmax(0, 1.3fr) minmax(0, 1fr);
  gap:28px; border-top:1px solid var(--line); padding-top:24px; min-width:0;
}
.home-search{display:flex; gap:8px; margin-top:12px; min-width:0}
.home-search input{
  flex:1 1 auto; min-width:0; width:100%;
  background:var(--panel); border:1px solid var(--line); color:var(--ink);
  border-radius:6px; padding:12px 14px; font:inherit;
}
.home-search button{
  background:var(--accent); color:var(--accent-ink); border:0; border-radius:6px;
  padding:12px 16px; font:700 15px Arial, Helvetica, sans-serif; cursor:pointer; flex:none;
}
.home-search button:hover{filter:brightness(1.08)}
.home-reflinks{display:grid; grid-template-columns:1fr 1fr; gap:10px 18px; align-content:end; min-width:0}
.home-reflinks a{text-decoration:underline; text-underline-offset:3px}
.home-reflinks a:hover{color:var(--green)}
.home-v2 input:focus-visible, .home-v2 button:focus-visible, .index-bar a:focus-visible{
  outline:2px solid var(--green); outline-offset:3px;
}
@media (max-width:768px){
  .home-ref, .home-reflinks{grid-template-columns:minmax(0, 1fr)}
}
@media (max-width:400px){
  .home-search{flex-wrap:wrap}
  .home-search button{width:100%}
}

/* Homepage week and the biggest-teams list. Dark panels, site lime, site red.
   No position numbers. One column from 640px down, so 400px does not scroll sideways. */
.home-head{display:flex; flex-direction:column; gap:8px; min-width:0}
.home-head h2{font-size:clamp(28px, 4vw, 40px); line-height:1.05; letter-spacing:-.03em; margin:0}
.home-dek{margin:0; color:var(--muted); max-width:62ch}
.home-week, .home-teams{display:flex; flex-direction:column; gap:16px; min-width:0; max-width:100%}
.home-board{display:grid; grid-template-columns:repeat(2, minmax(0, 1fr)); gap:16px}
.home-tile{
  background:var(--panel); border:1px solid var(--line); border-radius:10px;
  padding:18px; display:flex; flex-direction:column; gap:10px; min-width:0;
}
.home-tag{margin:0; font-size:12px; font-weight:800; letter-spacing:.12em; text-transform:uppercase}
.home-tag-standings{color:var(--green)}
.home-tag-trades{color:#7fd894}
.home-tag-injury{color:#ef6a5b}
.home-tag-schedule{color:#e9c85e}
.home-tile h3{margin:0; font-size:18px; line-height:1.35; overflow-wrap:break-word}
.home-tile p{overflow-wrap:break-word}
.home-note{margin:0; font-size:13px; color:var(--muted)}
.home-sizes, .home-dates, .home-chart{list-style:none; margin:0; padding:0}
.home-sizes, .home-dates{display:flex; flex-direction:column; gap:14px}
.home-size{display:flex; flex-direction:column; gap:6px; min-width:0}
.home-size-line{margin:0; overflow-wrap:break-word}
.home-size-top{display:flex; align-items:center; gap:10px; min-width:0}
.home-size-track{flex:1 1 auto; min-width:0; height:10px; background:var(--accent-2); border-radius:3px; overflow:hidden}
.home-size-fill{display:block; height:100%; background:var(--green)}
.home-size-amt{flex:none; font-weight:700; font-variant-numeric:tabular-nums}
.home-src{margin:0; font-size:12px; line-height:1.4; color:var(--muted); overflow-wrap:break-word}
.home-src a{color:inherit; text-decoration:underline; text-underline-offset:2px}
.home-chart{border-top:1px solid var(--line)}
.home-chart li{
  display:grid; grid-template-columns:14px minmax(0, 1fr); column-gap:10px; row-gap:4px;
  align-items:start; padding:14px 0; border-bottom:1px solid var(--line); min-width:0;
}
.home-chart .home-dot{grid-column:1; grid-row:1; width:9px; height:9px; margin-top:6px; border-radius:50%}
.home-dot-green{background:#7fd894}
.home-dot-yellow{background:#e9c85e}
.home-dot-red{background:#ef6a5b}
.home-dot-gray{background:var(--muted)}
.home-who{grid-column:2; grid-row:1; font-weight:700; min-width:0; overflow-wrap:break-word}
.home-who small{display:block; font-size:12px; font-weight:400; color:var(--muted)}
.home-why{grid-column:2; grid-row:2; color:var(--text); overflow-wrap:break-word}
.home-chart .home-src{grid-column:2; grid-row:3}
@media (max-width:640px){
  .home-board{grid-template-columns:minmax(0, 1fr)}
}

/* Homepage divisions. Colour is the majority of rated companies. Red is the site red. */
.home-divisions{display:flex; flex-direction:column; gap:16px; min-width:0; max-width:100%}
.home-divs{display:grid; grid-template-columns:repeat(2, minmax(0, 1fr)); gap:16px}
.home-div{
  background:var(--panel); border:1px solid var(--line); border-top:4px solid var(--home-c, var(--line));
  border-radius:10px; padding:18px; display:flex; flex-direction:column; gap:12px; min-width:0;
}
.home-div-green{--home-c:#7fd894}
.home-div-yellow{--home-c:#e9c85e}
.home-div-red{--home-c:#ef6a5b}
.home-div-grey{--home-c:var(--line)}
.home-div-head{display:flex; justify-content:space-between; align-items:baseline; gap:10px; flex-wrap:wrap}
.home-div h3{margin:0; font-size:26px; line-height:1; text-transform:uppercase; letter-spacing:.01em}
.home-status{margin:0; color:var(--home-c); font-size:11px; font-weight:800; letter-spacing:.08em; text-transform:uppercase}
.home-div-grey .home-status{color:var(--muted)}
.home-play{margin:0; border-left:2px solid var(--line); padding-left:10px; overflow-wrap:break-word}
.home-story{display:block; margin:0 0 6px; font-size:12px; font-weight:800; letter-spacing:.04em; text-transform:uppercase; color:var(--muted)}
.home-play time{display:block; font-size:12px; color:var(--muted)}
.home-play a{color:inherit; text-decoration:underline; text-underline-offset:2px}
.home-sectors{display:flex; flex-wrap:wrap; gap:6px 12px; margin:0}
.home-sectors a, .home-open{text-decoration:underline; text-underline-offset:3px}
.home-sectors a{color:var(--muted)}
.home-open{margin-top:auto; color:var(--green); font-weight:700}
.home-rule{margin:0; font-size:13px; line-height:1.45; color:var(--muted); overflow-wrap:break-word}
@media (max-width:900px){
  .home-divs{grid-template-columns:repeat(2, minmax(0, 1fr))}
}
@media (max-width:640px){
  .home-divs{grid-template-columns:minmax(0, 1fr)}
}

/* Homepage reader poll. One Substack link. The block is omitted when pollUrl is empty or rejected. */
.home-poll{
  display:flex; flex-direction:column; gap:14px; min-width:0; max-width:100%;
  background:var(--panel); border:1px solid var(--line); border-radius:10px; padding:18px;
}
.home-poll-btn{
  align-self:flex-start; display:inline-block; max-width:100%;
  background:var(--accent); color:var(--accent-ink); border-radius:6px; padding:12px 18px;
  font-weight:700; text-decoration:none; overflow-wrap:anywhere;
}
.home-poll-note{margin:0; font-size:13px; line-height:1.45; color:var(--muted); overflow-wrap:break-word}
@media (max-width:640px){
  .home-poll-btn{align-self:stretch; text-align:center}
}

/* Byline on the Pulse and the weekly finding. Copy is pipeline/byline_copy.json.
   The photo file is 240px square and the box is 120px, so the layout uses the 2x asset.
   Width and height are fixed so the text does not jump when the image arrives. */
.byline{
  display:flex; align-items:flex-start; gap:14px;
  max-width:720px; margin:22px 0 8px; padding:14px 16px;
  background:var(--panel); border:1px solid #35403a; border-left:3px solid var(--green);
}
.byline-photo{
  width:120px; height:120px; flex:0 0 120px;
  object-fit:cover; object-position:center top; background:#3a3f3c; border-radius:2px;
}
.byline-copy{min-width:0; flex:1 1 auto}
.byline p.byline-name{
  margin:0 0 6px; font-size:13px; font-weight:800; letter-spacing:.02em; line-height:1.3; color:var(--ink);
}
.byline p.byline-bio{
  margin:0; font-size:13.5px; line-height:1.45; color:var(--ink); overflow-wrap:break-word;
}
.byline p.byline-bio + p.byline-bio{margin-top:2px}
.post .byline{margin:0 0 28px}
.pulse-archive .byline{margin:22px 0 0}
@media (max-width:720px){
  .byline{gap:12px; padding:12px 14px}
}

/* Weekly finding. Same two-column shape as the homepage prototype.
   Site green, site red is unused here.
   One column from 820px down so a 400px screen does not scroll sideways. */
.home-finding{
  display:grid; grid-template-columns:minmax(0, 1.35fr) minmax(0, 1fr);
  gap:28px 40px; align-items:start; min-width:0; max-width:100%;
}
.home-finding-solo{grid-template-columns:minmax(0, 1fr)}
.home-finding-copy, .home-finding-video{min-width:0; max-width:100%}
.home-finding-kicker{display:block; color:var(--green); overflow-wrap:anywhere}
.home-finding h2{
  font-size:clamp(32px, 4.4vw, 50px); line-height:.95; letter-spacing:-.02em;
  margin:14px 0 18px; text-transform:uppercase; overflow-wrap:break-word;
}
.home-finding-line, .home-finding-why{
  margin:0 0 16px; max-width:62ch; color:var(--ink); overflow-wrap:break-word;
}
.home-finding-label{
  margin:0 0 6px; font-size:12px; font-weight:800; letter-spacing:.12em;
  text-transform:uppercase; color:var(--muted);
}
.home-finding .byline{
  max-width:none; margin:4px 0 0; padding:16px 0; align-items:center;
  background:transparent; border:0; border-radius:0;
  border-top:1px solid var(--line); border-bottom:1px solid var(--line);
}
.home-finding .byline-photo{
  width:52px; height:52px; flex-basis:52px; border-radius:50%; object-position:center top;
}
.home-finding-video{
  margin:0; background:var(--panel); border:1px solid var(--line);
  border-radius:10px; padding:12px;
}
.home-finding-video iframe, .home-finding-video video{
  display:block; width:100%; max-width:100%; aspect-ratio:16 / 9; height:auto;
  border:0; border-radius:6px; background:#000;
}
.home-standings{
  grid-column:1 / -1; min-width:0; max-width:100%;
  background:var(--panel); border:1px solid var(--line); border-top:4px solid var(--green);
  border-radius:10px; padding:18px; display:flex; flex-direction:column; gap:14px;
}
.home-standings h3{
  margin:0; font-size:clamp(26px, 3vw, 34px); line-height:1.05; letter-spacing:-.02em;
  overflow-wrap:break-word;
}
.home-standings-asof, .home-standings-key, .home-standings-disclaimer, .home-standings-note{
  margin:0; max-width:78ch; color:var(--text); overflow-wrap:break-word;
}
.home-standings-asof{color:var(--muted); font-size:13px; font-weight:700; letter-spacing:.04em; text-transform:uppercase}
.home-standings-key, .home-standings-disclaimer, .home-standings-note{font-size:15px; line-height:1.45}
.home-standings-scroll{max-width:100%; min-width:0}
.home-standings-table{width:100%; border-collapse:collapse; font-size:15px; line-height:1.4}
.home-standings-table th{
  text-align:left; font-size:11px; letter-spacing:.08em; text-transform:uppercase;
  color:var(--muted); font-weight:800; padding:0 12px 8px 0; border-bottom:1px solid var(--line);
}
.home-standings-table th:first-child{white-space:nowrap}
.home-standings-table td{
  vertical-align:top; padding:12px 12px 12px 0; border-bottom:1px solid var(--line);
  overflow-wrap:anywhere; color:var(--ink);
}
.home-standings-rank{font-family:var(--font-num); font-weight:700; color:var(--green)}
.home-standings-signup{margin:0}
.home-standings-signup a{
  display:inline-block; max-width:100%; background:var(--accent); color:var(--accent-ink);
  border-radius:6px; padding:12px 18px; font-weight:700; text-decoration:none; overflow-wrap:anywhere;
}
.home-standings-signup a:hover{filter:brightness(1.08)}
.home-standings-sources{list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:10px; min-width:0}
.home-standings-source{margin:0; font-size:14px; line-height:1.4; color:var(--muted); overflow-wrap:anywhere}
.home-standings-source a{color:var(--green); text-decoration:underline; text-underline-offset:2px}
.home-standings-source-label{display:inline-block; margin-right:6px; font-weight:800; color:var(--ink)}
.home-standings-source-date{display:inline-block; margin-left:6px}
@media (max-width:820px){
  .home-finding{grid-template-columns:minmax(0, 1fr); gap:24px}
  .home-standings{padding:14px}
  .home-standings-table thead{position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0)}
  .home-standings-table, .home-standings-table tbody, .home-standings-table tr, .home-standings-table td{display:block; width:100%}
  .home-standings-table tr{
    border:1px solid var(--line); border-radius:8px; padding:10px 12px; margin:0 0 12px;
  }
  .home-standings-table td{border:0; padding:6px 0}
  .home-standings-table td::before{
    content:attr(data-label); display:block; font-size:11px; font-weight:800;
    letter-spacing:.08em; text-transform:uppercase; color:var(--muted);
  }
  .home-standings-signup a{display:block; text-align:center}
}

/* Front page: headlines beside the scoreboard, then rankings, then leagues.
   A hidden division is omitted, so the grid closes up. */
.known-for{margin:10px 0 0; font-size:18px; color:var(--text)}
.home-hero{
  display:grid; grid-template-columns:minmax(0, 1.3fr) minmax(0, .9fr); gap:28px; min-width:0;
}
.home-lead, .home-score{min-width:0}
.home-headlines{list-style:none; margin:12px 0 0; padding:0; display:flex; flex-direction:column; gap:0}
.home-headline{font-size:16px; line-height:1.35; border-bottom:1px solid var(--line); padding:12px 0}
.home-headline a{display:block; color:inherit; text-decoration:none}
.home-headline b{font-weight:700}
.home-headlines span, .home-headline span{display:block; font-family:var(--font-body); font-size:15px; line-height:1.4; color:var(--text-2); font-weight:400}
.home-score{
  background:var(--surface); border:3px solid var(--line); box-shadow:6px 6px 0 var(--accent-2);
  padding:16px; display:flex; flex-direction:column; gap:12px;
}
.home-score-title{margin:0; font-size:clamp(28px, 3.2vw, 40px); line-height:1.05; letter-spacing:-.03em}
.home-score .index-bar{border:0; background:transparent}
.home-score .index-bar-line, .home-score .index-bar-more, .home-score .index-bar-asof{max-width:none; margin:0; padding:0}
.home-score .index-bar-asof:empty{display:none}
.home-poll h2.home-poll-q{
  font-family:var(--font-body); font-weight:600; font-size:18px; line-height:1.35;
  letter-spacing:0; text-transform:none; margin:0;
}
.home-score .home-poll{border:0; padding:0; background:transparent; box-shadow:none}
.home-rankings, .division-page{min-width:0; max-width:100%}
.home-rank-grid{display:grid; grid-template-columns:repeat(2, minmax(0, 1fr)); gap:40px 36px}
.home-rank{
  min-width:0; border-top:3px solid var(--line); padding-top:12px;
  display:flex; flex-direction:column; gap:8px;
}
.home-rank h3{margin:0; font-size:28px}
.home-rankings .home-head h2.home-rank-title{
  font-family:var(--font-num); font-weight:700; font-size:20px; line-height:1.2;
  letter-spacing:.06em; text-transform:uppercase; color:var(--accent); margin:0;
}
.home-rank-name{color:var(--accent); font-size:22px; line-height:1.2; font-weight:700}
.news-label{font-weight:700}
.rank-reason{margin:4px 0 0; font-size:14px; line-height:1.4; color:var(--text-2)}
.home-rank-follow{margin:4px 0 0}
.home-follow, .follow-btn{
  background:transparent; border:0; padding:0; color:var(--accent); font:700 16px var(--font-body);
  cursor:pointer; text-align:left;
}
.follow-panel{
  z-index:80; background:var(--surface); color:var(--ink); border:1px solid var(--line);
  box-shadow:4px 4px 0 var(--accent-2); padding:6px; display:flex; flex-direction:column;
  min-width:min(280px, calc(100vw - 16px)); max-width:calc(100vw - 16px);
}
.follow-panel[hidden]{display:none}
.follow-panel a{display:block; padding:10px 12px; color:var(--ink); font-weight:700; text-decoration:none}
.follow-panel a:hover, .follow-panel a:focus{background:var(--accent-2)}
.home-legend{display:flex; flex-wrap:wrap; gap:12px 18px; margin:0; font-size:14px; color:var(--text-2)}
.home-legend > span{display:inline-flex; align-items:center; gap:6px}
.home-legend .home-dot, .division-health .home-dot, .division-cos .home-dot{
  width:9px; height:9px; border-radius:50%; flex:none; margin-top:0;
}
.home-thin{margin:0; font-weight:700; color:var(--accent)}
.home-asof, .home-rank-note, .home-poll-friday, .home-size{margin:0; color:var(--text-2); font-size:14px}
.home-rank-list{list-style:none; margin:0; padding:0}
.home-rank-list li{
  display:grid; grid-template-columns:2.2em minmax(0, 1fr); gap:8px;
  padding:4px 0; border-bottom:1px solid var(--accent-2); min-width:0;
}
.home-rank-list li>.rank-reason,
.home-rank-list li>.model-sources,
.home-rank-list li>.rank-note{grid-column:2}
.home-rank-list li.rank-unplaced>.home-rank-name{grid-column:2}
.home-place{font-family:var(--font-num); font-weight:700; font-variant-numeric:tabular-nums}
.model-entry{min-width:0}
.model-maker{
  display:inline-block; margin-left:6px; font-size:12px; font-weight:700;
  letter-spacing:.04em; text-transform:uppercase; color:var(--text-2);
  border:1px solid var(--accent-2); border-radius:999px; padding:0 8px; vertical-align:middle;
}
.model-reason{margin:4px 0 0; font-size:14px; line-height:1.45}
.model-sources{margin:4px 0 0; font-size:13px; line-height:1.45}
.model-sources a{color:var(--accent); font-weight:700}
#rank-ai-models .home-rank-list li{align-items:start}
.home-rank-links{margin:0; display:flex; flex-wrap:wrap; gap:12px}
.home-rank-links a, .home-follow{color:var(--accent); font-weight:700}
.rank-table{width:100%; border-collapse:collapse; font-size:16px}
.rank-table th, .rank-table td{text-align:left; padding:6px 8px; border-bottom:1px solid var(--accent-2); overflow-wrap:anywhere}
.rank-table th:first-child, .rank-table td:first-child{white-space:nowrap}
.rank-table th{font-family:var(--font-num); letter-spacing:.04em}
.division-page{max-width:1100px; margin:0 auto; padding:28px 16px 64px}
.division-blurb{margin:8px 0 0; font-size:18px; line-height:1.4; max-width:62ch}
.division-report{display:flex; flex-direction:column; gap:10px; margin-top:16px}
.division-health{display:flex; align-items:center; gap:8px; margin:0; font-weight:700}
.division-report-copy{margin:0; font-size:17px; line-height:1.45}
.division-why{margin:0; font-size:15px; line-height:1.45; color:var(--text-2)}
.division-sources, .division-news, .division-cos{list-style:none; margin:0; padding:0}
.league-panel{
  background:var(--surface-2); color:var(--ink);
  border:1px solid var(--accent-2); border-top:4px solid var(--ink);
  padding:14px 16px 4px; margin-top:14px;
}
.league-kicker{
  margin:0 0 4px; font-family:var(--font-num); font-weight:700; font-size:12px;
  letter-spacing:.16em; text-transform:uppercase; color:var(--accent);
}
.division-sources li{margin:0; padding:10px 0; border-bottom:1px solid var(--accent-2); font-size:15px; line-height:1.45}
.league-panel .division-sources li:last-child{border-bottom:0}
.division-sources a{color:var(--accent); font-weight:700; text-decoration:underline; text-underline-offset:2px}
.division-news{display:flex; flex-direction:column; gap:0; margin-top:0}
.division-news a{
  display:block; padding:10px 0; border:0; border-bottom:1px solid var(--accent-2);
  background:transparent; color:var(--ink); font-weight:700; line-height:1.4;
}
.division-news li:last-child a{border-bottom:0}
.division-news a:hover{color:var(--accent)}
.method-panel{
  background:var(--surface-2); color:var(--ink);
  border:1px solid var(--accent-2); border-top:4px solid var(--ink);
  padding:16px 18px 6px; margin-top:18px;
}
.method-panel h2{
  font-family:var(--font-head); font-weight:400; font-size:clamp(28px, 4vw, 42px);
  letter-spacing:-.03em; line-height:1.05; margin:0 0 8px;
}
.method-panel h3{
  font-family:var(--font-num); font-weight:700; font-size:13px; letter-spacing:.14em;
  text-transform:uppercase; color:var(--accent); margin:16px 0 8px;
}
.legal-wrap .method-panel{
  margin:28px 0; padding:22px 22px 10px;
  background:var(--surface-2); border:1px solid var(--accent-2); border-top:4px solid var(--ink);
}
.legal-wrap .method-panel p, .legal-wrap .method-panel li{margin:0 0 10px}
.home-method{margin:0 0 10px; font-size:16px; line-height:1.55; color:var(--ink)}
.division-cos{display:grid; grid-template-columns:repeat(4, minmax(0, 1fr)); gap:8px 16px; margin-top:8px}
.division-cos li{display:flex; align-items:flex-start; gap:8px; min-width:0}
.division-foot, .division-follow, .division-pulse, .division-disclaimer{margin:12px 0 0}
.division-pulse a{color:var(--accent); font-weight:700; text-decoration:underline; text-underline-offset:2px}
.models-star{margin:0}
.models-star a{color:var(--accent); font-weight:700; text-decoration:none; font-size:22px}
.home-v2, .home-hero, .home-rankings, .home-divisions, .division-page{overflow-wrap:anywhere}
@media (max-width:800px){
  .division-cos{grid-template-columns:repeat(2, minmax(0, 1fr))}
}
@media (max-width:700px){
  .home-hero{grid-template-columns:minmax(0, 1fr)}
  .home-score{order:-1}
  .home-rank-grid{grid-template-columns:minmax(0, 1fr); gap:28px}
  .home-rank-list li{grid-template-columns:2em minmax(0, 1fr)}
}
@media (max-width:520px){
  .division-cos{grid-template-columns:minmax(0, 1fr)}
}
.tracker{background:var(--bg); color:var(--ink)}
.track-row{border-left-color:var(--accent-2)}
.desk-tabs{display:flex; flex-wrap:wrap; gap:8px; margin:0 0 18px}
.desk-tab{font:700 15px/1 var(--font-ui); color:var(--ink); background:var(--surface); border:1px solid var(--accent-2); border-radius:999px; padding:8px 14px; cursor:pointer}
.desk-tab[aria-selected="true"]{background:var(--blue); color:var(--cream); border-color:var(--blue)}
.desk-story{padding:16px 0; border-top:1px solid var(--accent-2)}
.desk-story h3{font-family:var(--font-head); font-size:28px; margin:0 0 8px}
.desk-quote{margin:8px 0; color:var(--ink)}
.desk-around, .desk-huddle, .desk-close{margin-top:28px}
.division-quote{margin:6px 0 0; color:var(--ink)}
.bubble-why[hidden]{display:none}
.article-badge{display:inline-block; margin:0 8px 0 0; padding:3px 8px; border:1px solid var(--accent-2); border-radius:999px; font-size:11px; font-weight:700; letter-spacing:.08em; text-transform:uppercase; color:var(--ink); vertical-align:middle}
.article-tag{display:inline-block; margin:0 8px 8px 0; color:var(--muted); font-size:14px}
.around-articles, .from-the-desk ul{list-style:none; margin:8px 0 18px; padding:0}
.around-articles li, .from-the-desk li{padding:12px 0; border-top:1px solid var(--accent-2); font-size:18px; line-height:1.4}
.from-the-desk{margin:28px 0}
.from-the-desk h2{font-family:var(--font-head); font-size:32px; margin:0 0 8px}
.article-corrections, .article-disclosure, .article-pulse{margin:28px 0 0}
.article-pages{margin:24px 0 0}
.article-pages ol{display:flex; gap:12px; list-style:none; padding:0; margin:0}
footer .article-advice{color:var(--ink); font-size:14px}
@media (max-width:720px){
  .around-articles li, .from-the-desk li{font-size:16px}
  .from-the-desk h2{font-size:26px}
}
@media (max-width:430px){.site-header .brand-badge{height:52px}.brand-word{font-size:15px;letter-spacing:.08em}.brand-compact{gap:6px}}

/* League kit slots. Unused until a page opts in. */
.lg-scoreboard{
  width:100%; max-width:100%; min-width:0;
  background:var(--navy); color:var(--cream);
  font-family:var(--font-head);
  border-top:4px solid var(--muted); border-bottom:4px solid var(--muted);
  overflow-wrap:anywhere;
}
.lg-scoreboard-row{
  display:grid;
  grid-template-columns:minmax(0,1.6fr) repeat(3,minmax(0,.8fr));
  gap:8px 12px; align-items:baseline;
  width:100%; max-width:100%; min-width:0;
  padding:10px 12px;
  border-bottom:1px solid var(--cream);
  font-family:var(--font-ui); font-weight:600; letter-spacing:.04em; text-transform:uppercase;
}
.lg-scoreboard-row:last-child{border-bottom:0}
.lg-scoreboard-row > *{min-width:0; max-width:100%; overflow-wrap:anywhere}
.lg-league-table{
  width:100%; max-width:100%; min-width:0;
  border-collapse:collapse; table-layout:fixed;
  background:var(--cream); color:var(--navy);
  font-family:var(--font-body);
  border-top:4px solid var(--muted);
}
.lg-league-table th,
.lg-league-table td{
  padding:8px 10px; text-align:left; vertical-align:top;
  border-bottom:1px solid var(--muted);
  min-width:0; max-width:100%;
  overflow-wrap:anywhere; word-break:break-word;
}
.lg-league-table th{
  font-family:var(--font-ui); font-weight:600; letter-spacing:.06em; text-transform:uppercase;
  background:var(--navy); color:var(--cream);
}
@media (max-width:430px){
  .lg-scoreboard-row{grid-template-columns:minmax(0,1fr); gap:4px; padding:8px}
  .lg-league-table,
  .lg-league-table thead,
  .lg-league-table tbody,
  .lg-league-table tr,
  .lg-league-table th,
  .lg-league-table td{
    display:block; width:100%; max-width:100%;
  }
  .lg-league-table{table-layout:auto}
  .lg-league-table th,
  .lg-league-table td{padding:6px 8px; white-space:normal}
}
@media (min-width:360px) and (max-width:430px){
  .lg-scoreboard,
  .lg-scoreboard-row,
  .lg-league-table{max-width:100%; overflow-x:clip}
}
