:root {
  --blood: #dc2626;
  --warn: #facc15;
  --void: #0a0505;
}

* { box-sizing: border-box; }

body {
  margin: 0;
  background:
    radial-gradient(ellipse at top, rgba(80, 10, 10, 0.5), transparent 60%),
    radial-gradient(ellipse at bottom, rgba(60, 8, 8, 0.4), transparent 55%),
    repeating-linear-gradient(45deg, transparent, transparent 22px, rgba(250, 204, 21, 0.015) 22px, rgba(250, 204, 21, 0.015) 44px),
    #0a0505;
  min-height: 100vh;
  color: #fecaca;
}

.font-anton { font-family: 'Anton', sans-serif; }

/* Glow */
.glow-red {
  text-shadow: 0 0 8px rgba(220, 38, 38, 0.7), 0 0 22px rgba(220, 38, 38, 0.4);
}

/* Flicker */
.flicker { animation: flicker 4s infinite; }
@keyframes flicker {
  0%, 92%, 100% { opacity: 1; }
  93% { opacity: 0.6; }
  94% { opacity: 1; }
  96% { opacity: 0.4; }
  97% { opacity: 1; }
}

/* Warning pulse */
.warn-pulse { animation: warnPulse 1.6s ease-in-out infinite; }
@keyframes warnPulse {
  0%, 100% { transform: scale(1); filter: drop-shadow(0 0 4px rgba(250,204,21,0.6)); }
  50% { transform: scale(1.18); filter: drop-shadow(0 0 14px rgba(250,204,21,0.9)); }
}

/* Threat glow pulse */
.threat-glow { animation: threatGlow 2s ease-in-out infinite; }
@keyframes threatGlow {
  0%, 100% { box-shadow: 0 0 12px rgba(220,38,38,0.4), inset 0 0 20px rgba(220,38,38,0.05); }
  50% { box-shadow: 0 0 28px rgba(220,38,38,0.7), inset 0 0 30px rgba(220,38,38,0.12); }
}

/* Screen shake */
.screen-shake { animation: shake 0.5s cubic-bezier(.36,.07,.19,.97); }
@keyframes shake {
  10%, 90% { transform: translateX(-2px); }
  20%, 80% { transform: translateX(4px); }
  30%, 50%, 70% { transform: translateX(-8px); }
  40%, 60% { transform: translateX(8px); }
}

/* Rage button — barely contains its anger */
.rage-btn:hover { animation: microShake 0.25s infinite; }
@keyframes microShake {
  0%, 100% { transform: translate(0,0); }
  25% { transform: translate(-1px, 1px); }
  50% { transform: translate(1px, -1px); }
  75% { transform: translate(-1px, -1px); }
}

/* Cursor */
.cursor-blink { animation: blink 0.7s step-end infinite; color: var(--warn); }
@keyframes blink { 50% { opacity: 0; } }

/* Warning poster torn edges */
.warning-poster {
  clip-path: polygon(0 2%, 3% 0, 20% 2%, 40% 0, 60% 2%, 80% 0, 97% 2%, 100% 5%, 99% 96%, 100% 100%, 78% 98%, 55% 100%, 30% 98%, 8% 100%, 0 97%);
}

/* Torn card */
.torn-card {
  border: 1px solid;
  clip-path: polygon(0 4%, 2% 0, 98% 3%, 100% 0, 99% 97%, 100% 100%, 2% 98%, 0 100%);
}

/* Action buttons */
.action-btn {
  background: rgba(20, 5, 5, 0.8);
  border: 2px solid var(--blood);
  color: #fca5a5;
  font-family: 'JetBrains Mono', monospace;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  font-size: 0.7rem;
  padding: 0.7rem 0.4rem;
  transition: all 0.15s;
  cursor: pointer;
}
.action-btn:hover {
  background: var(--blood);
  color: #000;
  box-shadow: 0 0 14px rgba(220,38,38,0.6);
}
.action-btn:active { transform: translateY(1px); }

/* Menace slider */
.menace-slider {
  -webkit-appearance: none;
  appearance: none;
  height: 8px;
  background: linear-gradient(90deg, #4b5563, #dc2626, #facc15);
  outline: none;
  border: 1px solid #7f1d1d;
  cursor: pointer;
}
.menace-slider::-webkit-slider-thumb {
  -webkit-appearance: none;
  appearance: none;
  width: 24px;
  height: 24px;
  background: var(--warn);
  border: 2px solid #000;
  box-shadow: 0 0 10px rgba(250,204,21,0.8);
  cursor: pointer;
  clip-path: polygon(50% 0, 100% 100%, 0 100%);
}
.menace-slider::-moz-range-thumb {
  width: 22px;
  height: 22px;
  background: var(--warn);
  border: 2px solid #000;
  box-shadow: 0 0 10px rgba(250,204,21,0.8);
  cursor: pointer;
}

/* Stagger entrance */
.stagger {
  opacity: 0;
  animation: rise 0.6s ease forwards;
}
@keyframes rise {
  from { opacity: 0; transform: translateY(14px); }
  to { opacity: 1; transform: translateY(0); }
}

/* Achievement pop */
.animate-pop { animation: pop 0.4s cubic-bezier(.18,.89,.32,1.28); }
@keyframes pop {
  from { transform: scale(0.7); opacity: 0; }
  to { transform: scale(1); opacity: 1; }
}

/* Custom scroll flavor */
::-webkit-scrollbar { width: 10px; }
::-webkit-scrollbar-track { background: #150808; }
::-webkit-scrollbar-thumb { background: #7f1d1d; }
::-webkit-scrollbar-thumb:hover { background: #dc2626; }