@import url('https://fonts.googleapis.com/css2?family=Space+Grotesk:wght@400;500;600&display=swap');

/* Peregrine Sans (from Inter Tight) and Peregrine Text (from Inter): self-hosted, with true small caps. OFL 1.1, see /assets/fonts/OFL.txt */
@font-face { font-family: 'Peregrine Sans'; src: url('/assets/fonts/PeregrineSans-Regular.woff2') format('woff2'); font-weight: 400; font-style: normal; font-display: swap; }
@font-face { font-family: 'Peregrine Sans'; src: url('/assets/fonts/PeregrineSans-Medium.woff2') format('woff2'); font-weight: 500; font-style: normal; font-display: swap; }
@font-face { font-family: 'Peregrine Sans'; src: url('/assets/fonts/PeregrineSans-SemiBold.woff2') format('woff2'); font-weight: 600; font-style: normal; font-display: swap; }
@font-face { font-family: 'Peregrine Sans'; src: url('/assets/fonts/PeregrineSans-Bold.woff2') format('woff2'); font-weight: 700; font-style: normal; font-display: swap; }
@font-face { font-family: 'Peregrine Text'; src: url('/assets/fonts/PeregrineText-Regular.woff2') format('woff2'); font-weight: 400; font-style: normal; font-display: swap; }
@font-face { font-family: 'Peregrine Text'; src: url('/assets/fonts/PeregrineText-Medium.woff2') format('woff2'); font-weight: 500; font-style: normal; font-display: swap; }
@font-face { font-family: 'Peregrine Text'; src: url('/assets/fonts/PeregrineText-SemiBold.woff2') format('woff2'); font-weight: 600; font-style: normal; font-display: swap; }
@font-face { font-family: 'Peregrine Text'; src: url('/assets/fonts/PeregrineText-Bold.woff2') format('woff2'); font-weight: 700; font-style: normal; font-display: swap; }


:root {
  --bg: #202427;
  --bg-deep: #191d20;
  --bg-soft: #292e31;
  --panel: #252a2d;
  --panel-2: #2c3134;
  --line: rgba(240, 242, 242, 0.22);
  --line-soft: rgba(240, 242, 242, 0.10);
  --line-faint: rgba(240, 242, 242, 0.06);
  --text: #f4f5f3;
  --text-soft: #d8dcdd;
  --muted: #a8afb2;
  --muted-2: #858e92;
  --accent: #f4f5f3;
  --black: #0d0f10;
  --display: 'Peregrine Sans', 'Helvetica Neue', Arial, sans-serif;
  --technical: 'Peregrine Sans', 'Helvetica Neue', Arial, sans-serif;
  --body: 'Peregrine Text', 'Helvetica Neue', Arial, sans-serif;
  --shell: min(1450px, calc(100vw - 112px));
  --header-h: 86px;
}

* { box-sizing: border-box; }

html {
  scroll-behavior: smooth;
  background: var(--bg);
}

body {
  margin: 0;
  min-height: 100vh;
  overflow-x: hidden;
  background: var(--bg);
  color: var(--text);
  font-family: var(--body);
  font-size: 16px;
  line-height: 1.55;
  text-rendering: optimizeLegibility;
  -webkit-font-smoothing: antialiased;
}

::selection {
  background: var(--text);
  color: var(--black);
}

a {
  color: inherit;
  text-decoration: none;
}

button,
input,
textarea,
select {
  font: inherit;
}

img {
  max-width: 100%;
}

p {
  margin: 0;
  color: var(--muted);
}

h1, h2, h3, h4 {
  margin: 0;
  font-family: var(--display);
  font-weight: 500;
  letter-spacing: -0.045em;
  line-height: 1.02;
}

h1 {
  font-size: clamp(4rem, 8.35vw, 9rem);
  max-width: 11ch;
}

h2 {
  font-size: clamp(2.6rem, 5vw, 5.5rem);
  max-width: 14ch;
}

h3 {
  font-size: clamp(1.35rem, 2vw, 2rem);
}

.shell {
  width: var(--shell);
  margin-inline: auto;
}

.grid-overlay {
  display: none;
}

/* Header */
.site-header {
  position: sticky;
  top: 0;
  z-index: 80;
  width: 100%;
  min-height: var(--header-h);
  display: grid;
  grid-template-columns: minmax(250px, .9fr) 1.8fr;
  align-items: center;
  gap: 40px;
  padding: 0 56px;
  background: rgba(32, 36, 39, .95);
  border-bottom: 1px solid var(--line-soft);
  backdrop-filter: blur(14px);
}

.brand {
  display: inline-flex;
  width: fit-content;
  align-items: center;
}

.brand-logo,
.footer-logo {
  display: block;
  width: auto;
  filter: grayscale(1) brightness(0) invert(1);
  object-fit: contain;
}

.brand-logo {
  height: 38px;
  max-width: 265px;
}

.site-nav {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: clamp(12px, 2vw, 34px);
}

.site-nav a {
  position: relative;
  padding: 13px 0;
  color: var(--text-soft);
  font-family: var(--technical);
  font-size: 0.96rem;
  font-weight: 500;
  letter-spacing: -0.015em;
  transition: color .18s ease;
}

.site-nav a:not(.nav-cta)::after {
  content: '';
  position: absolute;
  left: 0;
  right: 100%;
  bottom: 5px;
  height: 1px;
  background: var(--text);
  transition: right .2s ease;
}

.site-nav a:hover,
.site-nav a.active {
  color: var(--text);
}

.site-nav a:not(.nav-cta):hover::after,
.site-nav a.active:not(.nav-cta)::after {
  right: 0;
}

.site-nav .nav-cta {
  min-width: 210px;
  padding: 14px 22px;
  text-align: center;
  color: var(--text);
  border: 1px solid var(--text-soft);
  transition: background .18s ease, color .18s ease;
}

.site-nav .nav-cta:hover {
  background: var(--text);
  color: var(--black);
}

.menu-toggle {
  display: none;
}

/* Hero */
.hero {
  position: relative;
}

.hero-routing {
  min-height: calc(100vh - var(--header-h));
  overflow: hidden;
  border-bottom: 1px solid var(--line-soft);
}

#routingCanvas {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  opacity: .95;
}

.hero-noise {
  position: absolute;
  inset: 0;
  pointer-events: none;
  opacity: .15;
  background-image:
    radial-gradient(circle at 35% 35%, rgba(255,255,255,.04), transparent 28%),
    linear-gradient(90deg, rgba(32,36,39,.96) 0%, rgba(32,36,39,.82) 37%, rgba(32,36,39,.25) 68%, rgba(32,36,39,.05) 100%);
}

.hero-shell {
  position: relative;
  z-index: 2;
  width: var(--shell);
  min-height: calc(100vh - var(--header-h));
  margin-inline: auto;
  display: grid;
  grid-template-columns: minmax(0, 1.05fr) minmax(300px, .95fr);
  align-items: center;
  gap: 48px;
  padding: 82px 0 142px;
}

.hero-copywrap {
  max-width: 850px;
}

.eyebrow,
.kicker,
.section-index,
.card-kicker,
.card-label,
.founder-meta,
.hero-rail,
.hero-meta,
.visual-caption,
.system-number,
.mission-index,
.fact-card span,
.timeline-item strong {
  font-family: var(--technical);
  text-transform: uppercase;
  letter-spacing: .08em;
}

.eyebrow,
.kicker,
.section-index {
  color: var(--text-soft);
  font-size: .77rem;
  font-weight: 500;
}

.eyebrow {
  margin-bottom: 28px;
}

.hero-copy {
  max-width: 720px;
  margin-top: 34px;
  color: var(--text-soft);
  font-size: clamp(1.05rem, 1.4vw, 1.35rem);
  line-height: 1.55;
}

.hero-actions {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 28px;
  margin-top: 42px;
}

.text-link {
  display: inline-flex;
  gap: 14px;
  align-items: center;
  color: var(--muted);
  font-family: var(--technical);
  font-size: .98rem;
  border-bottom: 1px solid var(--line);
  padding-bottom: 8px;
  transition: color .18s ease, border-color .18s ease;
}

.text-link.strong {
  color: var(--text);
}

.text-link:hover {
  color: var(--text);
  border-color: var(--text);
}

.text-link span {
  transition: transform .18s ease;
}

.text-link:hover span {
  transform: translate(3px, -3px);
}

.hero-rail {
  justify-self: end;
  align-self: end;
  display: grid;
  gap: 10px;
  min-width: 230px;
  padding-bottom: 56px;
  color: rgba(244,245,243,.62);
  font-size: .76rem;
  text-align: right;
}

.hero-rail span {
  border-bottom: 1px solid var(--line-soft);
  padding: 8px 0;
}

.hero-meta {
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: 3;
  min-height: 78px;
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  padding: 0 56px;
  border-top: 1px solid var(--line-soft);
  background: rgba(24,28,30,.48);
}

.hero-meta div {
  display: flex;
  align-items: center;
  gap: 14px;
  padding: 0 26px;
  color: var(--muted);
  font-size: .72rem;
  border-right: 1px solid var(--line-soft);
}

.hero-meta div:first-child {
  border-left: 1px solid var(--line-soft);
}

.hero-meta span {
  color: var(--text);
}

/* Sections */
.section {
  position: relative;
  padding: clamp(96px, 10vw, 170px) 0;
  border-bottom: 1px solid var(--line-soft);
}

.section-dark {
  background: var(--bg-deep);
}

.statement-section {
  background: var(--bg-soft);
}

.split-statement {
  display: grid;
  grid-template-columns: .6fr 2.4fr;
  gap: 60px;
}

.split-statement h2 {
  max-width: 16ch;
}

.large-copy {
  max-width: 850px;
  margin-top: 32px;
  color: var(--text-soft);
  font-family: var(--technical);
  font-size: clamp(1.15rem, 1.8vw, 1.8rem);
  line-height: 1.45;
  letter-spacing: -.025em;
}

.section-intro {
  display: grid;
  grid-template-columns: 1fr;
  gap: 25px;
  margin-bottom: 64px;
}

.section-intro h2 {
  max-width: 16ch;
}

.section-lead,
.page-lead {
  max-width: 720px;
  color: var(--muted);
  font-size: 1.05rem;
  line-height: 1.7;
}

/* System stack */
.system-section {
  background: var(--bg);
}

.system-stack {
  border-top: 1px solid var(--line);
}

.system-row {
  min-height: 128px;
  display: grid;
  grid-template-columns: 72px 1.05fr 1.15fr 1.7fr 40px;
  align-items: center;
  gap: 28px;
  border-bottom: 1px solid var(--line);
  color: var(--text);
  cursor: default;
  transition: background .2s ease, padding .2s ease;
}

a.system-row {
  cursor: pointer;
}

.system-row:hover {
  background: rgba(244,245,243,.045);
  padding-inline: 18px;
}

.system-number {
  color: var(--muted-2);
  font-size: .72rem;
}

.system-name {
  font-family: var(--display);
  font-size: clamp(1.7rem, 3vw, 3.25rem);
  font-weight: 500;
  letter-spacing: -.05em;
}

.system-description {
  color: var(--text-soft);
  font-family: var(--technical);
  font-size: 1.05rem;
}

.system-detail {
  color: var(--muted);
  font-size: .94rem;
}

.system-arrow {
  color: var(--text);
  font-size: 1.4rem;
  text-align: right;
}

/* Architecture */
.mission-architecture {
  background: var(--bg-deep);
}

.architecture-grid {
  display: grid;
  grid-template-columns: minmax(380px, .9fr) minmax(520px, 1.1fr);
  gap: clamp(50px, 7vw, 110px);
  align-items: center;
}

.architecture-copy h2 {
  max-width: 10ch;
  margin: 22px 0 28px;
}

.architecture-copy > p:not(.kicker) {
  max-width: 600px;
  color: var(--muted);
  font-size: 1.05rem;
  line-height: 1.7;
}

.architecture-steps {
  margin-top: 54px;
  border-top: 1px solid var(--line);
}

.architecture-steps > div {
  display: grid;
  grid-template-columns: 48px 110px 1fr;
  gap: 16px;
  align-items: start;
  padding: 18px 0;
  border-bottom: 1px solid var(--line-soft);
}

.architecture-steps span,
.architecture-steps strong {
  font-family: var(--technical);
  font-size: .82rem;
  font-weight: 500;
}

.architecture-steps span {
  color: var(--muted-2);
}

.architecture-steps p {
  font-size: .88rem;
  line-height: 1.5;
}

.architecture-visual {
  position: relative;
  min-height: 620px;
  border-left: 1px solid var(--line-soft);
  border-right: 1px solid var(--line-soft);
  overflow: hidden;
  background:
    linear-gradient(rgba(255,255,255,.018) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255,255,255,.018) 1px, transparent 1px);
  background-size: 48px 48px;
}

.architecture-visual svg {
  width: 100%;
  height: auto;
  min-height: 620px;
  display: block;
}

.perspective-grid path {
  fill: none;
  stroke: rgba(244,245,243,.12);
  stroke-width: 1;
}

.route-paths path {
  fill: none;
  stroke: url(#routeFade);
  stroke-width: 1.5;
  stroke-dasharray: 6 8;
  animation: routeDash 14s linear infinite;
}

.mission-node circle {
  fill: rgba(32,36,39,.9);
  stroke: rgba(244,245,243,.62);
  stroke-width: 1.2;
}

.mission-node .node-core {
  fill: var(--text);
  stroke: none;
}

.mission-node text {
  fill: var(--text-soft);
  font-family: var(--technical);
  font-size: 13px;
  letter-spacing: .12em;
  text-anchor: middle;
}

.mission-node.minor text {
  font-size: 10px;
}

.route-pulse {
  fill: var(--text);
  filter: drop-shadow(0 0 8px rgba(244,245,243,.75));
}

.p1 {
  offset-path: path('M142 458 C230 315 305 300 408 333 C515 368 580 270 684 192');
  animation: routeTravel 4.7s linear infinite;
}

.p2 {
  offset-path: path('M408 333 C430 190 515 135 650 118');
  animation: routeTravel 5.8s linear 1.1s infinite;
}

.p3 {
  offset-path: path('M142 458 C275 510 390 490 560 430');
  animation: routeTravel 4.2s linear 2.1s infinite;
}

.visual-caption {
  position: absolute;
  left: 20px;
  right: 20px;
  bottom: 18px;
  display: flex;
  justify-content: space-between;
  color: var(--muted-2);
  font-size: .64rem;
}

/* Mission console */
.console-section {
  background: #15191b;
}

.console-frame {
  position: relative;
  min-height: 720px;
  overflow: hidden;
  border-top: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
  background: #101314;
}

.console-frame img {
  width: 100%;
  min-height: 720px;
  object-fit: cover;
  object-position: center;
  display: block;
  image-rendering: auto;
  filter: grayscale(.25) contrast(1.08) brightness(.68);
  transform: scale(1.02);
}

.console-frame::after {
  content: '';
  position: absolute;
  inset: 0;
  background:
    linear-gradient(90deg, rgba(21,25,27,.98) 0%, rgba(21,25,27,.82) 36%, rgba(21,25,27,.18) 72%, rgba(21,25,27,.18)),
    linear-gradient(0deg, rgba(21,25,27,.45), transparent 55%);
}

.console-overlay {
  position: absolute;
  z-index: 2;
  left: clamp(30px, 6vw, 90px);
  bottom: clamp(38px, 7vw, 100px);
  width: min(570px, calc(100% - 60px));
}

.console-overlay h2 {
  max-width: 9ch;
  margin: 22px 0 26px;
}

.console-overlay p:not(.kicker) {
  max-width: 540px;
  margin-bottom: 30px;
  color: var(--text-soft);
  font-size: 1rem;
  line-height: 1.7;
}

/* Mission areas */
.mission-section {
  background: var(--bg-soft);
}

.mission-list {
  border-top: 1px solid var(--line);
}

.mission-item {
  min-height: 150px;
  display: grid;
  grid-template-columns: 82px 1fr 250px;
  gap: 34px;
  align-items: center;
  border-bottom: 1px solid var(--line);
}

.mission-index {
  color: var(--muted-2);
  font-size: .72rem;
}

.mission-item h3 {
  margin-bottom: 10px;
  font-size: clamp(1.45rem, 2.5vw, 2.55rem);
}

.mission-item p {
  max-width: 720px;
  font-size: .96rem;
}

.mission-item > span {
  color: var(--muted);
  font-family: var(--technical);
  font-size: .78rem;
  text-align: right;
  text-transform: uppercase;
  letter-spacing: .08em;
}

/* Company */
.company-section {
  background: var(--bg);
}

.company-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: clamp(60px, 8vw, 130px);
}

.company-grid h2 {
  max-width: 10ch;
  margin-top: 30px;
}

.company-copy > p:not(.large-copy) {
  max-width: 680px;
  margin-top: 28px;
  color: var(--muted);
  font-size: 1rem;
  line-height: 1.75;
}

.company-copy .large-copy {
  margin-top: 0;
}

.company-links {
  display: flex;
  flex-wrap: wrap;
  gap: 28px;
  margin-top: 38px;
}

.founder-lines {
  margin-top: 100px;
  border-top: 1px solid var(--line);
}

.founder-line {
  display: grid;
  grid-template-columns: 1fr 1fr 1.25fr;
  gap: 26px;
  align-items: center;
  min-height: 92px;
  border-bottom: 1px solid var(--line);
  font-family: var(--technical);
}

.founder-line strong {
  font-weight: 500;
  color: var(--text);
}

.founder-line span {
  color: var(--muted);
  font-size: .9rem;
}

/* Contact */
.contact-section {
  min-height: 75vh;
  display: flex;
  align-items: center;
  background: #171b1d;
}

.contact-hero h2 {
  max-width: none;
  margin: 24px 0 30px;
  font-size: clamp(4rem, 9.5vw, 10rem);
}

.contact-hero > p:not(.kicker) {
  max-width: 760px;
  color: var(--text-soft);
  font-size: 1.15rem;
  line-height: 1.65;
}

.contact-email {
  display: inline-flex;
  align-items: center;
  gap: 18px;
  margin-top: 48px;
  padding-bottom: 12px;
  color: var(--text);
  font-family: var(--technical);
  font-size: clamp(1.1rem, 2vw, 1.8rem);
  border-bottom: 1px solid var(--text);
}

.contact-email span {
  transition: transform .2s ease;
}

.contact-email:hover span {
  transform: translate(4px, -4px);
}

/* Footer */
.site-footer {
  padding: 50px 0 58px;
  background: #111416;
  border-top: 1px solid var(--line-soft);
}

.footer-grid {
  display: grid;
  grid-template-columns: 1.4fr .8fr .8fr;
  gap: 52px;
}

.footer-logo {
  height: 34px;
  margin-bottom: 18px;
}

.site-footer p {
  max-width: 460px;
  font-size: .82rem;
}

.footer-meta,
.footer-links {
  display: grid;
  align-content: start;
  gap: 10px;
  color: var(--muted);
  font-family: var(--technical);
  font-size: .78rem;
}

.footer-links a:hover {
  color: var(--text);
}

.site-footer .footer-legal {
  max-width: none;
  margin-top: 40px;
  padding-top: 18px;
  border-top: 1px solid var(--line-soft);
  color: var(--muted);
  font-size: .7rem;
}

/* Reusable / legacy page styling */
.page-hero,
.page-hero-tight {
  padding: clamp(100px, 11vw, 170px) 0 72px;
  border-bottom: 1px solid var(--line-soft);
  background: var(--bg-soft);
}

.page-hero-tight {
  padding-bottom: 64px;
}

.page-hero h1,
.page-hero-tight h1 {
  max-width: 12ch;
  margin-top: 20px;
  font-size: clamp(3.4rem, 7vw, 7.5rem);
}

.page-lead {
  margin-top: 28px;
}

.section-head {
  display: grid;
  gap: 18px;
  margin-bottom: 48px;
}

.split-head {
  grid-template-columns: 1.2fr .8fr;
  gap: 48px;
  align-items: end;
}

.info-grid,
.program-grid,
.feature-grid,
.founder-grid,
.fact-grid {
  display: grid;
  gap: 1px;
  background: var(--line-soft);
  border: 1px solid var(--line-soft);
}

.three-up,
.program-grid,
.founder-grid-three {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.two-up,
.feature-grid {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.fact-grid {
  grid-template-columns: repeat(4, minmax(0, 1fr));
}

.info-card,
.program-card,
.feature-card,
.founder-card,
.contact-card,
.pdf-card,
.fact-card,
.notice-card,
.media-card {
  border: 0;
  border-radius: 0;
  background: var(--panel);
  box-shadow: none;
}

.info-card,
.program-card,
.feature-card,
.founder-card,
.notice-card {
  min-height: 250px;
  padding: 32px;
}

.info-card h3,
.program-card h3,
.feature-card h3,
.founder-card h3 {
  margin-bottom: 16px;
}

.card-kicker,
.card-label,
.founder-meta {
  display: inline-block;
  margin-bottom: 24px;
  color: var(--muted-2);
  font-size: .68rem;
}

.program-card a,
.contact-card a {
  display: inline-flex;
  margin-top: 22px;
  color: var(--text);
  font-family: var(--technical);
  border-bottom: 1px solid var(--line);
}

.button {
  display: inline-flex;
  min-height: 48px;
  align-items: center;
  justify-content: center;
  padding: 0 20px;
  border: 1px solid var(--text-soft);
  border-radius: 0;
  color: var(--text);
  background: transparent;
  font-family: var(--technical);
  font-size: .9rem;
  transition: background .18s ease, color .18s ease;
}

.button:hover,
.button.primary {
  background: var(--text);
  color: var(--black);
}

.button.primary:hover {
  background: transparent;
  color: var(--text);
}

.button.ghost {
  background: transparent;
}

.contact-layout {
  display: grid;
  grid-template-columns: 1fr 420px;
  gap: 60px;
}

.contact-card {
  padding: 30px;
}

.contact-logo-stage {
  padding-bottom: 18px;
  margin-bottom: 14px;
  border-bottom: 1px solid var(--line-soft);
}

.contact-logo {
  width: min(240px, 100%);
  filter: grayscale(1) brightness(0) invert(1);
}

.pdf-card {
  padding: 24px;
}

.pdf-actions {
  display: flex;
  gap: 12px;
  flex-wrap: wrap;
  margin-bottom: 20px;
}

.pdf-frame {
  width: 100%;
  min-height: 840px;
  border: 1px solid var(--line-soft);
  border-radius: 0;
  background: white;
}

.fact-card {
  min-height: 170px;
  padding: 24px;
}

.fact-card span {
  color: var(--muted-2);
  font-size: .68rem;
}

.fact-card strong {
  font-family: var(--technical);
  font-weight: 500;
}

.timeline-list {
  display: grid;
  border-top: 1px solid var(--line);
}

.timeline-item {
  display: grid;
  grid-template-columns: 70px 1fr;
  gap: 20px;
  padding: 22px 0;
  border-bottom: 1px solid var(--line-soft);
}

.timeline-item strong {
  color: var(--muted-2);
  font-size: .7rem;
}

.timeline-item span {
  color: var(--muted);
}

.media-card {
  overflow: hidden;
}

.media-card img {
  width: 100%;
  display: block;
  background: #0f1213;
}

.media-card figcaption {
  padding: 16px 0 0;
  color: var(--muted);
  font-size: .84rem;
}

.status-band {
  border-block: 1px solid var(--line-soft);
  background: var(--bg-deep);
}

.status-band .shell {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
}

.status-band-item {
  padding: 26px 20px;
  border-right: 1px solid var(--line-soft);
}

.status-band-item:first-child {
  border-left: 1px solid var(--line-soft);
}

.status-band-item span {
  display: block;
  margin-bottom: 8px;
  color: var(--muted-2);
  font-family: var(--technical);
  font-size: .68rem;
  text-transform: uppercase;
  letter-spacing: .08em;
}

.status-band-item strong {
  font-family: var(--technical);
  font-size: .96rem;
  font-weight: 500;
}

.program-media-grid {
  display: grid;
  grid-template-columns: 1.2fr .8fr;
  gap: 1px;
  background: var(--line-soft);
}

.program-media-card {
  min-height: 340px;
  overflow: hidden;
  background: var(--panel);
}

.program-media-card img {
  width: 100%;
  height: 100%;
  min-height: 340px;
  object-fit: cover;
  filter: grayscale(.25);
}

.hero-note,
.hero-status-strip,
.hero-copy-secondary {
  color: var(--muted);
}

/* Reveal */
.reveal {
  opacity: 0;
  transform: translateY(18px);
  transition: opacity .7s cubic-bezier(.22,.61,.36,1), transform .7s cubic-bezier(.22,.61,.36,1);
}

.reveal.visible {
  opacity: 1;
  transform: translateY(0);
}

/* Motion */
@keyframes routeDash {
  to { stroke-dashoffset: -120; }
}

@keyframes routeTravel {
  0% { offset-distance: 0%; opacity: 0; }
  8% { opacity: 1; }
  88% { opacity: 1; }
  100% { offset-distance: 100%; opacity: 0; }
}

/* Responsive */
@media (max-width: 1150px) {
  :root {
    --shell: min(100% - 64px, 1200px);
  }

  .site-header {
    padding: 0 32px;
    grid-template-columns: auto 1fr;
  }

  .site-nav {
    gap: 18px;
  }

  .site-nav .nav-cta {
    min-width: 170px;
  }

  .hero-meta {
    padding: 0 32px;
  }

  .architecture-grid {
    grid-template-columns: 1fr;
  }

  .architecture-copy {
    max-width: 760px;
  }

  .architecture-visual {
    min-height: 540px;
  }

  .system-row {
    grid-template-columns: 56px .9fr 1fr 1.3fr 30px;
    gap: 18px;
  }

  .mission-item {
    grid-template-columns: 60px 1fr 190px;
  }
}

@media (max-width: 900px) {
  :root {
    --shell: calc(100% - 40px);
    --header-h: 72px;
  }

  .site-header {
    min-height: var(--header-h);
    padding: 0 20px;
    display: flex;
    justify-content: space-between;
  }

  .brand-logo {
    height: 31px;
    max-width: 220px;
  }

  .menu-toggle {
    position: relative;
    z-index: 102;
    width: 46px;
    height: 46px;
    display: grid;
    place-items: center;
    gap: 6px;
    padding: 13px 10px;
    border: 1px solid var(--line);
    border-radius: 0;
    background: transparent;
    color: var(--text);
  }

  .menu-toggle span {
    width: 22px;
    height: 1px;
    display: block;
    background: currentColor;
  }

  .site-nav {
    position: fixed;
    inset: var(--header-h) 0 auto 0;
    z-index: 100;
    display: none;
    padding: 24px 20px 34px;
    background: #1a1e20;
    border-bottom: 1px solid var(--line);
  }

  .site-nav.open {
    display: grid;
  }

  .site-nav a {
    min-height: 48px;
    padding: 13px 0;
    border-bottom: 1px solid var(--line-soft);
  }

  .site-nav .nav-cta {
    width: 100%;
    margin-top: 10px;
  }

  .hero-shell {
    grid-template-columns: 1fr;
    padding: 76px 0 150px;
  }

  .hero-routing {
    min-height: 850px;
  }

  #routingCanvas {
    opacity: .58;
  }

  .hero-noise {
    background:
      linear-gradient(180deg, rgba(32,36,39,.98) 0%, rgba(32,36,39,.86) 52%, rgba(32,36,39,.18) 100%);
  }

  .hero-copywrap {
    align-self: start;
  }

  .hero-rail {
    display: none;
  }

  .hero-meta {
    grid-template-columns: 1fr;
    padding: 0 20px;
    min-height: 120px;
  }

  .hero-meta div {
    padding: 9px 0;
    border-right: 0;
    border-bottom: 1px solid var(--line-soft);
  }

  .hero-meta div:first-child {
    border-left: 0;
  }

  .split-statement,
  .company-grid,
  .split-head,
  .contact-layout {
    grid-template-columns: 1fr;
  }

  .system-row {
    min-height: auto;
    grid-template-columns: 44px 1fr 32px;
    grid-template-areas:
      "number name arrow"
      ". desc arrow"
      ". detail arrow";
    gap: 7px 16px;
    padding: 24px 0;
  }

  .system-row:hover {
    padding-inline: 10px;
  }

  .system-number { grid-area: number; }
  .system-name { grid-area: name; }
  .system-description { grid-area: desc; }
  .system-detail { grid-area: detail; }
  .system-arrow { grid-area: arrow; }

  .mission-item {
    grid-template-columns: 48px 1fr;
    padding: 28px 0;
  }

  .mission-item > span {
    grid-column: 2;
    text-align: left;
  }

  .founder-line {
    grid-template-columns: 1fr;
    gap: 5px;
    padding: 20px 0;
  }

  .footer-grid {
    grid-template-columns: 1fr 1fr;
  }

  .footer-grid > div:first-child {
    grid-column: 1 / -1;
  }

  .three-up,
  .program-grid,
  .founder-grid-three,
  .fact-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 620px) {
  :root {
    --shell: calc(100% - 28px);
  }

  h1 {
    font-size: clamp(3.25rem, 17vw, 5.6rem);
  }

  h2 {
    font-size: clamp(2.35rem, 11vw, 4rem);
  }

  .section {
    padding: 84px 0;
  }

  .hero-routing {
    min-height: 800px;
  }

  .hero-shell {
    padding-top: 64px;
  }

  .eyebrow {
    max-width: 26ch;
    line-height: 1.5;
  }

  .hero-actions {
    align-items: flex-start;
    flex-direction: column;
  }

  .architecture-visual {
    min-height: 420px;
  }

  .architecture-visual svg {
    min-height: 420px;
  }

  .architecture-steps > div {
    grid-template-columns: 35px 95px 1fr;
  }

  .console-frame,
  .console-frame img {
    min-height: 620px;
  }

  .console-frame img {
    object-position: 62% center;
  }

  .console-frame::after {
    background: linear-gradient(0deg, rgba(21,25,27,.97) 0%, rgba(21,25,27,.84) 45%, rgba(21,25,27,.35) 100%);
  }

  .console-overlay {
    left: 24px;
    bottom: 38px;
    width: calc(100% - 48px);
  }

  .contact-hero h2 {
    font-size: 18vw;
  }

  .footer-grid,
  .three-up,
  .program-grid,
  .founder-grid-three,
  .two-up,
  .feature-grid,
  .fact-grid,
  .program-media-grid {
    grid-template-columns: 1fr;
  }

  .info-card,
  .program-card,
  .feature-card,
  .founder-card,
  .notice-card {
    min-height: unset;
  }

  .status-band .shell {
    grid-template-columns: 1fr;
  }

  .status-band-item,
  .status-band-item:first-child {
    border-left: 0;
    border-right: 0;
    border-bottom: 1px solid var(--line-soft);
  }

  .pdf-frame {
    min-height: 600px;
  }
}

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

/* ===== 2026 PEREGRINE EDITORIAL / DEFENSE-TECH REDESIGN ===== */

:root {
  --bg: #e2e3df;
  --bg-deep: #d1d3cf;
  --bg-soft: #eceeeb;
  --panel: #f3f4f1;
  --panel-2: #daddd8;
  --line: rgba(15, 18, 19, .22);
  --line-soft: rgba(15, 18, 19, .11);
  --line-faint: rgba(15, 18, 19, .055);
  --text: #101314;
  --text-soft: #252a2b;
  --muted: #5f6667;
  --muted-2: #7b8181;
  --accent: #111516;
  --black: #080a0b;
  --display: 'Peregrine Sans', 'Helvetica Neue', Arial, sans-serif;
  --technical: 'Peregrine Sans', 'Helvetica Neue', Arial, sans-serif;
  --body: 'Peregrine Text', 'Helvetica Neue', Arial, sans-serif;
  --shell: min(1480px, calc(100vw - 112px));
  --header-h: 78px;
}

html, body { background: var(--bg); color: var(--text); }

body {
  font-size: 15px;
  line-height: 1.62;
  letter-spacing: -.008em;
}

p { color: var(--muted); }

h1, h2, h3, h4 {
  color: var(--text);
  font-family: var(--display);
  font-weight: 500;
  letter-spacing: -.052em;
}

h1 { font-size: clamp(4.6rem, 8.4vw, 9.5rem); line-height: .92; }
h2 { font-size: clamp(2.8rem, 5.35vw, 5.8rem); line-height: .98; }
h3 { letter-spacing: -.036em; }

.site-header {
  min-height: var(--header-h);
  padding: 0 56px;
  background: rgba(226, 227, 223, .90);
  border-bottom: 1px solid var(--line-soft);
  backdrop-filter: blur(22px) saturate(115%);
}

.brand-logo,
.footer-logo,
.contact-logo {
  filter: grayscale(1) contrast(1.25);
}

.brand-logo { height: 31px; }

.site-nav { gap: clamp(16px, 2vw, 36px); }

.site-nav a {
  color: #373c3d;
  font-size: .79rem;
  font-weight: 500;
  letter-spacing: .015em;
  text-transform: uppercase;
}

.site-nav a:not(.nav-cta)::after { background: var(--text); }

.site-nav .nav-cta {
  min-width: 184px;
  padding: 11px 18px;
  border: 1px solid #151819;
  background: #151819;
  color: #f4f5f1;
}

.site-nav .nav-cta:hover {
  background: transparent;
  color: var(--text);
}

.hero-routing {
  min-height: calc(100svh - var(--header-h));
  background:
    radial-gradient(circle at 84% 42%, rgba(255,255,255,.55), transparent 25%),
    linear-gradient(120deg, #e8e9e6 0%, #dde0dc 52%, #d1d4d0 100%);
}

.hero-routing::before {
  content: '';
  position: absolute;
  inset: 0;
  pointer-events: none;
  background:
    linear-gradient(rgba(16,19,20,.036) 1px, transparent 1px),
    linear-gradient(90deg, rgba(16,19,20,.036) 1px, transparent 1px);
  background-size: 64px 64px;
  mask-image: linear-gradient(to right, transparent 0%, rgba(0,0,0,.55) 38%, #000 100%);
}

#routingCanvas { opacity: .96; }

.hero-noise {
  opacity: 1;
  background:
    linear-gradient(90deg, rgba(232,233,230,.98) 0%, rgba(232,233,230,.92) 34%, rgba(232,233,230,.36) 60%, rgba(232,233,230,.06) 100%),
    radial-gradient(circle at 88% 40%, rgba(255,255,255,.28), transparent 28%);
}

.hero-shell {
  min-height: calc(100svh - var(--header-h));
  padding: 74px 0 128px;
  grid-template-columns: minmax(0, 1.12fr) minmax(320px, .88fr);
}

.hero-copywrap { max-width: 920px; }

.eyebrow,
.kicker,
.section-index,
.card-kicker,
.card-label,
.founder-meta,
.hero-rail,
.hero-meta,
.visual-caption,
.system-number,
.mission-index,
.fact-card span,
.timeline-item strong {
  font-family: var(--technical);
  letter-spacing: .115em;
}

.eyebrow,
.kicker,
.section-index {
  color: #535a5b;
  font-size: .68rem;
  font-weight: 600;
}

.eyebrow { margin-bottom: 30px; }

.hero-copy {
  max-width: 670px;
  margin-top: 36px;
  color: #353a3b;
  font-size: clamp(1.05rem, 1.35vw, 1.25rem);
  line-height: 1.58;
}

.hero-actions { margin-top: 42px; }

.text-link {
  color: #52595a;
  border-color: rgba(15,18,19,.32);
  font-size: .88rem;
}

.text-link.strong,
.text-link:hover { color: #101314; border-color: #101314; }

.hero-rail {
  color: rgba(16,19,20,.58);
  font-size: .65rem;
}

.hero-rail span { border-color: rgba(16,19,20,.12); }

.hero-meta {
  min-height: 68px;
  padding: 0 56px;
  border-color: rgba(16,19,20,.12);
  background: rgba(219,221,217,.78);
  backdrop-filter: blur(10px);
}

.hero-meta div {
  color: #656b6c;
  border-color: rgba(16,19,20,.10);
  font-size: .64rem;
}

.hero-meta span { color: #101314; }

.section {
  padding: clamp(102px, 10vw, 176px) 0;
  border-color: var(--line-soft);
}

.section-dark { background: #d3d5d1; }
.statement-section { background: #eef0ed; }
.system-section { background: #e4e5e1; }
.mission-architecture { background: #d7d9d5; }
.mission-section { background: #eceeeb; }
.company-section { background: #e2e3df; }

.split-statement { grid-template-columns: .48fr 2.52fr; }
.split-statement h2 { max-width: 14.5ch; }

.large-copy {
  color: #343a3a;
  font-size: clamp(1.15rem, 1.7vw, 1.7rem);
}

.section-intro { margin-bottom: 72px; }
.section-lead, .page-lead { color: #5d6465; }

.system-stack { border-color: rgba(15,18,19,.30); }

.system-row {
  min-height: 142px;
  grid-template-columns: 64px 1.08fr 1.12fr 1.75fr 36px;
  border-color: rgba(15,18,19,.24);
}

.system-row:hover {
  background: rgba(255,255,255,.35);
  padding-inline: 20px;
}

.system-name {
  color: #111415;
  font-size: clamp(1.9rem, 3.1vw, 3.45rem);
}

.system-description { color: #303536; }
.system-detail, .system-number { color: #6b7172; }

.architecture-grid {
  grid-template-columns: minmax(390px,.88fr) minmax(540px,1.12fr);
}

.architecture-copy > p:not(.kicker) { color: #596061; }

.architecture-visual {
  min-height: 650px;
  border-color: rgba(15,18,19,.12);
  background:
    linear-gradient(rgba(15,18,19,.035) 1px, transparent 1px),
    linear-gradient(90deg, rgba(15,18,19,.035) 1px, transparent 1px),
    rgba(255,255,255,.16);
  background-size: 48px 48px;
}

.perspective-grid path { stroke: rgba(15,18,19,.13); }
.route-paths path { stroke: rgba(15,18,19,.34); }
.mission-node circle {
  fill: rgba(223,225,221,.95);
  stroke: rgba(15,18,19,.58);
}
.mission-node .node-core { fill: #111415; }
.mission-node text { fill: #34393a; }
.route-pulse {
  fill: #111415;
  filter: drop-shadow(0 0 7px rgba(15,18,19,.3));
}
.visual-caption { color: #707677; }

.console-section {
  background: #111516;
  padding-top: clamp(78px, 8vw, 130px);
  padding-bottom: clamp(78px, 8vw, 130px);
}

.console-frame {
  min-height: 740px;
  border-color: rgba(255,255,255,.18);
  box-shadow: 0 24px 80px rgba(0,0,0,.18);
}

.console-overlay .kicker,
.console-overlay h2,
.console-overlay .text-link { color: #f4f5f1; }

.console-overlay p:not(.kicker) { color: #d2d7d5; }

.mission-list { border-color: rgba(15,18,19,.28); }
.mission-item { min-height: 164px; border-color: rgba(15,18,19,.24); }
.mission-item > span { color: #666d6e; }

.founder-lines { border-color: rgba(15,18,19,.28); }
.founder-line { border-color: rgba(15,18,19,.22); }
.founder-line strong { color: #111415; }
.founder-line span { color: #666d6e; }

.contact-section {
  min-height: 72vh;
  background: #111516;
}

.contact-section .kicker,
.contact-section h2,
.contact-section .contact-email { color: #f5f6f3; }

.contact-section .contact-hero > p:not(.kicker) { color: #c4cac8; }

.site-footer {
  background: #0c0f10;
  border-color: rgba(255,255,255,.10);
  color: #f1f3ef;
}

.site-footer .footer-logo { filter: grayscale(1) brightness(0) invert(1); }
.site-footer p,
.footer-meta,
.footer-links { color: #aab0ae; }

.page-hero,
.page-hero-tight {
  background:
    linear-gradient(rgba(15,18,19,.035) 1px, transparent 1px),
    linear-gradient(90deg, rgba(15,18,19,.035) 1px, transparent 1px),
    #e8eae7;
  background-size: 64px 64px;
}

.page-hero h1,
.page-hero-tight h1 {
  max-width: 11ch;
  font-size: clamp(3.8rem, 7.2vw, 7.9rem);
}

.info-grid,
.program-grid,
.feature-grid,
.founder-grid,
.fact-grid {
  background: rgba(15,18,19,.12);
  border-color: rgba(15,18,19,.12);
}

.info-card,
.program-card,
.feature-card,
.founder-card,
.contact-card,
.pdf-card,
.fact-card,
.notice-card,
.media-card {
  background: rgba(248,249,246,.58);
}

.info-card,
.program-card,
.feature-card,
.founder-card,
.notice-card {
  min-height: 270px;
  padding: 36px;
}

.info-card:hover,
.program-card:hover,
.feature-card:hover {
  background: rgba(255,255,255,.76);
}

.card-kicker,
.card-label,
.founder-meta,
.fact-card span { color: #737a7b; }

.program-card a,
.contact-card a { color: #111415; border-color: rgba(15,18,19,.28); }

.button {
  border-color: #151819;
  color: #151819;
}

.button:hover,
.button.primary {
  background: #151819;
  color: #f4f5f1;
}

.button.primary:hover { background: transparent; color: #151819; }

.pdf-card { background: #d6d8d4; }
.fact-card strong { color: #111415; }

.notice-card {
  margin-top: 1px;
  border-top: 1px solid rgba(15,18,19,.12);
}

.timeline-list { border-color: rgba(15,18,19,.25); }
.timeline-item { border-color: rgba(15,18,19,.20); }

.media-card {
  overflow: hidden;
  background: #15191a;
}

.media-card img {
  filter: saturate(.78) contrast(1.04);
  transition: transform .7s cubic-bezier(.2,.7,.2,1), filter .35s ease;
}

.media-card:hover img {
  transform: scale(1.018);
  filter: saturate(.95) contrast(1.04);
}

.reveal {
  opacity: 0;
  transform: translateY(20px);
  transition:
    opacity .72s cubic-bezier(.2,.7,.2,1),
    transform .72s cubic-bezier(.2,.7,.2,1);
}

.reveal.visible {
  opacity: 1;
  transform: none;
}

@media (max-width: 1100px) {
  :root { --shell: min(100% - 56px, 1480px); }
  .site-header { padding-inline: 28px; }
  .hero-meta { padding-inline: 28px; }
  .architecture-grid { grid-template-columns: 1fr; }
  .architecture-visual { min-height: 560px; }
}

@media (max-width: 820px) {
  :root { --header-h: 70px; --shell: calc(100% - 36px); }

  .site-header {
    grid-template-columns: 1fr auto;
    padding-inline: 18px;
  }

  .menu-toggle {
    display: inline-flex;
    width: 44px;
    height: 38px;
    align-items: center;
    justify-content: center;
    border: 1px solid rgba(15,18,19,.2);
    background: transparent;
    color: var(--text);
    font-family: var(--technical);
    font-size: .66rem;
    text-transform: uppercase;
  }

  .menu-toggle span {
    position: absolute;
    width: 18px;
    height: 1px;
    background: currentColor;
  }

  .menu-toggle span:first-child { transform: translateY(-3px); }
  .menu-toggle span:last-child { transform: translateY(3px); }

  .site-nav {
    position: absolute;
    left: 0;
    right: 0;
    top: 100%;
    display: none;
    padding: 22px 18px 26px;
    flex-direction: column;
    align-items: stretch;
    gap: 0;
    background: rgba(232,234,231,.98);
    border-bottom: 1px solid rgba(15,18,19,.14);
    backdrop-filter: blur(22px);
  }

  .site-nav.open { display: flex; }
  .site-nav a { padding: 14px 0; border-bottom: 1px solid rgba(15,18,19,.10); }
  .site-nav .nav-cta { margin-top: 14px; min-width: 0; }

  .hero-shell {
    min-height: calc(100svh - var(--header-h));
    grid-template-columns: 1fr;
    align-content: center;
    padding: 70px 0 150px;
  }

  .hero-rail { display: none; }
  .hero-meta { grid-template-columns: 1fr; padding: 0 18px; }
  .hero-meta div { min-height: 44px; border-left: 0 !important; border-right: 0; }
  .hero-meta div:nth-child(n+2) { display: none; }

  h1 { font-size: clamp(3.7rem, 17vw, 6rem); }
  h2 { font-size: clamp(2.5rem, 11vw, 4.2rem); }

  .split-statement,
  .split-head,
  .company-grid,
  .contact-layout { grid-template-columns: 1fr; }

  .system-row {
    min-height: auto;
    padding: 26px 0;
    grid-template-columns: 44px 1fr 32px;
    gap: 12px;
  }

  .system-description,
  .system-detail { grid-column: 2 / -1; }

  .mission-item {
    grid-template-columns: 44px 1fr;
    padding: 28px 0;
  }

  .mission-item > span { grid-column: 2; text-align: left; }

  .three-up,
  .program-grid,
  .founder-grid-three,
  .two-up,
  .feature-grid,
  .fact-grid,
  .footer-grid { grid-template-columns: 1fr; }

  .architecture-steps > div { grid-template-columns: 40px 90px 1fr; }
}

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


/* ===== SYSTEM FLOW VISUALS ===== */

.flow-section,
.software-flow-section {
  background: #111516;
  color: #f3f5f1;
}

.flow-grid {
  display: grid;
  grid-template-columns: minmax(340px,.82fr) minmax(620px,1.18fr);
  gap: clamp(54px,7vw,110px);
  align-items: center;
}

.flow-copy .kicker,
.flow-copy h2,
.flow-copy .text-link {
  color: #f3f5f1;
}

.flow-copy > p:not(.kicker) {
  max-width: 620px;
  margin: 28px 0 34px;
  color: #b8bfbd;
  font-size: 1.04rem;
  line-height: 1.72;
}

.flow-visual,
.distributed-flow {
  position: relative;
  overflow: hidden;
  border: 1px solid rgba(255,255,255,.13);
  background:
    linear-gradient(rgba(255,255,255,.035) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255,255,255,.035) 1px, transparent 1px),
    #15191a;
  background-size: 46px 46px;
}

.flow-visual {
  min-height: 560px;
  display: grid;
  align-content: center;
  padding: 54px 34px 76px;
}

.flow-visual::before,
.distributed-flow::before {
  content: '';
  position: absolute;
  inset: 0;
  pointer-events: none;
  background: radial-gradient(circle at 50% 50%, rgba(255,255,255,.055), transparent 42%);
}

.flow-track {
  position: relative;
  z-index: 1;
  display: grid;
  grid-template-columns: 1fr 74px 1fr 74px 1fr 74px 1fr;
  align-items: center;
}

.flow-block {
  min-height: 155px;
  display: grid;
  align-content: space-between;
  gap: 15px;
  padding: 19px;
  border: 1px solid rgba(255,255,255,.22);
  background: rgba(16,20,21,.82);
}

.flow-block-core {
  border-color: rgba(255,255,255,.58);
  box-shadow: 0 0 0 1px rgba(255,255,255,.04), 0 0 44px rgba(255,255,255,.05);
}

.flow-block span,
.chain-node span {
  color: #78817f;
  font-family: var(--technical);
  font-size: .62rem;
  letter-spacing: .12em;
}

.flow-block strong,
.chain-node strong {
  color: #f3f5f1;
  font-family: var(--technical);
  font-size: .82rem;
  font-weight: 500;
  letter-spacing: .09em;
}

.flow-block small,
.chain-node small {
  color: #858e8c;
  font-family: var(--technical);
  font-size: .54rem;
  line-height: 1.55;
  letter-spacing: .08em;
}

.flow-link,
.chain-path {
  position: relative;
  height: 1px;
  background: rgba(255,255,255,.13);
}

.flow-link i,
.chain-path i {
  position: absolute;
  top: 50%;
  left: 0;
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: #f2f4f0;
  box-shadow: 0 0 12px rgba(255,255,255,.45);
  transform: translate(-50%,-50%);
  animation: flowPacket 3.2s linear infinite;
}

.flow-link i:nth-child(2),
.chain-path i:nth-child(2) { animation-delay: -1.05s; }
.flow-link i:nth-child(3),
.chain-path i:nth-child(3) { animation-delay: -2.1s; }

.flow-status {
  position: absolute;
  left: 24px;
  right: 24px;
  bottom: 20px;
  display: flex;
  justify-content: space-between;
  color: #697270;
  font-family: var(--technical);
  font-size: .57rem;
  letter-spacing: .10em;
}

.capability-chain {
  display: grid;
  grid-template-columns: 1fr 44px 1fr 44px 1fr 44px 1fr 44px 1fr;
  align-items: center;
  margin-top: 50px;
}

.chain-node {
  min-height: 170px;
  display: grid;
  align-content: space-between;
  gap: 14px;
  padding: 22px;
  border: 1px solid rgba(15,18,19,.22);
  background: rgba(255,255,255,.28);
}

.chain-node strong { color: #111516; }
.chain-node small { color: #6d7475; }
.chain-path { background: rgba(15,18,19,.16); }
.chain-path i {
  background: #111516;
  box-shadow: 0 0 10px rgba(15,18,19,.2);
}

.software-flow-section .section-head h2,
.software-flow-section .kicker {
  color: #f4f5f2;
}

.software-flow-section .section-lead {
  color: #aeb6b3;
}

.distributed-flow {
  min-height: 630px;
  display: grid;
  grid-template-columns: minmax(160px,.75fr) 100px minmax(260px,1.25fr) 100px minmax(160px,.75fr);
  align-items: center;
  gap: 18px;
  padding: 54px;
}

.distributed-inputs,
.distributed-outputs {
  position: relative;
  z-index: 1;
  display: grid;
  gap: 14px;
}

.distributed-node {
  min-height: 90px;
  display: grid;
  align-content: center;
  gap: 7px;
  padding: 16px;
  border: 1px solid rgba(255,255,255,.18);
  background: rgba(17,21,22,.78);
}

.distributed-node span,
.distributed-core span {
  color: #f3f5f1;
  font-family: var(--technical);
  font-size: .72rem;
  letter-spacing: .08em;
}

.distributed-node small,
.distributed-core small {
  color: #747d7a;
  font-family: var(--technical);
  font-size: .55rem;
  letter-spacing: .10em;
}

.distributed-bus {
  position: relative;
  height: 100%;
  min-height: 410px;
}

.bus-line {
  position: absolute;
  left: 50%;
  top: 8%;
  bottom: 8%;
  width: 1px;
  background: linear-gradient(to bottom, transparent, rgba(255,255,255,.26) 18%, rgba(255,255,255,.26) 82%, transparent);
}

.bus-packet {
  position: absolute;
  left: 50%;
  top: 8%;
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: #f3f5f1;
  box-shadow: 0 0 14px rgba(255,255,255,.48);
  transform: translateX(-50%);
  animation: busTravel 4s linear infinite;
}

.bus-packet.p-b { animation-delay: -1.33s; }
.bus-packet.p-c { animation-delay: -2.66s; }
.distributed-bus-out .bus-packet { animation-direction: reverse; }

.distributed-core {
  position: relative;
  z-index: 1;
  min-height: 250px;
  display: grid;
  place-items: center;
  align-content: center;
  gap: 14px;
  padding: 35px;
  text-align: center;
  border: 1px solid rgba(255,255,255,.52);
  background: rgba(23,27,28,.88);
  box-shadow: 0 0 70px rgba(255,255,255,.04);
}

.distributed-core::before,
.distributed-core::after {
  content: '';
  position: absolute;
  border: 1px solid rgba(255,255,255,.10);
  inset: -22px;
  pointer-events: none;
  animation: corePulse 4s ease-in-out infinite;
}

.distributed-core::after {
  inset: -44px;
  animation-delay: -2s;
}

.distributed-core strong {
  color: #f3f5f1;
  font-family: var(--display);
  font-size: clamp(1.45rem,2.2vw,2.4rem);
  font-weight: 500;
  letter-spacing: -.035em;
}

@keyframes flowPacket {
  from { left: 0; opacity: 0; }
  10% { opacity: 1; }
  90% { opacity: 1; }
  to { left: 100%; opacity: 0; }
}

@keyframes busTravel {
  from { top: 8%; opacity: 0; }
  12% { opacity: 1; }
  88% { opacity: 1; }
  to { top: 92%; opacity: 0; }
}

@keyframes corePulse {
  0%,100% { opacity: .25; transform: scale(.98); }
  50% { opacity: .7; transform: scale(1.015); }
}

@media (max-width: 1180px) {
  .flow-grid { grid-template-columns: 1fr; }
  .flow-track { grid-template-columns: 1fr 52px 1fr 52px 1fr 52px 1fr; }
  .capability-chain { grid-template-columns: 1fr; gap: 0; }
  .chain-path { width: 1px; height: 38px; margin-inline: auto; }
  .chain-path i { animation: busTravel 3.2s linear infinite; left: 50%; top: 0; }
  .distributed-flow {
    grid-template-columns: 1fr;
    padding: 34px;
  }
  .distributed-inputs,
  .distributed-outputs { grid-template-columns: repeat(4,1fr); }
  .distributed-bus { min-height: 70px; height: 70px; }
  .bus-line { left: 8%; right: 8%; top: 50%; bottom: auto; width: auto; height: 1px; }
  .bus-packet { top: 50%; left: 8%; animation: horizontalBus 4s linear infinite; transform: translateY(-50%); }
  .distributed-bus-out .bus-packet { animation-direction: normal; }
  .distributed-core { min-height: 210px; }
}

@keyframes horizontalBus {
  from { left: 8%; opacity: 0; }
  12% { opacity: 1; }
  88% { opacity: 1; }
  to { left: 92%; opacity: 0; }
}

@media (max-width: 720px) {
  .flow-visual { min-height: auto; padding: 28px 20px 66px; }
  .flow-track { grid-template-columns: 1fr; gap: 0; }
  .flow-link { width: 1px; height: 38px; margin-inline: auto; }
  .flow-link i { left: 50%; top: 0; animation: busTravel 3.2s linear infinite; }
  .flow-status { gap: 18px; flex-direction: column; }
  .distributed-inputs,
  .distributed-outputs { grid-template-columns: 1fr 1fr; }
  .distributed-flow { padding: 24px; }
}


/* ===== GLOBAL GRAY CANVAS LOCK ===== */

/* Keep the entire public site on one continuous light-graphite canvas.
   Dark treatment is reserved for contained technical diagram panels only. */
html,
body,
main,
.section,
.section-dark,
.statement-section,
.system-section,
.mission-architecture,
.mission-section,
.company-section,
.console-section,
.contact-section,
.page-hero,
.page-hero-tight,
.flow-section,
.software-flow-section,
.diagram-section,
.status-band,
.site-footer {
  background: var(--bg) !important;
}

/* Maintain the gray page canvas behind every section while preserving
   subtle separation through borders rather than full-color banding. */
.section,
.page-hero,
.page-hero-tight,
.status-band,
.site-footer {
  border-color: var(--line-soft);
}

/* All section-level typography remains dark on the gray canvas. */
.section h1,
.section h2,
.section h3,
.section h4,
.page-hero h1,
.page-hero h2,
.page-hero-tight h1,
.page-hero-tight h2,
.flow-section h2,
.software-flow-section h2,
.diagram-section h2,
.contact-section h2,
.site-footer {
  color: var(--text);
}

.section p,
.page-hero p,
.page-hero-tight p,
.flow-section p,
.software-flow-section p,
.diagram-section p,
.contact-section p,
.site-footer p {
  color: var(--muted);
}

.flow-section .kicker,
.software-flow-section .kicker,
.diagram-section .kicker,
.contact-section .kicker,
.flow-copy .kicker,
.flow-copy h2,
.flow-copy .text-link,
.contact-section .contact-email {
  color: var(--text);
}

.flow-copy > p:not(.kicker),
.software-flow-section .section-lead,
.diagram-section .section-lead,
.contact-section .contact-hero > p:not(.kicker) {
  color: var(--muted);
}

/* Footer is part of the same graphite canvas now. */
.site-footer {
  border-top: 1px solid var(--line-soft);
}

.site-footer .footer-logo {
  filter: grayscale(1) contrast(1.25);
}

.site-footer p,
.footer-meta,
.footer-links {
  color: var(--muted);
}

.footer-links a:hover {
  color: var(--text);
}

/* The animation panels themselves can remain dark for instrument-panel contrast. */
.flow-visual,
.distributed-flow,
.diagram-card,
.console-frame {
  background-color: #15191a;
  color: #f3f5f1;
}

/* Preserve white/gray instrumentation inside dark diagrams. */
.flow-visual .flow-block strong,
.flow-visual .flow-block small,
.distributed-flow .distributed-node span,
.distributed-flow .distributed-core span,
.distributed-flow .distributed-core strong,
.distributed-flow .distributed-node small,
.distributed-flow .distributed-core small,
.diagram-card .diag-title,
.diagram-card .diag-copy,
.diagram-card .diag-kicker {
  color: inherit;
}

/* The capability lifecycle remains on the page canvas rather than becoming a dark band. */
.capability-chain {
  background: transparent;
}

/* Header remains part of the same gray system. */
.site-header {
  background: rgba(226, 227, 223, .92);
}

/* Mobile nav follows the same canvas. */
@media (max-width: 820px) {
  .site-nav {
    background: rgba(226, 227, 223, .985);
  }
}


/* ===== ORIGINAL GRAPHITE GRAY PALETTE RESTORE ===== */

/* Exact palette from the first light-graphite redesign. */
:root {
  --bg: #e2e3df;
  --bg-deep: #d1d3cf;
  --bg-soft: #eceeeb;
  --panel: #f3f4f1;
  --panel-2: #daddd8;
  --line: rgba(15, 18, 19, .22);
  --line-soft: rgba(15, 18, 19, .11);
  --line-faint: rgba(15, 18, 19, .055);
  --text: #101314;
  --text-soft: #252a2b;
  --muted: #5f6667;
  --muted-2: #7b8181;
  --accent: #111516;
  --black: #080a0b;
}

/* Global canvas */
html,
body,
main {
  background: var(--bg) !important;
  color: var(--text);
}

/* Restore the original subtle tonal variation instead of black section bands. */
.statement-section {
  background: #eef0ed !important;
}

.system-section {
  background: #e4e5e1 !important;
}

.mission-architecture {
  background: #d7d9d5 !important;
}

.mission-section {
  background: #eceeeb !important;
}

.company-section,
.flow-section {
  background: #e2e3df !important;
}

.section-dark {
  background: #d3d5d1 !important;
}

.software-flow-section {
  background: #e4e5e1 !important;
}

.contact-section {
  background: #d1d3cf !important;
}

.site-footer {
  background: #c9ccc7 !important;
  color: var(--text) !important;
}

.page-hero,
.page-hero-tight {
  background:
    linear-gradient(rgba(15,18,19,.035) 1px, transparent 1px),
    linear-gradient(90deg, rgba(15,18,19,.035) 1px, transparent 1px),
    #e8eae7 !important;
  background-size: 64px 64px !important;
}

/* Original hero gray treatment. */
.hero-routing {
  background:
    radial-gradient(circle at 84% 42%, rgba(255,255,255,.55), transparent 25%),
    linear-gradient(120deg, #e8e9e6 0%, #dde0dc 52%, #d1d4d0 100%) !important;
}

.hero-noise {
  opacity: 1 !important;
  background:
    linear-gradient(90deg, rgba(232,233,230,.98) 0%, rgba(232,233,230,.92) 34%, rgba(232,233,230,.36) 60%, rgba(232,233,230,.06) 100%),
    radial-gradient(circle at 88% 40%, rgba(255,255,255,.28), transparent 28%) !important;
}

/* Header remains in the same gray family. */
.site-header {
  background: rgba(226, 227, 223, .92) !important;
  border-color: rgba(15,18,19,.11) !important;
}

/* Remove the later dark-panel treatment from the diagrams.
   Diagrams now live inside the gray system too. */
.flow-visual,
.distributed-flow,
.diagram-card,
.diagram-shell,
.console-frame {
  background:
    linear-gradient(rgba(15,18,19,.035) 1px, transparent 1px),
    linear-gradient(90deg, rgba(15,18,19,.035) 1px, transparent 1px),
    #daddd8 !important;
  background-size: 46px 46px !important;
  color: var(--text) !important;
  border-color: rgba(15,18,19,.18) !important;
  box-shadow: none !important;
}

/* Flow/block components use gray cards with black typography. */
.flow-block,
.distributed-node,
.distributed-core,
.chain-node {
  background: rgba(243,244,241,.72) !important;
  border-color: rgba(15,18,19,.24) !important;
  color: var(--text) !important;
}

.flow-block-core,
.distributed-core {
  border-color: rgba(15,18,19,.55) !important;
  box-shadow: 0 0 0 1px rgba(15,18,19,.035) !important;
}

.flow-block strong,
.chain-node strong,
.distributed-node span,
.distributed-core span,
.distributed-core strong {
  color: #101314 !important;
}

.flow-block small,
.chain-node small,
.distributed-node small,
.distributed-core small,
.flow-status {
  color: #697071 !important;
}

/* Packet routes stay high-contrast graphite on gray. */
.flow-link,
.chain-path {
  background: rgba(15,18,19,.20) !important;
}

.flow-link i,
.chain-path i,
.bus-packet {
  background: #111516 !important;
  box-shadow: 0 0 10px rgba(15,18,19,.22) !important;
}

.bus-line {
  background: linear-gradient(
    to bottom,
    transparent,
    rgba(15,18,19,.28) 18%,
    rgba(15,18,19,.28) 82%,
    transparent
  ) !important;
}

/* SVG / architecture diagram palette on light graphite. */
.perspective-grid path {
  stroke: rgba(15,18,19,.13) !important;
}

.route-paths path,
.svg-route {
  stroke: rgba(15,18,19,.34) !important;
}

.mission-node circle,
.svg-block,
.svg-small-block rect {
  fill: rgba(243,244,241,.72) !important;
  stroke: rgba(15,18,19,.45) !important;
}

.mission-node .node-core,
.route-pulse,
.svg-packet,
.svg-packets circle,
.svg-activity circle {
  fill: #111516 !important;
}

.mission-node text,
.svg-eyebrow,
.svg-index,
.svg-main-title,
.svg-block-title,
.svg-copy,
.svg-block-sub,
.svg-caption {
  fill: #252a2b !important;
}

.svg-core-ring {
  fill: none !important;
  stroke: rgba(15,18,19,.12) !important;
}

/* Contact/footer typography stays dark on the gray palette. */
.contact-section .kicker,
.contact-section h2,
.contact-section .contact-email,
.site-footer,
.site-footer p,
.footer-meta,
.footer-links {
  color: var(--text) !important;
}

.contact-section .contact-hero > p:not(.kicker) {
  color: var(--muted) !important;
}

.site-footer .footer-logo {
  filter: grayscale(1) contrast(1.25) !important;
}

/* Mobile nav stays inside the exact same gray family. */
@media (max-width: 820px) {
  .site-nav {
    background: rgba(232,234,231,.985) !important;
  }
}


/* ===== DARK GRAPHITE ORIGINAL PALETTE RESTORE ===== */

/* Restore the original darker Peregrine graphite system from the pre-light redesign. */
:root {
  --bg: #202427;
  --bg-deep: #191d20;
  --bg-soft: #292e31;
  --panel: #252a2d;
  --panel-2: #2c3134;
  --line: rgba(240, 242, 242, 0.22);
  --line-soft: rgba(240, 242, 242, 0.10);
  --line-faint: rgba(240, 242, 242, 0.06);
  --text: #f4f5f3;
  --text-soft: #d8dcdd;
  --muted: #a8afb2;
  --muted-2: #858e92;
  --accent: #f4f5f3;
  --black: #0d0f10;
}

html,
body,
main {
  background: var(--bg) !important;
  color: var(--text) !important;
}

body,
.section,
.page-hero,
.page-hero-tight,
.statement-section,
.system-section,
.mission-architecture,
.mission-section,
.company-section,
.flow-section,
.software-flow-section,
.section-dark,
.contact-section,
.site-footer {
  color: var(--text);
}

/* Original dark graphite section rhythm */
.statement-section {
  background: var(--bg-soft) !important;
}

.system-section {
  background: var(--bg) !important;
}

.mission-architecture {
  background: var(--bg-deep) !important;
}

.mission-section {
  background: var(--bg-soft) !important;
}

.company-section,
.flow-section {
  background: var(--bg) !important;
}

.section-dark {
  background: var(--bg-deep) !important;
}

.software-flow-section {
  background: var(--bg-soft) !important;
}

.contact-section {
  background: #171b1d !important;
}

.site-footer {
  background: #111416 !important;
  color: var(--text) !important;
}

/* Hero: restore the original darker graphite atmosphere. */
.hero-routing {
  background: #202427 !important;
}

.hero-noise {
  opacity: .15 !important;
  background-image:
    radial-gradient(circle at 35% 35%, rgba(255,255,255,.04), transparent 28%),
    linear-gradient(90deg, rgba(32,36,39,.96) 0%, rgba(32,36,39,.82) 37%, rgba(32,36,39,.25) 68%, rgba(32,36,39,.05) 100%) !important;
}

.hero-routing::before {
  background:
    linear-gradient(rgba(244,245,243,.026) 1px, transparent 1px),
    linear-gradient(90deg, rgba(244,245,243,.026) 1px, transparent 1px) !important;
  background-size: 64px 64px !important;
}

/* Dark header */
.site-header {
  background: rgba(32,36,39,.95) !important;
  border-bottom: 1px solid var(--line-soft) !important;
}

.brand-logo,
.footer-logo,
.contact-logo {
  filter: grayscale(1) brightness(0) invert(1) !important;
}

.site-nav a {
  color: var(--text-soft) !important;
}

.site-nav a:hover,
.site-nav a.active {
  color: var(--text) !important;
}

.site-nav a:not(.nav-cta)::after {
  background: var(--text) !important;
}

.site-nav .nav-cta {
  background: transparent !important;
  color: var(--text) !important;
  border-color: var(--text-soft) !important;
}

.site-nav .nav-cta:hover {
  background: var(--text) !important;
  color: var(--black) !important;
}

/* Typography back to light-on-graphite */
h1,
h2,
h3,
h4,
.system-name,
.system-arrow,
.fact-card strong,
.founder-line strong,
.flow-copy h2,
.software-flow-section h2,
.contact-section h2,
.contact-section .contact-email {
  color: var(--text) !important;
}

p,
.section p,
.page-hero p,
.page-hero-tight p,
.flow-section p,
.software-flow-section p,
.contact-section p,
.site-footer p {
  color: var(--muted) !important;
}

.hero-copy,
.large-copy,
.system-description,
.flow-copy > p:not(.kicker),
.contact-section .contact-hero > p:not(.kicker) {
  color: var(--text-soft) !important;
}

.eyebrow,
.kicker,
.section-index,
.card-kicker,
.card-label,
.founder-meta,
.hero-rail,
.hero-meta,
.visual-caption,
.system-number,
.mission-index,
.fact-card span,
.timeline-item strong {
  color: var(--muted-2) !important;
}

/* Page heroes return to dark graphite with subtle grid */
.page-hero,
.page-hero-tight {
  background:
    linear-gradient(rgba(244,245,243,.024) 1px, transparent 1px),
    linear-gradient(90deg, rgba(244,245,243,.024) 1px, transparent 1px),
    var(--bg-soft) !important;
  background-size: 64px 64px !important;
}

/* Cards / panels */
.info-grid,
.program-grid,
.feature-grid,
.founder-grid,
.fact-grid {
  background: var(--line-soft) !important;
  border-color: var(--line-soft) !important;
}

.info-card,
.program-card,
.feature-card,
.founder-card,
.contact-card,
.pdf-card,
.fact-card,
.notice-card,
.media-card,
.chain-node {
  background: var(--panel) !important;
  color: var(--text) !important;
}

.info-card:hover,
.program-card:hover,
.feature-card:hover {
  background: var(--panel-2) !important;
}

.info-card h3,
.program-card h3,
.feature-card h3,
.founder-card h3,
.chain-node strong,
.fact-card strong {
  color: var(--text) !important;
}

/* System rows */
.system-stack,
.mission-list,
.founder-lines,
.timeline-list {
  border-color: var(--line) !important;
}

.system-row,
.mission-item,
.founder-line,
.timeline-item {
  border-color: var(--line-soft) !important;
}

.system-row:hover {
  background: rgba(244,245,243,.045) !important;
}

/* Animated block diagrams stay in the same darker gray family */
.flow-visual,
.distributed-flow,
.diagram-card,
.diagram-shell,
.console-frame,
.architecture-visual {
  background:
    linear-gradient(rgba(244,245,243,.024) 1px, transparent 1px),
    linear-gradient(90deg, rgba(244,245,243,.024) 1px, transparent 1px),
    #252a2d !important;
  background-size: 46px 46px !important;
  border-color: rgba(240,242,242,.14) !important;
  color: var(--text) !important;
  box-shadow: none !important;
}

.flow-block,
.distributed-node,
.distributed-core,
.chain-node {
  background: rgba(32,36,39,.92) !important;
  border-color: rgba(240,242,242,.22) !important;
  color: var(--text) !important;
}

.flow-block-core,
.distributed-core {
  border-color: rgba(244,245,243,.52) !important;
  box-shadow: 0 0 0 1px rgba(244,245,243,.04), 0 0 44px rgba(0,0,0,.18) !important;
}

.flow-block strong,
.chain-node strong,
.distributed-node span,
.distributed-core span,
.distributed-core strong {
  color: var(--text) !important;
}

.flow-block small,
.chain-node small,
.distributed-node small,
.distributed-core small,
.flow-status {
  color: var(--muted-2) !important;
}

.flow-link,
.chain-path {
  background: rgba(244,245,243,.18) !important;
}

.flow-link i,
.chain-path i,
.bus-packet {
  background: var(--text) !important;
  box-shadow: 0 0 12px rgba(244,245,243,.35) !important;
}

.bus-line {
  background: linear-gradient(
    to bottom,
    transparent,
    rgba(244,245,243,.28) 18%,
    rgba(244,245,243,.28) 82%,
    transparent
  ) !important;
}

/* SVG architecture palette */
.perspective-grid path {
  stroke: rgba(244,245,243,.11) !important;
}

.route-paths path,
.svg-route {
  stroke: rgba(244,245,243,.32) !important;
}

.mission-node circle,
.svg-block,
.svg-small-block rect {
  fill: rgba(32,36,39,.94) !important;
  stroke: rgba(244,245,243,.55) !important;
}

.mission-node .node-core,
.route-pulse,
.svg-packet,
.svg-packets circle,
.svg-activity circle {
  fill: var(--text) !important;
}

.mission-node text,
.svg-eyebrow,
.svg-index,
.svg-main-title,
.svg-block-title,
.svg-copy,
.svg-block-sub,
.svg-caption {
  fill: var(--text-soft) !important;
}

.svg-core-ring {
  fill: none !important;
  stroke: rgba(244,245,243,.12) !important;
}

/* Buttons */
.button {
  border-color: var(--text-soft) !important;
  color: var(--text) !important;
}

.button:hover,
.button.primary {
  background: var(--text) !important;
  color: var(--black) !important;
}

.button.primary:hover {
  background: transparent !important;
  color: var(--text) !important;
}

/* Footer/contact */
.site-footer p,
.footer-meta,
.footer-links {
  color: var(--muted) !important;
}

.footer-links a:hover {
  color: var(--text) !important;
}

/* Mobile menu in the same original graphite */
@media (max-width: 820px) {
  .site-nav {
    background: rgba(32,36,39,.985) !important;
    border-color: var(--line-soft) !important;
  }

  .menu-toggle {
    color: var(--text) !important;
    border-color: var(--line) !important;
  }
}

/* ===== 2026-09-27 FIXES ===== */

/* Text links inherited near-black from the light-theme layer and were invisible on graphite. */
.text-link {
  color: var(--text-soft) !important;
  border-color: rgba(244,245,243,.32) !important;
}

.text-link.strong,
.text-link:hover {
  color: var(--text) !important;
  border-color: var(--text) !important;
}

/* The meta strip kept the light-theme background; bring it into the graphite palette. */
.hero-meta {
  background: rgba(25,29,32,.88) !important;
  border-color: var(--line-soft) !important;
}

.hero-meta div {
  color: var(--muted) !important;
  border-color: var(--line-soft) !important;
}

.hero-meta span {
  color: var(--text) !important;
}

/* Status tag for system rows that have no page yet (replaces a non-clickable arrow). */
.system-row {
  grid-template-columns: 64px 1.08fr 1.12fr 1.75fr 132px !important;
}

.system-status {
  font-family: var(--technical);
  font-size: .72rem;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: var(--muted-2);
  text-align: right;
  white-space: nowrap;
}

.contact-meta {
  margin-top: 22px;
  font-family: var(--technical);
  letter-spacing: .06em;
  color: var(--muted) !important;
}

.contact-meta a {
  color: var(--text-soft);
  text-decoration: none;
}

.contact-meta a:hover {
  color: var(--text);
}

.contact-meta span {
  margin: 0 .6em;
  color: var(--muted-2);
}

.program-card a,
.info-card a {
  color: var(--text);
  white-space: nowrap;
}

@media (max-width: 1180px) {
  .system-row {
    grid-template-columns: 56px .9fr 1fr 1.3fr 118px !important;
  }
}

@media (max-width: 820px) {
  .system-row {
    grid-template-columns: 44px 1fr 32px !important;
  }

  .system-status {
    grid-column: 2 / -1;
    text-align: left;
  }

  /* Keep hero copy readable where the routing animation sits behind the text. */
  #routingCanvas {
    opacity: .38 !important;
  }

  .hero-copywrap {
    position: relative;
    z-index: 2;
  }
}

/* Secondary copy inherited ~3:1 grey from the light layer; lift to AA contrast on graphite. */
.system-detail,
.mission-item > span,
.founder-line span {
  color: var(--muted) !important;
}

/* Long single words in display headings must never force horizontal scroll on phones. */
@media (max-width: 620px) {
  h1,
  h2 {
    overflow-wrap: break-word;
    hyphens: auto;
  }
}

@media (max-width: 420px) {
  .contact-email {
    max-width: 100%;
    font-size: clamp(.9rem, 4.6vw, 1.1rem) !important;
    overflow-wrap: anywhere;
  }
}

/* ===== 2026-09-27b: news, public safety, 404 ===== */

.page-hero-404 {
  min-height: calc(100vh - var(--header-h));
  display: flex;
  align-items: center;
}

.news-section {
  background: var(--bg-soft) !important;
}

.news-list {
  border-top: 1px solid var(--line);
}

.news-item {
  display: grid;
  grid-template-columns: minmax(180px, 240px) 1fr;
  gap: 40px;
  padding: 34px 0;
  border-bottom: 1px solid var(--line-soft);
}

.news-meta {
  display: flex;
  flex-direction: column;
  gap: 8px;
  font-family: var(--technical);
  font-size: .78rem;
  letter-spacing: .14em;
  text-transform: uppercase;
}

.news-meta time {
  color: var(--text-soft);
}

.news-meta span {
  color: var(--muted-2);
}

.news-item h3 {
  margin: 0 0 10px;
  font-size: clamp(1.25rem, 2vw, 1.6rem);
  line-height: 1.25;
}

.news-item p {
  margin: 0;
  max-width: 760px;
}

.news-empty {
  padding: 34px 0;
}

.news-empty a,
.inline-link,
.section-lead a:not(.text-link) {
  color: var(--text) !important;
  text-decoration: underline;
  text-underline-offset: 3px;
  text-decoration-color: rgba(244,245,243,.4);
}

.inline-link {
  white-space: nowrap;
}

.timeline-item strong {
  min-width: 4.5em;
}

/* Six nav items: tighten spacing before the mobile menu takes over. */
@media (min-width: 821px) and (max-width: 1240px) {
  .site-nav {
    gap: 20px !important;
  }

  .site-nav a {
    font-size: .74rem !important;
  }
}

@media (max-width: 720px) {
  .news-item {
    grid-template-columns: 1fr;
    gap: 12px;
    padding: 26px 0;
  }

  .news-meta {
    flex-direction: row;
    gap: 14px;
  }
}

/* ===== 2026-09-27c: Government page ===== */

.gov-strip {
  background: #171b1d !important;
  border-top: 1px solid var(--line-soft);
  border-bottom: 1px solid var(--line-soft);
}

.gov-strip-row {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  gap: 10px 28px;
  padding: 16px 0;
  font-family: var(--technical);
  font-size: .74rem;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: var(--text-soft);
}

.fovea-diagram {
  margin: 0;
  padding: clamp(14px, 2.4vw, 28px);
  border: 1px solid rgba(240,242,242,.14);
  background:
    linear-gradient(rgba(244,245,243,.03) 1px, transparent 1px),
    linear-gradient(90deg, rgba(244,245,243,.03) 1px, transparent 1px),
    #252a2d;
  background-size: 36px 36px;
}

.fovea-svg {
  display: block;
  width: 100%;
  height: auto;
}

.fovea-svg text {
  font-family: var(--technical);
}

.fv-chip rect {
  fill: rgba(32,36,39,.94);
  stroke: rgba(244,245,243,.24);
  stroke-width: 1;
}

.fv-chip-out rect {
  stroke: rgba(244,245,243,.5);
}

.fv-chip-title {
  fill: var(--text);
  font-size: 15px;
  font-weight: 600;
  letter-spacing: .04em;
}

.fv-chip-sub {
  fill: var(--muted-2);
  font-size: 10.5px;
  letter-spacing: .12em;
}

.fv-links-in path,
.fv-links-out path {
  fill: none;
  stroke-width: 1.6;
  stroke-dasharray: 5 7;
  animation: fv-flow 1.6s linear infinite;
}

.fv-links-in path { stroke: rgba(244,245,243,.34); }
.fv-links-out path { stroke: rgba(244,245,243,.7); }
.fv-arrowhead-in { fill: rgba(244,245,243,.5); }
.fv-arrowhead-out { fill: rgba(244,245,243,.85); }

@keyframes fv-flow {
  to { stroke-dashoffset: -24; }
}

.fv-core > rect {
  fill: #1b1f22;
  stroke: rgba(244,245,243,.55);
  stroke-width: 1.2;
}

.fv-core-title {
  fill: var(--text);
  font-size: 30px;
  font-weight: 600;
  letter-spacing: .08em;
  text-anchor: middle;
}

.fv-core-sub,
.fv-core-foot {
  fill: var(--muted-2);
  font-size: 10.5px;
  letter-spacing: .16em;
  text-anchor: middle;
}

.fv-step rect {
  fill: #2c3134;
  stroke: rgba(244,245,243,.26);
}

.fv-step text {
  fill: var(--text-soft);
  font-size: 9.6px;
  letter-spacing: .08em;
  text-anchor: middle;
}

.fovea-stack {
  display: none;
}

.gov-grid {
  display: grid;
  grid-template-columns: minmax(0, 1.25fr) minmax(0, .9fr);
  gap: clamp(32px, 5vw, 72px);
  align-items: start;
}

.gov-grid .timeline-item span b,
.gov-poc b {
  color: var(--text);
}

.gov-data {
  margin: 0 0 24px;
  border-top: 1px solid var(--line);
}

.gov-data > div {
  display: grid;
  grid-template-columns: 120px 1fr;
  gap: 16px;
  padding: 12px 0;
  border-bottom: 1px solid var(--line-soft);
}

.gov-data dt {
  font-family: var(--technical);
  font-size: .74rem;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: var(--muted-2);
}

.gov-data dd {
  margin: 0;
  color: var(--text-soft);
}

.gov-poc {
  padding: 22px 24px;
  background: var(--panel);
  border-left: 2px solid var(--text-soft);
}

.gov-poc p {
  margin: 0 0 14px;
}

.gov-poc a:not(.text-link) {
  color: var(--text);
}

@media (max-width: 900px) {
  .gov-grid {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 720px) {
  .fovea-svg {
    display: none;
  }

  .fovea-stack {
    display: grid;
    gap: 10px;
  }

  .fv-stack-group {
    padding: 14px 16px;
    border: 1px solid rgba(244,245,243,.22);
    background: rgba(32,36,39,.94);
  }

  .fv-stack-label {
    display: block;
    margin-bottom: 8px;
    font-family: var(--technical);
    font-size: .72rem;
    letter-spacing: .14em;
    text-transform: uppercase;
    color: var(--muted-2);
  }

  .fv-stack-group ul {
    display: flex;
    flex-wrap: wrap;
    gap: 6px 14px;
    margin: 0;
    padding: 0;
    list-style: none;
    color: var(--text-soft);
  }

  .fv-stack-arrow {
    text-align: center;
    color: var(--muted);
  }

  .fv-stack-core {
    padding: 18px 16px;
    border: 1px solid rgba(244,245,243,.55);
    background: #1b1f22;
    text-align: center;
  }

  .fv-stack-core strong {
    display: block;
    font-size: 1.4rem;
    letter-spacing: .08em;
    color: var(--text);
  }

  .fv-stack-core small {
    font-family: var(--technical);
    font-size: .72rem;
    letter-spacing: .08em;
    color: var(--muted-2);
  }

  .gov-strip-row {
    justify-content: flex-start;
    font-size: .68rem;
  }

  .gov-data > div {
    grid-template-columns: 1fr;
    gap: 4px;
  }
}

@media (prefers-reduced-motion: reduce) {
  .fv-links-in path,
  .fv-links-out path {
    animation: none;
  }
}

/* ===== 2026-09-27d: ASCII tank sim strip (homepage) ===== */

.sim-section {
  padding: 28px 0 34px;
  background: #111416 !important;
  border-top: 1px solid var(--line-faint);
}

.sim-term {
  border: 1px solid rgba(244,245,243,.14);
  border-radius: 6px;
  background: #0b0d0e;
  overflow: hidden;
  cursor: pointer;
  outline: none;
  transition: border-color .2s ease, box-shadow .2s ease;
}

.sim-term:hover {
  border-color: rgba(244,245,243,.26);
}

.sim-term:focus,
.sim-term:focus-visible {
  border-color: rgba(244,245,243,.55);
  box-shadow: 0 0 0 3px rgba(244,245,243,.08);
}

.sim-bar {
  display: flex;
  align-items: center;
  gap: 14px;
  padding: 7px 12px;
  border-bottom: 1px solid rgba(244,245,243,.08);
  background: #15191b;
  font-family: ui-monospace, "SFMono-Regular", Consolas, "Liberation Mono", monospace;
  font-size: .72rem;
  color: var(--muted-2);
}

.sim-dots {
  display: inline-flex;
  gap: 5px;
}

.sim-dots i {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: rgba(244,245,243,.18);
}

.sim-title {
  flex: 1;
  min-width: 0;
  overflow: hidden;
  white-space: nowrap;
  text-overflow: ellipsis;
}

.sim-status {
  color: var(--text-soft);
  white-space: nowrap;
}

@media (max-width: 620px) {
  .sim-title {
    display: none;
  }

  .sim-bar {
    justify-content: space-between;
  }
}

/* Operation Mandatory Fun teaser (replaces the tank sim; game lives at /mandatory-fun) */
.mf-teaser {
  display: block;
  color: var(--text);
  text-decoration: none;
}

.mf-teaser .sim-status {
  color: var(--text);
}

.mf-teaser-body {
  display: grid;
  gap: 6px;
  padding: 22px 22px 24px;
  background:
    radial-gradient(circle at 82% 40%, rgba(95, 212, 232, .10), transparent 32%),
    radial-gradient(circle at 70% 60%, rgba(180, 140, 255, .09), transparent 30%),
    #0b0d0e;
}

.mf-teaser-kicker {
  margin: 0;
  font-family: var(--technical);
  font-size: .7rem;
  letter-spacing: .16em;
  text-transform: uppercase;
  color: var(--muted);
}

.mf-teaser-body strong {
  font-family: var(--display);
  font-size: clamp(1.5rem, 3vw, 2.2rem);
  font-weight: 600;
  letter-spacing: -.03em;
}

.mf-teaser-body span {
  max-width: 720px;
  color: var(--text-soft);
  line-height: 1.55;
}

.mf-teaser:hover .mf-teaser-body strong {
  text-decoration: underline;
  text-underline-offset: 6px;
  text-decoration-thickness: 1px;
}

/* ===== 2026-09-27f: CTAs, backers strip, news articles ===== */

/* Faint index numerals were ~3.9:1 on graphite; lift to AA. */
.system-number,
.mission-index,
.architecture-steps span,
.flow-block span {
  color: var(--muted) !important;
}

.cta-row {
  display: flex;
  flex-wrap: wrap;
  gap: 14px;
  margin-top: 40px;
}

.contact-hero .cta-row + .contact-email {
  margin-top: 36px;
}

.flow-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 28px;
}

/* Backed by / Working with: a light-graphite band (the site's original light palette) so
   partner logos display in their official colors, unmodified. */
.backers-section {
  --band: #e2e3df;
  --band-panel: #f3f4f1;
  --band-line: rgba(15, 18, 19, .14);
  --band-text: #101314;
  --band-muted: #4d5455;
  background: var(--band) !important;
  color: var(--band-text) !important;
}

.backers-section .kicker {
  color: var(--band-muted) !important;
}

.backers-section h2 {
  color: var(--band-text) !important;
}

.backers-section .section-lead {
  color: var(--band-muted) !important;
}

.backer-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
  gap: 1px;
  background: var(--band-line);
  border: 1px solid var(--band-line);
}

.backer-card {
  position: relative;
  display: grid;
  grid-template-rows: 120px auto;
  gap: 26px;
  padding: 36px 36px 32px;
  background: var(--band-panel);
  color: var(--band-text);
  text-decoration: none;
  transition: background .2s ease, box-shadow .2s ease;
}

.backer-card:hover,
.backer-card:focus-visible {
  background: #fbfbfa;
  box-shadow: inset 0 -2px 0 var(--band-text);
}

.backer-logo {
  display: flex;
  align-items: center;
}

.backer-logo img {
  display: block;
  width: auto;
  max-width: min(320px, 100%);
  max-height: 72px;
  height: auto;
}

/* The NVIDIA Inception badge carries its own clear space, so it gets more height to read at parity. */
.backer-logo--badge img {
  max-height: 104px;
}

.backer-copy {
  display: grid;
  gap: 6px;
  padding-top: 20px;
  border-top: 1px solid var(--band-line);
}

.backer-copy strong {
  font-family: var(--technical);
  font-size: .82rem;
  font-weight: 600;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: var(--band-text);
}

/* Partner names whose trademark rules forbid all caps (NVIDIA Inception) keep their exact case. */
.backer-copy strong.backer-name-exact {
  text-transform: none;
  letter-spacing: .04em;
}

.backer-copy span {
  color: var(--band-muted);
}

.backer-arrow {
  position: absolute;
  top: 30px;
  right: 32px;
  color: var(--band-muted);
  transition: transform .2s ease, color .2s ease;
}

.backer-card:hover .backer-arrow {
  color: var(--band-text);
  transform: translate(4px, -4px);
}

/* Reticle cursor + track gate (see initCursorGate in script.js). Fine pointers only. */
@media (hover: hover) and (pointer: fine) {
  html,
  body,
  .system-row {
    cursor: url('/assets/cursor/reticle.svg') 16 16, crosshair;
  }

  a[href],
  a.system-row,
  button,
  [role="button"],
  summary,
  label[for],
  select,
  .sim-term {
    cursor: url('/assets/cursor/reticle-lock.svg') 16 16, pointer;
  }

  /* With the animated gate running, the gate shows the lock; keep the pointer itself clean. */
  html.has-cursor-gate a[href],
  html.has-cursor-gate a.system-row,
  html.has-cursor-gate button,
  html.has-cursor-gate [role="button"],
  html.has-cursor-gate summary,
  html.has-cursor-gate label[for],
  html.has-cursor-gate select,
  html.has-cursor-gate .sim-term {
    cursor: url('/assets/cursor/reticle.svg') 16 16, pointer;
  }

  input:not([type="button"]):not([type="submit"]):not([type="checkbox"]):not([type="radio"]),
  textarea,
  [contenteditable="true"] {
    cursor: text;
  }
}

.cursor-gate {
  position: fixed;
  top: 0;
  left: 0;
  z-index: 9999;
  width: 0;
  height: 0;
  pointer-events: none;
  opacity: 0;
  mix-blend-mode: difference; /* light on graphite, dark on the light band */
  transition: opacity .2s ease;
  will-change: transform;
}

.cursor-gate.visible {
  opacity: 1;
}

.cursor-gate.text {
  opacity: 0;
}

/* Search ring */
.cursor-gate::before {
  content: '';
  position: absolute;
  top: -17px;
  left: -17px;
  width: 34px;
  height: 34px;
  border: 1px solid rgba(244, 245, 243, .7);
  border-radius: 50%;
  transition: transform .24s cubic-bezier(.2, .8, .2, 1), opacity .18s ease;
}

/* Lock brackets: parked outside the ring, converge on hover. */
.cursor-gate i {
  --dx: -1;
  --dy: -1;
  position: absolute;
  width: 9px;
  height: 9px;
  border: 0 solid #f4f5f3;
  opacity: 0;
  transform: translate(calc(var(--dx) * 10px), calc(var(--dy) * 10px));
  transition: transform .24s cubic-bezier(.2, .8, .2, 1), opacity .16s ease;
}

.cursor-gate i:nth-child(1) { top: -22px; left: -22px; border-top-width: 1.5px; border-left-width: 1.5px; }
.cursor-gate i:nth-child(2) { --dx: 1; top: -22px; right: -22px; border-top-width: 1.5px; border-right-width: 1.5px; }
.cursor-gate i:nth-child(3) { --dx: 1; --dy: 1; bottom: -22px; right: -22px; border-bottom-width: 1.5px; border-right-width: 1.5px; }
.cursor-gate i:nth-child(4) { --dy: 1; bottom: -22px; left: -22px; border-bottom-width: 1.5px; border-left-width: 1.5px; }

.cursor-gate.locked::before {
  opacity: 0;
  transform: scale(.4);
}

.cursor-gate.locked i {
  opacity: 1;
  transform: none;
}

.cursor-gate.pressed::before {
  transform: scale(.75);
}

.cursor-gate.locked.pressed i {
  transform: translate(calc(var(--dx) * -4px), calc(var(--dy) * -4px));
}

@media (prefers-reduced-motion: reduce) {
  .cursor-gate {
    display: none;
  }
}

/* ===== 2026-09-27h: FOVEA C2 simulation screenshots ===== */

.showcase-section {
  background: var(--bg-deep) !important;
  border-top: 1px solid var(--line-soft);
}

.shot {
  margin: 0;
  border: 1px solid var(--line);
  background: var(--black);
}

.shot-frame {
  display: block;
  overflow: hidden;
}

.shot-frame img {
  display: block;
  width: 100%;
  height: auto;
  transition: transform .5s cubic-bezier(.2, .8, .2, 1);
}

.shot-frame:hover img {
  transform: scale(1.012);
}

.shot .visual-caption {
  position: static;
  gap: 16px;
  flex-wrap: wrap;
  padding: 12px 16px;
  border-top: 1px solid var(--line-soft);
  font-size: .68rem;
  color: var(--muted) !important;
}

.showcase-grid {
  display: grid;
  grid-template-columns: minmax(0, 1.55fr) minmax(0, 1fr);
  gap: clamp(28px, 4vw, 64px);
  align-items: start;
  margin-top: clamp(28px, 4vw, 56px);
}

.showcase-copy h3 {
  margin: 0 0 18px;
  font-size: clamp(1.3rem, 2vw, 1.7rem);
  color: var(--text);
}

.showcase-list {
  margin: 0 0 28px;
  padding: 0;
  list-style: none;
  border-top: 1px solid var(--line-soft);
}

.showcase-list li {
  padding: 16px 0;
  border-bottom: 1px solid var(--line-soft);
  color: var(--text-soft);
  line-height: 1.6;
}

.showcase-list strong {
  display: block;
  margin-bottom: 4px;
  color: var(--text);
  font-weight: 600;
}

.showcase-grid-reverse {
  grid-template-columns: minmax(0, 1fr) minmax(0, 1.1fr);
  align-items: center;
}

.showcase-text {
  margin: 0 0 18px;
  color: var(--text-soft);
  line-height: 1.7;
}

/* Native-resolution capture: never upscale past its pixel width. */
.shot-narrow {
  width: 100%;
  max-width: 558px;
  justify-self: center;
}

@media (max-width: 900px) {
  .showcase-grid,
  .showcase-grid-reverse {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 620px) {
  .shot .visual-caption {
    font-size: .6rem;
  }
}

@media (prefers-reduced-motion: reduce) {
  .shot-frame:hover img {
    transform: none;
  }
}

/* Light plate for partner logos placed on graphite (article rail). */
.logo-plate {
  padding: 22px 24px;
  background: #f3f4f1;
  border: 1px solid var(--line-soft);
}

/* News items that link to a full article */
.news-item h3 a {
  color: inherit;
  text-decoration: none;
}

.news-item h3 a:hover {
  text-decoration: underline;
  text-underline-offset: 4px;
  text-decoration-color: rgba(244,245,243,.4);
}

.news-more {
  display: inline-flex;
  margin-top: 18px;
}

/* Article pages */
.article-hero .eyebrow a {
  color: inherit;
  text-decoration: none;
}

.article-hero .eyebrow a:hover {
  color: var(--text);
}

.article-hero h1 {
  max-width: 16ch;
}

.article-hero .page-lead {
  max-width: 760px;
  color: var(--text-soft);
  font-size: 1.2rem;
  line-height: 1.6;
}

.article-grid {
  display: grid;
  grid-template-columns: minmax(240px, 320px) minmax(0, 760px);
  gap: clamp(40px, 7vw, 120px);
  align-items: start;
}

.article-rail {
  position: sticky;
  top: calc(var(--header-h) + 32px);
  display: grid;
  gap: 28px;
}

.article-rail-logo {
  width: 100%;
  max-width: 220px;
  height: auto;
}

.fact-list {
  margin: 0;
  border-top: 1px solid var(--line);
}

.fact-list div {
  display: grid;
  gap: 4px;
  padding: 14px 0;
  border-bottom: 1px solid var(--line-soft);
}

.fact-list dt {
  font-family: var(--technical);
  font-size: .72rem;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: var(--muted);
}

.fact-list dd {
  margin: 0;
  color: var(--text-soft);
  line-height: 1.45;
}

.prose {
  color: var(--text-soft);
  font-size: 1.06rem;
  line-height: 1.75;
}

.prose p,
.prose ul {
  margin: 0 0 22px;
}

.prose strong {
  color: var(--text);
  font-weight: 600;
}

.prose-lead {
  color: var(--text) !important;
  font-size: 1.28rem;
  line-height: 1.6;
}

.prose h2 {
  margin: 64px 0 20px;
  max-width: none;
  font-size: clamp(1.7rem, 3vw, 2.4rem);
  line-height: 1.15;
  color: var(--text);
}

.prose-list {
  padding-left: 1.2em;
}

.prose-list li {
  margin-bottom: 10px;
  padding-left: 4px;
}

.prose-list li::marker {
  color: var(--muted-2);
}

.prep-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1px;
  margin: 32px 0 8px;
  background: var(--line-soft);
  border: 1px solid var(--line-soft);
}

.prep-item {
  padding: 26px 26px 28px;
  background: var(--bg);
}

.prep-item span {
  font-family: var(--technical);
  font-size: .78rem;
  letter-spacing: .14em;
  color: var(--muted);
}

.prep-item h3 {
  margin: 12px 0 10px;
  font-size: 1.2rem;
  line-height: 1.3;
  color: var(--text);
}

.prep-item p {
  margin: 0;
  font-size: .98rem;
  line-height: 1.6;
}

.sources {
  margin-top: 72px;
  padding-top: 8px;
  border-top: 1px solid var(--line-soft);
}

.sources h2 {
  margin-top: 24px;
  font-family: var(--technical);
  font-size: .78rem;
  font-weight: 500;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: var(--muted);
}

.sources ul {
  padding-left: 0;
  list-style: none;
  font-size: .92rem;
}

.sources li {
  margin-bottom: 10px;
}

.sources a {
  color: var(--text-soft);
  text-decoration: underline;
  text-underline-offset: 3px;
  text-decoration-color: rgba(244,245,243,.3);
  overflow-wrap: anywhere;
}

.sources a:hover {
  color: var(--text);
}

.article-back {
  margin-top: 40px;
}

@media (max-width: 900px) {
  .article-grid {
    grid-template-columns: 1fr;
  }

  .article-rail {
    position: static;
  }
}

@media (max-width: 720px) {
  .backer-grid,
  .prep-grid {
    grid-template-columns: 1fr;
  }

  .backer-card {
    grid-template-rows: 88px auto;
    padding: 28px 22px 24px;
  }

  .backer-logo img {
    max-height: 52px;
    max-width: min(240px, 85%);
  }

  .backer-logo--badge img {
    max-height: 76px;
  }

  .backer-arrow {
    top: 22px;
    right: 20px;
  }

  .cta-row .button {
    flex: 1 1 100%;
  }
}

/* ===== 2026-09-27j: Brand logo at brand-guide size ===== */
/* peregrine-logo-horizontal.webp = the official metallic horizontal lockup (brand kit Website_Header_Logo art),
   cropped to the artwork and tone-lifted for dark fields: the metallic master measured ~1.5:1 against the
   graphite header, and APPLIED SCIENCES was nearly invisible. Geometry is unchanged. Brand guide minimum for
   the horizontal lockup on screen is 220 px wide. The old silhouette filter is removed (it erased the eye). */
.brand-logo,
.footer-logo,
.site-footer .footer-logo {
  filter: none !important;
  height: auto !important;
  max-width: none !important;
  object-fit: contain;
}

.brand-logo {
  width: 270px !important;
}

.footer-logo,
.site-footer .footer-logo {
  width: 270px !important;
  margin-bottom: 20px;
}

.brand {
  flex-shrink: 0;
}

@media (max-width: 1100px) {
  .brand-logo {
    width: 220px !important;
  }
}

@media (max-width: 620px) {
  .footer-logo,
  .site-footer .footer-logo {
    width: 240px !important;
  }
}
/* ===== READABILITY PASS: REVEAL TIMING, PHONE HERO, SMALL LABELS ===== */

/* Reveal only hides content once script.js has run, and settles faster. */
html:not(.js-reveal) .reveal {
  opacity: 1;
  transform: none;
}

.reveal {
  transform: translateY(12px);
  transition:
    opacity .45s cubic-bezier(.2,.7,.2,1),
    transform .45s cubic-bezier(.2,.7,.2,1);
}

/* Small uppercase labels: lift the dimmest grey to ~5.3:1 on graphite panels and raise the size floor. */
:root {
  --muted-2: #9ba3a7;
}

.eyebrow,
.kicker,
.section-index,
.hero-rail span,
.hero-meta div,
.visual-caption,
.visual-caption span {
  font-size: .72rem !important;
}

/* Phone hero: copy on top, network diagram in its own band below the actions (see initRoutingCanvas). */
@media (max-width: 620px) {
  .hero-shell {
    padding-bottom: 300px !important;
  }

  #routingCanvas {
    opacity: .9 !important;
  }
}

/* ===== VIDEO EMBED (click-to-load YouTube, privacy-enhanced) ===== */

.video-facade {
  position: relative;
  aspect-ratio: 16 / 9;
  background: var(--black);
}

.video-facade img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.video-play {
  position: absolute;
  left: 50%;
  top: 50%;
  width: 84px;
  height: 84px;
  margin: -42px 0 0 -42px;
  border: 1.5px solid rgba(244, 245, 243, .85);
  border-radius: 50%;
  background: rgba(13, 15, 16, .55);
  backdrop-filter: blur(6px);
  transition: transform .25s ease, background .25s ease;
}

.video-play::after {
  content: '';
  position: absolute;
  left: 34px;
  top: 26px;
  border-style: solid;
  border-width: 16px 0 16px 26px;
  border-color: transparent transparent transparent #f4f5f3;
}

.video-facade:hover .video-play,
.video-facade:focus-visible .video-play {
  transform: scale(1.06);
  background: rgba(13, 15, 16, .75);
}

.video-meta {
  position: absolute;
  left: 18px;
  bottom: 16px;
  padding: 7px 10px;
  font: 500 .72rem/1 "Space Grotesk", sans-serif;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: #f4f5f3;
  background: rgba(13, 15, 16, .6);
  border: 1px solid rgba(244, 245, 243, .18);
}

.video-embed {
  display: block;
  width: 100%;
  aspect-ratio: 16 / 9;
  border: 0;
  background: var(--black);
}

@media (max-width: 620px) {
  .video-play { width: 64px; height: 64px; margin: -32px 0 0 -32px; }
  .video-play::after { left: 25px; top: 19px; border-width: 13px 0 13px 21px; }
  .video-meta { display: none; }
}

/* FOVEA page refresh, Oct 2026: sensor grid, four-up features, lead emphasis */
.shot-spaced { margin-bottom: 28px; }
.page-lead-strong {
  color: var(--text);
  font-family: var(--technical);
  font-size: clamp(1.25rem, 2.1vw, 1.7rem);
  line-height: 1.25;
  margin-bottom: 14px;
}
.sensor-grid {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 1px;
  background: var(--line-soft);
  border: 1px solid var(--line-soft);
}
.sensor-tile {
  background: var(--panel);
  padding: 22px 20px;
  min-height: 104px;
  display: flex;
  flex-direction: column;
  gap: 8px;
  border-left: 2px solid transparent;
  transition: background .2s ease, border-color .2s ease;
}
.sensor-tile:hover { background: var(--panel-2); border-left-color: var(--text); }
.sensor-tile span {
  font-family: var(--technical);
  font-size: .95rem;
  letter-spacing: .04em;
  text-transform: uppercase;
  color: var(--text);
}
.sensor-tile small { color: var(--muted); font-size: .82rem; line-height: 1.35; }
.sensor-tile-any { background: var(--text); }
.sensor-tile-any:hover { background: var(--text-soft); border-left-color: var(--bg); }
.sensor-tile-any span { color: var(--bg); }
.sensor-tile-any small { color: var(--bg-soft); }
.feature-grid.feature-grid-four { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.feature-grid-four .feature-card { min-height: 0; }
.feature-grid-four .feature-card p { color: var(--muted); font-size: .92rem; line-height: 1.5; }
@media (max-width: 1100px) {
  .sensor-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .feature-grid.feature-grid-four { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 620px) {
  .sensor-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .sensor-tile { padding: 16px 14px; min-height: 0; }
  .feature-grid.feature-grid-four { grid-template-columns: 1fr; }
}

@media (max-width: 620px) { .sensor-tile-any { grid-column: span 2; } }

/* Privacy policy */
.legal-prose { max-width: 760px; }
.legal-prose h2 { font-size: clamp(1.3rem, 2vw, 1.7rem); margin: 44px 0 14px; }
.legal-prose h2:first-child { margin-top: 0; }
.legal-prose p, .legal-prose li { color: var(--text-soft); font-size: 1rem; line-height: 1.7; }
.legal-prose p + p, .legal-prose ul + p { margin-top: 12px; }
.legal-prose ul { padding-left: 20px; display: grid; gap: 8px; }
.legal-prose li { list-style: disc; }
.legal-prose a { color: var(--text); border-bottom: 1px solid var(--line); }

/* LinkedIn icon links */
.site-nav .nav-social {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 34px;
  height: 34px;
  padding: 0;
  color: var(--muted);
  border: 1px solid var(--line-soft);
  transition: color .2s ease, border-color .2s ease;
}
.site-nav .nav-social::after { display: none; }
.site-nav .nav-social:hover,
.site-nav .nav-social:focus-visible { color: var(--text); border-color: var(--line); }
.footer-links .footer-social { display: inline-flex; align-items: center; gap: 8px; }
.footer-links .footer-social svg { flex: none; }

/* Homepage hero: simulated EO/IR feed with HUD */
.hero.hero-isr {
  position: relative;
  min-height: calc(100svh - var(--header-h));
  overflow: hidden;
  background: #2b2d2c;
  border-bottom: 1px solid var(--line-soft);
}
#isrCanvas {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  display: block;
}
.isr-shade {
  position: absolute;
  inset: 0;
  pointer-events: none;
  background:
    linear-gradient(90deg, rgba(14,16,17,.86) 0%, rgba(14,16,17,.7) 30%, rgba(14,16,17,.18) 58%, rgba(14,16,17,0) 75%),
    radial-gradient(ellipse at 66% 50%, transparent 45%, rgba(0,0,0,.55) 100%),
    repeating-linear-gradient(0deg, rgba(0,0,0,.16) 0 1px, transparent 1px 3px);
}
.isr-banner {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  z-index: 3;
  padding: 5px 12px;
  background: #007a33;
  color: #fff;
  text-align: center;
  font: 600 .72rem/1.3 "Space Grotesk", sans-serif;
  letter-spacing: .14em;
}
.hero.hero-isr .hero-shell { min-height: calc(100svh - var(--header-h)); padding-top: 96px; }
.hero.hero-isr .hero-copywrap h1,
.hero.hero-isr .hero-copywrap .hero-copy,
.hero.hero-isr .hero-copywrap .eyebrow { text-shadow: 0 1px 18px rgba(0,0,0,.55); }
@media (max-width: 900px) {
  .isr-shade {
    background:
      linear-gradient(180deg, rgba(14,16,17,.88) 0%, rgba(14,16,17,.72) 55%, rgba(14,16,17,.25) 100%),
      repeating-linear-gradient(0deg, rgba(0,0,0,.16) 0 1px, transparent 1px 3px);
  }
  .isr-banner { font-size: .6rem; letter-spacing: .08em; }
}
.hero.hero-isr .hero-rail { display: none; }

/* Interactive feed: the drawn operator reticle replaces the pointer over open imagery */
@media (hover: hover) and (pointer: fine) {
  html.in-feed .hero.hero-isr,
  html.in-feed .hero.hero-isr .hero-shell { cursor: none; }
  html.in-feed .cursor-gate { opacity: 0 !important; }
}
.feed-controls {
  position: absolute;
  right: 28px;
  top: 178px;
  z-index: 4;
  display: flex;
  gap: 6px;
  align-items: center;
  font: 600 .68rem/1 "Space Grotesk", sans-serif;
  letter-spacing: .12em;
}
.feed-controls span { color: rgba(232,240,232,.7); margin-right: 4px; }
.feed-controls button {
  padding: 7px 9px;
  background: rgba(14,16,17,.55);
  color: rgba(240,248,240,.9);
  border: 1px solid rgba(240,248,240,.35);
  font: inherit;
  letter-spacing: inherit;
}
.feed-controls button[aria-pressed="true"] { background: rgba(240,248,240,.92); color: #121415; border-color: transparent; }
.feed-controls button:hover { border-color: rgba(150,255,170,.9); }
@media (max-width: 900px) {
  .feed-controls { display: none; }
}

/* Site-wide small caps (owner decision, Oct 2026): capitals stay full height, the rest render as true small caps from Peregrine Sans / Text */
body { font-variant-caps: small-caps; }
body p, body li, body dd, body figcaption { letter-spacing: .02em; }
/* Small caps run wider; let long words wrap instead of widening narrow layouts */
.timeline-item > *, .info-card, .program-card, .feature-card { min-width: 0; }
.timeline-item span, .info-card p, .program-card p, .feature-card p { overflow-wrap: break-word; hyphens: auto; }
a[href^="mailto:"] { overflow-wrap: anywhere; }

/* ===== LOOKOUT UI DEMO (lookout.html) ===== */
.lk-demo {
  --lk-bg: #121517;
  --lk-panel: #171b1d;
  --lk-line: rgba(233, 238, 238, .14);
  --lk-text: #e9eeee;
  --lk-mute: #9aa3a6;
  --lk-warning: #ff1744;
  --lk-caution: #ff9100;
  --lk-intruder: #ff5252;
  --lk-friendly: #69f0ae;
  display: grid;
  grid-template-columns: minmax(0, 2fr) minmax(300px, 1fr);
  height: 600px;
  margin: 0 0 48px;
  background: var(--lk-bg);
  color: var(--lk-text);
  border: 1px solid var(--line);
  font-family: var(--technical);
}
.lk-map { position: relative; min-width: 0; overflow: hidden; background: #1a1d1f; }
#lookoutMap { display: block; width: 100%; height: 100%; cursor: crosshair; touch-action: pan-y; }
.lk-map-top { position: absolute; top: 12px; left: 12px; right: 64px; display: flex; flex-wrap: wrap; gap: 6px; pointer-events: none; }
.lk-chip {
  padding: 5px 9px; font-size: 11px; font-weight: 600; letter-spacing: .06em;
  background: rgba(8, 10, 11, .78); border: 1px solid var(--lk-line); color: var(--lk-text);
}
.lk-chip-sim { color: #ffe57f; border-color: rgba(255, 229, 127, .45); }
.lk-map-tools { position: absolute; top: 12px; right: 12px; display: flex; flex-direction: column; gap: 4px; }
.lk-map-tools button {
  width: 36px; height: 36px; font: 600 18px/1 var(--technical); color: var(--lk-text);
  background: rgba(8, 10, 11, .78); border: 1px solid var(--lk-line); cursor: pointer;
}
.lk-map-tools button:hover, .lk-map-tools button:focus-visible { border-color: var(--lk-text); }
.lk-legend {
  position: absolute; right: 12px; bottom: 34px; display: grid; gap: 4px; padding: 8px 10px;
  font-size: 10.5px; letter-spacing: .04em; background: rgba(8, 10, 11, .78); border: 1px solid var(--lk-line); pointer-events: none;
}
.lk-legend span { display: flex; align-items: center; gap: 7px; white-space: nowrap; }
.lk-k { display: inline-block; width: 14px; height: 10px; flex: none; }
.lk-k-tfr { border: 2px dashed #ff5252; background: rgba(255, 82, 82, .1); }
.lk-k-ndz { border: 2px dashed #ffd600; background: rgba(255, 214, 0, .14); border-radius: 50%; }
.lk-k-fire { border: 2px solid #ff9800; background: rgba(255, 120, 0, .25); }
.lk-k-int { width: 10px; background: #ff5252; transform: rotate(45deg) scale(.8); }
.lk-k-fr { width: 10px; background: #69f0ae; transform: rotate(45deg) scale(.8); }
.lk-k-ac { width: 0; height: 0; border-left: 12px solid #4fc3f7; border-top: 5px solid transparent; border-bottom: 5px solid transparent; }
.lk-credit {
  position: absolute; left: 0; right: 0; bottom: 0; margin: 0; padding: 5px 12px;
  font-size: 10px; letter-spacing: .03em; color: var(--lk-mute); background: rgba(8, 10, 11, .66); pointer-events: none;
}

.lk-panel { display: flex; flex-direction: column; min-width: 0; min-height: 0; background: var(--lk-panel); border-left: 1px solid var(--lk-line); }
.lk-panel-head { display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 14px 16px 12px; border-bottom: 1px solid var(--lk-line); }
.lk-panel-head .kicker { margin: 0; color: var(--lk-mute); }
.lk-panel button { font-family: var(--technical); font-variant-caps: small-caps; cursor: pointer; }
.lk-airops {
  padding: 7px 10px; font-size: 12px; font-weight: 600; letter-spacing: .04em;
  color: var(--lk-text); background: transparent; border: 1px solid rgba(255, 145, 0, .7);
}
.lk-airops:hover, .lk-airops:focus-visible { background: rgba(255, 145, 0, .14); }
.lk-airops.lk-suspended { color: #111; background: var(--lk-caution); border-color: var(--lk-caution); }
.lk-counts { display: grid; grid-template-columns: repeat(3, 1fr); border-bottom: 1px solid var(--lk-line); }
.lk-counts div { padding: 10px 12px; text-align: center; }
.lk-counts div + div { border-left: 1px solid var(--lk-line); }
.lk-counts strong { display: block; font-size: 26px; line-height: 1.1; font-weight: 600; }
.lk-counts span { font-size: 11px; color: var(--lk-mute); letter-spacing: .05em; }
.lk-counts div:last-child strong { color: var(--lk-caution); }

.lk-cards { flex: 1 1 auto; min-height: 0; overflow-y: auto; padding: 10px; display: grid; align-content: start; gap: 8px; }
.lk-card {
  padding: 9px 11px; background: rgba(255, 255, 255, .025);
  border: 1px solid var(--lk-line); border-left: 3px solid var(--lk-intruder); cursor: pointer;
}
.lk-card:hover { background: rgba(255, 255, 255, .05); }
.lk-card.lk-selected { border-color: var(--lk-text); border-left-color: var(--lk-text); }
.lk-card-head { display: flex; justify-content: space-between; align-items: baseline; gap: 8px; }
.lk-card-head strong { font-size: 13px; letter-spacing: .03em; overflow-wrap: anywhere; }
.lk-level { flex: none; padding: 2px 6px; font-size: 10.5px; font-weight: 700; letter-spacing: .06em; color: var(--lk-intruder); border: 1px solid currentColor; }
.lk-card-meta { margin-top: 4px; font-size: 11.5px; color: var(--lk-mute); white-space: pre-wrap; letter-spacing: .02em; }
.lk-card-foot { display: flex; justify-content: space-between; align-items: center; gap: 8px; margin-top: 7px; font-size: 11.5px; color: var(--lk-text-soft, #c9d0d2); }
.lk-card-foot button {
  flex: none; padding: 4px 9px; font-size: 11.5px; font-weight: 600; letter-spacing: .04em;
  color: var(--lk-text); background: transparent; border: 1px solid var(--lk-line);
}
.lk-card-foot button:hover:not(:disabled), .lk-card-foot button:focus-visible { border-color: var(--lk-text); }
.lk-card-foot button:disabled { color: var(--lk-friendly); border-color: rgba(105, 240, 174, .4); cursor: default; }
.lk-warning { border-left-color: var(--lk-warning); background: rgba(255, 23, 68, .09); }
.lk-warning .lk-level { color: #fff; background: var(--lk-warning); border-color: var(--lk-warning); }
.lk-caution { border-left-color: var(--lk-caution); }
.lk-caution .lk-level { color: var(--lk-caution); }
.lk-advisory .lk-level, .lk-tracked .lk-level { color: var(--lk-mute); }
.lk-tracked { border-left-color: rgba(255, 82, 82, .45); }
.lk-friendly { border-left-color: var(--lk-friendly); }
.lk-friendly .lk-level { color: var(--lk-friendly); }

.lk-log-head { padding: 8px 16px; font-size: 11px; font-weight: 600; letter-spacing: .08em; color: var(--lk-mute); border-top: 1px solid var(--lk-line); }
.lk-log { list-style: none; margin: 0; padding: 0 16px 12px; max-height: 132px; overflow-y: auto; font-size: 11.5px; }
.lk-log li { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 10px; padding: 3px 0; letter-spacing: .02em; }
.lk-log time { color: var(--lk-mute); font-variant-numeric: tabular-nums; }
.lk-log span { overflow-wrap: anywhere; }
.lk-log-warning span { color: #ff6b81; }
.lk-log-caution span { color: #ffb74d; }

@media (max-width: 900px) {
  .lk-demo { grid-template-columns: 1fr; height: auto; }
  .lk-map { height: 440px; }
  .lk-panel { border-left: 0; border-top: 1px solid var(--lk-line); }
  .lk-cards { max-height: 360px; }
}
@media (max-width: 560px) {
  .lk-map { height: 380px; }
  .lk-legend { display: none; }
  .lk-panel-head { flex-wrap: wrap; }
  .lk-counts strong { font-size: 22px; }
}

/* LOOKOUT demo as the LOOKOUT page hero background */
.page-hero.lk-hero {
  --lk-pw: min(380px, 30vw);
  position: relative;
  overflow: hidden;
  display: flex;
  align-items: center;
  min-height: calc(100svh - var(--header-h));
  padding: 0;
  background: #1a1d1f !important;
}
.lk-hero .lk-demo { position: absolute; inset: 0; display: block; height: auto; margin: 0; border: 0; }
.lk-hero .lk-map { position: absolute; inset: 0; }
.lk-hero .lk-panel {
  position: absolute; z-index: 3; top: 24px; right: 24px; bottom: 24px; width: var(--lk-pw);
  background: rgba(23, 27, 29, .9); border: 1px solid var(--lk-line);
  -webkit-backdrop-filter: blur(6px); backdrop-filter: blur(6px);
}
.lk-hero .lk-map-top { left: auto; right: calc(var(--lk-pw) + 96px); top: 24px; justify-content: flex-end; z-index: 2; }
.lk-hero .lk-map-tools { top: 24px; right: calc(var(--lk-pw) + 48px); z-index: 2; }
.lk-hero .lk-legend { right: calc(var(--lk-pw) + 48px); bottom: 40px; z-index: 2; }
.lk-hero .lk-credit { z-index: 2; padding-right: calc(var(--lk-pw) + 48px); text-align: right; background: transparent; }
.lk-shade {
  position: absolute; inset: 0; z-index: 1; pointer-events: none;
  background:
    linear-gradient(90deg, rgba(14,16,17,.9) 0%, rgba(14,16,17,.76) 26%, rgba(14,16,17,.22) 46%, rgba(14,16,17,0) 58%),
    radial-gradient(ellipse at 58% 50%, transparent 50%, rgba(0,0,0,.45) 100%);
}
.lk-hero-copy { position: relative; z-index: 2; pointer-events: none; padding: clamp(100px, 9vw, 150px) 0 96px; }
.lk-hero-copy > * { pointer-events: auto; }
.lk-hero-copy .page-lead { max-width: min(640px, 44vw); }
.lk-hero-copy .eyebrow,
.lk-hero-copy h1,
.lk-hero-copy .page-lead { text-shadow: 0 1px 18px rgba(0, 0, 0, .55); }
.lk-hero-copy .hero-actions { margin-top: 28px; }

@media (max-width: 900px) {
  .page-hero.lk-hero { display: flex; flex-direction: column; align-items: stretch; min-height: 0; }
  .lk-hero .lk-shade { display: none; }
  .lk-hero-copy { order: 0; padding: 72px 0 32px; }
  .lk-hero-copy .page-lead { max-width: none; }
  .lk-hero .lk-demo { order: 1; position: static; display: grid; grid-template-columns: 1fr; }
  .lk-hero .lk-map { position: relative; inset: auto; }
  .lk-hero .lk-panel { position: static; width: auto; background: var(--lk-panel); border: 0; border-top: 1px solid var(--lk-line); -webkit-backdrop-filter: none; backdrop-filter: none; }
  .lk-hero .lk-map-top { left: 12px; right: 64px; top: 12px; justify-content: flex-start; }
  .lk-hero .lk-map-tools { top: 12px; right: 12px; }
  .lk-hero .lk-legend { right: 12px; bottom: 34px; }
  .lk-hero .lk-credit { padding-right: 12px; text-align: left; background: rgba(8, 10, 11, .66); }
}

/* Contact form (contact.html, initContactForm in script.js) */
.contact-form {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 22px 24px;
  align-content: start;
}

.form-row {
  display: grid;
  gap: 8px;
}

.form-row-wide,
.form-actions,
.form-note {
  grid-column: 1 / -1;
}

.form-row label {
  font-family: var(--technical);
  font-size: .72rem;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: var(--muted);
}

.contact-form input,
.contact-form select,
.contact-form textarea {
  width: 100%;
  min-height: 48px;
  padding: 12px 14px;
  border: 1px solid var(--line);
  border-radius: 0;
  background: var(--panel);
  color: var(--text);
  font-family: var(--body);
  font-size: 1rem;
  font-variant-caps: normal;
}

.contact-form textarea {
  resize: vertical;
  min-height: 170px;
}

.contact-form input:focus-visible,
.contact-form select:focus-visible,
.contact-form textarea:focus-visible {
  outline: 2px solid var(--text);
  outline-offset: 1px;
  border-color: var(--text);
}

.contact-form [aria-invalid="true"] {
  border-color: #e0a39a;
}

.form-hp {
  position: absolute;
  left: -10000px;
  width: 1px;
  height: 1px;
  overflow: hidden;
}

.form-actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 18px;
}

.form-actions .button[disabled] {
  opacity: .6;
  cursor: progress;
}

.form-status {
  margin: 0;
  color: var(--text-soft);
}

.form-status a {
  border-bottom: 1px solid var(--line);
}

.form-note {
  margin: 0;
  color: var(--muted);
  font-size: .9rem;
}

.form-note a {
  border-bottom: 1px solid var(--line);
}

.contact-aside {
  display: grid;
  gap: 26px;
  align-content: start;
  padding: 32px;
  background: var(--panel);
}

.contact-aside div {
  display: grid;
  gap: 4px;
}

.contact-aside .card-kicker {
  margin-bottom: 4px;
}

.contact-aside a {
  color: var(--text);
  overflow-wrap: anywhere;
}

@media (max-width: 760px) {
  .contact-form { grid-template-columns: 1fr; }
}

/* Press kit logo downloads (press.html) */
.logo-downloads {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 24px;
}

.logo-download {
  display: grid;
  gap: 8px;
  min-width: 0;
  color: var(--text);
}

.logo-download .logo-plate {
  display: flex;
  align-items: center;
  justify-content: center;
  height: 240px;
  margin-bottom: 8px;
  overflow: hidden;
}

.logo-download .logo-plate img {
  display: block;
  width: auto;
  height: auto;
  max-width: 100%;
  max-height: 100%;
  object-fit: contain;
}

.logo-download span:last-child {
  color: var(--muted);
  font-size: .9rem;
}

.logo-download:hover strong {
  text-decoration: underline;
}

@media (max-width: 900px) {
  .logo-downloads { grid-template-columns: 1fr; }
}

/* ===== Compact layout pass (Oct 20, 2026): less vertical space, one idea per section ===== */
.section { padding: clamp(64px, 6.5vw, 112px) 0; }
.page-hero,
.page-hero-tight { padding: clamp(96px, 8vw, 132px) 0 56px; }
.section-head { margin-bottom: 36px; }
h2 { font-size: clamp(2.3rem, 4.2vw, 4.4rem); }
.info-card,
.program-card,
.feature-card,
.notice-card { min-height: 0; padding: 28px; }
.card-kicker,
.card-label { margin-bottom: 16px; }

/* Slim contact band that ends most pages */
.contact-band {
  padding: clamp(48px, 5vw, 72px) 0;
  border-bottom: 1px solid var(--line-soft);
  background: var(--bg-deep);
}
.contact-band-inner {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 24px 40px;
}
.contact-band h2 {
  max-width: 24ch;
  margin: 0;
  font-size: clamp(1.7rem, 2.6vw, 2.6rem);
}
.contact-band .cta-row { margin: 0; }

/* Two screenshots side by side under a video */
.shot-pair {
  display: grid;
  grid-template-columns: 1.6fr 1fr;
  gap: 24px;
  align-items: start;
  margin-top: 24px;
}
.shot-pair .shot { margin: 0; }
@media (max-width: 900px) { .shot-pair { grid-template-columns: 1fr; } }

.connects-list {
  color: var(--muted);
  font-size: .95rem;
  line-height: 1.6;
}
.connects-list strong { color: var(--text-soft); }

/* Heading + list side by side (status, stage, El Paso) */
.status-cta {
  display: grid;
  grid-template-columns: .9fr 1.1fr;
  gap: 56px;
  align-items: start;
}
.status-cta h2 { margin-bottom: 20px; }
.status-cta .cta-row { margin-top: 28px; }
@media (max-width: 900px) { .status-cta { grid-template-columns: 1fr; gap: 28px; } }

/* Company: thesis */
.thesis-grid {
  display: grid;
  grid-template-columns: .8fr 1.2fr;
  gap: 56px;
  align-items: start;
}
.thesis-list {
  display: grid;
  gap: 0;
  margin: 28px 0 0;
  padding: 0;
  list-style: none;
  border-top: 1px solid var(--line);
}
.thesis-list li {
  padding: 16px 0;
  border-bottom: 1px solid var(--line-soft);
  color: var(--muted);
}
.thesis-list strong { color: var(--text); }
@media (max-width: 900px) { .thesis-grid { grid-template-columns: 1fr; gap: 24px; } }

/* Company: founders with headshots */
.founder-roster {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 24px;
}
.founder-profile {
  display: grid;
  grid-template-rows: auto 1fr;
  gap: 20px;
  padding: 0 0 28px;
  background: var(--panel);
}
.founder-profile > div { padding: 0 28px; }
.founder-photo {
  display: block;
  width: 100%;
  aspect-ratio: 4 / 5;
  object-fit: cover;
  object-position: center 25%;
  background: var(--panel-2);
  filter: grayscale(.15);
}
.founder-profile h3 { margin: 0 0 6px; }
.founder-role {
  display: block;
  margin-bottom: 14px;
  color: var(--muted-2);
  font-size: .78rem;
  letter-spacing: .08em;
  text-transform: uppercase;
}
.founder-profile p { margin: 0; color: var(--muted); font-size: .95rem; line-height: 1.6; }
@media (max-width: 1000px) { .founder-roster { grid-template-columns: 1fr; } .founder-photo { max-height: 420px; } }

/* Company: team */
.team-list {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
  gap: 24px;
}
.team-member {
  display: grid;
  gap: 6px;
  padding: 24px 28px;
  background: var(--panel);
}
.team-member span { color: var(--muted-2); font-size: .78rem; letter-spacing: .08em; text-transform: uppercase; }
.team-member p { margin: 6px 0 0; color: var(--muted); font-size: .95rem; }

/* Page-hero art (rendered terrain/network images in assets/hero/, made procedurally; no stock imagery) */
.page-hero.has-art {
  position: relative;
  overflow: hidden;
  isolation: isolate;
}
.page-hero.has-art .shell { position: relative; z-index: 1; }
.hero-art {
  position: absolute;
  inset: 0 0 0 26%;
  z-index: -1;
  background-position: center 62%;
  background-size: cover;
  background-repeat: no-repeat;
  -webkit-mask-image: linear-gradient(90deg, transparent 0%, #000 38%);
  mask-image: linear-gradient(90deg, transparent 0%, #000 38%);
  opacity: .95;
}
.hero-art--fovea { background-image: url('/assets/hero/hero-fovea.webp'); }
.hero-art--government { background-image: url('/assets/hero/hero-government.webp'); }
.hero-art--company { background-image: url('/assets/hero/hero-company.webp'); background-position: 70% 50%; }
.hero-art--general { background-image: url('/assets/hero/hero-general.webp'); }
.page-hero.has-art .page-lead,
.page-hero.has-art h1 { text-shadow: 0 1px 18px rgba(18, 21, 23, .55); }
@media (max-width: 900px) {
  .hero-art {
    inset: 0;
    opacity: .38;
    -webkit-mask-image: linear-gradient(180deg, #000 0%, #000 60%, transparent 100%);
    mask-image: linear-gradient(180deg, #000 0%, #000 60%, transparent 100%);
  }
}

/* Employees portal link in the header nav */
.site-nav .nav-employees {
  padding-left: 18px;
  border-left: 1px solid var(--line);
}
@media (max-width: 1100px) {
  .site-nav .nav-employees { padding-left: 0; border-left: 0; }
}

/* Products dropdown in the header nav */
.nav-dropdown { position: relative; }
.nav-drop-toggle {
  position: relative;
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 13px 0;
  border: 0;
  background: none;
  color: var(--text-soft);
  font-family: var(--technical);
  font-size: .79rem;
  font-weight: 500;
  letter-spacing: .015em;
  text-transform: uppercase;
  cursor: pointer;
}
.nav-drop-toggle::after {
  content: '';
  width: 6px;
  height: 6px;
  margin-top: -3px;
  border-right: 1px solid currentColor;
  border-bottom: 1px solid currentColor;
  transform: rotate(45deg);
  transition: transform .18s ease;
}
.nav-dropdown:hover .nav-drop-toggle,
.nav-dropdown.open .nav-drop-toggle,
.nav-dropdown.active .nav-drop-toggle,
.nav-drop-toggle:focus-visible { color: var(--text); }
.nav-dropdown.active .nav-drop-toggle { box-shadow: inset 0 -1px 0 var(--text); }
.nav-dropdown.open .nav-drop-toggle::after { transform: rotate(-135deg); margin-top: 3px; }
.nav-drop-menu {
  position: absolute;
  top: 100%;
  left: -20px;
  z-index: 60;
  display: grid;
  min-width: 290px;
  padding: 8px;
  background: rgba(25, 29, 32, .98);
  border: 1px solid var(--line);
  box-shadow: 0 18px 40px rgba(0, 0, 0, .35);
  opacity: 0;
  visibility: hidden;
  transform: translateY(6px);
  transition: opacity .16s ease, transform .16s ease, visibility .16s;
}
.nav-dropdown:hover .nav-drop-menu,
.nav-dropdown:focus-within .nav-drop-menu,
.nav-dropdown.open .nav-drop-menu {
  opacity: 1;
  visibility: visible;
  transform: translateY(0);
}
.site-nav .nav-drop-menu a {
  display: grid;
  gap: 2px;
  padding: 12px 14px;
  text-transform: none;
}
.site-nav .nav-drop-menu a::after { display: none; }
.site-nav .nav-drop-menu a:hover,
.site-nav .nav-drop-menu a.active { background: var(--panel-2); }
.nav-drop-menu strong {
  color: var(--text);
  font-size: .82rem;
  letter-spacing: .04em;
  text-transform: uppercase;
}
.nav-drop-menu span {
  color: var(--muted);
  font-family: var(--body);
  font-size: .82rem;
  letter-spacing: 0;
}
@media (max-width: 820px) {
  .nav-dropdown { border-bottom: 1px solid var(--line-soft); }
  .nav-drop-toggle { width: 100%; justify-content: space-between; padding: 14px 0; font-size: .9rem; }
  .nav-drop-menu {
    position: static;
    min-width: 0;
    padding: 0 0 8px 12px;
    background: none;
    border: 0;
    box-shadow: none;
    opacity: 1;
    visibility: visible;
    transform: none;
    display: none;
  }
  .nav-dropdown.open .nav-drop-menu { display: grid; }
  .nav-dropdown:hover .nav-drop-menu:not(:focus-within) { display: none; }
  .nav-dropdown.open:hover .nav-drop-menu { display: grid; }
  .site-nav .nav-drop-menu a { padding: 10px 0; border-bottom: 0; }
}

/* ===== LOOKOUT RID Sensors (/lookout-sensors) ===== */
.site-nav .nav-drop-menu a.nav-sub { position: relative; margin-left: 14px; padding-left: 26px; }
.site-nav .nav-drop-menu a.nav-sub::before {
  content: ''; position: absolute; left: 10px; top: 4px; width: 9px; height: 18px;
  border-left: 1px solid var(--line); border-bottom: 1px solid var(--line);
}
@media (max-width: 820px) { .site-nav .nav-drop-menu a.nav-sub { margin-left: 0; padding-left: 22px; } .site-nav .nav-drop-menu a.nav-sub::before { left: 4px; } }

body[data-page="lookout-sensors"] { --rid-stage: #444446; }

.rid-banner { position: relative; z-index: 5; background: var(--text); color: var(--black); padding: 14px 0; font-size: .95rem; }
.rid-banner strong { margin-right: 6px; }

.rid-hero { position: relative; min-height: min(860px, 100vh); display: flex; flex-direction: column; justify-content: flex-end; overflow: hidden; background: var(--rid-stage); border-bottom: 1px solid var(--line-soft); }
.rid-hero-art { position: absolute; inset: 0; }
.rid-hero-art img { width: 100%; height: 100%; object-fit: cover; object-position: 60% 60%; display: block; transform: scale(1.04); animation: ridDrift 22s ease-out forwards; }
@keyframes ridDrift { to { transform: scale(1); } }
.rid-hero-shade { position: absolute; inset: 0; background:
  linear-gradient(90deg, rgba(20,22,24,.96) 0%, rgba(20,22,24,.78) 34%, rgba(20,22,24,.05) 64%),
  linear-gradient(0deg, rgba(20,22,24,.95) 0%, rgba(20,22,24,0) 32%); }
.rid-hero-copy { position: relative; z-index: 2; padding-top: calc(var(--header-h) + 80px); padding-bottom: 64px; }
.rid-hero-copy h1 { font-family: var(--display); font-size: clamp(3rem, 7.4vw, 7.2rem); line-height: .9; letter-spacing: -.035em; font-weight: 600; margin: 0 0 26px; max-width: 9ch; color: var(--text); }
.rid-hero-copy .page-lead { max-width: 560px; color: var(--text-soft); font-size: 1.06rem; }
.rid-hero-copy .hero-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 28px; margin-top: 34px; }
.rid-strip { position: relative; z-index: 2; border-top: 1px solid var(--line-soft); background: rgba(20,22,24,.72); backdrop-filter: blur(6px); }
.rid-strip-inner { display: grid; grid-template-columns: repeat(5, 1fr); }
.rid-strip-inner > div { padding: 20px 18px 20px 0; display: flex; align-items: baseline; gap: 12px; border-right: 1px solid var(--line-faint); }
.rid-strip-inner > div + div { padding-left: 18px; }
.rid-strip-inner > div:last-child { border-right: 0; }
.rid-strip strong { font-family: var(--display); font-size: 1.7rem; font-weight: 600; color: var(--text); letter-spacing: -.02em; }
.rid-strip span { font-size: .8rem; color: var(--muted); line-height: 1.3; }

.rid-bands { display: grid; grid-template-columns: repeat(4, 1fr); border: 1px solid var(--line-soft); }
.rid-band { position: relative; padding: 28px 26px 70px; border-right: 1px solid var(--line-soft); overflow: hidden; background: var(--panel); }
.rid-band:last-child { border-right: 0; }
.rid-band-out { background: var(--text); }
.rid-band.rid-band-out h3 { color: var(--black) !important; }
.rid-band.rid-band-out p { color: #2c3134 !important; }
.rid-band.rid-band-out .rid-band-hz { color: #5b6368 !important; }
.rid-band-hz { display: block; font-family: var(--technical); font-size: .74rem; letter-spacing: .12em; text-transform: uppercase; color: var(--muted-2); margin-bottom: 14px; }
.rid-band h3 { font-family: var(--display); font-size: 1.5rem; font-weight: 600; margin: 0 0 8px; letter-spacing: -.01em; }
.rid-band p { font-size: .92rem; }
.rid-wave { position: absolute; left: 0; right: 0; bottom: 22px; height: 26px; opacity: .55;
  background: repeating-linear-gradient(90deg, var(--text-soft) 0 1px, transparent 1px 7px);
  -webkit-mask: linear-gradient(90deg, transparent, #000 20%, #000 80%, transparent); mask: linear-gradient(90deg, transparent, #000 20%, #000 80%, transparent);
  animation: ridPulse 2.4s ease-in-out infinite; transform-origin: bottom; }
.rid-wave-2 { animation-delay: .5s; background: repeating-linear-gradient(90deg, var(--text-soft) 0 1px, transparent 1px 4px); }
.rid-wave-3 { animation-delay: 1s; background: repeating-linear-gradient(90deg, var(--text-soft) 0 2px, transparent 2px 11px); }
@keyframes ridPulse { 0%, 100% { transform: scaleY(.35); opacity: .3; } 50% { transform: scaleY(1); opacity: .7; } }

.rid-model { display: grid; grid-template-columns: 1.25fr 1fr; gap: 0; border: 1px solid var(--line-soft); background: var(--panel); margin-top: 28px; }
.rid-model:nth-of-type(even) { grid-template-columns: 1fr 1.25fr; }
.rid-model:nth-of-type(even) .rid-model-art { order: 2; }
.rid-model-art { position: relative; background: var(--rid-stage); min-height: 460px; overflow: hidden; }
.rid-model-art img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; transition: transform .8s cubic-bezier(.2,.7,.2,1); }
.rid-model:hover .rid-model-art img { transform: scale(1.035); }
.rid-tall { background: radial-gradient(ellipse at 50% 40%, #2a2a2b 0%, #1c1c1d 70%); }
.rid-tall img { left: 50%; right: auto; width: auto; max-width: none; height: 100%; object-fit: cover; transform: translateX(-50%); -webkit-mask-image: linear-gradient(90deg, transparent 0%, #000 22%, #000 78%, transparent 100%); mask-image: linear-gradient(90deg, transparent 0%, #000 22%, #000 78%, transparent 100%); }
.rid-model:hover .rid-tall img { transform: translateX(-50%) scale(1.035); }
.rid-model-tag { position: absolute; left: 18px; top: 16px; font-family: var(--technical); font-size: .72rem; letter-spacing: .14em; color: var(--muted); border: 1px solid var(--line-soft); padding: 4px 8px; background: rgba(20,22,24,.6); }
.rid-model-body { padding: 42px 44px 38px; display: flex; flex-direction: column; }
.rid-model-body h3 { font-family: var(--display); font-size: clamp(2rem, 3.2vw, 2.9rem); font-weight: 600; letter-spacing: -.025em; line-height: 1; margin: 6px 0 16px; color: var(--text); }
.rid-model-lead { color: var(--text-soft); max-width: 46ch; }
.rid-specs { margin: 26px 0 30px; padding: 0; border-top: 1px solid var(--line-soft); }
.rid-specs > div { display: grid; grid-template-columns: 120px 1fr; gap: 16px; padding: 10px 0; border-bottom: 1px solid var(--line-faint); }
.rid-specs dt { font-family: var(--technical); font-size: .72rem; letter-spacing: .12em; text-transform: uppercase; color: var(--muted-2); padding-top: 2px; }
.rid-specs dd { margin: 0; font-size: .92rem; color: var(--text-soft); }
.rid-buy { margin-top: auto; display: flex; flex-wrap: wrap; align-items: center; gap: 18px; }
.rid-price { display: flex; align-items: baseline; gap: 8px; margin-right: auto; }
.rid-price strong { font-family: var(--display); font-size: 2.2rem; font-weight: 600; letter-spacing: -.02em; color: var(--text); }
.rid-price span { color: var(--muted); font-size: .85rem; }
.rid-qty { display: inline-flex; align-items: stretch; border: 1px solid var(--line); height: 46px; }
.rid-qty button { width: 42px; border: 0; background: transparent; color: var(--text); font-size: 1.15rem; cursor: pointer; }
.rid-qty button:hover { background: var(--panel-2); }
.rid-qty output { min-width: 40px; display: grid; place-items: center; font-family: var(--technical); font-variant-numeric: tabular-nums; border-left: 1px solid var(--line-soft); border-right: 1px solid var(--line-soft); }
.rid-buy.has-qty .rid-qty { border-color: var(--text); }
.rid-add { height: 46px; }

.rid-kits { display: grid; grid-template-columns: repeat(3, 1fr); gap: 0; border: 1px solid var(--line-soft); }
.rid-kit { padding: 28px 28px 22px; border-right: 1px solid var(--line-soft); background: var(--panel); display: flex; flex-direction: column; }
.rid-kit:last-child { border-right: 0; }
.rid-kit h3 { font-family: var(--display); font-size: 1.45rem; font-weight: 600; margin: 4px 0 8px; }
.rid-kit > p:not(.card-kicker):not(.rid-sku) { margin-bottom: 22px; font-size: .93rem; }
.rid-buy-compact { margin-top: auto; }
.rid-buy-compact .rid-price strong { font-size: 1.6rem; }
.rid-sku { margin-top: 14px; font-family: var(--technical); font-size: .7rem; letter-spacing: .14em; color: var(--muted-2); }
.rid-fine { margin-top: 22px; font-size: .86rem; color: var(--muted-2); max-width: 900px; }
.rid-fine a { color: var(--text-soft); border-bottom: 1px solid var(--line); }

.rid-services .cta-row { margin-top: 10px; }

.rid-ds { background: var(--bg-deep); border-top: 1px solid var(--line-soft); border-bottom: 1px solid var(--line-soft); }
.rid-ds-inner { display: grid; grid-template-columns: 1fr 1.1fr; gap: 64px; align-items: start; }
.rid-ds-copy h2 { font-family: var(--display); font-size: clamp(2rem, 3.6vw, 3.2rem); line-height: 1; letter-spacing: -.025em; font-weight: 600; margin: 0 0 18px; color: var(--text); }
.rid-ds-copy p { max-width: 44ch; }

.rid-cart { position: fixed; left: 0; right: 0; bottom: 0; z-index: 80; background: rgba(13,15,16,.96); border-top: 1px solid var(--line); backdrop-filter: blur(8px); transform: translateY(0); animation: ridUp .28s ease-out; }
@keyframes ridUp { from { transform: translateY(100%); } to { transform: translateY(0); } }
.rid-cart[hidden] { display: none; }
.rid-cart-inner { display: grid; grid-template-columns: 1fr auto auto; align-items: center; gap: 28px; padding: 14px 0; }
.rid-cart-sum { min-width: 0; }
.rid-cart-label { display: block; font-family: var(--technical); font-size: .7rem; letter-spacing: .14em; text-transform: uppercase; color: var(--muted-2); }
.rid-cart-items { display: block; color: var(--text-soft); font-size: .9rem; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.rid-cart-total { display: flex; align-items: baseline; gap: 10px; }
.rid-cart-total span { color: var(--muted); font-size: .8rem; text-transform: uppercase; letter-spacing: .1em; }
.rid-cart-total strong { font-family: var(--display); font-size: 1.8rem; font-weight: 600; color: var(--text); font-variant-numeric: tabular-nums; }
.rid-cart-actions { display: flex; align-items: center; gap: 22px; }
.rid-cart-status { grid-column: 1 / -1; font-size: .85rem; color: var(--text-soft); }
.rid-cart-status:empty { display: none; }
.rid-cart-status a { border-bottom: 1px solid var(--line); }
body.has-rid-cart .site-footer { padding-bottom: 110px; }

@media (max-width: 1100px) {
  .rid-strip-inner { grid-template-columns: repeat(3, 1fr); }
  .rid-strip-inner > div:nth-child(n+4) { display: none; }
  .rid-bands { grid-template-columns: 1fr 1fr; }
  .rid-band:nth-child(2) { border-right: 0; }
  .rid-band:nth-child(-n+2) { border-bottom: 1px solid var(--line-soft); }
}
@media (max-width: 900px) {
  .rid-model, .rid-model:nth-of-type(even) { grid-template-columns: 1fr; }
  .rid-model:nth-of-type(even) .rid-model-art { order: 0; }
  .rid-model-art { min-height: 300px; }
  .rid-model-body { padding: 28px 22px; }
  .rid-kits { grid-template-columns: 1fr; }
  .rid-kit { border-right: 0; border-bottom: 1px solid var(--line-soft); }
  .rid-ds-inner { grid-template-columns: 1fr; gap: 28px; }
  .rid-cart-inner { grid-template-columns: 1fr auto; gap: 12px 18px; }
  .rid-cart-actions { grid-column: 1 / -1; justify-content: space-between; }
  .rid-cart-actions .button { flex: 1; text-align: center; justify-content: center; }
}
@media (max-width: 600px) {
  .rid-hero { display: block; min-height: 0; background: var(--bg); }
  .rid-hero-art { position: relative; inset: auto; height: 46vh; min-height: 300px; overflow: hidden; background: var(--rid-stage); }
  .rid-hero-art img { object-position: 74% 62%; }
  .rid-hero-shade { top: 0; bottom: auto; height: 46vh; min-height: 300px; background: linear-gradient(0deg, var(--bg) 0%, rgba(32,36,39,0) 38%); }
  .rid-hero-copy { padding-top: 6px; padding-bottom: 40px; }
  .rid-strip-inner { grid-template-columns: 1fr 1fr; }
  .rid-strip-inner > div:nth-child(3) { display: none; }
  .rid-strip-inner > div { padding: 16px 0; gap: 8px; }
  .rid-strip-inner > div + div { padding-left: 14px; }
  .rid-bands { grid-template-columns: 1fr; }
  .rid-band { border-right: 0; border-bottom: 1px solid var(--line-soft); }
  .rid-specs > div { grid-template-columns: 1fr; gap: 2px; }
  .rid-buy { gap: 12px; }
  .rid-price { width: 100%; }
  .rid-add { flex: 1; }
}
@media (prefers-reduced-motion: reduce) {
  .rid-hero-art img, .rid-wave, .rid-cart { animation: none; transform: none; }
}
.rid-kits-lead { margin-top: 10px; }
.rid-kit .rid-add, .rid-acc .rid-add { height: 46px; }
.rid-accs { display: grid; grid-template-columns: repeat(5, 1fr); border-top: 1px solid var(--line-soft); border-left: 1px solid var(--line-soft); }
.rid-acc { padding: 22px 20px 18px; border-right: 1px solid var(--line-soft); border-bottom: 1px solid var(--line-soft); background: var(--panel); display: flex; flex-direction: column; }
.rid-acc h3 { font-family: var(--display); font-size: 1.12rem; font-weight: 600; margin: 4px 0 8px; line-height: 1.15; }
.rid-acc > p:not(.card-kicker):not(.rid-sku) { font-size: .86rem; margin-bottom: 18px; }
.rid-acc .rid-buy { gap: 10px; }
.rid-acc .rid-price { width: 100%; }
.rid-acc .rid-price strong { font-size: 1.4rem; }
.rid-acc .rid-qty { height: 40px; }
.rid-acc .rid-qty button { width: 34px; }
.rid-acc .rid-qty output { min-width: 32px; }
.rid-acc .rid-add { height: 40px; flex: 1; padding-left: 10px; padding-right: 10px; }
@media (max-width: 1200px) { .rid-accs { grid-template-columns: repeat(3, 1fr); } }
@media (max-width: 900px) { .rid-accs { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 520px) { .rid-accs { grid-template-columns: 1fr; } }
.rid-addons { margin-top: 28px; padding-top: 18px; border-top: 1px solid var(--line-soft); }
.rid-addons-h { font-family: var(--technical); font-size: .72rem; letter-spacing: .14em; text-transform: uppercase; color: var(--muted-2); margin-bottom: 6px; }
.rid-addons ul { list-style: none; margin: 0; padding: 0; }
.rid-addon { display: grid; grid-template-columns: 1fr auto auto; align-items: center; gap: 16px; padding: 9px 0; border-bottom: 1px solid var(--line-faint); }
.rid-addon-name strong { display: block; font-weight: 500; font-size: .92rem; color: var(--text-soft); }
.rid-addon-name small { display: block; font-size: .78rem; color: var(--muted-2); }
.rid-addon-kit .rid-addon-name strong { color: var(--text); }
.rid-addon-price { font-family: var(--display); font-weight: 600; font-variant-numeric: tabular-nums; color: var(--text); min-width: 48px; text-align: right; }
.rid-qty-sm { height: 34px; }
.rid-qty-sm button { width: 30px; font-size: 1rem; }
.rid-qty-sm output { min-width: 30px; font-size: .88rem; }
.rid-addon.has-qty .rid-qty { border-color: var(--text); }
.rid-addon.has-qty .rid-addon-name strong { color: var(--text); }
.rid-models .rid-fine { margin-top: 26px; }
@media (max-width: 600px) { .rid-addon { grid-template-columns: 1fr auto; gap: 6px 12px; } .rid-addon-price { text-align: left; } .rid-addon .rid-qty { grid-row: 1 / span 2; grid-column: 2; } }
.rid-faq-list { border-top: 1px solid var(--line-soft); max-width: 980px; }
.rid-faq-item { border-bottom: 1px solid var(--line-soft); }
.rid-faq-item summary { cursor: pointer; list-style: none; padding: 20px 40px 20px 0; position: relative; font-family: var(--display); font-weight: 600; font-size: 1.12rem; color: var(--text); }
.rid-faq-item summary::-webkit-details-marker { display: none; }
.rid-faq-item summary::after { content: '+'; position: absolute; right: 6px; top: 16px; font-size: 1.4rem; color: var(--muted); transition: transform .2s ease; }
.rid-faq-item[open] summary::after { transform: rotate(45deg); }
.rid-faq-item p { padding: 0 0 22px; max-width: 78ch; }

/* ===== Site-wide cart ===== */
.site-header { grid-template-columns: minmax(250px, .9fr) 1.8fr auto; }
.cart-toggle { position: relative; display: inline-flex; align-items: center; justify-content: center; width: 46px; height: 42px; margin-left: 18px; border: 1px solid var(--line); background: transparent; color: var(--text); cursor: pointer; transition: background .18s ease, border-color .18s ease; }
.cart-toggle[hidden] { display: none; }
.cart-toggle:hover { background: var(--panel-2); border-color: var(--text-soft); }
.cart-count { position: absolute; top: -8px; right: -8px; min-width: 20px; height: 20px; padding: 0 5px; border-radius: 10px; background: var(--text); color: var(--black); font-family: var(--technical); font-size: .7rem; font-weight: 600; line-height: 20px; text-align: center; font-variant-numeric: tabular-nums; }
.cart-toggle:not(.has-items) .cart-count { display: none; }
.cart-toggle.bump .cart-count { animation: cartBump .35s ease; }
@keyframes cartBump { 40% { transform: scale(1.35); } }
@media (max-width: 820px) {
  .site-header { grid-template-columns: 1fr auto auto; gap: 0; }
  .cart-toggle { order: 2; margin-left: 0; margin-right: 10px; height: 38px; width: 42px; }
  .menu-toggle { order: 3; }
}

.cart-drawer { position: fixed; inset: 0; z-index: 200; }
.cart-drawer[hidden] { display: none; }
.cart-scrim { position: absolute; inset: 0; background: rgba(8,10,11,.6); opacity: 0; transition: opacity .2s ease; }
.cart-panel { position: absolute; top: 0; right: 0; bottom: 0; width: min(460px, 100%); display: flex; flex-direction: column; background: var(--bg-deep); border-left: 1px solid var(--line); box-shadow: -24px 0 60px rgba(0,0,0,.4); transform: translateX(100%); transition: transform .22s cubic-bezier(.2,.7,.2,1); }
.cart-drawer.open .cart-scrim { opacity: 1; }
.cart-drawer.open .cart-panel { transform: translateX(0); }
body.cart-open { overflow: hidden; }
.cart-head { display: flex; align-items: center; justify-content: space-between; padding: 22px 24px; border-bottom: 1px solid var(--line-soft); }
.cart-head h2 { margin: 0; font-family: var(--display); font-size: 1.6rem; font-weight: 600; letter-spacing: -.02em; }
.cart-x { width: 40px; height: 40px; border: 1px solid var(--line-soft); background: transparent; color: var(--text); font-size: 1.5rem; line-height: 1; cursor: pointer; }
.cart-x:hover { background: var(--panel-2); }
.cart-body { flex: 1; overflow-y: auto; padding: 4px 24px; }
.cart-lines { list-style: none; margin: 0; padding: 0; }
.cart-line { display: grid; grid-template-columns: 1fr auto auto; grid-template-areas: "main main total" "qty remove remove"; align-items: center; gap: 10px 14px; padding: 18px 0; border-bottom: 1px solid var(--line-faint); }
.cart-line-main { grid-area: main; }
.cart-line-main strong { display: block; color: var(--text); font-weight: 500; }
.cart-line-main small { display: block; color: var(--muted-2); font-size: .78rem; margin-top: 2px; }
.cart-line .rid-qty { grid-area: qty; justify-self: start; }
.cart-line-total { grid-area: total; font-family: var(--display); font-weight: 600; color: var(--text); font-variant-numeric: tabular-nums; }
.cart-remove { grid-area: remove; justify-self: end; border: 0; background: none; color: var(--muted); font-size: .8rem; text-decoration: underline; text-underline-offset: 3px; cursor: pointer; }
.cart-remove:hover { color: var(--text); }
.cart-empty { padding: 40px 0; }
.cart-empty[hidden], .cart-foot[hidden] { display: none; }
.cart-empty p { margin-bottom: 18px; }
.cart-foot { padding: 20px 24px 24px; border-top: 1px solid var(--line-soft); background: rgba(13,15,16,.6); }
.cart-row { display: flex; justify-content: space-between; align-items: baseline; padding: 4px 0; color: var(--text-soft); }
.cart-row strong { font-family: var(--display); font-size: 1.5rem; font-weight: 600; color: var(--text); font-variant-numeric: tabular-nums; }
.cart-row-soft { font-size: .85rem; color: var(--muted); }
.cart-checkout { width: 100%; justify-content: center; text-align: center; margin-top: 16px; height: 50px; }
.cart-po { display: block; margin-top: 12px; text-align: center; font-size: .85rem; color: var(--text-soft); text-decoration: underline; text-underline-offset: 3px; }
.cart-status { margin-top: 10px; font-size: .85rem; color: var(--text-soft); }
.cart-status:empty { display: none; }
.cart-status a { text-decoration: underline; }
.cart-note { margin-top: 12px; font-size: .76rem; color: var(--muted-2); text-align: center; }
.rid-add.is-added { background: var(--text); color: var(--black); }
@media (prefers-reduced-motion: reduce) { .cart-panel, .cart-scrim { transition: none; } }

/* LOOKOUT software license and downloads (/lookout#buy, #access), Oct 27, 2026 */
.lic-grid { display: grid; grid-template-columns: 1.35fr 1fr; gap: 0; border: 1px solid var(--line-soft); }
.lic-included { padding: 30px 32px; border-right: 1px solid var(--line-soft); }
.lic-included h3, .lic-card h3 { font-family: var(--display); font-size: 1.3rem; font-weight: 600; margin: 0 0 16px; color: var(--text); }
.lic-list { list-style: none; margin: 0; padding: 0; display: grid; gap: 14px; }
.lic-list li { display: grid; grid-template-columns: 210px 1fr; gap: 18px; padding-bottom: 14px; border-bottom: 1px solid var(--line-faint); }
.lic-list li:last-child { border-bottom: 0; padding-bottom: 0; }
.lic-list strong { color: var(--text); font-weight: 600; }
.lic-list span { color: var(--text-soft); font-size: .93rem; }
.lic-card { padding: 30px 32px; background: var(--panel); display: flex; flex-direction: column; gap: 18px; }
.lic-card .rid-price strong { font-size: 2.8rem; }
.lic-buy { display: flex; align-items: center; gap: 18px; flex-wrap: wrap; }
.lic-total { color: var(--muted); font-size: .85rem; text-transform: uppercase; letter-spacing: .1em; }
.lic-total strong { font-family: var(--display); font-size: 1.5rem; color: var(--text); letter-spacing: 0; text-transform: none; margin-left: 6px; font-variant-numeric: tabular-nums; }
.lic-checkout { height: 50px; width: 100%; }
.lic-card .form-status:empty { display: none; }
.lic-card .form-status a { border-bottom: 1px solid var(--line); }
.lic-fine { margin: 0; padding: 0 0 0 18px; color: var(--muted-2); font-size: .84rem; display: grid; gap: 6px; }
.lic-fine a { color: var(--text-soft); border-bottom: 1px solid var(--line); }
.lic-access { background: var(--bg-deep); border-top: 1px solid var(--line-soft); border-bottom: 1px solid var(--line-soft); }
.lic-paid { margin-top: 24px; padding: 20px 22px; border: 1px solid var(--line); background: var(--panel); }
.lic-paid p { margin: 0 0 8px; }
.lic-code { font-family: ui-monospace, "SFMono-Regular", Menlo, Consolas, monospace; font-size: 1.25rem; letter-spacing: .08em; color: var(--text); user-select: all; }
.lic-form input { font-family: ui-monospace, "SFMono-Regular", Menlo, Consolas, monospace; letter-spacing: .06em; text-transform: uppercase; }
.lic-files { margin-top: 26px; }
.lic-files-head { color: var(--text-soft); margin: 0 0 12px; }
.lic-file-list { list-style: none; margin: 0 0 12px; padding: 0; border: 1px solid var(--line-soft); }
.lic-file-list li { display: grid; grid-template-columns: 1fr auto; gap: 4px 18px; padding: 14px 16px; border-bottom: 1px solid var(--line-soft); }
.lic-file-list li:last-child { border-bottom: 0; }
.lic-file-list strong { color: var(--text); font-weight: 600; }
.lic-file-list small { grid-column: 1; color: var(--muted); font-size: .84rem; }
.lic-file-list code { grid-column: 1 / -1; font-family: ui-monospace, "SFMono-Regular", Menlo, Consolas, monospace; text-transform: none; font-variant: normal; font-size: .68rem; color: var(--muted-2); word-break: break-all; }
.lic-file-list a { grid-row: 1 / span 2; grid-column: 2; align-self: center; white-space: nowrap; }
.lic-terms { max-width: 860px; }
.lic-terms h2 { font-family: var(--display); font-size: 1.35rem; font-weight: 600; margin: 34px 0 10px; color: var(--text); }
.lic-terms p, .lic-terms li { color: var(--text-soft); }
@media (max-width: 900px) {
  .lic-grid { grid-template-columns: 1fr; }
  .lic-included { border-right: 0; border-bottom: 1px solid var(--line-soft); padding: 24px 20px; }
  .lic-card { padding: 24px 20px; }
  .lic-list li { grid-template-columns: 1fr; gap: 4px; }
  .lic-file-list li { grid-template-columns: 1fr; }
  .lic-file-list a { grid-row: auto; grid-column: 1; }
}
#lookoutCodeForm input { text-transform: none; letter-spacing: normal; font-family: inherit; }
