  /* ============================================================
   THE VILLAIN VAULT AGENCY — assets/css/vault.css
   System: dark bureau brutalism.
   Hard-bordered modules · condensed black display · signal red
   ------------------------------------------------------------
   01 Tokens        06 Modules       11 Roster
   02 Base          07 Buttons       12 Dossier
   03 Texture       08 Nav           13 Process
   04 Type          09 Hero          14 Intake
   05 Layout        10 Services      15 Closing/Footer
   16 Docs  17 Cursor/Veil/Intro  18 Motion  19 Responsive  20 A11y
   ============================================================ */

  /* ---------- 01 TOKENS ---------- */
  :root {
    --void: #0b0908;
    --panel: #100e0d;
    --panel-2: #171413;
    --panel-3: #1f1b19;
    --bone: #f0eae0;
    --paper: #b8afa4;
    --dust: #7b736a;
    --dust-lo: #4e4842;

    --signal: #d5381c;
    --signal-hot: #f04a2a;
    --signal-lo: #7d2011;
    --signal-ghost: rgba(213, 56, 28, 0.14);

    --line: rgba(240, 234, 224, 0.15);
    --line-soft: rgba(240, 234, 224, 0.08);
    --line-hot: rgba(213, 56, 28, 0.55);

    --f-display: 'Archivo', 'Archivo Narrow', system-ui, sans-serif;
    --f-mono: 'IBM Plex Mono', ui-monospace, monospace;
    --f-serif: 'Bodoni Moda', 'Didot', serif;
    --f-stamp: 'Special Elite', 'Courier New', monospace;

    --shell: min(1600px, 94vw);
    --nav-h: 64px;
    --ease: cubic-bezier(0.16, 0.84, 0.44, 1);
    --ease-mech: cubic-bezier(0.7, 0, 0.2, 1);
  }

  /* ---------- 02 BASE ---------- */
  *,
  *::before,
  *::after {
    box-sizing: border-box;
  }
  html {
    -webkit-text-size-adjust: 100%;
    scroll-behavior: smooth;
  }
  body {
    margin: 0;
    background: var(--void);
    color: var(--paper);
    font-family: var(--f-display);
    font-weight: 400;
    font-stretch: 96%;
    font-size: clamp(0.88rem, 0.3vw + 0.82rem, 0.97rem);
    line-height: 1.62;
    -webkit-font-smoothing: antialiased;
    overflow-x: hidden;
  }
  body.is-locked {
    overflow: hidden;
  }
  img,
  svg {
    display: block;
    max-width: 100%;
  }
  img {
    height: auto;
  }
  a {
    color: inherit;
    text-decoration: none;
  }
  button,
  input,
  select,
  textarea {
    font: inherit;
    color: inherit;
  }
  ::selection {
    background: var(--signal);
    color: #fff;
  }
  :focus-visible {
    outline: 2px solid var(--signal-hot);
    outline-offset: 2px;
  }
  .skip {
    position: absolute;
    left: -9999px;
    z-index: 120;
    background: var(--signal);
    color: #fff;
    font-family: var(--f-mono);
    font-size: 0.64rem;
    letter-spacing: 0.16em;
    padding: 0.7rem 1.1rem;
    text-transform: uppercase;
  }
  .skip:focus {
    left: 1rem;
    top: 1rem;
  }
  .shell {
    width: var(--shell);
    margin-inline: auto;
  }
  .sec {
    padding-block: clamp(3rem, 5.5vw, 5.5rem);
    position: relative;
  }
  .sec--tight {
    padding-block: clamp(2rem, 3.5vw, 3.2rem);
  }
  .sec--flush {
    padding-top: 0;
  }

  /* ---------- 03 TEXTURE ---------- */
  .grain,
  .vignette {
    position: fixed;
    inset: 0;
    pointer-events: none;
  }
  .grain {
    z-index: 60;
    opacity: 0.06;
    mix-blend-mode: screen;
    background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='200' height='200'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='4' stitchTiles='stitch'/><feColorMatrix type='saturate' values='0'/></filter><rect width='200' height='200' filter='url(%23n)'/></svg>");
    animation: grainshift 4.6s steps(5) infinite;
  }
  @keyframes grainshift {
    0% {
      transform: translate3d(0, 0, 0);
    }
    25% {
      transform: translate3d(-3%, 2%, 0);
    }
    50% {
      transform: translate3d(2%, -3%, 0);
    }
    75% {
      transform: translate3d(-2%, -1%, 0);
    }
    100% {
      transform: translate3d(0, 0, 0);
    }
  }
  .vignette {
    z-index: 59;
    background: radial-gradient(130% 90% at 50% 30%, transparent 45%, rgba(0, 0, 0, 0.6));
  }
  .regrid {
    display: none;
  }
  main,
  header,
  footer {
    position: relative;
    z-index: 2;
  }

  /* hazard band */
  .hazard {
    height: 14px;
    background: repeating-linear-gradient(135deg, var(--signal) 0 14px, var(--void) 14px 28px);
    opacity: 0.9;
  }
  .hazard--thin {
    height: 8px;
    opacity: 0.55;
  }

  /* ---------- 04 TYPE ---------- */
  h1,
  h2,
  h3,
  h4 {
    margin: 0;
    font-weight: 400;
    color: var(--bone);
  }
  .d1,
  .d2,
  .d3,
  .d4 {
    font-family: var(--f-display);
    font-weight: 800;
    font-stretch: 72%;
    text-transform: uppercase;
    line-height: 0.84;
    letter-spacing: -0.015em;
    color: var(--bone);
  }
  .d1 {
    font-size: clamp(3rem, 10.5vw, 10rem);
  }
  .d2 {
    font-size: clamp(2.2rem, 6vw, 5.2rem);
    line-height: 0.86;
  }
  .d3 {
    font-size: clamp(1.6rem, 3.2vw, 3rem);
    line-height: 0.92;
  }
  .d4 {
    font-size: clamp(1.15rem, 1.7vw, 1.7rem);
    line-height: 1;
    letter-spacing: 0;
  }
  .d-out {
    color: transparent;
    -webkit-text-stroke: 1px var(--bone);
  }
  .d-sig {
    color: var(--signal-hot);
  }
  .serif {
    font-family: var(--f-serif);
    font-weight: 400;
    font-stretch: 100%;
    text-transform: none;
    letter-spacing: -0.01em;
    line-height: 1.02;
  }

  .m,
  .meta,
  .eyebrow,
  .tag {
    font-family: var(--f-mono);
    text-transform: uppercase;
    font-weight: 400;
  }
  .meta {
    font-size: 0.62rem;
    letter-spacing: 0.16em;
    color: var(--dust);
    line-height: 1.9;
  }
  .meta b {
    color: var(--bone);
    font-weight: 500;
  }
  .eyebrow {
    font-size: 0.62rem;
    letter-spacing: 0.22em;
    color: var(--signal-hot);
  }
  .tag {
    display: inline-block;
    font-size: 0.56rem;
    letter-spacing: 0.18em;
    padding: 0.3rem 0.55rem;
    border: 1px solid var(--line);
    color: var(--paper);
  }
  .tag--fill {
    background: var(--signal);
    border-color: var(--signal);
    color: #fff;
  }
  .tag--ghost {
    border-color: var(--line-hot);
    color: var(--signal-hot);
  }
  .lede {
    font-size: clamp(0.95rem, 0.4vw + 0.88rem, 1.08rem);
    line-height: 1.65;
    color: var(--paper);
    max-width: 58ch;
  }
  .body-x {
    max-width: 62ch;
  }
  .muted {
    color: var(--dust);
  }
  .quote {
    font-family: var(--f-serif);
    font-style: italic;
    font-size: clamp(1.2rem, 2.2vw, 1.9rem);
    line-height: 1.25;
    color: var(--bone);
  }

  /* ---------- 05 LAYOUT ---------- */
  /* section bar: the label lives in the rule, like a drawer tab */
  .secbar {
    display: grid;
    grid-template-columns: 4.5rem minmax(0, 1fr) auto;
    gap: 1.2rem;
    align-items: center;
    border-block: 1px solid var(--line);
    padding: 0.6rem 0;
    margin-bottom: clamp(1.6rem, 3vw, 2.8rem);
    font-family: var(--f-mono);
    font-size: 0.62rem;
    letter-spacing: 0.2em;
    text-transform: uppercase;
  }
  .secbar__idx {
    color: var(--signal-hot);
  }
  .secbar__label {
    color: var(--bone);
  }
  .secbar__meta {
    color: var(--dust);
    text-align: right;
  }
  .secbar .shell {
    width: auto;
  }

  .split {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    gap: clamp(1rem, 2.4vw, 2.4rem);
  }
  .split--wide-l {
    grid-template-columns: minmax(0, 1.35fr) minmax(0, 1fr);
  }
  .split--wide-r {
    grid-template-columns: minmax(0, 1fr) minmax(0, 1.35fr);
  }
  .stack-gap {
    display: grid;
    gap: clamp(1rem, 2vw, 1.6rem);
  }

  /* ---------- 06 MODULES ---------- */
  .mod {
    border: 1px solid var(--line);
    background: var(--panel);
    position: relative;
  }
  .mod--hot {
    border-color: var(--line-hot);
  }
  .mod--flat {
    background: transparent;
  }
  .mod__bar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    padding: 0.55rem 0.85rem;
    border-bottom: 1px solid var(--line);
    font-family: var(--f-mono);
    font-size: 0.58rem;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    color: var(--dust);
    background: rgba(240, 234, 224, 0.022);
  }
  .mod--hot .mod__bar {
    border-bottom-color: var(--line-hot);
    color: var(--signal-hot);
    background: var(--signal-ghost);
  }
  .mod__bar b {
    color: var(--bone);
    font-weight: 500;
  }
  .mod__body {
    padding: clamp(1rem, 2.2vw, 1.8rem);
  }
  .mod__body > * + * {
    margin-top: 1rem;
  }

  /* corner crosses */
  .crosses > i {
    position: absolute;
    width: 9px;
    height: 9px;
    pointer-events: none;
    opacity: 0.5;
    background:
      linear-gradient(var(--paper), var(--paper)) center/100% 1px no-repeat,
      linear-gradient(var(--paper), var(--paper)) center/1px 100% no-repeat;
  }
  .crosses > i:nth-child(1) {
    top: -5px;
    left: -5px;
  }
  .crosses > i:nth-child(2) {
    top: -5px;
    right: -5px;
  }
  .crosses > i:nth-child(3) {
    bottom: -5px;
    left: -5px;
  }
  .crosses > i:nth-child(4) {
    bottom: -5px;
    right: -5px;
  }

  /* framed photograph */
  .frame {
    position: relative;
    overflow: hidden;
    background: var(--panel-2);
  }
  .frame img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    filter: grayscale(1) contrast(1.35) brightness(0.62);
    transition:
      filter 0.8s var(--ease),
      transform 1s var(--ease);
  }
  .frame:hover img {
    filter: grayscale(0.1) contrast(1.1) brightness(0.8);
  }
  .frame::after {
    content: '';
    position: absolute;
    inset: 0;
    pointer-events: none;
    background: repeating-linear-gradient(180deg, transparent 0 3px, rgba(0, 0, 0, 0.28) 3px 4px);
    opacity: 0.5;
  }
  .frame--tall {
    aspect-ratio: 3/4;
  }
  .frame--wide {
    aspect-ratio: 16/9;
  }
  .frame--sq {
    aspect-ratio: 1/1;
  }
  .frame__tag {
    position: absolute;
    left: 0;
    bottom: 0;
    z-index: 2;
  }
  .frame.is-missing img {
    opacity: 0;
  }
  .frame.is-missing::before {
    content: 'PHOTOGRAPH WITHHELD';
    position: absolute;
    inset: 0;
    z-index: 1;
    display: grid;
    place-items: center;
    text-align: center;
    font-family: var(--f-stamp);
    font-size: 0.7rem;
    letter-spacing: 0.2em;
    color: var(--dust-lo);
    background: repeating-linear-gradient(45deg, transparent 0 9px, rgba(240, 234, 224, 0.03) 9px 18px);
  }

  /* stamp */
  .stamp {
    font-family: var(--f-stamp);
    font-size: clamp(0.66rem, 0.9vw, 0.82rem);
    letter-spacing: 0.14em;
    color: var(--signal-hot);
    border: 2px solid var(--signal);
    padding: 0.32rem 0.7rem 0.24rem;
    text-transform: uppercase;
    display: inline-block;
    transform: rotate(-4deg);
    opacity: 0.9;
  }

  /* redaction */
  .redact {
    position: relative;
    display: inline-block;
  }
  .redact > span {
    position: relative;
    z-index: 1;
  }
  .redact::after {
    content: '';
    position: absolute;
    inset: -0.04em -0.2em 0.04em;
    background: var(--signal);
    transform-origin: right center;
    z-index: 2;
    transition: transform 0.8s var(--ease-mech);
  }
  .redact.is-open::after {
    transform: scaleX(0);
  }

  /* ---------- 07 BUTTONS ---------- */
  .btn {
    position: relative;
    display: inline-flex;
    align-items: center;
    gap: 0.9rem;
    font-family: var(--f-mono);
    font-size: 0.66rem;
    font-weight: 500;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    padding: 0.95rem 1.35rem;
    border: 1px solid var(--line);
    color: var(--bone);
    background: transparent;
    cursor: pointer;
    overflow: hidden;
    transition:
      color 0.4s var(--ease),
      border-color 0.4s var(--ease);
  }
  .btn::before {
    content: '';
    position: absolute;
    inset: 0;
    background: var(--signal);
    transform: translateY(101%);
    transition: transform 0.45s var(--ease-mech);
    z-index: 0;
  }
  .btn > * {
    position: relative;
    z-index: 1;
  }
  .btn:hover {
    color: #fff;
    border-color: var(--signal);
  }
  .btn:hover::before {
    transform: translateY(0);
  }
  .btn svg {
    width: 11px;
    height: 11px;
    transition: transform 0.4s var(--ease);
  }
  .btn:hover svg {
    transform: translate(3px, -3px);
  }
  .btn--fill {
    background: var(--signal);
    border-color: var(--signal);
    color: #fff;
  }
  .btn--fill::before {
    background: var(--bone);
  }
  .btn--fill:hover {
    color: var(--void);
    border-color: var(--bone);
  }
  .btn--block {
    width: 100%;
    justify-content: space-between;
  }
  .btn[disabled] {
    opacity: 0.5;
    pointer-events: none;
  }

  .tlink {
    display: inline-flex;
    align-items: center;
    gap: 0.6rem;
    font-family: var(--f-mono);
    font-size: 0.62rem;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    color: var(--signal-hot);
    border-bottom: 1px solid var(--line-hot);
    padding-bottom: 0.25rem;
    transition:
      gap 0.4s var(--ease),
      color 0.4s;
  }
  .tlink:hover {
    gap: 1rem;
    color: var(--bone);
    border-color: var(--bone);
  }

  /* ---------- 08 NAV ---------- */
  .nav {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    z-index: 70;
    height: var(--nav-h);
    display: flex;
    align-items: center;
    border-bottom: 1px solid transparent;
    transition:
      background 0.4s var(--ease),
      border-color 0.4s;
  }
  .nav.is-stuck {
    background: rgba(11, 9, 8, 0.92);
    backdrop-filter: blur(8px);
    border-bottom-color: var(--line);
  }
  .nav__in {
    width: var(--shell);
    margin-inline: auto;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1.5rem;
  }
  .brand {
    display: flex;
    align-items: center;
    gap: 0.7rem;
  }
  .brand img {
    width: 26px;
    height: 26px;
    object-fit: contain;
  }
  .brand__txt {
    font-family: var(--f-mono);
    font-size: 0.62rem;
    font-weight: 500;
    letter-spacing: 0.2em;
    text-transform: uppercase;
    color: var(--bone);
    line-height: 1.3;
  }
  .brand__txt small {
    display: block;
    font-size: 0.52rem;
    letter-spacing: 0.16em;
    color: var(--dust-lo);
    font-weight: 400;
  }
  .nav__links {
    display: flex;
    align-items: center;
    gap: clamp(0.6rem, 1.6vw, 1.6rem);
  }
  .nav__link {
    font-family: var(--f-mono);
    font-size: 0.62rem;
    letter-spacing: 0.16em;
    text-transform: uppercase;
    color: var(--paper);
    padding: 0.45rem 0.55rem;
    position: relative;
    transition: color 0.35s;
  }
  .nav__link .nav__num {
    color: var(--dust-lo);
    margin-right: 0.4rem;
  }
  .nav__link::after {
    content: '';
    position: absolute;
    left: 0.55rem;
    right: 0.55rem;
    bottom: 0.15rem;
    height: 1px;
    background: var(--signal);
    transform: scaleX(0);
    transform-origin: left;
    transition: transform 0.4s var(--ease);
  }
  .nav__link:hover {
    color: var(--bone);
  }
  .nav__link:hover::after,
  .nav__link[aria-current='page']::after {
    transform: scaleX(1);
  }
  .nav__link[aria-current='page'] {
    color: var(--bone);
  }
  .nav__clock {
    font-family: var(--f-mono);
    font-size: 0.58rem;
    letter-spacing: 0.14em;
    color: var(--dust);
    border: 1px solid var(--line);
    padding: 0.4rem 0.6rem;
  }
  .nav__cta {
    font-family: var(--f-mono);
    font-size: 0.6rem;
    font-weight: 500;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    background: var(--signal);
    color: #fff;
    padding: 0.7rem 1rem;
    display: inline-flex;
    align-items: center;
    gap: 0.6rem;
    transition: background 0.35s var(--ease);
  }
  .nav__cta:hover {
    background: var(--bone);
    color: var(--void);
  }
  .burger {
    display: none;
    width: 42px;
    height: 42px;
    background: none;
    border: 1px solid var(--line);
    cursor: pointer;
    align-items: center;
    justify-content: center;
  }
  .burger i {
    display: block;
    width: 18px;
    height: 1px;
    background: var(--bone);
    position: relative;
    transition: background 0.3s;
  }
  .burger i::before,
  .burger i::after {
    content: '';
    position: absolute;
    left: 0;
    width: 18px;
    height: 1px;
    background: var(--bone);
    transition: transform 0.4s var(--ease-mech);
  }
  .burger i::before {
    transform: translateY(-5px);
  }
  .burger i::after {
    transform: translateY(5px);
  }
  .is-menu .burger i {
    background: transparent;
  }
  .is-menu .burger i::before {
    transform: rotate(45deg);
  }
  .is-menu .burger i::after {
    transform: rotate(-45deg);
  }

  .drawer {
    position: fixed;
    inset: 0;
    z-index: 69;
    background: var(--void);
    transform: translateY(-101%);
    transition: transform 0.6s var(--ease-mech);
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    padding: calc(var(--nav-h) + 1.5rem) 3vw 1.5rem;
    overflow-y: auto;
  }
  .is-menu .drawer {
    transform: translateY(0);
  }
  .drawer__list {
    list-style: none;
    margin: 0;
    padding: 0;
    border-top: 1px solid var(--line);
  }
  .drawer__list li {
    border-bottom: 1px solid var(--line);
    overflow: hidden;
  }
  .drawer__list a {
    display: flex;
    align-items: center;
    gap: 1rem;
    padding: 0.9rem 0;
    font-family: var(--f-display);
    font-weight: 800;
    font-stretch: 72%;
    text-transform: uppercase;
    font-size: clamp(2rem, 10vw, 3.2rem);
    line-height: 1;
    color: var(--bone);
    transform: translateY(110%);
    transition: transform 0.6s var(--ease);
  }
  .is-menu .drawer__list a {
    transform: translateY(0);
  }
  .drawer__list a em {
    font-family: var(--f-mono);
    font-style: normal;
    font-size: 0.6rem;
    letter-spacing: 0.18em;
    color: var(--signal-hot);
  }
  .drawer__foot {
    display: flex;
    flex-wrap: wrap;
    gap: 0.8rem 1.5rem;
    justify-content: space-between;
    padding-top: 1.5rem;
  }

  /* ---------- 09 HERO ---------- */
  .hero {
    padding-top: calc(var(--nav-h) + 0.8rem);
  }
  .hero__strip {
    display: flex;
    gap: 1.4rem;
    flex-wrap: wrap;
    justify-content: space-between;
    border-block: 1px solid var(--line);
    padding: 0.5rem 0;
    margin-bottom: clamp(1rem, 2vw, 1.6rem);
  }
  .hero__grid {
    display: grid;
    grid-template-columns: minmax(0, 1.25fr) minmax(0, 1fr);
    gap: clamp(1rem, 2vw, 2rem);
    align-items: stretch;
  }
  .hero__left {
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    gap: clamp(1.2rem, 2.5vw, 2rem);
  }
  .hero__title .line {
    display: block;
    overflow: hidden;
  }
  .hero__title .line > span {
    display: block;
  }
  .hero__creed {
    margin: 0;
    font-family: var(--f-serif);
    font-style: italic;
    font-size: clamp(1.15rem, 2vw, 1.8rem);
    line-height: 1.2;
    color: var(--bone);
  }
  .hero__creed span {
    display: block;
  }
  .hero__creed span + span {
    color: var(--signal-hot);
  }
  .hero__actions {
    display: flex;
    flex-wrap: wrap;
    gap: 0.7rem;
  }
  .hero__brief {
    border-top: 1px solid var(--line);
    padding-top: 1rem;
    max-width: 56ch;
  }
  .hero__panel {
    position: relative;
    display: flex;
    flex-direction: column;
    border: 1px solid var(--line);
    background: var(--panel);
  }
  .hero__panel .frame {
    flex: 1;
    min-height: clamp(280px, 44vh, 520px);
  }
  .hero__readout {
    position: absolute;
    right: 0.7rem;
    top: 3.2rem;
    z-index: 3;
    border: 1px solid var(--line-hot);
    background: rgba(11, 9, 8, 0.82);
    padding: 0.55rem 0.7rem;
    display: grid;
    gap: 0.15rem;
  }
  .hero__readout span {
    font-family: var(--f-mono);
    font-size: 0.56rem;
    letter-spacing: 0.12em;
    color: var(--signal-hot);
  }
  .hero__scan {
    position: absolute;
    left: 0;
    right: 0;
    height: 1px;
    background: var(--signal);
    opacity: 0.55;
    z-index: 2;
    animation: scan 5.5s var(--ease) infinite;
  }
  @keyframes scan {
    0% {
      top: 0;
    }
    50% {
      top: 100%;
    }
    100% {
      top: 0;
    }
  }
  .hero__ticker {
    margin-top: clamp(1rem, 2vw, 1.6rem);
  }

  /* marquee */
  .ticker {
    border-block: 1px solid var(--line);
    overflow: hidden;
    padding-block: 0.6rem;
  }
  .ticker--sig {
    background: var(--signal);
    border-color: var(--signal);
  }
  .ticker__track {
    display: flex;
    width: max-content;
    animation: marquee 38s linear infinite;
  }
  .ticker__track span {
    font-family: var(--f-display);
    font-weight: 800;
    font-stretch: 72%;
    text-transform: uppercase;
    font-size: clamp(1rem, 2vw, 1.7rem);
    line-height: 1;
    color: var(--bone);
    padding-inline: clamp(0.9rem, 2vw, 1.8rem);
    display: inline-flex;
    align-items: center;
    gap: clamp(0.9rem, 2vw, 1.8rem);
    white-space: nowrap;
  }
  .ticker__track span::after {
    content: '';
    width: 6px;
    height: 6px;
    background: var(--signal);
  }
  .ticker--sig .ticker__track span {
    color: #fff;
    font-size: clamp(0.7rem, 1.2vw, 0.95rem);
    font-family: var(--f-mono);
    font-weight: 500;
    letter-spacing: 0.2em;
  }
  .ticker--sig .ticker__track span::after {
    background: rgba(255, 255, 255, 0.7);
  }
  @keyframes marquee {
    to {
      transform: translate3d(-50%, 0, 0);
    }
  }
  .ticker:hover .ticker__track {
    animation-play-state: paused;
  }

  /* ---------- 10 SERVICES ---------- */
  .index {
    border-top: 1px solid var(--line);
  }
  .svc {
    border-bottom: 1px solid var(--line);
    position: relative;
  }
  .svc::before {
    content: '';
    position: absolute;
    left: 0;
    top: 0;
    bottom: 0;
    width: 3px;
    background: var(--signal);
    transform: scaleY(0);
    transform-origin: bottom;
    transition: transform 0.45s var(--ease-mech);
  }
  .svc:hover::before,
  .svc.is-open::before {
    transform: scaleY(1);
  }
  .svc__btn {
    width: 100%;
    background: none;
    border: 0;
    cursor: pointer;
    text-align: left;
    display: grid;
    grid-template-columns: 5rem minmax(0, 1fr) auto;
    gap: clamp(0.8rem, 2vw, 2rem);
    align-items: center;
    padding: clamp(0.9rem, 1.7vw, 1.35rem) clamp(0.8rem, 1.6vw, 1.4rem);
    transition: background 0.4s var(--ease);
  }
  .svc:hover .svc__btn,
  .svc.is-open .svc__btn {
    background: var(--panel-2);
  }
  .svc__num {
    font-family: var(--f-mono);
    font-size: 0.68rem;
    font-weight: 500;
    letter-spacing: 0.16em;
    color: var(--signal-hot);
  }
  .svc__name {
    font-family: var(--f-display);
    font-weight: 800;
    font-stretch: 74%;
    text-transform: uppercase;
    font-size: clamp(1.15rem, 2.4vw, 2.1rem);
    line-height: 1;
    color: var(--paper);
    transition: color 0.4s;
  }
  .svc:hover .svc__name,
  .svc.is-open .svc__name {
    color: var(--bone);
  }
  .svc__sign {
    position: relative;
    width: 12px;
    height: 12px;
    flex: none;
  }
  .svc__sign::before,
  .svc__sign::after {
    content: '';
    position: absolute;
    background: var(--paper);
    transition: transform 0.4s var(--ease);
  }
  .svc__sign::before {
    left: 0;
    right: 0;
    top: 5.5px;
    height: 1px;
  }
  .svc__sign::after {
    top: 0;
    bottom: 0;
    left: 5.5px;
    width: 1px;
  }
  .svc.is-open .svc__sign::after {
    transform: scaleY(0);
  }
  .svc.is-open .svc__sign::before {
    background: var(--signal-hot);
  }
  .svc__panel {
    display: grid;
    grid-template-rows: 0fr;
    transition: grid-template-rows 0.55s var(--ease-mech);
  }
  .svc.is-open .svc__panel {
    grid-template-rows: 1fr;
  }
  .svc__panel > div {
    overflow: hidden;
  }
  .svc__inner {
    display: grid;
    grid-template-columns: 5rem minmax(0, 1fr) minmax(0, 0.55fr);
    gap: clamp(0.8rem, 2vw, 2rem);
    padding: clamp(1.2rem, 2.2vw, 1.8rem) clamp(0.8rem, 1.6vw, 1.4rem) clamp(1.2rem, 2.2vw, 1.8rem);
  }
  .svc__copy {
    margin: 0;
    max-width: 60ch;
    color: var(--paper);
  }
  .svc__meta {
    border-left: 1px solid var(--line);
    padding-left: 1rem;
  }
  .svc__meta dl {
    display: grid;
    grid-template-columns: auto 1fr;
    gap: 0.15rem 0.8rem;
    margin: 0;
    font-family: var(--f-mono);
    font-size: 0.58rem;
    letter-spacing: 0.14em;
    text-transform: uppercase;
  }
  .svc__meta dt {
    color: var(--dust-lo);
  }
  .svc__meta dd {
    margin: 0;
    color: var(--paper);
  }

  /* ---------- 11 ROSTER ---------- */
  .files {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: clamp(0.6rem, 1.2vw, 1rem);
  }
  .files--roster {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
  .file {
    position: relative;
    border: 1px solid var(--line);
    background: var(--panel);
    display: flex;
    flex-direction: column;
    transition:
      border-color 0.45s var(--ease),
      background 0.45s var(--ease),
      transform 0.45s var(--ease);
  }
  .file:hover,
  .file:focus-within {
    border-color: var(--line-hot);
    background: var(--panel-2);
    transform: translateY(-3px);
  }
  .file__bar {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 0.6rem;
    padding: 0.45rem 0.65rem;
    border-bottom: 1px solid var(--line);
    font-family: var(--f-mono);
    font-size: 0.56rem;
    letter-spacing: 0.16em;
    text-transform: uppercase;
    color: var(--dust);
    transition: border-color 0.45s var(--ease);
  }
  .file:hover .file__bar {
    border-bottom-color: var(--line-hot);
  }
  .file__bar b {
    color: var(--bone);
    font-weight: 500;
  }
  .file__frame {
    position: relative;
    overflow: hidden;
    aspect-ratio: 4/5;
    background: var(--panel-2);
  }
  .file__frame img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    filter: grayscale(1) contrast(1.4) brightness(0.55);
    transform: scale(1.05);
    transition:
      filter 0.8s var(--ease),
      transform 1s var(--ease);
  }
  .file:hover .file__frame img,
  .file:focus-within .file__frame img {
    filter: grayscale(0) contrast(1.08) brightness(0.85);
    transform: scale(1);
  }
  .file__frame::after {
    content: '';
    position: absolute;
    inset: 0;
    pointer-events: none;
    background: repeating-linear-gradient(180deg, transparent 0 3px, rgba(0, 0, 0, 0.3) 3px 4px);
    opacity: 0.45;
  }
  .file__frame.is-missing img {
    opacity: 0;
  }
  .file__frame.is-missing::before {
    content: 'PHOTOGRAPH WITHHELD';
    position: absolute;
    inset: 0;
    z-index: 1;
    display: grid;
    place-items: center;
    text-align: center;
    font-family: var(--f-stamp);
    font-size: 0.62rem;
    letter-spacing: 0.18em;
    color: var(--dust-lo);
    background: repeating-linear-gradient(45deg, transparent 0 9px, rgba(240, 234, 224, 0.03) 9px 18px);
  }
  .file__over {
    position: absolute;
    inset: auto 0 0 0;
    z-index: 2;
    padding: 0.6rem 0.65rem;
    background: linear-gradient(0deg, rgba(11, 9, 8, 0.96), rgba(11, 9, 8, 0.6) 65%, transparent);
    transform: translateY(101%);
    transition: transform 0.5s var(--ease-mech);
  }
  .file:hover .file__over,
  .file:focus-within .file__over {
    transform: translateY(0);
  }
  .file__over dl {
    margin: 0;
    display: grid;
    grid-template-columns: auto 1fr;
    gap: 0.1rem 0.7rem;
    font-family: var(--f-mono);
    font-size: 0.54rem;
    letter-spacing: 0.14em;
    text-transform: uppercase;
  }
  .file__over dt {
    color: var(--signal-hot);
  }
  .file__over dd {
    margin: 0;
    color: var(--bone);
  }
  .file__body {
    padding: 0.75rem 0.7rem;
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
    flex: 1;
  }
  .file__name {
    font-family: var(--f-serif);
    font-size: clamp(1.15rem, 1.7vw, 1.6rem);
    line-height: 1;
    color: var(--bone);
  }
  .file__foot {
    margin-top: auto;
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 0.6rem;
    padding-top: 0.55rem;
    border-top: 1px solid var(--line-soft);
  }
  .status {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    font-family: var(--f-mono);
    font-size: 0.54rem;
    letter-spacing: 0.16em;
    text-transform: uppercase;
    color: var(--bone);
  }
  .status::before {
    content: '';
    width: 5px;
    height: 5px;
    background: var(--signal);
    animation: blip 2.6s var(--ease) infinite;
  }
  @keyframes blip {
    0%,
    100% {
      opacity: 1;
    }
    50% {
      opacity: 0.25;
    }
  }
  .file__stamp {
    position: absolute;
    top: 2.2rem;
    right: 0.6rem;
    z-index: 3;
    opacity: 0;
    transform: rotate(-12deg) scale(1.4);
    transition:
      opacity 0.3s,
      transform 0.4s var(--ease);
    pointer-events: none;
  }
  .file:hover .file__stamp,
  .file:focus-within .file__stamp {
    opacity: 0.92;
    transform: rotate(-5deg) scale(1);
  }
  .file--vacant {
    background: transparent;
    border-style: dashed;
  }
  .file--vacant .file__frame {
    background: repeating-linear-gradient(45deg, transparent 0 10px, rgba(240, 234, 224, 0.03) 10px 20px), var(--panel-2);
  }
  .file--vacant .file__name {
    color: var(--dust-lo);
  }

  .notice {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr) auto;
    gap: clamp(0.8rem, 2vw, 1.8rem);
    align-items: center;
    border: 1px solid var(--line-hot);
    padding: clamp(0.9rem, 1.8vw, 1.4rem) clamp(1rem, 2vw, 1.6rem);
    background: linear-gradient(90deg, var(--signal-ghost), transparent 60%), var(--panel);
  }
  .notice p {
    margin: 0;
    color: var(--bone);
  }
  .notice__icon {
    display: block;
    width: 20px;
    height: 20px;
    color: var(--signal-hot);
  }
  .notice__icon svg {
    width: 20px;
    height: 20px;
  }

  .ledger {
    border: 1px solid var(--line);
  }
  .ledger__row {
    display: grid;
    grid-template-columns: 4rem minmax(0, 1.5fr) minmax(0, 1fr) minmax(0, 0.8fr) minmax(0, 0.7fr);
    gap: clamp(0.6rem, 1.6vw, 1.6rem);
    align-items: center;
    padding: 0.75rem 0.9rem;
    border-bottom: 1px solid var(--line-soft);
    font-family: var(--f-mono);
    font-size: 0.6rem;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    color: var(--dust);
    transition:
      background 0.35s var(--ease),
      color 0.35s;
  }
  .ledger__row:last-child {
    border-bottom: 0;
  }
  .ledger__row--head {
    background: rgba(240, 234, 224, 0.03);
    color: var(--dust-lo);
    border-bottom-color: var(--line);
  }
  .ledger__row:not(.ledger__row--head):hover {
    background: var(--signal-ghost);
    color: var(--bone);
  }
  .ledger__name {
    font-family: var(--f-serif);
    font-size: clamp(0.95rem, 1.3vw, 1.2rem);
    letter-spacing: 0;
    text-transform: none;
    color: var(--bone);
  }

  /* ---------- 12 DOSSIER ---------- */
  .dossier {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1.15fr);
    border: 1px solid var(--line);
    background: var(--panel);
  }
  .dossier__media {
    position: relative;
    overflow: hidden;
    min-height: 340px;
    border-right: 1px solid var(--line);
  }
  .dossier__media img {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 112%;
    object-fit: cover;
    filter: grayscale(1) contrast(1.35) brightness(0.55);
  }
  .dossier__body {
    padding: clamp(1.1rem, 2.4vw, 2.2rem);
    display: flex;
    flex-direction: column;
    gap: 1rem;
  }
  .dossier__stats {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    border-top: 1px solid var(--line);
    margin-top: auto;
  }
  .dossier__stat {
    padding: 1rem 0.8rem 0;
  }
  .dossier__stat + .dossier__stat {
    border-left: 1px solid var(--line);
  }
  .dossier__stat b {
    display: block;
    font-family: var(--f-display);
    font-weight: 800;
    font-stretch: 72%;
    font-size: clamp(2.4rem, 4.5vw, 3.6rem);
    line-height: 0.85;
    color: var(--signal-hot);
  }
  .dossier__stat span {
    display: block;
    margin-top: 0.4rem;
  }

  /* ---------- 13 PROCESS ---------- */
  .steps {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: clamp(0.6rem, 1.2vw, 1rem);
  }
  .step {
    border: 1px solid var(--line);
    background: var(--panel);
    padding: clamp(0.9rem, 1.8vw, 1.4rem);
    position: relative;
    transition:
      border-color 0.5s var(--ease),
      background 0.5s;
  }
  .step.is-live {
    border-color: var(--line-hot);
    background: var(--panel-2);
  }
  .step__no {
    font-family: var(--f-display);
    font-weight: 800;
    font-stretch: 72%;
    font-size: clamp(2rem, 3.4vw, 3rem);
    line-height: 0.8;
    color: var(--dust-lo);
    display: block;
    margin-bottom: 0.9rem;
    transition: color 0.5s;
  }
  .step.is-live .step__no {
    color: var(--signal-hot);
  }
  .step__t {
    font-family: var(--f-display);
    font-weight: 800;
    font-stretch: 76%;
    text-transform: uppercase;
    font-size: clamp(0.95rem, 1.4vw, 1.2rem);
    line-height: 1.05;
    color: var(--bone);
    margin-bottom: 0.5rem;
  }
  .step__p {
    margin: 0;
    font-size: 0.86rem;
    color: var(--paper);
  }
  .step__stage {
    display: block;
    margin-top: 0.9rem;
    padding-top: 0.7rem;
    border-top: 1px solid var(--line-soft);
    font-family: var(--f-mono);
    font-size: 0.54rem;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    color: var(--dust);
  }
  .step.is-live .step__stage {
    color: var(--signal-hot);
  }
  .track {
    position: relative;
  }
  .track__line {
    position: relative;
    height: 1px;
    background: var(--line);
    margin-bottom: 1rem;
  }
  .track__line i {
    position: absolute;
    inset: 0;
    background: var(--signal);
    transform: scaleX(0);
    transform-origin: left;
    display: block;
  }

  /* ---------- 14 INTAKE ---------- */
  .console {
    border: 1px solid var(--line-hot);
    background: var(--panel);
  }
  .console__bar {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 1rem;
    flex-wrap: wrap;
    padding: 0.55rem 0.9rem;
    border-bottom: 1px solid var(--line-hot);
    background: var(--signal-ghost);
    font-family: var(--f-stamp);
    font-size: 0.72rem;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    color: var(--signal-hot);
  }
  .console__bar span:last-child {
    font-family: var(--f-mono);
    font-size: 0.56rem;
    letter-spacing: 0.16em;
    color: var(--dust);
  }
  .console__body {
    padding: clamp(1rem, 2.2vw, 1.8rem);
  }
  .fs {
    border: 0;
    padding: 0;
    margin: 0 0 1.4rem;
    min-width: 0;
  }
  .fs legend {
    padding: 0 0 0.6rem;
    font-family: var(--f-mono);
    font-size: 0.58rem;
    letter-spacing: 0.2em;
    text-transform: uppercase;
    color: var(--dust);
  }
  .route {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.5rem;
  }
  .route label {
    position: relative;
    border: 1px solid var(--line);
    padding: 0.75rem 0.85rem;
    cursor: pointer;
    display: flex;
    align-items: center;
    gap: 0.6rem;
    font-family: var(--f-mono);
    font-size: 0.6rem;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: var(--dust);
    transition:
      border-color 0.35s,
      color 0.35s,
      background 0.35s;
  }
  .route input {
    position: absolute;
    opacity: 0;
    pointer-events: none;
  }
  .route label::before {
    content: '';
    width: 8px;
    height: 8px;
    border: 1px solid var(--line);
    flex: none;
    transition:
      background 0.3s,
      border-color 0.3s;
  }
  .route label:has(input:checked) {
    border-color: var(--signal);
    color: var(--bone);
    background: var(--signal-ghost);
  }
  .route label:has(input:checked)::before {
    background: var(--signal);
    border-color: var(--signal);
  }
  .fields {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1rem;
  }
  .field {
    display: flex;
    flex-direction: column;
    gap: 0.4rem;
  }
  .field--full {
    grid-column: 1/-1;
  }
  .field label {
    display: flex;
    justify-content: space-between;
    gap: 1rem;
    font-family: var(--f-mono);
    font-size: 0.56rem;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    color: var(--dust);
  }
  .field label span {
    color: var(--signal-hot);
  }
  .field input,
  .field textarea {
    background: var(--panel-2);
    border: 1px solid var(--line);
    padding: 0.65rem 0.7rem;
    color: var(--bone);
    font-family: var(--f-mono);
    font-size: 0.8rem;
    transition:
      border-color 0.35s,
      background 0.35s;
  }
  .field textarea {
    resize: vertical;
    min-height: 110px;
    line-height: 1.6;
  }
  .field input::placeholder,
  .field textarea::placeholder {
    color: var(--dust-lo);
  }
  .field input:focus,
  .field textarea:focus {
    outline: 0;
    border-color: var(--signal);
    background: var(--panel-3);
  }
  .form__foot {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    margin-top: 1.4rem;
  }
  .form__note {
    margin: 0;
    font-family: var(--f-mono);
    font-size: 0.54rem;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    color: var(--dust-lo);
    max-width: 36ch;
    line-height: 1.8;
  }
  .form__status {
    font-family: var(--f-mono);
    font-size: 0.6rem;
    letter-spacing: 0.16em;
    text-transform: uppercase;
    color: var(--signal-hot);
    min-height: 1.2em;
    margin: 0.9rem 0 0;
  }
  .contactlist {
    list-style: none;
    margin: 0;
    padding: 0;
    border-top: 1px solid var(--line);
  }
  .contactlist li {
    border-bottom: 1px solid var(--line);
    padding: 0.9rem 0;
    display: grid;
    gap: 0.25rem;
  }
  .contactlist a,
  .contactlist .d4 {
    font-family: var(--f-display);
    font-weight: 800;
    font-stretch: 76%;
    text-transform: uppercase;
    font-size: clamp(0.95rem, 1.5vw, 1.3rem);
    color: var(--bone);
    transition: color 0.35s;
  }
  .contactlist a:hover {
    color: var(--signal-hot);
  }

  /* ---------- 15 CLOSING / FOOTER ---------- */
  .closing {
    position: relative;
    min-height: 70svh;
    display: grid;
    place-items: center;
    overflow: hidden;
    border-block: 1px solid var(--line);
  }
  .closing__bg {
    position: absolute;
    inset: 0;
  }
  .closing__bg video {
    width: 100%;
    height: 115%;
    object-fit: cover;
    filter: grayscale(1) contrast(1.4) brightness(0.35);
  }
  .closing__bg img {
    width: 100%;
    height: 115%;
    object-fit: cover;
    filter: grayscale(1) contrast(1.4) brightness(0.35);
  }
  .closing__bg::after {
    content: '';
    position: absolute;
    inset: 0;
    background: radial-gradient(75% 60% at 50% 50%, transparent, rgba(11, 9, 8, 0.9));
  }
  .closing__in {
    position: relative;
    z-index: 2;
    text-align: center;
    padding: clamp(2rem, 5vw, 4rem) 3vw;
  }

  .foot {
    padding-top: clamp(2rem, 4vw, 3.4rem);
  }
  .foot__top {
    display: grid;
    grid-template-columns: minmax(0, 1.4fr) repeat(3, minmax(0, 0.6fr));
    gap: clamp(1.2rem, 3vw, 2.5rem);
  }
  .foot__mark {
    display: flex;
    gap: 0.9rem;
    align-items: flex-start;
  }
  .foot__mark img {
    width: 40px;
  }
  .foot h4 {
    font-family: var(--f-mono);
    font-size: 0.56rem;
    letter-spacing: 0.2em;
    text-transform: uppercase;
    color: var(--signal-hot);
    margin: 0 0 0.9rem;
  }
  .foot ul {
    list-style: none;
    margin: 0;
    padding: 0;
    display: grid;
    gap: 0.5rem;
  }
  .foot ul a {
    font-family: var(--f-mono);
    font-size: 0.62rem;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: var(--paper);
    transition:
      color 0.3s,
      padding-left 0.3s;
  }
  .foot ul a:hover {
    color: var(--bone);
    padding-left: 0.35rem;
  }
  .foot__bottom {
    display: flex;
    flex-wrap: wrap;
    gap: 0.6rem 1.6rem;
    justify-content: space-between;
    align-items: center;
    border-top: 1px solid var(--line);
    margin-top: clamp(1.6rem, 3vw, 2.6rem);
    padding: 1rem 0;
  }

  /* ---------- 16 DOCS ---------- */
  .pagehead {
    padding-top: calc(var(--nav-h) + clamp(2rem, 5vw, 4rem));
    padding-bottom: clamp(1.4rem, 3vw, 2.4rem);
  }
  .pagehead__grid {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 0.55fr);
    gap: clamp(1rem, 3vw, 2.5rem);
    align-items: end;
  }
  .doc {
    display: grid;
    grid-template-columns: minmax(0, 0.26fr) minmax(0, 1fr);
    gap: clamp(1.2rem, 3vw, 3rem);
  }
  .toc {
    position: sticky;
    top: calc(var(--nav-h) + 1.5rem);
    align-self: start;
    border: 1px solid var(--line);
    padding: 0.9rem;
  }
  .toc ol {
    list-style: none;
    margin: 0;
    padding: 0;
    counter-reset: t;
    display: grid;
    gap: 0.4rem;
  }
  .toc a {
    display: flex;
    gap: 0.6rem;
    font-family: var(--f-mono);
    font-size: 0.58rem;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: var(--dust);
    transition: color 0.3s;
  }
  .toc a::before {
    counter-increment: t;
    content: counter(t, decimal-leading-zero);
    color: var(--dust-lo);
  }
  .toc a:hover,
  .toc a.is-active {
    color: var(--signal-hot);
  }
  .prose h2 {
    font-family: var(--f-display);
    font-weight: 800;
    font-stretch: 76%;
    text-transform: uppercase;
    font-size: clamp(1.15rem, 2vw, 1.7rem);
    line-height: 1.05;
    color: var(--bone);
    margin: clamp(2rem, 3.5vw, 3rem) 0 0.8rem;
    padding-top: 1rem;
    border-top: 1px solid var(--line);
  }
  .prose h2:first-of-type {
    margin-top: 0;
    border-top: 0;
    padding-top: 0;
  }
  .prose h3 {
    font-family: var(--f-mono);
    font-size: 0.62rem;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    color: var(--signal-hot);
    margin: 1.6rem 0 0.6rem;
  }
  .prose p,
  .prose li {
    max-width: 74ch;
  }
  .prose p {
    margin: 0 0 0.9rem;
  }
  .prose ul,
  .prose ol {
    margin: 0 0 1.1rem;
    padding-left: 1.1rem;
  }
  .prose li {
    margin-bottom: 0.4rem;
  }
  .prose a {
    color: var(--signal-hot);
    border-bottom: 1px solid var(--line-hot);
  }
  .ph {
    font-family: var(--f-mono);
    font-size: 0.8em;
    letter-spacing: 0.06em;
    color: var(--signal-hot);
    background: var(--signal-ghost);
    border: 1px dashed var(--line-hot);
    padding: 0.05em 0.4em;
    white-space: nowrap;
  }
  .dossier-row {
    display: grid;
    grid-template-columns: minmax(0, 0.3fr) minmax(0, 1fr);
    gap: clamp(1rem, 3vw, 3rem);
    border-top: 1px solid var(--line);
    padding-block: clamp(1.4rem, 3vw, 2.4rem);
  }
  .dossier-row:last-child {
    border-bottom: 1px solid var(--line);
  }
  .dossier-row__k {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
  }
  .plate {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: clamp(0.6rem, 1.2vw, 1rem);
  }
  .plate > div {
    border: 1px solid var(--line);
    background: var(--panel);
    padding: clamp(0.9rem, 1.8vw, 1.4rem);
  }
  .plate h3 {
    font-family: var(--f-display);
    font-weight: 800;
    font-stretch: 76%;
    text-transform: uppercase;
    font-size: clamp(1rem, 1.5vw, 1.3rem);
    margin: 0.7rem 0 0.5rem;
    color: var(--bone);
  }
  .plate p {
    margin: 0;
    font-size: 0.86rem;
  }
  .pairhead {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 0.6fr);
    gap: clamp(1rem, 3vw, 3rem);
    align-items: end;
    margin-bottom: clamp(1.2rem, 2.5vw, 2rem);
  }
  .pairhead p {
    margin: 0;
  }
  .routing {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: clamp(0.6rem, 1.2vw, 1rem);
  }
  .routing article {
    border: 1px solid var(--line);
    background: var(--panel);
    padding: clamp(1rem, 2vw, 1.6rem);
  }
  .routing h3 {
    font-family: var(--f-display);
    font-weight: 800;
    font-stretch: 74%;
    text-transform: uppercase;
    font-size: clamp(1.3rem, 2.4vw, 2rem);
    margin: 0.6rem 0 0.6rem;
    color: var(--bone);
  }
  .routing p {
    margin: 0 0 1rem;
    font-size: 0.9rem;
  }
  .aboutgrid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: clamp(1rem, 2vw, 2rem);
    align-items: start;
  }

  /* ---------- 17 CURSOR / VEIL / INTRO ---------- */
  .cursor {
    position: fixed;
    top: 0;
    left: 0;
    z-index: 95;
    pointer-events: none;
    width: 24px;
    height: 24px;
    margin: -12px 0 0 -12px;
    opacity: 0;
    transition: opacity 0.3s;
  }
  .cursor i {
    position: absolute;
    background: var(--signal-hot);
    transition: transform 0.3s var(--ease);
  }
  .cursor i:nth-child(1) {
    left: 50%;
    top: 0;
    width: 1px;
    height: 7px;
    transform: translateX(-50%);
  }
  .cursor i:nth-child(2) {
    left: 50%;
    bottom: 0;
    width: 1px;
    height: 7px;
    transform: translateX(-50%);
  }
  .cursor i:nth-child(3) {
    top: 50%;
    left: 0;
    height: 1px;
    width: 7px;
    transform: translateY(-50%);
  }
  .cursor i:nth-child(4) {
    top: 50%;
    right: 0;
    height: 1px;
    width: 7px;
    transform: translateY(-50%);
  }
  .cursor.is-live {
    opacity: 0.9;
  }
  .cursor.is-hot i:nth-child(1),
  .cursor.is-hot i:nth-child(2) {
    transform: translateX(-50%) scaleY(1.8);
  }
  .cursor.is-hot i:nth-child(3),
  .cursor.is-hot i:nth-child(4) {
    transform: translateY(-50%) scaleX(1.8);
  }

  .veil {
    position: fixed;
    inset: 0;
    z-index: 90;
    background: var(--void);
    transform: scaleY(0);
    transform-origin: bottom;
    display: grid;
    place-items: center;
    pointer-events: none;
  }
  .veil.is-in {
    transform: scaleY(1);
    transform-origin: bottom;
    transition: transform 0.45s var(--ease-mech);
  }
  .veil.is-out {
    transform: scaleY(0);
    transform-origin: top;
    transition: transform 0.45s var(--ease-mech);
  }
  .veil span {
    font-family: var(--f-mono);
    font-size: 0.62rem;
    letter-spacing: 0.34em;
    color: var(--signal-hot);
    text-transform: uppercase;
    opacity: 0;
    transition: opacity 0.25s 0.1s;
  }
  .veil.is-in span {
    opacity: 1;
  }

  .intro {
    position: fixed;
    inset: 0;
    z-index: 100;
    background: var(--void);
    display: grid;
    place-items: center;
  }
  .intro__in {
    text-align: center;
    width: min(420px, 80vw);
  }
  .intro__logo {
    width: 48px;
    margin: 0 auto 1.2rem;
    opacity: 0;
  }
  .intro__log {
    font-family: var(--f-mono);
    font-size: 0.6rem;
    letter-spacing: 0.28em;
    text-transform: uppercase;
    color: var(--signal-hot);
    min-height: 1.4em;
  }
  .intro__bar {
    height: 2px;
    background: var(--panel-3);
    margin-top: 1.2rem;
    position: relative;
  }
  .intro__bar i {
    position: absolute;
    inset: 0;
    background: var(--signal);
    transform: scaleX(0);
    transform-origin: left;
  }

  /* ---------- 18 MOTION PRIMITIVES ---------- */
  [data-clip] {
    clip-path: inset(0 0 100% 0);
  }
  [data-rise] {
    transform: translateY(20px);
    opacity: 0;
  }

  /* ---------- 19 UTILITIES ---------- */
  .u-mt-s {
    margin-top: 0.9rem;
  }
  .u-mt-m {
    margin-top: clamp(1.2rem, 2.4vw, 2rem);
  }
  .u-mt-l {
    margin-top: clamp(1.8rem, 3.4vw, 2.8rem);
  }
  .u-mb-s {
    margin-bottom: 0.9rem;
  }
  .u-mb-m {
    margin-bottom: clamp(1.2rem, 2.4vw, 2rem);
  }
  .u-center {
    text-align: center;
  }
  [data-icon] svg {
    width: 11px;
    height: 11px;
    display: block;
  }
  .crosses {
    position: relative;
  }

  /* ---------- 20 RESPONSIVE ---------- */
  @media (max-width: 1240px) {
    .files {
      grid-template-columns: repeat(2, minmax(0, 1fr));
    }
    .files--roster {
      grid-template-columns: repeat(2, minmax(0, 1fr));
    }
    .steps {
      grid-template-columns: repeat(2, minmax(0, 1fr));
    }
    .plate {
      grid-template-columns: repeat(2, minmax(0, 1fr));
    }
    .foot__top {
      grid-template-columns: 1fr 1fr 1fr;
    }
    .foot__mark {
      grid-column: 1/-1;
    }
  }
  @media (max-width: 1000px) {
    :root {
      --nav-h: 58px;
      --shell: min(1600px, 92vw);
    }
    .nav__links,
    .nav__cta,
    .nav__clock {
      display: none;
    }
    .burger {
      display: flex;
    }
    .hero__grid,
    .split,
    .split--wide-l,
    .split--wide-r,
    .dossier,
    .doc,
    .pairhead,
    .pagehead__grid,
    .routing,
    .aboutgrid,
    .dossier-row {
      grid-template-columns: 1fr;
    }
    .dossier__media {
      border-right: 0;
      border-bottom: 1px solid var(--line);
      min-height: 44svh;
    }
    .toc {
      position: static;
    }
    .toc ol {
      grid-template-columns: repeat(2, minmax(0, 1fr));
    }
    .svc__inner {
      grid-template-columns: 1fr;
    }
    .svc__meta {
      border-left: 0;
      border-top: 1px solid var(--line);
      padding-left: 0;
      padding-top: 0.8rem;
    }
    .notice {
      grid-template-columns: auto 1fr;
    }
    .notice .btn {
      grid-column: 1/-1;
      justify-content: center;
    }
  }
  @media (max-width: 640px) {
    .files,
    .files--roster,
    .steps,
    .plate,
    .route,
    .fields,
    .dossier__stats,
    .foot__top {
      grid-template-columns: 1fr;
    }
    .dossier__stat + .dossier__stat {
      border-left: 0;
      border-top: 1px solid var(--line);
      margin-top: 0.8rem;
    }
    .secbar {
      grid-template-columns: 3rem minmax(0, 1fr);
    }
    .secbar__meta {
      display: none;
    }
    .hero__strip {
      gap: 0.5rem 1rem;
    }
    .hero__panel .frame {
      min-height: 52svh;
    }
    .svc__btn {
      grid-template-columns: 2.6rem minmax(0, 1fr) auto;
    }
    .ledger__row {
      grid-template-columns: 3rem minmax(0, 1fr) auto;
    }
    .ledger__row > span:nth-child(3),
    .ledger__row > span:nth-child(4) {
      display: none;
    }
    .toc ol {
      grid-template-columns: 1fr;
    }
    .foot__bottom {
      gap: 0.4rem;
    }
  }

  /* ---------- 21 A11Y ---------- */
  @media (prefers-reduced-motion: reduce) {
    *,
    *::before,
    *::after {
      animation-duration: 0.001ms !important;
      animation-iteration-count: 1 !important;
      transition-duration: 0.001ms !important;
      scroll-behavior: auto !important;
    }
    [data-clip] {
      clip-path: none !important;
    }
    [data-rise] {
      transform: none !important;
      opacity: 1 !important;
    }
    .redact::after {
      transform: scaleX(0) !important;
    }
    .intro,
    .cursor {
      display: none !important;
    }
    .hero__scan {
      display: none;
    }
  }
  @media print {
    .nav,
    .grain,
    .vignette,
    .cursor,
    .veil,
    .intro,
    .closing,
    .hazard {
      display: none !important;
    }
    body {
      background: #fff;
      color: #111;
    }
  }

  /* ---------- 22 ADDENDA ---------- */
  .mod__bar--foot {
    border-bottom: 0;
    border-top: 1px solid var(--line);
  }
  .hero__panel .frame {
    position: relative;
  }
  .figurebar {
    display: flex;
    justify-content: space-between;
    gap: 1rem;
    padding: 0.5rem 0.7rem;
    border-top: 1px solid var(--line);
    font-family: var(--f-mono);
    font-size: 0.56rem;
    letter-spacing: 0.16em;
    text-transform: uppercase;
    color: var(--dust);
  }
  .kv {
    display: grid;
    grid-template-columns: auto 1fr;
    gap: 0.2rem 0.9rem;
    margin: 0;
    font-family: var(--f-mono);
    font-size: 0.58rem;
    letter-spacing: 0.14em;
    text-transform: uppercase;
  }
  .kv dt {
    color: var(--dust-lo);
  }
  .kv dd {
    margin: 0;
    color: var(--bone);
  }