/* MOW preloader: the play button from the logo, drawing itself while an equalizer
 * bounces. Colours come from the theme tokens, so it follows the active theme.
 * It only appears when a page takes longer than ~300 ms, never blocks clicks,
 * and fades itself out after 12 s even if the script never runs. */
.mow-preloader{position:fixed;inset:0;z-index:2147483000;display:grid;place-content:center;justify-items:center;gap:14px;
  background:var(--bg,#0d0912);pointer-events:none;opacity:0;
  animation:mow-pl-in .22s ease-out .3s forwards,mow-pl-out .3s ease-in 12s forwards}
.mow-preloader.is-done{animation:none;opacity:0;transition:opacity .25s ease}
.mow-preloader.is-leaving{animation:mow-pl-in .22s ease-out .15s forwards}
.mow-pl-mark{width:76px;height:76px;overflow:visible}
.mow-pl-a{stop-color:var(--mow,#C0448F)}.mow-pl-b{stop-color:var(--mow-dark,#9e3274)}
.mow-pl-track{fill:none;stroke:var(--border,#3a2a4e);stroke-width:7}
.mow-pl-ring{fill:none;stroke:url(#mow-pl-grad);stroke-width:7;stroke-linecap:round;stroke-dasharray:188.5;
  transform-origin:40px 40px;animation:mow-pl-draw 1.6s cubic-bezier(.6,0,.4,1) infinite,mow-pl-spin 1.6s linear infinite}
.mow-pl-play{fill:url(#mow-pl-grad);stroke:url(#mow-pl-grad);stroke-width:4;stroke-linejoin:round;
  transform-origin:42px 40px;animation:mow-pl-hop 1.6s cubic-bezier(.3,1.5,.5,1) infinite}
.mow-pl-bars{display:flex;align-items:flex-end;gap:4px;height:16px}
.mow-pl-bars i{display:block;width:4px;height:100%;border-radius:2px;transform-origin:bottom;
  background:linear-gradient(var(--mow-light,#d4569f),var(--mow,#C0448F));animation:mow-pl-eq .9s ease-in-out infinite}
.mow-pl-bars i:nth-child(2){animation-delay:-.7s}.mow-pl-bars i:nth-child(3){animation-delay:-.35s}
.mow-pl-bars i:nth-child(4){animation-delay:-.55s}.mow-pl-bars i:nth-child(5){animation-delay:-.15s}
.mow-pl-label{font:700 11px/1 var(--font-body,system-ui,sans-serif);letter-spacing:.16em;text-transform:uppercase;color:var(--text2,#8e7aa8)}
@keyframes mow-pl-in{to{opacity:1}}
@keyframes mow-pl-out{from{opacity:1}to{opacity:0;visibility:hidden}}
@keyframes mow-pl-draw{0%{stroke-dashoffset:180}50%{stroke-dashoffset:45}100%{stroke-dashoffset:180}}
@keyframes mow-pl-spin{to{transform:rotate(360deg)}}
@keyframes mow-pl-hop{0%,100%{transform:scale(1)}18%{transform:scale(1.18,.86)}34%{transform:scale(.9,1.12) translateX(2px)}52%{transform:scale(1.04,.97)}}
@keyframes mow-pl-eq{0%,100%{transform:scaleY(.25)}50%{transform:scaleY(1)}}
@media (prefers-reduced-motion:reduce){
  .mow-pl-ring,.mow-pl-play,.mow-pl-bars i{animation:none}.mow-pl-ring{stroke-dashoffset:60}.mow-pl-bars i{transform:scaleY(.6)}
}
@media print{.mow-preloader{display:none}}
