/* Exile: Dead Zone motion. Everything here is decoration: the page reads the same with it off. */
@keyframes edz-pulse{0%,100%{box-shadow:0 0 6px currentColor;opacity:1}50%{box-shadow:0 0 14px currentColor;opacity:.75}}
@keyframes edz-breathe{0%,100%{filter:drop-shadow(0 0 5px rgba(196,22,28,.45))}50%{filter:drop-shadow(0 0 12px rgba(232,38,45,.85))}}
@keyframes edz-drift{0%{transform:translateX(-50%) scale(1)}100%{transform:translateX(-50%) scale(1.045)}}
@keyframes edz-driftbg{0%{transform:scale(1) translateX(0)}100%{transform:scale(1.06) translateX(-1.5%)}}
@keyframes edz-mist{0%{transform:translateX(-10%)}100%{transform:translateX(10%)}}
@keyframes edz-twinkle{0%,100%{opacity:.35}50%{opacity:1}}
@keyframes edz-flicker{0%,100%{opacity:.9;transform:scale(1)}20%{opacity:.6;transform:scale(.96)}45%{opacity:1;transform:scale(1.05)}70%{opacity:.7;transform:scale(.98)}}
@keyframes edz-spin{to{transform:rotate(360deg)}}
@keyframes edz-aurora{0%,100%{opacity:.55;transform:translateX(0)}50%{opacity:1;transform:translateX(-3%)}}
@keyframes edz-glow{0%,100%{opacity:.6}50%{opacity:1}}
@keyframes edz-scan{0%{transform:translateY(-100%)}100%{transform:translateY(100%)}}
@keyframes edz-rise{from{transform:translateY(14px)}to{transform:translateY(0)}}

/* status + brand */
.chip.live::before{animation:edz-pulse 2.2s ease-in-out infinite;color:var(--live)}
.chip.test::before{animation:edz-pulse 2.8s ease-in-out infinite;color:var(--test)}
.brand .star{animation:edz-breathe 4.5s ease-in-out infinite}

/* banners: slow drift on the sharp painting, slower counter-drift on the blurred fill, a mist layer and an ember canvas */
.banner .sharp{animation:edz-drift 38s ease-in-out infinite alternate;transform-origin:50% 60%}
.banner .blur{animation:edz-driftbg 60s ease-in-out infinite alternate}
.banner .mist{position:absolute;inset:auto -12% 0;height:55%;pointer-events:none;
  background:radial-gradient(ellipse 30% 60% at 20% 100%,rgba(190,185,180,.16),transparent 70%),radial-gradient(ellipse 35% 50% at 65% 100%,rgba(190,185,180,.12),transparent 70%),radial-gradient(ellipse 25% 45% at 90% 100%,rgba(190,185,180,.10),transparent 70%);
  animation:edz-mist 26s ease-in-out infinite alternate}
.banner canvas.embers{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;mix-blend-mode:screen}

/* tiles: artwork eases in on hover */
.tile .art img,.tile .art .fg,.srv .art img,.assoc .art img{transition:transform .6s cubic-bezier(.2,.7,.2,1)}
.tile:hover .art img,.tile:hover .art .fg,.srv:hover .art img,.assoc:hover .art img{transform:scale(1.05)}
.tile.vhl:hover{box-shadow:0 0 0 1px #6b4a26,0 10px 30px rgba(224,162,63,.12)}
.tile.scl:hover{box-shadow:0 0 0 1px rgba(63,213,255,.5),0 10px 30px rgba(63,213,255,.14)}
.tile.fhl:hover{box-shadow:0 0 0 1px #6b5a3a,0 10px 30px rgba(217,119,44,.14)}

/* sections settle up as they arrive; they are already visible, this is only the last 14px */
.fx-rise{animation:edz-rise .7s cubic-bezier(.2,.7,.2,1) both}

/* Valheim scene */
.vh .scene .aur{animation:edz-aurora 14s ease-in-out infinite;transform-box:fill-box;transform-origin:center}
.vh .scene .aur.a2{animation-duration:19s;animation-delay:-6s}
.vh .scene .fire{animation:edz-flicker 2.6s ease-in-out infinite;transform-box:fill-box;transform-origin:center}
.vh .scene .moon{animation:edz-glow 9s ease-in-out infinite}
.vh .scene .ripple{animation:edz-mist 12s ease-in-out infinite alternate}

/* Star Citizen scene */
.sc .scene .stars circle{animation:edz-twinkle 3.5s ease-in-out infinite}
.sc .scene .stars circle:nth-child(3n){animation-duration:5.5s;animation-delay:-1.2s}
.sc .scene .stars circle:nth-child(4n){animation-duration:2.4s;animation-delay:-2s}
.sc .scene .ret{animation:edz-spin 18s linear infinite;transform-box:fill-box;transform-origin:center}
.sc .scene .thrust{animation:edz-glow 1.1s ease-in-out infinite;transform-box:fill-box;transform-origin:right center}
.sc .scene .glow{animation:edz-glow 4s ease-in-out infinite}
.sc .scene .sweep{animation:edz-scan 7s linear infinite}

/* Foxhole scene */
.fh .scene .flare{animation:edz-flicker 1.8s ease-in-out infinite;transform-box:fill-box;transform-origin:center}
.fh .scene .flare.f2{animation-duration:2.3s;animation-delay:-.9s}
.fh .scene .fire{animation:edz-glow 2.2s ease-in-out infinite;transform-box:fill-box;transform-origin:center}
.fh .scene .lamp{animation:edz-flicker 3s ease-in-out infinite;transform-box:fill-box;transform-origin:center}

@media (prefers-reduced-motion:reduce){
  .chip::before,.brand .star,.banner .sharp,.banner .blur,.banner .mist,.fx-rise,
  .vh .scene *,.sc .scene *,.fh .scene *{animation:none!important}
  .banner canvas.embers{display:none}
  .tile .art img,.tile .art .fg,.srv .art img,.assoc .art img{transition:none}
}
