/* Homepage Section 04: cream/red chapter with a restrained dark technical field. */
.home-art .use-case-section.chapter-field {
  --cyan: var(--omni-exposure-ink);
  --cyan-bright: var(--omni-exposure-ink);
  --cyan-soft: #b82e4214;
  --line: #0d2a3421;
  --line-strong: #b82e4252;
  background:
    radial-gradient(circle at 80% 46%, #f25a6817, transparent 25%),
    linear-gradient(180deg, var(--chapter-cream-join), var(--omni-paper-deep));
}

.home-art .use-case-section.chapter-field::before {
  background:
    linear-gradient(
      90deg,
      #b82e42b8 0 47%,
      #84929857 47% 53%,
      #b82e42b8 53% 100%
    ) 50% 0 / var(--chapter-threshold-width) 1px no-repeat,
    linear-gradient(90deg, #05090b, #10070a 50%, #05090b);
}

.home-art .use-case-section.chapter-field::after {
  color: var(--omni-exposure-bright);
}

.home-art .use-case-section .context-editorial::before {
  color: #f25a680b;
}

.home-art .use-case-section .environment-field-visual {
  --visual-path: var(--omni-paper-deep);
  --visual-context: var(--omni-exposure-bright);
  --visual-exposure: var(--omni-exposure);
  --omni-context-line: #f25a6829;
  --omni-context-line-soft: #f25a6821;
  border-color: #f25a683d;
  background:
    radial-gradient(circle at 76% 18%, #f25a681a, transparent 28%),
    linear-gradient(
      145deg,
      var(--omni-obsidian-deep),
      var(--omni-technical-surface) 58%,
      var(--omni-obsidian)
    );
}

.home-art .use-case-section .environment-field-visual::before {
  background-image:
    linear-gradient(#f25a6809 1px, transparent 1px),
    linear-gradient(90deg, #f25a6809 1px, transparent 1px);
}

.home-art .use-case-section .route-boundary {
  border-color: #ff738094;
}

.home-art .use-case-section .route-path {
  background: linear-gradient(90deg, #f4f2ec29, var(--visual-path), #f4f2ec29);
}

.home-art .use-case-section .environment-scene-remote .route-path-primary {
  background: repeating-linear-gradient(
    90deg,
    #f4f2ec33 0 12px,
    transparent 12px 20px,
    var(--visual-path) 20px 28px,
    transparent 28px 36px
  );
}

.home-art .use-case-section .environment-scene-contested .route-path-primary {
  background: linear-gradient(90deg, #f4f2ec2e, var(--omni-exposure) 52%, #f4f2ec29);
}

.home-art .use-case-section .route-endpoint {
  box-shadow: 0 0 16px #f4f2ec3d;
}

.home-art .use-case-section .environment-route-plot::after {
  box-shadow: 0 0 12px #f4f2eca8;
}

.home-art .use-case-section
  .environment-scene-contested
  .environment-route-plot::after {
  background: var(--omni-exposure);
  box-shadow: 0 0 12px #f25a689e;
}

/* Section 02: warm-paper editorial field with a contained dark layer map. */
.home-art .stack-section.chapter-black {
  --bg: var(--omni-paper);
  --surface: var(--omni-paper-raised);
  --surface-2: var(--omni-paper-deep);
  --text: var(--omni-paper-text);
  --muted: var(--omni-paper-muted);
  --muted-2: var(--omni-paper-muted-2);
  --cyan: var(--omni-exposure-ink);
  --cyan-bright: var(--omni-exposure-ink);
  --cyan-soft: #b82e4214;
  --line: #0d2a3421;
  --line-strong: #b82e4242;
  --on-accent: #fff;
  color: var(--text);
  background:
    radial-gradient(circle at 84% 34%, #f25a6814, transparent 26%),
    linear-gradient(180deg, #eeece5 0%, var(--omni-paper) 24%, var(--omni-paper) 100%);
}

.home-art .stack-section.chapter-black::before {
  background: none;
}

.home-art .stack-section .section-index {
  color: var(--omni-exposure-ink);
}

.home-art .stack-section .layer-map {
  --bg: var(--omni-obsidian-deep);
  --surface: var(--omni-technical-surface);
  --surface-2: var(--omni-technical-raised);
  --text: var(--omni-dark-text);
  --muted: #aebbc0;
  --muted-2: #71828a;
  --cyan: var(--omni-path);
  --cyan-bright: var(--omni-path);
  --line: #7ebacd29;
  --line-strong: #7ebacd4d;
  --transport: var(--omni-exposure);
  color: var(--text);
}

/* Section 05: solid black evidence and research field, aligned to the core red and cream palette. */
.home-art .evidence-section.chapter-indigo {
  --bg: #000;
  --surface: #090909;
  --surface-2: #111;
  --text: var(--omni-dark-text);
  --muted: var(--omni-dark-muted);
  --muted-2: var(--omni-dark-subtle);
  --cyan: var(--omni-exposure);
  --cyan-bright: var(--omni-exposure-bright);
  --cyan-soft: #f25a681a;
  --line: #ffffff24;
  --line-strong: #f25a6852;
  --on-accent: #fff;
  --evidence-accent: var(--omni-exposure);
  background: #000;
  border-bottom: 0;
}

.home-art .evidence-section .evidence-path::before {
  background: #f25a688f;
}

.home-art .evidence-section .evidence-step-marker span {
  background: #090909;
  box-shadow: 0 0 36px #f25a681f;
}

.home-art .evidence-research-card > p {
  color: var(--omni-dark-muted);
}

.home-art .evidence-research-card .text-link:hover,
.home-art .evidence-research-card .text-link:focus-visible {
  color: var(--omni-exposure-bright);
}

/* Section 06: solid black contact close. */
.home-art .contact-section.chapter-obsidian {
  --bg: #000;
  --surface: #090909;
  --surface-2: #050505;
  --text: var(--omni-dark-text);
  --muted: var(--omni-dark-muted);
  --muted-2: var(--omni-dark-subtle);
  --cyan: var(--omni-exposure);
  --cyan-bright: var(--omni-exposure-bright);
  --line: #ffffff24;
  --line-strong: #ffffff42;
  --on-accent: #fff;
  color: var(--text);
  background: #000;
}

.home-art .contact-section .contact-form {
  border-top-color: var(--omni-exposure);
  background: #070707;
}

.home-art .contact-section .contact-form input,
.home-art .contact-section .contact-form select,
.home-art .contact-section .contact-form textarea {
  border-color: #ffffff33;
  background: #020202;
}

/* Footer: institutional navigation and assurance close. */
.site-footer {
  position: relative;
  overflow: hidden;
  border-top: 0;
  background: var(--omni-obsidian-deep);
  padding: 76px 0 max(28px, env(safe-area-inset-bottom));
}

.site-footer::before {
  content: "";
  position: absolute;
  top: 0;
  left: 50%;
  width: min(calc(100% - 48px), var(--max));
  height: 1px;
  background: linear-gradient(
    90deg,
    transparent,
    #f25a6866 14%,
    #f25a6866 86%,
    transparent
  );
  transform: translateX(-50%);
}

.site-footer .footer-primary {
  grid-template-columns:
    minmax(220px, 1.05fr)
    minmax(440px, 1.55fr)
    minmax(240px, 0.9fr);
  align-items: start;
  gap: clamp(48px, 6vw, 88px);
  padding-bottom: 48px;
}

.site-footer .footer-identity {
  display: grid;
  align-content: start;
  gap: 28px;
}

.site-footer .footer-identity::after {
  content: "";
  width: 48px;
  height: 1px;
  background: var(--omni-exposure);
}

.site-footer .footer-lockup {
  width: 160px;
}

.site-footer .footer-primary-nav {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  grid-template-rows: auto repeat(4, 44px);
  column-gap: clamp(44px, 5vw, 76px);
  row-gap: 0;
  align-content: start;
}

.site-footer .footer-primary-nav::before {
  align-self: end;
  padding-bottom: 13px;
  color: var(--omni-exposure);
  font: 650 11px/16px var(--font-geist-sans), system-ui, sans-serif;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}

.site-footer .footer-primary-nav::before {
  content: "Explore Omnimesh";
  grid-column: 1 / -1;
  grid-row: 1;
}

.site-footer .footer-primary-nav::after {
  content: none;
}

.site-footer .footer-primary-nav a:nth-child(1) {
  grid-column: 1;
  grid-row: 2;
}

.site-footer .footer-primary-nav a:nth-child(2) {
  grid-column: 1;
  grid-row: 3;
}

.site-footer .footer-primary-nav a:nth-child(3) {
  grid-column: 1;
  grid-row: 4;
}

.site-footer .footer-primary-nav a:nth-child(4) {
  grid-column: 1;
  grid-row: 5;
}

.site-footer .footer-primary-nav a:nth-child(5) {
  grid-column: 2;
  grid-row: 2;
}

.site-footer .footer-primary-nav a:nth-child(6) {
  grid-column: 2;
  grid-row: 3;
}

.site-footer .footer-primary-nav a:nth-child(7) {
  grid-column: 2;
  grid-row: 4;
}

.site-footer .footer-primary-nav a,
.site-footer .footer-contact a {
  min-height: 44px;
  width: max-content;
  max-width: 100%;
  color: var(--omni-dark-text);
  font: 500 15px/22px var(--font-geist-sans), system-ui, sans-serif;
}

.site-footer .footer-primary-nav a:hover,
.site-footer .footer-primary-nav a:focus-visible,
.site-footer .footer-contact a:hover,
.site-footer .footer-contact a:focus-visible {
  color: var(--omni-exposure-bright);
}

.site-footer .footer-primary-nav a:focus-visible,
.site-footer .footer-contact a:focus-visible,
.site-footer .footer-certificate-link:focus-visible,
.site-footer .footer-meta a:focus-visible {
  outline-color: var(--omni-exposure-bright);
}

.site-footer .footer-contact {
  display: grid;
  align-content: start;
  justify-items: start;
  gap: 2px;
}

.site-footer .footer-label {
  margin-bottom: 13px;
  color: var(--omni-exposure);
  font-size: 11px;
  line-height: 16px;
  letter-spacing: 0.12em;
}

.site-footer .footer-email {
  color: var(--omni-dark-text) !important;
  font-size: 15px !important;
  line-height: 22px !important;
}

.site-footer .footer-linkedin {
  color: var(--omni-dark-muted);
}

.site-footer .footer-trust-rail {
  grid-template-columns: 88px minmax(260px, 440px);
  justify-content: start;
  align-items: center;
  gap: 36px;
  border-color: #f4f2ec24;
  padding: 24px 0;
}

.site-footer .footer-badge-shell {
  width: 88px;
  height: 88px;
  overflow: hidden;
}

.site-footer .footer-badge-shell iframe {
  min-height: 132px;
  transform: scale(0.6667);
}

.site-footer .footer-certification-title {
  color: var(--omni-proof);
  font-size: 12px;
  line-height: 17px;
}

.site-footer .footer-certification-copy > p:nth-child(2) {
  margin: 7px 0 8px;
  color: var(--omni-dark-muted);
  font-size: 13px;
  line-height: 20px;
}

.site-footer .footer-certificate-link {
  min-height: 44px;
  color: var(--omni-proof);
  font-size: 12px;
  line-height: 18px;
}

.site-footer .footer-security-route {
  display: none;
}

.site-footer .footer-meta {
  grid-template-columns: minmax(240px, 1fr) auto auto;
  gap: 32px;
  padding-top: 24px;
  color: var(--omni-dark-subtle);
  font-size: 11px;
  line-height: 17px;
}

.site-footer .footer-meta a {
  min-height: 44px;
}

.site-footer .footer-meta a:hover,
.site-footer .footer-meta a:focus-visible {
  color: var(--omni-exposure-bright);
}

.site-footer .footer-principle {
  color: var(--omni-dark-text);
}

@media (max-width: 1120px) {
  .site-footer {
    padding-top: 68px;
  }

  .site-footer .footer-primary {
    grid-template-columns: 200px minmax(0, 1fr);
    gap: 48px 56px;
    padding-bottom: 44px;
  }

  .site-footer .footer-contact {
    grid-column: 1 / -1;
    grid-template-columns: max-content minmax(0, auto) max-content;
    align-items: center;
    gap: 0 28px;
    padding-top: 28px;
    border-top: 1px solid #f4f2ec24;
  }

  .site-footer .footer-contact .footer-label {
    margin: 0;
  }

  .site-footer .footer-trust-rail {
    grid-template-columns: 88px minmax(0, 1fr);
  }

  .site-footer .footer-meta {
    grid-template-columns: minmax(0, 1fr) auto;
  }

  .site-footer .footer-principle {
    grid-column: 1 / -1;
  }
}

@media (max-width: 760px) {
  .site-footer {
    padding-top: 56px;
  }

  .site-footer::before {
    width: calc(100% - 32px);
  }

  .site-footer .footer-primary {
    grid-template-columns: 1fr;
    gap: 32px;
    padding-bottom: 38px;
  }

  .site-footer .footer-lockup {
    width: 144px;
  }

  .site-footer .footer-primary-nav {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    column-gap: 24px;
  }

  .site-footer .footer-contact {
    grid-column: auto;
    grid-template-columns: 1fr;
    align-items: start;
    gap: 2px;
    padding-top: 30px;
  }

  .site-footer .footer-contact .footer-label {
    margin-bottom: 10px;
  }

  .site-footer .footer-trust-rail {
    grid-template-columns: 78px minmax(0, 1fr);
    gap: 18px;
    padding: 24px 0;
  }

  .site-footer .footer-badge-shell {
    width: 78px;
    height: 78px;
  }

  .site-footer .footer-badge-shell iframe {
    transform: scale(0.59);
  }

  .site-footer .footer-meta {
    display: grid;
    grid-template-columns: 1fr;
    gap: 8px;
    padding-top: 22px;
  }

  .site-footer .footer-meta-nav {
    gap: 4px 18px;
  }
}

@media (max-width: 480px) {
  .site-footer::before {
    width: calc(100% - 24px);
  }
}

/* Restore the approved full-colour control-domain map proportions. */
.home-art .stack-section .layer-map {
  background: #01080c;
  box-shadow: none;
}

.home-art .stack-section .transport-row {
  min-height: 140px;
  background: linear-gradient(90deg, #f25a681a, #f25a6806);
}

@media (min-width: 761px) and (max-width: 1080px) {
  .home-art .stack-section .transport-row {
    grid-template-columns: 132px minmax(0, 1fr);
    min-height: 140px;
  }
}

@media (max-width: 760px) {
  .home-art .stack-section .transport-row {
    grid-template-columns: 1fr;
    min-height: 0;
  }
}

/* Remove the decorative 78% guide from the homepage problem chapter. */
.home-art .problem-section.chapter-paper::before {
  content: none;
}

/* Homepage opening: obsidian-to-indigo bookend. */
.home-art .hero.chapter-obsidian {
  background:
    radial-gradient(circle at 78% 48%, #7d68ff24, transparent 30%),
    linear-gradient(
      135deg,
      var(--omni-obsidian-deep) 0%,
      var(--omni-obsidian) 52%,
      var(--omni-research-panel) 100%
    );
}

.home-art .hero.chapter-obsidian::before {
  background:
    linear-gradient(
      90deg,
      transparent 0 57%,
      #a8adff12 57% 57.1%,
      transparent 57.1%
    ),
    linear-gradient(#a8adff0a 1px, transparent 1px) 0 0 / 96px 96px,
    linear-gradient(90deg, #a8adff0a 1px, transparent 1px) 0 0 / 96px 96px;
}

.home-art .hero h1 span {
  color: var(--omni-dark-text);
  background: none;
  -webkit-background-clip: initial;
  background-clip: initial;
  -webkit-text-fill-color: currentColor;
}

@media (max-width: 760px) {
  .home-art .hero.chapter-obsidian::before {
    background-size: auto, 64px 64px, 64px 64px;
  }
}

/* Homepage chapter rhythm: distinct transitions without changing the palette. */
.home-art .stack-section.chapter-black,
.home-art .use-case-section.chapter-field {
  --chapter-hinge-height: 56px;
  --chapter-hinge-width: min(calc(100% - 48px), var(--max));
}

.home-art .stack-section.chapter-black {
  padding-bottom: 96px;
  background:
    radial-gradient(circle at 84% 34%, #f25a6810, transparent 26%),
    var(--omni-paper-deep);
}

.home-art .stack-section.chapter-black::before {
  content: "";
  inset: 0 0 auto;
  height: var(--chapter-hinge-height);
  opacity: 1;
  -webkit-mask-image: none;
  mask-image: none;
  background:
    linear-gradient(
      90deg,
      transparent,
      #f4f2ec38 42% 58%,
      transparent
    ) 50% 0 / var(--chapter-hinge-width) 1px no-repeat,
    linear-gradient(90deg, #010508, #10070a 50%, #010508);
}

.home-art .stack-section.chapter-black::after,
.home-art .use-case-section.chapter-field::after {
  z-index: 2;
  width: var(--chapter-hinge-width);
  height: var(--chapter-hinge-height);
  color: var(--omni-paper);
  font: 650 10px/14px var(--font-geist-sans), system-ui, sans-serif;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  pointer-events: none;
  display: flex;
  justify-content: center;
  align-items: center;
  position: absolute;
  top: 0;
  left: 50%;
  transform: translateX(-50%);
}

.home-art .stack-section.chapter-black::after {
  content: "The existing gap";
}

.home-art .stack-section.chapter-black .section-index {
  display: none;
}

/* Give the technical map a deliberate paper close before Section 03 begins. */
.home-art .stack-section .layer-map {
  margin-bottom: 0;
  border-bottom-color: #f25a684d;
}

/* Section 03 resets to the brightest paper before resolving toward Section 04. */
.home-art .system-section.chapter-silver {
  background:
    radial-gradient(circle at 12% 28%, #f25a6817, transparent 25%),
    linear-gradient(
      180deg,
      var(--omni-paper-raised) 0%,
      var(--omni-paper) 16%,
      var(--chapter-cream-join) 100%
    );
}

/* Section 04 is a deeper paper chapter with an explicit obsidian threshold. */
.home-art .use-case-section.chapter-field {
  background:
    radial-gradient(circle at 80% 46%, #f25a6817, transparent 25%),
    var(--omni-paper-deep);
}

.home-art .use-case-section.chapter-field::before {
  height: var(--chapter-hinge-height);
  background:
    linear-gradient(
      90deg,
      transparent,
      #f4f2ec38 42% 58%,
      transparent
    ) 50% 0 / var(--chapter-hinge-width) 1px no-repeat,
    linear-gradient(90deg, #010508, #10070a 50%, #010508);
}

.home-art .use-case-section.chapter-field::after {
  content: "Operating context";
}

@media (max-width: 1080px) {
  .home-art .stack-section.chapter-black,
  .home-art .use-case-section.chapter-field {
    --chapter-hinge-height: 48px;
  }

  .home-art .stack-section.chapter-black {
    padding-bottom: 80px;
  }
}

@media (max-width: 760px) {
  .home-art .stack-section.chapter-black,
  .home-art .use-case-section.chapter-field {
    --chapter-hinge-height: 44px;
    --chapter-hinge-width: calc(100% - 32px);
  }

  .home-art .stack-section.chapter-black {
    padding-top: 88px;
    padding-bottom: 64px;
  }

  .home-art .stack-section.chapter-black::before {
    background-size: var(--chapter-hinge-width) 1px, auto;
  }
}

/* Evidence-to-contact handoff: a solid black threshold. */
.home-art .contact-section.chapter-obsidian::before {
  content: "";
  inset: 0 0 auto;
  height: 56px;
  opacity: 1;
  -webkit-mask-image: none;
  mask-image: none;
  background: #000;
}

@media (max-width: 1080px) {
  .home-art .contact-section.chapter-obsidian::before {
    height: 48px;
  }
}

@media (max-width: 760px) {
  .home-art .contact-section.chapter-obsidian {
    padding-top: 88px;
  }

  .home-art .contact-section.chapter-obsidian::before {
    height: 44px;
    background-size: calc(100% - 32px) 1px, auto;
  }
}

/* Homepage hero heading: fixed integer pixel scale for predictable wrapping. */
.home-art .hero h1 {
  max-width: 820px;
  font-size: 72px;
  line-height: 74px;
  letter-spacing: -4px;
  overflow-wrap: normal;
  word-break: normal;
  hyphens: none;
  text-wrap: balance;
}

@media (max-width: 1200px) {
  .home-art .hero h1 {
    font-size: 64px;
    line-height: 66px;
    letter-spacing: -4px;
  }
}

@media (max-width: 760px) {
  .home-art .hero h1 {
    max-width: 100%;
    font-size: 52px;
    line-height: 54px;
    letter-spacing: -3px;
  }
}

@media (max-width: 480px) {
  .home-art .hero h1 {
    font-size: 40px;
    line-height: 42px;
    letter-spacing: -2px;
  }
}

@media (max-width: 380px) {
  .home-art .hero h1 {
    font-size: 32px;
    line-height: 34px;
    letter-spacing: -2px;
  }
}
