/* Locally hosted header wordmark font; SIL Open Font License in assets/fonts/michroma. */
@font-face {
  font-family:"Michroma";
  src:url("../fonts/michroma/Michroma-Regular.ttf") format("truetype");
  font-style:normal;
  font-weight:400;
  font-display:swap;
}

:root {
  color-scheme:dark;
  --bg:#16212b;
  --surface:#263746;
  --line:#4a5c6b;
  --text:#edf1f4;
  --muted:#c3ced7;
  --accent:#8dd7e4;
  --width:1200px
}

* {
  box-sizing:border-box
}
html {
  scroll-behavior:smooth;
  scroll-padding-top:110px
}
body {
  margin:0;
  background:var(--bg);
  color:var(--text);
  font-family:Arial,Helvetica,sans-serif;
  line-height:1.65
}
a {
  color:inherit;
  text-underline-offset:5px
}
a:focus-visible,button:focus-visible {
  outline:3px solid var(--accent);
  outline-offset:5px
}
img {
  max-width:100%;
  height:auto
}
button {
  font:inherit
}
h1,h2,h3,p,figure {
  margin:0
}
h1,h2,h3 {
  line-height:1.15
}
h1 {
  font-size:clamp(2.6rem,4.7vw,4.3rem);
  letter-spacing:-.045em;
  font-weight:600
}
h1 span {
  color:var(--accent)
}
h2 {
  font-size:clamp(2rem,3.3vw,3rem);
  letter-spacing:-.035em;
  font-weight:500
}
h3 {
  font-size:1.2rem;
  font-weight:600
}
p {
  color:var(--muted)
}
.container {
  width:min(var(--width),calc(100% - 64px));
  margin-inline:auto
}
.section {
  padding:96px 0;
  scroll-margin-top:0
}
.alternate {
  background:var(--surface)
}
.eyebrow {
  font-size:.75rem;
  font-weight:700;
  letter-spacing:.13em;
  text-transform:uppercase;
  color:var(--accent);
  margin-bottom:24px
}
.section-intro {
  max-width:720px;
  margin-top:24px;
  font-size:1.08rem
}
.split {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:80px
}
.prose p+p {
  margin-top:20px
}
.lead {
  font-size:1.25rem;
  color:var(--text)
}
.audience {
  border-top:1px solid var(--line);
  padding-top:24px
}
.skip-link {
  position:fixed;
  top:8px;
  left:8px;
  padding:12px 20px;
  background:var(--accent);
  color:var(--bg);
  z-index:10;
  transform:translateY(-160%)
}
.skip-link:focus {
  transform:translateY(0)
}
.site-header {
  position:sticky;
  top:0;
  z-index:5;
  background:#01020C;
  border-bottom:1px solid rgb(141 215 228 / 12%)
}
.header-inner {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:24px;
  min-height:92px
}
@media (min-width: 1001px) {
  .header-inner {
    width:min(1280px,calc(100% - 48px));
    gap:20px;
  }
  .header-inner > .brand {
    padding-left:8px;
  }
  .site-header #navigation {
    flex-wrap:nowrap;
    gap:14px;
  }
  .site-header #navigation > a,
  .site-header #navigation > .capabilities-dropdown > .capabilities-disclosure > a {
    white-space:nowrap;
  }
  .site-header #navigation .portal-link {
    display:inline-flex;
    align-items:center;
    gap:.4rem;
    white-space:nowrap;
    flex-shrink:0;
  }
}
@media (min-width: 1001px) and (max-width: 1280px) {
  .site-header #navigation {
    gap:10px;
  }
}
.brand {
  display:flex;
  align-items:center;
  gap:4px;
  text-decoration:none;
  flex-shrink:0
}
.brand img {
  width:128px;
  height:auto;
  object-fit:contain
}
.brand span {
  font-family:"Bahnschrift","Segoe UI",Arial,sans-serif;
  font-size:.96rem;
  line-height:.72;
  color:#00BCFF
}
.site-header nav {
  display:flex;
  align-items:center;
  gap:19px
}
.site-header nav a {
  font-size:.96rem;
  text-decoration:none
}
.site-header nav a:hover,.text-link:hover,.site-footer a:hover {
  color:var(--accent)
}
.portal-link {
  color:var(--accent);
  border:1px solid var(--line);
  padding:10px 14px
}
.menu-toggle {
  background:transparent;
  color:var(--text);
  border:1px solid var(--line);
  padding:8px 14px
}
.hero {
  padding:80px 0 0
}
.hero-grid {
  display:grid;
  grid-template-columns:1.2fr 1fr;
  align-items:center;
  gap:48px
}
.hero-description {
  font-size:1.15rem;
  margin-top:28px;
  max-width:620px
}
.hero-note {
  font-size:.95rem;
  margin-top:20px;
  max-width:580px
}
.actions {
  display:flex;
  flex-wrap:wrap;
  gap:14px;
  margin-top:32px
}
.button {
  display:inline-flex;
  justify-content:center;
  align-items:center;
  gap:24px;
  min-height:48px;
  padding:12px 22px;
  font-size:.9rem;
  font-weight:700;
  text-decoration:none;
  border:1px solid var(--line)
}
.primary {
  color:#101820;
  background:var(--accent);
  border-color:var(--accent)
}
.primary:hover {
  background:#b9e9f1;
  border-color:#b9e9f1
}
.secondary:hover {
  border-color:var(--accent)
}
.hero-figure {
  border:1px solid var(--line);
  background:#0b1220
}
.hero-figure img {
  display:block;
  width:100%
}
.hero-figure figcaption {
  display:flex;
  justify-content:space-between;
  gap:12px;
  padding:18px;
  font-size:.72rem;
  color:var(--muted);
  border-top:1px solid var(--line)
}
.hero-topics {
  display:flex;
  justify-content:space-between;
  gap:20px;
  border-top:1px solid var(--line);
  padding-block:24px;
  margin-top:70px;
  font-size:.78rem;
  color:var(--muted);
  letter-spacing:.04em
}
.workflow {
  padding:0;
  margin:48px 0 0;
  list-style:none;
  display:grid;
  grid-template-columns:repeat(5,minmax(0,1fr));
  border-top:1px solid var(--line)
}
.workflow li {
  padding:28px 20px 0 0;
  position:relative
}
.workflow li+li {
  padding-left:20px;
  border-left:1px solid var(--line)
}
.workflow li:not(:last-child)::after {
  content:'→';
  position:absolute;
  right:10px;
  top:25px;
  color:var(--accent)
}
.step {
  font-size:.8rem;
  color:var(--accent);
  display:block;
  margin-bottom:28px
}
.workflow h3 {
  font-size:1.05rem;
  min-height:2.5em
}
.workflow p {
  font-size:.9rem;
  margin-top:16px
}
.capability-grid {
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:20px;
  margin-top:48px
}
.card {
  border:1px solid var(--line);
  padding:30px
}
.card-index {
  font-size:.7rem;
  text-transform:uppercase;
  letter-spacing:.08em;
  color:var(--accent);
  display:block;
  margin-bottom:26px
}
.card p {
  font-size:.95rem;
  margin-top:16px
}
.card.wide {
  grid-column:1/-1
}
.text-link {
  display:inline-block;
  margin-top:22px;
  font-size:.9rem
}
.twin-diagram {
  margin-top:48px;
  border:1px solid var(--line);
  padding:32px
}
.twin-nodes {
  display:flex;
  align-items:center;
  gap:18px
}
.twin-nodes>div {
  flex:1;
  min-width:0
}
.twin-nodes small {
  display:block;
  color:var(--muted);
  font-size:.8rem;
  margin-top:8px
}
.connector {
  color:var(--accent)
}
.twin-diagram figcaption {
  border-top:1px solid var(--line);
  margin-top:28px;
  padding-top:20px;
  color:var(--muted);
  font-size:.8rem
}
.technology-list {
  margin:48px 0 0
}
.technology-list>div {
  display:grid;
  grid-template-columns:1fr 1.5fr;
  gap:48px;
  padding:24px 0;
  border-top:1px solid var(--line)
}
dt {
  font-size:1.05rem
}
dd {
  margin:0;
  color:var(--muted)
}
.research-grid {
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:40px;
  margin-top:48px
}
.research-grid article {
  border-top:2px solid var(--line);
  padding-top:24px
}
.research-grid p {
  margin-top:18px;
  font-size:.95rem
}
.portal-section {
  border-block:1px solid var(--line)
}
.portal-inner {
  display:grid;
  grid-template-columns:1fr auto;
  gap:80px;
  align-items:center
}
.portal-inner p:not(.eyebrow) {
  max-width:650px;
  margin-top:24px
}
.portal-actions {
  display:flex;
  flex-direction:column;
  align-items:flex-start
}
.contact-note {
  margin-top:32px;
  border-left:2px solid var(--accent);
  padding-left:24px
}
.contact-note h3 {
  font-size:1rem
}
.contact-note p {
  margin-top:12px;
  font-size:.95rem
}
.site-footer {
  padding:56px 0 24px
}
.footer-grid {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:40px
}
.footer-brand {
  font-size:1.5rem;
  font-weight:700;
  letter-spacing:.08em;
  text-decoration:none
}
.footer-grid p {
  font-size:.85rem;
  margin-top:12px
}
.footer-description {
  max-width:320px
}
.footer-grid nav {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:14px;
  font-size:.85rem
}
.footer-grid nav a {
  text-decoration:none
}
.footer-bottom {
  border-top:1px solid var(--line);
  padding-top:24px;
  margin-top:40px;
  display:flex;
  justify-content:space-between;
  gap:20px;
  color:var(--muted);
  font-size:.8rem
}

@media(min-width:1001px) {
  .menu-toggle {
  display:none
}

}

@media(max-width:1100px) {
  .brand span {
  display:none
}
.site-header nav {
  gap:14px
}
.split {
  gap:40px
}

}

@media(max-width:1000px) {
  html {
  scroll-padding-top:90px
}
.header-inner {
  min-height:76px;
  flex-wrap:wrap;
  gap:12px;
  padding-block:12px
}
.site-header nav {
  width:100%;
  flex-wrap:wrap;
  padding:12px 0
}
.site-header nav.menu-collapsed {
  display:none
}
.brand span {
  display:block
}
.hero-grid {
  gap:32px;
  grid-template-columns:1.2fr 1fr
}
.workflow {
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:28px
}
.workflow li+li {
  padding-left:0;
  border-left:0
}
.capability-grid {
  grid-template-columns:repeat(2,minmax(0,1fr))
}
.portal-inner {
  gap:32px
}
.twin-nodes {
  display:grid;
  grid-template-columns:1fr auto 1fr;
  gap:24px
}
.twin-nodes .connector:nth-child(4) {
  display:none
}

}

@media(max-width:700px) {
  .brand img {
  width:85px
}
  .container {
  width:calc(100% - 40px)
}
.section {
  padding:64px 0
}
.hero {
  padding-top:48px
}
.hero-grid,.split,.portal-inner,.footer-grid {
  grid-template-columns:1fr;
  gap:32px
}
.hero-figure {
  max-width:480px
}
.hero-topics {
  flex-direction:column;
  gap:10px;
  margin-top:40px
}
.capability-grid,.research-grid {
  grid-template-columns:1fr
}
.card {
  padding:26px
}
.workflow {
  grid-template-columns:1fr;
  gap:0
}
.workflow li,.workflow li+li {
  padding:24px 0 24px 48px;
  border-bottom:1px solid var(--line)
}
.step {
  position:absolute;
  left:0;
  top:24px;
  margin:0
}
.workflow h3 {
  min-height:0
}
.workflow p {
  margin-top:10px
}
.workflow li:not(:last-child)::after {
  content:'↓';
  top:auto;
  bottom:4px;
  right:0
}
.technology-list>div {
  grid-template-columns:1fr;
  gap:12px
}
.twin-diagram {
  padding:24px
}
.twin-nodes {
  display:flex;
  flex-direction:column;
  align-items:stretch;
  gap:16px
}
.twin-nodes .connector {
  display:block!important;
  text-align:center;
  transform:rotate(90deg);
  align-self:center
}
.portal-actions {
  align-items:stretch
}
.portal-actions .text-link {
  align-self:flex-start
}
.footer-bottom {
  flex-direction:column;
  gap:10px
}
.site-header nav {
  gap:16px 24px
}
.site-header nav a {
  font-size:.9rem
}
.hero-figure figcaption {
  font-size:.7rem
}
.research-grid {
  gap:32px
}

}

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

}

/* Technical figure placeholders: labelled spaces, never simulated evidence. */
.figure-grid {
  display: grid;
  gap: 24px;
  margin-top: 40px;
}
.showcase-grid {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}
.evidence-figure {
  min-width: 0;
  border: 1px solid var(--line);
  background: var(--bg);
}
.figure-placeholder {
  min-height: 260px;
  padding: 28px;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: flex-start;
  gap: 16px;
  border-top: 2px solid var(--accent);
  background-color: #121e28;
  background-image: linear-gradient(#8dd7e40a 1px, transparent 1px), linear-gradient(90deg, #8dd7e40a 1px, transparent 1px);
  background-size: 32px 32px;
}
.placeholder-label {
  color: var(--accent);
  font-size: .7rem;
  letter-spacing: .1em;
  text-transform: uppercase;
}
.figure-placeholder h3 {
  max-width: 30ch;
  font-size: clamp(1.15rem, 2vw, 1.55rem);
}
.figure-placeholder p {
  font-size: .85rem;
}
.placeholder-status {
  margin-top: auto;
  padding: 5px 10px;
  border: 1px dashed var(--line);
  color: var(--muted);
  font-size: .7rem;
}
.evidence-figure figcaption {
  display: block;
  padding: 22px;
  border-top: 1px solid var(--line);
  font-size: .9rem;
}
.evidence-figure figcaption p {
  color: var(--text);
}
.evidence-figure figcaption .figure-note {
  color: var(--muted);
  font-size: .8rem;
  margin-top: 12px;
}
.hero-figure .figure-placeholder {
  min-height: 340px;
}
.technology-figures {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}
.technology-figures .figure-placeholder {
  min-height: 210px;
  padding: 22px;
}
.technology-figures .figure-placeholder h3 {
  font-size: 1.1rem;
}
.research-figures {
  max-width: 760px;
}
.poster-figure .figure-placeholder {
  min-height: 300px;
}
@media (max-width: 1000px) {
  .technology-figures {
    grid-template-columns: 1fr;
  }
}
@media (max-width: 700px) {
  .showcase-grid {
    grid-template-columns: 1fr;
  }
  .hero-figure {
    max-width: none;
  }
  .figure-placeholder, .hero-figure .figure-placeholder, .poster-figure .figure-placeholder {
    min-height: 240px;
    padding: 24px;
  }
  .evidence-figure figcaption {
    padding: 20px;
  }
}

/* Header logo viewer; the company name remains a separate home link. */
.brand-home {
  text-decoration: none;
}
.logo-trigger {
  display: block;
  flex-shrink: 0;
  border: 0;
  padding: 0;
  background: transparent;
  cursor: zoom-in;
}
.logo-trigger img {
  display: block;
}
html.lightbox-open, html.lightbox-open body {
  overflow: hidden;
}
.logo-lightbox {
  width: fit-content;
  max-width: calc(100vw - 32px);
  max-height: calc(100dvh - 32px);
  margin: auto;
  padding: 48px 0 0;
  border: 0;
  background: transparent;
  color: var(--text);
  opacity: 0;
  transform: scale(.98);
  transition: opacity 200ms ease, transform 200ms ease;
}
.logo-lightbox::backdrop {
  background: rgb(0 0 0 / 80%);
  opacity: 0;
  transition: opacity 200ms ease;
}
.logo-lightbox.is-visible {
  opacity: 1;
  transform: scale(1);
}
.logo-lightbox.is-visible::backdrop {
  opacity: 1;
}
.logo-lightbox img {
  display: block;
  width: auto;
  height: auto;
  max-width: min(950px, calc(100vw - 32px));
  max-height: min(80vh, calc(100dvh - 80px));
  object-fit: contain;
}
.lightbox-close {
  position: absolute;
  top: 0;
  right: 0;
  min-height: 40px;
  padding: 6px 14px;
  border: 1px solid var(--line);
  background: var(--bg);
  color: var(--text);
  cursor: pointer;
}
.lightbox-close span {
  margin-left: 12px;
  font-size: 1.2rem;
}
@media (prefers-reduced-motion: reduce) {
  .logo-lightbox, .logo-lightbox::backdrop {
    transition: none;
  }
}

/* Compact academic provenance and publication records. */
.research-background {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 40px;
  margin-top: 32px;
}
.research-background > div {
  min-width: 0;
}
.research-background p {
  margin-top: 16px;
  font-size: .95rem;
}
.research-subsection {
  margin-top: 40px;
  padding-top: 28px;
  border-top: 1px solid var(--line);
}
.research-label {
  font-size: .8rem;
  margin-top: 10px;
}
.publication-list {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0 32px;
  list-style: none;
  padding: 0;
  margin: 20px 0 0;
}
.publication-entry {
  min-width: 0;
  padding: 20px 0;
  border-top: 1px solid var(--line);
}
.publication-meta {
  font-size: .75rem;
}
.publication-meta span {
  color: var(--accent);
}
.publication-meta cite {
  font-style: normal;
}
.publication-entry h4, .current-research h4 {
  font-size: 1rem;
  line-height: 1.5;
  font-weight: 500;
  margin: 12px 0 0;
}
.publication-link {
  display: inline-block;
  margin-top: 12px;
  color: var(--accent);
  font-size: .8rem;
}
.manuscript-list {
  list-style: none;
  padding: 0;
  margin: 0;
}
.manuscript-list li + li {
  margin-top: 24px;
}
.research-status {
  display: inline-block;
  color: var(--accent);
  font-size: .75rem;
  border-left: 2px solid var(--accent);
  padding-left: 10px;
}
.current-research > div h4 {
  margin-top: 0;
}
@media (max-width: 700px) {
  .research-background, .publication-list {
    grid-template-columns: 1fr;
    gap: 24px;
  }
  .publication-list {
    gap: 0;
  }
}

/* Customer-specific model configuration and reporting approach. */
.bespoke-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 40px;
  margin-top: 32px;
}
.bespoke-grid > * {
  min-width: 0;
}
.bespoke-grid p {
  margin-top: 16px;
  font-size: .95rem;
}
.bespoke-privacy {
  border-left: 2px solid var(--accent);
  padding-left: 20px;
}
.bespoke-example {
  align-self: start;
  padding: 28px;
  border: 1px solid var(--line);
  background: var(--surface);
}
.bespoke-example .eyebrow {
  margin-top: 0;
}
.configuration-summary {
  margin: 24px 0 0;
}
.configuration-summary > div {
  border-top: 1px solid var(--line);
  padding: 14px 0;
}
.configuration-summary dt {
  font-size: .9rem;
}
.configuration-summary dd {
  font-size: .85rem;
  margin-top: 4px;
}
.bespoke-example .example-note, .bespoke-grid .service-note {
  font-size: .8rem;
}
.bespoke-details {
  border-top: 1px solid var(--line);
  padding-top: 32px;
}
.bespoke-list {
  padding-left: 20px;
  margin: 16px 0 0;
  color: var(--muted);
  font-size: .9rem;
}
.bespoke-list li + li {
  margin-top: 10px;
}
.bespoke-list li::marker {
  color: var(--accent);
}
.private-workflow {
  display: grid;
  grid-template-columns: repeat(7, minmax(0, 1fr));
  list-style: none;
  margin: 32px 0 0;
  padding: 0;
  border: 1px solid var(--line);
}
.private-workflow li {
  position: relative;
  min-width: 0;
  padding: 18px 26px 18px 16px;
  font-size: .8rem;
}
.private-workflow li + li {
  border-left: 1px solid var(--line);
}
.private-workflow li:not(:last-child)::after {
  content: '→';
  position: absolute;
  right: 8px;
  top: 18px;
  color: var(--accent);
}
@media (max-width: 1000px) {
  .private-workflow {
    grid-template-columns: 1fr;
  }
  .private-workflow li + li {
    border-left: 0;
    border-top: 1px solid var(--line);
  }
  .private-workflow li:not(:last-child)::after {
    content: '↓';
    right: 16px;
  }
}
@media (max-width: 700px) {
  .bespoke-grid {
    grid-template-columns: 1fr;
    gap: 28px;
  }
  .bespoke-example {
    padding: 24px;
  }
}

/* Contact directory only. */
.contact-directory .contact-list {
  margin: 0;
}
.contact-directory .contact-list > div {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  gap: 12px 20px;
  padding: 12px 0;
}
.contact-directory .contact-list > div + div {
  border-top: 1px solid var(--line);
}
.contact-directory .contact-list dt {
  font-size: .9rem;
  line-height: 1.5;
}
.contact-directory .contact-list dd {
  font-size: .9rem;
  line-height: 1.5;
}
.contact-directory .contact-list a {
  color: var(--accent);
  overflow-wrap: anywhere;
}
.contact-directory .contact-list a:hover {
  color: var(--text);
}
.contact-directory > p {
  margin-top: 20px;
  font-size: .8rem;
}
@media (max-width: 700px) {
  .contact-directory .contact-list > div {
    grid-template-columns: 1fr;
    gap: 4px;
  }
}

/* Complete-section background rhythm; the branded header stays darker. */
#top,
#workflow,
#capabilities,
#digital-twin,
#research,
#about,
#contact {
  background: var(--bg);
}
#overview,
#showcase,
#bespoke-models,
#technology,
#portal {
  background: var(--surface);
}
#capabilities .card,
#top .evidence-figure,
#digital-twin .evidence-figure,
#digital-twin .twin-diagram,
#research .evidence-figure {
  background: var(--surface);
}
#bespoke-models .bespoke-example {
  background: var(--bg);
}

/* Secondary back-to-top control inside the existing navigation. */
.header-back-top {
  flex-shrink: 0;
  width: 36px;
  height: 36px;
  padding: 0;
  border: 1px solid var(--line);
  background: transparent;
  color: var(--muted);
  font-size: 1.1rem;
  cursor: pointer;
}
.header-back-top:hover, .header-back-top:focus-visible {
  color: var(--accent);
  border-color: var(--accent);
}

/* Keep the cohesive brand group compact near desktop and mobile breakpoints. */
@media (min-width: 1001px) and (max-width: 1280px) {
  .brand img {
    width: 105px;
  }
  .brand span {
    font-size: .85rem;
  }
  .site-header nav {
    gap: 10px;
  }
  .site-header nav a {
    font-size: .9rem;
  }
}
@media (min-width: 701px) and (max-width: 1000px) {
  .brand img {
    width: 105px;
  }
  .brand span {
    font-size: .9rem;
  }
}
@media (max-width: 700px) {
  .brand span {
    font-size: .85rem;
  }
}

@media (max-width: 1000px) {
  .site-header nav a {
    font-size: .9rem;
  }
}

/* Formulation explanation: concept, paired predictions, concluding window. */
.formulation-sequence {
  margin-top: 48px;
  padding-top: 40px;
  border-top: 1px solid var(--line);
}
.formulation-concept {
  display: grid;
  grid-template-columns: minmax(0, 1.1fr) minmax(0, .9fr);
  gap: 32px;
  align-items: center;
}
.formulation-concept > div > p:not(.eyebrow) {
  margin-top: 20px;
}
.formulation-figure img {
  display: block;
  width: 100%;
  height: auto;
  max-width: 340px;
  margin-inline: auto;
}
.formulation-stage {
  margin-top: 40px;
}
.formulation-property-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 28px;
  margin-top: 24px;
}
.formulation-map-frame {
  aspect-ratio: 4 / 3;
  background: #fff;
  width: 100%;
  max-width: 340px;
  margin-inline: auto;
}
.formulation-map-frame img {
  width: 100%;
  height: 100%;
  object-fit: contain;
}
.formulation-steps {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 24px;
  list-style: none;
  margin: 24px 0;
  padding: 0;
}
.formulation-steps li {
  border-top: 1px solid var(--line);
  padding-top: 16px;
}
.formulation-steps h4 {
  margin: 0;
  font-size: 1rem;
  line-height: 1.5;
  font-weight: 500;
}
.formulation-steps h4 span {
  color: var(--accent);
}
.formulation-steps p {
  margin-top: 10px;
  font-size: .9rem;
}
.formulation-window {
  width: 100%;
  max-width: 480px;
  margin-inline: auto;
}
.formulation-window img {
  max-width: 100%;
}
.formulation-concept .formulation-figure {
  width: 100%;
  max-width: 340px;
  margin-inline: auto;
}
.brand-text {
  display: flex;
  flex-direction: column;
  gap: 0;
}
.brand-text span {
  margin: 0;
  padding: 0;
  line-height: .87;
}
@media (min-width: 701px) and (max-width: 1000px) {
  .formulation-property-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}
@media (max-width: 700px) {
  .formulation-concept,
  .formulation-property-grid,
  .formulation-steps {
    grid-template-columns: 1fr;
  }
  .formulation-window {
    width: 100%;
  }
}

/* Let each formulation result use its full column without cropping. */
.formulation-property-grid .formulation-map-frame {
  max-width: none;
  aspect-ratio: auto;
}
.formulation-property-grid .formulation-figure img {
  width: 100%;
  height: auto;
  max-width: 100%;
  display: block;
}
.formulation-property-grid .formulation-window {
  max-width: none;
}

/* Header emphasis and a geometric, colour-inheriting top control. */
.site-header .brand-text span,
.site-header nav a,
.site-header button {
  font-weight: 600;
}
.header-back-top svg {
  display: block;
  margin-inline: auto;
}

/* Compact conceptual tablet geometry within the Die Compaction capability. */
.tablet-geometry {
  margin-top: 24px;
  padding-top: 20px;
  border-top: 1px solid var(--line);
}
.tablet-geometry h4 {
  margin: 0;
  font-size: 1rem;
  line-height: 1.4;
  font-weight: 600;
}
.tablet-geometry-figure {
  margin-top: 20px;
}
.tablet-geometry-placeholder {
  padding: 16px;
  border-top: 2px solid var(--accent);
  background: var(--bg);
}
.tablet-shapes {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 8px;
  margin-top: 16px;
}
.tablet-shapes svg {
  display: block;
  width: 100%;
  height: auto;
  fill: none;
  stroke: var(--accent);
  stroke-width: 1.5;
}
.tablet-shapes span {
  display: block;
  text-align: center;
  font-size: .7rem;
  line-height: 1.4;
  color: var(--muted);
}
.tablet-geometry-figure figcaption {
  padding: 16px;
}
.tablet-geometry-figure figcaption p {
  margin-top: 0;
  font-size: .8rem;
}

/* Friction model options within the Die Compaction modelling stage. */
.contact-friction {
  margin-top: 24px;
  padding-top: 20px;
  border-top: 1px solid var(--line);
}
.contact-friction h4 {
  margin: 0;
  font-size: 1rem;
  line-height: 1.4;
  font-weight: 600;
}
.friction-options {
  margin: 20px 0 0;
  border: 1px solid var(--line);
}
.friction-options > div {
  padding: 12px 14px;
}
.friction-options > div + div {
  border-top: 1px solid var(--line);
}
.friction-options dt {
  font-size: .85rem;
  line-height: 1.4;
}
.friction-options dd {
  margin-top: 6px;
  font-size: .95rem;
  color: var(--accent);
  overflow-wrap: anywhere;
}
.friction-options dd span {
  display: block;
  margin-top: 4px;
  font-size: .75rem;
  color: var(--muted);
}
.contact-friction .friction-note {
  font-size: .8rem;
}

/* Full-width capability rows, with unboxed explanatory and visual columns. */
.capability-rows {
  margin-top: 48px;
}
.capability-row {
  padding-block: 48px;
  border-top: 1px solid var(--line);
}
.capability-row-inner {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 48px;
  align-items: start;
}
.capability-copy, .capability-visual {
  min-width: 0;
}
.capability-copy > p,
.capability-copy section > p {
  font-size: .95rem;
  margin-top: 16px;
}
.capability-row-reversed .capability-copy {
  grid-column: 2;
  grid-row: 1;
}
.capability-row-reversed .capability-visual {
  grid-column: 1;
  grid-row: 1;
}
.capability-visual {
  display: grid;
  gap: 24px;
}
.capability-visual .tablet-geometry-figure,
.capability-visual .friction-options {
  margin-top: 0;
}
.supporting-capabilities {
  border-top: 1px solid var(--line);
}
.supporting-capability {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 2fr);
  gap: 12px 40px;
  padding-block: 28px;
}
.supporting-capability + .supporting-capability {
  border-top: 1px solid var(--line);
}
.supporting-capability .card-index {
  grid-column: 1;
  margin-bottom: 0;
}
.supporting-capability h3 {
  grid-column: 1;
}
.supporting-capability > p {
  grid-column: 2;
  grid-row: 1 / span 2;
  font-size: .95rem;
}
.supporting-capability .text-link {
  grid-column: 2;
  margin-top: 0;
}
@media (max-width: 700px) {
  .capability-row {
    padding-block: 32px;
  }
  .capability-row-inner,
  .supporting-capability {
    grid-template-columns: 1fr;
    gap: 24px;
  }
  .capability-row-reversed .capability-copy,
  .capability-row-reversed .capability-visual,
  .supporting-capability .card-index,
  .supporting-capability h3,
  .supporting-capability > p,
  .supporting-capability .text-link {
    grid-column: auto;
    grid-row: auto;
  }
}

/* Customer Portal: one dialog with two local-only form states. */
.customer-portal-dialog {
  width: min(1000px, calc(100vw - 32px));
  max-width: none;
  max-height: calc(100dvh - 32px);
  margin: auto;
  padding: 0;
  border: 1px solid var(--line);
  background: var(--bg);
  color: var(--text);
  overflow: auto;
}
.customer-portal-dialog::backdrop {
  background: rgb(0 0 0 / 80%);
}
.portal-dialog-layout {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 2fr);
}
.portal-brand-panel {
  padding: 32px;
  background: #01020c;
}
.portal-brand-panel img {
  display: block;
  width: 96%;
  max-width: none;
  height: auto;
  margin-inline: auto;
  margin-bottom: 24px;
}
.portal-brand-panel h2 {
  font-size: 1.5rem;
}
.portal-brand-panel p {
  margin-top: 20px;
  font-size: .95rem;
}
.portal-brand-panel .portal-onboarding {
  border-top: 1px solid var(--line);
  padding-top: 20px;
  font-size: .8rem;
  color: var(--accent);
}
.portal-form-panel {
  position: relative;
  min-width: 0;
  padding: 72px 32px 32px;
}
.portal-dialog-close {
  position: absolute;
  top: 16px;
  right: 16px;
  min-height: 40px;
  padding: 6px 14px;
  background: var(--surface);
  color: var(--text);
  border: 1px solid var(--line);
  cursor: pointer;
}
.portal-form-panel section > p {
  margin-top: 16px;
  font-size: .95rem;
}
.portal-form-panel form {
  margin-top: 24px;
}
.portal-form-panel label {
  display: block;
  margin-top: 16px;
  font-size: .85rem;
  color: var(--text);
}
.portal-form-panel input:not([type="checkbox"]),
.portal-form-panel select,
.portal-form-panel textarea {
  display: block;
  width: 100%;
  min-height: 44px;
  margin-top: 8px;
  padding: 10px 12px;
  border: 1px solid var(--line);
  border-radius: 0;
  background: var(--surface);
  color: var(--text);
  font: inherit;
  font-size: 1rem;
}
.portal-form-panel textarea {
  resize: vertical;
}
.portal-form-panel input:focus-visible,
.portal-form-panel select:focus-visible,
.portal-form-panel textarea:focus-visible {
  outline: 2px solid var(--accent);
  outline-offset: 2px;
}
.portal-field-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0 20px;
}
.portal-field-grid > div {
  min-width: 0;
}
.portal-form-panel .portal-checkbox {
  display: flex;
  align-items: flex-start;
  gap: 10px;
}
.portal-checkbox input {
  width: 18px;
  height: 18px;
  flex-shrink: 0;
  accent-color: var(--accent);
}
.portal-signin-options {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  margin-top: 16px;
}
.portal-signin-options .portal-checkbox {
  margin: 0;
}
.portal-text-button {
  padding: 0;
  border: 0;
  background: transparent;
  color: var(--accent);
  font: inherit;
  text-decoration: underline;
  text-underline-offset: 4px;
  cursor: pointer;
}
.portal-form-panel form > .button {
  margin-top: 24px;
  cursor: pointer;
}
.portal-form-panel .portal-field-help,
.portal-development-note {
  font-size: .8rem;
  margin-top: 12px;
}
.portal-form-status {
  margin-top: 16px;
  color: var(--accent);
}
html.portal-dialog-open, html.portal-dialog-open body {
  overflow: hidden;
}
@media (max-width: 700px) {
  .portal-dialog-layout, .portal-field-grid {
    grid-template-columns: 1fr;
  }
  .portal-brand-panel {
    padding: 24px;
  }
  .portal-brand-panel img {
    width: 220px;
    max-width: 100%;
    margin-bottom: 16px;
  }
  .portal-form-panel {
    padding: 72px 24px 24px;
  }
}

/* Representative compact families, scoped to the die-compaction visual. */
.compact-geometries h4 {
  margin: 16px 0 0;
  font-size: 1rem;
  line-height: 1.4;
  font-weight: 600;
}
.compact-shapes {
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 20px 12px;
}
@media (max-width: 400px) {
  .compact-shapes {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

/* Powder-compaction hierarchy, retaining existing geometry/friction typography. */
.compaction-subcapability {
  margin-top: 24px;
  padding-top: 20px;
  border-top: 1px solid var(--line);
}
.compaction-subcapability > h4,
.compaction-subcapability .tablet-geometry h5,
.compaction-subcapability .contact-friction h5 {
  margin: 0;
  font-size: 1rem;
  line-height: 1.4;
  font-weight: 600;
}
.compaction-subcapability p {
  margin-top: 16px;
  font-size: .95rem;
}

/* Customer-defined sintering models within the existing capability row. */
.sintering-bespoke {
  margin-top: 24px;
  padding-top: 20px;
  border-top: 1px solid var(--line);
}
.sintering-bespoke h4 {
  margin: 0;
  font-size: 1rem;
  line-height: 1.4;
  font-weight: 600;
}

/* Constitutive-model scope within the bespoke model description. */
.bespoke-constitutive {
  margin-top: 24px;
  padding-top: 20px;
  border-top: 1px solid var(--line);
}

/* Advanced kiln workflow within the existing full-width capability rows. */
.kiln-inputs h4 {
  margin: 0;
  font-size: 1rem;
  line-height: 1.4;
  font-weight: 600;
}
.kiln-inputs p {
  margin-top: 16px;
  font-size: .95rem;
}
.kiln-inputs ul {
  margin: 16px 0 0;
  padding-left: 20px;
  color: var(--muted);
  font-size: .95rem;
}
.kiln-inputs li + li {
  margin-top: 6px;
}
.kiln-inputs li::marker {
  color: var(--accent);
}
.kiln-workflow {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  list-style: none;
  padding: 0;
  margin: 32px 0 0;
  border-top: 1px solid var(--line);
}
.kiln-workflow li {
  position: relative;
  padding: 20px 32px 0 0;
  font-size: .9rem;
}
.kiln-workflow li:not(:last-child)::after {
  content: '→';
  position: absolute;
  right: 12px;
  top: 20px;
  color: var(--accent);
}
@media (max-width: 700px) {
  .kiln-workflow {
    grid-template-columns: 1fr;
  }
  .kiln-workflow li {
    padding: 16px 32px 16px 0;
  }
  .kiln-workflow li:not(:last-child)::after {
    content: '↓';
    top: 16px;
  }
}

/* Bulk solids continuum FEA: input/output summaries and process flow. */
.bulk-solids-details h4 {
  margin: 0;
  font-size: 1rem;
  line-height: 1.4;
  font-weight: 600;
}
.bulk-solids-details ul {
  margin: 16px 0 0;
  padding-left: 20px;
  color: var(--muted);
  font-size: .95rem;
}
.bulk-solids-details li + li {
  margin-top: 6px;
}
.bulk-solids-details li::marker {
  color: var(--accent);
}
.bulk-solids-workflow {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  list-style: none;
  margin: 32px 0 0;
  padding: 0;
  border-top: 1px solid var(--line);
}
.bulk-solids-workflow li {
  position: relative;
  padding: 20px 32px 0 0;
  font-size: .9rem;
}
.bulk-solids-workflow li:not(:last-child)::after {
  content: '→';
  position: absolute;
  right: 12px;
  top: 20px;
  color: var(--accent);
}
@media (max-width: 700px) {
  .bulk-solids-workflow {
    grid-template-columns: 1fr;
  }
  .bulk-solids-workflow li {
    padding: 16px 32px 16px 0;
  }
  .bulk-solids-workflow li:not(:last-child)::after {
    content: '↓';
    top: 16px;
  }
}

/* Compact disclosure navigation, using normal in-page links. */
.capabilities-dropdown {
  position: relative;
}
.capabilities-disclosure {
  display: flex;
  align-items: center;
  gap: 3px;
}
.capabilities-toggle {
  width: 24px;
  height: 36px;
  padding: 0;
  border: 0;
  background: transparent;
  color: var(--muted);
  cursor: pointer;
}
.capabilities-toggle:hover, .capabilities-toggle:focus-visible {
  color: var(--accent);
}
.capabilities-submenu {
  position: absolute;
  top: 100%;
  left: 0;
  width: 310px;
  max-width: calc(100vw - 40px);
  max-height: calc(100dvh - 120px);
  overflow-y: auto;
  margin: 0;
  padding: 8px;
  list-style: none;
  border: 1px solid var(--line);
  background: #01020c;
}
.site-header .capabilities-submenu a {
  display: block;
  min-height: 44px;
  padding: 10px 12px;
  font-size: .85rem;
  line-height: 1.4;
}
.site-header .capabilities-submenu a:hover,
.site-header .capabilities-submenu a:focus-visible {
  background: var(--surface);
  color: var(--accent);
}
@media (max-width: 1000px) {
  .capabilities-dropdown {
    width: 100%;
  }
  .capabilities-disclosure {
    justify-content: space-between;
  }
  .capabilities-toggle {
    width: 44px;
    height: 44px;
  }
  .capabilities-submenu {
    position: static;
    width: 100%;
    max-width: none;
    max-height: 45dvh;
    margin-top: 4px;
  }
}

/* Grouped capability links: powder processing left, related families right. */
.capabilities-submenu.capabilities-grouped {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 16px;
  width: 600px;
  padding: 16px;
}
.capabilities-submenu.capabilities-grouped[hidden] {
  display: none;
}
.capabilities-group:first-child {
  grid-row: span 3;
}
.capabilities-group > ul {
  list-style: none;
  margin: 8px 0 0;
  padding: 0;
}
.site-header .capabilities-group-title {
  margin: 0;
  padding: 0 12px 8px;
  border-bottom: 1px solid var(--line);
  color: var(--accent);
  font-size: .72rem;
  line-height: 1.4;
  font-weight: 600;
  letter-spacing: .04em;
}
@media (max-width: 1000px) {
  .capabilities-submenu.capabilities-grouped {
    grid-template-columns: 1fr;
    width: 100%;
  }
  .capabilities-group:first-child {
    grid-row: auto;
  }
}

/* Homepage previews progressively enhance into grouped slides. */
.capability-carousel { margin-block: 32px; }
.carousel-track, .carousel-group { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 28px; }
.capability-preview { min-width: 0; border: 1px solid var(--line); background: var(--surface); }
.capability-preview > a { display: block; height: 100%; padding: 20px; text-decoration: none; }
.capability-preview h3 { margin-top: 20px; }
.capability-preview p { margin-top: 12px; font-size: .95rem; }
.capability-preview .text-link { display: inline-block; margin-top: 20px; }
.capability-preview > a:hover { border-color: var(--accent); color: var(--accent); }
.capability-preview-visual { min-height: 150px; display: flex; flex-direction: column; justify-content: center; gap: 24px; border-block: 1px solid var(--line); }
.capability-preview-visual img { display: block; width: 100%; height: 150px; object-fit: contain; }
.preview-diagram { color: var(--accent); font-size: .85rem; }
.carousel-controls { align-items: center; gap: 12px; flex-wrap: wrap; margin-bottom: 20px; }
.carousel-controls:not([hidden]) { display: flex; }
.carousel-controls button { min-height: 44px; padding: 8px 14px; border: 1px solid var(--line); background: var(--bg); color: var(--text); cursor: pointer; }
.carousel-controls button:hover { color: var(--accent); border-color: var(--accent); }
.carousel-position { margin-left: auto; color: var(--muted); font-size: .85rem; }
.carousel-enhanced .carousel-viewport { overflow: hidden; touch-action: pan-y; cursor: grab; }
.carousel-enhanced .carousel-viewport.is-dragging { cursor: grabbing; user-select: none; }
.carousel-enhanced .carousel-track { display: flex; gap: 0; transition: transform 600ms ease; }
.carousel-group { flex: 0 0 100%; min-width: 0; align-items: stretch; }
.carousel-group.is-final-pair { grid-template-columns: repeat(6, minmax(0, 1fr)); }
.carousel-group.is-final-pair > :first-child { grid-column: 2 / span 2; }
.carousel-group.is-final-pair > :last-child { grid-column: 4 / span 2; }
.carousel-enhanced .is-dragging .carousel-track { transition: none; }

.capabilities-page #bespoke-engineering { background: var(--surface); }
.capabilities-page #bespoke-engineering .bespoke-example { background: var(--bg); }
.visually-hidden { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
@media (max-width: 1000px) {
  .carousel-track, .carousel-group { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 700px) {
  .carousel-track, .carousel-group { grid-template-columns: 1fr; }
  .carousel-position { margin-left: 0; }
}
@media (prefers-reduced-motion: reduce) {
  .carousel-enhanced .carousel-track { transition: none; }
}

/* Shared grouped capability directory and detailed-page index. */
.capability-directory, .capability-index { margin-block: 32px; }
.capability-directory > h3, .capability-index > h2 { margin-bottom: 20px; }
.capability-directory-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; }
.capability-directory-group { min-width: 0; border-top: 1px solid var(--line); }
.capability-directory-group > h3, .capability-directory-group > h4 { margin: 0; padding: 16px 12px; color: var(--accent); font-size: .75rem; line-height: 1.4; font-weight: 600; letter-spacing: .06em; text-transform: uppercase; }
.capability-directory-group ul { list-style: none; margin: 0; padding: 0; }
.capability-directory-group a { display: flex; justify-content: space-between; align-items: center; gap: 12px; min-height: 44px; padding: 12px; font-size: .9rem; line-height: 1.4; text-decoration: none; }
.capability-directory-group a > :last-child { flex-shrink: 0; color: var(--accent); }
.capability-directory-group a:hover, .capability-directory-group a:focus-visible { color: var(--accent); background: rgba(141, 215, 228, .10); }
.capability-index .capability-directory-group { border-top: 1px solid var(--line); }
@media (max-width: 1000px) { .capability-directory-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 700px) { .capability-directory-grid { grid-template-columns: 1fr; } }

/* Restrained technical directory rows and labelled physics badges. */
.capability-directory-group li { background: rgba(237, 241, 244, .025); }
.capability-directory-group li:nth-child(even) { background: rgba(237, 241, 244, .055); }
.capability-directory-group li + li { border-top: 1px solid rgba(195, 206, 215, .10); }
.capability-directory-group a > :first-child { min-width: 0; overflow-wrap: break-word; }
.capability-row-meta, .capability-physics-tags { display: inline-flex; align-items: center; gap: 6px; flex-shrink: 0; }
.capability-row-meta { gap: 10px; }
.physics-chip { display: inline-flex; align-items: center; justify-content: center; padding: 2px 5px; border: 1px solid currentColor; border-radius: 3px; font-size: .7rem; line-height: 1.3; font-weight: 600; }
.physics-mechanical { color: #99d8ae; background: rgba(153, 216, 174, .06); }
.physics-thermal { color: #f2aaa6; background: rgba(242, 170, 166, .06); }
.capability-physics-legend { display: flex; flex-wrap: wrap; align-items: center; gap: 12px 20px; margin-bottom: 18px; color: var(--muted); font-size: .8rem; }
.capability-physics-legend > span { display: inline-flex; align-items: center; gap: 8px; }

/* Homepage semantic sections alternate independently of cards and other pages. */
body:not(.capabilities-page) > main > #top,
body:not(.capabilities-page) > main > #workflow,
body:not(.capabilities-page) > main > #capabilities,
body:not(.capabilities-page) > main > #technology,
body:not(.capabilities-page) > main > #security,
body:not(.capabilities-page) > main > #about { background: var(--bg); }
body:not(.capabilities-page) > main > #overview,
body:not(.capabilities-page) > main > #showcase,
body:not(.capabilities-page) > main > #digital-twin,
body:not(.capabilities-page) > main > #research,
body:not(.capabilities-page) > main > #portal,
body:not(.capabilities-page) > main > #contact { background: var(--surface); }
.capability-coupling-note { margin: -6px 0 18px; font-size: .8rem; }

/* Active top-level navigation: no spacing or layout changes. */
#navigation > a:not(.portal-link),
#navigation > .capabilities-dropdown > .capabilities-disclosure > a {
  position: relative;
  transition: color 200ms ease;
}
#navigation > a:not(.portal-link)::after,
#navigation > .capabilities-dropdown > .capabilities-disclosure > a::after {
  content: '';
  position: absolute;
  inset-inline: 0;
  bottom: -4px;
  height: 1px;
  background: var(--accent);
  opacity: 0;
  transform: scaleX(.85);
  transition: opacity 200ms ease, transform 200ms ease;
  pointer-events: none;
}
#navigation > a[aria-current]:not(.portal-link),
#navigation > .capabilities-dropdown > .capabilities-disclosure > a[aria-current] { color: var(--accent); }
#navigation > a[aria-current]:not(.portal-link)::after,
#navigation > .capabilities-dropdown > .capabilities-disclosure > a[aria-current]::after { opacity: 1; transform: scaleX(1); }
@media (prefers-reduced-motion: reduce) {
  #navigation > a:not(.portal-link),
  #navigation > a:not(.portal-link)::after,
  #navigation > .capabilities-dropdown > .capabilities-disclosure > a,
  #navigation > .capabilities-dropdown > .capabilities-disclosure > a::after { transition: none; }
}

/* Viscoplastic constitutive tag shares the existing compact badge geometry. */
.physics-viscoplastic { color: #a5bfdc; background: rgba(165, 191, 220, .06); }
.physics-legend-label { font-weight: 600; }

/* Digital Twin: two measurement pathways and a restrained conceptual flow. */
#digital-twin .twin-use-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 40px; margin-top: 32px; }
#digital-twin .twin-use-grid > section { min-width: 0; padding-top: 24px; border-top: 1px solid var(--line); }
#digital-twin .twin-use-grid p { margin-top: 16px; font-size: .95rem; }
#digital-twin .twin-measurement-flow { display: grid; grid-template-columns: 1fr 1fr 1.5fr 1fr 1fr; gap: 24px; list-style: none; margin: 0; padding: 0; font-size: .9rem; }
#digital-twin .twin-measurement-flow li { position: relative; min-width: 0; padding-right: 16px; }
#digital-twin .twin-measurement-flow li:not(:last-child)::after { content: '→'; position: absolute; right: -12px; top: 0; color: var(--accent); }
#digital-twin .twin-experiment-note { margin-top: 24px; padding-left: 16px; border-left: 1px solid var(--line); }
#digital-twin .twin-experiment-note h3 { font-size: .95rem; }
#digital-twin .twin-experiment-note p, #digital-twin .twin-context, #digital-twin .twin-qualification { margin-top: 12px; font-size: .9rem; }
@media (max-width: 1000px) { #digital-twin .twin-measurement-flow { grid-template-columns: 1fr; gap: 20px; } #digital-twin .twin-measurement-flow li:not(:last-child)::after { content: '↓'; right: 0; } }
@media (max-width: 700px) { #digital-twin .twin-use-grid { grid-template-columns: 1fr; gap: 24px; } }

/* Detailed Digital Twin approaches: preserve full scientific image canvases. */
.capabilities-page .dt-detail-section { background: var(--surface); }
.dt-approach { margin-top: 40px; padding-top: 32px; border-top: 1px solid var(--line); }
.dt-approach p:not(.card-index) { margin-top: 16px; color: var(--muted); font-size: .95rem; }
.dt-figure-pair, .dt-ann-intro { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 32px; align-items: start; }
.dt-figure-pair { margin-top: 28px; }
.dt-ann-intro > div { min-width: 0; }
.dt-research-figure { min-width: 0; }
.dt-research-figure img { display: block; width: 100%; max-width: 520px; height: auto; margin-inline: auto; }
.dt-research-figure figcaption { margin-top: 12px; padding-top: 12px; border-top: 1px solid var(--line); color: var(--muted); font-size: .85rem; }
.dt-scope-note { margin-top: 28px; font-size: .9rem; }
#digital-twin .twin-detail-link { margin-top: 16px; }
@media (max-width: 800px) { .dt-figure-pair, .dt-ann-intro { grid-template-columns: 1fr; gap: 24px; } }

/* Matched Digital Twin pairs: equal media heights with uncropped images. */
.dt-figure-pair.figure-grid { align-items: stretch; }
.dt-figure-pair .figure-card { min-width: 0; display: flex; flex-direction: column; }
.dt-figure-pair .figure-media { display: flex; align-items: center; justify-content: center; height: 420px; padding: 16px; background: var(--bg); border: 1px solid var(--line); }
.dt-figure-pair .figure-media img { display: block; max-width: 100%; max-height: 100%; width: auto; height: auto; object-fit: contain; margin: 0; }
.dt-figure-pair .figure-caption { flex: 1; margin: 0; padding: 16px 0 0; border-top: 0; }
@media (max-width: 800px) { .dt-figure-pair .figure-media { height: 340px; } }
@media (max-width: 480px) { .dt-figure-pair .figure-media { height: 280px; padding: 12px; } }

/* Capabilities-only technical figure system, based on formulation cards. */
.capabilities-page .figure-card { display: flex; flex-direction: column; min-width: 0; border: 1px solid var(--line); background: var(--bg); }
.capabilities-page .figure-card > .figure-media { min-width: 0; background: var(--bg); }
.capabilities-page .figure-card > .figure-caption { flex: 1; display: block; margin: 0; padding: 22px; border-top: 1px solid var(--line); background: var(--surface); }
.capabilities-page .figure-card > .figure-caption strong { display: block; color: var(--text); font-size: .95rem; font-weight: 600; line-height: 1.4; }
.capabilities-page .figure-card > .figure-caption p { margin: 8px 0 0; color: var(--muted); font-size: .85rem; line-height: 1.6; }
.capabilities-page .dt-figure-pair .figure-media { border: 0; }
.capabilities-page .formulation-property-grid, .capabilities-page .dt-figure-pair { align-items: stretch; }
.capabilities-page .dt-ann-intro { align-items: stretch; }
@media (max-width: 700px) { .capabilities-page .figure-card > .figure-caption { padding: 18px; } }

/* Capabilities local navigation stays below the unchanged main header. */
html:has(.capability-subnav) { scroll-padding-top: calc(var(--capability-header-height, 92px) + var(--capability-subnav-height, 48px) + 16px); }
.capability-subnav { position: sticky; top: var(--capability-header-height, 92px); z-index: 4; background: var(--bg); border-bottom: 1px solid var(--line); }
.capability-subnav-scroll { display: flex; align-items: stretch; gap: 20px; height: 47px; overflow-x: auto; overscroll-behavior-x: contain; scrollbar-width: thin; scrollbar-color: var(--line) transparent; }
.capability-subnav a { position: relative; display: inline-flex; align-items: center; flex: 0 0 auto; padding: 0 3px; color: var(--muted); font-size: .8rem; line-height: 1.3; white-space: nowrap; text-decoration: none; transition: color 200ms ease; }
.capability-subnav a::after { content: ''; position: absolute; inset-inline: 3px; bottom: 5px; height: 1px; background: var(--accent); opacity: 0; transform: scaleX(.85); transition: opacity 200ms ease, transform 200ms ease; }
.capability-subnav a:hover, .capability-subnav a[aria-current="location"] { color: var(--accent); }
.capability-subnav a[aria-current="location"]::after { opacity: 1; transform: scaleX(1); }
.capability-subnav a:focus-visible { outline: 2px solid var(--accent); outline-offset: -2px; }
@media (max-width: 1000px) { .capability-subnav-scroll { height: 43px; gap: 16px; } }
@media (prefers-reduced-motion: reduce) { .capability-subnav a, .capability-subnav a::after { transition: none; } }

/* Digital Twin presentation: supporting figures stay compact on wide screens. */
.capabilities-page .dt-detail-section .dt-figure-pair { width: 78%; margin-inline: auto; }
.capabilities-page .dt-detail-section .dt-figure-pair .figure-card { width: 100%; max-width: 580px; justify-self: center; }
.capabilities-page .dt-detail-section .dt-figure-pair .figure-media { height: 350px; }
.capabilities-page .dt-detail-section .dt-ann-intro { grid-template-columns: 1fr; }
.capabilities-page .dt-detail-section .dt-ann-intro > .figure-card { width: 72%; max-width: 900px; margin-inline: auto; }
.capabilities-page .dt-detail-section .dt-ann-intro .figure-media { display: flex; align-items: center; justify-content: center; padding: 16px; }
.capabilities-page .dt-detail-section .dt-ann-intro .figure-media img { width: auto; height: auto; max-width: 100%; max-height: 400px; object-fit: contain; margin: 0; }
.capabilities-page .dt-detail-section .figure-card > .figure-caption { padding: 18px; }
@media (max-width: 1100px) {
  .capabilities-page .dt-detail-section .dt-figure-pair { width: 100%; }
  .capabilities-page .dt-detail-section .dt-figure-pair .figure-card { max-width: none; }
  .capabilities-page .dt-detail-section .dt-ann-intro > .figure-card { width: 92%; max-width: none; }
}
@media (max-width: 800px) {
  .capabilities-page .dt-detail-section .dt-ann-intro > .figure-card { width: 100%; }
  .capabilities-page .dt-detail-section .dt-figure-pair .figure-media { height: 340px; }
  .capabilities-page .dt-detail-section .dt-ann-intro .figure-media img { max-height: none; }
}
@media (max-width: 480px) {
  .capabilities-page .dt-detail-section .dt-figure-pair .figure-media { height: 280px; }
  .capabilities-page .dt-detail-section .figure-card > .figure-caption { padding: 16px; }
}

/* Opt-in justification for longer technical prose; captions and UI stay unchanged. */
p.technical-body-text { text-align: justify; text-justify: inter-word; hyphens: auto; }
@media (max-width: 700px) { p.technical-body-text { text-align: left; text-justify: auto; hyphens: manual; } }

/* Experimental measurement analysis extends the supporting-capability layout. */
.experimental-analysis-content { grid-column: 2; grid-row: 1 / span 2; min-width: 0; }
.experimental-analysis-content p { font-size: .95rem; }
.experimental-analysis-content > p + p, .experimental-analysis-content > div + p { margin-top: 20px; }
.experimental-analysis-lists { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px; margin-block: 24px; }
.experimental-analysis-lists h4 { margin: 0; font-size: 1rem; line-height: 1.4; font-weight: 600; }
.experimental-analysis-lists p { margin-top: 12px; }
.experimental-analysis-lists ul { margin: 16px 0 0; padding-left: 20px; color: var(--muted); font-size: .9rem; }
.experimental-analysis-lists li + li { margin-top: 6px; }
.experimental-analysis-lists li::marker { color: var(--accent); }
@media (max-width: 700px) { .experimental-analysis-content { grid-column: auto; grid-row: auto; } .experimental-analysis-lists { grid-template-columns: 1fr; } }

/* Actual major capability rows form alternating full-width bands. */
.capabilities-page [data-capability-band="a"] { --capability-band-background: var(--bg); }
.capabilities-page [data-capability-band="b"] { --capability-band-background: var(--surface); }
.capabilities-page [data-capability-band] { position: relative; isolation: isolate; }
.capabilities-page [data-capability-band]::before { content: ''; position: absolute; inset: 0; z-index: -1; pointer-events: none; background: var(--capability-band-background); box-shadow: 0 0 0 100vmax var(--capability-band-background); clip-path: inset(0 -100vmax); }
.capabilities-page #digital-twin[data-capability-band], .capabilities-page #bespoke-engineering[data-capability-band] { background: var(--capability-band-background); }
.capabilities-page .capability-row[data-capability-band] { padding-block: 56px; }
.capabilities-page .supporting-capability[data-capability-band] { padding-block: 40px; }
.capabilities-page #capabilities { padding-bottom: 0; }
@media (max-width: 700px) {
  .capabilities-page .capability-row[data-capability-band], .capabilities-page .supporting-capability[data-capability-band] { padding-block: 32px; }
}

/* Constitutive calibration extends the existing supporting-capability rows. */
.calibration-content { grid-column: 2; grid-row: 1 / span 2; min-width: 0; }
.calibration-content p { font-size: .95rem; }
.calibration-content > p + p { margin-top: 16px; }
.calibration-content h4 { margin: 0; font-size: 1rem; font-weight: 600; line-height: 1.4; }
.calibration-content section p { margin-top: 12px; }
.calibration-content ul { margin: 16px 0 0; padding-left: 20px; color: var(--muted); font-size: .9rem; }
.calibration-content li + li { margin-top: 6px; }
.calibration-content li::marker { color: var(--accent); }
.calibration-targets, .calibration-details { margin-block: 24px; }
.calibration-details { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px; }
.calibration-examples > section { padding-top: 16px; border-top: 1px solid var(--line); }
.calibration-workflow { grid-column: 1 / -1; display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 24px; list-style: none; margin: 12px 0 0; padding: 20px 0 0; border-top: 1px solid var(--line); }
.calibration-workflow li { position: relative; min-width: 0; padding-right: 16px; font-size: .9rem; }
.calibration-workflow li:not(:last-child)::after { content: '→'; position: absolute; right: -8px; top: 0; color: var(--accent); }
@media (max-width: 700px) {
  .calibration-content { grid-column: auto; grid-row: auto; }
  .calibration-details, .calibration-workflow { grid-template-columns: 1fr; }
  .calibration-workflow li:not(:last-child)::after { content: '↓'; right: 0; }
}

/* Shared capabilities heading groups: labels and titles never split grid rows. */
.capabilities-page .capability-heading { display: flex; flex-direction: column; gap: 12px; min-width: 0; align-self: start; }
.capabilities-page .capability-heading > .card-index, .capabilities-page .capability-heading > .eyebrow { margin: 0; }
.capabilities-page .capability-heading > h2, .capabilities-page .capability-heading > h3 { margin: 0; }
.capabilities-page .supporting-capability, .capabilities-page .capability-row-inner, .capabilities-page .bespoke-grid { align-items: start; }
.capabilities-page .supporting-capability > .capability-heading { grid-column: 1; grid-row: 1; }
.capabilities-page .supporting-capability > .capability-body { grid-column: 2; grid-row: 1; min-width: 0; }
.capabilities-page .capability-body > p { font-size: .95rem; }
.capabilities-page .capability-body > .text-link { display: inline-block; margin-top: 16px; }
@media (max-width: 700px) {
  .capabilities-page .supporting-capability > .capability-heading,
  .capabilities-page .supporting-capability > .capability-body { grid-column: auto; grid-row: auto; }
}

/* Introductory directory and individual capability bands are independent. */
.capabilities-page #capabilities.capabilities-intro { padding-block: 64px; background: var(--surface); border-bottom: 1px solid var(--line); }
.capabilities-page .capabilities-intro .capability-index { margin-bottom: 0; }
.capabilities-page main > .capability-section { padding-block: 56px; background: var(--capability-band-background); border-bottom: 1px solid var(--line); }
.capabilities-page main > .capability-section::before { content: none; }
.capabilities-page .capability-section .supporting-capability { padding: 0; border: 0; }
.capabilities-page .capability-section .capability-heading > h2 { font-size: clamp(2rem, 3vw, 3rem); font-weight: 700; line-height: 1.1; overflow-wrap: break-word; }
.capabilities-page .capability-section .capability-heading { margin-bottom: 20px; }
.capabilities-page .capability-section .capability-detail > .capability-heading { margin-bottom: 20px; }
.capabilities-page .capability-section .capability-copy > p + p { margin-top: 16px; }
.capabilities-page .capability-section .dt-scope-note { margin-top: 28px; }
@media (max-width: 700px) {
  .capabilities-page #capabilities.capabilities-intro { padding-block: 40px; }
  .capabilities-page main > .capability-section { padding-block: 36px; }
  .capabilities-page .capability-section .capability-heading > h2 { font-size: clamp(1.6rem, 6vw, 2rem); }
}

/* Capability identity left; all descriptive and technical content right. */
.capabilities-page .capability-section-grid { display: grid; grid-template-columns: minmax(0, 35fr) minmax(0, 65fr); gap: 32px 48px; align-items: start; }
.capabilities-page .capability-section-grid > .capability-heading { grid-column: 1; align-self: start; margin: 0; }
.capabilities-page {
  --capability-identity-top: calc(var(--capability-header-height, 92px) + var(--capability-subnav-height, 48px) + 16px);
}
@media (min-width: 1001px) {
  .capabilities-page .capability-section-grid > .capability-heading[data-sticky-fit] {
    position: sticky;
    top: var(--capability-identity-top);
  }
}
.capabilities-page .capability-heading > .capability-title-schematic {
  width: 420px; max-width: calc(100% + 24px); height: auto; min-height: 0;
  aspect-ratio: 12 / 7; padding: 0; align-self: flex-start;
  background: transparent;
}
.capabilities-page .capability-title-schematic > .dtvl-capability-svg {
  width: 100%; max-width: 100%; height: auto; aspect-ratio: 12 / 7;
}
.capabilities-page .capability-section-content { grid-column: 2; min-width: 0; }
.capabilities-page .capability-section-content > .capability-copy:empty { display: none; }
.capabilities-page .capability-section-content > .capability-visual { margin-top: 28px; }
.capabilities-page .capability-section-content > p + p { margin-top: 16px; }
.capabilities-page .capability-section-content > .section-intro:first-child { margin-top: 0; }

/* Shared major-subsection rhythm, based on the Sintering content treatment. */
.capabilities-page .capability-section-content {
  --capability-content-gap: 16px;
  --capability-subsection-gap: 24px;
  --capability-subsection-padding: 20px;
}
.capabilities-page .capability-section-content .capability-content-section {
  margin-top: var(--capability-subsection-gap);
  margin-bottom: 0;
  padding-top: var(--capability-subsection-padding);
  border-top: 1px solid var(--line);
}
.capabilities-page .capability-content-section > :is(h3, h4, h5) {
  margin: 0 0 var(--capability-content-gap);
  font-size: 1rem;
  line-height: 1.4;
  font-weight: 600;
}
.capabilities-page .capability-section-content :is(.capability-copy, .capability-body, .bespoke-model-copy) > p,
.capabilities-page .capability-content-section > p {
  margin-top: var(--capability-content-gap);
}
.capabilities-page .capability-content-section > :is(ul, ol) {
  margin-block: var(--capability-content-gap);
}
.capabilities-page .capability-content-section > :is(ul, ol) > li + li {
  margin-top: 6px;
}
.capabilities-page .capability-content-section > :last-child { margin-bottom: 0; }
.capabilities-page .capability-section-content :is(.calibration-details, .experimental-analysis-lists) {
  margin-block: 0;
}
.capabilities-page .capability-section-content > .capability-visual:has(> .capability-content-section) {
  margin-top: 0;
}
.capabilities-page .capability-section-content > .bespoke-details {
  border-top: 0;
  padding-top: 0;
}
@media (max-width: 1000px) {
  .capabilities-page .capability-section-grid { grid-template-columns: 1fr; gap: 24px; }
  .capabilities-page .capability-section-grid > .capability-heading,
  .capabilities-page .capability-section-content { grid-column: auto; }
  .capabilities-page .capability-heading > .capability-title-schematic { max-width: 100%; }
}

/* Compact Die Compaction geometry cards; other figures are unchanged. */
.capabilities-page #die-compaction .tablet-geometry-figure,
.capabilities-page #die-compaction .compact-geometries { width: 72%; margin-inline: auto; }
.capabilities-page #die-compaction .tablet-shapes svg { width: 68%; height: auto; margin-inline: auto; }
@media (max-width: 1000px) {
  .capabilities-page #die-compaction .tablet-geometry-figure,
  .capabilities-page #die-compaction .compact-geometries { width: 92%; }
  .capabilities-page #die-compaction .tablet-shapes svg { width: 80%; }
}
@media (max-width: 700px) {
  .capabilities-page #die-compaction .tablet-geometry-figure,
  .capabilities-page #die-compaction .compact-geometries { width: 100%; }
  .capabilities-page #die-compaction .tablet-shapes svg { width: 90%; }
}

/* Digital Twin is one capability with two subordinate, equally weighted routes. */
.capabilities-page #digital-twin .capability-heading > h2 { font-size: clamp(2.6rem, 3.2vw, 3rem); }
.capabilities-page .dt-concept-title { margin-bottom: 16px; font-size: 1.5rem; font-weight: 600; line-height: 1.25; }
.capabilities-page #digital-twin-constitutive .capability-heading > h3,
.capabilities-page #digital-twin-ann .capability-heading > h3 { font-size: clamp(2rem, 2.5vw, 2.35rem); font-weight: 700; line-height: 1.1; overflow-wrap: break-word; }
@media (max-width: 700px) {
  .capabilities-page #digital-twin .capability-heading > h2 { font-size: 2rem; }
  .capabilities-page .dt-concept-title { font-size: 1.2rem; }
  .capabilities-page #digital-twin-constitutive .capability-heading > h3,
  .capabilities-page #digital-twin-ann .capability-heading > h3 { font-size: clamp(1.5rem, 5vw, 1.8rem); }
}

/* Section-specific paired layouts; global figure cards remain unchanged. */
.capabilities-page #die-compaction .die-compaction-figure-grid,
.capabilities-page #silo-discharge .silo-figure-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.5rem; align-items: start; }
.capabilities-page #die-compaction .die-compaction-figure-grid .figure-card { width: 100%; max-width: none; margin: 0; }
.capabilities-page #die-compaction .die-compaction-figure-grid .figure-media { display: flex; align-items: center; justify-content: center; min-height: 0; height: 260px; }
.capabilities-page #die-compaction .die-compaction-figure-grid .tablet-geometry-placeholder { width: 100%; padding: 12px; }
.capabilities-page #die-compaction .die-compaction-figure-grid .tablet-shapes svg { width: 65%; height: auto; margin-inline: auto; }
.capabilities-page #die-compaction .die-compaction-figure-grid .compact-shapes { grid-template-columns: repeat(2, minmax(0, 1fr)); }
/* The five-geometry panel gets room for three rows without clipping labels. */
.capabilities-page #die-compaction .die-compaction-figure-grid .compact-geometries .figure-media { height: auto; min-height: 260px; }
.capabilities-page #silo-discharge .silo-figure-grid > section { min-width: 0; padding: 20px; border: 1px solid var(--line); background: var(--bg); }
@media (max-width: 1000px) {
  .capabilities-page #die-compaction .die-compaction-figure-grid,
  .capabilities-page #silo-discharge .silo-figure-grid { grid-template-columns: 1fr; }
  .capabilities-page #die-compaction .die-compaction-figure-grid .figure-media,
  .capabilities-page #die-compaction .die-compaction-figure-grid .compact-geometries .figure-media { height: auto; min-height: 0; }
}

/* Die Compaction visuals follow their corresponding explanatory subsections. */
.capabilities-page #die-compaction .tablet-geometry + .die-compaction-figure-grid { margin-top: 20px; }
.capabilities-page #die-compaction .die-compaction-figure-grid + .contact-friction { margin-top: var(--capability-subsection-gap); padding-top: 20px; }
.capabilities-page #die-compaction .contact-friction + .friction-options { margin-top: 20px; }

/* Secondary carousel chevrons: centred on the card row, outside its content. */
.capabilities-carousel-frame { position: relative; }
.carousel-side-prev, .carousel-side-next { position: absolute; top: 50%; transform: translateY(-50%); z-index: 3; width: 44px; height: 44px; display: flex; align-items: center; justify-content: center; padding: 0; border: 1px solid var(--line); border-radius: 4px; background: rgb(22 33 43 / 94%); color: var(--muted); font-size: 1.8rem; line-height: 1; cursor: pointer; }
.carousel-side-prev { left: -48px; }
.carousel-side-next { right: -48px; }
.carousel-side-prev:hover, .carousel-side-prev:focus-visible,
.carousel-side-next:hover, .carousel-side-next:focus-visible { color: var(--accent); border-color: var(--accent); }
@media (min-width: 701px) and (max-width: 1350px) {
  .capabilities-carousel-frame { margin-inline: 16px; }
  .carousel-side-prev { left: -48px; }
  .carousel-side-next { right: -48px; }
}
@media (max-width: 700px) { .carousel-side-prev, .carousel-side-next { display: none; } }

.carousel-side-prev[hidden], .carousel-side-next[hidden] { display: none; }

/* Machine Learning content and its supplied constitutive-surrogate figure. */
.capabilities-page #machine-learning .machine-learning-content > p { margin-top: 16px; }

.capabilities-page #machine-learning .ml-subsection p { margin-top: var(--capability-content-gap); font-size: .95rem; }
.capabilities-page #machine-learning .ml-subsection ul { margin: var(--capability-content-gap) 0; padding-left: 20px; color: var(--muted); font-size: .9rem; }
.capabilities-page #machine-learning .ml-subsection li + li { margin-top: 6px; }
.capabilities-page #machine-learning .ml-subsection li::marker { color: var(--accent); }
.capabilities-page #machine-learning .ml-planned { padding-top: 20px; border-top: 1px solid var(--line); }
.capabilities-page #machine-learning .ml-planned .eyebrow { margin: 0 0 12px; font-size: .75rem; }
.capabilities-page #machine-learning .ml-directions { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px 28px; }
.capabilities-page #machine-learning .ml-directions li + li { margin-top: 0; }
.capabilities-page #machine-learning .machine-learning-figure { width: 100%; max-width: 620px; margin: 28px auto 0; }
.capabilities-page #machine-learning .machine-learning-figure .figure-media { padding: 12px; }
.capabilities-page #machine-learning .machine-learning-figure img { display: block; width: 100%; height: auto; object-fit: contain; }
@media (max-width: 1000px) { .capabilities-page #machine-learning .machine-learning-figure { max-width: none; } }
@media (max-width: 700px) { .capabilities-page #machine-learning .ml-directions { grid-template-columns: 1fr; } }

/* Planned production security: scoped homepage presentation. */
.security-principles { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 24px; margin-top: 36px; }
.security-principles > div { border-top: 1px solid var(--line); padding-top: 18px; }
.security-principles h3 { color: var(--accent); }
.security-principles p { font-size: .9rem; margin-top: 12px; }
.security-details { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 40px; margin-top: 36px; }
.security-details p { margin-top: 14px; }
.security-workflow { display: flex; flex-wrap: wrap; align-items: center; gap: 10px 14px; list-style: none; padding: 20px 0; margin: 32px 0 0; border-block: 1px solid var(--line); font-size: .8rem; color: var(--muted); }
.security-workflow li:not(:last-child)::after { content: " →"; color: var(--accent); margin-left: 14px; }
.security-status { margin-top: 24px; }
.security-status h3 { font-size: .95rem; color: var(--accent); }
.security-status p { margin-top: 8px; font-size: .85rem; }
@media (max-width: 1000px) { .security-principles { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 700px) { .security-principles, .security-details { grid-template-columns: 1fr; gap: 24px; } }

.capability-tag-group { display:flex; flex-wrap:wrap; align-items:center; gap:8px; }
.capability-tag-group strong { margin-right:6px; }
.response-tags, .capability-response-tags { border-left:1px solid var(--muted); padding-left:12px; }
.capability-response-tags { display:inline-flex; gap:5px; }
.physics-elastic { color:#9dcfca; }
.physics-plastic { color:#d8bd8c; }

.capability-card-badges { margin:10px 0; font-size:.75rem; }
.capability-card-badges .capability-tag-group { margin:6px 0; }
.capability-card-badges .badge-note { font-size:.72rem; line-height:1.4; }
/* Keep response badges together beside a flexible label in capability cards. */
.capability-card-badges .response-tags {
  flex-wrap: nowrap;
  gap: 4px;
  padding-left: 8px;
}
.capability-card-badges .response-tags > strong {
  flex: 1 1 auto;
  min-width: 0;
  margin-right: 2px;
  line-height: 1.3;
}
.capability-card-badges .response-tags > .physics-chip {
  flex: 0 0 auto;
  white-space: nowrap;
}
/* Give capability titles consistent prominence without scaling card metadata. */
.capability-preview > a > h3 {
  font-size: 1.4rem;
  line-height: 1.2;
}
/* Capability concepts use a shared frame; detailed section figures retain their own sizing. */
.capability-preview-visual.dtvl-capability-figure{height:150px;min-height:150px;gap:0}
/* Identification diagrams stay inside the existing capability content column. */
.capabilities-page .dt-method-flow{display:grid;justify-items:center;gap:8px;margin:24px 0;max-width:100%;color:var(--cyan)}
.capabilities-page .dt-method-flow span{width:100%;max-width:420px;padding:12px 16px;border:1px solid var(--line);border-radius:8px;text-align:center;background:rgba(64,169,193,.06);box-sizing:border-box;overflow-wrap:anywhere}
.capabilities-page .dt-method-flow b{font-size:1.2rem;font-weight:400}

/* Compact header wordmark. Michroma has one supplied weight; allow synthetic bold here only. */
.site-header .brand-text span {
  font-family:"Michroma","Bahnschrift","Segoe UI",Arial,sans-serif;
  font-size:.76032rem;
  font-weight:600;
  font-synthesis:weight;
  line-height:1.1;
  letter-spacing:0;
}
@media (min-width:1001px) and (max-width:1280px) {
  .site-header .brand-text span {font-size:.6732rem;}
}
@media (min-width:701px) and (max-width:1000px) {
  .site-header .brand-text span {font-size:.7128rem;}
}
@media (max-width:700px) {
  .site-header .brand-text span {font-size:.6732rem;}
}

/* Four balanced capability families; preserve header and disclosure behaviour. */
.capabilities-submenu.capabilities-grouped { grid-template-columns: repeat(4, minmax(0, 1fr)); width: 1040px; max-width: calc(100vw - 40px); gap: 20px; }
.capabilities-group:first-child { grid-row: auto; }
.capabilities-group { min-width: 0; }
@media (min-width: 1001px) {
  .header-inner { position: relative; }
  .capabilities-dropdown { position: static; }
  .capabilities-submenu.capabilities-grouped { left: 50%; transform: translateX(-50%); }
}
@media (max-width: 1200px) { .capabilities-submenu.capabilities-grouped { grid-template-columns: repeat(2, minmax(0, 1fr)); width: 680px; } }
@media (max-width: 1000px) { .capabilities-submenu.capabilities-grouped { width: 100%; max-width: 100%; } }
@media (max-width: 700px) { .capabilities-submenu.capabilities-grouped { grid-template-columns: 1fr; } }
.capability-status { color: var(--muted); margin-bottom: 20px; }

/* Shared Electrical physics field; retain the existing cyan palette. */
.physics-electrical { color: var(--accent); background: rgba(139, 211, 226, .06); }
