/*
  V2 — AI CONTROL TOWER
  One memory device: every AI lane stops at the amber Human Approval Gate.
*/

:root {
  --ink: #030b10;
  --navy: #071923;
  --navy-2: #0a2a38;
  --cyan: #48d4dd;
  --cyan-soft: #9aebee;
  --amber: #ffad32;
  --red: #ff5362;
  --green: #21c88b;
  --paper: #edf1f2;
  --line: #aebdc3;
  --muted: #4e6974;
  --shadow: 0 22px 62px rgba(1, 11, 17, .14);
}

body {
  background: #010508;
  font-family: "Aptos Display", Aptos, Inter, "Segoe UI", Arial, sans-serif;
}

.viewport {
  background: var(--ink);
  box-shadow: 0 34px 120px rgba(0, 0, 0, .82);
}

.slide {
  padding: 66px 112px 112px;
  background-color: var(--paper);
}

.slide.light {
  background:
    linear-gradient(90deg, rgba(3, 11, 16, .035), transparent 18%),
    var(--paper);
}

.slide.dark {
  background: #040d12;
}

.slide::before {
  background:
    linear-gradient(90deg, transparent 0 111px, rgba(3, 11, 16, .09) 111px 112px, transparent 112px),
    linear-gradient(rgba(3, 11, 16, .038) 1px, transparent 1px),
    linear-gradient(90deg, rgba(3, 11, 16, .038) 1px, transparent 1px);
  background-size: auto, 88px 88px, 88px 88px;
}

.slide.dark::before {
  background:
    radial-gradient(circle at 72% 28%, rgba(72, 212, 221, .1), transparent 30%),
    linear-gradient(rgba(154, 235, 238, .035) 1px, transparent 1px),
    linear-gradient(90deg, rgba(154, 235, 238, .035) 1px, transparent 1px);
  background-size: auto, 88px 88px, 88px 88px;
}

.slide.active {
  animation: v2StageEnter .72s cubic-bezier(.16, .86, .22, 1) both;
}

@keyframes v2StageEnter {
  0% { opacity: 0; transform: translate3d(0, 34px, 0) scale(1.018); filter: contrast(1.15) brightness(.55); }
  55% { opacity: 1; filter: contrast(1.04) brightness(.94); }
  100% { opacity: 1; transform: none; filter: none; }
}

h1, h2, h3 { letter-spacing: -.052em; }
h2 { font-weight: 800; }
.title-claim {
  position: relative;
  margin: 12px 0 50px;
  max-width: 1530px;
  padding-left: 34px;
  font-size: 72px;
  line-height: .98;
}

.title-claim::before {
  content: "";
  position: absolute;
  left: 0;
  top: 5px;
  bottom: 4px;
  width: 7px;
  background: var(--amber);
}

.slide-head { margin-bottom: 34px; }
.section-label { color: #83dce1; }
.dark-label { color: #155b68; }
.chapter-code {
  min-width: 62px;
  padding-top: 10px;
  border-top: 4px solid currentColor;
  text-align: right;
}

/* Persistent memory rail */
.signature-rail {
  position: absolute;
  z-index: 12;
  top: 94px;
  right: 24px;
  bottom: 91px;
  width: 34px;
  display: flex;
  flex-direction: column;
  align-items: center;
  pointer-events: none;
}

.signature-rail span,
.signature-rail b {
  writing-mode: vertical-rl;
  font-size: 12px;
  font-weight: 900;
  letter-spacing: .17em;
}

.signature-rail span { color: #5a7781; }
.signature-rail i {
  flex: 1;
  width: 1px;
  margin: 14px 0;
  background: linear-gradient(#5e7b85, var(--cyan), var(--amber));
}
.signature-rail b { color: #b66f09; }
.dark .signature-rail span { color: #72909a; }
.dark .signature-rail b { color: #ffc568; }

/* Footer becomes the control-tower status line */
.brand-footer {
  height: 64px;
  gap: 22px;
  padding: 7px 44px 7px 52px;
  background: rgba(2, 10, 14, .985);
  border-top: 0;
}
.footer-brand { height: 48px; }
.footer-snp {
  width: 224px;
  padding: 7px 16px;
  border-radius: 0;
  clip-path: polygon(0 0, 96% 0, 100% 50%, 96% 100%, 0 100%);
}
.footer-snp img { height: 34px; }
.footer-onex {
  width: 118px;
  padding: 5px 10px;
  border-radius: 0;
  border: 0;
}
.footer-onex img { height: 36px; }
.footer-topic {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 18px;
  color: #75909a;
  font-size: 13px;
  letter-spacing: .12em;
}
.footer-topic b { color: #9adfe3; }
.footer-topic strong { color: #ffc46a; }
.footer-topic i { width: 55px; height: 1px; background: #28424c; }
.footer-number { color: var(--amber); }

/* Cover — the real port is the hero; the gate is the promise */
.hero-image {
  background-image: url("assets/images/human-approval-gate.png");
  background-position: center 54%;
  transform: scale(1.075) translate3d(var(--parallax-x, 0px), var(--parallax-y, 0px), 0);
  transition: transform .18s ease-out;
  animation: heroDrift 15s ease-in-out infinite alternate;
}

@keyframes heroDrift {
  from { filter: saturate(.88) contrast(1.08); }
  to { filter: saturate(1.05) contrast(1.13); }
}

.hero-shade {
  background:
    linear-gradient(90deg, rgba(1, 7, 11, .99) 0%, rgba(1, 7, 11, .9) 37%, rgba(1, 7, 11, .24) 66%, rgba(1, 7, 11, .12) 100%),
    linear-gradient(0deg, rgba(1, 7, 11, .94) 0%, transparent 44%);
}
.hero-shade::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(115deg, transparent 47%, rgba(255, 173, 50, .08) 48%, transparent 49%);
  animation: lightSweep 6s ease-in-out infinite;
}
@keyframes lightSweep { 0%, 28% { transform: translateX(-34%); opacity: 0; } 50% { opacity: 1; } 72%, 100% { transform: translateX(34%); opacity: 0; } }

.hero-copy { left: 102px; top: 94px; width: 1130px; }
.kicker.light { color: #9ec1ca; }
.hero-copy h1 {
  margin: 42px 0 28px;
  font-size: 112px;
  line-height: .87;
  font-weight: 860;
  text-transform: uppercase;
  text-shadow: 0 12px 45px rgba(0,0,0,.65);
}
.hero-copy h1 span { color: #9be8eb; }
.hero-sub {
  display: inline-flex;
  align-items: center;
  gap: 18px;
  margin: 0;
  padding: 14px 22px 13px 0;
  border-top: 1px solid rgba(255, 173, 50, .6);
  border-bottom: 1px solid rgba(255, 173, 50, .6);
  color: #ffd18b;
  font-size: 23px;
  font-weight: 900;
  letter-spacing: .12em;
}
.hero-sub span {
  display: grid;
  place-items: center;
  width: 52px;
  height: 42px;
  background: var(--amber);
  color: var(--ink);
}
.speaker-line { margin-top: 34px; }
.cover-brands { left: 102px; bottom: 34px; }
.cover-brand { border-radius: 0; }
.cover-brand.snp-card { clip-path: polygon(0 0, 96% 0, 100% 50%, 96% 100%, 0 100%); }
.hero-gate-sigil {
  position: absolute;
  z-index: 6;
  right: 84px;
  bottom: 58px;
  width: 258px;
  height: 210px;
  padding: 28px 28px;
  border: 5px solid rgba(255, 173, 50, .9);
  border-bottom-width: 13px;
  color: #ffd28e;
  background: rgba(2, 10, 14, .56);
  backdrop-filter: blur(5px);
  box-shadow: 0 0 55px rgba(255, 173, 50, .22), inset 0 0 38px rgba(255, 173, 50, .08);
}
.hero-gate-sigil span { display: block; font-size: 13px; font-weight: 900; letter-spacing: .18em; }
.hero-gate-sigil b { display: block; margin-top: 20px; font-size: 38px; line-height: .86; letter-spacing: -.04em; }
.hero-gate-sigil i { position: absolute; left: 42px; right: 42px; bottom: -13px; height: 13px; background: white; animation: gatePulse 2.2s ease-in-out infinite; }
@keyframes gatePulse { 50% { background: var(--amber); box-shadow: 0 0 34px rgba(255,173,50,.8); } }

/* Opening scenario: more editorial, less "card deck" */
.question-layout { grid-template-columns: .9fr 1.1fr; gap: 86px; }
.question-layout h2 { font-size: 82px; }
.email-card {
  border-radius: 0;
  border: 1px solid #d7e0e3;
  border-top: 12px solid var(--amber);
  box-shadow: 28px 28px 0 rgba(72, 212, 221, .1), 0 35px 90px rgba(0,0,0,.35);
  transform: rotate(-1deg) perspective(900px) rotateY(-3deg);
}
.audience-prompt {
  padding: 15px 20px;
  border-left: 5px solid var(--amber);
  background: rgba(255, 255, 255, .045);
}

/* Flat briefing lines replace repeated white cards */
.error-stack { gap: 0; border-top: 1px solid #9babb1; }
.error-line {
  min-height: 143px;
  padding: 25px 12px;
  background: transparent;
  border: 0;
  border-bottom: 1px solid #b7c3c8;
  box-shadow: none;
}
.error-no { font-size: 58px; line-height: 1; color: #98a8ae; }
.error-tag { border-radius: 0; }

/* Manifesto — the recurring line should be read aloud */
.manifesto {
  padding: 102px 112px 118px;
  background: #02070a;
}
.manifesto::before {
  display: block;
  background:
    linear-gradient(90deg, #02070a 0%, rgba(2,7,10,.96) 38%, rgba(2,7,10,.35) 70%, rgba(2,7,10,.72) 100%),
    url("assets/images/human-approval-gate.png") center / cover no-repeat;
  opacity: .86;
}
.manifesto-copy { width: 1180px; }
.manifesto-copy h2 {
  margin: 58px 0 42px;
  font-size: 142px;
  line-height: .78;
  letter-spacing: -.075em;
}
.manifesto-copy h2 span { color: var(--amber); }
.manifesto-copy > p:last-child { width: 830px; color: #c2d3d8; }
.manifesto-mark {
  right: 72px;
  top: 214px;
  width: 380px;
  padding: 48px 34px 64px;
  border: 6px solid rgba(255,173,50,.72);
  border-bottom-width: 18px;
  color: rgba(255, 190, 91, .92);
  font-size: 66px;
  line-height: .85;
  letter-spacing: -.05em;
  background: rgba(2, 7, 10, .63);
  text-shadow: 0 0 35px rgba(255,173,50,.2);
}
.manifesto-mark small { display: block; margin-bottom: 38px; font-size: 13px; letter-spacing: .18em; }
.manifesto-rule { width: 360px; background: linear-gradient(90deg, var(--amber) 72%, white 72% 78%, transparent 78%); }

/* 4-question control sequence */
.four-questions { gap: 0; min-height: 514px; border-top: 1px solid #9cabb1; border-bottom: 1px solid #9cabb1; }
.question-block {
  padding: 36px 30px;
  background: transparent;
  border: 0;
  border-left: 1px solid #aebbc0;
  box-shadow: none;
  transform: none !important;
}
.question-block:first-child { border-left: 0; }
.question-block b { margin-bottom: 112px; font-size: 76px; line-height: .8; color: rgba(3,11,16,.13); }
.question-block::after { content: ""; position: absolute; left: 30px; bottom: 0; width: 70px; height: 8px; background: #76919b; }
.q2::after { background: var(--cyan); }.q3::after { background: var(--amber); }.q4::after { background: var(--red); }

/* Split: two decisions collide at the approval line */
.split-slide { padding-bottom: 64px; }
.split-slide::after {
  content: "HUMAN APPROVAL";
  position: absolute;
  z-index: 4;
  left: calc(50% - 26px);
  top: 455px;
  padding: 15px 7px;
  background: var(--amber);
  color: var(--ink);
  writing-mode: vertical-rl;
  font-size: 13px;
  font-weight: 950;
  letter-spacing: .12em;
}
.value-side { background: #061c26; }
.authority-side { background: #e7ecee; }

/* Tool constellation — official product icons, visibly different authority */
.tool-route {
  gap: 0;
  padding: 0;
  min-height: 485px;
  background: #06131a;
  border-top: 8px solid #163b46;
  overflow: hidden;
}
.tool-route::before {
  left: 0;
  right: 0;
  top: auto;
  bottom: 0;
  height: 12px;
  background: linear-gradient(90deg, var(--cyan) 0 74%, var(--amber) 74% 100%);
}
.tool-route::after {
  content: "ALL OUTPUTS STOP HERE  →  HUMAN APPROVAL";
  position: absolute;
  right: 30px;
  bottom: 24px;
  color: #ffcd7e;
  font-size: 13px;
  font-weight: 900;
  letter-spacing: .16em;
}
.tool-stop,
.agent-stop {
  min-height: 485px;
  padding: 28px 30px 54px;
  background: transparent;
  color: white;
  border-left: 1px solid #25444e;
  box-shadow: none;
  transform: none;
}
.tool-stop:first-child { border-left: 0; }
.tool-index {
  left: auto;
  right: 24px;
  top: 22px;
  width: auto;
  height: auto;
  border-radius: 0;
  background: transparent;
  color: #6f8d97;
  box-shadow: none;
}
.tool-icon {
  width: 92px;
  height: 92px;
  margin-bottom: 24px;
  display: grid;
  place-items: center;
  background: white;
  overflow: hidden;
}
.tool-icon img { width: 100%; height: 100%; object-fit: contain; }
.chatgpt-stop .tool-icon { padding: 5px; }
.gemini-stop .tool-icon { padding: 12px; background: #f7f8fa; }
.tool-glyph {
  background: #e7e4ff;
  color: #4e39c9;
  font-size: 60px;
  font-weight: 850;
  font-family: Georgia, serif;
}
.agent-glyph { position: relative; background: #131f25; border: 2px solid var(--amber); }
.agent-glyph i { position: absolute; width: 14px; height: 14px; border-radius: 50%; background: var(--amber); box-shadow: 0 0 18px rgba(255,173,50,.55); }
.agent-glyph i:nth-child(1){left:14px;top:15px}.agent-glyph i:nth-child(2){right:14px;top:15px}.agent-glyph i:nth-child(3){left:14px;bottom:15px}.agent-glyph i:nth-child(4){right:14px;bottom:15px}
.agent-glyph::before,.agent-glyph::after { content:""; position:absolute; left:22px; right:22px; top:44px; height:2px; background:#9a702d; transform:rotate(35deg); }
.agent-glyph::after { transform:rotate(-35deg); }
.tool-stop h3 { margin: 0 0 20px; font-size: 42px; }
.tool-stop p { min-height: 102px; color: #b8cbd1; font-size: 23px; }
.tool-stop b { margin-top: 18px; padding-top: 18px; border-color: #34515b; color: #83e0e5; font-size: 18px; }
.agent-stop b { color: #ffcb78; }
.slide.active .tool-stop { animation: toolOnline .64s cubic-bezier(.16,.86,.22,1) both; }
.slide.active .tool-stop:nth-child(2) { animation-delay: .09s; }
.slide.active .tool-stop:nth-child(3) { animation-delay: .18s; }
.slide.active .tool-stop:nth-child(4) { animation-delay: .27s; }
@keyframes toolOnline { from { opacity: 0; transform: translateY(28px); filter: brightness(.3); } to { opacity: 1; transform: none; filter: none; } }
.tool-rule {
  margin-top: 24px;
  padding: 15px 20px;
  background: var(--amber);
  color: var(--ink);
  font-weight: 900;
  letter-spacing: .03em;
}

/* Chapters get a sweeping physical gate instead of a decorative number */
.chapter-slide::after {
  content: "";
  position: absolute;
  z-index: 1;
  right: 110px;
  top: 132px;
  width: 500px;
  height: 550px;
  border: 28px solid rgba(255, 173, 50, .7);
  border-bottom-width: 70px;
  box-shadow: 0 0 90px rgba(255,173,50,.12), inset 0 0 80px rgba(255,173,50,.08);
}
.chapter-number { z-index: 2; right: 146px; top: 45px; color: rgba(255, 83, 98, .15); }
.chapter-copy { z-index: 4; }
.risk-radar { z-index: 3; right: 171px; bottom: 116px; }

.risk-chain { gap: 0; margin-top: 70px; }
.risk-item {
  min-height: 345px;
  padding: 26px 24px;
  background: transparent;
  border: 0;
  border-top: 7px solid #8ea3ab;
  border-right: 1px solid #b5c1c5;
  box-shadow: none;
}
.risk-item:first-child { border-left: 1px solid #b5c1c5; }
.agent-risk { background: #071923; border-color: var(--red); }
.chain-arrow { position: relative; z-index: 2; margin: 0 -12px; }

/* Keep interaction controls tactile, but never bubble-like */
.scenario,
.scrub-panel,
.finding,
.prompt-frame,
.commitment-form,
.approval-table {
  border-radius: 0;
  box-shadow: none;
}
.scenario { border-left-width: 8px; border-top: 1px solid #c3cdd1; border-bottom: 1px solid #c3cdd1; }
.scenario:hover { transform: translateX(7px); }
.action-btn { border-radius: 0; clip-path: polygon(0 0, 94% 0, 100% 50%, 94% 100%, 0 100%); }

/* Photo chapters: anamorphic crop and hard amber locator */
.photo-bg { inset: 0 0 64px; transform: scale(1.035); animation: photoBreathe 11s ease-in-out infinite alternate; }
@keyframes photoBreathe { to { transform: scale(1.075) translateX(-10px); } }
.photo-overlay { inset: 0 0 64px; }
.photo-copy h2 { font-size: 98px; line-height: .9; }
.photo-copy::before { content: ""; position: absolute; left: -30px; top: 52px; bottom: 12px; width: 9px; background: var(--amber); }
.photo-copy.right::before { left: auto; right: -30px; }
.case-badge { border-left: 8px solid white; }

/* Human approval slide gets a true physical stop line */
.approval-slide::after,
.approval-matrix-slide::after {
  content: "FINAL GATE";
  position: absolute;
  z-index: -1;
  right: 60px;
  bottom: 84px;
  color: rgba(255,173,50,.11);
  font-size: 154px;
  font-weight: 950;
  letter-spacing: -.06em;
}
.approval-table thead { background: #06131a; }
.approval-table tbody tr:nth-child(even) { background: rgba(255,255,255,.58); }
.approval-table tbody tr { border-bottom: 1px solid #bdc8cc; }

/* Closing returns to exactly the same gate and line */
.closing-slide::before {
  display: block;
  background:
    linear-gradient(90deg, rgba(1,6,9,.99) 0%, rgba(1,6,9,.8) 47%, rgba(1,6,9,.18) 76%, rgba(1,6,9,.42) 100%),
    linear-gradient(0deg, rgba(1,6,9,.72), transparent 43%),
    url("assets/images/human-approval-gate.png") center / cover no-repeat;
}
.closing-slide::after {
  content: "HUMAN\A APPROVED";
  white-space: pre;
  position: absolute;
  right: 92px;
  top: 180px;
  width: 330px;
  padding: 36px 30px 48px;
  border: 5px solid rgba(255,173,50,.8);
  border-bottom-width: 14px;
  background: rgba(1, 7, 10, .62);
  color: #ffd28d;
  font-size: 52px;
  font-weight: 900;
  line-height: .82;
  letter-spacing: -.04em;
  text-align: center;
  box-shadow: 0 0 56px rgba(255,173,50,.13);
}
.closing-grid { display: none; }
.closing-copy { left: 108px; top: 82px; width: 1360px; }
.closing-copy h2 { font-size: 105px; line-height: .84; text-shadow: 0 12px 42px rgba(0,0,0,.7); }
.closing-copy h2 em { color: var(--amber); }
.closing-three { margin: 50px 0 62px; }
.closing-three span {
  min-width: 270px;
  border: 0;
  border-left: 6px solid var(--cyan);
  background: rgba(2, 9, 13, .67);
  backdrop-filter: blur(5px);
}
.closing-three span:nth-child(2) { border-color: var(--amber); }
.closing-three span:nth-child(3) { border-color: var(--red); }
.closing-brands { bottom: 32px; }
.amber { color: #ffc367; }

/* Step reveals are strong enough to feel intentional from the back of the room */
.step {
  opacity: 0;
  transform: translate3d(0, 28px, 0) scale(.975);
  filter: blur(7px);
  transition: opacity .48s ease, transform .62s cubic-bezier(.16,.86,.22,1), filter .48s ease;
}
.step.revealed { opacity: 1; transform: none; filter: none; }

#ambient { opacity: 0; }
.viewport.has-ambient #ambient { opacity: .42; }

/* Gate wipe: only the chapter changes use this full visual punctuation. */
.gate-transition {
  position: absolute;
  inset: 0;
  z-index: 66;
  visibility: hidden;
  pointer-events: none;
  overflow: hidden;
}
.gate-transition.run { visibility: visible; }
.gate-wing {
  position: absolute;
  top: 0;
  bottom: 0;
  width: 52%;
  display: flex;
  align-items: center;
  background: #02080b;
}
.gate-wing span { color: #607983; font-size: 14px; font-weight: 900; letter-spacing: .2em; }
.gate-left { left: 0; justify-content: flex-start; padding-left: 72px; border-right: 8px solid var(--amber); transform: translateX(-104%); }
.gate-right { right: 0; justify-content: flex-end; padding-right: 72px; border-left: 8px solid var(--amber); transform: translateX(104%); }
.gate-lock {
  position: absolute;
  z-index: 3;
  left: 50%;
  top: 50%;
  width: 310px;
  padding: 30px 34px 38px;
  border: 5px solid var(--amber);
  border-bottom-width: 14px;
  color: #ffd28e;
  background: #030b10;
  opacity: 0;
  transform: translate(-50%, -50%) scale(.55);
  text-align: center;
}
.gate-lock small { display: block; margin-bottom: 20px; font-size: 12px; font-weight: 900; letter-spacing: .2em; }
.gate-lock b { font-size: 44px; line-height: .83; }
.gate-transition.run .gate-left { animation: wingLeft .96s cubic-bezier(.76,0,.18,1) both; }
.gate-transition.run .gate-right { animation: wingRight .96s cubic-bezier(.76,0,.18,1) both; }
.gate-transition.run .gate-lock { animation: lockFlash .96s ease both; }
@keyframes wingLeft { 0%{transform:translateX(-104%)} 36%,60%{transform:translateX(0)} 100%{transform:translateX(-104%)} }
@keyframes wingRight { 0%{transform:translateX(104%)} 36%,60%{transform:translateX(0)} 100%{transform:translateX(104%)} }
@keyframes lockFlash { 0%,30%{opacity:0;transform:translate(-50%,-50%) scale(.5)} 42%,58%{opacity:1;transform:translate(-50%,-50%) scale(1)} 72%,100%{opacity:0;transform:translate(-50%,-50%) scale(1.18)} }

/* Browser-native cinematic transitions, with robust slide animation fallback above. */
::view-transition-old(root),
::view-transition-new(root) { animation-duration: .78s; animation-timing-function: cubic-bezier(.76,0,.18,1); }
html[data-direction="back"]::view-transition-old(root) { animation-name: trackOldBack; }
html[data-direction="back"]::view-transition-new(root) { animation-name: trackNewBack; }
html[data-direction="forward"]::view-transition-old(root) { animation-name: trackOld; }
html[data-direction="forward"]::view-transition-new(root) { animation-name: trackNew; }
html[data-transition="aperture"]::view-transition-old(root) { animation-name: apertureOld; }
html[data-transition="aperture"]::view-transition-new(root) { animation-name: apertureNew; }
html[data-transition="gate"]::view-transition-old(root) { animation-name: gateOld; animation-duration: .95s; }
html[data-transition="gate"]::view-transition-new(root) { animation-name: gateNew; animation-duration: .95s; }
@keyframes trackOld { to { transform: translateX(-13%) scale(.94); filter: brightness(.35); } }
@keyframes trackNew { from { transform: translateX(16%) scale(1.04); clip-path: inset(0 0 0 100%); } to { transform: none; clip-path: inset(0); } }
@keyframes trackOldBack { to { transform: translateX(13%) scale(.94); filter: brightness(.35); } }
@keyframes trackNewBack { from { transform: translateX(-16%) scale(1.04); clip-path: inset(0 100% 0 0); } to { transform: none; clip-path: inset(0); } }
@keyframes apertureOld { to { transform: scale(1.1); filter: brightness(.2) blur(5px); clip-path: inset(45% 0 45% 0); } }
@keyframes apertureNew { from { transform: scale(.94); filter: brightness(1.5); clip-path: inset(50% 0 50% 0); } to { transform: none; filter: none; clip-path: inset(0); } }
@keyframes gateOld { to { transform: scale(.88); filter: brightness(.1); } }
@keyframes gateNew { from { transform: scale(1.12); filter: brightness(.45) contrast(1.3); } to { transform: none; filter: none; } }

.progress-fill { background: linear-gradient(90deg, var(--cyan) 0 82%, var(--amber) 82%); transition: width .45s cubic-bezier(.16,.86,.22,1); }
.hud { border-radius: 0; border-left: 3px solid var(--amber); }
.hud-btn { border-radius: 0; }

@media print {
  .signature-rail, .gate-transition { display: none !important; }
}

@media (prefers-reduced-motion: reduce) {
  .hero-image, .photo-bg { animation: none !important; }
}
