:root {
  --bg: #1C1F22;
  --surface: #272B2F;
  --text: #E7E5DF;
  --muted: #979A9B;
  --accent: #E8741C;
  --accent-hot: #FFA64D;
  --rule: rgb(151 154 155 / 0.3);

  --font-sans: "Archivo", "Helvetica Neue", Helvetica, sans-serif;
  --font-mono: "Overpass Mono", ui-monospace, "SFMono-Regular", Menlo, monospace;
  --wdth-display: 122;

  --step-0: 1.125rem;
  --step-1: 1.5rem;
  --step-2: 2rem;
  --step-3: 2.625rem;
  --step-4: 3.5625rem;
  --step-5: 4.75rem;

  --space-1: 0.5rem;
  --space-2: 1rem;
  --space-3: 1.5rem;
  --space-4: 2.5rem;
  --space-5: 4rem;
  --space-6: 6.5rem;

  --gutter: clamp(1rem, 3.5vw, 2.5rem);
  --max: 80rem;
  --measure: 64ch;

  --ease-press: cubic-bezier(.2, .9, .1, 1);
  --ease-spring: cubic-bezier(.22, 1.2, .36, 1);
  --strike-step: 75ms;
  --strike-dur: 175ms;
  --touch: 2.75rem; /* 44px */
  --cta-bar-h: 0px;
  --bp-sm: 23.4375rem; /* 375 */
  --bp-md: 48rem;      /* 768 */
  --bp-lg: 80rem;      /* 1280 */
}

*,
*::before,
*::after { box-sizing: border-box; }

html {
  scroll-behavior: smooth;
  scroll-padding-top: 4.5rem;
  -webkit-text-size-adjust: 100%;
}

body {
  margin: 0;
  background: var(--bg);
  color: var(--text);
  font-family: var(--font-sans);
  font-size: var(--step-0);
  line-height: 1.55;
  font-variation-settings: "wdth" 100;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}

h1, h2, h3, p, dl, dd, ul, figure { margin: 0; }
ul { padding: 0; list-style: none; }

h1, h2 {
  font-weight: 800;
  font-variation-settings: "wdth" var(--wdth-display);
  letter-spacing: -0.02em;
  line-height: 1.08;
  text-wrap: balance;
}

h3 {
  font-size: var(--step-1);
  font-weight: 700;
  font-variation-settings: "wdth" 112;
  line-height: 1.2;
}

p { text-wrap: pretty; }

a { color: inherit; }

:focus-visible {
  outline: 2px solid var(--accent-hot);
  outline-offset: 3px;
}

.wrap {
  width: 100%;
  max-width: var(--max);
  margin-inline: auto;
  padding-inline: var(--gutter);
}

.visually-hidden {
  position: absolute !important;
  width: 1px;
  height: 1px;
  overflow: hidden;
  clip: rect(0 0 0 0);
  white-space: nowrap;
}

.skip {
  position: absolute;
  left: var(--space-2);
  top: -3rem;
  z-index: 100;
  padding: var(--space-1) var(--space-2);
  background: var(--text);
  color: var(--bg);
}
.skip:focus { top: var(--space-2); }

.missing {
  font-family: var(--font-mono);
  color: var(--muted);
  outline: 1px dashed var(--muted);
  outline-offset: 0.2em;
}

/* Buttons — ChemFab clipped corner + tactile press */
.btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: var(--touch);
  min-width: var(--touch);
  padding: 0.65rem 1.35rem;
  background: var(--accent);
  color: var(--bg);
  font-weight: 700;
  font-variation-settings: "wdth" 108;
  text-decoration: none;
  border-radius: 0;
  clip-path: polygon(0 0, calc(100% - 10px) 0, 100% 10px, 100% 100%, 0 100%);
  box-shadow:
    0 3px 0 #A34F0E,
    0 5px 12px rgb(0 0 0 / 0.28);
  transform: translateY(0);
  transition:
    background-color 120ms var(--ease-press),
    transform 140ms var(--ease-spring),
    box-shadow 140ms var(--ease-spring);
  touch-action: manipulation;
  -webkit-tap-highlight-color: transparent;
}
.btn:hover { background: var(--accent-hot); }
.btn:active {
  background: var(--accent-hot);
  transform: translateY(3px);
  box-shadow:
    0 0 0 #A34F0E,
    0 1px 3px rgb(0 0 0 / 0.22),
    inset 0 2px 4px rgb(28 31 34 / 0.28);
}

.btn-sm {
  min-height: var(--touch);
  padding: 0.45rem 0.95rem;
  font-size: 1rem;
  clip-path: polygon(0 0, calc(100% - 8px) 0, 100% 8px, 100% 100%, 0 100%);
  box-shadow:
    0 2px 0 #A34F0E,
    0 3px 8px rgb(0 0 0 / 0.22);
}
.btn-sm:active {
  transform: translateY(2px);
  box-shadow:
    0 0 0 #A34F0E,
    0 1px 2px rgb(0 0 0 / 0.2),
    inset 0 1px 3px rgb(28 31 34 / 0.25);
}

.link {
  color: var(--text);
  font-weight: 600;
  text-decoration: underline;
  text-decoration-color: var(--muted);
  text-underline-offset: 0.3em;
  text-decoration-thickness: 1px;
  min-height: var(--touch);
  display: inline-flex;
  align-items: center;
}
.link:hover { text-decoration-color: var(--text); }

/* Header — less chrome */
.site-header {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  z-index: 50;
  background: transparent;
  border-bottom: 1px solid transparent;
}

.header-row {
  display: flex;
  align-items: center;
  gap: var(--space-3);
  min-height: 3.5rem;
}

.wordmark {
  font-weight: 800;
  font-variation-settings: "wdth" 125;
  font-size: 1.2rem;
  letter-spacing: -0.01em;
  text-decoration: none;
}

.site-header nav { margin-left: auto; }

.nav-menu { display: none; position: relative; }
.nav-menu summary {
  list-style: none;
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  min-height: var(--touch);
  padding: 0.4rem 0.85rem;
  border: 1px solid rgb(231 229 223 / 0.35);
  font-weight: 600;
}
.nav-menu summary::-webkit-details-marker { display: none; }
.nav-menu ul {
  position: absolute;
  right: 0;
  top: calc(100% + 0.5rem);
  min-width: 15rem;
  padding: var(--space-1) 0;
  background: var(--surface);
  border: 1px solid var(--rule);
}
.nav-menu li a {
  display: block;
  padding: 0.75rem 1rem;
  text-decoration: none;
}

.header-cta { margin-left: var(--space-2); }

/* ——— Beat 1: ChemFab fold ——— */
.beat-1 {
  position: relative;
  isolation: isolate;
  min-height: min(100svh, 50rem);
  padding: 0;
  overflow: hidden;
  display: flex;
  align-items: stretch;
}

.beat1-ground {
  position: absolute;
  inset: 0;
  z-index: 0;
  pointer-events: none;
}

.beat1-photo {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: 72% 38%;
  filter: grayscale(1) contrast(1.14) brightness(0.7);
  /* Hard right slab — ChemFab dead-air photo */
  clip-path: polygon(46% 0, 100% 0, 100% 100%, 42% 100%);
}

/* Strong left scrim + hard vertical edge into the photo */
.beat1-scrim {
  position: absolute;
  inset: 0;
  background:
    linear-gradient(
      90deg,
      rgb(28 31 34 / 1) 0%,
      rgb(28 31 34 / 1) 40%,
      rgb(28 31 34 / 0.92) 44%,
      rgb(28 31 34 / 0.2) 48%,
      transparent 52%
    ),
    linear-gradient(
      180deg,
      rgb(28 31 34 / 0.45) 0%,
      transparent 16%,
      transparent 82%,
      rgb(28 31 34 / 0.85) 100%
    );
}

/* Hard vertical crop edge */
.beat1-scrim::after {
  content: "";
  position: absolute;
  top: 0;
  bottom: 0;
  left: 44%;
  width: 2px;
  background: linear-gradient(
    180deg,
    transparent 0%,
    rgb(231 229 223 / 0.35) 12%,
    rgb(231 229 223 / 0.35) 88%,
    transparent 100%
  );
  pointer-events: none;
}

.beat1-stage {
  position: relative;
  z-index: 1;
  flex: 1;
  width: 100%;
  max-width: var(--max);
  margin-inline: auto;
  padding-inline: var(--gutter);
  min-height: inherit;
  display: flex;
  flex-direction: column;
  justify-content: flex-start;
  gap: var(--space-3);
  padding-top: clamp(3.5rem, 6vh, 4.25rem);
  padding-bottom: 1rem;
}

.beat1-copy {
  position: relative;
  z-index: 2;
  display: flex;
  flex-direction: column;
  gap: 0.45rem;
  max-width: min(40rem, 54%);
  padding-right: 0.75rem;
}

.beat-1 h1 {
  font-size: clamp(2.85rem, 4.8vw + 0.75rem, 4.85rem);
  max-width: 18ch;
  line-height: 0.96;
  letter-spacing: -0.038em;
  font-variation-settings: "wdth" 125;
  font-weight: 800;
  text-wrap: balance;
  text-shadow: 0 1px 14px rgb(28 31 34 / 0.55);
  margin-bottom: 0.1rem;
}

.hero-support {
  max-width: 40ch;
  font-size: 1rem;
  line-height: 1.4;
  color: var(--text);
  text-shadow: 0 1px 10px rgb(28 31 34 / 0.55);
}

.icp-whisper {
  max-width: 34ch;
  font-size: 0.875rem;
  line-height: 1.35;
  color: var(--muted);
  border-left: 2px solid var(--accent);
  padding-left: 0.75rem;
}

.hero-actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: var(--space-2) var(--space-3);
  margin-top: 0.35rem;
}

/* Nameplate — riveted object, not floating SaaS card */
.plate {
  position: absolute;
  right: var(--gutter);
  bottom: 0.75rem;
  z-index: 3;
  width: min(19rem, 27%);
  display: flex;
  flex-direction: column;
  padding: 1.25rem 0.95rem 0.85rem;
  background: #D8D4CC;
  color: var(--bg);
  border-radius: 0;
  font-family: var(--font-mono);
  text-transform: uppercase;
  /* Bolted nameplate — flush object, not floating card */
  clip-path: polygon(0 0, calc(100% - 12px) 0, 100% 12px, 100% 100%, 0 100%);
  border: 2px solid #0E1012;
  box-shadow:
    inset 0 0 0 3px #D8D4CC,
    inset 0 0 0 4px #0E1012,
    2px 2px 0 #0E1012;
}

.rivet {
  position: absolute;
  width: 0.85rem;
  height: 0.85rem;
  border-radius: 50%;
  background:
    radial-gradient(circle at 35% 30%, var(--accent-hot), var(--accent) 55%, #A34F0E 100%);
  box-shadow:
    inset -1px -1px 1px rgb(28 31 34 / 0.45),
    inset 1px 1px 1px rgb(255 255 255 / 0.25),
    0 1px 2px rgb(0 0 0 / 0.35);
  border: 1px solid rgb(28 31 34 / 0.35);
}
.rivet-tl { top: 0.55rem; left: 0.55rem; }
.rivet-tr { top: 0.55rem; right: 0.85rem; }
.rivet-bl { bottom: 0.55rem; left: 0.55rem; }
.rivet-br { bottom: 0.55rem; right: 0.55rem; }

.stamp-pending .rivet { transform: scale(0.55); opacity: 0.35; }
.stamp-run .rivet {
  animation: rivet-hit 320ms var(--ease-spring) both;
}
.stamp-run .rivet-tl { animation-delay: 40ms; }
.stamp-run .rivet-tr { animation-delay: 90ms; }
.stamp-run .rivet-bl { animation-delay: 140ms; }
.stamp-run .rivet-br { animation-delay: 190ms; }

@keyframes rivet-hit {
  0%   { transform: scale(0.55); opacity: 0.35; }
  45%  { transform: scale(1.28); opacity: 1; }
  70%  { transform: scale(0.92); }
  100% { transform: scale(1); opacity: 1; }
}

.stamp-run .plate {
  animation: plate-settle 420ms var(--ease-spring) both;
}
@keyframes plate-settle {
  0%   { transform: translateY(-6px) scale(1.015); }
  55%  { transform: translateY(2px) scale(0.995); }
  100% { transform: none; }
}

.plate-title {
  font-weight: 700;
  font-size: 0.75rem;
  letter-spacing: 0.1em;
  padding: 0.1rem 0 0.4rem;
  margin: 0 0.45rem 0.4rem;
  border-bottom: 2px solid #0E1012;
  text-align: center;
}

.plate-fields {
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  flex: 1;
  gap: 0.35rem;
  padding-inline: 0.2rem;
}

.plate-row {
  display: grid;
  grid-template-columns: 38% 62%;
  column-gap: 0.65rem;
  align-items: baseline;
}

.plate-row dt {
  font-size: 0.6875rem;
  font-weight: 500;
  letter-spacing: 0.05em;
}

.plate-row dd {
  font-size: 0.8125rem;
  font-weight: 700;
  line-height: 1.15;
  letter-spacing: 0.02em;
}
.plate-row dd span { display: block; }

.strike { transform-origin: left center; }
.plate-row dd .strike,
.plate-row dt.strike { display: block; }

.stamp-pending .plate .strike { clip-path: inset(0 0 100% 0); }

.stamp-run .plate .strike {
  animation: strike var(--strike-dur) var(--ease-press) calc(var(--i) * var(--strike-step)) both;
}

@keyframes strike {
  0% { clip-path: inset(0 0 100% 0); transform: translateY(-3px) scale(1.04); }
  1% { clip-path: inset(0); transform: translateY(-3px) scale(1.04); }
  100% { clip-path: inset(0); transform: none; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  .stamp-pending .plate .strike,
  .stamp-run .plate .strike { clip-path: none; animation: none; }
  .stamp-pending .rivet,
  .stamp-run .rivet,
  .stamp-run .plate { animation: none; transform: none; opacity: 1; }
  .btn,
  .btn-sm,
  .traveler tbody tr,
  .cta-bar {
    transition: none !important;
    transform: none !important;
  }
  .btn:active,
  .btn-sm:active,
  .traveler tbody tr:hover,
  .traveler tbody tr:focus-within {
    transform: none !important;
    box-shadow: none;
  }
}

/* ——— Beat 2: Path object — dense routing sheet ——— */
.beat-2 {
  background: var(--surface);
  padding-block: var(--space-5);
  position: relative;
  z-index: 2;
}
.beat-2 h2 {
  font-size: var(--step-2);
  margin-bottom: var(--space-3);
}

.traveler-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 0.35rem 1.25rem;
  margin-bottom: 0.5rem;
  padding: 0.4rem 0.65rem;
  border: 1px solid var(--rule);
  border-bottom: 0;
  font-family: var(--font-mono);
  font-size: 0.6875rem;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--muted);
}
.traveler-meta strong {
  color: var(--text);
  font-weight: 700;
}

.traveler {
  width: 100%;
  border-collapse: collapse;
  border: 1px solid var(--muted);
  text-align: left;
  font-size: 0.9375rem;
}
.traveler th,
.traveler td {
  padding: 0.4rem 0.6rem;
  border-bottom: 1px solid var(--rule);
  vertical-align: baseline;
}
.traveler thead th {
  font-family: var(--font-mono);
  font-size: 0.6875rem;
  font-weight: 500;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--muted);
  background: rgb(28 31 34 / 0.35);
  border-bottom-color: var(--muted);
  padding-block: 0.4rem;
}
.traveler tbody th,
.traveler tbody td { padding-block: 0.45rem; }
.traveler td + td,
.traveler th + td { border-left: 1px solid var(--rule); }

.traveler tbody tr {
  transition:
    transform 140ms var(--ease-spring),
    background-color 140ms var(--ease-press);
}
@media (hover: hover) and (pointer: fine) {
  .traveler tbody tr:hover {
    transform: translateY(1px);
    background: rgb(28 31 34 / 0.28);
  }
}
.traveler tbody tr:focus-within {
  transform: translateY(1px);
  background: rgb(28 31 34 / 0.28);
}

.op {
  width: 5.5rem;
  font-family: var(--font-mono);
  font-weight: 700;
  font-size: 0.875rem;
  white-space: nowrap;
  color: var(--accent);
}
.op-name {
  width: 34%;
  font-size: 0.975rem;
  font-weight: 700;
  font-variation-settings: "wdth" 112;
  line-height: 1.2;
}
.op-note {
  color: var(--muted);
  font-size: 0.875rem;
  line-height: 1.35;
}
.op-time {
  width: 7.5rem;
  font-family: var(--font-mono);
  font-size: 0.8125rem;
  white-space: nowrap;
  color: var(--muted);
}
.op-note.missing { color: var(--muted); outline-offset: -0.25em; }

.traveler tfoot td {
  font-family: var(--font-mono);
  font-size: 0.75rem;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--muted);
  text-align: right;
  border-bottom: 0;
  padding: 0.45rem 0.75rem;
  background: rgb(28 31 34 / 0.25);
}

/* Proof line — tight caption, not Path Robotics hero-stat */
.proof-line {
  display: grid;
  grid-template-columns: 3.75rem minmax(0, 1fr);
  gap: 0.65rem;
  align-items: center;
  margin-top: var(--space-2);
  padding-top: var(--space-2);
  border-top: 1px solid var(--rule);
  max-width: 38rem;
}

.proof-thumb { margin: 0; }
.proof-thumb img {
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: 1;
  object-fit: cover;
  object-position: 55% 35%;
  border: 1px solid var(--rule);
  background: var(--bg);
  filter: grayscale(1);
}

.proof-claim {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 0.5rem 0.75rem;
  line-height: 1.35;
}

.stat-figure {
  color: var(--accent);
  font-family: var(--font-mono);
  font-size: 0.9375rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  line-height: 1;
  font-variant-numeric: tabular-nums;
  white-space: nowrap;
}

.stat-label {
  flex: 1 1 14rem;
  max-width: 40ch;
  font-size: 0.875rem;
  color: var(--muted);
  line-height: 1.35;
}

/* ——— Beat 3: fit + audit (no guarantee stamp) ——— */
.beat-3 {
  padding-block: var(--space-5) var(--space-6);
}

.fit-tight {
  display: grid;
  grid-template-columns: 1fr 1fr;
  column-gap: var(--space-4);
  row-gap: var(--space-3);
  margin-bottom: var(--space-4);
  max-width: 48rem;
}

.fit-tight h3 {
  padding-bottom: 0.35rem;
  border-bottom: 1px solid var(--muted);
  margin-bottom: 0.25rem;
  font-size: 0.9375rem;
  font-family: var(--font-mono);
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  font-variation-settings: "wdth" 100;
}

.fit-list li {
  position: relative;
  padding: 0.4rem 0 0.4rem 1.1rem;
  border-bottom: 1px solid var(--rule);
  max-width: 36ch;
  font-size: 0.9375rem;
  line-height: 1.35;
  color: var(--muted);
}
.fit-list li:last-child { border-bottom: 0; }
.fit-list li::before {
  content: "";
  position: absolute;
  left: 0;
  top: calc(0.4rem + 0.7em);
  width: 0.55rem;
  height: 1px;
  background: var(--muted);
}

.close-block {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: var(--space-2) var(--space-3);
  margin-bottom: var(--space-4);
  padding-block: var(--space-3);
  border-block: 1px solid var(--rule);
}

.close-line {
  flex: 1 1 16rem;
  max-width: 22ch;
  font-size: clamp(1.35rem, 2.2vw + 0.4rem, 2rem);
  font-weight: 800;
  font-variation-settings: "wdth" var(--wdth-display);
  letter-spacing: -0.02em;
  line-height: 1.1;
}

/* FAQ as footnotes — kill accordion smell */
.faq-notes {
  display: flex;
  flex-wrap: wrap;
  gap: 0.35rem 1.75rem;
  max-width: 56rem;
  padding-top: 0.25rem;
  border-top: 1px dashed var(--rule);
}
.faq-notes > div {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 0.35rem 0.65rem;
  max-width: 22rem;
}
.faq-notes dt {
  font-family: var(--font-mono);
  font-size: 0.6875rem;
  font-weight: 500;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  color: var(--muted);
  margin: 0;
}
.faq-notes dd {
  font-size: 0.875rem;
  color: var(--muted);
  margin: 0;
}

/* Footer */
.site-footer {
  border-top: 1px solid var(--rule);
  padding-block: var(--space-3);
  font-size: 0.9375rem;
  color: var(--muted);
}
.footer-row {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  gap: var(--space-2);
}
.site-footer .wordmark { color: var(--text); font-size: 1rem; }

.footer-nav {
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem 1.25rem;
  align-items: center;
}
.footer-nav a {
  color: var(--muted);
  text-decoration: none;
  font-size: 0.875rem;
  font-family: var(--font-mono);
  letter-spacing: 0.03em;
  text-transform: uppercase;
  min-height: var(--touch);
  display: inline-flex;
  align-items: center;
}
.footer-nav a:hover,
.footer-nav a:focus-visible {
  color: var(--text);
}
.footer-nav a[aria-current="page"] {
  color: var(--text);
  border-bottom: 1px solid var(--accent);
}

/* Beat 3 without guarantee stamp — keep fit → close → FAQ breathing room */
.beat-3 .wrap {
  display: flex;
  flex-direction: column;
  gap: 0;
}
.beat-3 .fit-tight {
  margin-bottom: var(--space-5);
}
.beat-3 .close-block {
  margin-bottom: var(--space-5);
  padding-block: var(--space-4);
}
.beat-3 .faq-notes {
  padding-top: var(--space-3);
}

/* Legal / 404 stubs — reuse tokens, no new look */
.legal-page {
  padding-block: var(--space-5) var(--space-6);
  min-height: 60vh;
}
.legal-wrap {
  max-width: 42rem;
}
.legal-kicker {
  font-family: var(--font-mono);
  font-size: 0.75rem;
  font-weight: 600;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--muted);
  margin-bottom: var(--space-2);
}
.legal-page h1 {
  font-size: clamp(2rem, 4vw + 0.5rem, 3rem);
  margin-bottom: var(--space-3);
}
.legal-page h2 {
  font-size: var(--step-1);
  margin-top: var(--space-4);
  margin-bottom: var(--space-2);
  font-variation-settings: "wdth" 112;
}
.legal-lede {
  font-size: var(--step-0);
  color: var(--muted);
  max-width: var(--measure);
  margin-bottom: var(--space-3);
}
.legal-page p {
  margin-bottom: var(--space-2);
  max-width: var(--measure);
  color: var(--text);
}
.legal-list {
  list-style: none;
  padding: 0;
  margin: 0 0 var(--space-3);
  max-width: var(--measure);
}
.legal-list li {
  position: relative;
  padding: 0.45rem 0 0.45rem 1.1rem;
  border-bottom: 1px solid var(--rule);
  color: var(--muted);
  font-size: 0.9375rem;
}
.legal-list li:last-child { border-bottom: 0; }
.legal-list li::before {
  content: "";
  position: absolute;
  left: 0;
  top: calc(0.45rem + 0.7em);
  width: 0.55rem;
  height: 1px;
  background: var(--muted);
}
.legal-updated {
  margin-top: var(--space-4);
  font-size: 0.875rem;
  color: var(--muted);
  font-family: var(--font-mono);
}
.legal-page .hero-actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: var(--space-2) var(--space-3);
  margin-top: var(--space-3);
}
.legal-page .link {
  color: var(--accent-hot);
  text-decoration: none;
  font-weight: 600;
}
.legal-page .link:hover { text-decoration: underline; }


/* Footer contact mailto */
.footer-contact {
  color: var(--muted);
  text-decoration: none;
  font-family: var(--font-mono);
  font-size: 0.875rem;
  letter-spacing: 0.02em;
  min-height: var(--touch);
  display: inline-flex;
  align-items: center;
}
.footer-contact:hover,
.footer-contact:focus-visible {
  color: var(--text);
}

/* Lean contact form — beat 3, shop-floor not SaaS */
.contact-block {
  max-width: 32rem;
  margin-bottom: var(--space-5);
  padding-block: var(--space-3);
  border-top: 1px solid var(--rule);
}
.contact-title {
  font-size: 0.9375rem;
  font-family: var(--font-mono);
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  font-variation-settings: "wdth" 100;
  padding-bottom: 0.35rem;
  border-bottom: 1px solid var(--muted);
  margin-bottom: var(--space-2);
}
.contact-lede {
  color: var(--muted);
  font-size: 0.9375rem;
  max-width: 42ch;
  margin-bottom: var(--space-3);
}
.contact-lede a {
  color: var(--text);
  text-decoration: underline;
  text-decoration-color: var(--muted);
}
.contact-lede a:hover { text-decoration-color: var(--text); }

.contact-embed {
  display: block;
  width: 100%;
  height: 74rem;
  border: 1px solid var(--rule);
  background: var(--bg);
}

.beat-3 .contact-block {
  margin-top: 0;
}

.cta-bar { display: none; }

/* Tablet — below 1280 */
@media (max-width: 79.99rem) {
  .beat1-copy {
    max-width: 34rem;
  }
  .beat1-photo {
    clip-path: polygon(36% 0, 100% 0, 100% 100%, 30% 100%);
  }
  .beat1-scrim::after { left: 34%; }
  .plate {
    position: relative;
    right: auto;
    bottom: auto;
    width: min(100%, 26rem);
    margin-top: var(--space-3);
    clip-path: polygon(0 0, calc(100% - 12px) 0, 100% 12px, 100% 100%, 0 100%);
  }
  .beat1-stage {
    justify-content: flex-start;
    padding-block: 4.5rem var(--space-4);
    gap: var(--space-3);
  }
  .beat-1 { min-height: auto; }
  .beat1-photo { object-position: 70% 40%; }
  .proof-line { grid-template-columns: 4.5rem 1fr; }
}

/* Mobile — ≤768 (covers 375 fold) */
@media (max-width: 47.99rem) {
  :root {
    --wdth-display: 112;
    --cta-bar-h: calc(3.85rem + env(safe-area-inset-bottom, 0px));
  }
  html {
    scroll-padding-bottom: calc(var(--cta-bar-h) + 0.5rem);
  }

  .header-cta { display: none; }
  .nav-menu { display: block; }
  .site-header nav { margin-left: auto; }

  /* Stack: type → CTAs → nameplate. Fit FULL nameplate on 375 fold.
     Sticky clearance lives on later beats (sticky is suppressed on fold). */
  .beat-1 {
    min-height: auto;
    padding-bottom: 0;
  }
  .beat1-stage {
    padding-top: 3.1rem;
    padding-bottom: var(--space-2);
    justify-content: flex-start;
    gap: 0.65rem;
  }
  .beat1-copy {
    max-width: none;
    padding-right: 0;
    gap: 0.4rem;
  }
  .beat-1 h1 {
    font-size: clamp(1.95rem, 8.2vw, 2.65rem);
    max-width: 12ch;
    line-height: 1.02;
    margin-bottom: 0;
  }
  .hero-support {
    font-size: 0.9rem;
    line-height: 1.35;
  }
  .icp-whisper {
    font-size: 0.8125rem;
    padding-left: 0.65rem;
  }
  .hero-actions {
    flex-direction: column;
    align-items: stretch;
    gap: 0.45rem;
    margin-top: 0.25rem;
  }
  .hero-actions .btn { width: 100%; }
  .hero-actions .link {
    align-self: flex-start;
    padding-block: 0.35rem;
    min-height: var(--touch);
  }
  .hero-actions { margin-bottom: 0.15rem; }

  .beat1-photo {
    clip-path: none;
    object-position: 72% 38%;
    filter: grayscale(1) contrast(1.1) brightness(0.55);
  }
  .beat1-scrim {
    background:
      linear-gradient(
        180deg,
        rgb(28 31 34 / 0.82) 0%,
        rgb(28 31 34 / 0.62) 26%,
        rgb(28 31 34 / 0.78) 58%,
        rgb(28 31 34 / 0.95) 100%
      );
  }
  .beat1-scrim::after { display: none; }

  .plate {
    position: relative;
    right: auto;
    bottom: auto;
    width: 100%;
    max-width: none;
    margin-top: 0.15rem;
    margin-bottom: 0;
    padding: 0.85rem 0.8rem 0.7rem;
    flex-shrink: 0;
  }
  .plate-title {
    font-size: 0.6875rem;
    padding-bottom: 0.3rem;
    margin-bottom: 0.3rem;
  }
  .plate-fields { gap: 0.22rem; }
  .plate-row { grid-template-columns: 1fr; row-gap: 0.05rem; }
  .plate-row dt { font-size: 0.625rem; }
  .plate-row dd { font-size: 0.75rem; line-height: 1.2; }
  .rivet { width: 0.7rem; height: 0.7rem; }
  .rivet-tl { top: 0.4rem; left: 0.4rem; }
  .rivet-tr { top: 0.4rem; right: 0.7rem; }
  .rivet-bl { bottom: 0.4rem; left: 0.4rem; }
  .rivet-br { bottom: 0.4rem; right: 0.4rem; }

  .beat-2 {
    padding-block: var(--space-4);
    padding-bottom: calc(var(--space-4) + var(--cta-bar-h) + 0.5rem);
  }
  .beat-2 .proof-line {
    margin-bottom: 0.25rem;
  }
  .beat-2 h2 { font-size: var(--step-1); }
  .op-name { font-size: 1rem; }

  .traveler-meta { font-size: 0.625rem; gap: 0.25rem 0.85rem; }

  .traveler,
  .traveler thead,
  .traveler tbody,
  .traveler tfoot,
  .traveler tr,
  .traveler th,
  .traveler td { display: block; width: auto; }
  .traveler { border: 1px solid var(--muted); }
  .traveler thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
  .traveler tbody tr {
    display: grid;
    grid-template-columns: 3.75rem 1fr;
    column-gap: var(--space-2);
    padding: 0.75rem 0.65rem;
    border-bottom: 1px solid var(--rule);
    min-height: var(--touch);
  }
  .traveler tbody th,
  .traveler tbody td { padding: 0; border: 0; }
  .traveler tbody th {
    grid-row: 1 / span 3;
    border-right: 2px solid var(--accent);
    padding-right: var(--space-2);
  }
  .traveler .op-note { margin-top: 0.2rem; }
  .traveler .op-time:empty { display: none; }
  .traveler .op-time { margin-top: 0.2rem; color: var(--muted); }
  .traveler tfoot td { text-align: left; padding: 0.5rem 0.65rem; }

  .proof-line {
    grid-template-columns: 4rem 1fr;
    max-width: none;
  }
  .stat-figure { font-size: 1rem; }
  .stat-label { font-size: 0.875rem; }

  .fit-tight { grid-template-columns: 1fr; max-width: none; }

  .close-block { flex-direction: column; align-items: stretch; }
  .close-block .btn { width: 100%; }
  .contact-embed { height: 78rem; }

  .faq-notes { flex-direction: column; gap: 0.5rem; }

  .beat-3 {
    padding-block: var(--space-4);
    padding-bottom: calc(var(--space-4) + var(--cta-bar-h));
  }

  .site-footer {
    padding-bottom: calc(var(--space-3) + var(--cta-bar-h));
  }

  /* Sticky audit CTA — hidden until past hero/close primary CTAs */
  .cta-bar {
    display: block;
    position: sticky;
    bottom: 0;
    z-index: 40;
    padding: 0.65rem var(--gutter) calc(0.65rem + env(safe-area-inset-bottom, 0px));
    background: rgb(39 43 47 / 0.97);
    border-top: 1px solid var(--rule);
    transform: translateY(110%);
    opacity: 0;
    pointer-events: none;
    transition:
      transform 220ms var(--ease-spring),
      opacity 180ms var(--ease-press);
  }
  .cta-bar.is-revealed {
    transform: translateY(0);
    opacity: 1;
    pointer-events: auto;
  }
  .cta-bar .btn {
    width: 100%;
    min-height: var(--touch);
  }
}

/* Narrow phones (~375) — keep nameplate fully in fold */
@media (max-width: 23.4375rem) {
  .beat1-stage {
    gap: var(--space-2);
    padding-top: 3.15rem;
    padding-bottom: var(--space-2);
  }
  .beat-1 h1 {
    font-size: clamp(1.85rem, 7.8vw, 2.35rem);
  }
}

/* Large desktop refinements — 1280+ */
@media (min-width: 80rem) {
  .beat1-copy { max-width: min(42rem, 52%); }
  .plate { width: min(20rem, 26%); }
}
