/* ActuLogiX cinematic experience — loaded after main.css. */

.alx-frontpage--cinematic {
  overflow: clip;
  background: var(--alx-ink);
}

/* Header: official primary logo on a light engineering surface. */
.alx-site-header {
  background: rgba(243, 246, 248, 0.94);
  border-bottom: 1px solid rgba(48, 69, 87, 0.24);
  box-shadow: 0 8px 30px rgba(13, 23, 32, 0.08);
}
.alx-site-header::after {
  content: '';
  position: absolute;
  left: 0;
  right: 0;
  bottom: -1px;
  height: 2px;
  background: linear-gradient(90deg, var(--alx-orange) 0 16%, transparent 16% 100%);
}
.alx-site-header__inner { height: 5rem; }
.alx-site-header__logo-image { height: 3rem; max-width: min(17rem, 56vw); }
.alx-primary-nav__list a { color: var(--alx-blue-grey); font-weight: 650; }
.alx-primary-nav__list a:hover,
.alx-primary-nav__list a:focus-visible,
.alx-primary-nav__list .current-menu-item > a { color: var(--alx-ink); background: rgba(255, 140, 0, 0.11); }
.alx-primary-nav__toggle { color: var(--alx-ink); border-color: var(--alx-line-light); }
.alx-brand-text { color: var(--alx-blue-grey); font-weight: 750; font-size: 1.45rem; }
.alx-brand-text__accent { color: var(--alx-orange-dark); }

/* Hero: full image, no central card. */
.alx-frontpage--cinematic .alx-hero {
  min-height: calc(100svh - 5rem);
  max-height: none;
  justify-content: flex-start;
}
.alx-frontpage--cinematic .alx-hero__overlay {
  background:
    linear-gradient(90deg, rgba(7, 15, 22, 0.94) 0%, rgba(13, 23, 32, 0.78) 44%, rgba(13, 23, 32, 0.22) 78%, rgba(13, 23, 32, 0.38) 100%),
    linear-gradient(0deg, rgba(13, 23, 32, 0.88), transparent 52%);
}
.alx-frontpage--cinematic .alx-hero__content {
  width: min(100%, var(--alx-wide-width));
  max-width: none;
  min-height: calc(100svh - 5rem);
  margin: 0 auto;
  padding: clamp(4.5rem, 9vh, 7.5rem) var(--alx-gutter) clamp(8.5rem, 16vh, 11rem);
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: flex-start;
  text-align: left;
  background: transparent;
  border: 0;
  border-radius: 0;
  box-shadow: none;
  backdrop-filter: none;
}
.alx-frontpage--cinematic .alx-hero__title {
  max-width: 14.5ch;
  margin: 0 0 1.35rem;
  font-size: clamp(2.8rem, 5.6vw, 6.3rem);
  line-height: .92;
  letter-spacing: -0.055em;
  text-wrap: balance;
}
.alx-frontpage--cinematic .alx-hero__lead {
  max-width: 41rem;
  margin: 0 0 2rem;
  font-size: clamp(1rem, 1.45vw, 1.32rem);
  color: #d8e0e6;
}
.alx-frontpage--cinematic .alx-hero__actions { justify-content: flex-start; }
.alx-hero__eyebrow {
  display: flex;
  flex-wrap: wrap;
  gap: .65rem 1.35rem;
  margin: 0 0 1.15rem;
  color: var(--alx-orange);
  font-family: var(--alx-font-mono);
  font-size: .68rem;
  font-weight: 700;
  letter-spacing: .12em;
}
.alx-hero__eyebrow span + span { color: var(--alx-mist); }
.alx-hero__signal-label {
  position: absolute;
  padding: .28rem .45rem;
  color: var(--alx-white);
  background: rgba(7,15,22,.84);
  border-left: 2px solid var(--alx-orange);
  font-family: var(--alx-font-mono);
  font-size: .58rem;
  letter-spacing: .1em;
}
.alx-hero__signal-label--input { left: 16.4%; top: 28%; }
.alx-hero__signal-label--control { left: 40.8%; top: 61%; }
.alx-hero__signal-label--safe { left: 63.4%; top: 28%; }
.alx-hero__signal-label--motion { left: 85.8%; top: 0; }
.alx-hero__signal {
  position: absolute;
  inset: auto 0 0;
  z-index: 2;
  height: clamp(6rem, 15vh, 9rem);
  pointer-events: none;
  opacity: .62;
  background: linear-gradient(180deg, transparent, rgba(7,15,22,.58));
}
.alx-hero__signal svg { width: 100%; height: 100%; }
.alx-hero__signal path { fill: none; stroke-linecap: square; stroke-linejoin: bevel; }
.alx-hero__signal-ghost { stroke: rgba(185, 198, 208, .22); stroke-width: 1; }
.alx-hero__signal-live {
  stroke: var(--alx-orange);
  stroke-width: 2;
  stroke-dasharray: 10 26;
  animation: alx-signal-run 5s linear infinite;
  animation-play-state: paused;
}
.alx-hero__signal circle { fill: var(--alx-orange); filter: drop-shadow(0 0 8px rgba(255, 140, 0, .82)); }
.alx-hero.is-in-view .alx-hero__signal-live { animation-play-state: running; }
@keyframes alx-signal-run { to { stroke-dashoffset: -72; } }

/* Shared cinematic labels. */
.alx-kicker {
  display: flex;
  align-items: center;
  gap: .75rem;
  margin: 0 0 1.5rem;
  color: var(--alx-orange);
  font-family: var(--alx-font-mono);
  font-size: .74rem;
  font-weight: 700;
  letter-spacing: .14em;
  text-transform: uppercase;
}
.alx-kicker span { display: inline-grid; place-items: center; width: 2rem; height: 2rem; border: 1px solid currentColor; }
.alx-spine-intro h2 em,
.alx-se-lifecycle h2 em,
.alx-interlock__heading h2 em { color: var(--alx-orange); font-style: normal; }

/* Signal rail. */
.alx-signal-rail {
  position: relative;
  z-index: 4;
  overflow: hidden;
  background: var(--alx-orange);
  color: var(--alx-ink);
  border-block: 1px solid rgba(13, 23, 32, .25);
}
.alx-signal-rail__viewport { display: flex; width: max-content; animation: alx-marquee 34s linear infinite; }
.alx-signal-rail__track { display: flex; flex: none; align-items: center; min-width: max-content; margin: 0; padding: 0; list-style: none; }
.alx-signal-rail__item { display: flex; align-items: center; gap: .75rem; padding: 1rem 2rem; font-family: var(--alx-font-mono); font-size: .75rem; font-weight: 750; letter-spacing: .08em; text-transform: uppercase; white-space: nowrap; }
.alx-signal-rail__dot { width: .42rem; height: .42rem; background: currentColor; transform: rotate(45deg); }
@keyframes alx-marquee { to { transform: translateX(-50%); } }

/* Systems Engineering overview. */
.alx-spine-intro {
  position: relative;
  min-height: 100svh;
  padding: clamp(6rem, 10vw, 10rem) var(--alx-gutter);
  display: grid;
  align-items: center;
  color: var(--alx-white);
  background: radial-gradient(circle at 78% 44%, rgba(48, 69, 87, .38), transparent 34%), var(--alx-deep);
  border-bottom: 1px solid var(--alx-line-dark);
  isolation: isolate;
}
.alx-spine-intro__grid,
.alx-domain-scene__grid {
  position: absolute;
  inset: 0;
  z-index: -1;
  opacity: .22;
  background-image: linear-gradient(rgba(185,198,208,.12) 1px, transparent 1px), linear-gradient(90deg, rgba(185,198,208,.12) 1px, transparent 1px);
  background-size: 44px 44px;
  mask-image: linear-gradient(90deg, transparent, #000 18%, #000 82%, transparent);
}
.alx-spine-intro__inner {
  width: min(100%, var(--alx-wide-width));
  margin: 0 auto;
  display: grid;
  grid-template-columns: minmax(18rem, .72fr) minmax(34rem, 1.28fr);
  gap: clamp(3rem, 7vw, 8rem);
  align-items: center;
}
.alx-spine-intro__copy h2,
.alx-se-lifecycle__header h2,
.alx-interlock__heading h2 {
  margin: 0 0 1.5rem;
  color: var(--alx-white);
  font-size: clamp(2.35rem, 4.7vw, 5.4rem);
  line-height: 1.02;
  letter-spacing: -.045em;
  text-wrap: balance;
}
.alx-spine-intro__copy > p:not(.alx-kicker) { max-width: 43rem; color: var(--alx-mist); font-size: 1.08rem; line-height: 1.75; }
.alx-spine-intro__copy .alx-btn { margin-top: 1.5rem; background-color: var(--alx-deep); }
.alx-spine-intro__figure {
  position: relative;
  margin: 0;
  padding: 2.35rem 1.1rem 1rem;
  background: rgba(7,15,22,.48);
  border: 1px solid rgba(185,198,208,.2);
  box-shadow: 0 36px 100px rgba(0,0,0,.24);
}
.alx-spine-intro__figure::before {
  content: 'ALX / REQUIREMENTS MODEL';
  position: absolute;
  top: .75rem;
  left: 1rem;
  color: var(--alx-mist);
  font-family: var(--alx-font-mono);
  font-size: .64rem;
  letter-spacing: .1em;
}
.alx-vmodel-overview { width: 100%; color: var(--alx-line); overflow: visible; background-color: var(--alx-deep); }
.alx-vmodel-overview__matrix rect { fill: rgba(48,69,87,.22); stroke: rgba(185,198,208,.28); }
.alx-vmodel-overview__matrix path { fill: none; stroke: rgba(185,198,208,.22); }
.alx-vmodel-overview__matrix text,
.alx-vmodel-overview__tags text { fill: var(--alx-mist); font-family: var(--alx-font-mono); font-size: 9px; letter-spacing: .1em; }
.alx-vmodel-overview__matrix circle { fill: var(--alx-orange); }
.alx-spine-intro__ledger {
  display: grid;
  grid-template-columns: repeat(3,1fr);
  margin: 0;
  border-block: 1px solid var(--alx-line-dark);
}
.alx-spine-intro__ledger div { padding: .75rem .85rem; border-right: 1px solid var(--alx-line-dark); }
.alx-spine-intro__ledger div:last-child { border-right: 0; }
.alx-spine-intro__ledger dt,
.alx-spine-intro__ledger dd { margin: 0; font-family: var(--alx-font-mono); font-size: .62rem; letter-spacing: .07em; }
.alx-spine-intro__ledger dt { color: var(--alx-mist); }
.alx-spine-intro__ledger dd { margin-top: .25rem; color: var(--alx-orange); }
.alx-spine-intro__figure figcaption { padding-top: .8rem; }
.alx-vmodel-overview__trace path { fill: none; stroke: var(--alx-orange); stroke-width: 3; color: var(--alx-orange); }
.alx-vmodel-overview__trace .alx-vmodel-overview__cross { stroke: rgba(185,198,208,.28); stroke-width: 1; stroke-dasharray: 5 8; }
.alx-vmodel-overview__node rect { fill: rgba(13,23,32,.92); stroke: rgba(185,198,208,.32); }
.alx-vmodel-overview__node circle { fill: var(--alx-orange); }
.alx-vmodel-overview__node text { fill: var(--alx-white); font-family: var(--alx-font-mono); font-size: 15px; letter-spacing: .06em; }
.alx-vmodel-overview__node .alx-vmodel-overview__small { fill: var(--alx-mist); font-size: 10px; }
.alx-vmodel-overview__core circle { fill: rgba(255,140,0,.06); stroke: var(--alx-orange); stroke-width: 2; }
.alx-vmodel-overview__core path { stroke: var(--alx-orange); stroke-width: 1; opacity: .45; }
.alx-vmodel-overview__core text { fill: var(--alx-white); font-family: var(--alx-font-mono); font-size: 15px; text-anchor: middle; letter-spacing: .12em; }
.alx-spine-intro__figure figcaption,
.alx-domain-scene__visual figcaption { color: var(--alx-mist); font-family: var(--alx-font-mono); font-size: .7rem; letter-spacing: .07em; text-transform: uppercase; }

/* Sticky SE lifecycle. */
.alx-se-lifecycle {
  padding: clamp(6rem, 10vw, 10rem) var(--alx-gutter);
  color: var(--alx-ink);
  background: var(--alx-light);
}
.alx-se-lifecycle__header { width: min(100%, var(--alx-wide-width)); margin: 0 auto clamp(3rem, 6vw, 5rem); }
.alx-se-lifecycle__header .alx-kicker { color: var(--alx-orange-dark); }
.alx-se-lifecycle__header h2 { max-width: 14ch; color: var(--alx-ink); }
.alx-se-lifecycle__header h2 em { color: var(--alx-orange-dark); }
.alx-se-lifecycle__header > p:last-child { max-width: 47rem; color: var(--alx-blue-grey); font-size: 1.1rem; }
.alx-se-lifecycle__index {
  position: sticky;
  top: 5rem;
  z-index: 6;
  width: min(100%, var(--alx-wide-width));
  margin: 0 auto clamp(3rem,5vw,4.5rem);
  background: rgba(243,246,248,.94);
  border-block: 1px solid var(--alx-line-light);
  backdrop-filter: blur(12px);
}
.alx-se-lifecycle__index ol { display: grid; grid-template-columns: repeat(5,1fr); margin: 0; padding: 0; list-style: none; }
.alx-se-lifecycle__index li + li { border-left: 1px solid var(--alx-line-light); }
.alx-se-lifecycle__index a { display: flex; align-items: center; gap: .6rem; min-height: 3.4rem; padding: .65rem .85rem; color: var(--alx-blue-grey); font-family: var(--alx-font-mono); font-size: .66rem; letter-spacing: .06em; }
.alx-se-lifecycle__index a span { color: var(--alx-orange-dark); font-weight: 800; }
.alx-se-lifecycle__index a[aria-current="step"] { color: var(--alx-ink); background: rgba(255,140,0,.1); box-shadow: inset 0 -2px var(--alx-orange); }
.alx-se-lifecycle__layout { width: min(100%, var(--alx-wide-width)); margin: 0 auto; display: grid; grid-template-columns: minmax(30rem,1.08fr) minmax(24rem,.92fr); gap: clamp(3rem,6vw,6rem); align-items: start; }
.alx-se-lifecycle__visual { position: sticky; top: 9rem; }
.alx-se-console { overflow: hidden; color: var(--alx-line); background: var(--alx-ink); border: 1px solid rgba(48,69,87,.76); box-shadow: 0 35px 90px rgba(13,23,32,.25); }
.alx-se-console__bar,
.alx-se-console__footer { display: flex; justify-content: space-between; gap: 1rem; padding: .8rem 1rem; color: var(--alx-mist); border-bottom: 1px solid var(--alx-line-dark); font-family: var(--alx-font-mono); font-size: .68rem; letter-spacing: .08em; }
.alx-se-console__footer { border-top: 1px solid var(--alx-line-dark); border-bottom: 0; }
.alx-se-console__state { color: var(--alx-orange); }
.alx-se-console svg { display: block; width: 100%; height: min(58vh,36rem); min-height: 26rem; background-color: var(--alx-ink); }
.alx-se-console__spine { fill: none; stroke: rgba(185,198,208,.18); stroke-width: 7; }
.alx-se-console__trace { fill: none; stroke: var(--alx-orange); stroke-width: 2.5; }
.alx-se-console__link { fill: none; stroke: rgba(185,198,208,.25); stroke-dasharray: 5 7; }
.alx-se-console__phase { color: var(--alx-mist); opacity: .72; transition: opacity .35s ease, color .35s ease; }
.alx-se-console__phase circle { fill: var(--alx-ink); stroke: currentColor; stroke-width: 2; }
.alx-se-console__phase text { fill: currentColor; font-family: var(--alx-font-mono); font-size: 12px; letter-spacing: .07em; }
.alx-se-console__phase text:first-of-type { text-anchor: middle; font-size: 14px; font-weight: 700; }
.alx-se-console__phase .small { font-size: 9px; }
.alx-se-console__phase.is-active { color: var(--alx-orange); opacity: 1; filter: drop-shadow(0 0 10px rgba(255,140,0,.34)); }
.alx-se-console__matrix rect { fill: rgba(48,69,87,.24); stroke: rgba(185,198,208,.24); }
.alx-se-console__matrix path { fill: none; stroke: rgba(185,198,208,.2); }
.alx-se-console__matrix text { fill: var(--alx-mist); font-family: var(--alx-font-mono); font-size: 9px; }
.alx-se-console__telemetry { display: grid; grid-template-columns: repeat(3,1fr); margin: 0; border-top: 1px solid var(--alx-line-dark); }
.alx-se-console__telemetry div { min-width: 0; padding: .75rem .85rem; border-right: 1px solid var(--alx-line-dark); }
.alx-se-console__telemetry div:last-child { border-right: 0; }
.alx-se-console__telemetry dt,
.alx-se-console__telemetry dd { margin: 0; font-family: var(--alx-font-mono); font-size: .58rem; letter-spacing: .06em; }
.alx-se-console__telemetry dt { color: var(--alx-mist); }
.alx-se-console__telemetry dd { margin-top: .26rem; overflow-wrap: anywhere; color: var(--alx-orange); }
.alx-se-lifecycle__panels { padding-bottom: 12vh; }
.alx-se-phase { min-height: 62vh; scroll-margin-top: 9rem; padding: clamp(2.5rem,6vh,5rem) 0 clamp(2.5rem,6vh,5rem) clamp(1.5rem,4vw,3rem); display: flex; flex-direction: column; justify-content: center; border-left: 1px solid var(--alx-line-light); transition: background .35s ease, border-color .35s ease; }
.alx-se-phase.is-active { border-left: 3px solid var(--alx-orange); background: linear-gradient(90deg,rgba(255,140,0,.045),transparent 58%); }
.alx-se-phase__meta { color: var(--alx-orange-dark); font-family: var(--alx-font-mono); font-size: .73rem; font-weight: 700; letter-spacing: .12em; }
.alx-se-phase__meta span { display: inline-block; min-width: 2.3rem; color: var(--alx-blue-grey); }
.alx-se-phase h3 { max-width: 14ch; margin: 1rem 0 1.25rem; font-size: clamp(2rem, 3.8vw, 4.25rem); line-height: 1.02; letter-spacing: -.045em; }
.alx-se-phase > p:not(.alx-se-phase__meta) { max-width: 40rem; color: var(--alx-blue-grey); font-size: 1.05rem; line-height: 1.75; }
.alx-se-phase ul { display: grid; gap: .65rem; margin: 1.5rem 0 0; padding: 0; list-style: none; }
.alx-se-phase li { position: relative; padding-left: 1.5rem; color: var(--alx-ink); font-family: var(--alx-font-mono); font-size: .78rem; }
.alx-se-phase li::before { content: ''; position: absolute; left: 0; top: .48em; width: .5rem; height: .5rem; border: 1px solid var(--alx-orange-dark); transform: rotate(45deg); }

/* Full-bleed domain scenes. */
.alx-domain-scene { position: relative; min-height: 88svh; padding: clamp(5rem,8vw,8rem) var(--alx-gutter); display: grid; align-items: center; color: var(--alx-white); background: var(--alx-deep); border-top: 1px solid var(--alx-line-dark); isolation: isolate; }
.alx-domain-scene--energy { background: #102737; }
.alx-domain-scene--safety { background: #0b1821; }
.alx-domain-scene__inner { width: min(100%, var(--alx-wide-width)); margin: 0 auto; display: grid; grid-template-columns: minmax(20rem,.88fr) minmax(36rem,1.12fr); gap: clamp(3rem,6vw,6rem); align-items: center; }
.alx-domain-scene--energy .alx-domain-scene__inner { grid-template-columns: minmax(36rem,1.12fr) minmax(20rem,.88fr); }
.alx-domain-scene--energy .alx-domain-scene__copy { order: 2; }
.alx-domain-scene--energy .alx-domain-scene__visual { order: 1; }
.alx-domain-scene__copy h2 { max-width: 12ch; margin: 0 0 1.4rem; color: var(--alx-white); font-size: clamp(2.55rem,5.4vw,6rem); line-height: .96; letter-spacing: -.05em; }
.alx-domain-scene__copy > p:not(.alx-kicker) { max-width: 42rem; color: var(--alx-mist); font-size: 1.05rem; line-height: 1.75; }
.alx-domain-scene__facts { display: grid; gap: .8rem; margin: 1.7rem 0 2rem; padding: 0; list-style: none; }
.alx-domain-scene__facts li { position: relative; padding-left: 1.35rem; color: #dbe3e8; }
.alx-domain-scene__facts li::before { content: ''; position: absolute; left: 0; top: .55em; width: .45rem; height: .45rem; background: var(--alx-orange); }
.alx-domain-scene__link { display: inline-flex; align-items: center; gap: .55rem; color: var(--alx-orange); font-family: var(--alx-font-mono); font-size: .78rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.alx-domain-scene__visual { --mx: 50%; --my: 50%; position: relative; margin: 0; overflow: hidden; background: rgba(13,23,32,.88); border: 1px solid rgba(185,198,208,.18); box-shadow: 0 32px 90px rgba(0,0,0,.24); }
.alx-domain-scene__visual::after { content: ''; position: absolute; inset: 0; pointer-events: none; opacity: 0; background: radial-gradient(circle 220px at var(--mx) var(--my), rgba(255,140,0,.10), transparent 72%); transition: opacity .3s; }
.alx-domain-scene__visual:hover::after { opacity: 1; }
.alx-domain-scene__consolebar { display: flex; justify-content: space-between; padding: .75rem 1rem; color: var(--alx-mist); border-bottom: 1px solid var(--alx-line-dark); font-family: var(--alx-font-mono); font-size: .65rem; letter-spacing: .09em; }
.alx-domain-scene__consolebar i { display: inline-block; width: .45rem; height: .45rem; margin-right: .45rem; background: var(--alx-orange); box-shadow: 0 0 10px rgba(255,140,0,.65); }
.alx-domain-scene__telemetry { display: grid; grid-template-columns: repeat(4,1fr); margin: 0; border-top: 1px solid var(--alx-line-dark); }
.alx-domain-scene__telemetry div { min-width: 0; padding: .72rem .75rem; border-right: 1px solid var(--alx-line-dark); }
.alx-domain-scene__telemetry div:last-child { border-right: 0; }
.alx-domain-scene__telemetry dt,
.alx-domain-scene__telemetry dd { margin: 0; font-family: var(--alx-font-mono); font-size: .58rem; letter-spacing: .06em; }
.alx-domain-scene__telemetry dt { color: var(--alx-mist); }
.alx-domain-scene__telemetry dd { margin-top: .25rem; color: var(--alx-orange); overflow-wrap: anywhere; }
.alx-domain-scene__visual svg { display: block; width: 100%; color: var(--alx-line); background-color: var(--alx-ink); }
.alx-domain-scene__visual figcaption { padding: .7rem 1rem; border-top: 1px solid var(--alx-line-dark); }
.alx-domain-scene__visual svg text { fill: var(--alx-mist); font-family: var(--alx-font-mono); font-size: 10px; letter-spacing: .06em; }
.alx-scene-line { fill: none; stroke: var(--alx-orange); stroke-width: 3; }
.alx-scene-line--muted { stroke: rgba(185,198,208,.34); stroke-width: 1.5; }
.alx-scene-water { fill: rgba(30,84,111,.36); }
.alx-scene-bridge-deck path { fill: var(--alx-blue-grey); stroke: var(--alx-orange); stroke-width: 1.5; }
.alx-scene-bridge-deck__left,
.alx-scene-bridge-deck__right { transform-box: fill-box; transition: filter .5s ease; }
.alx-domain-scene.is-in-view .alx-scene-bridge-deck path { filter: drop-shadow(0 0 8px rgba(255,140,0,.28)); }
.alx-scene-barrier circle { fill: var(--alx-orange); }
.alx-scene-barrier path { stroke: var(--alx-white); stroke-width: 7; }
.alx-scene-signal rect { fill: var(--alx-ink); stroke: var(--alx-line); }
.alx-scene-signal .red { fill: #ff5f57; }
.alx-scene-signal .green { fill: #4caf50; opacity: .24; }
.alx-scene-ship { fill: rgba(185,198,208,.14); stroke: var(--alx-mist); }
.alx-scene-signal-path { fill: none; stroke: var(--alx-orange); stroke-width: 2; stroke-dasharray: 7 10; animation: alx-scene-flow 2.4s linear infinite; animation-play-state: paused; }
.alx-domain-scene.is-in-view .alx-scene-signal-path { animation-play-state: running; }
@keyframes alx-scene-flow { to { stroke-dashoffset: -68; } }
.alx-scene-node circle { fill: var(--alx-orange); }
.alx-energy-block rect, .alx-energy-transformer rect, .alx-energy-scada rect { fill: rgba(48,69,87,.24); stroke: rgba(185,198,208,.42); }
.alx-energy-block path, .alx-energy-transformer circle, .alx-energy-scada path { fill: none; stroke: var(--alx-mist); stroke-width: 2; }
.alx-energy-block text, .alx-energy-transformer text, .alx-energy-scada text { text-anchor: middle; }
.alx-safety-fence { fill: none; stroke: rgba(185,198,208,.26); }
.alx-safety-machine rect,
.alx-safety-plc rect,
.alx-safety-input rect,
.alx-safety-output rect,
.alx-safety-dossier rect { fill: rgba(48,69,87,.28); stroke: var(--alx-mist); }
.alx-safety-machine circle,
.alx-safety-machine path,
.alx-safety-plc path,
.alx-safety-input path,
.alx-safety-output path,
.alx-safety-dossier path { fill: none; stroke: var(--alx-orange); stroke-width: 2; }
.alx-safety-plc circle,
.alx-safety-output circle { fill: var(--alx-orange); }
.alx-safety-input text,
.alx-safety-plc text,
.alx-safety-output text,
.alx-safety-dossier text,
.alx-safety-estop text { text-anchor: middle; }
.alx-safety-estop circle:first-child { fill: rgba(255,95,87,.18); stroke: #ff5f57; }
.alx-safety-estop circle:nth-child(2) { fill: #ff5f57; }
.alx-safety-scan { fill: rgba(255,140,0,.07); stroke: var(--alx-orange); stroke-dasharray: 6 7; }

/* Bridge twin simulator. */
.alx-interlock { padding: clamp(6rem,10vw,10rem) var(--alx-gutter); color: var(--alx-white); background: #070f16; }
.alx-interlock__heading { width: min(100%, var(--alx-wide-width)); margin: 0 auto clamp(3.5rem,7vw,6rem); background-color: #070f16; }
.alx-interlock__heading h2 { background-color: #070f16; }
.alx-interlock__heading > p:last-child { max-width: 49rem; color: var(--alx-mist); font-size: 1.08rem; }
.alx-simulator { max-width: var(--alx-wide-width); padding: 0; overflow: hidden; background: var(--alx-ink); border: 1px solid rgba(185,198,208,.2); border-radius: 0; box-shadow: 0 40px 100px rgba(0,0,0,.38); }
.alx-simulator__status-bar { display: grid; grid-template-columns: 1fr auto auto; margin: 0; padding: .9rem 1.15rem; border-bottom: 1px solid var(--alx-line-dark); }
.alx-simulator__status-bar > span:first-child { color: var(--alx-mist); font-size: .7rem; letter-spacing: .1em; }
.alx-simulator__status-bar i { display: inline-block; width: .5rem; height: .5rem; margin-right: .5rem; background: var(--alx-orange); box-shadow: 0 0 12px rgba(255,140,0,.65); }
.alx-simulator__diagnostics { display: grid; grid-template-columns: .45fr 1fr .8fr; gap: 1px; background: var(--alx-line-dark); border-bottom: 1px solid var(--alx-line-dark); }
.alx-simulator__diagnostics > div:not(.alx-simulator__progress) { min-width: 0; padding: .78rem 1rem; background: #101d27; }
.alx-simulator__diagnostics span,
.alx-simulator__diagnostics strong { display: block; font-family: var(--alx-font-mono); font-size: .62rem; letter-spacing: .07em; }
.alx-simulator__diagnostics span { color: var(--alx-mist); }
.alx-simulator__diagnostics strong { margin-top: .28rem; overflow-wrap: anywhere; color: var(--alx-orange); }
.alx-simulator__progress { grid-column: 1 / -1; height: 3px; overflow: hidden; background: rgba(185,198,208,.12); }
.alx-simulator__progress i { display: block; width: 100%; height: 100%; background: var(--alx-orange); box-shadow: 0 0 14px rgba(255,140,0,.55); transform: scaleX(0); transform-origin: left; transition: transform .45s ease; }
.alx-bridge-twin { border-bottom: 1px solid var(--alx-line-dark); }
.alx-bridge-twin svg { display: block; width: 100%; color: var(--alx-line); background-color: var(--alx-ink); }
.alx-bridge-twin svg text { fill: var(--alx-mist); font-family: var(--alx-font-mono); font-size: 11px; letter-spacing: .07em; }
.alx-bridge-twin__shore { fill: #182d3b; stroke: rgba(185,198,208,.2); }
.alx-bridge-twin__road { fill: none; stroke: rgba(243,246,248,.48); stroke-width: 2; stroke-dasharray: 13 11; }
.alx-bridge-twin__towers { fill: none; stroke: rgba(185,198,208,.42); stroke-width: 3; }
.alx-bridge-twin__deck { transform-box: fill-box; transition: transform 1.05s cubic-bezier(.2,.8,.2,1); }
.alx-bridge-twin__deck--left { transform-origin: left bottom; }
.alx-bridge-twin__deck--right { transform-origin: right bottom; }
.alx-bridge-twin__deck path:first-child { fill: var(--alx-blue-grey); stroke: var(--alx-orange); stroke-width: 2; }
.alx-bridge-twin__deck path:last-child { fill: none; stroke: var(--alx-white); stroke-width: 2; stroke-dasharray: 12 10; }
.alx-bridge-twin__hinge circle:first-child { fill: var(--alx-ink); stroke: var(--alx-orange); stroke-width: 2; }
.alx-bridge-twin__hinge circle:last-child { fill: var(--alx-orange); }
.alx-bridge-twin__drive { opacity: .45; transition: opacity .35s ease, filter .35s ease; }
.alx-bridge-twin__drive circle { fill: var(--alx-ink); stroke: var(--alx-mist); }
.alx-bridge-twin__drive path { stroke: var(--alx-orange); }
.alx-bridge-twin__barrier-arm { transform-box: view-box; transform: rotate(0deg); transition: transform .75s cubic-bezier(.2,.8,.2,1); }
.alx-bridge-twin__barrier--left .alx-bridge-twin__barrier-arm { transform-origin: 258px 398px; }
.alx-bridge-twin__barrier--right .alx-bridge-twin__barrier-arm { transform-origin: 942px 398px; }
.alx-bridge-twin__barrier-housing { fill: var(--alx-deep); stroke: var(--alx-mist); stroke-width: 2; }
.alx-bridge-twin__barrier-pivot { fill: var(--alx-orange); stroke: var(--alx-ink); stroke-width: 4; }
.alx-bridge-twin__boom { fill: none; stroke-linecap: butt; }
.alx-bridge-twin__boom--base { stroke: var(--alx-white); stroke-width: 12; }
.alx-bridge-twin__boom--stripe { stroke: var(--alx-orange); stroke-width: 12; stroke-dasharray: 18 18; }
.alx-bridge-twin__light rect { fill: var(--alx-ink); stroke: var(--alx-line); }
.alx-bridge-twin__light path { stroke: var(--alx-line); }
.alx-bridge-twin__light .red { fill: #ff5f57; opacity: .2; }
.alx-bridge-twin__light .green { fill: #4caf50; filter: drop-shadow(0 0 7px #4caf50); }
.alx-bridge-twin__lock { opacity: .45; transition: opacity .35s ease, filter .35s ease; }
.alx-bridge-twin__lock rect { fill: var(--alx-ink); stroke: var(--alx-orange); }
.alx-bridge-twin__lock path { fill: none; stroke: var(--alx-mist); }
.alx-bridge-twin__lock circle { fill: var(--alx-orange); }
.alx-bridge-twin__ship { fill: rgba(185,198,208,.14); stroke: var(--alx-mist); transition: transform 1s ease; }
.alx-bridge-twin__signal-base { fill: none; stroke: rgba(185,198,208,.14); stroke-width: 3; }
.alx-bridge-twin__signal-flow { fill: none; stroke: var(--alx-orange); stroke-width: 3; stroke-dasharray: 8 15; opacity: .25; }
.alx-bridge-twin__signal-flow + .alx-bridge-twin__nodes circle,
.alx-bridge-twin__nodes circle { fill: var(--alx-line); transition: fill .3s ease, filter .3s ease; }
.alx-bridge-twin__node text { transition: fill .3s ease; }
.alx-bridge-twin__node.is-complete circle { fill: #4caf50; }
.alx-bridge-twin__node.is-active circle { fill: var(--alx-orange); filter: drop-shadow(0 0 8px rgba(255,140,0,.72)); }
.alx-bridge-twin__node.is-active text { fill: var(--alx-white); }
.alx-bridge-twin__node.is-fault circle { fill: var(--alx-danger); filter: drop-shadow(0 0 8px rgba(255,95,87,.72)); }
.alx-bridge-twin__hud rect { fill: rgba(13,23,32,.88); stroke: rgba(185,198,208,.2); }
.alx-bridge-twin__hud circle { fill: var(--alx-line); transition: fill .3s ease, filter .3s ease; }
.alx-bridge-twin__hud circle.is-complete { fill: #4caf50; }
.alx-bridge-twin__hud circle.is-active { fill: var(--alx-orange); filter: drop-shadow(0 0 7px rgba(255,140,0,.7)); }
.alx-bridge-twin__hud circle.is-fault { fill: var(--alx-danger); filter: drop-shadow(0 0 7px rgba(255,95,87,.7)); }
.alx-bridge-twin__legend { display: flex; justify-content: space-between; gap: 1rem; padding: .65rem 1rem; color: var(--alx-mist); font-family: var(--alx-font-mono); font-size: .65rem; text-transform: uppercase; }
.alx-simulator__states { margin: 0; padding: 1rem; border-bottom: 1px solid var(--alx-line-dark); }
.alx-simulator__sequence { display: grid; grid-template-columns: repeat(9,minmax(0,1fr)); gap: 1px; background: var(--alx-line-dark); }
.alx-simulator__step { min-width: 0; padding: .75rem .55rem; align-items: flex-start; flex-direction: column; border: 0; border-radius: 0; background: var(--alx-ink); white-space: normal; }
.alx-simulator__step[data-active="true"] { background: rgba(255,140,0,.12); box-shadow: inset 0 2px var(--alx-orange); }
.alx-simulator__step[data-completed="true"] { opacity: 1; background: rgba(76,175,80,.07); box-shadow: inset 0 2px rgba(76,175,80,.55); }
.alx-simulator__operator { display: grid; grid-template-columns: minmax(14rem,1fr) auto auto; align-items: center; gap: 1rem; padding: 1rem; }
.alx-simulator__event { min-width: 0; padding-left: .85rem; border-left: 2px solid var(--alx-orange); }
.alx-simulator__event span,
.alx-simulator__event strong { display: block; font-family: var(--alx-font-mono); font-size: .63rem; letter-spacing: .06em; }
.alx-simulator__event span { color: var(--alx-mist); }
.alx-simulator__event strong { margin-top: .25rem; color: var(--alx-white); overflow-wrap: anywhere; }
.alx-simulator[data-state="fault"] .alx-simulator__event { border-left-color: var(--alx-danger); }
.alx-simulator[data-state="fault"] .alx-simulator__event strong { color: #ff9d98; }
.alx-simulator__fault-panel { margin: 0; }
.alx-simulator[data-step="traffic"] .alx-bridge-twin__light .red,
.alx-simulator[data-step="barriers"] .alx-bridge-twin__light .red,
.alx-simulator[data-step="lock"] .alx-bridge-twin__light .red,
.alx-simulator[data-step="safety"] .alx-bridge-twin__light .red,
.alx-simulator[data-step="drive"] .alx-bridge-twin__light .red,
.alx-simulator[data-step="motion"] .alx-bridge-twin__light .red,
.alx-simulator[data-step="position"] .alx-bridge-twin__light .red,
.alx-simulator[data-state="complete"] .alx-bridge-twin__light .red { opacity: 1; filter: drop-shadow(0 0 7px #ff5f57); }
.alx-simulator[data-step="traffic"] .alx-bridge-twin__light .green,
.alx-simulator[data-step="barriers"] .alx-bridge-twin__light .green,
.alx-simulator[data-step="lock"] .alx-bridge-twin__light .green,
.alx-simulator[data-step="safety"] .alx-bridge-twin__light .green,
.alx-simulator[data-step="drive"] .alx-bridge-twin__light .green,
.alx-simulator[data-step="motion"] .alx-bridge-twin__light .green,
.alx-simulator[data-step="position"] .alx-bridge-twin__light .green,
.alx-simulator[data-state="complete"] .alx-bridge-twin__light .green { opacity: .18; filter: none; }
.alx-simulator[data-step="barriers"] .alx-bridge-twin__barrier--left .alx-bridge-twin__barrier-arm,
.alx-simulator[data-step="lock"] .alx-bridge-twin__barrier--left .alx-bridge-twin__barrier-arm,
.alx-simulator[data-step="safety"] .alx-bridge-twin__barrier--left .alx-bridge-twin__barrier-arm,
.alx-simulator[data-step="drive"] .alx-bridge-twin__barrier--left .alx-bridge-twin__barrier-arm,
.alx-simulator[data-step="motion"] .alx-bridge-twin__barrier--left .alx-bridge-twin__barrier-arm,
.alx-simulator[data-step="position"] .alx-bridge-twin__barrier--left .alx-bridge-twin__barrier-arm,
.alx-simulator[data-state="complete"] .alx-bridge-twin__barrier--left .alx-bridge-twin__barrier-arm { transform: rotate(90deg); }
.alx-simulator[data-step="barriers"] .alx-bridge-twin__barrier--right .alx-bridge-twin__barrier-arm,
.alx-simulator[data-step="lock"] .alx-bridge-twin__barrier--right .alx-bridge-twin__barrier-arm,
.alx-simulator[data-step="safety"] .alx-bridge-twin__barrier--right .alx-bridge-twin__barrier-arm,
.alx-simulator[data-step="drive"] .alx-bridge-twin__barrier--right .alx-bridge-twin__barrier-arm,
.alx-simulator[data-step="motion"] .alx-bridge-twin__barrier--right .alx-bridge-twin__barrier-arm,
.alx-simulator[data-step="position"] .alx-bridge-twin__barrier--right .alx-bridge-twin__barrier-arm,
.alx-simulator[data-state="complete"] .alx-bridge-twin__barrier--right .alx-bridge-twin__barrier-arm { transform: rotate(-90deg); }
.alx-simulator[data-step="lock"] .alx-bridge-twin__lock,
.alx-simulator[data-step="safety"] .alx-bridge-twin__lock,
.alx-simulator[data-step="drive"] .alx-bridge-twin__lock,
.alx-simulator[data-step="motion"] .alx-bridge-twin__lock,
.alx-simulator[data-step="position"] .alx-bridge-twin__lock,
.alx-simulator[data-state="complete"] .alx-bridge-twin__lock { opacity: 1; filter: drop-shadow(0 0 7px rgba(255,140,0,.55)); }
.alx-simulator[data-step="drive"] .alx-bridge-twin__drive,
.alx-simulator[data-step="motion"] .alx-bridge-twin__drive,
.alx-simulator[data-step="position"] .alx-bridge-twin__drive,
.alx-simulator[data-state="complete"] .alx-bridge-twin__drive { opacity: 1; filter: drop-shadow(0 0 7px rgba(255,140,0,.42)); }
.alx-simulator[data-step="motion"] .alx-bridge-twin__deck--left,
.alx-simulator[data-step="position"] .alx-bridge-twin__deck--left,
.alx-simulator[data-state="complete"] .alx-bridge-twin__deck--left { transform: rotate(-32deg); }
.alx-simulator[data-step="motion"] .alx-bridge-twin__deck--right,
.alx-simulator[data-step="position"] .alx-bridge-twin__deck--right,
.alx-simulator[data-state="complete"] .alx-bridge-twin__deck--right { transform: rotate(32deg); }
.alx-simulator[data-state="running"] .alx-bridge-twin__signal-flow { opacity: 1; animation: alx-signal-run 1.6s linear infinite; }
.alx-simulator[data-state="fault"] .alx-bridge-twin__signal-flow { stroke: var(--alx-danger); opacity: 1; animation: alx-fault-pulse .8s ease-in-out infinite alternate; }
.alx-simulator[data-state="fault"] .alx-bridge-twin__barrier--right .alx-bridge-twin__barrier-arm { transform: rotate(-62deg); }
@keyframes alx-fault-pulse { to { opacity: .34; } }

/* Evidence as an engineering-output ledger. */
.alx-evidence { padding-block: clamp(6rem,9vw,9rem); background: #eef2f4; }
.alx-evidence__header { display: grid; grid-template-columns: 1.05fr .95fr; gap: clamp(2rem,6vw,6rem); align-items: end; margin-bottom: clamp(3rem,6vw,5rem); }
.alx-evidence__header .alx-section__label { grid-column: 1 / -1; margin-bottom: 0; }
.alx-evidence__header .alx-section__title,
.alx-evidence__header .alx-section__intro { margin: 0; }
.alx-evidence-ledger { --mx: 50%; --my: 50%; border-top: 1px solid var(--alx-line-light); }
.alx-evidence-ledger__row {
  position: relative;
  display: grid;
  grid-template-columns: minmax(8rem,.28fr) minmax(16rem,.82fr) minmax(20rem,1.12fr) auto;
  gap: clamp(1.5rem,4vw,4rem);
  align-items: center;
  min-height: 13.5rem;
  padding: 1.7rem 1rem;
  overflow: hidden;
  border-bottom: 1px solid var(--alx-line-light);
  transition: color .3s ease, background .3s ease, transform .3s ease;
}
.alx-evidence-ledger__row::before { content: ''; position: absolute; inset: 0; z-index: 0; opacity: 0; background: radial-gradient(circle 260px at var(--mx) var(--my), rgba(255,140,0,.16), transparent 72%), var(--alx-deep); transition: opacity .3s ease; }
.alx-evidence-ledger__row > * { position: relative; z-index: 1; }
.alx-evidence-ledger__row:hover { color: var(--alx-white); transform: translateX(.35rem); }
.alx-evidence-ledger__row:hover::before { opacity: 1; }
.alx-evidence-ledger__row:hover h3 { color: var(--alx-white); }
.alx-evidence-ledger__row:hover .alx-evidence-ledger__index span,
.alx-evidence-ledger__row:hover .alx-evidence-ledger__output > span { color: var(--alx-orange); }
.alx-evidence-ledger__index span { display: block; color: var(--alx-orange-dark); font-family: var(--alx-font-mono); font-size: 2.3rem; line-height: 1; }
.alx-evidence-ledger__index small { display: block; margin-top: .55rem; color: var(--alx-blue-grey); font-family: var(--alx-font-mono); font-size: .62rem; letter-spacing: .08em; }
.alx-evidence-ledger__body h3 { margin: 0 0 .8rem; font-size: clamp(1.45rem,2.5vw,2.25rem); }
.alx-evidence-ledger__body p { margin: 0; color: var(--alx-blue-grey); line-height: 1.65; }
.alx-evidence-ledger__output > span { color: var(--alx-orange-dark); font-family: var(--alx-font-mono); font-size: .64rem; font-weight: 700; letter-spacing: .08em; }
.alx-evidence-ledger__output ul { display: grid; gap: .4rem; margin: .75rem 0 0; padding: 0; list-style: none; }
.alx-evidence-ledger__output li { position: relative; padding-left: 1rem; color: var(--alx-ink); font-family: var(--alx-font-mono); font-size: .72rem; }
.alx-evidence-ledger__output li::before { content: ''; position: absolute; left: 0; top: .45em; width: .38rem; height: .38rem; background: var(--alx-orange); transform: rotate(45deg); }
.alx-evidence-ledger__link { display: inline-flex; align-items: center; gap: .5rem; color: var(--alx-ink); font-family: var(--alx-font-mono); font-size: .7rem; font-weight: 700; white-space: nowrap; }
.alx-evidence-ledger__row:hover .alx-evidence-ledger__body p,
.alx-evidence-ledger__row:hover .alx-evidence-ledger__index small,
.alx-evidence-ledger__row:hover .alx-evidence-ledger__output li,
.alx-evidence-ledger__row:hover .alx-evidence-ledger__link { color: var(--alx-white); }

/* Engineer ambient module. */
.alx-engineer { position: relative; overflow: hidden; isolation: isolate; background: var(--alx-deep); }
.alx-engineer__mesh { position: absolute; inset: 0; z-index: -1; width: 100%; height: 100%; opacity: .7; }
.alx-engineer::after { content: ''; position: absolute; inset: 0; z-index: -1; background: linear-gradient(90deg, rgba(20,35,46,.97), rgba(20,35,46,.58), rgba(20,35,46,.9)); }
.alx-engineer__contact-block { background: rgba(13,23,32,.78); backdrop-filter: blur(12px); }
.alx-cta { border-top: 1px solid var(--alx-line-dark); }

@media (max-width: 980px) {
  .alx-spine-intro__inner,
  .alx-domain-scene__inner,
  .alx-domain-scene--energy .alx-domain-scene__inner { grid-template-columns: 1fr; }
  .alx-spine-intro__copy { max-width: 46rem; }
  .alx-se-lifecycle__layout { grid-template-columns: minmax(20rem,.8fr) 1fr; gap: 3rem; }
  .alx-domain-scene--energy .alx-domain-scene__copy,
  .alx-domain-scene--energy .alx-domain-scene__visual { order: initial; }
  .alx-simulator__sequence { grid-template-columns: repeat(3,1fr); }
  .alx-evidence-ledger__row { grid-template-columns: 7rem 1fr; }
  .alx-evidence-ledger__output { grid-column: 2; }
  .alx-evidence-ledger__link { grid-column: 2; }
}

@media (max-width: 900px) {
  .alx-site-header__inner { height: 4.5rem; }
  .alx-site-header__logo-image { height: 2.4rem; max-width: min(13.5rem, 50vw); }
  .alx-primary-nav__list { top: 4.5rem; background: rgba(243,246,248,.99); border-top-color: var(--alx-line-light); }
  .alx-primary-nav__list a { color: var(--alx-ink); }
}

@media (max-width: 767px) {
  .alx-frontpage--cinematic .alx-hero { min-height: calc(100svh - 4.5rem); }
  .alx-frontpage--cinematic .alx-hero__content { min-height: calc(100svh - 4.5rem); padding-top: 4rem; padding-bottom: 7.5rem; }
  .alx-frontpage--cinematic .alx-hero__title { max-width: 12ch; font-size: clamp(2.6rem,14vw,4.2rem); }
  .alx-frontpage--cinematic .alx-hero__lead { max-width: 31rem; }
  .alx-hero__signal { opacity: .32; }
  .alx-hero__signal-label { display: none; }
  .alx-signal-rail__item { padding-inline: 1.25rem; }
  .alx-spine-intro,
  .alx-se-lifecycle,
  .alx-domain-scene,
  .alx-interlock { padding-inline: 1rem; }
  .alx-spine-intro__inner,
  .alx-domain-scene__inner { grid-template-columns: 1fr; gap: 2.5rem; }
  .alx-spine-intro__copy h2,
  .alx-se-lifecycle__header h2,
  .alx-interlock__heading h2 { font-size: clamp(2.25rem,11vw,3.4rem); }
  .alx-vmodel-overview { width: max(100%, 420px); max-width: none; position: relative; left: 50%; transform: translateX(-50%); }
  .alx-spine-intro__figure { overflow: hidden; }
  .alx-se-lifecycle__layout { grid-template-columns: 1fr; gap: 2rem; }
  .alx-se-lifecycle__index { position: relative; top: 0; overflow-x: auto; }
  .alx-se-lifecycle__index ol { min-width: 43rem; }
  .alx-se-lifecycle__visual { position: relative; top: 0; }
  .alx-se-console svg { height: auto; min-height: 0; }
  .alx-se-phase { min-height: 0; padding: 3rem 0 3rem 1.25rem; }
  .alx-se-lifecycle__panels { padding-bottom: 4rem; }
  .alx-spine-intro__ledger { grid-template-columns: 1fr; }
  .alx-spine-intro__ledger div { border-right: 0; border-bottom: 1px solid var(--alx-line-dark); }
  .alx-spine-intro__ledger div:last-child { border-bottom: 0; }
  .alx-domain-scene { min-height: auto; }
  .alx-domain-scene__copy h2 { font-size: clamp(2.5rem,12vw,4rem); }
  .alx-domain-scene__visual svg { width: max(100%, 410px); max-width: none; position: relative; left: 50%; transform: translateX(-50%); }
  .alx-domain-scene__visual { overflow: hidden; }
  .alx-bridge-twin svg { width: max(100%, 540px); max-width: none; position: relative; left: 50%; transform: translateX(-50%); }
  .alx-bridge-twin { overflow: hidden; }
  .alx-simulator__status-bar { grid-template-columns: 1fr auto; }
  .alx-simulator__status-label { display: none; }
  .alx-simulator__diagnostics { grid-template-columns: 1fr; }
  .alx-simulator__progress { grid-column: 1; }
  .alx-simulator__sequence { grid-template-columns: repeat(3,1fr); }
  .alx-simulator__operator { grid-template-columns: 1fr; align-items: stretch; }
  .alx-simulator__controls { width: 100%; }
  .alx-simulator__controls .alx-btn { flex: 1; }
  .alx-bridge-twin__legend { flex-direction: column; gap: .25rem; }
  .alx-evidence__header { grid-template-columns: 1fr; }
  .alx-evidence-ledger__row { grid-template-columns: 1fr; gap: 1.4rem; min-height: 0; padding-block: 2.5rem; }
  .alx-evidence-ledger__output,
  .alx-evidence-ledger__link { grid-column: 1; }
  .alx-evidence-ledger__row:hover { transform: none; }
}

@media (max-width: 420px) {
  .alx-frontpage--cinematic .alx-hero__title { font-size: clamp(2.25rem,13vw,3.2rem); }
  .alx-frontpage--cinematic .alx-hero__actions { width: 100%; }
  .alx-frontpage--cinematic .alx-hero__actions .alx-btn { width: 100%; justify-content: center; }
  .alx-simulator__sequence { grid-template-columns: 1fr 1fr; }
  .alx-domain-scene__telemetry,
  .alx-se-console__telemetry { grid-template-columns: 1fr 1fr; }
  .alx-domain-scene__telemetry div:nth-child(2n),
  .alx-se-console__telemetry div:nth-child(2n) { border-right: 0; }
}

@media (hover: none) {
  .alx-domain-scene__visual::after { opacity: .45; }
}

@media (prefers-reduced-motion: reduce) {
  .alx-hero__signal-live,
  .alx-signal-rail__viewport,
  .alx-scene-signal-path,
  .alx-simulator[data-state] .alx-bridge-twin__signal-flow { animation: none !important; }
  .alx-signal-rail__viewport { width: 100%; }
  .alx-signal-rail__track { flex-wrap: wrap; justify-content: center; white-space: normal; }
  .alx-signal-rail__track[aria-hidden="true"] { display: none; }
  [data-alx-draw] { stroke-dasharray: none !important; stroke-dashoffset: 0 !important; }
  .alx-se-lifecycle__visual { position: relative; top: auto; }
  .alx-se-console__phase,
  .alx-se-phase,
  .alx-evidence-ledger__row { transition: none !important; }
  .alx-se-phase { min-height: 0; }
  .alx-bridge-twin__deck,
  .alx-bridge-twin__barrier,
  .alx-bridge-twin__ship { transition: none !important; }
  .alx-engineer__mesh { display: none; }
}

@media (prefers-contrast: more) {
  .alx-domain-scene__visual,
  .alx-se-console,
  .alx-simulator { border-color: var(--alx-white); }
  .alx-domain-scene__copy > p:not(.alx-kicker),
  .alx-spine-intro__copy > p:not(.alx-kicker),
  .alx-interlock__heading > p:last-child { color: var(--alx-white); }
}
