/* JA 2026 · Fondo ambiental v0.7.16
   El degradado completo VIAJA con el scroll:
   TOP = naranja #ff7a00 / BOTTOM = magenta #ef0060.
   Los orbes quedan como profundidad secundaria; ya no son el efecto principal. */
html{background:#fffdf9}
body.ja-ambient-enabled{
  position:relative;
  z-index:0;
  isolation:isolate;
  background:transparent!important;
  --ja-gradient-pos:0%;
  --ja-ambient-c1:#ff7a00;
  --ja-ambient-c2:#ff5d36;
  --ja-ambient-c3:#f01867;
  --ja-ambient-c4:#ef0060;
  --ja-wash-opacity:.48;
  --ja-orange-orb-opacity:.52;
  --ja-coral-orb-opacity:.18;
  --ja-magenta-orb-opacity:.06;
  --ja-ambient-orange-y:0px;
  --ja-ambient-coral-y:0px;
  --ja-ambient-magenta-y:40px;
}
body.ja-ambient-intensity-soft{--ja-wash-opacity:.30}
body.ja-ambient-intensity-strong{--ja-wash-opacity:.68}
body.ja-ambient-interior{--ja-wash-opacity:.26}
body.ja-ambient-interior.ja-ambient-intensity-soft{--ja-wash-opacity:.17}
body.ja-ambient-interior.ja-ambient-intensity-strong{--ja-wash-opacity:.40}

.ja-ambient-bg{
  position:fixed;
  z-index:-1;
  inset:-8vh -5vw;
  overflow:hidden;
  pointer-events:none;
  contain:paint;
  background:#fffaf5;
}
.ja-ambient-wash,
.ja-ambient-orb{position:absolute;pointer-events:none;will-change:transform,opacity,background-position}

/*
   Esta es la pieza principal del efecto.
   El gradiente mide 260% de alto. Al inicio vemos su zona naranja;
   al final del documento lo desplazamos al 100% y vemos la zona magenta.
*/
.ja-ambient-wash{
  inset:0;
  opacity:var(--ja-wash-opacity);
  background:linear-gradient(180deg,
    var(--ja-ambient-c1) 0%,
    var(--ja-ambient-c1) 18%,
    var(--ja-ambient-c2) 42%,
    var(--ja-ambient-c3) 70%,
    var(--ja-ambient-c4) 84%,
    var(--ja-ambient-c4) 100%);
  background-size:100% 260%;
  background-position:50% var(--ja-gradient-pos);
  background-repeat:no-repeat;
}

/* Profundidad secundaria: se desvanece naranja y entra magenta al avanzar. */
.ja-ambient-orb{border-radius:999px;filter:blur(18px);transform:translate3d(0,0,0)}
.ja-ambient-orb-orange{
  width:min(90vw,1320px);height:min(90vw,1320px);left:-31vw;top:-38vh;
  opacity:var(--ja-orange-orb-opacity);
  transform:translate3d(0,var(--ja-ambient-orange-y),0);
  background:radial-gradient(circle at 52% 50%,color-mix(in srgb,var(--ja-ambient-c1) 44%,transparent) 0%,color-mix(in srgb,var(--ja-ambient-c1) 15%,transparent) 40%,transparent 72%);
}
.ja-ambient-orb-coral{
  width:min(72vw,1050px);height:min(72vw,1050px);right:-27vw;top:18vh;
  opacity:var(--ja-coral-orb-opacity);
  transform:translate3d(0,var(--ja-ambient-coral-y),0);
  background:radial-gradient(circle at 45% 45%,color-mix(in srgb,var(--ja-ambient-c2) 34%,transparent) 0%,color-mix(in srgb,var(--ja-ambient-c2) 10%,transparent) 40%,transparent 72%);
}
.ja-ambient-orb-magenta{
  width:min(96vw,1420px);height:min(96vw,1420px);left:12vw;bottom:-45vh;
  opacity:var(--ja-magenta-orb-opacity);
  transform:translate3d(0,var(--ja-ambient-magenta-y),0);
  background:radial-gradient(circle at 55% 52%,color-mix(in srgb,var(--ja-ambient-c4) 44%,transparent) 0%,color-mix(in srgb,var(--ja-ambient-c4) 14%,transparent) 40%,transparent 74%);
}

body.ja-ambient-enabled::before{
  opacity:.22;
  background:
    linear-gradient(rgb(36 52 60 / .018) 1px,transparent 1px),
    linear-gradient(90deg,rgb(36 52 60 / .018) 1px,transparent 1px)!important;
  background-size:72px 72px!important;
}

/* Evita que bloques grandes oculten el fondo global. */
body.ja-ambient-enabled .purpose-section,
body.ja-ambient-enabled .journey-section,
body.ja-ambient-enabled .themes,
body.ja-ambient-enabled .experience,
body.ja-ambient-enabled .speakers-section,
body.ja-ambient-enabled .legacy,
body.ja-ambient-enabled .venue,
body.ja-ambient-enabled .access-hub,
body.ja-ambient-enabled .registration-hub,
body.ja-ambient-enabled .concept,
body.ja-ambient-enabled .platform{background:rgba(255,255,255,.16)!important}
body.ja-ambient-intensity-strong .purpose-section,
body.ja-ambient-intensity-strong .journey-section,
body.ja-ambient-intensity-strong .themes,
body.ja-ambient-intensity-strong .experience,
body.ja-ambient-intensity-strong .speakers-section,
body.ja-ambient-intensity-strong .legacy,
body.ja-ambient-intensity-strong .venue,
body.ja-ambient-intensity-strong .access-hub,
body.ja-ambient-intensity-strong .registration-hub,
body.ja-ambient-intensity-strong .concept,
body.ja-ambient-intensity-strong .platform{background:rgba(255,255,255,.09)!important}

@media (max-width:760px){
  .ja-ambient-bg{inset:-5vh -18vw}
  .ja-ambient-wash{background-size:100% 245%}
  .ja-ambient-orb-orange{width:145vw;height:145vw;left:-68vw;top:-22vh}
  .ja-ambient-orb-coral{width:125vw;height:125vw;right:-66vw;top:26vh}
  .ja-ambient-orb-magenta{width:155vw;height:155vw;left:-5vw;bottom:-34vh}
  body.ja-ambient-enabled .purpose-section,
  body.ja-ambient-enabled .journey-section,
  body.ja-ambient-enabled .themes,
  body.ja-ambient-enabled .experience,
  body.ja-ambient-enabled .speakers-section,
  body.ja-ambient-enabled .legacy,
  body.ja-ambient-enabled .venue,
  body.ja-ambient-enabled .access-hub,
  body.ja-ambient-enabled .registration-hub,
  body.ja-ambient-enabled .concept,
  body.ja-ambient-enabled .platform{background:rgba(255,255,255,.19)!important}
}
@media (prefers-reduced-motion:reduce){
  .ja-ambient-wash{background-position:50% 38%!important;will-change:auto}
  .ja-ambient-orb{transform:none!important;will-change:auto}
}


/* v0.7.28 · segundo comportamiento: movimiento continuo tipo Próximamente. */
body.ja-ambient-mode-animated .ja-ambient-wash{
  background-size:240% 240%;
  animation:jaAmbientContinuous 14s ease-in-out infinite;
}
body.ja-ambient-mode-animated .ja-ambient-orb-orange{animation:jaAmbientOrbA 18s ease-in-out infinite alternate}
body.ja-ambient-mode-animated .ja-ambient-orb-coral{animation:jaAmbientOrbB 22s ease-in-out infinite alternate}
body.ja-ambient-mode-animated .ja-ambient-orb-magenta{animation:jaAmbientOrbC 20s ease-in-out infinite alternate}
@keyframes jaAmbientContinuous{0%,100%{background-position:0% 45%}50%{background-position:100% 55%}}
@keyframes jaAmbientOrbA{from{transform:translate3d(-2%,0,0) scale(1)}to{transform:translate3d(8%,7%,0) scale(1.08)}}
@keyframes jaAmbientOrbB{from{transform:translate3d(0,-3%,0) scale(1)}to{transform:translate3d(-8%,9%,0) scale(1.1)}}
@keyframes jaAmbientOrbC{from{transform:translate3d(4%,2%,0) scale(1)}to{transform:translate3d(-4%,-8%,0) scale(1.06)}}
@media (prefers-reduced-motion:reduce){body.ja-ambient-mode-animated .ja-ambient-wash,body.ja-ambient-mode-animated .ja-ambient-orb{animation:none!important}}
