/* Landing atmosphere — smooth gradients, no visible banding */

.page-landing .ambient {
  display: block !important;
  z-index: 0;
}

.page-landing .ambient__orb {
  filter: blur(140px);
  opacity: 0.28;
  animation: none;
  transition: opacity 0.8s ease;
}

.page-landing .ambient__orb--1 {
  width: min(680px, 110vw);
  height: min(680px, 110vw);
  top: 30%;
  left: 50%;
  transform: translate(-50%, -50%);
  background: radial-gradient(
    circle,
    rgba(70, 150, 210, 0.14) 0%,
    rgba(50, 120, 180, 0.06) 28%,
    rgba(30, 80, 140, 0.02) 52%,
    transparent 72%
  );
}

.page-landing .ambient__orb--2 {
  width: min(520px, 85vw);
  height: min(520px, 85vw);
  bottom: 0;
  left: 50%;
  transform: translate(-50%, 40%);
  background: radial-gradient(
    circle,
    rgba(45, 110, 170, 0.08) 0%,
    rgba(35, 85, 140, 0.03) 35%,
    transparent 68%
  );
}

.page-landing .ambient__orb--3 {
  display: none;
}

@keyframes landing-backdrop-in {
  0% {
    opacity: 0;
    filter: blur(4px) brightness(0.85);
  }
  100% {
    opacity: 1;
    filter: blur(0) brightness(1);
  }
}

@keyframes landing-canvas-in {
  0% { opacity: 0; }
  100% { opacity: 0.72; }
}

@keyframes landing-horizon-in {
  0% { opacity: 0; }
  100% { opacity: 1; }
}

@keyframes landing-ambient-in {
  0% { opacity: 0; transform: translate(-50%, -50%) scale(0.92); }
  100% { opacity: 0.28; transform: translate(-50%, -50%) scale(1); }
}

@keyframes landing-ambient-in-2 {
  0% { opacity: 0; transform: translate(-50%, 40%) scale(0.94); }
  100% { opacity: 0.28; transform: translate(-50%, 40%) scale(1); }
}

.page-landing.landing--boot .landing-backdrop {
  opacity: 0;
}

.page-landing.landing--phase-backdrop .landing-backdrop {
  animation: landing-backdrop-in 1.85s cubic-bezier(0.16, 1, 0.3, 1) both;
}

.page-landing.landing--boot .landing-backdrop__canvas {
  opacity: 0;
}

.page-landing.landing--phase-backdrop .landing-backdrop__canvas {
  animation: landing-canvas-in 2.4s cubic-bezier(0.16, 1, 0.3, 1) 0.25s both;
}

.page-landing.landing--boot .landing-backdrop__horizon {
  opacity: 0;
}

.page-landing.landing--phase-backdrop .landing-backdrop__horizon {
  animation: landing-horizon-in 1.6s cubic-bezier(0.16, 1, 0.3, 1) 0.35s both;
}

.page-landing.landing--boot .ambient__orb--1,
.page-landing.landing--boot .ambient__orb--2 {
  opacity: 0;
}

.page-landing.landing--phase-backdrop .ambient__orb--1 {
  animation: landing-ambient-in 1.8s cubic-bezier(0.16, 1, 0.3, 1) 0.12s both;
}

.page-landing.landing--phase-backdrop .ambient__orb--2 {
  animation: landing-ambient-in-2 1.9s cubic-bezier(0.16, 1, 0.3, 1) 0.22s both;
}

.page-landing.landing--intro-done .ambient__orb--1,
.page-landing.landing--intro-done .ambient__orb--2 {
  animation: ambient-drift 32s var(--ease-out) infinite alternate;
}

.landing-backdrop {
  position: fixed;
  inset: 0;
  z-index: 0;
  pointer-events: none;
  overflow: hidden;
  background: #030308;
}

.landing-backdrop__base {
  position: absolute;
  inset: 0;
  background:
    radial-gradient(ellipse 130% 90% at 50% 32%, rgba(35, 80, 130, 0.14) 0%, rgba(20, 45, 75, 0.06) 32%, rgba(10, 25, 45, 0.02) 55%, transparent 72%),
    radial-gradient(ellipse 80% 55% at 50% 100%, rgba(25, 60, 100, 0.06) 0%, rgba(15, 35, 60, 0.02) 40%, transparent 68%),
    #030308;
}

.landing-backdrop__mesh {
  position: absolute;
  inset: 0;
  opacity: 1;
  background: radial-gradient(
    ellipse 100% 75% at 50% 38%,
    rgba(60, 140, 200, 0.05) 0%,
    rgba(40, 100, 160, 0.025) 30%,
    rgba(25, 70, 120, 0.01) 55%,
    transparent 75%
  );
}

.landing-backdrop__grid {
  display: none;
}

.landing-backdrop__canvas {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  opacity: 0.72;
  mix-blend-mode: normal;
  pointer-events: none;
}

.landing-backdrop__horizon {
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  height: 50%;
  background: radial-gradient(
    ellipse 100% 60% at 50% 100%,
    rgba(40, 100, 160, 0.04) 0%,
    rgba(25, 70, 120, 0.015) 38%,
    rgba(15, 40, 70, 0.005) 62%,
    transparent 82%
  );
}

.landing-backdrop__grain {
  position: absolute;
  inset: 0;
  opacity: 0.055;
  background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 512 512' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.75' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
  background-size: 180px 180px;
  mix-blend-mode: overlay;
}

.landing-backdrop__vignette {
  position: absolute;
  inset: 0;
  background: radial-gradient(
    ellipse 105% 95% at 50% 44%,
    transparent 0%,
    transparent 48%,
    rgba(0, 0, 0, 0.18) 72%,
    rgba(0, 0, 0, 0.42) 100%
  );
}

html[data-theme="light"] .page-landing .ambient__orb { opacity: 0.16; }

html[data-theme="light"] .landing-backdrop,
html[data-theme="light"] .landing-backdrop__base {
  background: #eef0f4;
}

html[data-theme="light"] .landing-backdrop__base {
  background:
    radial-gradient(ellipse 120% 85% at 50% 34%, rgba(80, 150, 210, 0.08) 0%, rgba(60, 120, 180, 0.03) 40%, transparent 70%),
    #eef0f4;
}

html[data-theme="light"] .landing-backdrop__mesh {
  background: radial-gradient(
    ellipse 100% 70% at 50% 36%,
    rgba(60, 130, 200, 0.06) 0%,
    rgba(40, 100, 170, 0.02) 45%,
    transparent 72%
  );
}

html[data-theme="light"] .landing-backdrop__canvas {
  opacity: 0.28;
  mix-blend-mode: multiply;
}

html[data-theme="light"] .landing-backdrop__vignette {
  background: radial-gradient(
    ellipse 105% 95% at 50% 44%,
    transparent 0%,
    transparent 55%,
    rgba(0, 0, 0, 0.04) 100%
  );
}

@media (max-width: 768px) {
  .page-landing .ambient__orb { opacity: 0.22; }
}

@media (prefers-reduced-motion: reduce) {
  .page-landing.landing--boot .landing-backdrop,
  .page-landing.landing--boot .ambient__orb--1,
  .page-landing.landing--boot .ambient__orb--2 {
    opacity: 1;
    transform: none;
    animation: none;
  }

  .page-landing .ambient__orb {
    animation: none !important;
    transition: none;
  }

  .landing-backdrop__canvas { display: none; }
}
