/* =============================================
   CRT TV Component
   Exact original CodePen CSS with dark void bg
   and glitch idle content
   ============================================= */

/* ---- Ambient vignette ---- */
.gradient {
  position: fixed;
  content: " ";
  width: 100%;
  height: 100%;
  background:
    radial-gradient(ellipse at 50% 50%, transparent 30%, rgba(0, 0, 0, 0.15) 60%, rgba(0, 0, 0, 0.35) 100%);
  z-index: 5;
  pointer-events: none;
}

/* Noise overlay to break up gradient banding on dark backgrounds */
.gradient::before {
  position: fixed;
  content: "";
  width: 100%;
  height: 100%;
  top: 0;
  left: 0;
  background-image: url(data:image/png;base64,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);
  opacity: 0.03;
  mix-blend-mode: overlay;
  pointer-events: none;
}

.gradient::after {
  display: none;
}

/* ---- Floor light spill ---- */
/* Softened now that there's a real floor surface catching the glow */
.old-tv::before {
  content: "";
  position: absolute;
  top: 85%;
  left: -10%;
  width: 120%;
  height: 40%;
  background: rgba(20, 253, 206, 0.04);
  border-radius: 50%;
  transform: perspective(10em) rotateX(40deg) scale(1, 0.35);
  filter: blur(3em);
  pointer-events: none;
  transition: background 0.6s ease;
  animation: floor-flicker 4s infinite;
}

.old-tv.tv-off::before {
  background: transparent;
  animation: none;
  opacity: 0;
}

/* ---- TV Body ---- */
html > body .old-tv * {
  outline: none;
}

.old-tv {
  position: absolute;
  width: 720px;
  height: 530px;
  top: calc(37% + var(--scene-offset-y) + 32px);
  left: 50%;
  margin-left: -360px;
  margin-top: -285px;
  background: #1a1a1a;
  background-image: url(data:image/png;base64,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);
  padding: 20px;
  border-radius: 20px;
  border-bottom: 4px #222 solid;
  box-shadow: inset 0 -220px 200px rgba(0, 0, 0, 0.5),
    0 8px 40px rgba(0, 0, 0, 0.5),
    0 20px 80px rgba(0, 0, 0, 0.35),
    50px 4px 30px rgba(0, 0, 0, 0.3), -50px 4px 30px rgba(0, 0, 0, 0.3);
  transform: scale(0.8);
  z-index: 600;
}

.old-tv::after {
  content: " ";
  position: absolute;
  top: 54px;
  left: 52px;
  width: 460px;
  height: 400px;
  background: rgba(78, 94, 85, 0.4);
  border-radius: 16px;
  -webkit-filter: blur(30px);
  filter: blur(30px);
  z-index: 100;
  animation: screen 800ms infinite linear;
}

@keyframes screen {
  0% { transform: scale(1.03); }
  50% { transform: scale(1); }
  100% { transform: scale(1.03); }
}

/* ---- Screen housing ---- */
.old-tv main {
  position: relative;
  display: inline-block;
  padding: 30px;
  border-radius: 16px;
  background: #222;
  border: 3px #2a2a2a solid;
  box-shadow: 0 10px 8px rgba(0, 0, 0, 0.4);
  vertical-align: top;
  overflow: hidden;
}

.old-tv main::before {
  content: " ";
  position: absolute;
  top: 0;
  left: 0;
  -moz-box-sizing: border-box;
  -webkit-box-sizing: border-box;
  box-sizing: border-box;
  width: 100%;
  height: 100%;
  border-radius: 16px;
  border-style: solid;
  border-width: 80px 90px 77px 90px;
  border-color: rgba(0, 0, 0, 0.4) rgba(0, 0, 0, 0.2) rgba(0, 0, 0, 0)
    rgba(0, 0, 0, 0.2);
  z-index: 1;
}

.old-tv main::after {
  content: " ";
  position: absolute;
  top: 0;
  left: 0;
  -moz-box-sizing: border-box;
  -webkit-box-sizing: border-box;
  box-sizing: border-box;
  width: 100%;
  height: 100%;
  border-radius: 16px;
  background: radial-gradient(rgba(0, 0, 0, 0.7) 50%, transparent 100%),
    linear-gradient(rgba(0, 0, 0, 0.1) 10%, transparent);
  z-index: 2;
}

/* ---- Sony logo ---- */
.old-tv .tv-logo {
  position: absolute;
  left: 20px;
  width: 526px;
  text-align: center;
  bottom: 32px;
  color: rgba(255, 255, 255, 0.35);
  z-index: 2;
}

.old-tv .tv-logo .sony-svg {
  width: 60px;
  height: auto;
  filter: drop-shadow(1px 0 0 #000) drop-shadow(-1px 0 0 #000) drop-shadow(0 1px 0 #000) drop-shadow(0 -1px 0 #000);
}

/* ---- Speaker grille ---- */
.old-tv .speaker {
  position: absolute;
  width: 180px;
  height: 220px;
  top: 20px;
  right: 20px;
  padding: 10px;
  box-sizing: border-box;
}

.old-tv .speaker::before {
  content: " ";
  position: absolute;
  top: 0%;
  left: 15px;
  right: 0%;
  bottom: 0%;
  background: repeating-linear-gradient(
    0deg,
    rgba(255, 255, 255, 0.1) 0px,
    rgba(0, 0, 0, 0.2) 5px,
    rgba(0, 0, 0, 0.2) 6px,
    rgba(0, 0, 0, 0) 5px,
    rgba(0, 0, 0, 0.6) 10px
  );
  border-radius: 20px;
  border: 2px #111 solid;
  box-shadow: 0 1px 3px rgba(255, 255, 255, 0.5), 0 4px 15px rgba(0, 0, 0, 0.6);
  z-index: 2;
}

.old-tv .speaker::after {
  content: " ";
  position: absolute;
  height: 200px;
  left: 50px;
  right: 38px;
  bottom: 30px;
  background: #222;
  border-radius: 100% / 100%;
  box-shadow: inset 0 1px rgba(0, 0, 0, 1);
  opacity: 0.1;
  z-index: 1;
}

/* ---- Sticker (Resident Evil Umbrella Corp logo) ---- */
.old-tv .tv-sticker {
  position: absolute;
  /* Centered on the speaker grille (right panel) */
  left: 592px;
  top: 163px;
  width: 48px;
  height: 48px;
  border-radius: 50%;
  border: none;
  background:
    center/80% no-repeat url("../../public/images/umbrella-sticker.png"),
    radial-gradient(circle at 30% 20%, #3a3636 0, #2a2626 55%, #151212 100%);
  box-shadow:
    0 2px 6px rgba(0, 0, 0, 0.55),
    0 0 0 1px rgba(0, 0, 0, 0.75),
    inset 0 1px 2px rgba(255, 255, 255, 0.12),
    inset 0 -1px 3px rgba(0, 0, 0, 0.55);
  transform: rotate(-10deg);
  transform-origin: center center;
  pointer-events: none;
  z-index: 10;
}

.old-tv .tv-sticker::before {
  content: "";
  position: absolute;
  inset: 8px 12px 22px 12px;
  border-radius: 50%;
  /* Softer multi-layer highlight to feel more physical */
  background:
    radial-gradient(circle at 28% 18%, rgba(255, 255, 255, 0.22) 0, rgba(255, 255, 255, 0.06) 32%, transparent 60%),
    radial-gradient(circle at 70% 12%, rgba(255, 255, 255, 0.12) 0, transparent 42%);
  opacity: 0.28;
  pointer-events: none;
}

.old-tv .tv-sticker::after {
  content: "";
  position: absolute;
  inset: 3px;
  border-radius: 50%;
  /* Noise / grain, aligned with TV plastic */
  background-image:
    linear-gradient(90deg, rgba(255, 255, 255, 0.06) 1px, transparent 1px),
    linear-gradient(rgba(0, 0, 0, 0.22) 1px, transparent 1px);
  background-size: 2px 2px, 3px 3px;
  opacity: 0.32;
  mix-blend-mode: soft-light;
  pointer-events: none;
}

/* ---- Amate Yuzuriha sticker (left of Half-Life, roughly vertically aligned) ---- */
.old-tv .tv-sticker-clare {
  position: absolute;
  left: 600px;
  top: 25px;
  width: 88px;
  overflow: visible;
  transform: rotate(4deg);
  transform-origin: center center;
  pointer-events: none;
  z-index: 10;
}

.old-tv .tv-sticker-clare img {
  display: block;
  width: 100%;
  height: auto;
  mix-blend-mode: normal;
  filter:
    brightness(0.94)
    drop-shadow(0 2px 2px rgba(0, 0, 0, 0.55))
    drop-shadow(0 6px 8px rgba(0, 0, 0, 0.3));
}


/* ---- Bridges (Death Stranding) sticker ---- */
.old-tv .tv-sticker-bridges {
  position: absolute;
  left: 652px;
  top: 117px;
  width: 75px;
  height: auto;
  object-fit: contain;
  transform: rotate(-5deg);
  filter:
    brightness(0.94)
    drop-shadow(0 2px 2px rgba(0, 0, 0, 0.55))
    drop-shadow(0 6px 8px rgba(0, 0, 0, 0.3));
  pointer-events: none;
  z-index: 10;
}

/* ---- Kurapika sticker on lower panel ---- */
.old-tv .tv-sticker-kurapika {
  position: absolute;
  left: 620px;
  top: 297px;
  width: 130px;
  height: auto;
  object-fit: contain;
  mix-blend-mode: lighten;
  filter:
    drop-shadow(0 2px 2px rgba(0, 0, 0, 0.6))
    drop-shadow(0 6px 8px rgba(0, 0, 0, 0.32));
  pointer-events: none;
  z-index: 10;
}

/* ---- Fin sticker (lower-right body area) ---- */
.old-tv .tv-sticker-fin {
  position: absolute;
  right: 220px;
  bottom: 30px;
  width: 32px;
  height: auto;
  object-fit: contain;
  transform: rotate(6deg);
  transform-origin: center center;
  filter:
    brightness(0.88)
    drop-shadow(0 2px 2px rgba(0, 0, 0, 0.5))
    drop-shadow(0 4px 8px rgba(0, 0, 0, 0.25));
  pointer-events: none;
  z-index: 10;
}

/* ---- Intercom sticker (near Fin, lower-right body) ---- */
.old-tv .tv-sticker-intercom {
  position: absolute;
  right: 258px;
  bottom: 30px;
  width: 32px;
  height: auto;
  object-fit: contain;
  transform: rotate(-4deg);
  transform-origin: center center;
  filter:
    brightness(0.88)
    drop-shadow(0 2px 2px rgba(0, 0, 0, 0.5))
    drop-shadow(0 4px 8px rgba(0, 0, 0, 0.25));
  pointer-events: none;
  z-index: 10;
}

/* ---- Channel slider ---- */
.old-tv .channel {
  position: absolute;
  width: 160px;
  height: 40px;
  right: 20px;
  bottom: 105px;
  border-radius: 4px;
  box-shadow: inset 2px 2px rgba(255, 255, 255, 0.1),
    inset -2px -2px rgba(0, 0, 0, 0.3), 0 1px 1px rgba(255, 255, 255, 0.2),
    0 4px 10px rgba(0, 0, 0, 0.4);
  border: 2px #000 solid;
}

/* ---- Range inputs ---- */
.old-tv input[type="range"] {
  -webkit-appearance: none;
  position: absolute;
  width: 80%;
  left: 10%;
  box-sizing: border-box;
  background: none;
  margin: 18px 0;
}

.old-tv input[type="range"]:focus {
  outline: none;
}

.old-tv input[type="range"]::-webkit-slider-runnable-track {
  width: 100%;
  height: 5px;
  cursor: pointer;
  box-shadow: 1px 1px 1px rgba(255, 255, 255, 0.2);
  background: #000;
  border-radius: 1.3px;
}

.old-tv input[type="range"]::-webkit-slider-thumb {
  height: 25px;
  width: 10px;
  border-radius: 2px;
  background-color: #222;
  background-image: linear-gradient(rgba(255, 255, 255, 0.08), transparent);
  box-shadow: inset 1px 1px 1px rgba(255, 255, 255, 0.2),
    1px 1px 6px rgba(0, 0, 0, 1);
  cursor: pointer;
  -webkit-appearance: none;
  margin-top: -10px;
}

/* ---- Power button ---- */
.old-tv .power {
  position: absolute;
  width: 160px;
  height: 60px;
  right: 20px;
  bottom: 20px;
  border-radius: 4px;
  box-shadow: inset 2px 2px rgba(255, 255, 255, 0.1),
    inset -2px -2px rgba(0, 0, 0, 0.3), 0 1px 1px rgba(255, 255, 255, 0.2),
    0 4px 10px rgba(0, 0, 0, 0.4);
  border: 2px #000 solid;
}

.old-tv .power > button {
  position: relative;
  width: 40px;
  height: 40px;
  top: 10px;
  left: 10px;
  background-color: #1a1a1a;
  background-image: linear-gradient(rgba(255, 255, 255, 0.03), transparent);
  border-radius: 4px;
  box-shadow: inset 1px 1px rgba(255, 255, 255, 0.1),
    inset 1px 1px rgba(255, 255, 255, 0.1), inset -1px -1px rgba(0, 0, 0, 0.3),
    0 1px 1px rgba(255, 255, 255, 0.2);
  border: 2px #000 solid;
  cursor: pointer;
  transition: transform 0.08s ease, box-shadow 0.08s ease;
}

.old-tv .power > button:active {
  transform: scale(0.92);
  box-shadow: inset 1px 1px rgba(0, 0, 0, 0.3),
    inset -1px -1px rgba(0, 0, 0, 0.1);
}

/* Power / Standby labels — original LED + text styling */
.old-tv .power-on,
.old-tv .power-standby {
  position: absolute;
  font-family: Arial, sans-serif;
  font-size: 10px;
  color: #ccc;
  line-height: 14px;
  text-indent: 12px;
  text-shadow: 0 1px #000;
  white-space: nowrap;
}

.old-tv .power-on {
  top: 13px;
  left: 58px;
}

.old-tv .power-standby {
  top: 33px;
  left: 58px;
}

/* Green LED (電源) — original circle with border and glow */
.old-tv .power-on::before {
  content: "";
  position: absolute;
  left: 0;
  top: 50%;
  margin-top: -2.5px;
  width: 5px;
  height: 5px;
  background: #7cfc00;
  border: 1px #7cfc00 solid;
  border-radius: 50%;
  box-shadow: 0 0 10px #7cfc00, 0 0 5px #7cfc00;
}

/* Red LED (スタンバイ) — original circle with border */
.old-tv .power-standby::before {
  content: "";
  position: absolute;
  left: 0;
  top: 50%;
  margin-top: -2.5px;
  width: 5px;
  height: 5px;
  background: #a52a2a;
  border: 1px #111 solid;
  border-radius: 50%;
}

/* ---- Bottom lip ---- */
.old-tv footer {
  position: absolute;
  height: 15px;
  bottom: -22px;
  left: 15px;
  right: 15px;
  background: #222;
  border-bottom-left-radius: 20px;
  border-bottom-right-radius: 20px;
  box-shadow: inset 0 5px 5px rgba(0, 0, 0, 0.8), 0 2px 5px rgba(0, 0, 0, 0.5), 0 5px 30px 10px rgba(0, 0, 0, 0.5), 0 2px 60px 20px rgba(0, 0, 0, 0.2);
  border-bottom: 3px #000 solid;
  z-index: -1;
}

/* ---- CRT Screen ---- */
.error-noise {
  position: relative;
  width: 460px;
  height: 400px;
  overflow: hidden;
  border-radius: 16px;
  z-index: 3;
}

/* ---- New CRT text screen ---- */
.old-tv .frame {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  box-sizing: border-box;
  border-radius: 16px;
  box-shadow:
    inset 0 0 10rem rgba(0, 0, 0, 0.5),
    inset 0 0 2rem rgba(0, 0, 0, 0.3),
    0 0 6rem #000;
  pointer-events: none;
}

.old-tv .piece {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
}

.old-tv .noclick {
  pointer-events: none;
}

.old-tv .output {
  box-sizing: border-box;
  animation: crt-output 4s infinite;
  background-color: #031e11;
  border-radius: 16px;
  color: #14fdce;
  font-family: var(--font-terminal);
  font-size: 1.5rem;
  line-height: 1.4;
  overflow: auto;
  padding: 1.5rem 1.8rem;
  pointer-events: auto;
  text-shadow: 0 0.2rem 1rem #0c7b46;
}

.old-tv .output h1 {
  font-size: 2rem;
  margin-bottom: 1.4rem;
  text-transform: uppercase;
}

.old-tv .output p {
  margin-bottom: 1.8rem;
}

.old-tv .output .jp {
  font-family: 'DotGothic16', sans-serif;
  font-size: 0.75em;
}

/* ---- Boot video (NES start screen MP4) ---- */
.old-tv .boot-video {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  border-radius: 16px;
  display: none;
  z-index: 1;
  filter: brightness(0.75) contrast(1.3);
}

.old-tv.tv-booting .boot-video {
  display: block;
}

/* Case study video — height-matched, horizontally centered */
.old-tv .case-video {
  position: absolute;
  top: 0;
  left: 50%;
  transform: translateX(-50%);
  height: 100%;
  width: auto;
  border-radius: 16px;
  display: none;
  z-index: 3;
  filter: brightness(0.75) contrast(1.3);
}

.old-tv.tv-case-study .case-video {
  display: block;
}

.old-tv.tv-case-study .output-content {
  display: none;
}

.old-tv.tv-case-study .output {
  background-color: #000 !important;
  padding: 0;
  animation: none;
  color: transparent;
  text-shadow: none;
}

.old-tv.tv-case-study .glow {
  opacity: 0 !important;
  animation: none;
}

.old-tv.tv-booting .output-content {
  display: none;
}

/* Override green terminal styling when boot video / title screen is playing */
.old-tv.tv-booting .output {
  background-color: #000 !important;
  padding: 0;
  animation: none;
  color: transparent;
  text-shadow: none;
  overflow: hidden;
}

.old-tv.tv-title-screen .output {
  background-color: #000 !important;
  padding: 0;
  animation: none;
  color: transparent;
  text-shadow: none;
  overflow: hidden;
}

/* Reset inherited .output p/h1 margins inside title screen */
.old-tv.tv-title-screen .output p,
.old-tv.tv-title-screen .output h1 {
  margin: 0;
  text-transform: none;
}

.old-tv.tv-title-screen .output-content {
  display: none;
}

/* Kill green glow overlay during boot video and title screen */
.old-tv.tv-booting .glow,
.old-tv.tv-title-screen .glow {
  opacity: 0 !important;
  animation: none;
}

/* Suppress all CRT screen overlays during title screen for true colors */

/* Main culprit: greenish-grey overlay at z-index 100 */
.old-tv.tv-title-screen::after {
  opacity: 0.40 !important;
  animation: none;
}

.old-tv.tv-case-study::after {
  opacity: 0.30 !important;
  animation: none;
}

/* Case study video timestamp */
.case-timestamp {
  position: absolute;
  bottom: 18px;
  left: 50%;
  transform: translateX(-50%);
  font-family: var(--font-mono);
  font-size: 11px;
  color: rgba(255, 255, 255, 0.7);
  letter-spacing: 0.05em;
  z-index: 50;
  pointer-events: none;
  opacity: 0;
  transition: opacity 0.3s;
}

.old-tv.tv-case-study .case-timestamp {
  opacity: 1;
}

/* Border-based vignette on main::before */
.old-tv.tv-title-screen main::before {
  opacity: 0;
}

/* Radial gradient dark overlay on main::after */
.old-tv.tv-title-screen main::after {
  opacity: 0;
}

/* Reduce frame inset shadow vignette */
.old-tv.tv-title-screen .frame {
  box-shadow:
    inset 0 0 3rem rgba(0, 0, 0, 0.15),
    0 0 6rem #000;
}

/* Keep scanlines subtle */
.old-tv.tv-title-screen .scanlines {
  opacity: 0.3;
}

/* ---- Intercom title screen ---- */
.old-tv .title-screen {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  border-radius: 16px;
  overflow: hidden;
  z-index: 2;
  opacity: 0;
  visibility: hidden;
  transition: opacity 0.6s ease-in, visibility 0s 0.6s;
}

/* Only the active title screen fades in */
.old-tv.tv-title-screen .title-screen.ts-active {
  opacity: 1;
  visibility: visible;
  transition: opacity 0.6s ease-in, visibility 0s 0s;
}

.old-tv .title-screen-bg {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  image-rendering: pixelated;
}

/* ---- Title screen layout (1:1 from Paper computed styles) ---- */

/* C6-0: outer flex column, gap 54px */
.old-tv .ts-wrap {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  z-index: 1;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 54px;
  font-family: "Press Start 2P", system-ui, sans-serif;
  font-size: 10px;
  line-height: normal;
  color: #fff;
  text-shadow: none;
  -webkit-font-smoothing: antialiased;
}

/* B2-0 "Game Title": flex column, gap 32px, fit-content height */
.old-tv .ts-main {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 32px;
  height: fit-content;
  flex-shrink: 0;
  width: 100%;
}

/* D8-0: 400px wide, padding-top 32px, gap 32px */
.old-tv .ts-inner {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 32px;
  height: fit-content;
  flex-shrink: 0;
  padding-top: 32px;
  width: 400px;
  max-width: 100%;
}

/* DB-0: "Intercom presents" */
.old-tv .ts-presents {
  font-size: 10px;
  line-height: 12px;
  letter-spacing: 0.12em;
  white-space: pre-wrap;
}

/* DC-0: logo + headline, gap 16px */
.old-tv .ts-logo-headline {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 16px;
  height: fit-content;
  flex-shrink: 0;
  width: 100%;
}

/* CD-0: logo 64×64 */
.old-tv .ts-logo {
  width: 64px;
  height: 64px;
  background-size: cover;
  background-position: center;
  flex-shrink: 0;
}

/* B4-0: headline 18px/22px */
.old-tv .ts-headline {
  font-size: 18px;
  line-height: 22px;
  letter-spacing: 0.05em;
  text-align: center;
  width: 100%;
  height: fit-content;
  flex-shrink: 0;
  white-space: pre-wrap;
}

/* C8-0: PRESS START */
.old-tv .ts-start {
  font-size: 12px;
  line-height: 16px;
  letter-spacing: 0.12em;
  color: #5D3F1C;
  width: 173px;
  text-align: center;
  white-space: pre-wrap;
  animation: title-blink 1s step-end infinite;
}

/* C3-0: footer with gradient */
.old-tv .ts-footer {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 8px;
  width: 100%;
  padding-top: 24px;
  padding-bottom: 24px;
  background: linear-gradient(180deg, transparent 0%, hsl(0 0% 16%) 100%);
  font-size: 7px;
  line-height: 10px;
  letter-spacing: 0.08em;
}

/* ---- Zoom title screen ---- */
.old-tv .title-screen-zoom {
  /* no extra layout — video fills, text overlaid absolutely */
}

.old-tv .title-screen-video {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.old-tv .ts-start-zoom {
  position: absolute;
  z-index: 1;
  left: 50%;
  top: 68%;
  transform: translateX(-50%);
  font-family: "Press Start 2P", system-ui, sans-serif;
  font-size: 12px;
  line-height: 16px;
  letter-spacing: 0.12em;
  color: #fff;
  text-shadow:
    -1px -1px 0 #000,
     1px -1px 0 #000,
    -1px  1px 0 #000,
     1px  1px 0 #000,
     0    2px 0 #000;
  animation: title-blink 1s step-end infinite;
}

.old-tv .ts-footer-zoom {
  position: absolute;
  z-index: 1;
  left: 50%;
  bottom: 16px;
  transform: translateX(-50%);
  font-family: "Press Start 2P", system-ui, sans-serif;
  font-size: 7px;
  line-height: 10px;
  letter-spacing: 0.08em;
  color: #fff;
  text-shadow:
    -1px -1px 0 #000,
     1px -1px 0 #000,
    -1px  1px 0 #000,
     1px  1px 0 #000;
  white-space: nowrap;
}

@keyframes title-blink {
  0%, 49% { opacity: 1; }
  50%, 100% { opacity: 0; }
}

.old-tv .scanlines {
  background: linear-gradient(
    to bottom,
    rgba(255, 255, 255, 0) 0,
    rgba(255, 255, 255, 0) 50%,
    rgba(0, 0, 0, 0.2) 70%,
    rgba(0, 0, 0, 0.6) 100%
  );
  background-size: 100% 0.3rem;
  border-radius: 16px;
}

.old-tv .glow {
  animation: crt-glow 60s infinite;
  background: radial-gradient(
    circle at center,
    #1bd459 0%,
    rgba(27, 212, 89, 0.88) 58%,
    rgba(21, 235, 92, 0.57) 80%,
    rgba(19, 94, 29, 0.27) 93%,
    rgba(10, 23, 12, 0) 100%
  );
  opacity: 0.15;
}

@keyframes crt-output {
  0% { opacity: 0.94; }
  3% { opacity: 1; }
  6% { opacity: 0.92; }
  8% { opacity: 1; }
  42% { opacity: 1; }
  44% { opacity: 0.88; }
  45% { opacity: 1; }
  76% { opacity: 1; }
  77% { opacity: 0.9; }
  78% { opacity: 0.96; }
  79% { opacity: 0.85; }
  80% { opacity: 1; }
}

@keyframes floor-flicker {
  0% { opacity: 1; }
  3% { opacity: 0.85; }
  6% { opacity: 1; }
  42% { opacity: 1; }
  44% { opacity: 0.7; }
  45% { opacity: 1; }
  76% { opacity: 1; }
  77% { opacity: 0.8; }
  79% { opacity: 0.6; }
  80% { opacity: 1; }
}

@keyframes crt-glow {
  0% { opacity: 0.1; }
  50% { opacity: 0.2; }
}

/* ---- TV Off state ---- */

/* Hide text, dim entire screen uniformly — shadows and content stay proportional */
.old-tv.tv-off .output h1,
.old-tv.tv-off .output p {
  opacity: 0;
}

.old-tv.tv-off .error-noise {
  filter: brightness(0.7) saturate(0.3);
}

/* Green LED off */
.old-tv.tv-off .power-on::before {
  background: #2a3a2a;
  border-color: #1a2a1a;
  box-shadow: none;
}

/* Red LED on with glow */
.old-tv.tv-off .power-standby::before {
  background: #ff3030;
  border-color: #ff3030;
  box-shadow: 0 0 8px #ff3030, 0 0 4px #ff3030;
}

/* ---- CRT blink flash overlay ---- */
.old-tv .crt-blink {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: #fff;
  border-radius: 16px;
  z-index: 20;
  pointer-events: none;
  opacity: 0;
}

.old-tv .crt-blink.blink-off {
  animation: crt-blink-off 0.25s ease-in-out forwards;
}

.old-tv .crt-blink.blink-on {
  animation: crt-blink-on 0.25s ease-in-out forwards;
}

@keyframes crt-blink-off {
  0%   { opacity: 0; transform: scaleY(1); }
  30%  { opacity: 0.35; transform: scaleY(1); }
  60%  { opacity: 0.3; transform: scaleY(0.01); }
  100% { opacity: 0; transform: scaleY(0.01); }
}

@keyframes crt-blink-on {
  0%   { opacity: 0; transform: scaleY(0.01); }
  40%  { opacity: 0.3; transform: scaleY(0.01); }
  70%  { opacity: 0.35; transform: scaleY(1); }
  100% { opacity: 0; transform: scaleY(1); }
}

/* ---- Blinking terminal cursor ---- */
.blink-cursor {
  animation: cursorBlink 1s step-end infinite;
}

@keyframes cursorBlink {
  0%, 50% { opacity: 1; }
  51%, 100% { opacity: 0; }
}

/* ---- Wall Posters ---- */
.wall-poster {
  position: absolute;
  z-index: 400;
  pointer-events: none;
}

.wall-poster img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  border-radius: 2px;
  filter: brightness(0.55) saturate(0.7);
  box-shadow: 0 1px 4px rgba(0, 0, 0, 0.4);
}

.wall-poster-redsonja img {
  filter: brightness(0.7) saturate(0.9);
}

.wall-poster-redsonja {
  width: 340px;
  top: calc(5% + var(--scene-offset-y) + 20px);
  left: calc(50% + var(--scene-offset-x) - 624px);
  transform: rotate(-2deg);
  z-index: 350; /* behind cartridges (690) */
}

/* Tape strips on top corners — aged masking tape */
.wall-poster-redsonja::before,
.wall-poster-redsonja::after {
  content: "";
  display: block;
  width: 36px;
  height: 11px;
  position: absolute;
  top: -4px;
  background-image:
    linear-gradient(105deg, rgba(160, 155, 145, 0.08) 0%, transparent 40%, rgba(150, 145, 135, 0.05) 70%, transparent 100%),
    linear-gradient(to bottom, rgba(200, 195, 185, 0.18) 0%, rgba(180, 175, 165, 0.14) 100%),
    url(data:image/png;base64,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);
  border-radius: 1px;
  box-shadow: 0 0.5px 1px rgba(0, 0, 0, 0.15);
  opacity: 0.5;
  z-index: 1;
}

.wall-poster-redsonja::before {
  left: -8px;
  transform: rotate(-35deg);
}

.wall-poster-redsonja::after {
  right: -8px;
  transform: rotate(30deg);
}

.wall-poster-aot {
  width: 500px;
  top: calc(5% + var(--scene-offset-y) - 12px);
  left: calc(50% + var(--scene-offset-x) + 122px);
  margin-left: 0px;
  transform: rotate(2deg);
}

/* Tape strips on top corners — aged masking tape */
.wall-poster-aot::before,
.wall-poster-aot::after {
  content: "";
  display: block;
  width: 36px;
  height: 11px;
  position: absolute;
  top: -4px;
  background-image:
    linear-gradient(105deg, rgba(160, 155, 145, 0.08) 0%, transparent 40%, rgba(150, 145, 135, 0.05) 70%, transparent 100%),
    linear-gradient(to bottom, rgba(200, 195, 185, 0.18) 0%, rgba(180, 175, 165, 0.14) 100%),
    url(data:image/png;base64,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);
  border-radius: 1px;
  box-shadow: 0 0.5px 1px rgba(0, 0, 0, 0.15);
  opacity: 0.5;
  z-index: 1;
}

.wall-poster-aot::before {
  left: -8px;
  transform: rotate(-35deg);
}

.wall-poster-aot::after {
  right: -8px;
  transform: rotate(30deg);
}

.wall-photo-tlou-wrapper {
  position: absolute;
  top: calc(5% + var(--scene-offset-y) + 192px);
  left: calc(50% + var(--scene-offset-x) + 482px);
  transform: rotate(5deg);
  z-index: 400;
  pointer-events: none;
}

.wall-photo-tlou-wrapper .wall-photo-tlou {
  display: block;
  width: 110px !important;
  height: auto !important;
  aspect-ratio: 4 / 5;
  object-fit: contain;
  filter: brightness(0.55) saturate(0.7);
  box-shadow: 0 1px 4px rgba(0, 0, 0, 0.4);
  border-radius: 1px;
}

/* Tape on top-right corner of polaroid — aged masking tape */
.wall-photo-tlou-wrapper::before {
  content: "";
  display: block;
  width: 28px;
  height: 8px;
  position: absolute;
  top: 4px;
  right: -8px;
  left: auto;
  background-image:
    linear-gradient(105deg, rgba(160, 155, 145, 0.08) 0%, transparent 40%, rgba(150, 145, 135, 0.05) 70%, transparent 100%),
    linear-gradient(to bottom, rgba(200, 195, 185, 0.18) 0%, rgba(180, 175, 165, 0.14) 100%),
    url(data:image/png;base64,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);
  border-radius: 1px;
  box-shadow: 0 0.5px 1px rgba(0, 0, 0, 0.15);
  opacity: 0.5;
  transform: rotate(50deg);
  z-index: 1;
}

/* Tape on bottom-left corner of polaroid */
.wall-photo-tlou-wrapper::after {
  content: "";
  display: block;
  width: 28px;
  height: 8px;
  position: absolute;
  bottom: 4px;
  left: -6px;
  background-image:
    linear-gradient(105deg, rgba(160, 155, 145, 0.08) 0%, transparent 40%, rgba(150, 145, 135, 0.05) 70%, transparent 100%),
    linear-gradient(to bottom, rgba(200, 195, 185, 0.18) 0%, rgba(180, 175, 165, 0.14) 100%),
    url(data:image/png;base64,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);
  border-radius: 1px;
  box-shadow: 0 0.5px 1px rgba(0, 0, 0, 0.15);
  opacity: 0.5;
  transform: rotate(50deg);
  z-index: 1;
}
