/* Zucik — pływająca naklejka + czat. Kolory z motywu aplikacji (style.css: --bg-solid, --text, --accent, --glass-*). */
#zk-root{--zk-c1:#22b573;--zk-c2:#1e9bd7;--zk-c3:#1f4e9c;position:fixed;right:16px;bottom:16px;z-index:2147483000;font-family:'Inter',-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;color:var(--text,#eaeaf0);pointer-events:none}
#zk-root *{box-sizing:border-box}
.zk-s1{stop-color:var(--zk-c1)}.zk-s2{stop-color:var(--zk-c2)}.zk-s3{stop-color:var(--zk-c3)}
#zk-root.zk-inroom{position:absolute}   /* pokoik: naklejka w pudełku, nie na całym ekranie */
#zk-root button{font-family:inherit}

/* naklejka: #zk-fab (translate przy ciągnięciu/locie) > .zk-bot (obrót, hover, squash) > svg (.zk-eyes/.zk-eye, .zk-screen) */
#zk-fab{pointer-events:auto;width:64px;height:64px;border:0;background:transparent;padding:0;cursor:grab;position:relative;display:block;margin-left:auto;
  filter:drop-shadow(0 6px 14px rgba(0,0,0,.35));touch-action:none;user-select:none;-webkit-user-select:none;-webkit-tap-highlight-color:transparent;will-change:transform}
#zk-fab:focus-visible{outline:3px solid var(--accent-text,#7aa7ff);outline-offset:4px;border-radius:18px}
#zk-fab::before{content:'';position:absolute;inset:-6px;border-radius:50%}            /* obszar łapania (pseudo-element liczy się do hit-testu) */
#zk-root.zk-fly #zk-fab::before{inset:-36px}                                          /* w locie łatwiej złapać */
#zk-fab .zk-hp{position:absolute;left:10px;top:-10px;width:44px;height:6px;border-radius:4px;background:rgba(0,0,0,.5);border:1px solid rgba(255,255,255,.3);overflow:hidden;opacity:0;transition:opacity .3s;pointer-events:none}
#zk-fab .zk-hp i{display:block;height:100%;width:100%;background:#3fd47a;transition:width .2s,background .2s}
#zk-root.zk-dmgd .zk-hp{opacity:1}
/* combo łapania w locie (Zucik, Uamek): plakietka nad naklejką, nie obraca się z koziołkami (.zk-bot) */
#zk-fab .zk-combo{position:absolute;left:50%;top:-36px;transform:translateX(calc(-50% + var(--zkdx,0px))) scale(.6);white-space:nowrap;font:800 12px/1 'Inter',-apple-system,'Segoe UI',sans-serif;letter-spacing:.04em;
  color:#1a1300;background:linear-gradient(135deg,#ffe066,#ffb020);padding:5px 9px;border-radius:999px;box-shadow:0 2px 12px rgba(255,176,32,.45);opacity:0;pointer-events:none;transition:opacity .15s,transform .15s}
#zk-fab .zk-combo.zk-on{opacity:1;transform:translateX(calc(-50% + var(--zkdx,0px))) scale(1)}
#zk-fab .zk-combo.zk-pop{animation:zk-combopop .35s cubic-bezier(.2,1.6,.4,1)}
#zk-fab .zk-combo.zk-c2{background:linear-gradient(135deg,#ffb020,#ff6a3d);color:#fff}
#zk-fab .zk-combo.zk-c3{background:linear-gradient(135deg,#ff4d6d,#a855f7);color:#fff;box-shadow:0 0 16px rgba(168,85,247,.75)}
#zk-fab .zk-combo.zk-end{animation:zk-comboend 1.6s ease-out forwards}
.zk-bot{position:relative;display:block;width:64px;height:64px;transition:transform .25s cubic-bezier(.2,.8,.3,1.4)}
#zk-fab:hover .zk-bot{transform:scale(1.06) rotate(-3deg)}
#zk-fab svg{width:64px;height:64px;display:block;overflow:visible;animation:zk-bob 3.4s ease-in-out infinite}
.zk-eye,.zk-eyes{transform-box:fill-box}
.zk-eye{transform-origin:50% 85%;animation:zk-blink 5.5s infinite}
.zk-eye:last-child{animation-delay:.05s}
.zk-eyes{transform-origin:center;animation:zk-glance 9s ease-in-out infinite}
.zk-eye-o,.zk-eye-h,.zk-eye-x{transition:opacity .15s}
.zk-screen{transition:fill .15s}
#zk-fab .zk-ring{position:absolute;left:-2px;top:6px;width:68px;height:52px;border-radius:19px;border:3px solid var(--accent-text,#7aa7ff);opacity:0;pointer-events:none}
#zk-fab .zk-dot{position:absolute;top:2px;right:2px;width:12px;height:12px;border-radius:50%;background:#f85149;border:2px solid var(--bg-solid,#121218);display:none}
#zk-root.zk-unread .zk-dot{display:block}
#zk-root.zk-hello #zk-fab .zk-ring{animation:zk-pulse 1.6s ease-out 3}
#zk-root.zk-hello .zk-bot{animation:zk-wiggle 1.2s ease-in-out 2}
#zk-root.zk-hello .zk-eye-o,#zk-root.zk-mood-happy .zk-eye-o{opacity:0}
#zk-root.zk-hello .zk-eye-h,#zk-root.zk-mood-happy .zk-eye-h{opacity:1}
/* ciągnięcie i lot: szeroko otwarte oczy, bez kiwania; powrót do domu płynny */
#zk-root.zk-grab #zk-fab{cursor:grabbing}
#zk-root.zk-grab #zk-fab svg,#zk-root.zk-fly #zk-fab svg,#zk-root.zk-grab .zk-eyes,#zk-root.zk-fly .zk-eyes{animation:none}
#zk-root.zk-grab .zk-eye,#zk-root.zk-fly .zk-eye{animation:none;transform:scale(1.12)}
#zk-root.zk-grab .zk-bot,#zk-root.zk-fly .zk-bot{transition:none}
#zk-root.zk-home #zk-fab,#zk-root.zk-home .zk-bot{transition:transform .7s cubic-bezier(.2,.9,.3,1.15)}
/* obrażenia: zmrużone oczy, ekran błyska na czerwono, zgniecenie; po serii mocnych uderzeń oczy „x x” i zamroczenie */
#zk-root.zk-hurt .zk-eye{animation:none;transform:scaleY(.22)}
#zk-root.zk-hurt .zk-screen{fill:#4a1222}
#zk-root.zk-hurt .zk-bot{animation:zk-squash .32s ease-out}
#zk-root.zk-ko .zk-eye{animation:none;transform:none}
#zk-root.zk-ko .zk-eye-o,#zk-root.zk-ko .zk-eye-h{opacity:0}
#zk-root.zk-ko .zk-eye-x{opacity:1}
#zk-root.zk-ko #zk-fab svg{animation:none;filter:saturate(.4) brightness(.8)}
#zk-root.zk-ko .zk-bot{transition:none}
#zk-root.zk-revive .zk-bot{transition:transform .5s cubic-bezier(.2,.9,.3,1.2)}
.zk-dmg{position:fixed;z-index:2147482999;font:700 13px/1 'Inter',-apple-system,'Segoe UI',sans-serif;color:#ff6b6b;text-shadow:0 1px 3px rgba(0,0,0,.8);pointer-events:none;animation:zk-dmg .85s ease-out forwards}
/* oczy za kursorem (inline transform na .zk-eyes; rozglądanie się wyłączone) */
#zk-root.zk-look .zk-eyes{animation:none}
/* napis nad głową przy nokaucie */
#zk-fab .zk-404{position:absolute;left:50%;top:-32px;transform:translateX(-50%);font:700 11px/1 'JetBrains Mono','Consolas',monospace;letter-spacing:1px;color:#ff4d4d;background:#0b0c18;border:1px solid #ff4d4d;padding:3px 5px;white-space:nowrap;opacity:0;pointer-events:none;transition:opacity .2s}
#zk-root.zk-ko .zk-404{opacity:1;animation:zk-flick .5s steps(2) infinite}
/* ośmiobitowe uszkodzenia strony w miejscu uderzenia */
.zk-crack{position:fixed;left:0;top:0;z-index:2147482998;pointer-events:none;animation:zk-crackfade 4.2s linear forwards}
.zk-crack i{position:fixed;display:block;outline:1px solid var(--zk-c1);outline-offset:0;animation:zk-flick .4s steps(2) infinite}
/* zajęcia w wolnym czasie: etykieta nad głową, oczy wg zajęcia, sen z Z-tami */
#zk-fab .zk-tag{position:absolute;right:0;top:-32px;max-width:230px;white-space:nowrap;font:600 12px/1 'Inter',-apple-system,'Segoe UI',sans-serif;color:var(--text,#eaeaf0);background:var(--glass-modal-solid,rgba(22,22,32,.97));border:1px solid var(--glass-border-light,rgba(255,255,255,.12));border-radius:10px 10px 2px 10px;padding:6px 9px;opacity:0;transform:translateY(4px);transition:opacity .25s,transform .25s;pointer-events:none}
#zk-root.zk-busy .zk-tag{opacity:1;transform:none}
#zk-root.zk-open .zk-tag{display:none}   /* przy otwartym czacie tekst zajęcia jest w dymku myślenia */
.zk-think .zk-think-txt{margin-left:8px;font-size:13px;color:var(--text-secondary,#a2a2b8)}
.zk-think .zk-think-txt.zk-tt::after{content:'';display:inline-block;width:2px;height:1em;margin-left:2px;vertical-align:-2px;background:var(--accent-text,#7aa7ff);animation:zk-caret .7s steps(2) infinite}
#zk-fab .zk-zzz{position:absolute;left:46px;top:-4px;pointer-events:none}
#zk-fab .zk-zzz b{position:absolute;left:0;top:0;font:700 14px/1 'Inter',sans-serif;color:var(--accent-text,#7aa7ff);opacity:0;animation:zk-z 2.4s ease-out infinite}
#zk-fab .zk-zzz b:nth-child(2){animation-delay:.8s;font-size:16px}
#zk-fab .zk-zzz b:nth-child(3){animation-delay:1.6s;font-size:18px}
#zk-root.zk-act-scan .zk-eyes{animation:zk-scan 1.1s ease-in-out infinite}
#zk-root.zk-act-read .zk-eyes{animation:zk-read 2.4s ease-in-out infinite}
#zk-root.zk-act-type .zk-eyes{animation:none;transform:translateY(3px)}
#zk-root.zk-act-type .zk-eye{animation:zk-blink 1.2s infinite}
#zk-root.zk-act-happy .zk-eye-o{opacity:0}
#zk-root.zk-act-happy .zk-eye-h{opacity:1}
#zk-root.zk-act-squint .zk-eye{animation:none;transform:scaleY(.45)}
#zk-root.zk-act-sleep .zk-eye{animation:none;transform:scaleY(.1)}
#zk-root.zk-act-sleep .zk-eyes{animation:none}
#zk-root.zk-act-sleep #zk-fab svg{animation:zk-bob 4.5s ease-in-out infinite}
#zk-root.zk-act-sleep .zk-bot{transform:rotate(7deg)}
/* kręci mu się w głowie: oczy krążą, głowa się chwieje, dookoła latają piksele (steps = ośmiobitowo) */
#zk-fab .zk-orbit{position:absolute;left:32px;top:30px;width:0;height:0;pointer-events:none}
#zk-fab .zk-orbit i{position:absolute;left:-3px;top:-3px;width:6px;height:6px;background:var(--zk-c1);box-shadow:0 0 4px var(--zk-c1);animation:zk-orbit 1.1s steps(14) infinite}
#zk-fab .zk-orbit i:nth-child(1){--r:30px}
#zk-fab .zk-orbit i:nth-child(2){--r:37px;animation-delay:-.22s;background:var(--zk-c3);box-shadow:0 0 4px var(--zk-c3)}
#zk-fab .zk-orbit i:nth-child(3){--r:33px;animation-delay:-.44s;background:#f4f8ff;width:4px;height:4px}
#zk-fab .zk-orbit i:nth-child(4){--r:40px;animation-delay:-.66s;background:var(--zk-c2);animation-duration:1.3s}
#zk-fab .zk-orbit i:nth-child(5){--r:28px;animation-delay:-.88s;background:var(--zk-c3);width:4px;height:4px;animation-duration:.9s}
/* kręci mu się w głowie: oczy krążą, głowa się chwieje */
#zk-root.zk-dizzy .zk-eyes{animation:zk-dizzy .55s linear infinite}
#zk-root.zk-dizzy .zk-eye{animation:none;transform:scale(.8)}
#zk-root.zk-dizzy #zk-fab svg{animation:zk-wobble 1.2s ease-in-out infinite}
/* pisanie odpowiedzi: kursor na końcu tekstu, oczy czytają */
.zk-m.zk-typing{cursor:pointer}
.zk-m.zk-typing::after{content:'';display:inline-block;width:2px;height:1em;margin-left:2px;vertical-align:-2px;background:var(--accent-text,#7aa7ff);animation:zk-caret .7s steps(2) infinite}
#zk-root.zk-typing .zk-eyes{animation:zk-read 1.4s ease-in-out infinite}
@keyframes zk-caret{50%{opacity:0}}
/* głaskany: szczęśliwe oczy, kołysze się w rytm */
#zk-root.zk-pet .zk-eye-o{opacity:0}
#zk-root.zk-pet .zk-eye-h{opacity:1}
#zk-root.zk-pet .zk-eye{animation:none}
#zk-root.zk-pet #zk-fab svg{animation:zk-petsway 1.1s ease-in-out infinite}
/* nastroje: myśli (oczy skanują), cieszy się (uśmiech + podskok), czkawka (trzęsie się) */
#zk-root.zk-mood-think .zk-eyes{animation:zk-scan 1.1s ease-in-out infinite}
#zk-root.zk-mood-think .zk-eye{animation:none;transform:scale(.72)}
#zk-root.zk-mood-happy .zk-bot{animation:zk-hop .45s ease-out 2}
#zk-root.zk-mood-oops .zk-bot{animation:zk-shake .5s}
#zk-root.zk-mood-oops .zk-eye-o:first-child{fill:#ffb08a}

/* nieśmiertelny (CFG.safe — Portier na stronie głównej): bez paska HP; wirnik z pikseli przy szybkim upadku; poduszka powietrzna na uderzanym boku */
#zk-root.zk-safe .zk-hp{display:none}
#zk-fab .zk-rotor{position:absolute;left:32px;top:-13px;width:0;height:0;opacity:0;pointer-events:none;transition:opacity .12s}
#zk-fab .zk-rotor b{position:absolute;left:-2px;top:3px;width:4px;height:12px;background:#c9d2e6;outline:1px solid #0b0c18}                 /* maszt */
#zk-fab .zk-rotor i{position:absolute;left:-27px;top:0;width:54px;height:5px;background:#f4f8ff;outline:1px solid #0b0c18;box-shadow:0 0 6px rgba(255,255,255,.55);animation:zk-rotor .2s steps(3) infinite}
#zk-root.zk-rotor .zk-rotor{opacity:1}
#zk-root.zk-rotor #zk-fab svg{animation:zk-hang .5s ease-in-out infinite}
#zk-root.zk-rotor .zk-eye{animation:none;transform:scale(1.04)}
#zk-fab .zk-cush{position:absolute;display:none;background:var(--zk-c2);outline:2px solid #0b0c18;box-shadow:inset 0 0 0 3px rgba(255,255,255,.4),0 0 10px var(--zk-c2);border-radius:3px;pointer-events:none;animation:zk-puff .65s steps(5) forwards}
#zk-root[class*="zk-cush-"] .zk-cush{display:block}
#zk-root.zk-cush-l .zk-cush{left:-13px;top:12px;width:15px;height:40px;transform-origin:100% 50%}
#zk-root.zk-cush-r .zk-cush{right:-13px;top:12px;width:15px;height:40px;transform-origin:0 50%}
#zk-root.zk-cush-t .zk-cush{left:12px;top:-13px;width:40px;height:15px;transform-origin:50% 100%}
#zk-root.zk-cush-b .zk-cush{left:12px;bottom:-13px;width:40px;height:15px;transform-origin:50% 0}
#zk-root[class*="zk-cush-"] .zk-eye{animation:none;transform:scaleY(.6)}      /* tylko lekkie zmrużenie, bez obrażeń */
/* czapka absolwenta (CFG.cap, jak w logo): lekko podskakuje w locie */
#zk-root .zk-cap{transform-box:fill-box;transform-origin:50% 100%}
#zk-root.zk-fly .zk-cap,#zk-root.zk-grab .zk-cap{animation:zk-capbob .5s ease-in-out infinite}

/* dymek powitania */
#zk-bubble{pointer-events:auto;position:absolute;right:76px;bottom:8px;width:max-content;max-width:min(300px,calc(100vw - 110px));background:var(--glass-modal-solid,rgba(22,22,32,.97));
  border:1px solid var(--glass-border-light,rgba(255,255,255,.12));border-radius:16px 16px 4px 16px;padding:12px 36px 12px 14px;font-size:14px;line-height:1.4;
  box-shadow:var(--shadow-md,0 8px 32px rgba(0,0,0,.35));opacity:0;transform:translateY(8px) scale(.96);transition:opacity .3s,transform .3s;cursor:pointer}
#zk-bubble.zk-on{opacity:1;transform:none}
#zk-bubble b{display:block;font-weight:600;margin-bottom:2px}
#zk-bubble .zk-x{position:absolute;top:6px;right:6px;width:26px;height:26px;border:0;border-radius:50%;background:transparent;color:var(--text-secondary,#a2a2b8);font-size:18px;line-height:1;cursor:pointer}
#zk-bubble .zk-x:hover{background:var(--glass-hover,rgba(255,255,255,.07));color:var(--text,#eaeaf0)}

/* panel czatu */
#zk-panel{pointer-events:auto;position:absolute;right:0;bottom:76px;width:min(380px,calc(100vw - 32px));height:min(560px,calc(100vh - 110px));display:none;flex-direction:column;
  background:linear-gradient(var(--glass-bg-heavy,rgba(255,255,255,.05)),var(--glass-bg-heavy,rgba(255,255,255,.05))) var(--bg-solid,#121218);border:1px solid var(--glass-border-light,rgba(255,255,255,.12));border-radius:18px;box-shadow:var(--shadow-lg,0 20px 60px rgba(0,0,0,.45));overflow:hidden}
@supports (height:1dvh){#zk-panel{height:min(560px,calc(100dvh - 110px))}}
#zk-root.zk-open #zk-panel{display:flex;animation:zk-in .22s ease-out}
#zk-root.zk-open #zk-bubble{display:none}
.zk-head{display:flex;align-items:center;gap:10px;padding:12px 12px 10px 14px;border-bottom:1px solid var(--glass-border,rgba(255,255,255,.08))}
.zk-head svg{width:34px;height:34px;flex:none;overflow:visible}
.zk-head b{display:block;font-size:15px;font-weight:600}
.zk-head small{display:block;font-size:12px;color:var(--text-secondary,#a2a2b8)}
.zk-head .zk-close{margin-left:auto;width:32px;height:32px;border:0;border-radius:50%;background:transparent;color:var(--text-secondary,#a2a2b8);font-size:20px;cursor:pointer}
.zk-head .zk-close:hover{background:var(--glass-hover,rgba(255,255,255,.07));color:var(--text,#eaeaf0)}
.zk-msgs{flex:1;overflow:auto;padding:12px;display:flex;flex-direction:column;gap:8px;scroll-behavior:smooth}
.zk-m{max-width:88%;padding:9px 12px;border-radius:14px;font-size:14px;line-height:1.45;white-space:pre-wrap;word-break:break-word}
.zk-m.zk-u{align-self:flex-end;background:var(--accent,#1d4ed8);color:#fff;border-bottom-right-radius:4px}
.zk-m.zk-a{align-self:flex-start;background:var(--glass-bg-heavy,rgba(255,255,255,.05));border:1px solid var(--glass-border,rgba(255,255,255,.08));border-bottom-left-radius:4px}
.zk-m.zk-err{align-self:flex-start;background:rgba(248,81,73,.12);border:1px solid rgba(248,81,73,.35)}
.zk-think{align-self:flex-start;display:flex;gap:4px;padding:10px 14px}
.zk-think i{width:6px;height:6px;border-radius:50%;background:var(--text-secondary,#a2a2b8);animation:zk-dots 1.2s infinite}
.zk-think i:nth-child(2){animation-delay:.2s}.zk-think i:nth-child(3){animation-delay:.4s}
.zk-act,.zk-lead{align-self:flex-start;max-width:92%;border:1px dashed var(--accent-text,#7aa7ff);border-radius:12px;padding:10px 12px;font-size:13px}
.zk-act ul{margin:6px 0 10px 16px;padding:0}
.zk-act li{margin:2px 0}
.zk-act .zk-row,.zk-lead .zk-row{display:flex;gap:8px}
.zk-act button,.zk-lead button{border:1px solid var(--glass-border-light,rgba(255,255,255,.12));background:transparent;color:var(--text,#eaeaf0);border-radius:999px;padding:7px 14px;font-size:13px;font-weight:600;cursor:pointer}
.zk-act button.zk-yes,.zk-lead button.zk-yes{background:var(--accent,#1d4ed8);border-color:var(--accent,#1d4ed8);color:#fff}
.zk-act button:hover,.zk-lead button:hover{filter:brightness(1.1)}
.zk-act.zk-done{opacity:.6}
.zk-act.zk-done .zk-row{display:none}
.zk-act .zk-state,.zk-lead .zk-state{font-size:12px;color:var(--text-secondary,#a2a2b8);margin-top:4px}
/* „proszę zostawić adres e-mail” — pole w czacie (Portier) */
.zk-lead{display:grid;gap:8px;width:92%}
.zk-lead label{display:grid;gap:4px;color:var(--text-secondary,#a2a2b8)}
.zk-lead input{background:var(--glass-input,rgba(255,255,255,.04));border:1px solid var(--glass-border-light,rgba(255,255,255,.12));border-radius:10px;padding:9px 12px;color:var(--text,#eaeaf0);font:inherit;font-size:14px;outline:none;min-width:0;width:100%}
.zk-lead input:focus{border-color:var(--accent-text,#7aa7ff);box-shadow:0 0 0 3px var(--ring,rgba(29,78,216,.3))}
.zk-lead small{color:var(--text-secondary,#a2a2b8);font-size:11px}
.zk-lead.zk-done label,.zk-lead.zk-done .zk-row,.zk-lead.zk-done small{display:none}
.zk-chips{display:flex;gap:6px;flex-wrap:wrap;padding:0 12px 8px}
.zk-chips button{border:1px solid var(--glass-border-light,rgba(255,255,255,.12));background:var(--glass-bg,rgba(255,255,255,.03));color:var(--text,#eaeaf0);border-radius:999px;padding:6px 11px;font-size:12px;cursor:pointer}
.zk-chips button:hover{background:var(--glass-hover,rgba(255,255,255,.07))}
.zk-form{display:flex;gap:8px;padding:10px 12px 12px;border-top:1px solid var(--glass-border,rgba(255,255,255,.08))}
.zk-form input{flex:1;min-width:0;background:var(--glass-input,rgba(255,255,255,.04));border:1px solid var(--glass-border-light,rgba(255,255,255,.12));border-radius:999px;padding:10px 14px;color:var(--text,#eaeaf0);font:inherit;font-size:14px;outline:none}
.zk-form input:focus{border-color:var(--accent-text,#7aa7ff);box-shadow:0 0 0 3px var(--ring,rgba(29,78,216,.3))}
.zk-form button{width:42px;height:42px;border:0;border-radius:50%;background:var(--accent,#1d4ed8);color:#fff;cursor:pointer;display:grid;place-items:center;flex:none}
.zk-form button:disabled{opacity:.5;cursor:default}
.zk-form button svg{width:18px;height:18px}
.zk-foot{font-size:11px;color:var(--text-secondary,#a2a2b8);padding:0 14px 10px;text-align:center}
.zk-foot a{color:inherit}

/* filtr nałożony na plan */
.zk-hide{display:none!important}
#zk-filterbar{display:none;align-items:center;gap:10px;margin:0 0 10px;padding:8px 12px;border-radius:12px;border:1px dashed var(--accent-text,#7aa7ff);font-size:13px;color:var(--text,#eaeaf0)}
#zk-filterbar.zk-on{display:flex}
#zk-filterbar button{margin-left:auto;border:0;background:transparent;color:var(--accent-text,#7aa7ff);font:inherit;font-weight:600;cursor:pointer;text-decoration:underline}
.zk-day{background:rgba(29,78,216,.14)!important;background:color-mix(in srgb,var(--accent,#1d4ed8) 16%,transparent)!important;transition:background .3s}
.zk-spot{outline:3px solid var(--accent-text,#7aa7ff)!important;outline-offset:2px;border-radius:10px;animation:zk-spot 1.2s ease-out 3}

@keyframes zk-bob{0%,100%{transform:translateY(0)}50%{transform:translateY(-2.5px)}}
@keyframes zk-glance{0%,38%,62%,100%{transform:translateX(0)}44%,56%{transform:translateX(3px)}78%,88%{transform:translateX(-3px)}}
@keyframes zk-squash{0%{transform:scale(1.22,.8)}55%{transform:scale(.94,1.08)}100%{transform:scale(1)}}
@keyframes zk-wobble{0%,100%{transform:rotate(0)}20%{transform:rotate(-8deg)}40%{transform:rotate(7deg)}60%{transform:rotate(-5deg)}80%{transform:rotate(3deg)}}
@keyframes zk-orbit{from{transform:rotate(0) translateX(var(--r,34px)) rotate(0)}to{transform:rotate(360deg) translateX(var(--r,34px)) rotate(-360deg)}}
@keyframes zk-petsway{0%,100%{transform:rotate(-4deg) translateY(0)}50%{transform:rotate(4deg) translateY(-2px)}}
@keyframes zk-dizzy{0%{transform:translate(0,-3px)}25%{transform:translate(3px,0)}50%{transform:translate(0,3px)}75%{transform:translate(-3px,0)}100%{transform:translate(0,-3px)}}
@keyframes zk-z{0%{opacity:0;transform:translate(0,0) scale(.7)}20%{opacity:1}100%{opacity:0;transform:translate(18px,-36px) scale(1.2)}}
@keyframes zk-read{0%,100%{transform:translate(-4px,2px)}45%{transform:translate(4px,2px)}50%{transform:translate(-4px,3px)}95%{transform:translate(4px,3px)}}
@keyframes zk-flick{0%,100%{opacity:1}50%{opacity:.12}}
@keyframes zk-crackfade{0%,72%{opacity:1}100%{opacity:0}}
@keyframes zk-combopop{0%{transform:translateX(calc(-50% + var(--zkdx,0px))) scale(1.55)}100%{transform:translateX(calc(-50% + var(--zkdx,0px))) scale(1)}}
@keyframes zk-comboend{0%{transform:translateX(calc(-50% + var(--zkdx,0px))) scale(1.25)}20%{transform:translateX(calc(-50% + var(--zkdx,0px))) scale(1)}75%{opacity:1}100%{opacity:0;transform:translateX(calc(-50% + var(--zkdx,0px))) translateY(-10px) scale(1)}}
@keyframes zk-dmg{from{opacity:1;transform:translateY(0) scale(1)}to{opacity:0;transform:translateY(-30px) scale(1.25)}}
@keyframes zk-scan{0%,100%{transform:translateX(-4px)}50%{transform:translateX(4px)}}
@keyframes zk-hop{50%{transform:translateY(-7px)}}
@keyframes zk-shake{0%,100%{transform:translateX(0)}25%{transform:translateX(-4px)}75%{transform:translateX(4px)}}
@keyframes zk-blinkdot{50%{opacity:.25}}
@keyframes zk-pulse{0%{transform:scale(1);opacity:.9}100%{transform:scale(1.45);opacity:0}}
@keyframes zk-wiggle{0%,100%{transform:rotate(0)}20%{transform:rotate(-10deg)}40%{transform:rotate(9deg)}60%{transform:rotate(-6deg)}80%{transform:rotate(4deg)}}
@keyframes zk-blink{0%,92%,100%{transform:scaleY(1)}95%{transform:scaleY(.1)}}
@keyframes zk-in{from{opacity:0;transform:translateY(10px) scale(.97)}to{opacity:1;transform:none}}
@keyframes zk-dots{0%,80%,100%{transform:translateY(0);opacity:.5}40%{transform:translateY(-4px);opacity:1}}
@keyframes zk-spot{0%{outline-color:transparent}50%{outline-color:var(--accent-text,#7aa7ff)}100%{outline-color:transparent}}
@keyframes zk-rotor{0%{transform:scaleX(1)}33%{transform:scaleX(.12)}66%{transform:scaleX(.62)}100%{transform:scaleX(1)}}
@keyframes zk-hang{0%,100%{transform:translateY(0) rotate(-1.5deg)}50%{transform:translateY(1.5px) rotate(1.5deg)}}
@keyframes zk-puff{0%{transform:scale(.15);opacity:1}30%{transform:scale(1.2);opacity:1}70%{transform:scale(1);opacity:1}100%{transform:scale(.5);opacity:0}}
@keyframes zk-capbob{50%{transform:translateY(-1.5px) rotate(-3deg)}}
@media (prefers-reduced-motion:reduce){#zk-root *,#zk-root{animation:none!important;transition:none!important}}
@media (max-width:480px){#zk-root{right:12px;bottom:12px}#zk-panel{bottom:72px;height:min(560px,calc(100vh - 96px))}@supports (height:1dvh){#zk-panel{height:min(560px,calc(100dvh - 96px))}}}
