/*
 * GLACIS 2026 campaign system
 * Human first. Machine readable when asked.
 */

@font-face {
  font-family: "Söhne";
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("/assets/fonts/klim/soehne-kraftig.woff2") format("woff2");
}

@font-face {
  font-family: "Domaine Display";
  font-style: italic;
  font-weight: 400;
  font-display: swap;
  src: url("/assets/fonts/klim/domaine-display-regular-italic.woff2") format("woff2");
}

@font-face {
  font-family: "Tiempos Text";
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("/assets/fonts/klim/tiempos-text-web-regular.woff2") format("woff2");
}

@font-face {
  font-family: "Tiempos Text";
  font-style: italic;
  font-weight: 400;
  font-display: swap;
  src: url("/assets/fonts/klim/tiempos-text-web-regular-italic.woff2") format("woff2");
}

:root {
  --display: "Söhne", Helvetica, sans-serif;
  --italic-accent: "Domaine Display", Georgia, serif;
  --body: "Tiempos Text", Georgia, serif;
  --sans: "Söhne", Helvetica, sans-serif;
  /* Deliberately human. Legacy machine labels inherit Söhne. */
  --mono: "Söhne", Helvetica, sans-serif;
  --serif: var(--display);
  --serif-body: var(--body);

  --iris-0: #14101b;
  --iris-1: #18141f;
  --iris-2: #1e1724;
  --iris-3: #241b2c;
  --iris-4: #2c2135;
  --bone: #ede3d0;
  --bone-strong: #f5ecd9;
  --bone-mute: #b5a9a0;
  --bone-dim: #958996;
  --violet: #c084fc;
  --violet-mid: #a78bfa;
  --violet-line: rgba(192, 132, 252, 0.4);
  --cyan: #82c4d0;
  --cyan-mid: #5fb4c4;
  --cyan-line: rgba(130, 196, 208, 0.34);
  --amber: #e0ae7c;
  --brass: #b6a188;
  --brass-lift: #cfbfa8;
  --pass: #94a381;
  --warn: #c4964a;
  --fail: #b05a3e;
  --rule: rgba(237, 227, 208, 0.1);
  --rule-strong: rgba(237, 227, 208, 0.18);
  --shell: 1180px;
  --gutter: clamp(20px, 4vw, 48px);
  --nav-height: 78px;
  --ease: cubic-bezier(0.2, 0, 0.2, 1);
}

html {
  scroll-behavior: smooth;
  scroll-padding-top: calc(var(--nav-height) + 24px);
  background: var(--iris-0);
}

body {
  margin: 0;
  background: var(--iris-0);
  color: var(--bone-mute);
  font-family: var(--body);
  font-size: 17px;
  line-height: 1.65;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}

body,
button,
input,
select,
textarea {
  font-synthesis: none;
}

h1,
h2,
h3,
h4,
h5,
h6,
.font-display,
.font-serif {
  font-family: var(--display) !important;
  font-style: normal;
  font-weight: 500 !important;
  letter-spacing: -0.018em;
}

h1 em,
h2 em,
h3 em,
h4 em,
.accent,
.h-italic-accent {
  color: inherit;
  font-family: var(--italic-accent) !important;
  font-style: italic !important;
  font-weight: 400 !important;
  letter-spacing: 0;
}

code,
pre,
kbd,
samp,
.font-mono,
[class*="font-mono"],
[class*="mono"],
[class*="code"] {
  font-family: var(--sans) !important;
  font-variant-numeric: tabular-nums;
  letter-spacing: 0;
}

button,
input,
select,
textarea,
label,
small,
.tag,
.badge,
[class*="eyebrow"],
[class*="label"],
[class*="caption"] {
  font-family: var(--sans);
}

a {
  color: inherit;
  text-decoration-thickness: 1px;
  text-underline-offset: 0.18em;
}

:focus-visible {
  outline: 2px solid var(--violet-mid) !important;
  outline-offset: 4px !important;
}

::selection {
  background: rgba(167, 139, 250, 0.28);
  color: var(--bone-strong);
}

/* Shared navigation */
.glacis-nav {
  position: sticky;
  top: 0;
  z-index: 1000;
  height: var(--nav-height);
  border-bottom: 1px solid rgba(237, 227, 208, 0.08);
  background: rgba(20, 16, 27, 0.76);
  -webkit-backdrop-filter: blur(22px) saturate(1.12);
  backdrop-filter: blur(22px) saturate(1.12);
  transition: background 240ms var(--ease), border-color 240ms var(--ease);
}

.glacis-nav.is-scrolled {
  background: rgba(20, 16, 27, 0.94);
  border-color: var(--rule-strong);
}

.glacis-nav-inner {
  width: min(100%, var(--shell));
  height: 100%;
  margin: 0 auto;
  padding: 0 var(--gutter);
  display: flex;
  align-items: center;
  gap: clamp(18px, 2.4vw, 34px);
  box-sizing: border-box;
}

.glacis-brand {
  display: inline-flex;
  align-items: center;
  gap: 12px;
  color: var(--bone-strong);
  text-decoration: none;
  flex: 0 0 auto;
}

.glacis-brand-mark {
  width: 34px;
  height: 34px;
  object-fit: contain;
}

.glacis-brand-word {
  width: 110px;
  height: auto;
  display: block;
}

.glacis-nav-links {
  display: flex;
  align-items: center;
  gap: clamp(18px, 2vw, 30px);
  margin-left: auto;
}

.glacis-nav-link {
  position: relative;
  color: var(--bone-mute);
  font-family: var(--sans);
  font-size: 13px;
  line-height: 1;
  text-decoration: none;
  white-space: nowrap;
  transition: color 180ms var(--ease);
}

.glacis-nav-link::after {
  content: "";
  position: absolute;
  left: 0;
  right: 100%;
  bottom: -9px;
  height: 1px;
  background: var(--violet-mid);
  transition: right 200ms var(--ease);
}

.glacis-nav-link:hover,
.glacis-nav-link:focus-visible {
  color: var(--bone-strong);
}

.glacis-nav-link:hover::after,
.glacis-nav-link:focus-visible::after {
  right: 0;
}

.glacis-button,
.glacis-nav-cta {
  min-height: 46px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  padding: 0 22px;
  border: 1px solid var(--violet-line);
  border-radius: 2px;
  background: rgba(44, 33, 53, 0.82);
  color: var(--bone-strong);
  box-shadow: inset 0 1px rgba(255, 255, 255, 0.05);
  font-family: var(--sans);
  font-size: 12px;
  letter-spacing: 0.14em;
  line-height: 1;
  text-decoration: none;
  text-transform: uppercase;
  transition: border-color 180ms var(--ease), background 180ms var(--ease);
}

.glacis-button:hover,
.glacis-button:focus-visible,
.glacis-nav-cta:hover,
.glacis-nav-cta:focus-visible {
  border-color: var(--violet-mid);
  background: rgba(53, 39, 65, 0.96);
}

.glacis-nav-toggle {
  width: 46px;
  height: 46px;
  margin-left: auto;
  display: none;
  align-items: center;
  justify-content: center;
  border: 1px solid var(--rule-strong);
  border-radius: 2px;
  background: transparent;
  color: var(--bone-strong);
  cursor: pointer;
}

.glacis-nav-toggle svg {
  width: 22px;
  height: 22px;
}

.glacis-mobile-menu {
  position: fixed;
  inset: 0;
  z-index: 1100;
  display: grid;
  align-content: start;
  padding: 22px var(--gutter) 48px;
  background: rgba(20, 16, 27, 0.985);
  opacity: 0;
  visibility: hidden;
  transform: translateY(-8px);
  transition: opacity 220ms var(--ease), transform 220ms var(--ease), visibility 220ms;
}

.glacis-mobile-menu.is-open {
  opacity: 1;
  visibility: visible;
  transform: translateY(0);
}

.glacis-mobile-top {
  display: flex;
  align-items: center;
  justify-content: space-between;
  min-height: 56px;
  padding-bottom: 22px;
  border-bottom: 1px solid var(--rule);
}

.glacis-mobile-close {
  width: 46px;
  height: 46px;
  display: grid;
  place-items: center;
  border: 1px solid var(--rule-strong);
  border-radius: 2px;
  background: transparent;
  color: var(--bone-strong);
  cursor: pointer;
}

.glacis-mobile-links {
  display: grid;
  margin-top: 34px;
}

.glacis-mobile-links a {
  padding: 17px 0;
  border-bottom: 1px solid var(--rule);
  color: var(--bone-strong);
  font-family: var(--display);
  font-size: clamp(26px, 8vw, 38px);
  line-height: 1.1;
  text-decoration: none;
}

.glacis-mobile-menu .glacis-nav-cta {
  width: 100%;
  margin-top: 30px;
  box-sizing: border-box;
}

body.glacis-menu-open {
  overflow: hidden;
}

/* Shared footer */
.glacis-footer {
  position: relative;
  z-index: 2;
  padding: 78px 0 36px;
  border-top: 1px solid var(--rule);
  background: var(--iris-1);
  color: var(--bone-mute);
}

.glacis-footer-inner {
  width: min(100%, var(--shell));
  margin: 0 auto;
  padding: 0 var(--gutter);
  box-sizing: border-box;
}

.glacis-footer-grid {
  display: grid;
  grid-template-columns: minmax(260px, 1.45fr) repeat(3, minmax(130px, 0.55fr));
  gap: 42px;
}

.glacis-footer-lockup {
  display: inline-flex;
  align-items: center;
  gap: 14px;
  text-decoration: none;
}

.glacis-footer-lockup img:first-child {
  width: 42px;
  height: 42px;
}

.glacis-footer-lockup img:last-child {
  width: 124px;
  height: auto;
}

.glacis-footer-statement {
  max-width: 28ch;
  margin: 24px 0 0;
  color: var(--bone);
  font-family: var(--display);
  font-size: 20px;
  line-height: 1.35;
}

.glacis-footer h2 {
  margin: 0 0 16px;
  color: var(--bone-dim);
  font-family: var(--sans) !important;
  font-size: 11px !important;
  line-height: 1.25 !important;
  letter-spacing: 0.16em !important;
  text-transform: uppercase !important;
}

html body.aubergine .glacis-footer h2 {
  color: var(--bone-dim) !important;
  font-family: var(--sans) !important;
  font-size: 11px !important;
  line-height: 1.25 !important;
  letter-spacing: 0.16em !important;
  text-transform: uppercase !important;
}

html body.aubergine .glacis-nav-link,
html body.aubergine .glacis-footer a {
  color: var(--bone-mute) !important;
}

html body.aubergine .glacis-nav-link:hover,
html body.aubergine .glacis-nav-link:focus-visible,
html body.aubergine .glacis-footer a:hover,
html body.aubergine .glacis-footer a:focus-visible {
  color: var(--bone-strong) !important;
}

html body.aubergine .glacis-nav-cta {
  color: var(--bone-strong) !important;
}

.glacis-footer ul {
  margin: 0;
  padding: 0;
  list-style: none;
}

.glacis-footer li + li {
  margin-top: 11px;
}

.glacis-footer a {
  color: var(--bone-mute);
  font-family: var(--sans);
  font-size: 13px;
  text-decoration: none;
}

.glacis-footer a:hover,
.glacis-footer a:focus-visible {
  color: var(--bone-strong);
}

.glacis-footer-bottom {
  margin-top: 62px;
  padding-top: 24px;
  border-top: 1px solid var(--rule);
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 24px;
  color: var(--bone-dim);
  font-family: var(--sans);
  font-size: 11px;
}

.glacis-footer-legal {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: 14px 20px;
}

/* Campaign homepage */
.home-rebuild {
  --home-shell: 1140px;
  overflow: clip;
  background: var(--iris-0);
}

.home-shell {
  width: min(100%, var(--home-shell));
  margin: 0 auto;
  padding: 0 var(--gutter);
  box-sizing: border-box;
}

.home-hero {
  position: relative;
  min-height: calc(100svh - var(--nav-height));
  display: flex;
  align-items: flex-end;
  overflow: hidden;
  isolation: isolate;
}

.home-hero video,
.home-hero-poster {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  z-index: -3;
}

.home-hero-scrim {
  position: absolute;
  inset: 0;
  z-index: -2;
  background:
    linear-gradient(180deg, rgba(20, 16, 27, 0.16) 0%, rgba(20, 16, 27, 0.24) 36%, rgba(20, 16, 27, 0.86) 84%, var(--iris-0) 100%),
    radial-gradient(ellipse at 18% 72%, rgba(20, 16, 27, 0.44) 0%, transparent 58%);
}

.home-hero-content {
  width: 100%;
  padding: clamp(90px, 15vh, 160px) 0 clamp(54px, 9vh, 90px);
}

.home-eyebrow {
  display: flex;
  align-items: center;
  gap: 10px;
  margin: 0 0 22px;
  color: var(--bone-mute);
  font-family: var(--sans);
  font-size: 12px;
  letter-spacing: 0.22em;
  text-transform: uppercase;
}

.home-eyebrow::before {
  content: "";
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: var(--violet-mid);
  box-shadow: 0 0 14px rgba(167, 139, 250, 0.9);
}

.home-hero h1 {
  max-width: 13ch;
  margin: 0 0 24px;
  color: var(--bone-strong);
  font-size: clamp(50px, 7.4vw, 92px);
  line-height: 0.98;
  text-wrap: balance;
}

.home-hero h1 em {
  color: var(--bone-strong);
}

.home-full-stop {
  color: var(--violet-mid);
  font-family: var(--italic-accent);
  font-style: italic;
}

.home-hero-sub {
  max-width: 54ch;
  margin: 0;
  color: var(--bone);
  font-size: clamp(17px, 1.7vw, 20px);
  line-height: 1.56;
  text-wrap: pretty;
}

.home-hero-sub em {
  font-family: var(--italic-accent);
  font-style: italic;
}

.home-honesty {
  max-width: 62ch;
  margin: 14px 0 0;
  color: var(--amber);
  font-family: var(--sans);
  font-size: 12px;
  line-height: 1.55;
}

.home-actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 18px 24px;
  margin-top: 28px;
}

.home-text-link {
  min-height: 44px;
  display: inline-flex;
  align-items: center;
  border-bottom: 1px solid var(--rule-strong);
  color: var(--bone);
  font-family: var(--sans);
  font-size: 13px;
  text-decoration: none;
  transition: color 180ms var(--ease), border-color 180ms var(--ease);
}

.home-text-link:hover,
.home-text-link:focus-visible {
  border-color: var(--brass);
  color: var(--bone-strong);
}

.home-microline {
  display: flex;
  flex-wrap: wrap;
  gap: 8px 28px;
  margin-top: 18px;
  color: var(--bone-dim);
  font-family: var(--sans);
  font-size: 11px;
}

.home-microline span {
  position: relative;
  padding-left: 12px;
}

.home-microline span::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0.72em;
  width: 4px;
  height: 4px;
  border-radius: 50%;
  background: var(--cyan-mid);
}

.home-section {
  position: relative;
  padding: clamp(84px, 10vw, 126px) 0;
  border-top: 1px solid var(--rule);
}

.home-section h2 {
  max-width: 20ch;
  margin: 0;
  color: var(--bone-strong);
  font-size: clamp(38px, 5vw, 62px);
  line-height: 1.04;
  text-wrap: balance;
}

.home-section h2 em {
  color: var(--bone-strong);
}

.home-lede {
  max-width: 58ch;
  margin: 22px 0 0;
  color: var(--bone-mute);
  font-size: 18px;
  line-height: 1.62;
}

.home-proof {
  background: linear-gradient(180deg, var(--iris-0), var(--iris-1));
}

.home-proof-grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(320px, 0.8fr);
  gap: clamp(56px, 9vw, 120px);
  align-items: end;
}

.home-proof-number {
  display: block;
  margin-top: 30px;
  color: var(--cyan);
  font-family: var(--display);
  font-size: clamp(68px, 11vw, 146px);
  letter-spacing: -0.055em;
  line-height: 0.82;
}

.home-proof-label {
  max-width: 34ch;
  margin: 24px 0 0;
  color: var(--bone);
  font-family: var(--display);
  font-size: 19px;
  line-height: 1.4;
}

.home-proof-note {
  margin: 10px 0 0;
  color: var(--bone-dim);
  font-family: var(--sans);
  font-size: 11px;
}

.home-proof-list {
  margin: 0;
  padding: 0;
  border-top: 1px solid var(--rule-strong);
  list-style: none;
}

.home-proof-list li {
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 24px;
  padding: 18px 0;
  border-bottom: 1px solid var(--rule);
  color: var(--bone-mute);
  font-family: var(--sans);
  font-size: 13px;
}

.home-proof-list strong {
  color: var(--bone-strong);
  font-family: var(--display);
  font-size: 22px;
  font-weight: 500;
}

.home-problem-lines {
  margin-top: 54px;
  border-top: 1px solid var(--rule-strong);
}

.home-problem-line {
  display: grid;
  grid-template-columns: minmax(120px, 0.32fr) minmax(0, 1fr);
  gap: clamp(24px, 6vw, 88px);
  padding: 27px 0;
  border-bottom: 1px solid var(--rule);
}

.home-problem-line span {
  color: var(--bone-dim);
  font-family: var(--sans);
  font-size: 11px;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}

.home-problem-line p {
  max-width: 55ch;
  margin: 0;
  color: var(--bone);
  font-size: clamp(18px, 2vw, 24px);
  line-height: 1.4;
}

.home-thesis {
  max-width: 52ch;
  margin: 48px 0 0;
  padding-left: 28px;
  border-left: 2px solid var(--brass);
  color: var(--bone);
  font-size: 21px;
  line-height: 1.58;
}

.home-loop {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  margin-top: 56px;
  border-top: 1px solid var(--rule-strong);
  border-bottom: 1px solid var(--rule-strong);
}

.home-loop-step {
  min-height: 270px;
  padding: 30px clamp(22px, 3vw, 38px) 34px 0;
}

.home-loop-step + .home-loop-step {
  padding-left: clamp(22px, 3vw, 38px);
  border-left: 1px solid var(--rule);
}

.home-step-number {
  color: var(--violet-mid);
  font-family: var(--sans);
  font-size: 11px;
  letter-spacing: 0.15em;
}

.home-loop-step h3 {
  margin: 42px 0 12px;
  color: var(--bone-strong);
  font-size: 26px;
}

.home-loop-step p {
  margin: 0;
  color: var(--bone-mute);
  font-size: 16px;
  line-height: 1.58;
}

.home-action-specimen {
  margin-top: 54px;
  border-top: 1px solid var(--rule-strong);
  border-bottom: 1px solid var(--rule-strong);
}

.home-action-row {
  display: grid;
  grid-template-columns: minmax(150px, 0.35fr) minmax(0, 1fr) auto;
  gap: 28px;
  align-items: center;
  padding: 20px 0;
  border-bottom: 1px solid var(--rule);
  font-family: var(--sans);
  font-size: 13px;
}

.home-action-row:last-child {
  border-bottom: 0;
}

.home-action-row > span:first-child {
  color: var(--bone-dim);
}

.home-action-row strong {
  color: var(--bone-strong);
  font-weight: 500;
}

.home-action-status {
  color: var(--pass);
}

.home-action-status.is-blocked {
  color: var(--amber);
}

.home-inspect {
  margin-top: 18px;
}

.home-inspect summary {
  width: fit-content;
  color: var(--bone-mute);
  font-family: var(--sans);
  font-size: 12px;
  cursor: pointer;
}

.home-inspect summary:hover {
  color: var(--bone-strong);
}

.home-inspect-panel {
  margin-top: 18px;
  padding: 22px;
  border: 1px solid var(--rule);
  background: var(--iris-2);
  color: var(--bone-mute);
  font-family: var(--sans);
  font-size: 12px;
  line-height: 1.7;
  overflow-x: auto;
  white-space: pre-wrap;
}

.home-start-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  margin-top: 56px;
  border-top: 1px solid var(--rule-strong);
}

.home-start-path {
  padding: 30px clamp(24px, 3vw, 40px) 24px 0;
}

.home-start-path + .home-start-path {
  padding-left: clamp(24px, 3vw, 40px);
  border-left: 1px solid var(--rule);
}

.home-start-path h3 {
  margin: 0;
  color: var(--bone-strong);
  font-size: 22px;
}

.home-start-path p {
  min-height: 76px;
  margin: 18px 0 24px;
  font-size: 15px;
}

.home-command {
  min-height: 52px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  padding: 0 16px;
  border: 1px solid var(--rule-strong);
  background: var(--iris-2);
  color: var(--bone);
  font-family: var(--sans);
  font-size: 13px;
  overflow-wrap: anywhere;
}

.home-command button {
  flex: 0 0 auto;
  border: 0;
  background: transparent;
  color: var(--cyan);
  font-size: 11px;
  cursor: pointer;
}

.home-ladder {
  margin: 34px 0 0;
  color: var(--bone-dim);
  font-family: var(--sans);
  font-size: 12px;
}

.home-claims-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: clamp(48px, 9vw, 120px);
  margin-top: 54px;
}

.home-claims-grid h3 {
  margin: 0 0 18px;
  color: var(--bone-strong);
  font-family: var(--sans) !important;
  font-size: 12px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
}

.home-claims-grid ul {
  margin: 0;
  padding: 0;
  border-top: 1px solid var(--rule-strong);
  list-style: none;
}

.home-claims-grid li {
  padding: 16px 0;
  border-bottom: 1px solid var(--rule);
  color: var(--bone-mute);
  font-size: 16px;
}

.home-discipline {
  max-width: 58ch;
  margin: 50px 0 0;
  padding-left: 28px;
  border-left: 2px solid var(--brass);
  color: var(--bone);
  font-size: 18px;
}

.home-standard-band {
  margin-top: 54px;
  padding: 28px 0;
  border-top: 1px solid var(--rule-strong);
  border-bottom: 1px solid var(--rule-strong);
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
}

.home-standard-band p {
  max-width: 58ch;
  margin: 0;
  color: var(--bone);
  font-size: 17px;
}

.home-final {
  position: relative;
  min-height: 78svh;
  display: flex;
  align-items: center;
  overflow: hidden;
  isolation: isolate;
}

.home-final img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  z-index: -3;
}

.home-final::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -2;
  background: linear-gradient(180deg, var(--iris-0) 0%, rgba(20, 16, 27, 0.28) 34%, rgba(20, 16, 27, 0.52) 100%);
}

.home-final h2 {
  max-width: 13ch;
  margin: 0;
  color: var(--bone-strong);
  font-size: clamp(48px, 7vw, 84px);
  line-height: 1;
  text-shadow: 0 2px 28px rgba(20, 16, 27, 0.55);
}

.home-final h2 em {
  color: var(--bone-strong);
}

.reveal {
  opacity: 0;
  transform: translateY(18px);
  transition: opacity 600ms var(--ease), transform 600ms var(--ease);
}

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

/* Bring legacy public pages into the campaign system without flattening content. */
body.aubergine,
body.dark,
body[class*="theme-dark"] {
  background: var(--iris-0) !important;
  color: var(--bone-mute);
}

body.aubergine main,
body.aubergine article {
  font-family: var(--body);
}

body.aubergine h1,
body.aubergine h2,
body.aubergine h3,
body.aubergine h4 {
  color: var(--bone-strong);
}

body.aubergine p,
body.aubergine li {
  text-wrap: pretty;
}

body.aubergine .btn,
body.aubergine [class*="button"],
body.aubergine [class*="btn-"] {
  font-family: var(--sans);
}

body.aubergine main .g-card,
body.aubergine main [class*="rounded-xl"],
body.aubergine main [class*="rounded-2xl"] {
  border-radius: 2px !important;
  box-shadow: none !important;
}

/* Remove faux terminal affect from existing pages while retaining legibility. */
.receipt-box,
.terminal,
.code-block,
.hash,
.timestamp,
.command,
pre,
code {
  font-family: var(--sans) !important;
}

@media (max-width: 980px) {
  .glacis-nav-links,
  .glacis-nav > .glacis-nav-inner > .glacis-nav-cta {
    display: none;
  }

  .glacis-nav-toggle {
    display: inline-flex;
  }

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

  .glacis-footer-brand {
    grid-column: 1 / -1;
  }

  .home-proof-grid {
    grid-template-columns: 1fr;
  }

  .home-loop,
  .home-start-grid {
    grid-template-columns: 1fr;
  }

  .home-loop-step,
  .home-start-path {
    min-height: 0;
    padding: 28px 0;
  }

  .home-loop-step + .home-loop-step,
  .home-start-path + .home-start-path {
    padding-left: 0;
    border-top: 1px solid var(--rule);
    border-left: 0;
  }

  .home-start-path p {
    min-height: 0;
  }
}

@media (max-width: 720px) {
  :root {
    --nav-height: 68px;
  }

  body {
    font-size: 16px;
  }

  .glacis-nav-inner {
    gap: 14px;
  }

  .glacis-brand-mark {
    width: 31px;
    height: 31px;
  }

  .glacis-brand-word {
    width: 96px;
  }

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

  .glacis-footer-brand {
    grid-column: 1 / -1;
  }

  .glacis-footer-bottom {
    flex-direction: column;
  }

  .glacis-footer-legal {
    justify-content: flex-start;
  }

  .home-hero {
    min-height: calc(100svh - var(--nav-height));
    background-image:
      linear-gradient(180deg, rgba(20, 16, 27, 0.14), rgba(20, 16, 27, 0.9)),
      url("/assets/brand/glacis-hero-poster.webp");
    background-position: center;
    background-size: cover;
  }

  .home-hero video {
    display: none;
  }

  .home-hero-content {
    padding: 78px 0 42px;
  }

  .home-hero h1 {
    max-width: 9ch;
    font-size: clamp(45px, 13vw, 66px);
  }

  .home-hero-sub {
    max-width: 32ch;
    font-size: 17px;
  }

  .home-actions {
    align-items: stretch;
    flex-direction: column;
  }

  .home-actions .glacis-button,
  .home-actions .home-text-link {
    width: 100%;
    box-sizing: border-box;
  }

  .home-text-link {
    justify-content: center;
  }

  .home-microline {
    display: grid;
  }

  .home-problem-line {
    grid-template-columns: 1fr;
    gap: 10px;
  }

  .home-action-row {
    grid-template-columns: 1fr auto;
  }

  .home-action-row > span:first-child {
    grid-column: 1 / -1;
  }

  .home-claims-grid {
    grid-template-columns: 1fr;
  }

  .home-standard-band {
    align-items: flex-start;
    flex-direction: column;
  }
}

@media (prefers-reduced-motion: reduce) {
  html {
    scroll-behavior: auto;
  }

  *,
  *::before,
  *::after {
    animation-duration: 0.001ms !important;
    animation-iteration-count: 1 !important;
    scroll-behavior: auto !important;
    transition-duration: 0.001ms !important;
  }

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

/* The nav theme control ships in the shared header partial so the build step
   cannot strip it from audited pages, but it only renders where the page has
   declared itself theme-ready. See _partials/header.html for the rule. */
.gv2-theme { display: none; }
body[data-theme-ready] .gv2-theme,
body.gv2 .gv2-theme { display: inline-flex; }

/* The header partial ships both wordmarks so a page can swap them by register.
   The dark-register default has to live HERE, in the stylesheet every page
   loads — keeping it only in glacis-v2.css meant every legacy page painted
   "GLACIS GLACIS". */
.glacis-brand-word-lt { display: none; }

/* Bind a coloured sentence stop to its final word. A separate inline span is
   otherwise a legal line-break boundary and can leave a period on its own. */
.glacis-no-break { white-space: nowrap; }

/* Header register must be owned by the shared sheet. Legacy pages do not load
   glacis-v2.css, so leaving this swap there produced either two wordmarks in
   dark mode or a white wordmark on parchment in light mode. */
html[data-theme="light"] .glacis-brand .glacis-brand-word:not(.glacis-brand-word-lt),
body.theme-light .glacis-brand .glacis-brand-word:not(.glacis-brand-word-lt) { display: none; }
html[data-theme="light"] .glacis-brand .glacis-brand-word-lt,
body.theme-light .glacis-brand .glacis-brand-word-lt { display: block; }

/* The nav is shared material too. A theme-ready legacy page can flip its body
   without loading the v2 register map; keep the chrome and drawer in the same
   register as the page. */
html[data-theme="light"] .glacis-nav,
body.theme-light .glacis-nav {
  background: rgba(252, 247, 236, 0.82);
  border-bottom-color: rgba(64, 48, 34, 0.14);
}

html[data-theme="light"] .glacis-nav.is-scrolled,
body.theme-light .glacis-nav.is-scrolled {
  background: rgba(252, 247, 236, 0.96);
  border-bottom-color: rgba(64, 48, 34, 0.20);
}

html[data-theme="light"] .glacis-mobile-menu,
body.theme-light .glacis-mobile-menu {
  background: rgba(252, 247, 236, 0.995);
}

html[data-theme="light"] .glacis-nav-toggle,
html[data-theme="light"] .glacis-mobile-close,
body.theme-light .glacis-nav-toggle,
body.theme-light .glacis-mobile-close {
  color: #17101e;
  border-color: rgba(64, 48, 34, 0.20);
}

html[data-theme="light"] .glacis-mobile-links a,
body.theme-light .glacis-mobile-links a {
  color: #17101e;
  border-bottom-color: rgba(64, 48, 34, 0.13);
}

/* ============================================================
   FOOTER LOCKUP — three real defects, all site-wide
   ------------------------------------------------------------
   1. The statement rendered in Tiempos, not Söhne. `body.aubergine p`
      (0,2,1) in glacis-aubergine.css sets font-family: var(--serif-body)
      and outspecified `.glacis-footer-statement` (0,1,0). The slogan is
      wordmark matter, not prose — it takes Söhne, always.
   2. In the light register the dark wordmark was hidden by a rule expecting a
      light sibling that the footer never had, leaving an orphan shield above a
      floating line of type.
   3. Sizing hung off :first-child / :last-child, so adding the light wordmark
      would have silently unsized the dark one. Now keyed to classes.
   ============================================================ */

html body.aubergine .glacis-footer-statement,
.glacis-footer-statement {
  font-family: var(--display);
  font-weight: 500;
  font-size: 19px;
  line-height: 1.3;
  letter-spacing: -0.011em;
  color: var(--bone);
  /* Hangs off the wordmark's left edge, not the shield's — the slogan is the
     wordmark's second line. Matches the lockup spec on /lockup. */
  margin: 18px 0 0;
  max-width: 26ch;
}

.glacis-footer-lockup img.glacis-footer-mark { width: 42px; height: 42px; }
.glacis-footer-lockup img.glacis-footer-word { width: 124px; height: auto; }
.glacis-footer-word-lt { display: none; }

/* The light-register wordmark swap has to live here, not in glacis-v2.css:
   most pages never load v2, so the dark wordmark was being hidden by a
   page-level rule with no light sibling to take its place — an orphan shield
   above a floating slogan. */
html[data-theme="light"] .glacis-footer-lockup .glacis-footer-word:not(.glacis-footer-word-lt),
body.theme-light .glacis-footer-lockup .glacis-footer-word:not(.glacis-footer-word-lt) { display: none; }
html[data-theme="light"] .glacis-footer-word-lt,
body.theme-light .glacis-footer-word-lt { display: inline-block; }

/* Founder direction 2026-08-11: the shield reads 35% bigger beside the
   wordmark, everywhere the two sit adjacent. CSS wins over the width/height
   attributes the markup carries. */
.glacis-brand-mark { width: 46px; height: 46px; }
@media (max-width: 720px) { .glacis-brand-mark { width: 42px; height: 42px; } }
.glacis-footer-lockup img.glacis-footer-mark { width: 57px; height: 57px; }
