/* Sandbox home FX — only body.page-home-sandbox (/111/) */

.page-home-sandbox {
  --home-slide-compact-height: 68vh;
}

.page-home-sandbox .home-slide {
  position: relative;
  overflow: hidden;
}

body.page-home.page-home-sandbox .home-slide--map,
body.page-home.page-home-sandbox .home-slide--contacts {
  height: var(--home-slide-compact-height) !important;
  min-height: var(--home-slide-compact-height) !important;
}

.page-home-sandbox .home-slide--map .home-slide__content,
.page-home-sandbox .home-slide--contacts .home-slide__content {
  min-height: calc(var(--home-slide-compact-height) - 80px);
  display: flex;
  align-items: center;
}

.page-home-sandbox .home-slide--contacts #scene-3 {
  max-height: 92% !important;
}

.page-home-sandbox .home-slide--map .lead h2,
.page-home-sandbox .home-slide--contacts .lead h2 {
  margin-bottom: 0.75rem;
}

.page-home-sandbox .home-slide__content {
  position: relative;
  z-index: 5;
}

.page-home-sandbox .home-fx {
  position: absolute;
  inset: 0;
  z-index: 0;
  pointer-events: none;
  overflow: hidden;
}

.page-home-sandbox .home-fx__canvas {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  display: block;
}

.page-home-sandbox .home-fx__nebula {
  position: absolute;
  inset: -20%;
  background:
    radial-gradient(ellipse 55% 45% at 20% 30%, rgba(80, 0, 120, 0.35) 0%, transparent 55%),
    radial-gradient(ellipse 40% 35% at 75% 60%, rgba(255, 0, 40, 0.2) 0%, transparent 50%),
    radial-gradient(ellipse 50% 40% at 50% 80%, rgba(0, 80, 160, 0.25) 0%, transparent 55%);
  opacity: 0.85;
  animation: homeNebulaDrift 18s ease-in-out infinite alternate;
}

.page-home-sandbox .home-fx__scan {
  position: absolute;
  inset: 0;
  background: repeating-linear-gradient(
    0deg,
    transparent,
    transparent 3px,
    rgba(0, 255, 213, 0.03) 3px,
    rgba(0, 255, 213, 0.03) 4px
  );
  animation: homeScanSweep 6s linear infinite;
  opacity: 0.6;
}

.page-home-sandbox .home-fx__scan--violet {
  background: repeating-linear-gradient(
    90deg,
    transparent,
    transparent 4px,
    rgba(180, 80, 255, 0.04) 4px,
    rgba(180, 80, 255, 0.04) 5px
  );
  animation-duration: 8s;
}

.page-home-sandbox .home-fx__arena-svg {
  position: absolute;
  right: 2%;
  bottom: 5%;
  width: min(58vw, 720px);
  height: auto;
  opacity: 0.55;
  z-index: 1;
}

.page-home-sandbox .home-arena-route {
  stroke-dasharray: 12 8;
  animation: homeArenaDash 2.5s linear infinite;
}

.page-home-sandbox .home-arena-route--cyan {
  animation-duration: 3.2s;
  animation-direction: reverse;
}

.page-home-sandbox .home-arena-base {
  animation: homeArenaPulse 2s ease-in-out infinite;
}

.page-home-sandbox .home-arena-base:nth-child(odd) {
  animation-delay: 0.5s;
}

.page-home-sandbox .home-neon-text h1,
.page-home-sandbox .home-neon-text h2 {
  animation: homeNeonPulse 3s ease-in-out infinite;
}

.page-home-sandbox .home-neon-text--cyan h1,
.page-home-sandbox .home-neon-text--cyan h2 {
  text-shadow:
    0 0 8px rgba(0, 255, 213, 0.5),
    0 0 24px rgba(0, 255, 213, 0.25);
  animation-name: homeNeonPulseCyan;
}

.page-home-sandbox .home-neon-text--violet h2 {
  text-shadow:
    0 0 8px rgba(180, 80, 255, 0.5),
    0 0 22px rgba(140, 40, 255, 0.3);
}

.page-home-sandbox .home-neon-text--arena h2 {
  text-shadow:
    0 0 10px rgba(255, 0, 35, 0.55),
    0 0 28px rgba(255, 0, 35, 0.25);
}

.page-home-sandbox .home-neon-text--warm h2 {
  text-shadow:
    0 0 8px rgba(255, 120, 60, 0.5),
    0 0 20px rgba(255, 80, 40, 0.3);
}

.page-home-sandbox .home-scene-rim {
  filter: drop-shadow(0 0 18px rgba(255, 0, 50, 0.35));
  animation: homeRimPulse 4s ease-in-out infinite;
}

.page-home-sandbox .home-scene-rim--warm {
  filter: drop-shadow(0 0 20px rgba(255, 100, 50, 0.4));
}

.page-home-sandbox .home-laser-shot--sandbox {
  display: block;
  left: 58%;
  bottom: 28%;
  z-index: 4;
}

.page-home-sandbox .home-laser-shot--sandbox .home-laser-shot__beam {
  background: linear-gradient(90deg, #fff 0%, #00ffd5 8%, #ff0023 50%, rgba(255, 0, 35, 0.3) 90%, transparent 100%);
  box-shadow:
    0 0 12px 3px rgba(0, 255, 213, 0.8),
    0 0 28px 8px rgba(255, 0, 40, 0.5);
  transform: rotate(-12deg);
}

.page-home-sandbox .home-laser-shot--sandbox .home-laser-shot__glow {
  background: linear-gradient(90deg, rgba(0, 255, 213, 0.9) 0%, rgba(255, 0, 40, 0.6) 45%, transparent 100%);
  transform: rotate(-12deg);
}

.page-home-sandbox .home-laser-shot--sandbox.is-firing .home-laser-shot__beam,
.page-home-sandbox .home-laser-shot--sandbox.is-firing .home-laser-shot__glow {
  opacity: 1;
  animation: homeLaserBurst 0.35s ease-out forwards;
}

.page-home-sandbox .home-laser-shot--sandbox.is-firing .home-laser-shot__flash {
  opacity: 1;
  animation: homeLaserFlash 0.25s ease-out forwards;
}

.page-home-sandbox .slide-alphatag:before {
  background: linear-gradient(
    90deg,
    rgba(0, 0, 0, 0.88) 0%,
    rgba(0, 0, 0, 0.5) 38%,
    rgba(0, 20, 30, 0.2) 62%,
    transparent 100%
  );
}

.page-home-sandbox #title-2 {
  margin-top: 20% !important;
}

@keyframes homeNebulaDrift {
  0% { transform: translate(0, 0) scale(1); }
  100% { transform: translate(-2%, 1%) scale(1.05); }
}

@keyframes homeScanSweep {
  0% { transform: translateY(-100%); }
  100% { transform: translateY(100%); }
}

@keyframes homeNeonPulse {
  0%, 100% {
    text-shadow:
      0 0 6px rgba(255, 255, 255, 0.4),
      0 0 18px rgba(255, 0, 35, 0.35);
  }
  50% {
    text-shadow:
      0 0 10px rgba(255, 255, 255, 0.7),
      0 0 32px rgba(255, 0, 35, 0.55),
      0 0 48px rgba(255, 0, 35, 0.25);
  }
}

@keyframes homeNeonPulseCyan {
  0%, 100% {
    text-shadow:
      0 0 8px rgba(0, 255, 213, 0.45),
      0 0 22px rgba(0, 255, 213, 0.2);
  }
  50% {
    text-shadow:
      0 0 14px rgba(0, 255, 213, 0.75),
      0 0 36px rgba(0, 255, 213, 0.4),
      0 0 52px rgba(255, 0, 35, 0.2);
  }
}

@keyframes homeArenaDash {
  to { stroke-dashoffset: -40; }
}

@keyframes homeArenaPulse {
  0%, 100% { opacity: 0.6; r: 8; }
  50% { opacity: 1; filter: drop-shadow(0 0 8px currentColor); }
}

@keyframes homeRimPulse {
  0%, 100% { filter: drop-shadow(0 0 12px rgba(255, 0, 50, 0.25)); }
  50% { filter: drop-shadow(0 0 28px rgba(255, 0, 50, 0.55)); }
}

@keyframes homeLaserBurst {
  0% { opacity: 0; transform: rotate(-12deg) scaleX(0.2); }
  30% { opacity: 1; transform: rotate(-12deg) scaleX(1); }
  100% { opacity: 0; transform: rotate(-12deg) scaleX(1.05); }
}

@keyframes homeLaserFlash {
  0% { opacity: 0; transform: scale(0.5); }
  40% { opacity: 1; transform: scale(1.2); }
  100% { opacity: 0; transform: scale(0.8); }
}

@media (max-width: 767px) {
  .page-home-sandbox .home-fx__arena-svg {
    width: 85vw;
    opacity: 0.35;
    right: -5%;
  }

  .page-home-sandbox .home-laser-shot--sandbox {
    left: 50%;
    bottom: 22%;
  }

  .page-home-sandbox .home-fx__nebula {
    opacity: 0.5;
  }
}

@media (prefers-reduced-motion: reduce) {
  .page-home-sandbox .home-fx__canvas {
    display: none;
  }

  .page-home-sandbox .home-fx__scan,
  .page-home-sandbox .home-fx__nebula,
  .page-home-sandbox .home-arena-route,
  .page-home-sandbox .home-arena-base,
  .page-home-sandbox .home-neon-text h1,
  .page-home-sandbox .home-neon-text h2,
  .page-home-sandbox .home-scene-rim,
  .page-home-sandbox .home-laser-shot--sandbox {
    animation: none !important;
  }
}
