/* Le paysage météo (paquet partagé) : le cadre posé par mount.js ([data-weather-host]) et les calques du moteur
   (ciel, terrain arrière et avant, neige d'hiver, lumière, brume et pluie). Tout est limité au bloc qui l'accueille.
   Les contrôles de test (.ambient-weather-controls, .weather-advanced) servent à l'admin de BzzBot. */
/* All scenery styles are scoped. The host defines the exact background rectangle. */
[data-weather-host]{position:relative;isolation:isolate;overflow:hidden;background:#151510}
[data-weather-host]>.day-scenery{position:absolute;inset:0;z-index:-1;pointer-events:none;overflow:hidden}
[data-weather-host] .day-layer{position:absolute;inset:0;background-size:cover;background-position:center center;background-repeat:no-repeat}
[data-weather-host] .day-scenery::after{content:'';position:absolute;inset:0;z-index:4;background:linear-gradient(90deg,#08090835,#08090810);pointer-events:none}
[data-weather-host] .terrain-layer{z-index:1;transition:none}
/* L'eau du fleuve qui coule (water.js) : la bande du fleuve, dans le calque du terrain (ses filtres s'y appliquent) */
.terrain-water{position:absolute;left:0;width:100%;display:block;pointer-events:none}
/* Le fleuve sorti du bloc (bande trop mince, en-tête élargi) : caché, sinon sa dernière image restait étirée en bas */
.terrain-water[hidden]{display:none}
/* Les abeilles de la ruche (bees.js) : la zone de vol, dans le calque du premier plan (ses filtres s'y appliquent) */
.terrain-bees{position:absolute;display:block;pointer-events:none}
.terrain-bees[hidden]{display:none}
@media(prefers-reduced-motion:reduce){[data-weather-host] .terrain-layer{transition:none}}

.weather-sky,.weather-atmosphere,.terrain-light{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}
.weather-sky{z-index:0}.app.day-cycle .terrain-layer{z-index:1;background-size:cover;background-position:center center;transition:none}
.terrain-light{z-index:2;mix-blend-mode:color;transition:none}
.weather-atmosphere{z-index:3}
:is(.app.day-cycle,[data-weather-host]) .day-scenery::after{z-index:4;background:linear-gradient(90deg,#08090835,#08090810)!important;pointer-events:none}
.ambient-weather-controls{display:flex;align-items:center;gap:16px;flex-wrap:wrap;border-top:1px solid #66543a55;margin-top:14px;padding-top:12px;font-size:12px;color:#b7aa96}
.ambient-weather-controls label{display:flex;gap:8px;align-items:center}.ambient-weather-controls select{font:inherit;background:#171510;border:1px solid #66543a;color:#dcd1bb;padding:6px}
.ambient-weather-controls input[type=range]{width:140px;accent-color:#d99a3c;margin:0;padding:0}.ambient-weather-controls .btn{font-size:12px}.ambient-weather-controls [hidden]{display:none!important}
.ambient-weather-controls small{font-size:11px;margin-left:auto}.ambient-weather-controls output{min-width:34px}
.app.dashboard-section-titles .hero{justify-content:center!important;flex-wrap:nowrap!important}
@media(max-width:700px){.ambient-weather-controls{gap:10px}.ambient-weather-controls small{margin-left:0;width:100%}}
@media(prefers-reduced-motion:reduce){.app.day-cycle .terrain-layer,.terrain-light{transition:none}}

.weather-advanced{margin-top:18px;border-top:1px solid #66543a66;padding-top:12px;color:#d5c7b1;font:12px Roboto,Arial,sans-serif}.weather-advanced summary{cursor:pointer;color:#d99a3c}.weather-advanced label{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin:12px 0}.weather-advanced input{width:160px;accent-color:#d99a3c}.weather-advanced output{min-width:30px}


/* Winter landscape shares the exact cover rectangle of the original terrain. */
.weather-snow-cover{position:absolute;inset:0;z-index:1;pointer-events:none;background-size:cover;background-position:center;background-repeat:no-repeat;opacity:0;transition:none}
@media(prefers-reduced-motion:reduce){.weather-snow-cover{transition:none}}

.weather-test-button{margin:10px 8px 0 0;padding:8px 12px;background:#211c13;color:#e4d7bf;border:1px solid #66543a;cursor:pointer;font:inherit}

/* Rear terrain / flights / foreground: masks use the same source rectangle. */
:is(.app.day-cycle,[data-weather-host]) .terrain-foreground{position:absolute;inset:0;z-index:3;background-size:cover;background-position:center;pointer-events:none;transition:none}
.terrain-light{z-index:4}.weather-atmosphere{z-index:5}:is(.app.day-cycle,[data-weather-host]) .day-scenery::after{z-index:6}

/* Les événements du ciel (js/events/sky-events.js) : le plan lointain derrière le terrain, le plan proche entre
   l'arrière-plan et le premier plan. */
[data-weather-host] .weather-events{position:absolute;inset:0;z-index:0;pointer-events:none}
[data-weather-host] .weather-events canvas,[data-weather-host] .weather-events-front{display:block;position:absolute;inset:0;width:100%;height:100%;pointer-events:none}
[data-weather-host] .weather-events-front{z-index:2}
