/* Shared Zlabs branding. The original supplied master PNG is not altered. */
.zlabs-logo-clip-defs { position: absolute; overflow: hidden; pointer-events: none; }
.zlabs-header-logo {
    display: grid;
    place-items: center;
    position: relative;
    overflow: visible;
    width: 92px;
    height: 72px;
    flex: 0 0 auto;
    isolation: isolate;
}
.zlabs-header-logo .zlabs-logo-art {
    position: relative;
    display: block;
    width: 64px;
    height: 64px;
    translate: 0 3px;
    z-index: 2;
    filter: drop-shadow(0 0 3px rgba(134,255,74,.65)) drop-shadow(0 0 11px rgba(0,255,102,.42));
    transition: filter .25s ease;
}
.zlabs-logo-mask {
    position: absolute;
    inset: 0;
    display: block;
    clip-path: url(#zlabs-flask-outline);
}
.zlabs-header-logo img {
    position: absolute;
    inset: 0;
    display: block;
    width: 100%;
    height: 100%;
    object-fit: contain;
    pointer-events: none;
}
.zlabs-header-logo .chrome-wordmark-main {
    z-index: 2;
    filter: saturate(1.08) brightness(1.05);
    animation: zlabsLogoGlow 5.8s ease-in-out infinite;
}
.zlabs-header-logo .chrome-wordmark-glitch { z-index: 3; opacity: 0; mix-blend-mode: screen; }
.zlabs-header-logo .chrome-wordmark-glitch--red {
    filter: sepia(1) saturate(8) hue-rotate(306deg);
    animation: zlabsLogoSliceRed 5.4s steps(1,end) infinite;
}
.zlabs-header-logo .chrome-wordmark-glitch--green {
    filter: sepia(1) saturate(10) hue-rotate(74deg);
    animation: zlabsLogoSliceGreen 5.4s steps(1,end) infinite;
}
.logo .zlabs-header-logo { width: 112px; height: 62px; }
.logo .zlabs-header-logo .zlabs-logo-art { width: 58px; height: 58px; translate: 0 1px; }
.zlabs-festival-link { display: flex; align-items: center; text-decoration: none; flex: 0 0 auto; }
.zlabs-festival-link .zlabs-header-logo { width: 48px; height: 58px; }
.zlabs-festival-link .zlabs-logo-art { width: 50px; height: 50px; translate: 0 2px; }
.zlabs-festival-link .zlabs-logo-smoke { width: 50px; height: 50px; }
.zlabs-festival-link .zlabs-logo-smoke > span { left: 14px; }
.logo-container:hover .zlabs-logo-art,
.logo-container:focus-visible .zlabs-logo-art {
    filter: drop-shadow(0 0 4px rgba(185,255,135,.8)) drop-shadow(0 0 17px rgba(0,255,102,.65));
}
.zlabs-logo-smoke {
    position: absolute;
    z-index: 1;
    top: 8px;
    left: 50%;
    width: 70px;
    height: 70px;
    transform: translateX(-50%);
    opacity: .3;
    pointer-events: none;
    mix-blend-mode: screen;
}
.zlabs-logo-smoke > span {
    position: absolute;
    top: -12px;
    left: 23px;
    width: 26px;
    height: 30px;
    border-radius: 48% 52% 63% 37%;
    background: radial-gradient(ellipse at 40% 64%, rgba(129,255,89,.9), rgba(0,255,102,.56) 37%, transparent 72%);
    filter: blur(4px);
    transform-origin: 50% 90%;
    animation: zlabsLogoSmoke 5.6s ease-out infinite;
    opacity: 0;
}
.zlabs-logo-smoke > span:nth-child(2) { animation-delay: -1.4s; }
.zlabs-logo-smoke > span:nth-child(3) { animation-delay: -2.8s; }
.zlabs-logo-smoke > span:nth-child(4) { animation-delay: -4.2s; }
@keyframes zlabsLogoSmoke {
    0% { opacity: 0; transform: translate3d(0,-8px,0) scale(.35) rotate(-10deg); }
    16% { opacity: .85; }
    46% { opacity: .7; transform: translate3d(14px,0,0) scale(.95) rotate(12deg); }
    75% { opacity: .36; transform: translate3d(28px,-1px,0) scale(1.5) rotate(-8deg); }
    100% { opacity: 0; transform: translate3d(42px,-16px,0) scale(1.9) rotate(22deg); }
}
@keyframes zlabsLogoGlow {
    0%,100% { filter: saturate(1.08) brightness(1.05); }
    50% { filter: saturate(1.14) brightness(1.18); }
}
@keyframes zlabsLogoSliceRed {
    0%,86%,92%,100% { opacity: 0; transform: none; clip-path: inset(0 0 100%); }
    87% { opacity: .85; transform: translateX(-2px); clip-path: inset(18% 0 61%); }
    89% { opacity: .7; transform: translateX(2px); clip-path: inset(66% 0 14%); }
    91% { opacity: .8; transform: translateX(-1px); clip-path: inset(43% 0 39%); }
}
@keyframes zlabsLogoSliceGreen {
    0%,85%,91%,100% { opacity: 0; transform: none; clip-path: inset(100% 0 0); }
    86% { opacity: .7; transform: translateX(2px); clip-path: inset(56% 0 26%); }
    88% { opacity: .8; transform: translateX(-2px); clip-path: inset(23% 0 61%); }
    90% { opacity: .65; transform: translateX(1px); clip-path: inset(76% 0 8%); }
}
.wallpaper-paused .zlabs-header-logo *,
.wallpaper-paused .zlabs-header-logo img { animation-play-state: paused !important; }
@media (max-width: 1100px) {
    .zlabs-header-logo { width: 82px; height: 64px; }
    .zlabs-header-logo .zlabs-logo-art { width: 58px; height: 58px; }
    .zlabs-logo-smoke { top: 8px; }
}
@media (max-width: 820px) {
    .logo .zlabs-header-logo { width: 82px; height: 54px; }
    .logo .zlabs-header-logo .zlabs-logo-art { width: 50px; height: 50px; }
    .zlabs-festival-link .zlabs-header-logo { width: 38px; height: 44px; }
    .zlabs-festival-link .zlabs-logo-art { width: 40px; height: 40px; }
}
@media (max-width: 500px) {
    .zlabs-header-logo { width: 70px; height: 56px; }
    .zlabs-header-logo .zlabs-logo-art { width: 50px; height: 50px; }
    .zlabs-logo-smoke { top: 8px; width: 54px; height: 54px; }
    .zlabs-logo-smoke > span { left: 16px; width: 23px; height: 26px; }
}
@media (prefers-reduced-motion: reduce) {
    .zlabs-header-logo *, .zlabs-header-logo img { animation: none !important; transition: none !important; }
    .zlabs-logo-smoke { display: none; }
}
