/* Partículas del ambiente de cada mundo */
.ambiente { position: absolute; inset: 0; pointer-events: none; overflow: hidden; z-index: 1; }
.ambiente i { position: absolute; display: block; font-style: normal; }

.ambiente .luciernaga { width: 7px; height: 7px; border-radius: 50%; background: #FFF6A8; box-shadow: 0 0 10px 4px rgba(255, 230, 120, .75); animation: luciernaga 9s ease-in-out infinite alternate; opacity: .85; }
@keyframes luciernaga { 0% { transform: translate(0, 0); opacity: .2; } 30% { opacity: 1; } 60% { transform: translate(30px, -40px); opacity: .4; } 100% { transform: translate(-20px, -80px); opacity: .9; } }

.ambiente .burbuja { width: calc(10px * var(--t)); height: calc(10px * var(--t)); border-radius: 50%; border: 2px solid rgba(255, 255, 255, .7); background: radial-gradient(circle at 30% 30%, rgba(255, 255, 255, .8) 0 18%, transparent 20%); animation: burbuja 10s linear infinite; top: 105% !important; }
@keyframes burbuja { to { transform: translate(18px, -125vh); } }

.ambiente .brillo { width: 3px; height: 3px; border-radius: 50%; background: #fff; box-shadow: 0 0 6px 2px rgba(255, 255, 255, .8); animation: brillo 4s ease-in-out infinite; }
@keyframes brillo { 0%, 100% { opacity: .1; transform: scale(.6); } 50% { opacity: 1; transform: scale(1.3); } }

.ambiente .hoja { font-size: calc(18px * var(--t)); top: -8% !important; animation: hoja 12s linear infinite; }
@keyframes hoja { to { transform: translate(60px, 115vh) rotate(540deg); } }

.ambiente .gaviota { font-size: 22px; left: -10% !important; top: calc(10% + 20% * var(--t)) !important; animation: gaviota 16s linear infinite; opacity: .9; }
@keyframes gaviota { 0% { transform: translateX(0) translateY(0); } 50% { transform: translateX(60vw) translateY(-20px); } 100% { transform: translateX(125vw) translateY(10px); } }

.ambiente .nube { width: 160px; height: 46px; border-radius: 40px; background: rgba(255, 255, 255, .55); filter: blur(6px); left: -30% !important; animation: nube2 30s linear infinite; }
@keyframes nube2 { to { transform: translateX(150vw); } }

/* Temporada 2 («de noche»): el mapa y los fondos se oscurecen y brillan */
[data-temporada="2"] { filter: brightness(.62) saturate(1.25) hue-rotate(-12deg); }
.mapa-noche::after { content: ""; position: absolute; inset: 0; pointer-events: none; background: radial-gradient(ellipse at 50% 0%, rgba(80, 90, 200, .25), transparent 60%); }

body.ahorro .ambiente { display: none; }
@media (prefers-reduced-motion: reduce) { .ambiente { display: none; } }
