/* GONZOWIRE OS - LSD effects */

/* Boot sequence */
#boot {
  position: fixed;
  inset: 0;
  background: #0a0604;
  color: #b6ff00;
  font-family: var(--mono);
  padding: 40px;
  font-size: 20px;
  z-index: 8000;
  overflow: hidden;
  text-shadow: 0 0 8px rgba(182,255,0,.5);
}
#boot h1 {
  font-family: var(--psy);
  color: #ff2b8f;
  text-shadow: 3px 3px 0 #14e3ff, 6px 6px 0 #ffe21a, 0 0 30px rgba(255,43,143,.6);
  font-size: 48px;
  margin: 0 0 8px;
  letter-spacing: .04em;
}
#boot .sub {
  color: var(--neon-yellow);
  font-family: var(--display);
  margin-bottom: 30px;
  text-transform: uppercase;
  letter-spacing: .12em;
}
#boot .lines { white-space: pre-wrap; }
#boot .lines .ok { color: var(--neon-acid); }
#boot .lines .warn { color: var(--neon-yellow); }
#boot .lines .err { color: var(--neon-blood); }
#boot .ready {
  margin-top: 20px;
  color: var(--neon-cyan);
  border: 2px dashed var(--neon-cyan);
  padding: 10px;
  display: inline-block;
  cursor: pointer;
  animation: pulse 1s steps(2) infinite;
}
@keyframes pulse { 50% { opacity: .35; } }

#boot.fade { animation: bootOut 1.4s forwards; }
@keyframes bootOut {
  0% { opacity: 1; filter: hue-rotate(0deg); }
  60% { opacity: 1; filter: hue-rotate(360deg) saturate(2); }
  100% { opacity: 0; transform: scale(1.4); filter: blur(20px); }
}

/* Bat country / LSD mode */
body.lsd #desktop {
  filter: hue-rotate(0deg) saturate(1.6) contrast(1.05);
  animation: trip 8s linear infinite;
}
body.lsd .window { animation: drool 6s ease-in-out infinite; }
body.lsd .icon .glyph { animation: wobble 2s ease-in-out infinite; }
body.lsd .crt::after { opacity: .25; }

@keyframes trip {
  0%   { filter: hue-rotate(0deg)   saturate(1.6); }
  50%  { filter: hue-rotate(180deg) saturate(2.2); }
  100% { filter: hue-rotate(360deg) saturate(1.6); }
}

@keyframes drool {
  0%,100% { transform: skewX(0deg) translateY(0); }
  50%     { transform: skewX(-2deg) translateY(2px); }
}

@keyframes wobble {
  0%,100% { transform: rotate(0deg); }
  25% { transform: rotate(-3deg) scale(1.05); }
  75% { transform: rotate(3deg)  scale(.97); }
}

/* Mode toggle button */
.lsd-toggle {
  position: fixed;
  bottom: 18px; right: 18px;
  background: var(--ink);
  color: var(--neon-acid);
  border: 2px solid var(--neon-acid);
  padding: 8px 14px;
  font-family: var(--display);
  text-transform: uppercase;
  letter-spacing: .1em;
  cursor: pointer;
  z-index: 200;
  box-shadow: 0 0 12px rgba(182,255,0,.5);
}
.lsd-toggle:hover { background: var(--neon-acid); color: var(--ink); }

/* Glitch text */
.glitch {
  position: relative;
  display: inline-block;
}
.glitch::before, .glitch::after {
  content: attr(data-text);
  position: absolute;
  inset: 0;
  pointer-events: none;
}
.glitch::before { color: var(--neon-cyan); transform: translate(-2px,0); mix-blend-mode: screen; }
.glitch::after  { color: var(--neon-blood); transform: translate(2px,0);  mix-blend-mode: screen; }

/* Konami god mode */
body.god #desktop { animation: trip 3s linear infinite; }
body.god .menubar .vibe::after { content: " // GOD MODE"; }
