/* LEXI · праздничное завершение раунда (2026-11-05, celebrate.js). Только transform/opacity — плавно на телефонах. */
.lx-celebrate{position:relative;scroll-margin-top:96px}
.lxc-stage{position:relative;display:flex;flex-direction:column;align-items:center;gap:4px;padding-top:6px;isolation:isolate}
.lxc-cat{position:relative;z-index:1;width:200px;height:200px;transform-origin:50% 100%}
.lxc-cat .result-mascot{display:block;width:100%!important;height:100%!important;margin:0!important;object-fit:contain}
.lxc-phrase{position:relative;z-index:2;margin:-6px auto 6px;max-width:min(440px,100%);padding:11px 18px;border-radius:18px;background:#fff;border:1px solid #e2e8f7;box-shadow:0 10px 24px -14px rgba(27,42,107,.45);font:800 clamp(16px,4.4vw,19px)/1.35 var(--w-text,inherit);color:var(--w-ink,#141b3d);text-wrap:balance;animation:lxcPop .45s cubic-bezier(.2,1.4,.4,1) .15s both}
.lxc-phrase::before{content:"";position:absolute;left:50%;top:-8px;width:14px;height:14px;background:#fff;border-left:1px solid #e2e8f7;border-top:1px solid #e2e8f7;transform:translateX(-50%) rotate(45deg)}
.lxc-perfect .lxc-phrase,.lxc-boss .lxc-phrase{background:linear-gradient(120deg,#fffbe6,#f3ffe0);border-color:#e9e2a8}
.lxc-perfect .lxc-phrase::before,.lxc-boss .lxc-phrase::before{background:#fffbe6;border-color:#e9e2a8}
.lxc-jump{animation:lxcJump .9s cubic-bezier(.3,.7,.4,1) .05s 2 both}
.lxc-wave{animation:lxcSway 1.6s ease-in-out .1s 2 both}
.lxc-confetti{position:absolute;inset:-10px -8px auto;height:330px;overflow:hidden;pointer-events:none;z-index:3}
.lxc-confetti i{position:absolute;top:-14px;width:7px;height:12px;border-radius:2px;opacity:0;animation-name:lxcFall;animation-timing-function:cubic-bezier(.25,.6,.5,1);animation-fill-mode:forwards;will-change:transform,opacity}
.lxc-achievements{list-style:none;display:flex;flex-wrap:wrap;justify-content:center;gap:8px;margin:0 0 14px;padding:0}
.lxc-achievements li{display:inline-flex;align-items:center;gap:7px;padding:8px 13px;border-radius:999px;background:#eefaf3;border:1px solid #cfeedd;color:#1f6b50;font:800 14px/1.25 var(--w-text,inherit);animation:lxcPop .4s ease-out .35s both}
.lxc-ico{font-size:16px;line-height:1}
.lx-celebrate>.result-actions{margin-top:6px}
@keyframes lxcPop{from{opacity:0;transform:scale(.85) translateY(6px)}to{opacity:1;transform:none}}
@keyframes lxcJump{0%{transform:translateY(0) scale(1)}18%{transform:translateY(0) scale(1.04,.94)}45%{transform:translateY(-18px) scale(.98,1.03)}70%{transform:translateY(0) scale(1.03,.97)}100%{transform:none}}
@keyframes lxcSway{0%,100%{transform:rotate(0)}25%{transform:rotate(-4deg)}75%{transform:rotate(4deg)}}
@keyframes lxcFall{0%{opacity:1;transform:translate3d(0,0,0) rotate(0)}85%{opacity:1}100%{opacity:0;transform:translate3d(var(--dx,0),320px,0) rotate(var(--rot,360deg))}}
@media (max-width:600px){
 .lxc-cat{width:140px;height:140px}
 .lxc-confetti{height:260px}
 .lx-celebrate h2{margin-top:2px!important}
}
@media (prefers-reduced-motion:reduce){.lxc-jump,.lxc-wave,.lxc-phrase,.lxc-achievements li{animation:none!important}.lxc-confetti{display:none}}
body.calm .lxc-confetti{display:none}
/* на телефоне во время игры уведомления Лекси — сверху, чтобы не закрывать кнопки ответа и «Следующий раунд» */
@media (max-width:600px){body[data-page="play"] .lexi-toasts{bottom:auto;top:calc(78px + env(safe-area-inset-top))}}
