:root {
  --lab-screen: #8fe6d1;
  --lab-screen-dim: #4e8f82;
  --lab-red: #9f302f;
  --lab-amber: #b48a42;
  --lab-ink: #080b0c;
  --lab-paper: #eee9dc;
  --lab-paper-dark: #d7d0be;
}

.forensics-floor { --accent: #6fcfda; }
.forensics-floor .floor-scene { display: block; background: #050708; }
.forensics-floor .floor-scene::before { content: none; }
.forensics-floor__image,
.forensics-floor__shade { position: absolute; inset: 0; width: 100%; height: 100%; }
.forensics-floor__image { object-fit: cover; }
.forensics-floor__shade { z-index: 1; pointer-events: none; background: linear-gradient(90deg, rgba(2, 5, 7, .28), transparent 30%), linear-gradient(180deg, transparent 62%, rgba(0, 0, 0, .24)); }
.forensics-floor .room-back-link { z-index: 5; }
.forensics-room-overlay { position: absolute; z-index: 3; inset: 0; width: 100%; height: 100%; overflow: visible; pointer-events: none; }
.forensics-hotspot { pointer-events: all; outline: none; }
.forensics-hotspot__surface { fill: transparent; stroke: transparent; stroke-width: 3; vector-effect: non-scaling-stroke; pointer-events: all; cursor: pointer; transition: fill .22s ease, stroke .22s ease, filter .22s ease; }
.forensics-hotspot__label { opacity: 0; pointer-events: none; transition: opacity .18s ease; }
.forensics-hotspot__label rect { fill: rgba(4, 10, 13, .94); stroke: #8be8f5; stroke-width: 1.5; vector-effect: non-scaling-stroke; }
.forensics-hotspot__label text { fill: #fff; font: 700 10px "DM Sans", sans-serif; letter-spacing: 1px; }
.forensics-hotspot:hover .forensics-hotspot__surface,
.forensics-hotspot:focus-visible .forensics-hotspot__surface { fill: rgba(99, 215, 235, .13); stroke: rgba(174, 246, 255, .8); filter: drop-shadow(0 0 13px rgba(99, 215, 235, .65)); }
.forensics-hotspot:hover .forensics-hotspot__label,
.forensics-hotspot:focus-visible .forensics-hotspot__label { opacity: 1; }

.forensics-content { overflow: hidden; color: #e9eeee; background: radial-gradient(circle at 15% 12%, #182124 0, transparent 25%), radial-gradient(circle at 88% 58%, #111a1d 0, transparent 30%), var(--lab-ink); }
.forensics-shell { width: min(1460px, calc(100% - clamp(38px, 7vw, 128px))); margin: 0 auto; }
.forensics-kicker { margin: 0 0 18px; color: #7fb7ad; font: 700 10px/1 "DM Sans", sans-serif; letter-spacing: .2em; text-transform: uppercase; }
.redacted { display: inline-block; overflow: hidden; padding: 0 .12em; color: #111 !important; background: #111; line-height: .9; vertical-align: baseline; user-select: none; }
.redacted--light { color: #e9e3d5 !important; background: #e9e3d5; }
.redacted--screen { color: #0b1514 !important; background: #0b1514; }

.archive-mandate { position: relative; margin-top: clamp(84px, 10vw, 142px); margin-bottom: clamp(112px, 14vw, 190px); padding: clamp(50px, 6vw, 84px); color: #27251f; background: linear-gradient(105deg, rgba(87, 73, 43, .06), transparent 32%), var(--lab-paper); box-shadow: 0 28px 80px rgba(0, 0, 0, .42), inset 0 0 90px rgba(84, 68, 37, .08); scroll-margin-top: 90px; }
.archive-mandate::before { content: "INTERNAL ROUTING COPY"; position: absolute; top: 26px; right: 30px; padding: 7px 9px; border: 2px solid rgba(133, 44, 43, .7); color: rgba(133, 44, 43, .78); font: 700 9px/1 "DM Sans", sans-serif; letter-spacing: .14em; transform: rotate(1.5deg); }
.archive-mandate .forensics-kicker { color: #6c685d; }
.archive-mandate__grid,
.forensics-section-heading { display: grid; grid-template-columns: minmax(0, 1.04fr) minmax(340px, .82fr); gap: clamp(48px, 8vw, 126px); align-items: start; }
.archive-mandate h2,
.forensics-section-heading h2,
.archive-exit h2 { margin: 0; font: clamp(42px, 5vw, 78px)/.98 Georgia, "Times New Roman", serif; letter-spacing: -.045em; }
.archive-mandate h2 span,
.forensics-section-heading h2 span { color: #7a2928; }
.archive-mandate__copy { padding-left: 28px; border-left: 1px solid #a69f8e; }
.archive-mandate__copy p { color: #504d45; font-size: 16px; line-height: 1.8; }
.archive-mandate__copy .forensics-lead { margin-top: 0; color: #24231e; font: 21px/1.58 Georgia, serif; }
.archive-mandate__ledger { margin: 34px 0 0; }
.archive-mandate__ledger > div { display: grid; grid-template-columns: 145px 1fr; gap: 20px; padding: 12px 0; border-bottom: 1px dotted #9f9887; }
.archive-mandate__ledger dt { color: #6b675e; font-size: 9px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; }
.archive-mandate__ledger dd { margin: 0; color: #282721; font-size: 12px; font-weight: 600; }
.routing-note { max-width: 74ch; margin: 58px 0 0 auto; padding: 17px 20px; border-left: 4px solid #85312f; color: #5b3733; background: rgba(139, 61, 55, .07); font: italic 14px/1.6 Georgia, serif; transform: rotate(-.35deg); }
.routing-note span { display: block; margin-bottom: 5px; color: #85312f; font: 700 9px/1 "DM Sans", sans-serif; letter-spacing: .14em; text-transform: uppercase; }

.archive-section { padding: clamp(105px, 13vw, 184px) 0; border-top: 1px solid rgba(196, 211, 211, .12); scroll-margin-top: 90px; }
.archive-section--factions { background: rgba(13, 19, 21, .62); }
.forensics-section-heading { margin-bottom: 48px; align-items: end; }
.forensics-section-heading h2 { max-width: 18ch; color: #f1eee6; font-size: clamp(40px, 4.5vw, 68px); }
.forensics-section-heading h2 span { color: #75bcb0; }
.forensics-section-heading > p { margin: 0; padding-left: 24px; border-left: 1px solid rgba(209, 220, 219, .28); color: #bdc7c6; font-size: 16px; line-height: 1.75; }

.archive-carousel { padding: 12px; border-radius: 4px; background: #202628; box-shadow: 0 30px 90px rgba(0, 0, 0, .45), inset 0 0 0 1px #394144, inset 0 0 0 3px #111719; }
.archive-carousel__console { display: flex; min-height: 76px; align-items: stretch; justify-content: space-between; color: var(--lab-screen); background: linear-gradient(180deg, #11191a, #0b1112); box-shadow: inset 0 -1px #2d3a3b; }
.archive-carousel__console > div:first-child { display: grid; min-width: 0; grid-template-columns: auto auto; align-content: center; gap: 7px 20px; padding: 13px 22px; }
.archive-carousel__console small { grid-column: 1 / -1; color: #4f746d; font-size: 8px; letter-spacing: .16em; }
.archive-carousel__console strong { overflow: hidden; max-width: 58vw; font: 600 12px/1.2 "DM Sans", sans-serif; letter-spacing: .09em; text-overflow: ellipsis; text-transform: uppercase; white-space: nowrap; }
.archive-carousel__console span { padding-left: 20px; border-left: 1px solid #2d4440; color: #6fa399; font-size: 9px; font-weight: 700; letter-spacing: .12em; }
.archive-carousel__controls { display: flex; padding: 10px; gap: 8px; }
.archive-carousel__controls button { min-width: 122px; border: 1px solid #3c4749; border-radius: 2px; color: #b8c6c4; background: linear-gradient(#262e30, #171d1f); box-shadow: inset 0 1px rgba(255, 255, 255, .06), 0 2px 2px #050707; font: 700 9px/1 "DM Sans", sans-serif; letter-spacing: .11em; text-transform: uppercase; cursor: pointer; }
.archive-carousel__controls button:hover,
.archive-carousel__controls button:focus-visible { border-color: #72ad9f; color: #e7fffa; outline: none; box-shadow: inset 0 0 12px rgba(93, 195, 170, .12), 0 0 8px rgba(93, 195, 170, .16); }
.archive-carousel__controls button:active { transform: translateY(1px); }
.archive-carousel__controls button:disabled { opacity: .32; cursor: not-allowed; }
.archive-carousel__track { display: flex; overflow-x: auto; overscroll-behavior-inline: contain; scroll-snap-type: x mandatory; scrollbar-width: none; background: #111718; }
.archive-carousel__track::-webkit-scrollbar { display: none; }
.archive-carousel__track:focus-visible { outline: 2px solid #6fa99d; outline-offset: -4px; }

.subject-file { display: grid; flex: 0 0 100%; grid-template-columns: minmax(360px, .78fr) minmax(0, 1.22fr); min-height: 870px; scroll-snap-align: start; scroll-snap-stop: always; background: #151b1c; }
.subject-file__evidence { display: flex; min-width: 0; flex-direction: column; gap: 15px; margin: 0; padding: clamp(24px, 3vw, 40px); background: radial-gradient(circle at 50% 20%, #263235, #111718 62%); }
.evidence-custody { margin: auto 3px 0; padding-top: 13px; border-top: 1px solid #344043; color: #7c8b8c; font-size: 9px; letter-spacing: .08em; line-height: 1.6; text-transform: uppercase; }
.evidence-custody span { display: block; color: #a4b0af; }
.evidence-terminal { position: relative; padding: 10px; border: 1px solid #3d4a4c; border-radius: 5px; background: #090d0e; box-shadow: 0 16px 32px rgba(0, 0, 0, .35), inset 0 0 0 3px #171e20; }
.evidence-terminal__status { display: flex; min-height: 28px; align-items: center; justify-content: space-between; padding: 0 6px; color: #678d86; font-size: 8px; letter-spacing: .13em; text-transform: uppercase; }
.evidence-terminal__status span::before { content: ""; display: inline-block; width: 5px; height: 5px; margin-right: 7px; border-radius: 50%; background: #8d433b; box-shadow: 0 0 6px #8d433b; }
.evidence-terminal__status i { color: #46635e; font-style: normal; }
.evidence-terminal__viewport { position: relative; height: clamp(390px, 42vw, 615px); overflow: hidden; background: #050808; box-shadow: inset 0 0 34px #000; }
.evidence-terminal__main { width: 100%; height: 100%; object-fit: cover; object-position: center; filter: saturate(.72) contrast(1.08) brightness(.9); transition: opacity .18s ease, filter .18s ease; }
.evidence-terminal__scan { position: absolute; inset: 0; pointer-events: none; opacity: .22; background: repeating-linear-gradient(180deg, transparent 0 3px, rgba(4, 14, 13, .42) 4px); }
[data-active] .evidence-terminal__viewport { animation: terminal-breathe 13s linear infinite; }
.evidence-terminal--switching .evidence-terminal__main { animation: evidence-switch .28s ease; }
.evidence-sealed--fire .evidence-terminal__void { color: #ffd19d; text-shadow: 0 0 16px rgba(222, 92, 29, .34); }
.evidence-terminal__rail { display: flex; gap: 8px; padding-top: 10px; }
.evidence-terminal__rail button { position: relative; width: 68px; height: 48px; overflow: hidden; padding: 0; border: 1px solid #334042; background: #080b0c; cursor: pointer; }
.evidence-terminal__rail button[aria-pressed="true"] { border-color: var(--lab-screen); box-shadow: 0 0 8px rgba(115, 214, 190, .22); }
.evidence-terminal__rail img { width: 100%; height: 100%; object-fit: cover; opacity: .58; }
.evidence-terminal__rail button[aria-pressed="true"] img { opacity: .95; }
.evidence-terminal__rail button span { position: absolute; right: 3px; bottom: 2px; color: #d9e7e4; background: rgba(0, 0, 0, .72); font-size: 7px; }
.evidence-terminal > p { min-height: 16px; margin: 9px 5px 2px; color: #8aa59f; font-size: 9px; line-height: 1.5; letter-spacing: .08em; text-transform: uppercase; }
.evidence-terminal--compact { margin: 26px 0; padding: 7px; }
.evidence-terminal--compact .evidence-terminal__viewport { height: 210px; }
.evidence-terminal--compact .evidence-terminal__status { min-height: 23px; }
.evidence-terminal--compact .evidence-terminal__rail button { width: 54px; height: 38px; }
.evidence-terminal--sealed { min-height: 610px; }
.evidence-terminal__void { display: flex; min-height: 540px; align-items: center; justify-content: center; flex-direction: column; gap: 20px; color: #56736d; background: radial-gradient(circle, rgba(70, 126, 113, .08), transparent 38%), #050909; box-shadow: inset 0 0 50px #000; }
.evidence-terminal__void b { font: 22px/1 "DM Sans", sans-serif; letter-spacing: .22em; }
.evidence-terminal__void small { color: #6f827e; font-size: 8px; letter-spacing: .14em; text-transform: uppercase; }

.subject-file__document,
.intel-file > div,
.species-file > div:last-child { position: relative; padding: clamp(46px, 5.4vw, 82px); color: #282720; background: linear-gradient(105deg, rgba(100, 86, 55, .05), transparent 34%), var(--lab-paper); box-shadow: inset 18px 0 30px rgba(83, 70, 43, .06); }
.subject-file__document::after,
.intel-file > div::after,
.species-file > div:last-child::after { content: ""; position: absolute; top: 22px; right: 26px; width: 7px; height: 7px; border-radius: 50%; background: #867e6d; box-shadow: 0 0 0 1px #595447, inset 1px 1px 2px #d8d1c0; }
.file-routing { display: flex; justify-content: space-between; gap: 20px; margin-bottom: 22px; padding-bottom: 11px; border-bottom: 1px solid #aaa391; color: #6d695f; font-size: 8px; letter-spacing: .1em; text-transform: uppercase; }
.document-stamp { display: inline-block; margin: 2px 0 22px; padding: 7px 9px; border: 2px solid #397064; color: #397064; font: 700 9px/1 "DM Sans", sans-serif; letter-spacing: .1em; transform: rotate(-1deg); }
.document-stamp--danger { border-color: #983635; color: #983635; }
.document-stamp--partial { border-color: #896b2f; color: #896b2f; }
.document-stamp--report { border-color: #435f8e; color: #435f8e; }
.document-code { margin: 0; color: #706c62; font-size: 9px; font-weight: 700; letter-spacing: .13em; text-transform: uppercase; }
.subject-file h3,
.intel-file h3,
.species-file h3 { margin: 11px 0 26px; color: #1e1d19; font: clamp(40px, 4.2vw, 66px)/.98 Georgia, "Times New Roman", serif; letter-spacing: -.045em; }
.identity-ledger { display: grid; grid-template-columns: 1fr 1fr; gap: 0 28px; margin: 0 0 34px; }
.identity-ledger > div { display: grid; grid-template-columns: 88px 1fr; gap: 12px; padding: 9px 0; border-bottom: 1px dotted #aaa392; }
.identity-ledger dt { color: #746f64; font-size: 8px; font-weight: 700; letter-spacing: .09em; text-transform: uppercase; }
.identity-ledger dd { margin: 0; color: #25241f; font-size: 12px; font-weight: 600; }
.subject-file h4,
.intel-file h4,
.species-file h4 { margin: 25px 0 7px; color: #4b504a; font-size: 10px; letter-spacing: .12em; text-transform: uppercase; }
.subject-file__document > p:not(.document-code),
.intel-file > div > p,
.species-file > div:last-child > p { margin: 0 0 13px; color: #413f38; font-size: 16px; line-height: 1.72; }
.subject-file--threat .subject-file__document { background-color: #eee5d9; }
.agent-addendum { margin-top: 34px; padding: 18px 20px 16px; border-left: 3px solid #8d3936; color: #553b37; background: rgba(145, 63, 57, .07); transform: rotate(-.25deg); }
.agent-addendum strong { display: block; margin-bottom: 7px; color: #823431; font-size: 9px; letter-spacing: .13em; text-transform: uppercase; }
.agent-addendum p { margin: 0; font: italic 14px/1.58 Georgia, serif; }
.agent-addendum > span { display: block; margin-top: 7px; color: #78665e; font-size: 8px; letter-spacing: .08em; text-align: right; text-transform: uppercase; }

.evidence-image--contain { object-fit: contain !important; background: #070a0b; }
.evidence-crop--yasmeen,
.evidence-crop--sol,
.evidence-image--ensemble-riz,
.evidence-image--group-yeo,
.evidence-image--group-saeko,
.evidence-image--group-reyna { position: absolute; top: 0; left: 0; max-width: none; height: 100% !important; object-fit: cover !important; }
.evidence-crop--yasmeen { width: 600% !important; transform: translateX(-83.333%); }
.evidence-crop--sol { width: 600% !important; transform: translateX(0); }
.evidence-image--ensemble-riz { width: 600% !important; transform: translateX(-66.666%); }
.evidence-image--group-yeo { width: 400% !important; transform: translateX(-25%); }
.evidence-image--group-saeko { width: 400% !important; transform: translateX(0); }
.evidence-image--group-reyna { width: 400% !important; transform: translateX(-75%); }

.intel-file,
.species-file { display: grid; flex: 0 0 100%; min-height: 740px; scroll-snap-align: start; scroll-snap-stop: always; }
.intel-file { grid-template-columns: minmax(310px, .42fr) 1fr; }
.intel-file > aside,
.species-file__marker { display: flex; min-width: 0; flex-direction: column; justify-content: space-between; padding: clamp(34px, 4vw, 60px); color: #dce8e5; background: radial-gradient(circle at 35% 25%, #273436, transparent 35%), #111718; }
.intel-file > aside > p,
.species-file__marker > span { margin: 0; color: var(--lab-screen); font-size: 10px; letter-spacing: .13em; }
.intel-file > aside > strong,
.species-file__marker > strong { max-width: 13ch; font: clamp(28px, 3.1vw, 48px)/1 Georgia, serif; }
.intel-file > aside > span,
.species-file__marker > em { color: #879794; font-size: 9px; font-style: normal; line-height: 1.55; letter-spacing: .1em; text-transform: uppercase; }
.species-file { grid-template-columns: minmax(310px, .44fr) 1fr; }
.species-file__marker--fire { background: radial-gradient(circle at 38% 35%, rgba(135, 62, 32, .38), transparent 30%), #19110e; }

.archive-exit { min-height: 650px; display: grid; place-items: center; padding: 96px 28px; color: #24231e; text-align: left; background: #cfc7b4; box-shadow: inset 0 35px 90px rgba(70, 56, 34, .14); }
.archive-exit > div { width: min(1040px, 100%); padding: clamp(46px, 7vw, 90px); background: var(--lab-paper); box-shadow: 0 26px 70px rgba(30, 23, 12, .2); }
.archive-exit .forensics-kicker { color: #6d685d; }
.archive-exit h2 { font-size: clamp(44px, 5.6vw, 82px); }
.archive-exit h2 span { color: #873432; }
.archive-exit p:not(.forensics-kicker) { max-width: 64ch; margin: 28px 0; color: #514d43; font-size: 16px; line-height: 1.75; }
.archive-exit > div > div { display: flex; gap: 12px; flex-wrap: wrap; }
.forensics-button { display: inline-flex; min-height: 52px; align-items: center; justify-content: space-between; gap: 38px; padding: 0 18px; border: 1px solid #918a79; color: #27251f; background: #f7f3e9; font-size: 9px; font-weight: 700; letter-spacing: .1em; text-decoration: none; text-transform: uppercase; }
.forensics-button--dark { color: #e9eeee; background: #171d1e; border-color: #171d1e; }
.forensics-button:hover,
.forensics-button:focus-visible { outline: 2px solid #2b3a3a; outline-offset: 3px; }
.forensics-footer { padding: 28px clamp(26px, 5vw, 72px); color: #9ca2ad; background: #040708; font-size: 10px; letter-spacing: .08em; text-transform: uppercase; }
.forensics-footer p { margin: 0; }
.forensics-footer a { color: #fff; }

@keyframes terminal-breathe {
  0%, 44%, 50%, 100% { filter: brightness(1); }
  47% { filter: brightness(1.025); }
  48% { filter: brightness(.99); }
}
@keyframes evidence-switch {
  0% { opacity: .45; filter: contrast(1.3) brightness(1.12); }
  38% { opacity: .88; }
  100% { opacity: 1; }
}

@media (max-width: 1040px) {
  .subject-file { grid-template-columns: minmax(320px, .68fr) 1fr; }
  .subject-file__document,
  .intel-file > div,
  .species-file > div:last-child { padding: 44px; }
  .archive-carousel__controls button { min-width: 104px; }
  .identity-ledger { grid-template-columns: 1fr; }
}

@media (max-width: 850px) {
  .archive-mandate__grid,
  .forensics-section-heading,
  .subject-file,
  .intel-file,
  .species-file { grid-template-columns: 1fr; }
  .archive-mandate__copy,
  .forensics-section-heading > p { padding-top: 24px; padding-left: 0; border-top: 1px solid currentColor; border-left: 0; }
  .subject-file__evidence { min-height: 700px; }
  .evidence-terminal__viewport { height: min(94vw, 610px); }
  .evidence-terminal--sealed { min-height: 590px; }
  .intel-file > aside,
  .species-file__marker { min-height: 460px; }
  .archive-carousel__console > div:first-child { grid-template-columns: 1fr; }
  .archive-carousel__console small { grid-column: auto; }
  .archive-carousel__console span { padding-left: 0; border-left: 0; }
}

@media (max-width: 620px) {
  .forensics-shell { width: calc(100% - 28px); }
  .archive-mandate { padding: 74px 24px 38px; }
  .archive-mandate::before { top: 22px; right: 22px; }
  .archive-mandate h2,
  .archive-exit h2 { font-size: clamp(38px, 12vw, 58px); }
  .forensics-section-heading h2 { font-size: clamp(36px, 11vw, 54px); }
  .archive-carousel { padding: 7px; }
  .archive-carousel__console { min-height: 104px; }
  .archive-carousel__console strong { max-width: 48vw; font-size: 10px; }
  .archive-carousel__controls { flex-direction: column; padding: 7px; }
  .archive-carousel__controls button { min-width: 88px; flex: 1; font-size: 8px; }
  .subject-file__evidence { min-height: 610px; padding: 18px; }
  .subject-file__document,
  .intel-file > div,
  .species-file > div:last-child { padding: 34px 23px 52px; }
  .subject-file h3,
  .intel-file h3,
  .species-file h3 { font-size: clamp(35px, 11vw, 52px); }
  .file-routing { flex-direction: column; gap: 7px; }
  .archive-mandate__ledger > div { grid-template-columns: 1fr; gap: 6px; }
  .forensics-hotspot__label { display: none; }
  .archive-exit { min-height: 590px; }
  .archive-exit > div { padding: 44px 24px; }
  .forensics-footer { line-height: 1.7; }
}

@media (prefers-reduced-motion: reduce) {
  .forensics-hotspot__surface,
  .forensics-hotspot__label,
  .evidence-terminal__main { transition: none; }
  [data-active] .evidence-terminal__viewport,
  .evidence-terminal--switching .evidence-terminal__main { animation: none; }
}
