/* sencor.ai — one stylesheet for every page, in the design Darren approved on 9 Nov 2026
   (sencor-redesign-home-2026-11-09.html). Brand guidelines v1.1: dark by default, gold as accent only,
   Inter for text, Space Grotesk for headings, JetBrains Mono for labels and data, each named first in its stack and
   used where the visitor has it; otherwise the system's own sans and mono. STOPGAP SP-3: no font file is served and none
   is requested from another host (fetching Google Fonts would send every visitor's address to Google, which the privacy
   page says does not happen). Retires when the commit gate can attest a binary file (finding f3cb49d5) and the three
   OFL fonts are served from sencor.ai. Generated into the site by scripts/site/build/build_site.py. */

:root {
  --bg: #1A2028;          /* Near Black: page */
  --bg-deep: #141A21;     /* footer */
  --surface: #222B37;     /* cards, raised panels */
  --band: #1A365D;        /* Deep Blue: banded sections */
  --line: #2D3748;        /* hairlines */
  --blue: #2B6CB0;        /* Sencor Blue: buttons, fills */
  --gold: #D69E2E;        /* Sencor Gold: borders, labels */
  --warm: #ECC94B;        /* Warm Gold: headings, links */
  --warm-hover: #F6E05E;
  --ink: #F7FAFC;         /* off-white: primary text */
  --ink-2: #E2E8F0;
  --muted: #CBD5E0;       /* body text */
  --muted-2: #A0AEC0;     /* captions */

  /* names the per-page style blocks of earlier releases use */
  --paper: var(--bg); --panel: var(--surface); --line-soft: var(--line);
  --accent: var(--warm); --accent-deep: var(--gold); --ink-soft: var(--muted); --ink-faint: var(--muted-2);

  --sans: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
  --display: "Space Grotesk", "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
  --serif: var(--display);
  --mono: "JetBrains Mono", ui-monospace, "SF Mono", Menlo, Consolas, monospace;

  --maxw: 1240px;
  --gutter: 32px;
}

* { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; text-size-adjust: 100%; }
body { margin: 0; background: var(--bg); color: var(--ink); font-family: var(--sans); font-size: 17px;
  line-height: 1.65; text-rendering: optimizeLegibility; -webkit-font-smoothing: antialiased; }
img { max-width: 100%; height: auto; }
a { color: var(--warm); text-underline-offset: 3px; }
a:hover { color: var(--warm-hover); }
a:focus-visible, button:focus-visible, summary:focus-visible, .skip-link:focus-visible {
  outline: 2px solid var(--warm); outline-offset: 3px; border-radius: 4px; }
main:focus { outline: none; }
code { font-family: var(--mono); font-size: 0.9em; }

.wrap { max-width: var(--maxw); margin: 0 auto; padding-left: var(--gutter); padding-right: var(--gutter); }

.skip-link { position: absolute; left: 16px; top: -60px; z-index: 10; background: var(--blue); color: var(--ink);
  padding: 10px 16px; border-radius: 8px; font-weight: 600; text-decoration: none; }
.skip-link:focus { top: 12px; }

/* ---------- labels ---------- */
.eyebrow, .kicker { margin: 0 0 16px; font-family: var(--mono); font-size: 13px; letter-spacing: 0.14em;
  text-transform: uppercase; color: var(--gold); }
.band .eyebrow { color: var(--warm); }

/* ---------- header ---------- */
.topbar { background: var(--bg); border-bottom: 1px solid var(--line); }
.topbar .wrap { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 16px;
  padding-top: 18px; padding-bottom: 18px; }
.brand { display: flex; align-items: center; gap: 14px; text-decoration: none; color: var(--ink); }
.brand:hover { color: var(--ink); }
.brand-mark { width: 44px; height: 44px; object-fit: contain; }
.wordmark { font-family: var(--sans); font-weight: 700; font-size: 18px; letter-spacing: 0.15em; }
.nav { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 28px; font-size: 15px; }
.nav a { color: var(--muted); text-decoration: none; }
.nav a:hover { color: var(--ink); }
.nav a[aria-current="page"] { color: var(--ink); box-shadow: inset 0 -2px 0 var(--gold); }
.nav .nav-cta { color: var(--ink); background: var(--blue); font-weight: 600; padding: 12px 18px; border-radius: 8px; }
.nav .nav-cta:hover { background: #2C5282; color: var(--ink); }

/* ---------- buttons ---------- */
.cta-row { display: flex; flex-wrap: wrap; gap: 14px; }
.btn { display: inline-block; font-weight: 600; font-size: 16px; text-decoration: none; padding: 14px 22px;
  border-radius: 8px; border: 1px solid transparent; line-height: 1.3; }
.btn-primary { background: var(--blue); color: var(--ink); }
.btn-primary:hover { background: #2C5282; color: var(--ink); }
.btn-ghost, .btn-outline { color: var(--ink); border-color: var(--gold); }
.btn-ghost:hover, .btn-outline:hover { color: var(--ink); background: rgba(214, 158, 46, 0.12); }

/* ---------- sections ---------- */
section { padding: 88px 0; }
section + section { border-top: 1px solid var(--line); }
section.flush-top { padding-top: 72px; }
.band { background: var(--band); border-top: 0; }
.band + section, section + .band { border-top: 0; }
.panel-band { background: var(--surface); }
.section-head { margin-bottom: 36px; max-width: 820px; }
.section-head h2, .prose h2, h2.display { margin: 0; font-family: var(--display); font-weight: 700; font-size: 44px;
  line-height: 1.1; letter-spacing: -0.02em; color: var(--warm); }
.band .section-head h2, .band h2.display { color: var(--ink); }
h1, h2, h3 { text-wrap: balance; }

/* page heroes (inner pages) */
.hero h1 { margin: 0; font-family: var(--display); font-weight: 700; font-size: 56px; line-height: 1.05;
  letter-spacing: -0.03em; color: var(--ink); max-width: 18ch; }
.hero h1 .gold, h1 .gold { color: var(--warm); }
.hero .lede, .lede { margin: 24px 0 0; font-size: 20px; line-height: 1.6; color: var(--muted); max-width: 640px; }
.hero .cta-row { margin-top: 32px; }

/* ---------- running text ---------- */
.prose { max-width: 760px; color: var(--muted); font-size: 18px; line-height: 1.7; }
.prose p { margin: 0 0 20px; }
.prose p:last-child { margin-bottom: 0; }
.prose h2 { font-size: 30px; margin: 48px 0 16px; }
.prose h3 { margin: 32px 0 10px; font-family: var(--display); font-weight: 600; font-size: 22px; color: var(--ink); }
.prose strong { color: var(--ink); font-weight: 600; }
.prose ul, .prose ol { margin: 0 0 22px; padding-left: 22px; }
.prose li { margin: 10px 0; }
.prose li::marker { color: var(--gold); }
.prose .lead, .prose .lead-term { color: var(--ink); }
.prose blockquote { margin: 24px 0; padding: 4px 0 4px 20px; border-left: 2px solid var(--gold); color: var(--ink-2); }
.prose pre { overflow-x: auto; background: var(--bg-deep); border: 1px solid var(--line); border-radius: 8px;
  padding: 14px 16px; font-family: var(--mono); font-size: 14px; line-height: 1.55; color: var(--ink-2); }
.note-inline, .callout { color: var(--muted-2); font-size: 15px; }
.callout { border: 1px solid var(--line); border-left: 2px solid var(--gold); border-radius: 12px; padding: 18px 20px; }
.company-line { color: var(--muted); font-size: 18px; max-width: 760px; }
.founder { margin-top: 12px; }

/* ---------- home: hero ---------- */
.home-hero { padding: 72px 0 80px; }
.home-hero .wrap { display: flex; flex-wrap: wrap; gap: 48px; align-items: center; }
.home-hero .copy { flex: 1 1 460px; min-width: 0; display: flex; flex-direction: column; gap: 28px; }
.home-hero h1 { margin: 0; font-family: var(--display); font-weight: 700; font-size: 62px; line-height: 1.04;
  letter-spacing: -0.03em; color: var(--ink); }
.home-hero h1 span { color: var(--warm); }
.home-hero .lede { margin: 0; max-width: 540px; }
.home-hero .eyebrow { margin: 0; }
.home-hero figure { flex: 1 1 560px; min-width: 0; margin: 0; position: relative; }
.home-hero figure img { display: block; width: 100%; height: auto; border-radius: 18px; border: 1px solid var(--line); }
.hero-art { aspect-ratio: 3 / 2; border-radius: 18px; border: 1px solid var(--line);
  background: radial-gradient(circle at 50% 55%, rgba(236, 201, 75, 0.20), transparent 42%), var(--surface); }
.record-card { position: absolute; left: 24px; right: 24px; bottom: 24px; max-width: 360px;
  background: rgba(26, 32, 40, 0.92); border: 1px solid var(--gold); border-radius: 12px; padding: 18px 20px;
  font-family: var(--mono); font-size: 13px; line-height: 1.8; }
.record-card .head { display: flex; justify-content: space-between; gap: 12px; margin-bottom: 8px; font-family: var(--sans); }
.record-card .head strong { font-weight: 600; font-size: 14px; color: var(--warm); }
.record-card .head span { font-size: 12px; color: var(--muted-2); }
.record-card dl { display: grid; grid-template-columns: 84px minmax(0, 1fr); column-gap: 12px; margin: 0; }
.record-card dt { color: var(--muted-2); }
.record-card dd { margin: 0; color: var(--ink); overflow-wrap: anywhere; }
.record-card dd.result { color: var(--warm); font-weight: 500; }

/* ---------- home: where-the-work-stands band ---------- */
.stats { padding: 36px 0; }
.stats ul { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 28px; }
.stats li { display: flex; flex-direction: column; gap: 6px; border-left: 2px solid var(--gold); padding-left: 18px; }
.stats .figure { font-family: var(--display); font-size: 22px; font-weight: 600; color: var(--ink); line-height: 1.25; }
.stats .caption { font-size: 14px; color: var(--muted); }

/* ---------- home: two-column statements ---------- */
.split { display: flex; flex-wrap: wrap; gap: 56px; }
.split > * { flex: 1 1 420px; min-width: 0; }
.split .stack { display: flex; flex-direction: column; gap: 18px; }
.split h2 { margin: 0; font-family: var(--display); font-weight: 700; font-size: 44px; line-height: 1.1; letter-spacing: -0.02em; color: var(--warm); }
.split h2.smaller { font-size: 34px; line-height: 1.15; }
.split p { margin: 0; font-size: 18px; line-height: 1.7; color: var(--muted); }
.band .split h2 { color: var(--ink); font-size: 40px; line-height: 1.12; }
.band .split p { color: var(--ink-2); }

/* ---------- home: steps ---------- */
.steps { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 20px; }
.steps li, .card { background: var(--surface); border: 1px solid var(--line); border-top: 2px solid var(--gold);
  border-radius: 14px; padding: 28px; display: flex; flex-direction: column; gap: 12px; }
.steps .num { font-family: var(--mono); font-size: 13px; color: var(--gold); }
.steps h3 { margin: 0; font-family: var(--display); font-size: 22px; color: var(--ink); }
.steps p { margin: 0; font-size: 16px; line-height: 1.6; color: var(--muted); }

/* ---------- home: figure ---------- */
.figure-block { margin: 0; display: flex; flex-direction: column; gap: 12px; }
.figure-block img { display: block; width: 100%; height: auto; border-radius: 16px; border: 1px solid var(--blue); }
.figure-block figcaption { font-size: 14px; color: var(--muted); }

/* ---------- home: standard + where we are ---------- */
.where { background: var(--bg); border: 1px solid var(--line); border-radius: 16px; padding: 32px;
  display: flex; flex-direction: column; gap: 20px; }
.where h3 { margin: 0; font-family: var(--display); font-size: 20px; color: var(--ink); }
.where ul { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 20px; }
.where li { display: flex; gap: 16px; font-size: 16px; line-height: 1.6; color: var(--muted); }
.where li::before { content: ""; flex: 0 0 auto; width: 10px; height: 10px; margin-top: 8px; border-radius: 50%; background: var(--gold); }
.where li.next::before { background: transparent; border: 2px solid var(--gold); }
.where li strong { color: var(--ink); }
.where .foot { margin: 0; padding-top: 16px; border-top: 1px solid var(--line); font-size: 14px; color: var(--muted-2); }

/* ---------- cards: research, articles ---------- */
.head-row { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: flex-end; gap: 20px; margin-bottom: 40px; }
.head-row .more { font-weight: 600; font-size: 16px; text-decoration: none; }
.card-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); gap: 20px; }
a.card { text-decoration: none; color: var(--ink); border-top-width: 1px; border-color: var(--line); }
a.card:hover { border-color: var(--gold); color: var(--ink); }
.card .label { font-family: var(--mono); font-size: 13px; color: var(--gold); }
.card .title { font-family: var(--display); font-size: 22px; font-weight: 600; line-height: 1.25; }
.article-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 24px; }
.article-grid a { text-decoration: none; color: var(--ink); border-top: 2px solid var(--gold); padding-top: 20px;
  display: flex; flex-direction: column; gap: 10px; }
.article-grid a:hover .title { color: var(--warm); }
.article-grid .date { font-size: 13px; color: var(--muted-2); }
.article-grid .title { font-family: var(--display); font-size: 20px; font-weight: 600; line-height: 1.3; }

/* research page cards (earlier markup, restyled) */
.papers { display: grid; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); gap: 20px; }
.paper { position: relative; background: var(--surface); border: 1px solid var(--line); border-radius: 14px; padding: 28px;
  display: flex; flex-direction: column; gap: 10px; }
.paper .pn { font-family: var(--mono); font-size: 13px; color: var(--gold); }
.paper .pt { font-family: var(--display); font-size: 22px; font-weight: 600; line-height: 1.25; color: var(--ink); }
.paper .pt a { color: inherit; text-decoration: none; }
.paper .pt a:hover { color: var(--warm); }
.paper .ps { color: var(--ink-2); font-size: 15px; }
.paper .pd { color: var(--muted); font-size: 15px; line-height: 1.6; }
.paper .doi { position: absolute; top: 24px; right: 24px; font-family: var(--mono); font-size: 13px; text-decoration: none; }
.paper.forthcoming .pt, .paper.forthcoming .doi { color: var(--muted-2); }
.paper .langs { margin-top: 6px; }
.paper .langs > summary { cursor: pointer; font-size: 14px; color: var(--warm); list-style: none; }
.paper .langs > summary::-webkit-details-marker { display: none; }
.paper .langs > summary::before { content: "+ "; font-family: var(--mono); }
.paper .langs[open] > summary::before { content: "− "; }
.paper .langs .lang-list { display: flex; flex-wrap: wrap; gap: 6px 14px; margin-top: 10px; font-size: 14px; }
.paper .langs .lang-list a { color: var(--muted); }
.paper .langs .lang-list a:hover { color: var(--warm); }
.teaser-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: 20px; }
.teaser { background: var(--surface); border: 1px solid var(--line); border-radius: 14px; padding: 24px; }
.teaser h3 { margin: 0 0 8px; font-family: var(--display); color: var(--ink); }
.teaser p { margin: 0; color: var(--muted); }

/* articles */
.article .prose { max-width: 720px; }
.sources .prose { font-size: 15px; color: var(--muted-2); }
.sources .prose li { overflow-wrap: anywhere; }

/* ---------- legal pages ---------- */
.legal { padding: 72px 0 64px; color: var(--muted); }
.legal > .wrap > * { max-width: 820px; }
.legal h1 { margin: 0 0 8px; font-family: var(--display); font-weight: 700; font-size: 44px; line-height: 1.1; letter-spacing: -0.02em; color: var(--ink); }
.legal .updated { margin: 0 0 32px; font-family: var(--mono); font-size: 13px; color: var(--muted-2); }
.legal h2 { margin: 40px 0 12px; font-family: var(--display); font-size: 26px; color: var(--warm); }
.legal h3 { margin: 28px 0 8px; font-family: var(--display); font-size: 20px; color: var(--ink); }
.legal p, .legal li { font-size: 16px; line-height: 1.7; }
.legal ul { padding-left: 22px; }
.legal li { margin: 8px 0; }
.legal li::marker { color: var(--gold); }
.legal .kv { margin: 12px 0 20px; color: var(--ink-2); line-height: 1.7; }
.legal .back { display: inline-block; margin-top: 40px; font-size: 15px; }
.legal address { font-style: normal; }
.src { color: var(--muted-2); font-size: 14px; }

/* ---------- contact + footer ---------- */
.contact { background: var(--band); }
.contact .wrap { display: flex; flex-wrap: wrap; gap: 56px; align-items: center; }
.contact .copy { flex: 1 1 520px; min-width: 0; display: flex; flex-direction: column; gap: 20px; }
.contact h2 { margin: 0; font-family: var(--display); font-weight: 700; font-size: 42px; line-height: 1.1; letter-spacing: -0.02em; color: var(--warm); }
.contact p { margin: 0; font-size: 18px; line-height: 1.7; color: var(--ink-2); }
.person { flex: 1 1 380px; min-width: 0; background: var(--bg); border: 1px solid var(--gold); border-radius: 16px; padding: 28px;
  display: flex; flex-direction: column; gap: 6px; }
.person .name { font-family: var(--display); font-size: 22px; font-weight: 600; color: var(--ink); }
.person .role { font-size: 14px; color: var(--muted); }
.person .btn { margin-top: 12px; align-self: flex-start; padding: 12px 18px; font-size: 15px; }
.site-footer { background: var(--bg-deep); color: var(--muted-2); font-size: 14px; border-top: 1px solid var(--gold); }
.site-footer .wrap { padding-top: 48px; padding-bottom: 48px; display: flex; flex-direction: column; gap: 20px; }
.site-footer .row { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 20px; }
.site-footer .tagline { display: flex; align-items: center; gap: 12px; color: var(--warm); }
.site-footer .tagline img { width: 32px; height: 32px; object-fit: contain; }
.site-footer nav { display: flex; flex-wrap: wrap; gap: 8px 20px; }
.site-footer nav a { color: var(--muted-2); }
.site-footer nav a:hover { color: var(--warm); }
.site-footer p { margin: 0; line-height: 1.6; max-width: 820px; }
.site-footer .copy { color: var(--muted-2); }

/* ---------- 404 ---------- */
.notfound .more { margin-top: 24px; }

/* ---------- small screens ---------- */
@media (max-width: 900px) {
  .home-hero h1 { font-size: 46px; }
  .hero h1 { font-size: 42px; }
  .section-head h2, .prose h2.display, .split h2, h2.display { font-size: 34px; }
  .band .split h2, .contact h2 { font-size: 32px; }
  section { padding: 64px 0; }
}
@media (max-width: 560px) {
  :root { --gutter: 16px; }
  body { font-size: 16px; }
  .home-hero { padding: 44px 0 56px; }
  .home-hero h1 { font-size: 38px; }
  .hero h1, .legal h1 { font-size: 34px; }
  .section-head h2, .split h2, h2.display, .split h2.smaller, .band .split h2, .contact h2 { font-size: 28px; }
  .lede, .hero .lede { font-size: 18px; }
  .record-card { position: static; margin-top: 16px; max-width: none; }
  .nav { gap: 8px 18px; font-size: 14px; }
  .nav .nav-cta { padding: 10px 14px; }
  .paper .doi { position: static; }
  section { padding: 52px 0; }
}
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation: none !important; transition: none !important; scroll-behavior: auto !important; }
}

/* ---------- 10 Nov 2026 (site-discretion-and-compliance): the outcome line, the round-up, the rules per actor ---------- */
.home-hero .hero-outcome { margin: -12px 0 0; font-family: var(--display); font-size: 24px; line-height: 1.3; color: var(--ink-2); }
.roundup { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); gap: 20px; }
.roundup li { background: var(--surface); border: 1px solid var(--line); border-top: 2px solid var(--gold); border-radius: 14px;
  padding: 24px; display: flex; flex-direction: column; gap: 12px; }
.roundup .num { font-family: var(--mono); font-size: 13px; color: var(--gold); }
.roundup h3 { margin: 0; font-family: var(--display); font-size: 21px; color: var(--ink); }
.roundup blockquote { margin: 0; padding: 2px 0 2px 16px; border-left: 2px solid var(--gold); color: var(--ink-2); font-size: 16px; line-height: 1.55; }
.roundup blockquote p, .rules blockquote p { margin: 0; }
.roundup p { margin: 0; font-size: 16px; line-height: 1.6; color: var(--muted); }
.roundup .note-inline { font-size: 14px; }
.roundup li#why-verification { grid-column: 1 / -1; }
.roundup .pointer a, .contact .pointer a { color: var(--warm); }
.rules { list-style: none; margin: 8px 0 24px; padding: 0; display: flex; flex-direction: column; gap: 18px; }
.rules li { border-left: 2px solid var(--line); padding-left: 16px; }
.rules h4 { margin: 0 0 6px; font-family: var(--display); font-size: 17px; color: var(--ink); }
.rules blockquote { margin: 0 0 6px; padding: 0; border: 0; color: var(--ink-2); }
@media (max-width: 640px) { .home-hero .hero-outcome { font-size: 20px; } .roundup li { padding: 20px; } }
