/* Negative stacking keeps every effect behind panels, controls and text. */
body.has-ambient{isolation:isolate}
.site-ambient{position:fixed;inset:0;z-index:-1;pointer-events:none;overflow:hidden;contain:strict;--ambient-strength:.8}
.site-ambient[data-intensity=quiet]{--ambient-strength:.38}
.ambient-haze{position:absolute;width:95vw;height:85vh;min-width:650px;min-height:440px;border-radius:50%;opacity:var(--ambient-strength);background:radial-gradient(ellipse,rgba(149,20,42,.19),rgba(102,16,32,.065) 38%,transparent 70%);animation:ambient-drift-a 48s ease-in-out infinite alternate;will-change:transform}
.ambient-haze-a{left:-45vw;top:12vh}
.ambient-haze-b{right:-38vw;bottom:-30vh;background:radial-gradient(ellipse,rgba(128,18,33,.16),rgba(112,45,29,.04) 42%,transparent 70%);animation-name:ambient-drift-b;animation-duration:65s}
.site-ambient[data-intensity=quiet] .ambient-haze{animation-duration:75s}
.ambient-embers{position:absolute;inset:0}
.ambient-embers i{position:absolute;left:var(--x);bottom:-16px;width:var(--size);height:var(--size);border-radius:50%;background:#f29b70;box-shadow:0 0 5px 1px #dd563c55;opacity:0;animation:ambient-rise var(--duration) linear var(--delay) infinite}
.site-ambient:not([data-motion=running]) *{animation-play-state:paused!important}
.site-ambient[data-motion=reduced] .ambient-embers,.site-ambient[data-motion=static] .ambient-embers{display:none}
@keyframes ambient-drift-a{from{transform:translate3d(-3vw,0,0) scale(1)}to{transform:translate3d(15vw,7vh,0) scale(1.08)}}
@keyframes ambient-drift-b{from{transform:translate3d(2vw,0,0) scale(1)}to{transform:translate3d(-12vw,-9vh,0) scale(1.05)}}
@keyframes ambient-rise{0%{transform:translate3d(0,4vh,0);opacity:0}12%{opacity:var(--alpha)}74%{opacity:var(--alpha)}100%{transform:translate3d(var(--drift),-110vh,0);opacity:0}}
@media(max-width:700px){.site-ambient{--ambient-strength:.6}.site-ambient[data-intensity=quiet]{--ambient-strength:.28}.ambient-haze{min-width:450px;min-height:370px}.ambient-embers i{box-shadow:0 0 4px #dd563c55}}
@media(prefers-reduced-motion:reduce){.site-ambient *{animation:none!important}.site-ambient .ambient-embers{display:none}}
@media print{.site-ambient{display:none}}
