body {
  background-color: black;
  color: white;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  align-items: center;
  animation: crt-flicker 0.15s infinite;
}

.site-payload {
  display: none;
  width: 100%;
  opacity: 0;
}

.site-payload.active {
  display: block;
  animation: system-fade-in 0.4s ease-out forwards;
}

.click-prompt {
  position: fixed;
  top: 0;
  left: 0;
  width: 100vw;
  height: 100vh;
  background: rgba(0, 0, 0, 1);
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  z-index: 999999;
  cursor: pointer;
  box-sizing: border-box;
  padding: 20px;
}

.prompt-box {
  font-family: monospace;
  font-size: 1.2rem;
  color: #00fff9;
  text-shadow: 2px 0px #ff00c1;
  letter-spacing: 2px;
  animation: crt-flicker 0.1s infinite;
}

.terminal-boot {
  display: none;
  width: 100%;
  max-width: 500px;
  text-align: left;
}

.boot-line {
  font-family: monospace;
  font-size: 1rem;
  color: #00fff9;
  text-shadow: 1px 0px #ff00c1;
  margin-bottom: 6px;
  white-space: nowrap;
  overflow: hidden;
  letter-spacing: 1px;
}

.crt-overlay {
  position: fixed;
  top: 0;
  left: 0;
  width: 100vw;
  height: 100vh;
  background: linear-gradient(rgba(18, 16, 16, 0) 50%, rgba(0, 0, 0, 0.25) 50%), linear-gradient(90deg, rgba(255, 0, 0, 0.06), rgba(0, 255, 0, 0.02), rgba(0, 0, 255, 0.06));
  background-size: 100% 4px, 6px 100%;
  z-index: 99999;
  pointer-events: none;
  transition: background-color 0.05s ease;
}

.container {
  position: fixed;
  top: 0;
  left: 0;
  width: 100vw;
  height: 100vh;
  pointer-events: none;
  z-index: 9999;
  overflow: hidden;
}

.shrinking-text {
  position: absolute;
  top: 50vh;
  left: 50vw;
  font-size: 3rem;
  color: white;
  display: inline-block;
  white-space: nowrap;
  transform-origin: top left; 
  animation: shrinkToCorner 1.5s ease-in-out forwards;
}

.main-content {
  text-align: center;
  font-family: Georgia, "Times New Roman", Times, serif;
  opacity: 0; 
  margin-top: 80px;
  animation: fadeInContent 0.75s ease-in-out 1.5s forwards;
}

.left-side-gif {
  position: fixed;
  left: 40px;
  top: 50%;
  transform: translateY(-50%);
  max-width: 200px;
  height: auto;
  opacity: 0;
  z-index: 500;
  transition: opacity 2s ease-in-out;
}

.left-side-gif.reveal {
  opacity: 1;
}

.now-playing-tab {
  position: fixed;
  bottom: 40px;
  left: -300px;
  display: flex;
  align-items: center;
  z-index: 600;
  opacity: 0;
}

.red-indicator-bar {
  width: 6px;
  height: 24px;
  background-color: #ff003c;
  box-shadow: 0 0 8px #ff003c;
  margin-right: 12px;
}

.now-playing-tab .song-label-text {
  font-family: monospace;
  font-size: 1rem;
  color: #fff;
  letter-spacing: 1px;
  text-shadow: 1px 0px 1px #ff00c1, -1px 0px 1px #00fff9;
}

.now-playing-tab.trigger-slide {
  animation: tabentry-and-fade 5s cubic-bezier(0.19, 1, 0.22, 1) forwards;
}

.audio-kickoff-distortion {
  animation: severe-voltage-drop 0.4s infinite steps(1);
}

@keyframes system-fade-in {
  to { opacity: 1; }
}

@keyframes fadeInContent {
  to {
    opacity: 1;
  }
}

@keyframes shrinkToCorner {
  0% {
    transform: translate(-40%, -40%) scale(1);
    top: 50%;
    left: 50%;
  }
  100% {
    transform: translate(0, 0) scale(0.4);
    top: 20px;
    left: 20px;
  }
}

@keyframes severe-voltage-drop {
  0% { transform: scale(1.02) translate(-5px, 2px); filter: hue-rotate(90deg) contrast(1.5); }
  50% { transform: scale(0.98) translate(4px, -3px); filter: invert(0.05); }
  100% { transform: scale(1.05) translate(-2px, -2px); }
}

@keyframes tabentry-and-fade {
  0% { left: -250px; opacity: 0; transform: translateX(0); }
  15% { left: 40px; opacity: 1; transform: translateX(0); }
  75% { left: 40px; opacity: 1; transform: translateX(0); }
  100% { left: 40px; opacity: 0; transform: translateX(120px); }
}

@keyframes crt-flicker {
  0%   { opacity: 0.995; }
  50%  { opacity: 1; }
  100% { opacity: 0.992; }
}

/* glitch effects... */

.glitch-p {
  font-size: 1.8rem;
  font-weight: 900;
  letter-spacing: 2px;
  color: white;
  margin: 0;
  padding: 0;
}

.glitch-span {
  position: relative;
  display: inline-block;
  color: white;
  text-shadow: 1px 0px 1px #ff00c1, -1px 0px 1px #00fff9;
  transition: transform 0.05s ease, text-shadow 0.05s ease;
}

.spider-gif-wrapper {
  position: relative;
  display: inline-block;
  margin-top: 20px;
}

.spider-gif {
  max-width: 100%;
  height: auto;
}

.base-layer {
  display: block;
  position: relative;
  z-index: 2;
  animation: spider-bounce 3.5s infinite steps(1);
}

.red-layer, .cyan-layer {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  mix-blend-mode: screen;
  opacity: 0;
  z-index: 1;
}

.red-layer {
  filter: drop-shadow(0 0 #ff00c1) hue-rotate(300deg);
  animation: spider-chroma-red 2.8s infinite steps(1);
}

.cyan-layer {
  filter: drop-shadow(0 0 #00fff9) hue-rotate(180deg);
  animation: spider-chroma-cyan 4.2s infinite steps(1);
}

@keyframes spider-bounce {
  0%, 75% { transform: scale(1) skewX(0deg); filter: none; }
  77% { transform: scaleX(2.1) scaleY(0.4) skewX(-15deg); filter: hue-rotate(90deg); }
  79% { transform: scaleX(0.3) scaleY(2.4) skewX(20deg); }
  81% { transform: scaleX(1.8) scaleY(1.6) skewX(-10deg); }
  83% { transform: scaleX(0.3) scaleY(0.3); }
  85% { transform: scaleX(1.3) scaleY(1.3) skewX(6deg); }
  87%, 100% { transform: scale(1) skewX(0deg); filter: none; }
}

@keyframes spider-chroma-red {
  0%, 78% { opacity: 0; transform: translate(0) scale(1); }
  80% { opacity: 0.85; transform: translate(-25px, 12px) scaleX(1.6) scaleY(0.5); }
  82% { opacity: 0.5; transform: translate(20px, -8px) scaleX(0.5) scaleY(1.8); }
  84% { opacity: 0.75; transform: translate(-12px, -12px) scaleX(1.4) scaleY(1.4); }
  86%, 100% { opacity: 0; transform: translate(0) scale(1); }
}

@keyframes spider-chroma-cyan {
  0%, 76% { opacity: 0; transform: translate(0) scale(1); }
  78% { opacity: 0.85; transform: translate(25px, -12px) scaleX(1.5) scaleY(0.6); }
  80% { opacity: 0.6; transform: translate(-20px, 8px) scaleX(0.4) scaleY(1.6); }
  82% { opacity: 0.9; transform: translate(12px, 6px) scaleX(1.2) scaleY(1.2); }
  84%, 100% { opacity: 0; transform: translate(0) scale(1); }
}
