:root {
  --cream: #f3eee5;
  --ink: #141310;
  --muted: #686259;
  --muted-text: #5f5951;
  --green: #51a800;
  --green-text: #2f7000;
  --orange: #e68c35;
  --orange-text: #984900;
  --line: #cec5b8;
  --app-height: 100svh;
}

* { box-sizing: border-box; }

html { scroll-behavior: smooth; }

body {
  margin: 0;
  overflow-x: hidden;
  background: var(--cream);
  color: var(--ink);
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  transition: background-color 420ms ease;
}

a { color: inherit; text-decoration: none; }
button { color: inherit; font: inherit; }

.skip-link {
  position: fixed;
  top: 8px;
  left: 8px;
  z-index: 100;
  padding: 9px 12px;
  transform: translateY(-140%);
  background: var(--ink);
  color: var(--cream);
}

.skip-link:focus { transform: translateY(0); }

.topbar {
  position: fixed;
  inset: 0 0 auto;
  z-index: 30;
  display: flex;
  height: 64px;
  align-items: center;
  justify-content: space-between;
  padding: 0 28px;
}

.brand { font-size: 19px; font-weight: 850; }
.brand span { color: var(--green); }

.top-actions,
.trust-nav {
  display: flex;
  align-items: center;
}

.top-actions { gap: 22px; }
.trust-nav { gap: 18px; }

.trust-nav a {
  color: var(--muted);
  font-size: 11px;
  font-weight: 750;
}

.trust-nav a:hover,
.trust-nav a:focus-visible { color: var(--ink); }

.top-cta {
  padding: 8px 12px;
  border: 1px solid currentColor;
  font-size: 12px;
  font-weight: 800;
}

.progress {
  position: fixed;
  bottom: 24px;
  left: 28px;
  z-index: 30;
  display: grid;
  grid-template-columns: auto 34px auto;
  align-items: center;
  gap: 9px;
  color: var(--muted-text);
  font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
  font-size: 10px;
  font-weight: 800;
}

.progress i { height: 1px; background: currentColor; }

.chapter-controls {
  position: fixed;
  right: 28px;
  bottom: 18px;
  z-index: 31;
  display: flex;
  border: 1px solid rgba(20, 19, 16, 0.42);
  background: rgba(243, 238, 229, 0.92);
  backdrop-filter: blur(8px);
}

.chapter-controls button {
  display: grid;
  width: 38px;
  height: 34px;
  place-items: center;
  padding: 0;
  border: 0;
  border-left: 1px solid rgba(20, 19, 16, 0.2);
  background: transparent;
  cursor: pointer;
  font-size: 15px;
  font-weight: 850;
}

.chapter-controls button:first-child { border-left: 0; }
.chapter-controls button:hover,
.chapter-controls button:focus-visible { background: rgba(81, 168, 0, 0.14); }
.chapter-controls button:disabled { cursor: default; opacity: 0.32; }

.motion-toggle i {
  width: 3px;
  height: 13px;
  background: currentColor;
  box-shadow: 6px 0 0 currentColor;
  transform: translateX(-3px);
}

.motion-toggle[aria-pressed="true"] i {
  width: 0;
  height: 0;
  border-top: 7px solid transparent;
  border-bottom: 7px solid transparent;
  border-left: 10px solid currentColor;
  background: transparent;
  box-shadow: none;
  transform: translateX(1px);
}

.chapter-announcement {
  position: fixed;
  width: 1px;
  height: 1px;
  overflow: hidden;
  clip: rect(0 0 0 0);
  clip-path: inset(50%);
  white-space: nowrap;
}

.stage,
.panels {
  position: fixed;
  inset: 0;
  height: var(--app-height);
}

.stage { z-index: 1; overflow: hidden; }
.panels { z-index: 5; pointer-events: none; }

#journey-canvas {
  position: absolute;
  inset: 0;
  z-index: 1;
  display: block;
  width: 100%;
  height: 100%;
}

#journey-svg {
  position: absolute;
  inset: 0;
  z-index: 3;
  display: block;
  width: 100%;
  height: 100%;
  overflow: visible;
  pointer-events: none;
}

#journey-world {
  transform-box: fill-box;
  transform-origin: 0 0;
}

#journey-line,
#journey-tree path {
  fill: none;
  stroke: var(--ink);
  stroke-linecap: round;
  stroke-linejoin: round;
  vector-effect: non-scaling-stroke;
}

#journey-line {
  stroke-width: 2.3;
  transition: stroke 260ms ease, opacity 220ms ease;
}

#journey-tree {
  opacity: 0;
  transition: opacity 260ms ease;
}

#journey-tree path { stroke-width: var(--branch-width, 2); }
#journey-tree circle { fill: var(--green); }

#journey-walker {
  position: absolute;
  top: 0;
  left: 0;
  z-index: 4;
  width: 22px;
  height: 30px;
  color: var(--ink);
  opacity: 0;
  transform: translate3d(-100px, -100px, 0);
  transform-origin: 50% 100%;
  will-change: transform;
  pointer-events: none;
}

#journey-walker svg {
  display: block;
  width: 100%;
  height: 100%;
  overflow: visible;
}

.walker-head {
  fill: var(--cream);
  stroke: currentColor;
  stroke-width: 1.9;
}

.walker-body {
  fill: var(--cream);
  stroke: currentColor;
  stroke-width: 1.9;
  stroke-linejoin: round;
}

.walker-legs {
  fill: none;
  stroke: currentColor;
  stroke-width: 1.9;
  stroke-linecap: round;
}

.walker-signal { fill: var(--orange); }

.stage-word {
  position: absolute;
  z-index: 2;
  top: 15%;
  left: 50%;
  transform: translateX(-50%);
  color: rgba(20, 19, 16, 0.025);
  font-family: Georgia, "Times New Roman", serif;
  font-size: 210px;
  line-height: 1;
  white-space: nowrap;
  transition: opacity 360ms ease;
}

.panel {
  position: absolute;
  inset: 0;
  display: grid;
  align-items: end;
  justify-items: center;
  padding: 70px 24px 80px;
  opacity: 0;
  transform: translateY(18px);
  transition: opacity 260ms ease, transform 380ms ease;
}

.panel.is-active {
  opacity: 1;
  transform: translateY(0);
  pointer-events: auto;
}

.panel-copy {
  width: min(760px, 90vw);
  margin-bottom: 0;
  text-align: center;
}

.step-label,
.overline,
.scroll-hint,
.micro-data,
.rule-sequence {
  font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
  text-transform: uppercase;
}

.step-label,
.overline {
  margin: 0 0 13px;
  color: #6f685f;
  font-size: 10px;
  font-weight: 800;
  letter-spacing: 0.12em;
}

.step-label span { color: var(--orange-text); }

h1,
h2 {
  margin: 0;
  font-family: Georgia, "Times New Roman", serif;
  font-weight: 500;
  letter-spacing: 0;
}

h1 {
  font-size: 88px;
  line-height: 0.82;
}

h2 {
  font-size: 54px;
  line-height: 0.92;
}

h1 em,
h2 em {
  color: #4f4b45;
  font-weight: 500;
}

.panel-copy > p:not(.step-label) {
  max-width: 650px;
  margin: 17px auto 0;
  color: #514c45;
  font-size: 17px;
  line-height: 1.5;
}

.panel-hero {
  align-items: center;
  padding-top: 84px;
  text-align: center;
}

.panel-hero h1 { margin-top: 0; }

.mission-mark {
  position: relative;
  width: 74px;
  height: 70px;
  margin-bottom: 20px;
}

.mission-mark::before,
.mission-mark::after,
.mission-mark span {
  position: absolute;
  left: calc(50% - 1.5px);
  width: 3px;
  border-radius: 2px;
  background: var(--ink);
  content: "";
}

.mission-mark::before {
  bottom: 4px;
  height: 35px;
}

.mission-mark::after,
.mission-mark span {
  bottom: 39px;
  height: 32px;
  transform-origin: 50% 100%;
}

.mission-mark::after { transform: rotate(-46deg); }
.mission-mark span { transform: rotate(46deg); }

.mission-mark i {
  position: absolute;
  top: 26px;
  left: calc(50% - 5px);
  width: 10px;
  height: 10px;
  border-radius: 50%;
  background: var(--orange);
  box-shadow: 0 0 0 5px rgba(230, 140, 53, 0.16);
}

.mission-mark i::before,
.mission-mark i::after {
  position: absolute;
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: var(--ink);
  content: "";
}

.mission-mark i::before {
  top: -28px;
  left: -21px;
  box-shadow: 42px 0 0 var(--ink);
}

.mission-mark i::after {
  top: 35px;
  left: 2px;
}

.intro {
  max-width: 600px;
  margin: 25px auto 0;
  color: var(--muted);
  font-size: 17px;
  line-height: 1.45;
}

.language-switcher {
  display: inline-flex;
  margin-top: 20px;
  border: 1px solid rgba(20, 19, 16, 0.42);
  background: rgba(243, 238, 229, 0.82);
}

.language-switcher button {
  width: 42px;
  height: 32px;
  padding: 0;
  border: 0;
  border-left: 1px solid rgba(20, 19, 16, 0.2);
  background: transparent;
  cursor: pointer;
  font-size: 10px;
  font-weight: 850;
}

.language-switcher button:first-child { border-left: 0; }
.language-switcher button:hover,
.language-switcher button:focus-visible { background: rgba(81, 168, 0, 0.12); }
.language-switcher button[aria-pressed="true"] { background: var(--ink); color: var(--cream); }

.mission-facts {
  display: flex;
  justify-content: center;
  gap: 0;
  margin: 18px auto 0;
  padding: 0;
  color: var(--muted-text);
  font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
  font-size: 9px;
  font-weight: 750;
  list-style: none;
  text-transform: uppercase;
}

.mission-facts li {
  padding: 0 12px;
  border-left: 1px solid var(--line);
}

.mission-facts li:first-child { border-left: 0; }

.panel-copy > .trust-note {
  max-width: 560px;
  margin-top: 13px;
  color: #686259;
  font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
  font-size: 10px;
  line-height: 1.45;
}

.trust-note span {
  color: var(--orange-text);
  font-weight: 800;
  text-transform: uppercase;
}

.trust-note a {
  border-bottom: 1px solid currentColor;
  font-weight: 800;
}

.scroll-hint {
  position: absolute;
  bottom: 28px;
  left: 50%;
  transform: translateX(-50%);
  color: #6f685f;
  font-size: 9px;
  letter-spacing: 0.2em;
}

.scroll-hint b { color: var(--ink); font-size: 14px; }

.micro-data {
  position: absolute;
  top: 37%;
  color: #6f685f;
  font-size: 11px;
  letter-spacing: 0.08em;
}

.code-data {
  left: 69%;
  color: var(--ink);
  font-size: 15px;
  font-weight: 900;
}

.code-data span { color: var(--green); }
.scene-data { left: 15%; }
.consequence-data { right: 11%; }
.proof-data { right: 16%; }

.ai-call-visual {
  position: absolute;
  top: 7%;
  left: 50%;
  width: min(260px, 62vw);
  aspect-ratio: 1;
  overflow: visible;
  background: transparent;
  transform: translateX(-50%);
}

.ai-call-visual::before {
  position: absolute;
  z-index: -1;
  inset: -10px;
  border: 1px solid rgba(20, 19, 16, 0.48);
  border-radius: 50%;
  content: "";
  animation: call-ring-in 700ms ease-out 1 both;
}

.ai-call-visual::after {
  position: absolute;
  z-index: -1;
  top: calc(100% + 10px);
  left: 50%;
  width: 1px;
  height: 38px;
  background: rgba(20, 19, 16, 0.72);
  content: "";
}

.ai-call-crop {
  position: absolute;
  inset: 0;
  overflow: hidden;
  border: 1px solid rgba(20, 19, 16, 0.72);
  border-radius: 50%;
  background: #d9dedb;
}

.ai-call-video {
  display: block;
  width: 100%;
  height: 100%;
  filter: saturate(0.84) contrast(0.98);
  object-fit: cover;
  object-position: 50% 32%;
  transform: scale(1.55);
  transform-origin: 50% 0;
}

.panel:not(.is-active) .ai-call-video { display: none; }

.ai-call-quote {
  position: absolute;
  right: 8%;
  bottom: 14%;
  left: 8%;
  z-index: 2;
  height: 34px;
  margin: 0;
  color: #fff;
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(18px, 2.2vw, 28px);
  font-weight: 700;
  line-height: 1;
  text-align: center;
  text-shadow: 0 2px 12px rgba(0, 0, 0, 0.78);
  pointer-events: none;
}

.ai-call-quote span {
  position: absolute;
  inset: 0;
  display: grid;
  place-items: center;
  opacity: 0;
  transform: translateY(8px);
  transition: opacity 180ms ease, transform 220ms ease;
}

.ai-call-quote span.is-visible {
  opacity: 1;
  transform: translateY(0);
}

.ai-call-quote span:last-child {
  color: #f4a04b;
  font-style: italic;
}

@keyframes call-ring-in {
  from { opacity: 0; transform: scale(0.9); }
  to { opacity: 1; transform: scale(1); }
}

.ai-call-status {
  position: absolute;
  z-index: 1;
  bottom: -32px;
  left: 50%;
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 3px 7px;
  transform: translateX(-50%);
  background: var(--cream);
  color: #5f5951;
  font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
  font-size: 8px;
  font-weight: 850;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  white-space: nowrap;
}

.ai-call-status i {
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: var(--orange);
}

.ki-redaction-visual {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  margin: 0;
  overflow: visible;
  pointer-events: none;
}

.redaction-points {
  position: absolute;
  inset: 0;
  margin: 0;
  padding: 0;
  list-style: none;
}

.redaction-points li {
  position: absolute;
  top: var(--point-y);
  left: var(--point-x);
  width: 1px;
  height: 90px;
  background: linear-gradient(to bottom, var(--ink) 0 44%, transparent 44% 56%, var(--ink) 56% 100%);
  opacity: 0;
  transform: translate(-50%, -50%);
}

.redaction-points li > i {
  position: absolute;
  top: 50%;
  left: 50%;
  z-index: 2;
  width: 15px;
  height: 15px;
  border: 2px solid var(--orange);
  border-radius: 50%;
  background: var(--cream);
  transform: translate(-50%, -50%);
}

.redaction-points li > i::after {
  position: absolute;
  inset: 3px;
  border-radius: 50%;
  background: var(--orange);
  content: "";
}

.redaction-points li > span {
  position: absolute;
  left: 50%;
  display: grid;
  justify-items: center;
  gap: 4px;
  transform: translateX(-50%);
  white-space: nowrap;
}

.redaction-points li.is-above > span { bottom: calc(100% + 9px); }
.redaction-points li.is-below > span { top: calc(100% + 9px); }

.redaction-points b,
.redaction-output span {
  color: #6d675f;
  font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
  font-size: clamp(7px, 0.68vw, 10px);
  font-weight: 850;
  letter-spacing: 0.07em;
  text-transform: uppercase;
}

.redaction-points em {
  position: relative;
  display: block;
  padding: 3px 5px;
  color: var(--orange);
  font-size: clamp(6px, 0.58vw, 8px);
  font-style: normal;
  font-weight: 760;
}

.redaction-points em::after {
  position: absolute;
  inset: 1px 0;
  background: var(--ink);
  content: "";
  transform: scaleX(0);
  transform-origin: 0 50%;
}

.panel.is-active .redaction-points li {
  animation: reveal-redaction-point 280ms ease-out var(--point-delay) 1 forwards;
}

.panel.is-active .redaction-points li > i {
  animation: approve-redaction-point 520ms ease-out calc(var(--point-delay) + 360ms) 1 forwards;
}

.panel.is-active .redaction-points em::after {
  animation: redact-story-value 340ms ease-out calc(var(--point-delay) + 180ms) 1 forwards;
}

.redaction-output {
  position: absolute;
  top: 50%;
  left: 90%;
  display: grid;
  justify-items: center;
  gap: 9px;
  color: var(--green);
  opacity: 0;
  transform: translate(-50%, -50%);
}

.redaction-output i {
  position: relative;
  width: 24px;
  height: 24px;
  border: 2px solid currentColor;
  border-radius: 50%;
}

.redaction-output i::before {
  position: absolute;
  top: 5px;
  left: 5px;
  width: 9px;
  height: 5px;
  border-bottom: 2px solid currentColor;
  border-left: 2px solid currentColor;
  content: "";
  transform: rotate(-45deg);
}

.redaction-output span { color: var(--green-text); }

.panel.is-active .redaction-output {
  animation: reveal-redaction-output 420ms ease-out 3.25s 1 forwards;
}

.redaction-mission-preview {
  position: absolute;
  top: 7%;
  left: 50%;
  z-index: 8;
  width: min(560px, 86vw);
  aspect-ratio: 16 / 9;
  overflow: hidden;
  border: 1px solid rgba(20, 19, 16, 0.48);
  background: #faf8f3;
  box-shadow: 0 18px 50px rgba(20, 19, 16, 0.12);
  opacity: 0;
  transform: translate(-50%, -12px) scale(0.94);
  transition: opacity 420ms ease, transform 520ms ease;
}

.redaction-mission-preview header {
  display: flex;
  height: 42px;
  align-items: center;
  justify-content: space-between;
  padding: 0 16px;
  background: #233a37;
  color: #fff;
}

.redaction-mission-preview header strong {
  font-size: 13px;
}

.redaction-mission-preview header em {
  color: #cbd6d2;
  font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
  font-size: 7px;
  font-style: normal;
  font-weight: 800;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.redaction-mission-preview > div {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 16px;
  height: calc(100% - 42px);
  padding: 17px;
}

.redaction-mission-preview section {
  min-width: 0;
  padding: 15px;
  border: 1px solid #d8d0c5;
  background: #fffdf9;
}

.redaction-mission-preview section:first-child {
  background: #f1f7f4;
}

.redaction-mission-preview small {
  display: block;
  margin-bottom: 11px;
  color: #6d746f;
  font-size: 8px;
  font-weight: 800;
}

.redaction-mission-preview section b {
  display: block;
  color: #26231f;
  font-size: 11px;
  line-height: 1.35;
}

.preview-redactions {
  display: grid;
  gap: 7px;
  margin-top: 15px;
}

.preview-redactions i {
  display: block;
  height: 9px;
  background: var(--ink);
}

.preview-redactions i:nth-child(1) { width: 84%; }
.preview-redactions i:nth-child(2) { width: 96%; }
.preview-redactions i:nth-child(3) { width: 77%; }
.preview-redactions i:nth-child(4) { width: 90%; }

.preview-meter {
  display: block;
  height: 4px;
  margin-top: 24px;
  background: #e2ddd3;
}

.preview-meter i {
  display: block;
  width: 78%;
  height: 100%;
  background: var(--green);
}

.redaction-mission-preview mark {
  display: block;
  margin-top: 10px;
  background: transparent;
  color: var(--green-text);
  font-size: 8px;
  font-weight: 850;
}

.panel.is-preview-visible .redaction-points,
.panel.is-preview-visible .redaction-output {
  opacity: 0.08;
  transition: opacity 360ms ease;
}

.panel.is-preview-visible .redaction-mission-preview {
  opacity: 1;
  transform: translate(-50%, 0) scale(1);
}

@keyframes reveal-redaction-point {
  from { opacity: 0; transform: translate(-50%, -50%) scale(0.72); }
  to { opacity: 1; transform: translate(-50%, -50%) scale(1); }
}

@keyframes redact-story-value {
  to { transform: scaleX(1); }
}

@keyframes approve-redaction-point {
  to { border-color: var(--green); background: var(--green); }
}

@keyframes reveal-redaction-output {
  from { opacity: 0; transform: translate(-50%, -50%) scale(0.7); }
  to { opacity: 1; transform: translate(-50%, -50%) scale(1); }
}

.decision-mission-visual {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  margin: 0;
  overflow: visible;
  pointer-events: none;
}

.approval-gate {
  font-family: Inter, ui-sans-serif, system-ui, sans-serif;
}

.approval-track {
  position: absolute;
  inset: 0;
}

.approval-track::before {
  content: none;
}

.approval-package {
  position: absolute;
  top: 50%;
  left: 3%;
  z-index: 4;
  display: flex;
  width: clamp(78px, 11vw, 126px);
  height: clamp(30px, 4vw, 42px);
  align-items: center;
  gap: 8px;
  padding: 0 9px;
  border: 1.5px solid var(--ink);
  background: var(--cream);
  color: var(--ink);
  opacity: 0;
  transform: translate(-50%, -50%);
  white-space: nowrap;
}

.approval-package i {
  position: relative;
  width: 17px;
  height: 13px;
  flex: 0 0 auto;
  border: 1.5px solid currentColor;
}

.approval-package i::before {
  position: absolute;
  top: -5px;
  left: -1.5px;
  width: 9px;
  height: 4px;
  border: 1.5px solid currentColor;
  border-bottom: 0;
  content: "";
}

.approval-package span {
  overflow: hidden;
  font-size: clamp(6px, 0.7vw, 9px);
  font-weight: 850;
  text-overflow: ellipsis;
}

.panel.is-active .approval-package {
  animation: package-through-gates 4.75s linear 0.15s 1 forwards;
}

.approval-checkpoints {
  position: absolute;
  inset: 0;
  margin: 0;
  padding: 0;
  list-style: none;
}

.approval-checkpoints li {
  position: absolute;
  top: var(--gate-y);
  left: var(--gate-x);
  width: 1px;
  height: 124px;
  background: linear-gradient(to bottom, var(--ink) 0 42%, transparent 42% 58%, var(--ink) 58% 100%);
  transform: translate(-50%, -50%);
}

.approval-checkpoints li span {
  position: absolute;
  top: -23px;
  left: 50%;
  color: #777168;
  font-size: clamp(6px, 0.65vw, 9px);
  font-weight: 850;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  transform: translateX(-50%);
  white-space: nowrap;
}

.approval-checkpoints li i {
  position: absolute;
  top: 50%;
  left: 50%;
  z-index: 2;
  display: grid;
  width: 17px;
  height: 17px;
  place-items: center;
  border: 1.5px solid var(--ink);
  border-radius: 50%;
  background: var(--cream);
  transform: translate(-50%, -50%);
}

.approval-checkpoints li i::after {
  color: transparent;
  content: "✓";
  font-size: 9px;
  font-style: normal;
  font-weight: 900;
}

.panel.is-active .approval-checkpoints li i {
  animation: approve-gate 320ms ease-out var(--gate-delay) 1 forwards;
}

.panel.is-active .approval-checkpoints li i::after {
  animation: reveal-gate-check 320ms ease-out var(--gate-delay) 1 forwards;
}

.approval-risk {
  position: absolute;
  top: var(--risk-y);
  left: var(--risk-x);
  z-index: 5;
  padding-bottom: 3px;
  border-bottom: 1px solid var(--orange);
  color: var(--orange);
  font-size: clamp(6px, 0.65vw, 9px);
  font-weight: 850;
  opacity: 0;
  transform: translate(-50%, -12px);
  white-space: nowrap;
}

.approval-risk::before {
  margin-right: 5px;
  content: "×";
  font-size: 1.25em;
}

.panel.is-active .approval-risk {
  animation: reject-risk 760ms ease-out var(--risk-delay) 1 forwards;
}

.approval-person {
  position: absolute;
  top: calc(49% - 28px);
  left: 77%;
  z-index: 6;
  width: 16px;
  height: 29px;
  opacity: 0;
  transform: translateX(-50%);
}

.approval-person::before {
  position: absolute;
  top: 0;
  left: 5px;
  width: 6px;
  height: 6px;
  border: 1.5px solid var(--ink);
  border-radius: 50%;
  background: var(--cream);
  content: "";
}

.approval-person i,
.approval-person i::before,
.approval-person i::after {
  position: absolute;
  display: block;
  width: 1.5px;
  background: var(--ink);
  content: "";
}

.approval-person i {
  top: 8px;
  left: 7px;
  height: 12px;
}

.approval-person i::before {
  top: 4px;
  left: -4px;
  height: 10px;
  transform: rotate(43deg);
}

.approval-person i::after {
  top: 4px;
  left: 4px;
  height: 10px;
  transform: rotate(-43deg);
}

.panel.is-active .approval-person {
  animation: gatekeeper-arrives 480ms ease-out 2.95s 1 forwards, gatekeeper-bounce 620ms ease-in-out 3.55s 2;
}

.approval-portal {
  position: absolute;
  top: 49%;
  left: 94%;
  z-index: 2;
  display: grid;
  justify-items: center;
  transform: translate(-50%, -50%);
}

.approval-portal i {
  position: relative;
  display: block;
  width: 42px;
  height: 56px;
  border: 1.5px solid var(--ink);
  border-bottom-width: 3px;
  background: var(--cream);
}

.approval-portal i::before,
.approval-portal i::after {
  position: absolute;
  top: 0;
  width: 50%;
  height: 100%;
  border-right: 1px solid var(--ink);
  background: var(--cream);
  content: "";
  transform-origin: 0 50%;
}

.approval-portal i::before { left: 0; }
.approval-portal i::after { right: 0; transform-origin: 100% 50%; }

.approval-portal b {
  margin-top: 8px;
  color: #777168;
  font-size: clamp(6px, 0.65vw, 9px);
  letter-spacing: 0.04em;
  text-transform: uppercase;
  white-space: nowrap;
}

.panel.is-active .approval-portal i::before {
  animation: portal-open-left 440ms ease-out 3.8s 1 forwards;
}

.panel.is-active .approval-portal i::after {
  animation: portal-open-right 440ms ease-out 3.8s 1 forwards;
}

.approval-release {
  position: absolute;
  top: 22%;
  left: 86%;
  color: var(--green-text);
  font-size: clamp(7px, 0.75vw, 10px);
  letter-spacing: 0.06em;
  opacity: 0;
  text-transform: uppercase;
  transform: translateX(-50%);
  white-space: nowrap;
}

.panel.is-active .approval-release {
  animation: release-approved 360ms ease-out 4.05s 1 forwards;
}

.approval-mission-preview {
  position: absolute;
  top: 5%;
  left: 50%;
  z-index: 8;
  width: min(570px, 86vw);
  aspect-ratio: 1600 / 1166;
  overflow: hidden;
  border: 1px solid rgba(20, 19, 16, 0.4);
  background: #fbf9f4;
  box-shadow: 0 18px 50px rgba(20, 19, 16, 0.12);
  opacity: 0;
  transform: translate(-50%, -12px) scale(0.94);
  transition: opacity 420ms ease, transform 520ms ease;
}

.approval-mission-preview img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.panel.is-approval-preview-visible .approval-track {
  opacity: 0.08;
  transition: opacity 360ms ease;
}

.panel.is-approval-preview-visible .approval-mission-preview {
  opacity: 1;
  transform: translate(-50%, 0) scale(1);
}

@keyframes package-through-gates {
  0% { top: 49%; left: 3%; opacity: 0; }
  4%, 12% { top: 49%; left: 8%; opacity: 1; color: var(--ink); }
  19%, 25% { top: 49%; left: 23%; }
  36%, 42% { top: 44%; left: 41%; }
  53%, 59% { top: 51%; left: 59%; }
  70%, 78% { top: 49%; left: 77%; color: var(--ink); }
  84% { top: 49%; left: 82%; color: var(--green); border-color: var(--green); }
  100% { top: 49%; left: 99%; color: var(--green); border-color: var(--green); opacity: 0; }
}

@keyframes approve-gate {
  to { border-color: var(--green); background: var(--green); }
}

@keyframes reveal-gate-check {
  to { color: #fff; }
}

@keyframes reject-risk {
  0% { opacity: 0; transform: translate(-50%, -12px); }
  18%, 54% { opacity: 1; transform: translate(-50%, 3px); }
  100% { opacity: 0; transform: translate(-50%, 48px); }
}

@keyframes gatekeeper-arrives {
  from { opacity: 0; transform: translate(-50%, 8px); }
  to { opacity: 1; transform: translate(-50%, 0); }
}

@keyframes gatekeeper-bounce {
  0%, 100% { transform: translate(-50%, 0); }
  50% { transform: translate(-50%, -5px); }
}

@keyframes portal-open-left {
  to { transform: perspective(70px) rotateY(-72deg); }
}

@keyframes portal-open-right {
  to { transform: perspective(70px) rotateY(72deg); }
}

@keyframes release-approved {
  to { opacity: 1; transform: translateX(-50%) translateY(-4px); }
}

.base-training-cta {
  display: inline-flex;
  align-items: center;
  gap: 14px;
  margin-top: 6px;
  padding: 10px 14px;
  border: 1px solid var(--ink);
  background: var(--orange);
  color: var(--ink);
  font-size: 11px;
  font-weight: 850;
}

.base-training-cta:hover,
.base-training-cta:focus-visible { background: #f3eee5; }
.base-training-cta span { font-size: 16px; line-height: 1; }

.rule-sequence {
  position: absolute;
  top: 37%;
  left: 50%;
  display: flex;
  gap: 32px;
  margin: 0;
  padding: 0;
  transform: translateX(-50%);
  color: #827b72;
  font-size: 9px;
  list-style: decimal-leading-zero;
}

.score-data {
  top: 27%;
  display: flex;
  align-items: baseline;
  gap: 8px;
}

.score-data strong {
  color: var(--ink);
  font-family: Georgia, "Times New Roman", serif;
  font-size: 72px;
  font-weight: 500;
}

.panel-final {
  align-items: end;
  padding-top: 70px;
  padding-bottom: 42px;
}

.panel-final::before {
  position: absolute;
  z-index: 0;
  inset: 68% 0 0;
  background-color: var(--cream);
  content: "";
  transition: background-color 420ms ease;
}

.panel-symbols {
  align-items: end;
  padding-bottom: 55px;
}

.panel-symbols h2 { font-size: 46px; }
.panel-symbols .panel-copy > p:not(.step-label) { max-width: 560px; }
.panel-final .panel-copy {
  position: relative;
  z-index: 1;
  width: min(1050px, 92vw);
}
body.is-tree-complete .panel-final::before { background-color: #dfe9d5; }
.panel-final h2 { font-size: 49px; }

@media (min-width: 761px) {
  .panel-final .step-label {
    padding-right: 240px;
    transform: none;
  }
}

.final-links {
  display: flex;
  justify-content: center;
  gap: 16px;
  margin-top: 28px;
}

.final-links a {
  padding: 11px 15px;
  border: 1px solid var(--ink);
  font-size: 12px;
  font-weight: 800;
}

.final-links a:first-child { background: var(--ink); color: var(--cream); }
.final-links span { margin-left: 12px; }

.panel-copy > .offer-line {
  margin-top: 10px;
  color: var(--muted-text);
  font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
  font-size: 10px;
  font-weight: 800;
  text-transform: uppercase;
}

.final-trust-links {
  display: flex;
  justify-content: center;
  gap: 18px;
  margin-top: 15px;
  color: var(--muted-text);
  font-size: 10px;
  font-weight: 700;
}

.final-trust-links a { border-bottom: 1px solid transparent; }
.final-trust-links a:hover,
.final-trust-links a:focus-visible { border-color: currentColor; }

.review-note {
  margin: 8px auto 0;
  color: var(--muted-text);
  font-size: 10px;
  line-height: 1.4;
}

.review-note a {
  border-bottom: 1px solid currentColor;
  font-weight: 750;
}

.scroll-track { position: relative; z-index: 0; }
.scroll-step { height: 170svh; }
.scroll-step:first-child { height: 120svh; }
.scroll-step[data-step="1"],
.scroll-step[data-step="2"],
.scroll-step[data-step="3"] { height: 230svh; }
.scroll-step[data-step="4"] { height: 600svh; }
.scroll-step:last-child { height: 300svh; }
#step-9 { scroll-margin-top: 50svh; }

body.is-dark { background-color: var(--attack-bg, #182c3b); }
body.is-tree-complete { background-color: #dfe9d5; }
body.is-attack-outage { animation: attack-alarm 1.8s ease-in-out infinite; }
@keyframes attack-alarm {
  0%, 100% { background-color: var(--attack-bg, #481018); }
  50% { background-color: #68131b; }
}
body.is-dark .topbar,
body.is-dark .progress,
body.is-dark .chapter-controls { color: #f3eee5; }
body.is-dark .chapter-controls {
  border-color: rgba(243, 238, 229, 0.45);
  background: rgba(20, 19, 16, 0.7);
}
body.is-dark .brand span { color: #9fd06e; }
body.is-dark .panel { color: #f3eee5; }
body.is-dark .panel-copy > p:not(.step-label) { color: rgba(243, 238, 229, 0.74); }
.panel[data-panel="4"] .panel-copy {
  opacity: 0;
  transform: translateY(16px);
  pointer-events: none;
  transition: opacity 300ms ease, transform 420ms ease;
}
body.is-attack-intro .panel[data-panel="4"] .panel-copy {
  opacity: 1;
  transform: translateY(0);
  pointer-events: auto;
}
.attack-cta {
  display: inline-flex;
  align-items: center;
  gap: 18px;
  margin-top: 22px;
  padding: 12px 16px;
  border: 1px solid rgba(243, 238, 229, 0.72);
  background: #e68c35;
  color: #141310;
  font-size: 12px;
  font-weight: 850;
}
.attack-cta:hover,
.attack-cta:focus-visible { background: #f3eee5; }
.attack-cta span { font-size: 17px; line-height: 1; }
.recovery-link {
  margin-top: 15px;
}
body.is-dark h2 em { color: #d5cfC4; }
body.is-dark .micro-data { color: rgba(243, 238, 229, 0.55); }
body.is-dark .trust-note,
body.is-dark .mission-facts { color: rgba(243, 238, 229, 0.62); }
body.is-dark .mission-facts li { border-color: rgba(243, 238, 229, 0.26); }
body.is-dark .stage-word { color: rgba(243, 238, 229, 0.025); }
body.is-dark .walker-head,
body.is-dark .walker-body { fill: var(--attack-bg, #182c3b); }

body.is-motion-paused .ai-call-visual::before,
body.is-motion-paused .panel.is-active .redaction-points li,
body.is-motion-paused .panel.is-active .redaction-points li > i,
body.is-motion-paused .panel.is-active .redaction-points em::after,
body.is-motion-paused .panel.is-active .redaction-output,
body.is-motion-paused .panel.is-active .approval-package,
body.is-motion-paused .panel.is-active .approval-checkpoints li i,
body.is-motion-paused .panel.is-active .approval-checkpoints li i::after,
body.is-motion-paused .panel.is-active .approval-risk,
body.is-motion-paused .panel.is-active .approval-person,
body.is-motion-paused .panel.is-active .approval-portal i::before,
body.is-motion-paused .panel.is-active .approval-portal i::after,
body.is-motion-paused .panel.is-active .approval-release {
  animation-play-state: paused;
}

body.is-detail-preview .chapter-controls {
  opacity: 0;
  pointer-events: none;
}

@media (max-width: 760px) {
  .topbar { height: 58px; padding: 0 18px; }
  .brand { font-size: 17px; }
  .trust-nav { display: none; }
  .top-actions { gap: 0; }
  .top-cta { padding: 7px 10px; }
  .progress { bottom: 16px; left: 18px; }
  .chapter-controls {
    top: 68px;
    right: 18px;
    bottom: auto;
  }
  .chapter-controls button { width: 36px; height: 32px; }
  .panel { padding: 64px 18px 75px; }
  .panel-copy { width: 100%; }
  .panel-hero { padding-top: 66px; }
  .mission-mark { width: 58px; height: 56px; margin-bottom: 16px; transform: scale(0.82); }
  .language-switcher { margin-top: 14px; }
  .language-switcher button { width: 38px; height: 30px; }
  h1 { font-size: 56px; }
  h2 { font-size: 39px; line-height: 0.95; }
  .panel-final h2 { font-size: 36px; }
  .panel-final {
    padding-top: 62px;
    padding-bottom: 54px;
  }
  .panel-final::before { inset: 50% 0 0; }
  .panel-final .panel-copy > p:not(.step-label) {
    max-width: 330px;
    margin-top: 11px;
  }
  .panel-final .final-links { margin-top: 16px; }
  .panel-final .offer-line {
    margin-top: 8px;
    font-size: 10px;
    max-width: 330px;
    white-space: normal;
  }
  .panel-final .step-label {
    position: relative;
    left: -64px;
  }
  .panel-symbols {
    padding-bottom: 64px;
  }
  .panel-symbols h2 { font-size: 34px; }
  .panel-copy > p:not(.step-label),
  .intro { font-size: 15px; }
  .panel-copy > p:not(.step-label) { max-width: 355px; }
  .stage-word { top: 21%; font-size: 112px; }
  #journey-line { stroke-width: 1.7; }
  #journey-walker { width: 19px; height: 27px; }
  .micro-data { top: 32%; font-size: 8px; }
  .code-data { top: 34%; left: auto; right: 7%; font-size: 10px; }
  .scene-data { left: 6%; }
  .consequence-data { right: 5%; }
  .proof-data { right: 6%; }
  .ai-call-visual { top: 8%; width: min(220px, 64vw); }
  .ai-call-quote { bottom: 13%; height: 25px; font-size: 18px; }
  .redaction-points li { height: 68px; }
  .redaction-points li > span {
    width: 128px;
    gap: 2px;
    white-space: normal;
  }
  .redaction-points li.is-above > span { bottom: calc(100% + 6px); }
  .redaction-points li.is-below > span { top: calc(100% + 6px); }
  .redaction-points b,
  .redaction-output span {
    font-size: 12px;
    line-height: 1.15;
    letter-spacing: 0.025em;
    text-align: center;
  }
  .redaction-points b {
    padding: 3px 5px;
    background: rgba(243, 238, 229, 0.9);
  }
  .redaction-points em { display: none; }
  .redaction-output { left: 86%; gap: 6px; }
  .redaction-output i { width: 19px; height: 19px; }
  .redaction-output i::before { top: 4px; left: 4px; width: 7px; height: 4px; }
  .redaction-output span {
    width: 112px;
    padding: 3px 4px;
    background: rgba(243, 238, 229, 0.9);
  }
  .redaction-mission-preview {
    top: 7%;
    width: min(350px, 92vw);
    aspect-ratio: 4 / 3;
  }
  .redaction-mission-preview header { height: 38px; padding: 0 12px; }
  .redaction-mission-preview header strong { font-size: 12px; }
  .redaction-mission-preview header em { font-size: 9px; }
  .redaction-mission-preview > div {
    display: block;
    height: calc(100% - 38px);
    padding: 12px;
  }
  .redaction-mission-preview section { height: 100%; padding: 14px; }
  .redaction-mission-preview section:first-child { display: none; }
  .redaction-mission-preview small { margin-bottom: 10px; font-size: 10px; }
  .redaction-mission-preview section b { font-size: 13px; line-height: 1.38; }
  .preview-redactions { gap: 4px; margin-top: 8px; }
  .preview-redactions i { height: 5px; }
  .preview-meter { margin-top: 20px; }
  .redaction-mission-preview mark { margin-top: 12px; font-size: 11px; }
  .ai-call-status { bottom: -29px; font-size: 10px; }
  .approval-checkpoints li { height: 92px; }
  .approval-checkpoints li span { top: -18px; }
  .approval-portal i { width: 30px; height: 43px; }
  .approval-portal b { margin-top: 5px; }
  .approval-portal { left: 90%; }
  .approval-release { top: 19%; }
  .approval-mission-preview {
    top: 7%;
    width: min(350px, 92vw);
    aspect-ratio: 4 / 3;
  }
  .approval-mission-preview img {
    transform: scale(1.55);
    transform-origin: 76% 45%;
  }
  .rule-sequence { top: 31%; gap: 16px; font-size: 7px; }
  .score-data { top: 20%; }
  .score-data strong { font-size: 56px; }
  .mission-facts { flex-wrap: wrap; row-gap: 6px; font-size: 10px; }
  .mission-facts li { padding: 0 8px; }
  .panel-copy > .trust-note { max-width: 350px; font-size: 10px; }
  .final-links { align-items: stretch; flex-direction: column; max-width: 260px; margin: 24px auto 0; }
  .final-links a { text-align: center; }
  .final-trust-links { flex-wrap: wrap; gap: 7px 13px; margin-top: 10px; font-size: 10px; }
  .review-note { max-width: 340px; font-size: 10px; }
  .scroll-step { height: 165svh; }
  .scroll-step[data-step="1"],
  .scroll-step[data-step="2"],
  .scroll-step[data-step="3"] { height: 220svh; }
  .scroll-step[data-step="4"] { height: 620svh; }
}

@media (max-width: 380px) {
  .panel-hero h1 {
    width: calc(100vw - 36px);
    max-width: calc(100vw - 36px);
    font-size: 50px;
  }

  .panel-hero > .intro {
    width: calc(100vw - 36px);
    max-width: calc(100vw - 36px);
    font-size: 14px;
  }

  .approval-package { padding: 0 6px; }
}

@media (min-width: 500px) and (max-height: 520px) {
  .topbar {
    height: 52px;
    padding: 0 20px;
  }

  .trust-nav { display: none; }
  .top-cta { display: none; }
  .progress { bottom: 10px; left: 20px; }
  .chapter-controls { top: 10px; right: 20px; bottom: auto; }

  .panel {
    padding: 56px 22px 36px;
  }

  .panel-copy {
    width: min(700px, 86vw);
  }

  .step-label {
    margin-bottom: 6px;
    font-size: 8px;
  }

  h2 {
    font-size: 37px;
    line-height: 0.94;
  }

  .panel-copy > p:not(.step-label),
  .intro {
    margin-top: 9px;
    font-size: 12px;
    line-height: 1.35;
  }

  .panel-hero {
    align-content: center;
    padding: 54px 24px 28px;
  }

  .mission-mark {
    width: 50px;
    height: 42px;
    margin-bottom: 2px;
    transform: scale(0.58);
  }

  .overline {
    margin-bottom: 5px;
    font-size: 8px;
  }

  .panel-hero h1 {
    font-size: 54px;
    line-height: 0.82;
  }

  .panel-hero > .intro {
    width: min(560px, 72vw);
    margin-top: 9px;
  }

  .language-switcher { margin-top: 8px; }
  .language-switcher button { width: 38px; height: 27px; }
  .scroll-hint { display: none; }
  .stage-word { top: 20%; font-size: 130px; }

  .panel[data-panel="1"] .panel-copy,
  .panel[data-panel="2"] .panel-copy,
  .panel[data-panel="3"] .panel-copy {
    align-self: center;
    justify-self: end;
    width: 44vw;
  }

  .panel[data-panel="2"] .panel-copy,
  .panel[data-panel="3"] .panel-copy {
    align-self: end;
    justify-self: center;
    width: min(620px, 72vw);
    padding-bottom: 20px;
    text-align: center;
  }

  .panel[data-panel="2"] h2,
  .panel[data-panel="3"] h2 {
    font-size: 32px;
  }

  .panel[data-panel="2"] .panel-copy {
    padding-bottom: 0;
  }

  .ai-call-visual {
    top: 70px;
    left: 25%;
    width: min(190px, 26vw);
  }

  .ai-call-quote { bottom: 12%; height: 20px; font-size: 13px; }
  .ai-call-status { bottom: -24px; font-size: 7px; }
  .code-data { display: none; }

  .redaction-points li { height: 46px; }
  .redaction-points b,
  .redaction-output span { font-size: 10px; }
  .redaction-points em { display: none; }
  .redaction-output { left: 88%; }
  .redaction-mission-preview {
    top: 58px;
    left: 25%;
    width: min(370px, 44vw);
    aspect-ratio: 16 / 10;
  }
  .redaction-mission-preview header { height: 34px; padding: 0 10px; }
  .redaction-mission-preview header strong { font-size: 10px; }
  .redaction-mission-preview header em { font-size: 8px; }
  .redaction-mission-preview > div { height: calc(100% - 34px); gap: 8px; padding: 9px; }
  .redaction-mission-preview section { padding: 9px; }
  .redaction-mission-preview small { margin-bottom: 6px; font-size: 9px; }
  .redaction-mission-preview section b { font-size: 10px; }
  .preview-redactions { gap: 4px; margin-top: 8px; }
  .preview-redactions i { height: 5px; }
  .preview-meter { margin-top: 11px; }
  .redaction-mission-preview mark { margin-top: 6px; font-size: 9px; }
  .panel[data-panel="2"].is-preview-visible .panel-copy {
    align-self: center;
    justify-self: end;
    width: 44vw;
    padding-bottom: 0;
    text-align: center;
  }

  .approval-checkpoints li { height: 82px; }
  .approval-checkpoints li span { top: -17px; font-size: 9px; }
  .approval-package { width: 70px; height: 26px; gap: 4px; padding: 0 5px; }
  .approval-package i { width: 12px; height: 9px; }
  .approval-package i::before { top: -4px; width: 7px; height: 3px; }
  .approval-package span,
  .approval-risk,
  .approval-portal b,
  .approval-release { font-size: 9px; }
  .approval-portal i { width: 26px; height: 36px; }
  .approval-person { transform: translateX(-50%) scale(0.72); transform-origin: 50% 100%; }
  .approval-mission-preview {
    top: 58px;
    left: 25%;
    width: min(355px, 42vw);
  }
  .approval-mission-preview img {
    transform: scale(1.3);
    transform-origin: 76% 45%;
  }
  .panel[data-panel="3"].is-approval-preview-visible .panel-copy {
    align-self: center;
    justify-self: end;
    width: 44vw;
    padding-bottom: 0;
    text-align: center;
  }

  .base-training-cta,
  .attack-cta {
    margin-top: 8px;
    padding: 8px 11px;
    font-size: 10px;
  }

  .panel-final {
    padding-top: 54px;
    padding-bottom: 14px;
  }

  .panel-final h2 { font-size: 32px; }
  .panel-final .panel-copy { width: min(700px, 86vw); }
  .panel-final .step-label {
    padding-right: 140px;
    transform: none;
  }
  .panel-final .panel-copy > p:not(.step-label) { margin-top: 6px; font-size: 10px; }
  .panel-final .offer-line { margin-top: 5px; font-size: 10px; }
  .panel-final .final-links {
    flex-direction: row;
    gap: 8px;
    max-width: none;
    margin-top: 8px;
  }
  .final-links a { padding: 7px 10px; font-size: 10px; }
  .final-trust-links { display: none; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  body,
  .stage-word { transition: none; }
  .panel { transition: none; }
  #journey-line,
  #journey-tree { transition: none; }
  .panel-final::before,
  .panel[data-panel="4"] .panel-copy { transition: none; }
  body.is-attack-outage { animation: none; }
  .ai-call-visual::before { animation: none; }
  .panel.is-active .redaction-points li,
  .panel.is-active .redaction-points li > i,
  .panel.is-active .redaction-points em::after,
  .panel.is-active .redaction-output { animation: none; }
  .redaction-mission-preview,
  .approval-mission-preview { transition: none; }
  .panel.is-active .redaction-points li,
  .panel.is-active .redaction-output { opacity: 1; }
  .panel.is-active .redaction-points li > i { border-color: var(--green); background: var(--green); }
  .panel.is-active .redaction-points em::after { transform: scaleX(1); }
  .panel.is-active .approval-package {
    left: 87%;
    color: var(--green);
    border-color: var(--green);
    opacity: 1;
    animation: none;
  }
  .panel.is-active .approval-checkpoints li i,
  .panel.is-active .approval-checkpoints li i::after,
  .panel.is-active .approval-risk,
  .panel.is-active .approval-person,
  .panel.is-active .approval-portal i::before,
  .panel.is-active .approval-portal i::after,
  .panel.is-active .approval-release { animation: none; }
  .panel.is-active .approval-checkpoints li i { border-color: var(--green); background: var(--green); }
  .panel.is-active .approval-checkpoints li i::after { color: #fff; }
  .panel.is-active .approval-risk { display: none; }
  .panel.is-active .approval-person,
  .panel.is-active .approval-release { opacity: 1; }
  .panel.is-active .approval-portal i::before { transform: perspective(70px) rotateY(-72deg); }
  .panel.is-active .approval-portal i::after { transform: perspective(70px) rotateY(72deg); }
}
