/* --- Base --- */
:root {
  --bg:#0b0b0d;
  --ink:#d4d4d6;
  --muted:#9a9a9e;
  --accent:#ff5a2f;   /* pulse orange-red */
  --grid:rgba(255,255,255,0.04);
  --ox:0%;           /* global X offset for pings */
  --oy:0%;           /* global Y offset for pings */
}
* { box-sizing:border-box; }
html,body { height:100%; }
body.tp-body {
  margin:0;
  background:var(--bg);
  color:var(--ink);
  font:400 16px/1.5 system-ui, -apple-system, Segoe UI, Roboto, Helvetica, Arial, sans-serif;
}

/* --- Hero --- */
.tp-hero {
  position:relative;
  min-height:50svh;
  overflow:hidden;
  isolation:isolate;
}
.tp-hero__video {
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  object-fit:cover;
  filter:brightness(.28) contrast(1.05) saturate(1.1);
}
.tp-hero__overlay {
  position:absolute;
  inset:0;
  background:
    radial-gradient(60% 60% at 50% 40%, rgba(255,90,47,.18), transparent 60%),
    linear-gradient(to bottom, rgba(0,0,0,.3), rgba(0,0,0,.65));
  pointer-events:none;
}
.tp-hero__inner {
  position:relative;
  z-index:2;
  height:100%;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  text-align:center;
  padding:3rem 1.25rem 2rem;
}

/* terminal intro */
.tp-terminal {
  font-family:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", monospace;
  color:var(--muted);
  opacity:.9;
  margin-bottom:1.25rem;
}
.tp-terminal__line { opacity:0; animation:lineIn .9s forwards; }
.tp-terminal__line:nth-child(2) { animation-delay:1s; }
.tp-return-status {
  min-height:1.5em;
  margin-top:.35rem;
  color:rgba(190,190,194,.72);
  font-size:.82rem;
  letter-spacing:.08em;
  text-transform:uppercase;
  opacity:.82;
  text-shadow:0 0 10px rgba(255,255,255,.08);
}
.tp-return-status::after {
  content:"_";
  display:inline-block;
  margin-left:.24em;
  color:rgba(255,90,47,.6);
  animation:tp-status-cursor 1.2s steps(2, end) infinite;
}
@keyframes lineIn { to { opacity:1; } }
@keyframes tp-status-cursor {
  0%, 45% { opacity:1; }
  46%, 100% { opacity:0; }
}

/* title + tag */
.tp-title {
  margin:0;
  letter-spacing:.08em;
  font-weight:700;
  line-height:1.05;
  font-size:clamp(32px, 5.5vw, 72px);
  text-transform:uppercase;
  background:linear-gradient(180deg, #fff 0%, #f7e3d8 40%, #b4a79f 100%);
  -webkit-background-clip:text;
  background-clip:text;
  color:transparent;
  filter:drop-shadow(0 0 .35rem rgba(255,90,47,.25));
}
.tp-tag {
  margin:.5rem 0 1.75rem;
  color:var(--muted);
  font-size:clamp(14px,1.5vw,18px);
}

/* --- Command center --- */
.tp-command {
  position:relative;
  padding:24px 20px 64px;
  background:linear-gradient(180deg, rgba(255,255,255,.02), transparent 120px);
}
.tp-command::before {
  content:"";
  position:absolute;
  inset:0;
  background-image:
    linear-gradient(to right, var(--grid) 1px, transparent 1px),
    linear-gradient(to bottom, var(--grid) 1px, transparent 1px);
  background-size:56px 56px;
  opacity:.25;
  pointer-events:none;
}

/* --- Footer --- */
.tp-footer {
  border-top:1px solid rgba(255,255,255,.06);
  padding:18px 16px;
  color:var(--muted);
}
.tp-footer__inner {
  display:flex;
  gap:10px;
  align-items:center;
  justify-content:center;
  flex-wrap:wrap;
}
.tp-footer__blink { white-space:nowrap; }
.tp-footer__blink::after {
  content:"";
  display:inline-block;
  width:9px;
  height:1.1em;
  margin-left:6px;
  background:var(--accent);
  animation:blink 1.1s steps(1) infinite;
}
@keyframes blink { 50% { opacity:0; } }

/* Utility */
.min-h-screen { min-height:100svh; }

/* --- Active Cases --- */
.tp-cases {
  padding:80px 20px;
  background:rgba(0,0,0,.25);
}
.tp-section-title {
  text-align:center;
  font-size:clamp(24px,2vw,32px);
  margin-bottom:40px;
  letter-spacing:.06em;
  color:var(--muted);
}
.tp-cases-grid {
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(280px,1fr));
  gap:36px;
  justify-content:center;
}
.tp-case {
  position:relative;
  overflow:hidden;
  cursor:pointer;
  border:1px solid rgba(255,90,47,.25);
  border-radius:8px;
  background:#0a0a0c;
  transition:transform .3s ease;
}
.tp-case:hover {
  transform:scale(1.02);
  border-color:var(--accent);
}
.tp-case__img {
  background-size:cover;
  background-position:center;
  height:420px;
  filter:brightness(.7);
  transition:filter .4s ease;
}
.tp-case:hover .tp-case__img { filter:brightness(1); }
.tp-case__overlay {
  position:absolute;
  inset:0;
  background:radial-gradient(circle at 50% 80%, rgba(255,90,47,.25), transparent 70%);
  opacity:0;
  transition:opacity .4s ease;
}
.tp-case:hover .tp-case__overlay { opacity:.6; }
.tp-case__meta {
  position:absolute;
  bottom:0;
  width:100%;
  padding:24px;
  background:linear-gradient(to top,rgba(0,0,0,.75) 0%,rgba(0,0,0,.2) 90%);
  color:var(--ink);
}
.tp-case__meta h3 {
  margin:0 0 6px;
  font-size:1.05rem;
  letter-spacing:.05em;
  color:var(--accent);
}
.tp-case__meta p {
  margin:0;
  font-size:.9rem;
  color:var(--muted);
}
.tp-case__meta .tp-frag {
  color:var(--ink);
  opacity:.85;
  margin-top:6px;
}

/* --- Compact interior hero --- */
.tp-hero--compact {
  min-height:36vh;
  display:grid;
  place-items:end start;
  padding:64px 20px 28px;
  position:relative;
}
.tp-hero--compact .tp-hero__image {
  position:absolute;
  inset:0;
  background-image:var(--tp-hero-img);
  background-size:cover;
  background-position:center;
  filter:brightness(.35) contrast(1.05);
}
.tp-hero--compact .tp-hero__overlay {
  position:absolute;
  inset:0;
  background:linear-gradient(to bottom, rgba(0,0,0,.15), rgba(0,0,0,.55));
  pointer-events:none;
}
.tp-hero--compact .tp-hero__inner {
  position:relative;
  z-index:2;
  width:min(1100px, 92vw);
  margin:0 auto;
}

/* --- Subhero / Interior Header --- */
.tp-subhero {
  position:relative;
  min-height:42vh;
  background-size:cover;
  background-position:center;
  background-repeat:no-repeat;
  display:flex;
  align-items:flex-end;
  isolation:isolate;
}
.tp-subhero__scrim {
  position:absolute;
  inset:0;
  background:
    radial-gradient(55% 60% at 50% 35%, rgba(255,90,47,.18), transparent 60%),
    linear-gradient(to bottom, rgba(0,0,0,.35), rgba(0,0,0,.75));
  pointer-events:none;
  z-index:0;
}
.tp-subhero__inner {
  position:relative;
  z-index:1;
  width:100%;
  max-width:1100px;
  margin:0 auto;
  padding:48px 20px 32px;
  color:#e8e8ea;
}
.ccm-edit-mode .tp-subhero { min-height:280px; }

/* Optional: tighten gap above main content */
.tp-command { padding-top:40px; }

/* === Network Map (Home) === */
.tp-network {
  position:relative;
  padding:32px 20px 56px;
  background:linear-gradient(180deg, rgba(255,255,255,.02), transparent 120px);
  isolation:isolate;
}
.tp-network__inner {
  max-width:1200px;
  margin:0 auto;
}
.tp-network__map {
  position:relative;
  aspect-ratio:21/9;
  border:1px solid rgba(255,255,255,.08);
  border-radius:12px;
  overflow:hidden;
  background:#0a0a0c;
  box-shadow:0 10px 30px rgba(0,0,0,.35) inset;
}
/* world map image */
.tp-network__img {
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  object-fit:contain;              /* key change */
  opacity:.42;
  mix-blend-mode:screen;
  filter:contrast(1.3) brightness(.9);
}
/* glowing ping dots */
.tp-ping {
  appearance:none;
  border:0;
  padding:0;
  position:absolute;
  left:calc(var(--x) + var(--ox)); /* supports global offset */
  top: calc(var(--y) + var(--oy)); /* supports global offset */
  transform:translate(-50%,-50%);
  width:8px;
  height:8px;
  background:var(--accent);
  border-radius:50%;
  box-shadow:0 0 14px rgba(255,90,47,.8), 0 0 34px rgba(255,90,47,.35);
  cursor:pointer;
  z-index:2;
  transition:opacity .22s ease, filter .22s ease, box-shadow .22s ease, background .22s ease;
}
.tp-ping::before, .tp-ping::after {
  content:"";
  position:absolute;
  inset:0;
  border-radius:50%;
  border:1px solid rgba(255,90,47,.9);
  animation:tp-ping 2.4s ease-out infinite;
}
.tp-ping::after { animation-delay:1.2s; }
.tp-ping:hover,
.tp-ping:focus-visible {
  background:#ff7758;
  box-shadow:0 0 20px rgba(255,112,76,.95), 0 0 48px rgba(255,90,47,.58);
}
.tp-ping:focus-visible {
  outline:1px solid rgba(255,205,186,.9);
  outline-offset:10px;
}
.tp-ping.is-reviewed {
  opacity:.46;
  filter:saturate(.7);
}
.tp-ping.is-reviewed::before,
.tp-ping.is-reviewed::after {
  border-color:rgba(255,90,47,.38);
}
.tp-ping__label {
  position:absolute;
  left:50%;
  bottom:calc(100% + 12px);
  transform:translate(-50%, 4px);
  width:max-content;
  max-width:140px;
  padding:4px 7px;
  border:1px solid rgba(255,90,47,.42);
  background:rgba(8,8,10,.92);
  color:#ffb39d;
  font-family:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", monospace;
  font-size:10px;
  line-height:1;
  letter-spacing:.08em;
  text-transform:uppercase;
  opacity:0;
  pointer-events:none;
  white-space:nowrap;
  box-shadow:0 8px 18px rgba(0,0,0,.45);
  transition:opacity .18s ease, transform .18s ease;
}
.tp-ping__label::after {
  content:"";
  position:absolute;
  left:50%;
  top:100%;
  width:1px;
  height:8px;
  background:rgba(255,90,47,.42);
}
.tp-ping:hover .tp-ping__label,
.tp-ping:focus-visible .tp-ping__label {
  opacity:1;
  transform:translate(-50%, 0);
}
.tp-network__map.is-scanning::after {
  content:"";
  position:absolute;
  inset:0;
  z-index:3;
  pointer-events:none;
  background:
    repeating-linear-gradient(0deg, rgba(255,255,255,.04) 0 1px, transparent 1px 4px),
    radial-gradient(circle at var(--scan-x, 50%) var(--scan-y, 50%), rgba(255,90,47,.16), transparent 14%);
  mix-blend-mode:screen;
  opacity:.7;
  animation:tp-static-scan .32s steps(2, end) infinite;
}

@keyframes tp-ping {
  0% { transform:scale(.55); opacity:.95; }
  70% { transform:scale(3.2); opacity:0; }
  100% { opacity:0; }
}
@keyframes tp-static-scan {
  0% { transform:translateY(-1px); opacity:.28; }
  50% { transform:translateY(1px); opacity:.68; }
  100% { transform:translateY(0); opacity:.38; }
}

.tp-signal-modal[hidden] {
  display:none;
}
.tp-signal-modal {
  position:fixed;
  inset:0;
  z-index:9000;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:20px;
}
.tp-signal-modal__scrim {
  position:absolute;
  inset:0;
  background:rgba(0,0,0,.56);
  backdrop-filter:blur(2px);
}
.tp-signal-modal__panel {
  position:relative;
  z-index:1;
  width:min(92vw, 440px);
  min-height:188px;
  padding:24px 24px 26px;
  border:1px solid rgba(255,90,47,.36);
  border-radius:4px;
  background:
    linear-gradient(180deg, rgba(255,90,47,.08), transparent 34%),
    repeating-linear-gradient(90deg, rgba(255,255,255,.025) 0 1px, transparent 1px 18px),
    #09090b;
  box-shadow:0 24px 80px rgba(0,0,0,.64), inset 0 0 28px rgba(255,90,47,.06);
  color:#ded8d1;
}
.tp-signal-modal__panel::before {
  content:"";
  position:absolute;
  inset:8px;
  border:1px solid rgba(255,255,255,.05);
  pointer-events:none;
}
.tp-signal-modal__close {
  appearance:none;
  position:absolute;
  top:10px;
  right:12px;
  width:30px;
  height:30px;
  border:1px solid rgba(255,255,255,.12);
  border-radius:2px;
  background:rgba(0,0,0,.32);
  color:#f1d6ca;
  cursor:pointer;
  font-size:22px;
  line-height:26px;
}
.tp-signal-modal__close:hover,
.tp-signal-modal__close:focus-visible {
  border-color:rgba(255,90,47,.6);
  color:#fff;
  outline:none;
}
.tp-signal-modal__kicker,
.tp-signal-modal__loading {
  font-family:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", monospace;
  letter-spacing:.12em;
  text-transform:uppercase;
}
.tp-signal-modal__kicker {
  margin:0 42px 18px 0;
  color:#ff6b3e;
  font-size:11px;
}
.tp-signal-modal__loading {
  min-height:88px;
  display:flex;
  align-items:center;
  color:#a89f99;
  font-size:13px;
}
.tp-signal-modal__loading span {
  animation:tp-scan-dot 1s infinite;
}
.tp-signal-modal__loading span:nth-child(2) { animation-delay:.15s; }
.tp-signal-modal__loading span:nth-child(3) { animation-delay:.3s; }
.tp-signal-modal__content h3 {
  margin:0 36px 14px 0;
  color:#f2ede8;
  font-family:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", monospace;
  font-size:clamp(16px, 1.7vw, 21px);
  line-height:1.2;
  letter-spacing:.08em;
  text-transform:uppercase;
}
.tp-signal-modal__content p {
  margin:0;
  color:#b9aea6;
  font-size:15px;
  line-height:1.65;
  white-space:pre-line;
}
.tp-micro-glitch {
  position:fixed;
  right:clamp(14px, 3vw, 34px);
  bottom:clamp(14px, 4vw, 38px);
  z-index:2147482001;
  padding:6px 9px;
  border:1px solid rgba(255,90,47,.28);
  background:rgba(5,5,7,.78);
  color:#ff8a62;
  font-family:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", monospace;
  font-size:11px;
  line-height:1;
  letter-spacing:.12em;
  text-transform:uppercase;
  pointer-events:none;
  opacity:0;
  transform:translateY(3px);
  text-shadow:0 0 10px rgba(255,90,47,.48);
  transition:opacity .24s ease, transform .24s ease;
}
.tp-micro-glitch.is-visible {
  opacity:.68;
  transform:translateY(0);
}
.tp-archive-glitch-overlay {
  position:fixed;
  inset:0;
  z-index:2147482000;
  pointer-events:none;
  opacity:0;
  background:
    linear-gradient(90deg, rgba(255,54,36,.18), transparent 10%, rgba(40,180,255,.16) 12%, transparent 26%),
    repeating-linear-gradient(0deg, rgba(255,255,255,.13) 0 1px, transparent 1px 4px),
    radial-gradient(circle at 50% 42%, rgba(255,90,47,.1), transparent 48%);
  transform:translate3d(0,0,0);
  will-change:opacity, transform;
}
.tp-archive-glitch-overlay::before,
.tp-archive-glitch-overlay::after {
  content:"";
  position:absolute;
  inset:0;
  pointer-events:none;
}
.tp-archive-glitch-overlay::before {
  background:
    repeating-linear-gradient(0deg, transparent 0 5px, rgba(255,255,255,.3) 5px 6px),
    repeating-linear-gradient(90deg, rgba(255,54,36,.16) 0 2px, transparent 2px 8px, rgba(40,180,255,.14) 8px 11px, transparent 11px 16px);
  opacity:.68;
  transform:translateX(var(--glitch-shift, 0));
}
.tp-archive-glitch-overlay::after {
  top:var(--glitch-y, 48%);
  bottom:auto;
  height:clamp(34px, 8vh, 86px);
  background:
    linear-gradient(90deg, transparent, rgba(255,90,47,.45) 18%, rgba(255,255,255,.32) 50%, rgba(40,180,255,.34) 82%, transparent),
    repeating-linear-gradient(0deg, rgba(255,255,255,.28) 0 1px, transparent 1px 4px);
  opacity:.92;
  transform:translateY(-50%) translateX(var(--glitch-shift, 0));
}
body.tp-is-glitching .tp-hero,
body.tp-is-glitching .tp-network,
body.tp-is-glitching .tp-command,
body.tp-is-glitching .tp-footer {
  opacity:.982;
  filter:
    contrast(1.075)
    saturate(1.12)
    drop-shadow(2px 0 rgba(255,54,36,.18))
    drop-shadow(-2px 0 rgba(40,180,255,.16));
}
body.tp-is-glitching .tp-archive-glitch-overlay {
  opacity:.72;
  animation:tp-archive-glitch 140ms steps(2, end) infinite;
}
@keyframes tp-archive-glitch {
  0% { transform:translateX(-2px); }
  50% { transform:translateX(2px); }
  100% { transform:translateX(0); }
}
@keyframes tp-scan-dot {
  0%, 18% { opacity:.15; }
  40%, 100% { opacity:1; }
}

/* Accessibility: no animation */
@media (prefers-reduced-motion:reduce) {
  .tp-ping::before,.tp-ping::after { animation:none; }
  .tp-network__map.is-scanning::after,
  .tp-signal-modal__loading span,
  .tp-return-status::after,
  body.tp-is-glitching .tp-archive-glitch-overlay { animation:none; }
}

/* Mobile tweak */
@media (max-width:640px) {
  .tp-network__map { aspect-ratio:16/10; }
  .tp-ping {
    width:10px;
    height:10px;
  }
  .tp-ping__label {
    display:none;
  }
  .tp-signal-modal {
    align-items:flex-end;
    padding:14px;
  }
  .tp-signal-modal__panel {
    width:100%;
    padding:22px 20px 24px;
  }
}

/* --- Fix: push hero text down --- */
.tp-hero__inner{
  padding-top: clamp(72px, 14vh, 220px) !important; /* desktop/tablet */
  padding-bottom: 2.5rem;
}

/* logged-in toolbar gets extra space */
.ccm-toolbar-visible .tp-hero__inner{
  padding-top: calc(clamp(72px, 14vh, 220px) + 56px) !important;
}

/* tighten a bit on small screens */
@media (max-width: 600px){
  .tp-hero__inner{
    padding-top: clamp(56px, 12vh, 140px) !important;
  }
}

/* Homepage archive body replacement. Add after the existing custom-style.css rules. */
.tp-archive-home {
  position: relative;
  overflow: hidden;
  padding: 48px 20px 76px;
  background:
    radial-gradient(circle at 18% 12%, rgba(255, 90, 47, .08), transparent 28%),
    radial-gradient(circle at 78% 36%, rgba(170, 44, 24, .08), transparent 32%),
    #050506;
  color: #e2ded8;
  isolation: isolate;
}

.tp-archive-home::before {
  content: "";
  position: absolute;
  inset: 0;
  background-image:
    linear-gradient(to right, rgba(255,255,255,.035) 1px, transparent 1px),
    linear-gradient(to bottom, rgba(255,255,255,.035) 1px, transparent 1px),
    repeating-linear-gradient(to bottom, rgba(255,255,255,.03) 0 1px, transparent 1px 5px);
  background-size: 64px 64px, 64px 64px, auto;
  opacity: .45;
  pointer-events: none;
  z-index: 0;
}

.tp-archive-home::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(90deg, transparent, rgba(255, 90, 47, .035), transparent);
  opacity: .35;
  pointer-events: none;
  z-index: 0;
}

.tp-archive-home__grain {
  position: absolute;
  inset: 0;
  pointer-events: none;
  opacity: .2;
  z-index: 0;
  background-image:
    radial-gradient(circle at 12% 18%, rgba(255,255,255,.08) 0 1px, transparent 1px),
    radial-gradient(circle at 62% 32%, rgba(255,255,255,.06) 0 1px, transparent 1px),
    radial-gradient(circle at 38% 78%, rgba(255,90,47,.08) 0 1px, transparent 1px);
  background-size: 19px 23px, 31px 29px, 41px 37px;
}

.tp-archive-shell {
  position: relative;
  z-index: 1;
  width: min(1120px, 100%);
  margin: 0 auto;
}

.tp-archive-section {
  border: 1px solid rgba(154, 49, 28, .55);
  background:
    linear-gradient(180deg, rgba(255,255,255,.025), rgba(0,0,0,.16)),
    rgba(5, 5, 6, .86);
  box-shadow: 0 0 0 1px rgba(255, 90, 47, .04), 0 20px 60px rgba(0,0,0,.42);
}

.tp-archive-section + .tp-archive-section {
  margin-top: 38px;
}

.tp-archive-section__header {
  min-height: 58px;
  display: flex;
  align-items: center;
  padding: 14px 30px;
  border-bottom: 1px solid rgba(154, 49, 28, .35);
  background: rgba(0,0,0,.24);
}

.tp-archive-section h2,
.tp-case-file__id,
.tp-case-file__status,
.tp-subject-card__record span,
.tp-anomaly-report__clip p,
.tp-anomaly-report__clip strong,
.tp-anomaly-report__data,
.tp-case-file__button {
  font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", monospace;
  letter-spacing: .12em;
  text-transform: uppercase;
}

.tp-archive-section h2 {
  margin: 0;
  color: #f1ece5;
  font-size: clamp(1.15rem, 1.1vw + .9rem, 1.7rem);
  font-weight: 500;
}

.tp-archive-section__body {
  padding: 26px 30px 30px;
}

.tp-archive-section__body p,
.tp-recovered-media__placeholder p {
  max-width: 940px;
  margin: 0;
  color: #ded7ce;
  font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", monospace;
  font-size: clamp(.98rem, .42vw + .9rem, 1.24rem);
  line-height: 1.72;
}

.tp-case-file {
  padding: 26px 30px 30px;
}

.tp-case-file__topline {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  margin-bottom: 8px;
  color: #bdb4aa;
}

.tp-case-file__id {
  color: #d6c9bd;
  font-size: 1rem;
}

.tp-case-file__status {
  color: #cc4e2d;
  font-size: .72rem;
}

.tp-case-file h3 {
  margin: 0 0 24px;
  color: #f3eee8;
  font-size: clamp(1.45rem, 1.8vw + 1rem, 2.55rem);
  font-weight: 400;
  letter-spacing: .02em;
  line-height: 1.14;
}

.tp-subject-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 24px;
}

.tp-subject-card {
  position: relative;
  min-height: 320px;
  display: grid;
  grid-template-columns: minmax(130px, 42%) 1fr;
  overflow: hidden;
  border: 1px solid rgba(154, 49, 28, .48);
  background: #070707;
}

.tp-subject-card::after {
  content: "";
  position: absolute;
  inset: 0;
  background:
    linear-gradient(90deg, rgba(0,0,0,.28), transparent 34%, rgba(255,90,47,.06)),
    radial-gradient(circle at 75% 18%, rgba(255,90,47,.12), transparent 36%);
  pointer-events: none;
}

.tp-subject-card__image {
  position: relative;
  min-height: 320px;
  margin: 0;
  background: #0c0c0d;
}

.tp-subject-card__image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  display: block;
  filter: brightness(.64) contrast(1.08) saturate(.85);
}

.tp-subject-card__record {
  position: relative;
  z-index: 1;
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: 28px 26px;
}

.tp-subject-card__record h4 {
  margin: 0 0 22px;
  color: #f4eee7;
  font-size: clamp(1.45rem, 1.2vw + 1rem, 2rem);
  font-weight: 400;
  line-height: 1.1;
}

.tp-subject-card__record p {
  margin: 0 0 14px;
  color: #eee7df;
  font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", monospace;
  font-size: .98rem;
  line-height: 1.55;
}

.tp-subject-card__record p:last-child {
  margin-bottom: 0;
}

.tp-subject-card__record span {
  display: block;
  margin-bottom: 4px;
  color: #b9aea3;
  font-size: .78rem;
}

.tp-case-file__button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 48px;
  margin-top: 26px;
  padding: 0 32px;
  border: 1px solid rgba(255, 90, 47, .62);
  background: rgba(0,0,0,.38);
  color: #f6ede6;
  text-decoration: none;
  font-size: .96rem;
  box-shadow: inset 0 0 18px rgba(255, 90, 47, .06);
  transition: border-color .2s ease, color .2s ease, background .2s ease;
}

.tp-case-file__button:hover,
.tp-case-file__button:focus-visible {
  border-color: #ff5a2f;
  background: rgba(255, 90, 47, .09);
  color: #fff;
}

.tp-anomaly-report {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(300px, .95fr);
  gap: 32px;
  padding: 22px 30px 30px;
}

.tp-memory-still {
  position: relative;
  min-height: 230px;
  overflow: hidden;
  border: 1px solid rgba(255,255,255,.05);
  background:
    linear-gradient(90deg, rgba(255,90,47,.22), transparent 28%),
    #080808;
}

.tp-memory-still::before {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(90deg, rgba(255, 90, 47, .18), transparent 34%);
  mix-blend-mode: screen;
  z-index: 1;
}

.tp-memory-still::after {
  content: "";
  position: absolute;
  left: 8%;
  right: 42%;
  top: 46%;
  height: 2px;
  background: #ff5a2f;
  box-shadow:
    0 -10px 18px rgba(255,90,47,.42),
    0 10px 18px rgba(255,90,47,.42),
    42px 0 0 rgba(255,90,47,.72),
    88px 0 0 rgba(255,90,47,.36);
  z-index: 2;
}

.tp-memory-still img {
  width: 100%;
  height: 100%;
  min-height: 230px;
  object-fit: cover;
  object-position: center;
  display: block;
  opacity: .52;
  filter: brightness(.42) contrast(1.25) saturate(.75);
}

.tp-anomaly-report__clip p {
  margin: 18px 0 2px;
  color: #9f968d;
  font-size: .88rem;
}

.tp-anomaly-report__clip strong {
  color: #f3eee8;
  font-size: 1rem;
  font-weight: 500;
}

.tp-anomaly-report__data {
  align-self: stretch;
  display: flex;
  flex-direction: column;
  justify-content: center;
  min-height: 230px;
  padding: 30px;
  border: 1px solid rgba(154, 49, 28, .55);
  background:
    radial-gradient(circle at 82% 55%, rgba(255, 90, 47, .18), transparent 20%),
    rgba(0,0,0,.32);
  color: #ff6b3e;
  font-size: clamp(1rem, .8vw + .76rem, 1.25rem);
  line-height: 1.65;
}

.tp-anomaly-report__data p {
  margin: 0;
}

.tp-recovered-media__placeholder {
  min-height: 178px;
  display: flex;
  align-items: center;
  padding: 30px;
  background:
    linear-gradient(135deg, rgba(255,90,47,.06), transparent 28%),
    repeating-linear-gradient(45deg, rgba(255,255,255,.018) 0 1px, transparent 1px 12px),
    rgba(0,0,0,.24);
}

@media (max-width: 860px) {
  .tp-subject-grid,
  .tp-anomaly-report {
    grid-template-columns: 1fr;
  }

  .tp-subject-card {
    grid-template-columns: minmax(120px, 38%) 1fr;
  }
}

@media (max-width: 640px) {
  .tp-archive-home {
    padding: 34px 14px 58px;
  }

  .tp-archive-section + .tp-archive-section {
    margin-top: 26px;
  }

  .tp-archive-section__header,
  .tp-archive-section__body,
  .tp-case-file,
  .tp-anomaly-report,
  .tp-recovered-media__placeholder {
    padding-left: 18px;
    padding-right: 18px;
  }

  .tp-case-file__topline {
    align-items: flex-start;
    flex-direction: column;
    gap: 6px;
  }

  .tp-subject-card {
    grid-template-columns: 1fr;
  }

  .tp-subject-card__image,
  .tp-subject-card__image img {
    min-height: 260px;
  }

  .tp-subject-card__record {
    padding: 22px 20px 24px;
  }

  .tp-case-file__button {
    width: 100%;
  }
}

.tp-privacy-link {
  appearance: none;
  border: 0;
  padding: 0;
  background: transparent;
  color: #8e8884;
  cursor: pointer;
  font: inherit;
  text-decoration: underline;
  text-underline-offset: 3px;
}

.tp-privacy-link:hover,
.tp-privacy-link:focus-visible {
  color: #d6ccc4;
  outline: none;
}

.tp-privacy-notice[hidden] {
  display: none;
}

.tp-privacy-notice {
  position: fixed;
  left: 16px;
  right: 16px;
  bottom: 16px;
  z-index: 2147482100;
  pointer-events: none;
}

.tp-privacy-notice__inner {
  width: min(980px, 100%);
  margin: 0 auto;
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 18px;
  align-items: center;
  padding: 18px;
  border: 1px solid rgba(255,90,47,.38);
  border-radius: 4px;
  background:
    linear-gradient(180deg, rgba(255,90,47,.08), transparent 44%),
    rgba(7,7,9,.96);
  box-shadow: 0 18px 60px rgba(0,0,0,.58), inset 0 0 24px rgba(255,90,47,.05);
  color: #c4bbb4;
  pointer-events: auto;
}

.tp-privacy-notice__eyebrow {
  margin: 0 0 6px;
  color: #ff7a4f;
  font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", monospace;
  font-size: 11px;
  letter-spacing: .12em;
  text-transform: uppercase;
}

.tp-privacy-notice p {
  margin: 0;
  font-size: 14px;
  line-height: 1.5;
}

.tp-privacy-notice__actions {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
  justify-content: flex-end;
}

.tp-privacy-notice__actions button {
  appearance: none;
  min-height: 36px;
  border: 1px solid rgba(255,90,47,.4);
  border-radius: 2px;
  padding: 8px 10px;
  background: rgba(0,0,0,.34);
  color: #eee4dc;
  cursor: pointer;
  font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", monospace;
  font-size: 11px;
  letter-spacing: .06em;
  text-transform: uppercase;
}

.tp-privacy-notice__actions button:hover,
.tp-privacy-notice__actions button:focus-visible {
  border-color: rgba(255,125,88,.78);
  background: rgba(255,90,47,.12);
  outline: none;
}

@media (max-width: 760px) {
  .tp-privacy-notice {
    left: 10px;
    right: 10px;
    bottom: 10px;
  }

  .tp-privacy-notice__inner {
    grid-template-columns: 1fr;
    gap: 14px;
  }

  .tp-privacy-notice__actions {
    justify-content: stretch;
  }

  .tp-privacy-notice__actions button {
    flex: 1 1 100%;
  }
}
