:root {
  --paper: #f3f0e8;
  --paper-2: #e9e6dd;
  --white: #fffef9;
  --ink: #151611;
  --muted: #6c6d67;
  --line: rgba(21, 22, 17, .2);
  --blue: #4947ff;
  --blue-dark: #302ef1;
  --lime: #d8f36a;
  --display: "Helvetica Neue", "Arial Nova", Arial, Helvetica, sans-serif;
  --serif: Georgia, "Times New Roman", serif;
  --mono: ui-monospace, "SFMono-Regular", Menlo, Monaco, Consolas, monospace;
  --shell: min(1320px, calc(100vw - 64px));
  --shadow: 0 28px 80px rgba(25, 28, 75, .16);
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; color: var(--ink); background-color: var(--paper); background-image: linear-gradient(rgba(21,22,17,.038) 1px, transparent 1px), linear-gradient(90deg, rgba(21,22,17,.038) 1px, transparent 1px); background-size: 32px 32px; font-family: var(--display); font-size: 17px; line-height: 1.62; -webkit-font-smoothing: antialiased; }
body.nav-open { overflow: hidden; }
img { display: block; max-width: 100%; height: auto; }
a { color: inherit; text-underline-offset: .18em; }
a:hover { color: var(--blue); }
button, input, textarea { font: inherit; }
::selection { color: var(--white); background: var(--blue); }

.shell { width: var(--shell); margin-inline: auto; }
.shell--wide { max-width: 1500px; }
.shell--narrow { max-width: 1040px; }
.site-main { min-height: 60vh; overflow: hidden; }
.skip-link { position: fixed; z-index: 1000; top: 10px; left: 10px; padding: 10px 16px; color: var(--white); background: var(--ink); transform: translateY(-160%); }
.skip-link:focus { transform: translateY(0); }

h1, h2, h3, h4 { margin: 0 0 .55em; font-weight: 650; line-height: .98; letter-spacing: -.055em; text-wrap: balance; }
h1 { font-size: clamp(3.5rem, 6.8vw, 7.3rem); }
h2 { font-size: clamp(2.55rem, 4.4vw, 5rem); }
h3 { font-size: clamp(1.4rem, 2vw, 2rem); letter-spacing: -.04em; }
p { margin: 0 0 1.2em; }
.micro-label, .section-index, .post-meta, .eyebrow, .back-link { font-family: var(--mono); font-size: .7rem; line-height: 1.4; letter-spacing: .13em; text-transform: uppercase; }
.section-index { margin: 0; color: var(--muted); }
.eyebrow { display: flex; justify-content: space-between; gap: 20px; padding-bottom: 12px; margin-bottom: 30px; border-bottom: 1px solid var(--line); }

.button { display: inline-flex; min-height: 52px; padding: 14px 22px; align-items: center; justify-content: center; gap: 12px; border: 1px solid var(--blue); color: var(--white); background: var(--blue); font-family: var(--mono); font-size: .7rem; font-weight: 600; line-height: 1; letter-spacing: .09em; text-decoration: none; text-transform: uppercase; cursor: pointer; transition: color .2s, background .2s, transform .2s; }
.button:hover { color: var(--white); background: var(--blue-dark); transform: translateY(-2px); }
.button--small { min-height: 40px; padding: 11px 17px; }
.button--light { color: var(--ink); border-color: var(--white); background: var(--white); }
.button--light:hover { color: var(--ink); border-color: var(--lime); background: var(--lime); }
.text-link { display: inline-flex; align-items: center; gap: 8px; color: var(--blue); border-bottom: 1px solid currentColor; font-family: var(--mono); font-size: .68rem; font-weight: 600; letter-spacing: .08em; text-decoration: none; text-transform: uppercase; }

.site-header { position: relative; z-index: 50; background: rgba(243,240,232,.94); border-bottom: 1px solid var(--line); backdrop-filter: blur(14px); }
.header-inner { display: flex; min-height: 76px; align-items: center; justify-content: space-between; }
.brand { display: inline-flex; align-items: center; gap: 10px; color: var(--ink); text-decoration: none; }
.brand:hover { color: var(--ink); }
.brand__mark { width: 38px; height: 38px; color: var(--blue); }
.brand__type { display: flex; align-items: baseline; gap: 7px; line-height: 1; }
.brand__type b { font-size: 1.28rem; letter-spacing: -.07em; }
.brand__type span { font-family: var(--mono); font-size: .58rem; letter-spacing: .2em; }
.custom-logo { max-height: 54px; width: auto; }
.primary-nav, .primary-nav .menu { display: flex; align-items: center; gap: 28px; }
.primary-nav .menu { list-style: none; margin: 0; padding: 0; }
.primary-nav .menu a { font-size: .82rem; font-weight: 600; text-decoration: none; }
.nav-toggle { display: none; border: 0; padding: 8px; color: var(--ink); background: transparent; font-family: var(--mono); font-size: .68rem; letter-spacing: .1em; text-transform: uppercase; }
.nav-toggle i, .nav-toggle i::after { display: block; width: 26px; height: 1px; background: currentColor; content: ""; }
.nav-toggle i { margin-left: 12px; }.nav-toggle i::after { transform: translateY(7px); }

.home-hero { display: grid; grid-template-columns: minmax(0, 1.05fr) minmax(430px, .72fr); gap: clamp(50px, 6vw, 94px); align-items: center; min-height: 760px; padding-block: 58px 70px; }
.home-hero__copy h1 { max-width: 780px; margin-bottom: 34px; font-size: clamp(3.8rem, 5.5vw, 5.35rem); line-height: .94; letter-spacing: -.068em; }
.home-hero__copy h1 em { display: block; color: var(--blue); font-family: var(--serif); font-weight: 400; letter-spacing: -.065em; }
.home-hero__copy > p:not(.eyebrow) { max-width: 670px; color: var(--muted); font-size: 1.03rem; line-height: 1.62; }
.home-hero__copy > h1 + p { color: var(--ink) !important; font-size: clamp(1.22rem, 1.65vw, 1.42rem) !important; line-height: 1.43 !important; }
.home-hero__copy > p:has(a) { display: inline-block; margin: 19px 10px 0 0; }
.home-hero__copy > p a { display: inline-flex; min-height: 54px; padding: 14px 21px; align-items: center; color: var(--white); background: var(--blue); border: 1px solid var(--blue); font-family: var(--mono); font-size: .7rem; font-weight: 600; letter-spacing: .08em; text-decoration: none; text-transform: uppercase; }
.home-hero__copy > p:has(a) + p:has(a) a { color: var(--ink); background: transparent; border-color: var(--ink); }
.hero-art { position: relative; margin: 0; min-height: 620px; overflow: hidden; background: #10111c; box-shadow: var(--shadow); }
.hero-art > img { width: 100%; height: 620px; object-fit: cover; }

.research-sequence { color: var(--white); background: var(--ink); }
.sequence-grid { display: grid; grid-template-columns: repeat(4, 1fr); }
.sequence-grid span { display: flex; min-height: 78px; padding-inline: 24px; align-items: center; gap: 18px; border-left: 1px solid rgba(255,255,255,.15); font-family: var(--mono); font-size: .65rem; letter-spacing: .14em; text-transform: uppercase; }
.sequence-grid span:last-child { border-right: 1px solid rgba(255,255,255,.15); }
.sequence-grid b { color: var(--lime); font-weight: 500; }
.section-nav { display: flex; min-height: 66px; align-items: center; justify-content: flex-end; gap: 32px; border-bottom: 1px solid var(--line); }
.section-nav span, .section-nav a { font-family: var(--mono); font-size: .63rem; letter-spacing: .11em; text-decoration: none; text-transform: uppercase; }
.section-nav span { margin-right: auto; color: var(--muted); }.section-nav a:hover { color: var(--blue); }

.home-section { padding-block: clamp(95px, 10vw, 150px); border-bottom: 1px solid var(--line); }
.home-section--investigate, .home-section--scope { display: grid; grid-template-columns: 130px minmax(0, .93fr) minmax(340px, .78fr); gap: clamp(32px, 5vw, 78px); align-items: start; }
.editorial-copy > p { max-width: 720px; color: var(--muted); }
.editorial-copy > p:first-of-type { color: var(--ink); font-size: 1.17rem; }
.evidence-card { position: relative; padding: 28px; overflow: hidden; color: var(--white); background: #171821; box-shadow: var(--shadow); }
.evidence-card::before { position: absolute; top: 0; right: 0; left: 0; height: 5px; background: var(--blue); content: ""; }
.evidence-card .micro-label { color: var(--lime); }
.evidence-card blockquote { margin: 35px 0 42px; font-family: var(--serif); font-size: clamp(1.5rem, 2.25vw, 2.25rem); font-style: italic; line-height: 1.17; letter-spacing: -.035em; }
.evidence-card > div { border-top: 1px solid rgba(255,255,255,.2); }
.evidence-card > div span { display: flex; justify-content: space-between; gap: 18px; padding: 13px 0; border-bottom: 1px solid rgba(255,255,255,.14); font-family: var(--mono); font-size: .61rem; letter-spacing: .07em; text-transform: uppercase; }
.evidence-card b { color: var(--lime); font-weight: 500; }.evidence-card b.missing { color: #aaa9ff; }
.evidence-card small { display: block; margin-top: 16px; color: rgba(255,255,255,.56); font-family: var(--mono); font-size: .58rem; text-transform: uppercase; }

.home-services { width: 100%; padding-inline: max(32px, calc((100vw - 1320px) / 2)); background: var(--blue); border: 0; }
.home-services .section-lead { display: grid; grid-template-columns: 240px 1fr; gap: 48px; color: var(--white); }
.home-services .section-lead::before { padding-top: 8px; color: var(--lime); font-family: var(--mono); font-size: .69rem; letter-spacing: .13em; text-transform: uppercase; content: "02 / Services"; }
.home-services > .section-index { display: none; }
.home-services .section-lead h2 { max-width: 920px; }
.service-grid { display: grid; grid-template-columns: repeat(2, 1fr); margin-top: 70px; background: rgba(255,255,255,.22); border-top: 1px solid rgba(255,255,255,.35); border-left: 1px solid rgba(255,255,255,.35); }
.service-card { position: relative; min-height: 410px; padding: 88px 42px 40px; color: var(--ink); background: var(--paper); border-right: 1px solid rgba(21,22,17,.22); border-bottom: 1px solid rgba(21,22,17,.22); transition: background .25s, transform .25s; }
.service-card:hover { z-index: 1; background: var(--white); transform: translateY(-5px); }
.service-card .card-no { position: absolute; top: 26px; left: 42px; color: var(--blue); font-family: var(--mono); font-size: .68rem; }
.service-icon { position: absolute; top: 20px; right: 32px; width: 46px; color: var(--blue); }.service-icon svg { width: 100%; fill: var(--blue); }.service-icon path { fill: none; stroke: currentColor; stroke-width: 1.8; }
.service-card h3 { max-width: 430px; }.service-card p { max-width: 540px; color: var(--muted); }
.service-card .text-link { position: absolute; bottom: 38px; left: 42px; }

.home-section--scope { grid-template-columns: 130px minmax(300px, .78fr) minmax(430px, 1.12fr); }
.scope-art { position: relative; min-height: 500px; margin: 0; overflow: hidden; background: #151623; box-shadow: var(--shadow); }
.scope-art img { width: 100%; height: 500px; object-fit: cover; }
.scope-art figcaption { position: absolute; right: 20px; bottom: 20px; left: 20px; display: flex; min-height: 150px; padding: 20px; flex-direction: column; justify-content: space-between; color: var(--white); background: var(--blue); }
.scope-art figcaption span { font-family: var(--mono); font-size: .64rem; letter-spacing: .12em; text-transform: uppercase; }.scope-art figcaption strong { max-width: 430px; font-size: 1.75rem; line-height: 1.08; letter-spacing: -.045em; }

.guide-band { display: grid; grid-template-columns: 1.25fr .75fr; gap: clamp(60px, 9vw, 140px); align-items: end; width: 100%; max-width: none; padding: clamp(80px, 9vw, 130px) max(32px, calc((100vw - 1320px) / 2)); color: var(--white); background: var(--blue); }
.guide-band .section-index { color: var(--lime); }.guide-band h2 { max-width: 850px; margin: 18px 0 0; }.guide-band > div:last-child p { max-width: 500px; color: rgba(255,255,255,.76); }
.guide-band .button { color: var(--ink); border-color: var(--lime); background: var(--lime); }

.home-faq { display: grid; grid-template-columns: .72fr 1.28fr; gap: clamp(60px, 9vw, 140px); background: rgba(243,240,232,.83); }
.faq-intro { position: sticky; top: 28px; align-self: start; }.faq-intro .section-index { color: var(--blue); }
.faq-list { border-top: 1px solid var(--line); }
.faq-list details { border-bottom: 1px solid var(--line); }
.faq-list summary { display: grid; grid-template-columns: 42px 1fr 30px; gap: 12px; align-items: center; padding: 27px 0; list-style: none; font-size: 1.13rem; font-weight: 600; line-height: 1.3; cursor: pointer; }
.faq-list summary::-webkit-details-marker { display: none; }.faq-list summary > span { color: var(--blue); font-family: var(--mono); font-size: .62rem; }
.faq-list summary i, .faq-list summary i::after { display: block; width: 16px; height: 1px; background: currentColor; content: ""; }.faq-list summary i::after { transform: rotate(90deg); transition: transform .2s; }.faq-list details[open] summary i::after { transform: rotate(0); }
.faq-list details > div { padding: 0 30px 25px 54px; color: var(--muted); }

.home-contact, .article-cta { padding-block: clamp(95px, 10vw, 150px); color: var(--white); background-color: #15161b; background-image: linear-gradient(rgba(255,255,255,.045) 1px, transparent 1px), linear-gradient(90deg, rgba(255,255,255,.045) 1px, transparent 1px); background-size: 32px 32px; }
.contact-grid { display: grid; grid-template-columns: 180px 1fr; gap: 60px; }.home-contact .section-index { color: var(--lime); }
.contact-content { max-width: 980px; padding: clamp(30px, 5vw, 66px); background: var(--blue); box-shadow: var(--shadow); }.contact-content h2 { max-width: 850px; }
.contact-content > p:first-of-type { max-width: 700px; color: rgba(255,255,255,.78); font-size: 1.15rem; }
.project-form { margin-top: 48px; }.project-form p { margin-bottom: 22px; }
.project-form label { display: block; margin-bottom: 6px; color: var(--lime); font-family: var(--mono); font-size: .63rem; letter-spacing: .11em; text-transform: uppercase; }
.project-form input, .project-form textarea { width: 100%; padding: 12px 0; border: 0; border-bottom: 1px solid rgba(255,255,255,.52); border-radius: 0; outline: 0; color: var(--white); background: transparent; }.project-form input::placeholder { color: rgba(255,255,255,.45); }
.project-form input:focus, .project-form textarea:focus { border-color: var(--lime); box-shadow: 0 2px 0 var(--lime); }.project-form textarea { resize: vertical; }
.form-row { display: grid; grid-template-columns: repeat(2,1fr); gap: 30px; }.form-submit-row { display: flex; align-items: center; gap: 28px; margin-top: 32px; }
.form-privacy { max-width: 520px; margin: 0 !important; color: rgba(255,255,255,.67); font-size: .77rem; }.form-honeypot { position: absolute !important; left: -9999px !important; }
.form-notice { padding: 15px 18px; margin-top: 25px; color: var(--ink); background: var(--lime); border-left: 4px solid var(--ink); }.form-notice--error { background: #ffb8aa; }

.content-page { padding-block: 70px 135px; }.page-hero { margin-bottom: 34px; }.page-prose { max-width: 960px; margin-left: auto; }.prose { font-size: clamp(1rem, 1.15vw, 1.15rem); }
.prose h1 { max-width: 1050px; margin-bottom: .55em; }.prose h1::after { display: block; width: 82px; height: 7px; margin-top: 28px; background: var(--blue); content: ""; }
.prose h2 { margin: 2em 0 .65em; padding-top: .9em; border-top: 1px solid var(--line); font-size: clamp(2.15rem, 3.6vw, 3.8rem); }.prose h3 { margin: 1.8em 0 .6em; }
.prose p, .prose ul, .prose ol { max-width: 760px; }.prose ul, .prose ol { padding-left: 1.3em; }.prose li { margin-bottom: .55em; }
.prose blockquote { max-width: 850px; margin: 2.5em 0; padding: .4em 0 .4em 30px; border-left: 5px solid var(--blue); font-family: var(--serif); font-size: 1.4em; font-style: italic; line-height: 1.4; }
.prose table { display: block; width: 100%; margin: 2.5em 0; overflow-x: auto; border-collapse: collapse; font-size: .89rem; }.prose th,.prose td { min-width: 180px; padding: 16px; border: 1px solid var(--line); text-align: left; vertical-align: top; }.prose th { color: var(--white); background: var(--blue); font-family: var(--mono); font-size: .66rem; letter-spacing: .06em; text-transform: uppercase; }

.archive-hero { padding-block: clamp(80px,9vw,140px) 75px; }.archive-hero h1 { max-width: 950px; }.archive-hero h1::first-line { color: var(--blue); }.archive-hero > p:last-child,.archive-hero > div { max-width: 700px; color: var(--muted); font-size: 1.17rem; }
.post-grid { display: grid; grid-template-columns: repeat(2,1fr); gap: 1px; padding-bottom: 135px; background: var(--line); border: 1px solid var(--line); }.post-card { background: var(--paper); }
.post-card__visual { display: block; overflow: hidden; aspect-ratio: 1.7; background: var(--ink); }.post-card__visual img { width: 100%; height: 100%; object-fit: cover; transition: transform .4s; }.post-card:hover .post-card__visual img { transform: scale(1.025); }
.post-card__body { padding: 38px; }.post-card h2 { font-size: clamp(1.9rem,3vw,3rem); }.post-card h2 a { text-decoration: none; }.post-card__body > p:not(.post-meta) { max-width: 600px; color: var(--muted); }.post-meta { color: var(--blue); }
.navigation.pagination { width: var(--shell); margin: -90px auto 100px; }.nav-links { display: flex; gap: 15px; }.page-numbers { padding: 8px 13px; border: 1px solid var(--line); text-decoration: none; }.page-numbers.current { color: var(--white); background: var(--blue); }

.article-header { padding-block: 85px 62px; }.article-header .back-link { display: inline-block; margin-bottom: 50px; color: var(--blue); text-decoration: none; }.article-header h1 { max-width: 1150px; font-size: clamp(3.2rem,6vw,6.7rem); }.article-deck { max-width: 780px; color: var(--muted); font-size: 1.23rem; }
.article-visual { margin-bottom: 85px; }.article-visual img { width: 100%; max-height: 650px; object-fit: cover; }.article-layout { display: grid; grid-template-columns: 180px 1fr; gap: 70px; padding-bottom: 135px; }.article-rail { display: flex; position: sticky; top: 30px; height: max-content; padding-top: 10px; flex-direction: column; gap: 12px; color: var(--blue); font-family: var(--mono); font-size: .62rem; letter-spacing: .07em; text-transform: uppercase; }.article-body { min-width: 0; }.article-body > h1:first-child { display:none; }.article-body > p:first-of-type { color: var(--ink); font-size: 1.23em; }
.article-cta .section-index { color: var(--lime); }.article-cta h2 { max-width: 850px; }.article-cta p:not(.section-index) { max-width: 680px; color: rgba(255,255,255,.7); }

.site-footer { padding-top: 82px; color: var(--white); background: var(--ink); border-top: 7px solid var(--blue); }.site-footer .brand { color: var(--white); }.site-footer .brand__mark { color: var(--lime); }
.footer-grid { display: grid; grid-template-columns: 1.5fr 1.2fr; gap: 70px; padding-bottom: 78px; }.footer-nav { display:grid; grid-template-columns:repeat(2,1fr); gap:50px; }.footer-intro > p { max-width: 520px; margin-top: 25px; color: rgba(255,255,255,.62); }.site-footer .micro-label { color: var(--lime); }.site-footer .menu { list-style:none; margin:14px 0 0; padding:0; }.site-footer .menu li { margin-bottom:8px; }.site-footer .menu a { color: var(--white); text-decoration:none; }.site-footer .menu a:hover { color: var(--lime); }
.footer-base { display:flex; justify-content:space-between; padding-block:23px; border-top:1px solid rgba(255,255,255,.18); font-family:var(--mono); font-size:.61rem; letter-spacing:.07em; text-transform:uppercase; }.footer-base p { margin:0; }.footer-base a { color:var(--white); text-decoration:none; }
.not-found { padding-block:130px 180px; }.not-found p:not(.section-index) { max-width:600px; font-size:1.15rem; }

@media (max-width: 1080px) {
  :root { --shell: min(100% - 42px, 940px); }
  .home-hero { grid-template-columns: 1fr 380px; gap: 40px; }.home-hero__copy h1 { font-size: clamp(3.3rem,6vw,4.5rem); }.hero-art,.hero-art > img { min-height:540px; height:540px; }
  .home-section--investigate,.home-section--scope { grid-template-columns:120px 1fr; }.evidence-card,.scope-art { grid-column:2; }.home-section--scope .editorial-copy { grid-column:2; }
  .home-faq { grid-template-columns:1fr; }.faq-intro { position:static; }
}

@media (max-width: 780px) {
  :root { --shell: calc(100% - 32px); } body { font-size:16px; }
  .header-inner { min-height:70px; }.brand__type span { display:none; }.nav-toggle { display:flex; align-items:center; }
  .primary-nav { display:none; position:absolute; top:70px; left:0; width:100%; padding:26px 16px; align-items:stretch; flex-direction:column; color:var(--white); background:var(--ink); }.primary-nav.is-open { display:flex; }.primary-nav .menu { align-items:stretch; flex-direction:column; gap:0; }.primary-nav .menu li { border-bottom:1px solid rgba(255,255,255,.18); }.primary-nav .menu a { display:block; padding:14px 0; }.primary-nav .button { color:var(--ink); border-color:var(--lime); background:var(--lime); }
  .home-hero { grid-template-columns:1fr; padding-block:52px 35px; gap:42px; }.home-hero__copy h1 { font-size:clamp(3.25rem,14vw,5rem); }.home-hero__copy > p:has(a) { display:block; margin:9px 0; }.home-hero__copy > p a { width:100%; justify-content:center; }.hero-art,.hero-art > img { min-height:520px; height:520px; }
  .sequence-grid { grid-template-columns:repeat(2,1fr); }.sequence-grid span:nth-child(3),.sequence-grid span:nth-child(4) { border-top:1px solid rgba(255,255,255,.15); }.section-nav { display:grid; grid-template-columns:repeat(2,1fr); gap:0; padding-block:14px; }.section-nav span { grid-column:1/-1; margin-bottom:10px; }.section-nav a { padding:8px 0; }
  .home-section--investigate,.home-section--scope,.home-services .section-lead,.contact-grid,.guide-band { grid-template-columns:1fr; }.evidence-card,.scope-art,.home-section--scope .editorial-copy { grid-column:auto; }.home-services { padding-inline:16px; }.home-services .section-lead::before { display:none; }.home-services > .section-index { display:block; margin-bottom:26px; color:var(--lime); }
  .service-grid,.post-grid { grid-template-columns:1fr; }.service-card { min-height:370px; padding-inline:26px; }.service-card .card-no,.service-card .text-link { left:26px; }.service-icon { right:24px; }.scope-art,.scope-art img { min-height:440px; height:440px; }.guide-band { gap:35px; padding-inline:16px; }
  .home-faq { gap:38px; }.faq-list summary { grid-template-columns:32px 1fr 20px; }.faq-list details > div { padding-left:44px; }
  .contact-content { padding:28px 20px; }.form-row { grid-template-columns:1fr; gap:0; }.form-submit-row { align-items:flex-start; flex-direction:column; }
  .content-page { padding-block:52px 95px; }.page-prose { margin:0; }.post-card__body { padding:25px; }.article-layout { grid-template-columns:1fr; gap:20px; }.article-rail { position:static; flex-direction:row; flex-wrap:wrap; }.article-header { padding-block:52px 38px; }.article-visual { width:100%; margin-bottom:48px; }
  .footer-grid { grid-template-columns:1fr; }.footer-nav { gap:24px; }.footer-base { align-items:flex-start; flex-direction:column; gap:8px; }
}

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