/* Corrupted terminal overrides: keep the layout familiar, alter only what the player remembers. */
:root {
  --deep: #180f0d;
  --panel: #38221e;
  --panel-2: #573129;
  --line: #76564f;
  --cream: #e6d7bd;
  --paper: #d7c8a7;
  --gold: #a77b32;
  --red: #7f2926;
  --green: #516653;
}

.corrupted-page .desktop {
  background:
    radial-gradient(circle at 72% 20%, rgba(111,35,31,.09), transparent 24%),
    linear-gradient(rgba(0,0,0,.2), rgba(0,0,0,.38)),
    repeating-linear-gradient(0deg, transparent 0 35px, rgba(255,255,255,.012) 36px),
    repeating-linear-gradient(90deg, transparent 0 35px, rgba(255,255,255,.01) 36px),
    #180f0d;
}
.corrupted-page .desktop::before { content: "AGENCY 27 / RETURNED SESSION / ORPHEUS PRESENT"; color: rgba(205,157,137,.42); }
.corrupted-page .os-window { box-shadow: 8px 10px 28px rgba(0,0,0,.72), 0 0 18px rgba(97,24,23,.1); }
.corrupted-page .os-titlebar { background: linear-gradient(#573129,#2a1714); }
.corrupted-page .welcome-copy { background: radial-gradient(circle at 8% 9%, rgba(117,44,40,.13), transparent 34%), #d9ceb8; }
.corrupted-page .welcome-copy h1 { color: #5f2825; }
.corrupted-page .welcome-tip::after { content: " Orpheus has already marked your attendance."; color: #7f2926; }
.corrupted-page .command-panel { color: #9ca786; background: #100a09; }
.corrupted-page .command-heading { color: #b47745; }
.corrupted-page .profile-photo { color: #d8c7ac; background: repeating-linear-gradient(90deg,#211411 0 3px,#3a211d 3px 7px); filter: contrast(1.3); }
.corrupted-page .employee-file-paper { filter: sepia(.15) contrast(1.04); transform: rotate(.18deg); }
.corrupted-page .employee-file-paper::after {
  content: "REVIEWED BY ORPHEUS";
  position: absolute;
  right: 34px;
  bottom: 55px;
  color: rgba(127,41,38,.55);
  border: 3px solid rgba(127,41,38,.45);
  padding: 8px 12px;
  transform: rotate(-4deg);
  font: 15px "Special Elite", monospace;
}
.corrupted-page .gallery-page { background: #160e0c; }
.corrupted-page .polaroid { background: #d4c6aa; filter: sepia(.35) contrast(1.12) brightness(.82); }
.corrupted-page .photo { position: relative; overflow: hidden; filter: grayscale(.25) contrast(1.45) brightness(.62); animation: image-drift 11s steps(2,end) infinite; }
.corrupted-page .photo::after {
  content: "";
  position: absolute;
  inset: 0;
  background: repeating-linear-gradient(0deg,transparent 0 4px,rgba(58,10,10,.12) 5px);
  mix-blend-mode: multiply;
}
.corrupted-page .cardinal { background: radial-gradient(circle at 58% 48%,#4d0909 0 10%,transparent 11%), radial-gradient(circle at 43% 43%,#120707 0 5%,transparent 6%), linear-gradient(135deg,#494933,#130b0a); }
.corrupted-page .game { background: repeating-linear-gradient(90deg,#170b0a 0 13px,#3d1916 14px 18px,#1c0d0b 19px 29px); }
.corrupted-page .sketch { background: radial-gradient(ellipse at 52% 48%,#2b1715 0 8%,transparent 9%), repeating-linear-gradient(18deg,#887b67 0 2px,#b3a78f 3px 8px); }
.corrupted-page .shell { background: radial-gradient(ellipse at 55% 55%,#2a0d0d 0 17%,#66503d 18% 22%,transparent 23%), linear-gradient(#34261e,#100a08); }
.corrupted-page .polaroid:nth-child(1) { transform: rotate(-4deg) scaleX(.98); }
.corrupted-page .polaroid:nth-child(2) { transform: rotate(3deg) skewY(.5deg); }
.corrupted-page .polaroid:nth-child(3) { transform: rotate(-1deg) translateY(6px); }
.corrupted-page .polaroid:nth-child(4) { transform: rotate(5deg) scale(.97); }
.corrupted-page .intern-record { background: repeating-linear-gradient(to bottom,transparent 0 29px,rgba(105,32,28,.1) 30px),#d1c19e; }
.corrupted-page .intern-status-stamp { color:#6f1f1d; border-color:#6f1f1d; }
.corrupted-page .intern-system-note { border-color:#6f1f1d; background:rgba(111,31,29,.09); }
.corrupted-page .orpheus-sidebar-note { border-color:#7f2926; }
.corrupted-page .orpheus-tray { animation: orpheus-pulse 4s steps(1) infinite; }
.corrupted-page .taskbar::before {
  content:"ORPHEUS";
  position:absolute;
  left:50%;
  top:3px;
  color:rgba(181,103,88,.24);
  font:10px "Special Elite",monospace;
  letter-spacing:.3em;
  pointer-events:none;
}
.corrupted-page .casenet-address-bar span:last-child { font-size:0; }
.corrupted-page .casenet-address-bar span:last-child::after { content:"casenet://orpheus/local/operator/"; font-size:13px; }

@keyframes image-drift {
  0%,94%,100% { transform:none; }
  95% { transform:translateX(2px) scaleY(1.02); }
  96% { transform:translateX(-2px) scaleX(1.015); }
}
@keyframes orpheus-pulse {
  0%,90%,100% { color:var(--gold); box-shadow:none; }
  91%,94% { color:#d39a8c; box-shadow:0 0 8px rgba(127,41,38,.8); }
}


/* Corrupted Messenger */
.corrupted-page .messenger-icon {
  color: #d5b0a6;
  background: linear-gradient(#5b2623, #261211);
  border-color: #6f2926;
}

.corrupted-page .messenger-icon::after {
  background: #261211;
  border-color: #6f2926;
}

.corrupted-page .messenger-sidebar {
  background: linear-gradient(#4b211e, #211211);
}

.corrupted-page .messenger-chat {
  background: #cbb99a;
}

.corrupted-page .messenger-chat-header,
.corrupted-page .messenger-composer {
  background: #d7c8aa;
  border-color: #80665c;
}

.corrupted-page .messenger-messages {
  background:
    repeating-linear-gradient(0deg, transparent 0 31px, rgba(111,31,29,.055) 32px),
    #cdbb9b;
}

.corrupted-page .messenger-contact.unavailable {
  opacity: .55;
  filter: grayscale(.45);
}

.corrupted-page .orpheus-contact {
  margin-top: 7px;
  border: 1px solid rgba(127,41,38,.7);
  background: rgba(127,41,38,.18);
}

.corrupted-page .altered-message {
  border-left: 3px solid #7f2926;
  padding-left: 9px;
}

.corrupted-page .faded-message {
  opacity: .5;
}

.corrupted-page .message-edit-note,
.corrupted-page .seen-everyone {
  display: block;
  margin-top: 5px;
  color: #7f2926;
  font-size: 9px;
  font-style: italic;
}

.corrupted-page .messenger-system-line.danger {
  border-color: #7f2926;
  color: #6f1f1d;
  background: rgba(127,41,38,.12);
  font-weight: bold;
}

.corrupted-page .orpheus-message {
  padding: 10px;
  border: 1px solid rgba(127,41,38,.48);
  background: rgba(127,41,38,.1);
}

.corrupted-page .orpheus-message header strong {
  color: #6f1f1d;
}

.corrupted-page .locked-composer input {
  color: #6f1f1d;
  background: #cbb99a;
}

.corrupted-page .corrupted-user-message {
  border-color: #7f2926;
  background: rgba(127,41,38,.08);
}


/* Corrupted Recycle Bin folders */
.corrupted-page .recycle-folders {
  background:
    radial-gradient(circle at 80% 12%, rgba(127,41,38,.09), transparent 25%),
    #160e0c;
}

.corrupted-page .discarded-folder:hover,
.corrupted-page .discarded-folder:focus-visible {
  border-color: rgba(181,103,88,.72);
  background: rgba(127,41,38,.12);
}

.corrupted-page .folder-tab-art {
  border-color: #5f2a26;
  background: #8e4339;
}

.corrupted-page .folder-front-art {
  border-color: #5f2a26;
  background:
    linear-gradient(rgba(255,255,255,.08), transparent 35%),
    linear-gradient(#a65647, #713029);
}

.corrupted-page .folder-paper-art {
  border-color: #7b635c;
  color: #6f1f1d;
  background:
    repeating-linear-gradient(to bottom, transparent 0 6px, rgba(111,31,29,.16) 7px),
    #d8c9aa;
}

.corrupted-page .recovery-file {
  border-color: rgba(127,41,38,.35);
}


/* =========================================================
   STRONGER CORRUPTION EFFECTS
   Keeps the desktop usable while making the returned session
   visibly unstable and manipulated by Orpheus.
   ========================================================= */

/* Whole-screen CRT layer, red vignette, and slow breathing */
.corrupted-page .desktop {
  overflow: hidden;
  animation:
    corrupted-desktop-breathe 16s ease-in-out infinite,
    corrupted-desktop-jump 11s steps(1, end) infinite;
}

.corrupted-page .desktop::after {
  content: "";
  position: fixed;
  inset: 0;
  z-index: 9998;
  pointer-events: none;
  background:
    radial-gradient(circle at center, transparent 48%, rgba(26, 0, 0, .24) 100%),
    repeating-linear-gradient(
      to bottom,
      rgba(255,255,255,.015) 0,
      rgba(255,255,255,.015) 1px,
      rgba(0,0,0,.045) 2px,
      rgba(0,0,0,.045) 4px
    );
  opacity: .7;
  mix-blend-mode: multiply;
  animation:
    corrupted-screen-flicker 7s steps(1, end) infinite,
    corrupted-scan-drift 13s linear infinite;
}

/* Large ghost text hidden in the wallpaper */
.corrupted-page .desktop::before {
  content:
    "AGENCY 27 / RETURNED SESSION / ORPHEUS PRESENT\A"
    "\A"
    "YOU RETURNED\A"
    "\A"
    "FILE NOT FOUND\A"
    "\A"
    "OBSERVATION CONTINUES";
  white-space: pre;
  font-size: clamp(10px, 2vw, 24px);
  line-height: 2.2;
  letter-spacing: .34em;
  text-align: center;
  color: rgba(205,157,137,.13);
  width: min(72vw, 900px);
  left: 50%;
  top: 44%;
  transform: translate(-50%, -50%) rotate(-1deg);
  text-shadow:
    2px 0 rgba(127,41,38,.11),
    -2px 0 rgba(81,102,83,.06);
  animation: corrupted-wallpaper-ghost 12s steps(1, end) infinite;
}

/* A moving horizontal tear across the screen */
.corrupted-page main.desktop {
  position: relative;
}

.corrupted-page main.desktop > .containment-banner::after {
  content: "";
  position: fixed;
  left: 0;
  right: 0;
  top: -12%;
  height: 6px;
  z-index: 9997;
  pointer-events: none;
  background:
    linear-gradient(
      90deg,
      transparent 0 4%,
      rgba(160,58,49,.12) 8%,
      rgba(255,230,200,.18) 31%,
      rgba(127,41,38,.18) 53%,
      transparent 76%
    );
  box-shadow:
    0 1px rgba(255,255,255,.05),
    0 4px 16px rgba(127,41,38,.1);
  opacity: 0;
  animation: corrupted-screen-tear 9s steps(1, end) infinite;
}

/* Windows feel duplicated, unstable, and slightly misregistered */
.corrupted-page .os-window,
.corrupted-page .lead-popup,
.corrupted-page .eerie-popup,
.corrupted-page .utility-popup,
.corrupted-page .recovery-popup {
  transform-origin: center;
  filter: saturate(.86) contrast(1.045);
}

.corrupted-page .os-window:not(.is-hidden):not(.is-minimized) {
  animation: corrupted-window-presence 10s steps(1, end) infinite;
}

.corrupted-page .os-window:nth-of-type(3n) {
  animation-delay: -2.6s;
}

.corrupted-page .os-window:nth-of-type(4n) {
  animation-delay: -5.1s;
}

.corrupted-page .os-titlebar {
  position: relative;
  overflow: hidden;
}

.corrupted-page .os-titlebar::after {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  background:
    linear-gradient(
      90deg,
      transparent 0 46%,
      rgba(255,255,255,.09) 49%,
      rgba(127,41,38,.25) 50%,
      transparent 52%
    );
  transform: translateX(-120%);
  animation: corrupted-titlebar-sweep 8s steps(1, end) infinite;
}

/* Brief title duplication */
.corrupted-page .os-title {
  position: relative;
  text-shadow:
    1px 0 rgba(127,41,38,.35),
    -1px 0 rgba(110,145,126,.15);
}

.corrupted-page .os-title::after {
  content: attr(data-corrupt-copy);
  position: absolute;
  left: 2px;
  top: 0;
  width: 100%;
  color: rgba(215,180,160,.24);
  pointer-events: none;
  opacity: 0;
  transform: translateX(2px);
  animation: corrupted-title-copy 13s steps(1, end) infinite;
}

/* Desktop icons jitter at different times */
.corrupted-page .desktop-icon {
  transform-origin: center;
  animation: corrupted-icon-jitter 12s steps(1, end) infinite;
}

.corrupted-page .desktop-icon:nth-child(2n) {
  animation-delay: -3s;
}

.corrupted-page .desktop-icon:nth-child(3n) {
  animation-delay: -6.5s;
}

.corrupted-page .desktop-icon:nth-child(5n) {
  animation-delay: -9s;
}

.corrupted-page .desktop-icon > span:last-child {
  text-shadow:
    1px 0 rgba(127,41,38,.6),
    -1px 0 rgba(81,102,83,.22),
    0 1px rgba(0,0,0,.7);
}

/* Specific applications behave differently */
.corrupted-page #desktop-messenger .messenger-icon {
  animation: corrupted-messenger-blink 9s steps(1, end) infinite;
}

.corrupted-page #desktop-recycle .recycle-icon {
  animation: corrupted-recycle-invert 14s steps(1, end) infinite;
}

.corrupted-page #desktop-profile .profile-icon,
.corrupted-page #desktop-research .research-icon {
  animation: corrupted-icon-ghost 10s steps(1, end) infinite;
}

/* Messenger looks actively edited */
.corrupted-page .chat-message {
  position: relative;
  animation: corrupted-message-shift 15s steps(1, end) infinite;
}

.corrupted-page .chat-message:nth-child(3n) {
  animation-delay: -4s;
}

.corrupted-page .altered-message {
  animation:
    corrupted-message-shift 15s steps(1, end) infinite,
    corrupted-edited-flicker 6s steps(1, end) infinite;
}

.corrupted-page .message-edit-note,
.corrupted-page .seen-everyone {
  animation: corrupted-small-text 8s steps(1, end) infinite;
}

/* Reports pulse when Orpheus is present */
.corrupted-page .intern-record {
  position: relative;
  animation: corrupted-document-drift 14s steps(1, end) infinite;
}

.corrupted-page .intern-record::after {
  content: "ORPHEUS WAS HERE";
  position: absolute;
  right: 18px;
  top: 19px;
  color: rgba(111,31,29,.18);
  font: 11px "Special Elite", monospace;
  letter-spacing: .12em;
  transform: rotate(-2deg);
  pointer-events: none;
  animation: corrupted-stamp-flicker 10s steps(1, end) infinite;
}

/* Photos get RGB separation and horizontal tearing */
.corrupted-page .photo {
  box-shadow:
    2px 0 rgba(127,41,38,.22),
    -2px 0 rgba(81,102,83,.13);
}

.corrupted-page .photo::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 2;
  pointer-events: none;
  background:
    linear-gradient(
      to bottom,
      transparent 0 34%,
      rgba(255,255,255,.08) 35%,
      rgba(127,41,38,.18) 36%,
      transparent 38%
    );
  opacity: 0;
  animation: corrupted-photo-tear 8s steps(1, end) infinite;
}

/* Start menu and taskbar look infected too */
.corrupted-page .start-menu {
  box-shadow:
    6px 7px 22px rgba(0,0,0,.7),
    0 0 16px rgba(127,41,38,.2);
}

.corrupted-page .start-menu-header::after {
  content: "SESSION OWNER: ORPHEUS";
  display: block;
  margin-top: 3px;
  color: rgba(255,231,210,.38);
  font: 9px "Special Elite", monospace;
  letter-spacing: .12em;
}

.corrupted-page .taskbar {
  filter: saturate(.75) contrast(1.1);
  animation: corrupted-taskbar-shift 12s steps(1, end) infinite;
}

.corrupted-page #clock {
  position: relative;
  min-width: 68px;
  text-align: right;
}

.corrupted-page #clock::after {
  content: "27:27";
  position: absolute;
  inset: 0;
  color: #d39a8c;
  background: inherit;
  opacity: 0;
  animation: corrupted-clock-lie 17s steps(1, end) infinite;
}

/* Buttons briefly become less trustworthy */
.corrupted-page button {
  transition:
    filter .08s linear,
    transform .08s linear;
}

.corrupted-page button:active {
  filter: contrast(1.4) brightness(.76);
  transform: translate(1px, 1px);
}

/* Stronger corrupted selection effect */
.corrupted-page .desktop-icon.selected {
  filter:
    contrast(1.2)
    saturate(.7)
    drop-shadow(2px 0 rgba(127,41,38,.55))
    drop-shadow(-2px 0 rgba(81,102,83,.25));
}

/* Respect users who disable motion */
@media (prefers-reduced-motion: reduce) {
  .corrupted-page *,
  .corrupted-page *::before,
  .corrupted-page *::after {
    animation: none !important;
  }
}

/* Animations */
@keyframes corrupted-desktop-breathe {
  0%, 100% {
    filter: brightness(1) contrast(1);
  }
  46% {
    filter: brightness(.95) contrast(1.035);
  }
  50% {
    filter: brightness(.91) contrast(1.08);
  }
  54% {
    filter: brightness(.97) contrast(1.02);
  }
}

@keyframes corrupted-desktop-jump {
  0%, 87%, 100% {
    transform: none;
  }
  88% {
    transform: translateX(1px);
  }
  89% {
    transform: translateX(-2px);
  }
  90% {
    transform: translateY(1px);
  }
  91% {
    transform: none;
  }
}

@keyframes corrupted-screen-flicker {
  0%, 7%, 9%, 42%, 44%, 81%, 83%, 100% {
    opacity: .7;
  }
  8%, 43%, 82% {
    opacity: .43;
  }
}

@keyframes corrupted-scan-drift {
  from {
    background-position: center, 0 0;
  }
  to {
    background-position: center, 0 28px;
  }
}

@keyframes corrupted-screen-tear {
  0%, 74%, 100% {
    top: -12%;
    opacity: 0;
  }
  75% {
    top: 18%;
    opacity: .8;
  }
  76% {
    top: 37%;
    opacity: .35;
  }
  77% {
    top: 62%;
    opacity: .72;
  }
  78% {
    top: 88%;
    opacity: 0;
  }
}

@keyframes corrupted-wallpaper-ghost {
  0%, 84%, 100% {
    opacity: 1;
    transform: translate(-50%, -50%) rotate(-1deg);
  }
  85% {
    opacity: .35;
    transform: translate(calc(-50% + 3px), -50%) rotate(-1deg);
  }
  86% {
    opacity: .9;
    transform: translate(calc(-50% - 2px), -50%) rotate(-1deg);
  }
  87% {
    opacity: 1;
  }
}

@keyframes corrupted-window-presence {
  0%, 91%, 100% {
    translate: 0 0;
  }
  92% {
    translate: 1px 0;
  }
  93% {
    translate: -1px 1px;
  }
  94% {
    translate: 0 0;
  }
}

@keyframes corrupted-titlebar-sweep {
  0%, 79%, 100% {
    transform: translateX(-120%);
    opacity: 0;
  }
  80% {
    transform: translateX(-40%);
    opacity: .8;
  }
  81% {
    transform: translateX(45%);
    opacity: .35;
  }
  82% {
    transform: translateX(120%);
    opacity: 0;
  }
}

@keyframes corrupted-title-copy {
  0%, 90%, 100% {
    opacity: 0;
  }
  91% {
    opacity: .8;
    transform: translateX(2px);
  }
  92% {
    opacity: .25;
    transform: translateX(-2px);
  }
  93% {
    opacity: 0;
  }
}

@keyframes corrupted-icon-jitter {
  0%, 86%, 100% {
    translate: 0 0;
  }
  87% {
    translate: 1px 0;
  }
  88% {
    translate: -1px 1px;
  }
  89% {
    translate: 0 -1px;
  }
  90% {
    translate: 0 0;
  }
}

@keyframes corrupted-messenger-blink {
  0%, 82%, 100% {
    filter: none;
    opacity: 1;
  }
  83% {
    filter: brightness(1.8) contrast(1.4);
    opacity: .25;
  }
  84% {
    filter: brightness(.5);
    opacity: 1;
  }
  85% {
    filter: none;
  }
}

@keyframes corrupted-recycle-invert {
  0%, 88%, 100% {
    filter: none;
  }
  89% {
    filter: invert(.9) sepia(.7) hue-rotate(320deg);
  }
  90% {
    filter: contrast(2) brightness(.55);
  }
  91% {
    filter: none;
  }
}

@keyframes corrupted-icon-ghost {
  0%, 89%, 100% {
    text-shadow: none;
  }
  90% {
    text-shadow:
      3px 0 rgba(127,41,38,.75),
      -3px 0 rgba(81,102,83,.35);
  }
  91% {
    text-shadow: none;
  }
}

@keyframes corrupted-message-shift {
  0%, 92%, 100% {
    translate: 0 0;
  }
  93% {
    translate: 1px 0;
  }
  94% {
    translate: -1px 1px;
  }
  95% {
    translate: 0 0;
  }
}

@keyframes corrupted-edited-flicker {
  0%, 78%, 100% {
    opacity: 1;
    filter: none;
  }
  79% {
    opacity: .48;
    filter: contrast(1.4);
  }
  80% {
    opacity: 1;
    filter: brightness(.8);
  }
  81% {
    filter: none;
  }
}

@keyframes corrupted-small-text {
  0%, 83%, 100% {
    letter-spacing: normal;
    opacity: 1;
  }
  84% {
    letter-spacing: .12em;
    opacity: .45;
  }
  85% {
    letter-spacing: normal;
    opacity: 1;
  }
}

@keyframes corrupted-document-drift {
  0%, 90%, 100% {
    translate: 0 0;
  }
  91% {
    translate: 1px -1px;
  }
  92% {
    translate: -1px 0;
  }
  93% {
    translate: 0 0;
  }
}

@keyframes corrupted-stamp-flicker {
  0%, 80%, 100% {
    opacity: .55;
  }
  81% {
    opacity: 0;
  }
  82% {
    opacity: .85;
  }
  83% {
    opacity: .2;
  }
  84% {
    opacity: .55;
  }
}

@keyframes corrupted-photo-tear {
  0%, 72%, 100% {
    opacity: 0;
    transform: translateY(-16%);
  }
  73% {
    opacity: .85;
    transform: translateY(0);
  }
  74% {
    opacity: .35;
    transform: translateY(110%);
  }
  75% {
    opacity: 0;
  }
}

@keyframes corrupted-taskbar-shift {
  0%, 90%, 100% {
    transform: none;
  }
  91% {
    transform: translateY(1px);
  }
  92% {
    transform: translateX(-1px);
  }
  93% {
    transform: none;
  }
}

@keyframes corrupted-clock-lie {
  0%, 92%, 100% {
    opacity: 0;
  }
  93%, 94% {
    opacity: 1;
  }
  95% {
    opacity: 0;
  }
}