:root {
  color-scheme: dark;
  --bg: #0b0e11;
  --surface: #11161b;
  --surface-2: #151b21;
  --surface-3: #1a2128;
  --ink: #f1eee7;
  --ink-soft: #d5d1c8;
  --muted: #959ca3;
  --muted-2: #717981;
  --line: #303841;
  --line-soft: #222a31;
  --amber: #d49a54;
  --amber-soft: #8a643b;
  --blue: #76a9da;
  --green: #72a58b;
  --red: #c7786e;
  --serif: "Iowan Old Style", "Palatino Linotype", Charter, Georgia, serif;
  --sans: Inter, ui-sans-serif, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  --mono: "SFMono-Regular", Consolas, "Liberation Mono", monospace;
  --max: 1500px;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; scroll-padding-top: 88px; }
body {
  margin: 0;
  overflow-x: hidden;
  background: var(--bg);
  color: var(--ink);
  font-family: var(--sans);
  font-size: 15px;
  line-height: 1.55;
  -webkit-font-smoothing: antialiased;
}
body::before {
  position: fixed;
  inset: 0;
  z-index: -2;
  pointer-events: none;
  content: "";
  background:
    linear-gradient(rgba(255,255,255,.014) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255,255,255,.014) 1px, transparent 1px);
  background-size: 48px 48px;
  mask-image: linear-gradient(to bottom, #000, transparent 82%);
}
body::after {
  position: fixed;
  inset: 0;
  z-index: -1;
  pointer-events: none;
  content: "";
  opacity: .08;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='140' viewBox='0 0 140 140'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.74' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.34'/%3E%3C/svg%3E");
}

a { color: inherit; }
button, input, select { font: inherit; }
button, a, summary { -webkit-tap-highlight-color: transparent; }
button:focus-visible, a:focus-visible, summary:focus-visible, input:focus-visible, select:focus-visible {
  outline: 2px solid var(--blue);
  outline-offset: 3px;
}
h1, h2, h3 { font-family: var(--serif); font-weight: 400; }
p { text-wrap: pretty; }
time, .company-ticker, .theme-count, .hero-note, .research-meta, .radar-card-head, .directory-meta, .modal-meta { font-family: var(--mono); }
.site-shell { width: min(var(--max), calc(100% - 64px)); margin: 0 auto; }

.site-header {
  position: sticky;
  top: 0;
  z-index: 50;
  display: flex;
  min-height: 72px;
  align-items: center;
  justify-content: space-between;
  gap: 32px;
  border-bottom: 1px solid var(--line);
  background: rgba(11,14,17,.92);
  backdrop-filter: blur(18px);
}
.brand { display: inline-flex; align-items: center; gap: 11px; font-size: .98rem; font-weight: 650; letter-spacing: -.02em; text-decoration: none; }
.brand-mark { display: grid; width: 31px; height: 31px; place-items: center; border: 1px solid var(--amber-soft); color: var(--amber); font-family: var(--mono); font-size: .67rem; letter-spacing: -.04em; }
.site-nav { display: flex; align-items: center; gap: clamp(16px, 2vw, 30px); }
.site-nav a { color: var(--muted); font-size: .79rem; text-decoration: none; }
.site-nav a:hover { color: var(--ink); }
.site-nav .nav-search { color: var(--blue); }
.site-nav .nav-search::before { margin-right: 7px; content: "⌕"; font-size: 1.1em; }
.site-nav .nav-cta, .mobile-nav .nav-cta { min-height: 38px; padding: 9px 14px; border: 1px solid var(--amber-soft); color: var(--ink); }
.mobile-nav { display: none; position: relative; }
.mobile-nav summary { min-width: 58px; padding: 10px 0; color: var(--ink); cursor: pointer; font-size: .8rem; list-style: none; text-align: right; }
.mobile-nav summary::-webkit-details-marker { display: none; }
.mobile-nav nav { position: absolute; top: 48px; right: 0; display: grid; width: min(310px, calc(100vw - 32px)); padding: 14px; border: 1px solid var(--line); background: var(--surface-2); box-shadow: 0 20px 70px rgba(0,0,0,.35); }
.mobile-nav nav a { min-height: 45px; padding: 12px 8px; border-bottom: 1px solid var(--line-soft); color: var(--ink-soft); text-decoration: none; }

.hero {
  display: grid;
  min-height: 690px;
  grid-template-columns: minmax(0,.9fr) minmax(520px,1.1fr);
  align-items: center;
  gap: clamp(48px, 6vw, 104px);
  padding: 70px 0 72px;
  border-bottom: 1px solid var(--line);
}
.hero-copy { max-width: 750px; }
.hero-kicker { display: flex; align-items: center; gap: 18px; margin: 0 0 26px; color: var(--muted); font-family: var(--mono); font-size: .68rem; letter-spacing: .06em; text-transform: uppercase; }
.hero-kicker span:first-child { color: var(--amber); }
.hero-kicker span + span::before { margin-right: 18px; color: var(--line); content: "/"; }
.hero h1 { max-width: 780px; margin: 0; font-size: clamp(4.2rem, 6.5vw, 7.3rem); line-height: .86; letter-spacing: -.066em; text-wrap: balance; }
.hero-deck { max-width: 670px; margin: 30px 0 0; color: var(--ink-soft); font-size: clamp(1.16rem, 1.6vw, 1.45rem); line-height: 1.45; }
.hero-subcopy { max-width: 650px; margin: 15px 0 0; color: var(--muted); font-size: .92rem; }
.hero-actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 31px; }
.button { display: inline-flex; min-height: 48px; align-items: center; justify-content: center; padding: 12px 18px; border: 1px solid var(--line); font-size: .78rem; font-weight: 650; letter-spacing: .02em; text-decoration: none; transition: border-color .18s ease, background .18s ease, color .18s ease, transform .18s ease; }
.button:hover { transform: translateY(-1px); }
.button-primary { border-color: var(--amber); background: var(--amber); color: #101214; }
.button-primary:hover { border-color: #e0ad6f; background: #e0ad6f; }
.button-secondary { background: transparent; color: var(--ink); }
.button-secondary:hover { border-color: var(--blue); color: var(--blue); }
.hero-note { margin: 18px 0 0; color: var(--muted-2); font-size: .65rem; text-transform: uppercase; }

.constraint-visual { position: relative; padding: 22px; overflow: hidden; border: 1px solid var(--line); background: linear-gradient(145deg, rgba(21,27,33,.98), rgba(11,14,17,.96)); }
.constraint-visual::before { position: absolute; inset: 0; pointer-events: none; content: ""; opacity: .45; background: radial-gradient(circle at 75% 18%, rgba(118,169,218,.13), transparent 34%), linear-gradient(rgba(255,255,255,.025) 1px, transparent 1px), linear-gradient(90deg, rgba(255,255,255,.025) 1px, transparent 1px); background-size: auto, 24px 24px, 24px 24px; }
.visual-head, .visual-footer { position: relative; display: flex; align-items: center; justify-content: space-between; gap: 20px; color: var(--muted); font-family: var(--mono); font-size: .64rem; letter-spacing: .04em; text-transform: uppercase; }
.visual-head { padding-bottom: 17px; border-bottom: 1px solid var(--line); }
.visual-head span { color: var(--blue); }
.visual-flow { position: relative; display: grid; padding: 32px 0; grid-template-columns: 1fr; }
.visual-node { position: relative; z-index: 2; display: grid; min-height: 92px; padding: 17px 19px; grid-template-columns: 115px 1fr; align-items: center; border: 1px solid var(--line); background: rgba(17,22,27,.94); }
.visual-node::before { position: absolute; top: 50%; left: -5px; width: 9px; height: 9px; border: 1px solid var(--blue); background: var(--surface); content: ""; transform: rotate(45deg) translateY(-50%); }
.visual-node > span { grid-row: 1 / 3; color: var(--muted-2); font-family: var(--mono); font-size: .63rem; letter-spacing: .04em; text-transform: uppercase; }
.visual-node strong { font-family: var(--serif); font-size: 1.3rem; font-weight: 400; line-height: 1.1; }
.visual-node small { margin-top: 4px; color: var(--muted); font-family: var(--mono); font-size: .64rem; text-transform: uppercase; }
.visual-node.is-constraint { border-color: var(--amber-soft); background: linear-gradient(90deg, rgba(212,154,84,.09), rgba(17,22,27,.95)); }
.visual-node.is-constraint::after { position: absolute; top: 12px; right: 12px; color: var(--amber); content: "Binding"; font-family: var(--mono); font-size: .57rem; letter-spacing: .08em; text-transform: uppercase; }
.visual-link { width: 1px; height: 26px; margin-left: 22px; background: var(--blue); opacity: .55; }
.visual-link.is-hot { background: var(--amber); box-shadow: 0 0 18px rgba(212,154,84,.45); animation: signal-pulse 3.4s ease-in-out infinite; }
.visual-footer { padding-top: 17px; border-top: 1px solid var(--line); text-transform: none; }
.visual-footer a { color: var(--blue); text-decoration: none; }
.signal-dot { display: inline-block; width: 7px; height: 7px; margin-right: 7px; border-radius: 50%; background: var(--green); box-shadow: 0 0 0 3px rgba(114,165,139,.12); }
@keyframes signal-pulse { 0%,100% { opacity: .45; } 50% { opacity: 1; } }

.section-block { padding: 98px 0; border-bottom: 1px solid var(--line); }
.anchor-target { display: block; position: relative; top: -88px; visibility: hidden; }
.section-heading { display: grid; margin-bottom: 40px; grid-template-columns: minmax(0,1.35fr) minmax(280px,.65fr); align-items: end; gap: 60px; }
.section-heading > p { max-width: 540px; justify-self: end; margin: 0; color: var(--muted); font-size: .88rem; }
.eyebrow { margin: 0 0 12px; color: var(--amber); font-family: var(--mono); font-size: .66rem; font-weight: 650; letter-spacing: .1em; text-transform: uppercase; }
.section-heading h2, .method-statement h2, .newsletter h2, .final-cta h2 { max-width: 900px; margin: 0; font-size: clamp(2.8rem, 4.9vw, 5.6rem); line-height: .95; letter-spacing: -.052em; }
.section-action { display: flex; align-items: center; gap: 24px; margin-top: 28px; }
.text-action { display: inline-flex; align-items: center; gap: 8px; padding: 8px 0; border-bottom: 1px solid currentColor; color: var(--blue); font-size: .78rem; font-weight: 650; text-decoration: none; }
.text-action::after { content: "→"; }

.radar-grid { display: grid; grid-template-columns: repeat(5, minmax(0,1fr)); border-top: 1px solid var(--line); border-left: 1px solid var(--line); }
.radar-card { display: flex; min-height: 360px; flex-direction: column; padding: 21px; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); background: rgba(17,22,27,.42); transition: background .18s ease; }
.radar-card:hover { background: var(--surface); }
.radar-card-head { display: flex; align-items: center; color: var(--muted-2); font-size: .58rem; text-transform: uppercase; }
.radar-card h3 { min-height: 70px; margin: 30px 0 13px; font-size: 1.52rem; line-height: 1.05; }
.radar-card > p { margin: 0; color: var(--muted); font-size: .8rem; }
.radar-card dl { margin: auto 0 21px; }
.radar-card dl > div { padding: 10px 0; border-top: 1px solid var(--line-soft); }
.radar-card dt { color: var(--muted-2); font-family: var(--mono); font-size: .58rem; text-transform: uppercase; }
.radar-card dd { margin: 4px 0 0; color: var(--ink-soft); font-size: .73rem; }
.radar-card > a { color: var(--blue); font-size: .74rem; font-weight: 650; text-decoration: none; }

.atlas-grid { display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: 16px; }
.atlas-card { position: relative; display: flex; min-height: 520px; flex-direction: column; padding: 25px; border: 1px solid var(--line); background: var(--surface); }
.atlas-card header { display: flex; align-items: flex-start; justify-content: space-between; gap: 18px; padding-bottom: 19px; border-bottom: 1px solid var(--line); }
.atlas-card h3 { margin: 5px 0 0; font-size: 2rem; line-height: 1; }
.company-ticker { margin: 0; color: var(--blue); font-size: .63rem; letter-spacing: .06em; text-transform: uppercase; }
.atlas-score { flex: 0 0 auto; color: var(--amber); font-family: var(--serif); font-size: 2.6rem; line-height: .8; }
.atlas-score::after { display: block; margin-top: 8px; color: var(--muted-2); content: "ALPHA"; font-family: var(--mono); font-size: .5rem; letter-spacing: .1em; text-align: center; }
.atlas-layer, .atlas-thesis, .atlas-risk { margin: 19px 0 0; color: var(--ink-soft); font-size: .8rem; line-height: 1.55; }
.atlas-card p > span { display: block; margin-bottom: 6px; color: var(--muted-2); font-family: var(--mono); font-size: .56rem; letter-spacing: .08em; text-transform: uppercase; }
.atlas-risk { color: #d6aaa3; }
.atlas-card footer { display: flex; flex-wrap: wrap; gap: 7px 14px; margin-top: auto; padding-top: 18px; border-top: 1px solid var(--line-soft); color: var(--muted); font-family: var(--mono); font-size: .58rem; text-transform: uppercase; }
.atlas-card footer time { width: 100%; }
.atlas-card > a { margin-top: 18px; color: var(--blue); font-size: .74rem; font-weight: 650; text-decoration: none; }

.system-map { display: grid; grid-template-columns: 1fr 1fr; border-top: 1px solid var(--line); border-left: 1px solid var(--line); }
.system-map article { padding: 28px; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); background: rgba(17,22,27,.48); }
.system-map header { display: flex; align-items: baseline; justify-content: space-between; gap: 20px; }
.system-map header > span { color: var(--muted-2); font-family: var(--mono); font-size: .62rem; }
.system-map h3 { margin: 0; font-size: 2rem; }
.system-map ol { margin: 28px 0 24px; padding: 0; list-style: none; }
.system-map li { position: relative; display: grid; min-height: 74px; padding: 16px 18px 16px 44px; grid-template-columns: 120px 1fr; align-items: center; border-top: 1px solid var(--line-soft); }
.system-map li::before { position: absolute; left: 17px; width: 7px; height: 7px; border: 1px solid var(--blue); content: ""; transform: rotate(45deg); }
.system-map li::after { position: absolute; top: 45px; bottom: -30px; left: 20px; width: 1px; background: var(--line); content: ""; }
.system-map li:last-child::after { display: none; }
.system-map li > span { color: var(--muted-2); font-family: var(--mono); font-size: .58rem; text-transform: uppercase; }
.system-map li strong { color: var(--ink-soft); font-weight: 500; }
.system-map li strong small { color: var(--blue); font-family: var(--mono); font-size: .63rem; font-weight: 400; }
.system-map li.map-constraint { background: rgba(212,154,84,.06); }
.system-map li.map-constraint::before { border-color: var(--amber); background: var(--amber); }
.system-map article > a { color: var(--blue); font-size: .74rem; text-decoration: none; }

.research-grid { display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); border-top: 1px solid var(--line); border-left: 1px solid var(--line); }
.research-card { display: flex; min-height: 380px; flex-direction: column; padding: 25px; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.research-meta { display: flex; align-items: center; justify-content: space-between; color: var(--muted-2); font-size: .6rem; text-transform: uppercase; }
.research-meta span { color: var(--green); }
.research-card h3 { margin: 35px 0 18px; font-size: 2rem; line-height: 1.05; }
.research-card h3 a { text-decoration: none; }
.research-card h3 a:hover { color: var(--blue); }
.research-card > p { margin: 0; color: var(--muted); font-size: .82rem; }
.research-card footer { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-top: auto; padding-top: 17px; border-top: 1px solid var(--line-soft); color: var(--muted-2); font-family: var(--mono); font-size: .58rem; text-transform: uppercase; }
.research-card footer a { color: var(--blue); font-family: var(--sans); font-size: .7rem; font-weight: 650; text-decoration: none; text-transform: none; }

.methodology { display: grid; grid-template-columns: minmax(310px,.75fr) minmax(0,1.25fr); gap: clamp(50px, 8vw, 130px); }
.method-statement h2 { max-width: 640px; }
.method-statement > p:not(.eyebrow) { max-width: 570px; margin: 24px 0; color: var(--muted); }
.method-steps { margin: 0; padding: 0; list-style: none; border-top: 1px solid var(--line); }
.method-steps li { display: grid; min-height: 76px; padding: 16px 0; grid-template-columns: 58px 1fr; align-items: center; border-bottom: 1px solid var(--line); }
.method-steps span { color: var(--amber); font-family: var(--mono); font-size: .65rem; }
.method-steps p { margin: 0; color: var(--ink-soft); font-size: .9rem; }

.process-grid { display: grid; grid-template-columns: repeat(4, minmax(0,1fr)); border-top: 1px solid var(--line); border-left: 1px solid var(--line); }
.process-grid article { min-height: 230px; padding: 23px; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.process-grid article > span { color: var(--muted-2); font-family: var(--mono); font-size: .59rem; letter-spacing: .06em; text-transform: uppercase; }
.process-grid strong { display: block; margin: 34px 0 14px; color: var(--amber); font-family: var(--serif); font-size: 3.2rem; font-weight: 400; line-height: 1; }
.process-grid p { margin: 0; color: var(--muted); font-size: .76rem; }
.process-grid .process-empty { background: repeating-linear-gradient(-45deg, transparent, transparent 8px, rgba(255,255,255,.018) 8px, rgba(255,255,255,.018) 9px); }
.process-grid .process-empty strong { color: var(--muted); font-family: var(--mono); font-size: .94rem; text-transform: uppercase; }

.theme-list { border-top: 1px solid var(--line); }
.theme-row { display: grid; min-height: 108px; padding: 18px 0; grid-template-columns: 60px minmax(240px,1.1fr) minmax(300px,1.1fr) 160px 140px; align-items: center; gap: 22px; border-bottom: 1px solid var(--line); }
.theme-index { color: var(--amber); font-family: var(--mono); font-size: .67rem; }
.theme-row h3 { margin: 0; font-size: 1.65rem; letter-spacing: -.025em; }
.theme-description { margin: 0; color: var(--muted); font-size: .78rem; }
.theme-count { color: var(--ink-soft); font-size: .63rem; text-transform: uppercase; }
.theme-state { justify-self: end; color: var(--blue); font-size: .74rem; font-weight: 650; text-decoration: none; }
.theme-state::after { margin-left: 8px; content: "→"; }
.theme-row.is-subtheme { min-height: 78px; padding-left: 60px; background: rgba(118,169,218,.03); }
.theme-row.is-subtheme h3 { font-size: 1.35rem; }

.newsletter { display: flex; align-items: flex-end; justify-content: space-between; gap: 60px; padding: 70px 0; }
.newsletter h2 { font-size: clamp(3.2rem, 6vw, 6.4rem); }
.newsletter > div > p:not(.eyebrow) { max-width: 680px; margin: 20px 0 0; color: var(--muted); }
.newsletter > .button { flex: 0 0 auto; }
.final-cta { padding: 130px 0; border-bottom: 1px solid var(--line); text-align: center; }
.final-cta h2 { max-width: 950px; margin: 0 auto; }
.final-cta > div { display: flex; justify-content: center; gap: 12px; margin-top: 33px; }

.site-footer { display: grid; padding: 52px 0 28px; grid-template-columns: 2fr 1fr 1fr; gap: 50px; color: var(--muted); }
.footer-brand .brand { color: var(--ink); }
.footer-brand p { max-width: 390px; margin: 18px 0 0; font-size: .76rem; }
.footer-links { display: grid; align-content: start; gap: 9px; }
.footer-links span { margin-bottom: 4px; color: var(--ink); font-family: var(--mono); font-size: .61rem; letter-spacing: .08em; text-transform: uppercase; }
.footer-links a { font-size: .76rem; text-decoration: none; }
.footer-links a:hover { color: var(--blue); }
.footer-legal { display: flex; grid-column: 1 / -1; align-items: flex-start; justify-content: space-between; gap: 40px; padding-top: 25px; border-top: 1px solid var(--line); font-family: var(--mono); font-size: .57rem; text-transform: uppercase; }
.footer-legal p { max-width: 760px; margin: 0; text-align: right; }

/* Public sector research pages */
.directory-head { padding: 52px 0 42px; border-bottom: 1px solid var(--line); }
.theme-intro { padding-top: 38px; }
.back-link { display: inline-block; margin-bottom: 22px; color: var(--blue); font-size: .75rem; text-decoration: none; }
.back-link::before { margin-right: 8px; content: "←"; }
.directory-head h1 { max-width: 1120px; margin: 0 0 18px; font-size: clamp(3.5rem, 6.4vw, 7rem); line-height: .88; letter-spacing: -.06em; }
.directory-description { max-width: 900px; margin: 0; color: var(--ink-soft); font-size: 1.06rem; }
.directory-meta { display: flex; flex-wrap: wrap; gap: 14px 24px; margin-top: 24px; color: var(--muted); font-size: .65rem; text-transform: uppercase; }
.directory-meta strong { color: var(--amber); font-weight: 500; }
.directory-meta span + span { padding-left: 24px; border-left: 1px solid var(--line); }
.scoring-context { max-width: 970px; margin: 16px 0 0; color: var(--muted); font-size: .75rem; }
.scoring-context strong { color: var(--ink-soft); }
.subtheme-nav { display: grid; margin-top: 28px; grid-template-columns: 150px repeat(3,minmax(0,1fr)); border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.subtheme-nav > span, .subtheme-nav a { display: flex; min-height: 58px; align-items: center; justify-content: space-between; gap: 14px; padding: 0 16px; border-right: 1px solid var(--line); color: var(--muted); font-size: .74rem; text-decoration: none; }
.subtheme-nav > span { padding-left: 0; color: var(--amber); font-family: var(--mono); text-transform: uppercase; }
.subtheme-nav a:last-child { border-right: 0; }
.subtheme-nav a:hover { color: var(--blue); }
.subtheme-nav strong { color: var(--ink); font-family: var(--mono); font-size: .8rem; font-weight: 400; }
.editorial-overview { display: grid; padding: 85px 0; grid-template-columns: minmax(280px,.65fr) minmax(0,1.35fr); gap: 80px; border-bottom: 1px solid var(--line); }
.editorial-overview h2, .segment-overview h2, .preview-heading h2, .gate-cta h2, .faq-section h2 { margin: 0; font-size: clamp(2.7rem, 4.5vw, 5rem); line-height: .95; letter-spacing: -.045em; }
.editorial-copy { max-width: 850px; }
.editorial-copy p { margin: 0 0 21px; color: var(--ink-soft); font-size: .97rem; line-height: 1.75; }
.editorial-copy p:last-child { margin-bottom: 0; }
.segment-overview { padding: 74px 0; border-bottom: 1px solid var(--line); }
.segment-overview ul { display: grid; margin: 30px 0 0; padding: 0; grid-template-columns: repeat(3,1fr); list-style: none; border-top: 1px solid var(--line); border-left: 1px solid var(--line); }
.segment-overview li { min-height: 110px; padding: 20px; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.segment-overview li strong { display: block; font-family: var(--serif); font-size: 1.24rem; font-weight: 400; }
.segment-overview li span { display: block; margin-top: 8px; color: var(--muted); font-family: var(--mono); font-size: .59rem; text-transform: uppercase; }
.preview-section { padding: 76px 0; border-bottom: 1px solid var(--line); }
.preview-heading { display: flex; align-items: end; justify-content: space-between; gap: 55px; margin-bottom: 34px; }
.preview-heading > p { max-width: 500px; margin: 0; color: var(--muted); }
.preview-list { border-top: 1px solid var(--line); }
.preview-company { display: grid; min-height: 142px; padding: 21px 0; grid-template-columns: minmax(220px,.8fr) minmax(210px,.72fr) minmax(340px,1.48fr); align-items: center; gap: 34px; border-bottom: 1px solid var(--line); }
.preview-company h3 { margin: 0; font-size: 1.65rem; }
.preview-company p { margin: 0; }
.preview-ticker { margin-top: 6px !important; color: var(--blue); font-family: var(--mono); font-size: .62rem; text-transform: uppercase; }
.preview-layer { color: var(--ink-soft); font-size: .79rem; }
.preview-layer span { display: block; margin-bottom: 5px; color: var(--muted-2); font-family: var(--mono); font-size: .56rem; text-transform: uppercase; }
.preview-insight { color: var(--muted); font-size: .82rem; line-height: 1.6; }
.gate-cta { display: flex; align-items: center; justify-content: space-between; gap: 60px; margin: 72px 0; padding: 38px; border: 1px solid var(--amber-soft); background: linear-gradient(110deg, rgba(212,154,84,.08), var(--surface)); }
.gate-cta h2 { max-width: 810px; }
.gate-cta p:not(.eyebrow) { max-width: 720px; margin: 15px 0 0; color: var(--muted); }
.gate-button { flex: 0 0 auto; min-height: 49px; padding: 13px 18px; border: 1px solid var(--amber); background: var(--amber); color: #101214; font-size: .77rem; font-weight: 700; text-decoration: none; }
.faq-section { padding: 72px 0; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.faq-section h2 { margin-bottom: 28px; }
.faq-section details { padding: 19px 0; border-top: 1px solid var(--line); }
.faq-section summary { color: var(--ink-soft); cursor: pointer; font-family: var(--serif); font-size: 1.3rem; }
.faq-section details p { max-width: 850px; margin: 13px 0 0; color: var(--muted); }

/* Gated Atlas */
.directory-page .site-header { margin-bottom: 0; }
.filter-wrap { position: sticky; top: 72px; z-index: 30; margin: 0 -32px; padding: 15px 32px 18px; border-bottom: 1px solid var(--line); background: rgba(11,14,17,.96); backdrop-filter: blur(18px); }
.filter-heading { display: flex; align-items: end; justify-content: space-between; gap: 24px; margin-bottom: 12px; }
.filter-heading > div { display: grid; }
.filter-heading span { color: var(--amber); font-family: var(--mono); font-size: .56rem; text-transform: uppercase; }
.filter-heading strong { color: var(--ink-soft); font-size: .76rem; font-weight: 500; }
.filter-heading p { max-width: 680px; margin: 0; overflow: hidden; color: var(--muted-2); font-family: var(--mono); font-size: .56rem; text-overflow: ellipsis; white-space: nowrap; }
.filter-bar { display: grid; grid-template-columns: minmax(180px,1.35fr) repeat(4,minmax(115px,.8fr)) repeat(2,minmax(125px,.85fr)) minmax(155px,1fr) auto; gap: 12px; align-items: end; }
.filter-field { display: grid; gap: 5px; }
.filter-field label { color: var(--muted); font-family: var(--mono); font-size: .56rem; letter-spacing: .03em; text-transform: uppercase; }
.filter-field input, .filter-field select { width: 100%; min-height: 40px; padding: 8px 10px; border: 1px solid var(--line); border-radius: 0; background: var(--surface); color: var(--ink); font-size: .75rem; }
.filter-field input::placeholder { color: var(--muted-2); }
.filter-reset { min-height: 40px; padding: 0 6px; border: 0; background: transparent; color: var(--blue); cursor: pointer; font-size: .73rem; }
.directory-layout { display: grid; grid-template-columns: minmax(0,1fr) 255px; }
.results { min-width: 0; padding: 23px 28px 0 0; }
.results-summary { margin-bottom: 14px; color: var(--muted); font-family: var(--mono); font-size: .63rem; text-transform: uppercase; }
.result-columns, .company-row { display: grid; grid-template-columns: minmax(160px,1.15fr) 50px 58px 70px 76px 58px 64px minmax(92px,.75fr) minmax(230px,1.5fr); gap: 11px; }
.result-columns { padding: 0 10px 11px; color: var(--muted-2); font-family: var(--mono); font-size: .52rem; letter-spacing: .03em; text-transform: uppercase; }
.company-row { position: relative; min-height: 138px; padding: 19px 10px; align-items: center; border-top: 1px solid var(--line); transition: background .15s ease; }
.company-row > * { min-width: 0; overflow-wrap: anywhere; }
.company-row:hover { background: rgba(118,169,218,.035); }
.company-name { font-family: var(--serif); font-size: 1.4rem; line-height: 1.08; }
.company-ticker { margin-top: 5px; }
.score-alpha { color: var(--amber); font-family: var(--serif); font-size: 2rem; }
.score-small { color: var(--ink-soft); font-family: var(--serif); font-size: 1.5rem; }
.cell-label { display: none; }
.company-cell { color: var(--muted); font-size: .7rem; }
.company-thesis { color: var(--muted); font-size: .7rem; line-height: 1.5; }
.company-thesis strong { display: block; color: var(--ink-soft); font-weight: 600; }
.company-thesis strong:nth-of-type(2) { display: inline; margin-right: 4px; color: var(--red); }
.detail-button { display: inline-flex; margin-top: 8px; padding: 0; border: 0; background: none; color: var(--blue); cursor: pointer; font-size: .71rem; }
.detail-button::after { margin-left: 7px; content: "→"; }
.company-row[hidden], .empty-state[hidden] { display: none; }
.empty-state { padding: 72px 20px; border-top: 1px solid var(--line); text-align: center; }
.empty-state h2 { margin: 0 0 8px; font-size: 2rem; }
.empty-state p { margin: 0; color: var(--muted); }
.theme-rail { padding: 26px 0 0 25px; border-left: 1px solid var(--line); }
.theme-rail h2 { margin: 0 0 13px; font-size: 1.45rem; }
.theme-breakdown { margin: 0; padding: 0; list-style: none; }
.theme-breakdown li { display: flex; justify-content: space-between; gap: 16px; padding: 8px 0; color: var(--muted); font-size: .72rem; }
.theme-breakdown li strong { color: var(--ink-soft); font-family: var(--mono); font-size: .63rem; }
.theme-breakdown li.total { margin-top: 8px; padding-top: 14px; border-top: 1px solid var(--line); color: var(--amber); }
.rail-note { margin-top: 25px; padding-top: 19px; border-top: 1px solid var(--line); }
.rail-note p { color: var(--muted); font-size: .74rem; }

.modal-backdrop { position: fixed; inset: 0; z-index: 100; display: grid; padding: 24px; place-items: center; background: rgba(3,5,7,.82); }
.modal-backdrop[hidden] { display: none; }
.detail-modal { width: min(800px,100%); max-height: min(860px,calc(100vh - 48px)); overflow: auto; padding: 32px; border: 1px solid var(--line); background: var(--surface); box-shadow: 0 28px 100px rgba(0,0,0,.5); }
.modal-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 20px; }
.modal-head h2 { margin: 0; font-size: 2.65rem; line-height: .95; }
.modal-close { min-width: 42px; min-height: 42px; border: 1px solid var(--line); background: none; color: var(--ink); cursor: pointer; font-size: 1.5rem; }
.modal-meta { margin: 9px 0 15px; color: var(--blue); font-size: .65rem; text-transform: uppercase; }
.modal-status { display: flex; align-items: center; justify-content: space-between; gap: 16px; color: var(--muted); font-family: var(--mono); font-size: .59rem; text-transform: uppercase; }
.modal-status a { color: var(--blue); text-decoration: none; }
.modal-scores { display: flex; gap: 34px; margin-top: 18px; padding: 15px 0; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.modal-score span { display: block; color: var(--muted-2); font-family: var(--mono); font-size: .56rem; text-transform: uppercase; }
.modal-score strong { color: var(--amber); font-family: var(--serif); font-size: 1.8rem; font-weight: 400; }
.modal-section { margin-top: 22px; }
.modal-section h3 { margin: 0 0 6px; font-size: 1.25rem; }
.modal-section p { margin: 0; color: var(--muted); font-size: .84rem; }
.modal-label { margin-bottom: 5px !important; color: var(--muted-2) !important; font-family: var(--mono); font-size: .55rem !important; letter-spacing: .08em; text-transform: uppercase; }
.fact-block, .interpretation-block, .risk-block { padding: 16px; border-left: 2px solid var(--green); background: rgba(114,165,139,.045); }
.interpretation-block { border-color: var(--blue); background: rgba(118,169,218,.045); }
.risk-block { border-color: var(--red); background: rgba(199,120,110,.045); }
.investment-lens { padding: 17px; border: 1px solid var(--amber-soft); background: rgba(212,154,84,.055); }
.investment-lens h3 { margin-top: 16px; font-size: 1.05rem; }
.investment-lens h3:first-of-type { margin-top: 0; }
.investment-lens h3 + p { font-size: .82rem; line-height: 1.55; }
.lens-kicker { margin: 0 0 12px !important; color: var(--amber) !important; font-family: var(--mono); font-size: .57rem !important; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; }
.evidence-list { margin: 0; padding-left: 18px; color: var(--muted); }
.evidence-list li { margin-bottom: 8px; }
.evidence-list a { color: var(--blue); }
body.modal-open { overflow: hidden; }

@media (max-width: 1320px) {
  .site-shell { width: min(var(--max), calc(100% - 40px)); }
  .site-nav { gap: 16px; }
  .hero { grid-template-columns: minmax(0,.95fr) minmax(480px,1.05fr); gap: 48px; }
  .radar-grid { grid-template-columns: repeat(3,minmax(0,1fr)); }
  .filter-wrap { margin: 0 -20px; padding-right: 20px; padding-left: 20px; }
  .filter-bar { grid-template-columns: repeat(4,minmax(130px,1fr)); }
  .filter-reset { justify-self: start; }
  .directory-layout { grid-template-columns: 1fr; }
  .results { padding-right: 0; }
  .result-columns { display: none; }
  .company-row { grid-template-columns: minmax(180px,1.2fr) repeat(3,68px) 90px; }
  .company-cell:nth-of-type(6), .company-cell:nth-of-type(7), .company-cell:nth-of-type(8) { display: none; }
  .company-thesis { grid-column: 1 / -1; }
  .theme-rail { margin-top: 30px; padding: 24px 0 0; border-top: 1px solid var(--line); border-left: 0; }
}

@media (max-width: 1040px) {
  .site-nav { display: none; }
  .mobile-nav { display: block; }
  .hero { min-height: auto; grid-template-columns: 1fr; }
  .hero-copy { max-width: 840px; }
  .constraint-visual { width: 100%; }
  .radar-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .atlas-grid, .research-grid { grid-template-columns: 1fr 1fr; }
  .atlas-card:last-child, .research-card:last-child { grid-column: 1 / -1; }
  .methodology { grid-template-columns: 1fr; gap: 50px; }
  .process-grid { grid-template-columns: 1fr 1fr; }
  .theme-row { grid-template-columns: 42px minmax(170px,.9fr) minmax(220px,1.1fr) 125px; gap: 16px; }
  .theme-state { grid-column: 4; grid-row: 2; }
  .theme-count { grid-column: 4; }
  .editorial-overview { grid-template-columns: 1fr; gap: 34px; }
  .segment-overview ul { grid-template-columns: 1fr 1fr; }
  .preview-company { grid-template-columns: 1fr 1fr; }
  .preview-insight { grid-column: 1 / -1; }
}

@media (max-width: 760px) {
  html { scroll-padding-top: 68px; }
  .site-shell { width: calc(100% - 28px); }
  .site-header { min-height: 62px; }
  .brand { font-size: .9rem; }
  .brand-mark { width: 29px; height: 29px; }
  .hero { gap: 44px; padding: 52px 0 56px; }
  .hero-kicker { align-items: flex-start; flex-direction: column; gap: 6px; margin-bottom: 20px; }
  .hero-kicker span + span::before { display: none; }
  .hero h1 { font-size: clamp(3.45rem, 16vw, 5.25rem); line-height: .88; }
  .hero-deck { margin-top: 23px; font-size: 1.08rem; }
  .hero-actions, .section-action, .final-cta > div { align-items: stretch; flex-direction: column; }
  .hero-actions .button, .section-action .button, .final-cta .button { width: 100%; }
  .visual-head, .visual-footer { align-items: flex-start; flex-direction: column; gap: 7px; }
  .visual-node { grid-template-columns: 86px 1fr; padding: 15px; }
  .visual-node strong { font-size: 1.12rem; }
  .visual-node.is-constraint::after { display: none; }
  .section-block { padding: 72px 0; }
  .section-heading { margin-bottom: 30px; grid-template-columns: 1fr; gap: 18px; }
  .section-heading > p { justify-self: start; }
  .section-heading h2, .method-statement h2, .newsletter h2, .final-cta h2 { font-size: clamp(2.65rem, 12vw, 4rem); }
  .radar-grid, .atlas-grid, .system-map, .research-grid, .process-grid { grid-template-columns: 1fr; }
  .atlas-card:last-child, .research-card:last-child { grid-column: auto; }
  .radar-card { min-height: 320px; }
  .atlas-card { min-height: 480px; }
  .system-map header { align-items: flex-start; flex-direction: column; gap: 7px; }
  .system-map li { padding-left: 39px; grid-template-columns: 88px 1fr; }
  .research-card { min-height: 350px; }
  .newsletter { align-items: flex-start; flex-direction: column; gap: 30px; padding: 62px 0; }
  .newsletter > .button { width: 100%; }
  .final-cta { padding: 92px 0; }
  .theme-row, .theme-row.is-subtheme { min-height: 0; padding: 22px 0; grid-template-columns: 36px 1fr; gap: 9px 12px; }
  .theme-row h3 { font-size: 1.48rem; }
  .theme-description, .theme-count, .theme-state { grid-column: 2; }
  .theme-state { grid-row: auto; justify-self: start; }
  .site-footer { grid-template-columns: 1fr 1fr; gap: 36px 24px; }
  .footer-brand { grid-column: 1 / -1; }
  .footer-legal { align-items: flex-start; flex-direction: column; gap: 13px; }
  .footer-legal p { text-align: left; }
  .directory-head { padding: 42px 0 34px; }
  .directory-head h1 { font-size: clamp(3.2rem, 15vw, 5rem); }
  .directory-meta { align-items: flex-start; flex-direction: column; gap: 7px; }
  .directory-meta span + span { padding-left: 0; border-left: 0; }
  .subtheme-nav { grid-template-columns: 1fr; }
  .subtheme-nav > span, .subtheme-nav a { min-height: 48px; padding: 0; border-right: 0; border-bottom: 1px solid var(--line); }
  .editorial-overview, .segment-overview, .preview-section, .faq-section { padding: 58px 0; }
  .segment-overview ul { grid-template-columns: 1fr; }
  .preview-heading { align-items: flex-start; flex-direction: column; gap: 18px; }
  .preview-company { grid-template-columns: 1fr; gap: 15px; }
  .preview-insight { grid-column: auto; }
  .gate-cta { align-items: flex-start; flex-direction: column; gap: 25px; margin: 50px 0; padding: 25px 20px; }
  .gate-button { width: 100%; text-align: center; }
  .filter-wrap { position: static; margin: 0 -14px; padding-right: 14px; padding-left: 14px; }
  .filter-heading { align-items: flex-start; flex-direction: column; gap: 7px; }
  .filter-heading p { width: 100%; white-space: normal; }
  .filter-bar { grid-template-columns: 1fr 1fr; gap: 11px; }
  .filter-field:first-child, .filter-field:last-of-type { grid-column: 1 / -1; }
  .company-row { padding: 20px 0; grid-template-columns: minmax(0,1fr) repeat(3,54px); }
  .company-cell:nth-of-type(5) { display: none; }
  .company-name { font-size: 1.25rem; }
  .score-alpha { font-size: 1.55rem; }
  .score-small { font-size: 1.25rem; }
  .detail-modal { padding: 24px 18px; }
  .modal-head h2 { font-size: 2.1rem; }
  .modal-status { align-items: flex-start; flex-direction: column; gap: 7px; }
}

@media (max-width: 390px) {
  .site-shell { width: calc(100% - 24px); }
  .filter-wrap { margin-right: -12px; margin-left: -12px; }
  .constraint-visual { padding: 16px; }
  .visual-node { grid-template-columns: 1fr; gap: 5px; }
  .visual-node > span { grid-row: auto; }
  .atlas-card, .radar-card, .research-card, .system-map article, .process-grid article { padding: 19px; }
  .filter-bar { grid-template-columns: 1fr; }
  .filter-field:first-child, .filter-field:last-of-type { grid-column: auto; }
  .company-row { grid-template-columns: minmax(0,1fr) repeat(3,46px); }
  .modal-scores { gap: 20px; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { scroll-behavior: auto !important; animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; }
}
