* { box-sizing: border-box; }

html, body {
  width: 100%;
  height: 100%;
}

body {
  margin: 0;
  display: flex;
  justify-content: center;
  align-items: center;
  background: #000;
  overflow: hidden;
}

/* Subtle background, still clean */
.background {
  position: fixed;
  inset: 0;
  background:
    radial-gradient(circle at center, rgba(255,255,255,0.04), transparent 60%),
    radial-gradient(circle at bottom, rgba(120,0,0,0.18), transparent 65%),
    linear-gradient(180deg, #020202 0%, #000000 100%);
  z-index: -1;
}

/* Fill almost the entire viewport */
.page-wrapper {
  position: relative;
  width: 100vw;
  height: 100vh;
  display: flex;
  justify-content: center;
  align-items: center;
}

.poster {
  position: relative;
  height: 100%;
  max-height: 100vh;
}

/* Image fills screen by height */
.poster img {
  height: 100%;
  width: auto;
  max-height: 100vh;
  max-width: 100vw;
  display: block;
}

/* Hotspots */
.hotspot {
  position: absolute;
  display: block;
  cursor: pointer;
}

/* Top buttons */
.pink.buy1 { left: 28%; top: 31%; width: 20%; height: 5%; }
.pink.buy2 { left: 50%; top: 31%; width: 20%; height: 5%; }

/* Bottom 4 buttons */
.purple { left: 24%; top: 87%; width: 9%; height: 7%; }
.yellow { left: 36%; top: 87%; width: 9%; height: 7%; }
.green  { left: 48%; top: 87%; width: 9%; height: 7%; }
.blue-bottom { left: 60%; top: 87%; width: 9%; height: 7%; }

/* Tablet */
@media (max-width: 768px) {
  .pink.buy1 { left: 27%; top: 31.5%; width: 22%; height: 5.5%; }
  .pink.buy2 { left: 50%; top: 31.5%; width: 22%; height: 5.5%; }
}

/* Mobile */
@media (max-width: 480px) {
  .pink.buy1 { left: 26%; top: 32%; width: 24%; height: 6%; }
  .pink.buy2 { left: 50%; top: 32%; width: 24%; height: 6%; }
}


/* --- Smoke Overlay --- */
.smoke-overlay {
  position: fixed;
  top: 0;
  left: 0;
  width: 200%;
  height: 200%;
  pointer-events: none;
  background:
    radial-gradient(circle at 30% 30%, rgba(255,255,255,0.04), transparent 40%),
    radial-gradient(circle at 70% 40%, rgba(255,255,255,0.03), transparent 45%),
    radial-gradient(circle at 50% 70%, rgba(255,255,255,0.05), transparent 50%);
  opacity: 0.08;
  animation: smokeMove 60s linear infinite;
  mix-blend-mode: screen;
  z-index: 5;
}

@keyframes smokeMove {
  from { transform: translate(0, 0); }
  to   { transform: translate(-50%, -50%); }
}

/* --- Subtle Fire Glow at Bottom --- */
.fire-glow {
  position: fixed;
  bottom: 0;
  left: 0;
  width: 100%;
  height: 120px;
  background: radial-gradient(ellipse at center, rgba(255,60,0,0.15), transparent 70%);
  animation: fireFlicker 3s infinite alternate;
  pointer-events: none;
  z-index: 4;
}

@keyframes fireFlicker {
  from { opacity: 0.12; }
  to   { opacity: 0.2; }
}

#trail {
  position: fixed;
  top: 0;
  left: 0;
  pointer-events: none;
  z-index: 6;
}


.smoke-overlay,
.fire-glow {
  will-change: transform;
  transition: transform 0.1s linear;
}



  50%  { opacity: 0.7; }
  100% { opacity: 0.4; }
}


/* === Blended Hellish Side Columns (Seamless) === */

.side {
  position: fixed;
  top: 0;
  width: 180px;
  height: 100vh;
  pointer-events: none;
  z-index: 2;
  overflow: hidden;
  background: linear-gradient(180deg, #020202 0%, #050000 40%, #000 100%);
}

/* Fade edges into center so no hard cutoff line */
.side-left {
  left: 0;
  mask-image: linear-gradient(to right, black 70%, transparent 100%);
}

.side-right {
  right: 0;
  mask-image: linear-gradient(to left, black 70%, transparent 100%);
}

.side::after {
  content: "";
  position: absolute;
  inset: 0;
  background: radial-gradient(circle at center, rgba(120,0,0,0.25), transparent 75%);
}


/* === TRUE Seamless Hell Sides === */

.side {
  position: fixed;
  top: 0;
  width: 220px;
  height: 100vh;
  pointer-events: none;
  z-index: 1;
  overflow: hidden;
  background: transparent;
}

/* Left side: fades smoothly into center */
.side-left {
  left: 0;
  background: linear-gradient(
    to right,
    #020202 0%,
    #050000 25%,
    rgba(0,0,0,0.6) 55%,
    rgba(0,0,0,0.0) 100%
  );
}

/* Right side: mirror of left */
.side-right {
  right: 0;
  background: linear-gradient(
    to left,
    #020202 0%,
    #050000 25%,
    rgba(0,0,0,0.6) 55%,
    rgba(0,0,0,0.0) 100%
  );
}

/* Remove any overlay layers that create seams */
.side::after,
.side::before {
  display: none;
}

/* Rune rain layer should also fade out smoothly */
.rune-canvas {
  position: absolute;
  inset: 0;
  opacity: 0.35;
  mask-image: linear-gradient(to right, black 70%, transparent 100%);
}

.side-right .rune-canvas {
  mask-image: linear-gradient(to left, black 70%, transparent 100%);
}
