/* Лингора wardrobe 2026-09-30 */
/* skins: body gradient of every Лори (first gradient = body) */
svg[data-wd-skin="mint"] > defs > linearGradient:first-of-type > stop:first-child { stop-color: #7EE0B8; }
svg[data-wd-skin="mint"] > defs > linearGradient:first-of-type > stop:last-child { stop-color: #1FA38A; }
svg[data-wd-skin="ocean"] > defs > linearGradient:first-of-type > stop:first-child { stop-color: #7CC4FF; }
svg[data-wd-skin="ocean"] > defs > linearGradient:first-of-type > stop:last-child { stop-color: #3A58E0; }
svg[data-wd-skin="rainbow"] > defs > linearGradient:first-of-type > stop:first-child { stop-color: #FF8FC8; }
svg[data-wd-skin="rainbow"] > defs > linearGradient:first-of-type > stop:last-child { stop-color: #7C5CFF; }
svg[data-wd-skin="aurora"] > defs > linearGradient:first-of-type > stop:first-child { stop-color: #6FE3F0; }
svg[data-wd-skin="aurora"] > defs > linearGradient:first-of-type > stop:last-child { stop-color: #8B2FD9; }
svg[data-wd-skin="dots"] > defs > linearGradient:first-of-type > stop:first-child { stop-color: #FF9BD0; }
svg[data-wd-skin="dots"] > defs > linearGradient:first-of-type > stop:last-child { stop-color: #C2268E; }
svg[data-wd-skin="stars"] > defs > linearGradient:first-of-type > stop:first-child { stop-color: #8F7CFF; }
svg[data-wd-skin="stars"] > defs > linearGradient:first-of-type > stop:last-child { stop-color: #3B2A8F; }
svg[data-wd-skin="autumn"] > defs > linearGradient:first-of-type > stop:first-child { stop-color: #FFC15E; }
svg[data-wd-skin="autumn"] > defs > linearGradient:first-of-type > stop:last-child { stop-color: #E2553A; }
svg[data-wd-skin="snow"] > defs > linearGradient:first-of-type > stop:first-child { stop-color: #CFE8FF; }
svg[data-wd-skin="snow"] > defs > linearGradient:first-of-type > stop:last-child { stop-color: #6C8CFF; }
svg[data-wd-skin="gold"] > defs > linearGradient:first-of-type > stop:first-child { stop-color: #FFE08A; }
svg[data-wd-skin="gold"] > defs > linearGradient:first-of-type > stop:last-child { stop-color: #E09A1F; }
svg[data-wd-skin="galaxy"] > defs > linearGradient:first-of-type > stop:first-child { stop-color: #4C3AB0; }
svg[data-wd-skin="galaxy"] > defs > linearGradient:first-of-type > stop:last-child { stop-color: #14093A; }
svg[data-wd-hat] > g.lc { display: none; }
svg .wd-l { pointer-events: none; }
.wd-rel { position: relative; }
.wd-friend { position: absolute; right: -4%; bottom: -2%; width: 44%; height: 44%; pointer-events: none; animation: wdHop 2.8s ease-in-out infinite; }
.wd-friend svg { width: 100%; height: 100%; display: block; animation: none !important; }
.wd-friend svg * { animation: none; }
@keyframes wdHop { 0%, 100% { transform: translateY(0); } 40% { transform: translateY(-9%) rotate(-5deg); } 55% { transform: none; } }
.wd-float { animation: wdFloat 3s ease-in-out infinite; transform-box: fill-box; transform-origin: center; }
@keyframes wdFloat { 50% { transform: translateY(-3px) rotate(6deg); } }
.wd-tw { animation: wdTw 1.6s ease-in-out infinite; transform-box: fill-box; transform-origin: center; }
@keyframes wdTw { 50% { opacity: .2; transform: scale(.6); } }

/* profile card */
.wd-card { display: flex; align-items: center; gap: 14px; width: 100%; min-height: 88px; padding: 14px 16px; margin-top: 12px; text-align: left; font: inherit; color: var(--ink); cursor: pointer;
  border: 2px solid var(--line-2); background: linear-gradient(135deg, rgba(139, 47, 217, .12), rgba(255, 111, 181, .14)); }
.wd-card:active { transform: scale(.98); }
.wd-card-lori.mascot { width: 68px; height: 68px; flex: 0 0 68px; }
.wd-card-t { display: flex; flex-direction: column; min-width: 0; flex: 1 1 auto; }
.wd-card-go { font-size: 30px; font-weight: 800; color: var(--pink); }

/* overlay */
.wd { position: fixed; inset: 0; z-index: 56; display: flex; flex-direction: column; background: var(--bg);
  background-image: radial-gradient(120% 60% at 100% 0%, var(--bg-glow-2), transparent 60%), radial-gradient(100% 50% at 0% 100%, var(--bg-glow-1), transparent 60%);
  padding: max(8px, env(safe-area-inset-top)) 14px max(12px, env(safe-area-inset-bottom)); animation: onbIn .3s var(--ease-out, ease) both; overflow: hidden; }
.wd.out { animation: onbOut .2s ease both; }
.wd-count { font-weight: 800; color: var(--muted); font-size: 14px; }
.wd-stage { display: grid; place-items: center; height: clamp(104px, 24vh, 180px); flex: 0 0 auto; border-radius: 24px; margin: 4px 0 10px;
  background: radial-gradient(60% 70% at 50% 60%, rgba(255, 111, 181, .25), transparent 70%); }
.wd-hero.mascot { width: clamp(110px, 34vw, 160px); height: clamp(110px, 34vw, 160px); }
.wd-tabs { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 6px; flex: 0 0 auto; padding: 2px 0 10px; }
.wd-tab { min-width: 0; min-height: 48px; padding: 0 6px; border-radius: 16px; border: 2px solid var(--line-2); background: var(--surface); color: var(--ink); font: inherit; font-weight: 800; font-size: 14px; cursor: pointer; overflow-wrap: anywhere; }
.wd-tab.on { background: var(--grad); color: #fff; border-color: transparent; }
.wd-body { flex: 1 1 auto; min-height: 0; overflow-y: auto; overflow-x: hidden; padding: 4px 2px 12px; }
.wd-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; }
.wd-item { position: relative; display: flex; flex-direction: column; align-items: center; gap: 4px; min-width: 0; min-height: 118px; padding: 8px 4px 10px; border-radius: 18px;
  border: 2px solid var(--line-2); background: var(--surface); color: var(--ink); font: inherit; cursor: pointer; transition: transform .15s var(--spring, ease); }
.wd-item:active { transform: scale(.96); }
.wd-item.on { border-color: var(--pink); box-shadow: 0 0 0 3px rgba(255, 111, 181, .25); }
.wd-item.locked .wd-art, .wd-item.locked .wd-fr-art { filter: saturate(.35) brightness(.95); opacity: .7; }
.wd-art, .wd-fr-art { display: grid; place-items: center; width: 100%; height: 70px; }
.wd-th-lori.mascot { width: 66px; height: 66px; }
.wd-th-lori.mascot svg { animation: none; }
.wd-fr-art svg { width: 58px; height: 58px; }
.wd-fr-art.big { height: 120px; }
.wd-fr-art.big svg { width: 110px; height: 110px; }
.wd-none { font-size: 28px; color: var(--muted); line-height: 70px; }
.wd-name { font-weight: 800; font-size: 13px; line-height: 1.15; text-align: center; overflow-wrap: anywhere; max-width: 100%; }
.wd-chip { display: inline-flex; align-items: center; gap: 3px; max-width: 100%; padding: 3px 8px; border-radius: 999px; font-size: 11.5px; font-weight: 800; line-height: 1.2;
  background: var(--surface-3); color: var(--muted); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.wd-chip svg { flex: 0 0 auto; }
.wd-chip.ok { position: absolute; top: 6px; right: 6px; width: 24px; height: 24px; padding: 0; justify-content: center; background: var(--grad); color: #fff; }
.wd-chip.buy { background: linear-gradient(135deg, #FFB547, #FF6FB5); color: #fff; }
.wd-chip.vip { background: linear-gradient(135deg, #FFE27A, #F5B301); color: #5B3A00; }
.wd-packs { display: grid; gap: 10px; }
.wd-pack { display: flex; align-items: center; gap: 12px; width: 100%; min-height: 96px; padding: 10px 14px; border-radius: 22px; border: 2px solid var(--line-2); background: var(--surface); color: var(--ink); font: inherit; text-align: left; cursor: pointer; }
.wd-pack-art .wd-th-lori.mascot { width: 76px; height: 76px; }
.wd-pack-t { display: flex; flex-direction: column; flex: 1 1 auto; min-width: 0; }
.wd-pack .wd-chip { font-size: 14px; padding: 8px 12px; }
.wd-pack.own { opacity: .85; }
.wd-buy-card { text-align: center; }
.wd-buy-top { display: flex; flex-direction: column; align-items: center; gap: 6px; margin: 6px 0 14px; }
.wd-buy-art .wd-th-lori.mascot { width: 120px; height: 120px; }
.wd-legal { margin: 10px 4px 0; line-height: 1.35; }
.wd-legal a { color: var(--pink); }
.wd-gift-art { display: grid; place-items: center; margin: 0 auto 6px; }
.wd-gift-art .wd-th-lori.mascot { width: 120px; height: 120px; }
.wd-toast { position: fixed; left: max(16px, env(safe-area-inset-left, 0px)); right: max(16px, env(safe-area-inset-right, 0px)); margin: 0 auto; width: fit-content; max-width: min(440px, calc(100% - 32px)); box-sizing: border-box;
  bottom: calc(var(--tab-h, 62px) + var(--safe-b, env(safe-area-inset-bottom, 0px)) + 14px); z-index: 80; transform: translateY(30px); opacity: 0; pointer-events: none; overflow-wrap: anywhere;
  padding: 12px 18px; border-radius: 16px; background: #1B1633; color: #fff; font-weight: 700; font-size: 14px; line-height: 1.35; text-align: center; transition: transform .25s var(--spring, ease), opacity .2s; }
.wd-toast.on { opacity: 1; transform: none; }
@media (max-width: 340px) { .wd-grid { gap: 6px; } .wd-item { min-height: 108px; } .wd-th-lori.mascot { width: 58px; height: 58px; } .wd-tab { font-size: 13px; } }
@media (prefers-reduced-motion: reduce) { .wd-friend, .wd-float, .wd-tw, .wd-item, .wd, .wd-toast { animation: none !important; transition: none !important; } }
/* ---- wardrobe v2 (2026-09-30): 30 more skins ---- */
svg[data-wd-skin="peach"] > defs > linearGradient:first-of-type > stop:first-child { stop-color: #FFC8A2; }
svg[data-wd-skin="peach"] > defs > linearGradient:first-of-type > stop:last-child { stop-color: #FF7A8A; }
svg[data-wd-skin="sky"] > defs > linearGradient:first-of-type > stop:first-child { stop-color: #A5E8FF; }
svg[data-wd-skin="sky"] > defs > linearGradient:first-of-type > stop:last-child { stop-color: #5B8CFF; }
svg[data-wd-skin="lemon"] > defs > linearGradient:first-of-type > stop:first-child { stop-color: #FFF27A; }
svg[data-wd-skin="lemon"] > defs > linearGradient:first-of-type > stop:last-child { stop-color: #FFB020; }
svg[data-wd-skin="cherry"] > defs > linearGradient:first-of-type > stop:first-child { stop-color: #FF8FA3; }
svg[data-wd-skin="cherry"] > defs > linearGradient:first-of-type > stop:last-child { stop-color: #C8102E; }
svg[data-wd-skin="forest"] > defs > linearGradient:first-of-type > stop:first-child { stop-color: #9BE58A; }
svg[data-wd-skin="forest"] > defs > linearGradient:first-of-type > stop:last-child { stop-color: #1E7F4F; }
svg[data-wd-skin="sunset"] > defs > linearGradient:first-of-type > stop:first-child { stop-color: #FFD36E; }
svg[data-wd-skin="sunset"] > defs > linearGradient:first-of-type > stop:last-child { stop-color: #E0338A; }
svg[data-wd-skin="pastel"] > defs > linearGradient:first-of-type > stop:first-child { stop-color: #FFD6F0; }
svg[data-wd-skin="pastel"] > defs > linearGradient:first-of-type > stop:last-child { stop-color: #B9C6FF; }
svg[data-wd-skin="neon"] > defs > linearGradient:first-of-type > stop:first-child { stop-color: #19F5C1; }
svg[data-wd-skin="neon"] > defs > linearGradient:first-of-type > stop:last-child { stop-color: #7A00FF; }
svg[data-wd-skin="candy"] > defs > linearGradient:first-of-type > stop:first-child { stop-color: #FFFFFF; }
svg[data-wd-skin="candy"] > defs > linearGradient:first-of-type > stop:last-child { stop-color: #FFC2DA; }
svg[data-wd-skin="marble"] > defs > linearGradient:first-of-type > stop:first-child { stop-color: #F4F1FF; }
svg[data-wd-skin="marble"] > defs > linearGradient:first-of-type > stop:last-child { stop-color: #B7B2D6; }
svg[data-wd-skin="lava"] > defs > linearGradient:first-of-type > stop:first-child { stop-color: #FFB347; }
svg[data-wd-skin="lava"] > defs > linearGradient:first-of-type > stop:last-child { stop-color: #B3001B; }
svg[data-wd-skin="diamond"] > defs > linearGradient:first-of-type > stop:first-child { stop-color: #E8FDFF; }
svg[data-wd-skin="diamond"] > defs > linearGradient:first-of-type > stop:last-child { stop-color: #7FD6FF; }
svg[data-wd-skin="stripes"] > defs > linearGradient:first-of-type > stop:first-child { stop-color: #FFFFFF; }
svg[data-wd-skin="stripes"] > defs > linearGradient:first-of-type > stop:last-child { stop-color: #DDE6FF; }
svg[data-wd-skin="hearts"] > defs > linearGradient:first-of-type > stop:first-child { stop-color: #FFB6D9; }
svg[data-wd-skin="hearts"] > defs > linearGradient:first-of-type > stop:last-child { stop-color: #FF5C9E; }
svg[data-wd-skin="checker"] > defs > linearGradient:first-of-type > stop:first-child { stop-color: #FFE3B3; }
svg[data-wd-skin="checker"] > defs > linearGradient:first-of-type > stop:last-child { stop-color: #C77B30; }
svg[data-wd-skin="fire"] > defs > linearGradient:first-of-type > stop:first-child { stop-color: #FFE066; }
svg[data-wd-skin="fire"] > defs > linearGradient:first-of-type > stop:last-child { stop-color: #FF3D00; }
svg[data-wd-skin="ink"] > defs > linearGradient:first-of-type > stop:first-child { stop-color: #9FB0FF; }
svg[data-wd-skin="ink"] > defs > linearGradient:first-of-type > stop:last-child { stop-color: #23308C; }
svg[data-wd-skin="sakura"] > defs > linearGradient:first-of-type > stop:first-child { stop-color: #FFE4EE; }
svg[data-wd-skin="sakura"] > defs > linearGradient:first-of-type > stop:last-child { stop-color: #F58BB3; }
svg[data-wd-skin="platinum"] > defs > linearGradient:first-of-type > stop:first-child { stop-color: #F2F4F8; }
svg[data-wd-skin="platinum"] > defs > linearGradient:first-of-type > stop:last-child { stop-color: #9AA3B5; }
svg[data-wd-skin="map"] > defs > linearGradient:first-of-type > stop:first-child { stop-color: #F5E6C4; }
svg[data-wd-skin="map"] > defs > linearGradient:first-of-type > stop:last-child { stop-color: #C9A66B; }
svg[data-wd-skin="camo"] > defs > linearGradient:first-of-type > stop:first-child { stop-color: #A8C686; }
svg[data-wd-skin="camo"] > defs > linearGradient:first-of-type > stop:last-child { stop-color: #4E6B3A; }
svg[data-wd-skin="halloween"] > defs > linearGradient:first-of-type > stop:first-child { stop-color: #FFB347; }
svg[data-wd-skin="halloween"] > defs > linearGradient:first-of-type > stop:last-child { stop-color: #FF6A00; }
svg[data-wd-skin="garland"] > defs > linearGradient:first-of-type > stop:first-child { stop-color: #2E7D5B; }
svg[data-wd-skin="garland"] > defs > linearGradient:first-of-type > stop:last-child { stop-color: #0E3B2C; }
svg[data-wd-skin="spring"] > defs > linearGradient:first-of-type > stop:first-child { stop-color: #D9F99D; }
svg[data-wd-skin="spring"] > defs > linearGradient:first-of-type > stop:last-child { stop-color: #4ADE80; }
svg[data-wd-skin="summer"] > defs > linearGradient:first-of-type > stop:first-child { stop-color: #7DF9FF; }
svg[data-wd-skin="summer"] > defs > linearGradient:first-of-type > stop:last-child { stop-color: #00A3FF; }
svg[data-wd-skin="holo"] > defs > linearGradient:first-of-type > stop:first-child { stop-color: #B3FFF4; }
svg[data-wd-skin="holo"] > defs > linearGradient:first-of-type > stop:last-child { stop-color: #E3B3FF; }
svg[data-wd-skin="rosegold"] > defs > linearGradient:first-of-type > stop:first-child { stop-color: #FFD9C9; }
svg[data-wd-skin="rosegold"] > defs > linearGradient:first-of-type > stop:last-child { stop-color: #D8837F; }
svg[data-wd-skin="pixel"] > defs > linearGradient:first-of-type > stop:first-child { stop-color: #8BE9FD; }
svg[data-wd-skin="pixel"] > defs > linearGradient:first-of-type > stop:last-child { stop-color: #6272A4; }
svg[data-wd-skin="cyber"] > defs > linearGradient:first-of-type > stop:first-child { stop-color: #00F0FF; }
svg[data-wd-skin="cyber"] > defs > linearGradient:first-of-type > stop:last-child { stop-color: #1A0B5E; }
svg[data-wd-skin="donut"] > defs > linearGradient:first-of-type > stop:first-child { stop-color: #FFD0E5; }
svg[data-wd-skin="donut"] > defs > linearGradient:first-of-type > stop:last-child { stop-color: #FF7FB0; }
/* companions with a personality: their own idle motion instead of the generic hop */
.wd-friend.wd-own { animation: none; }
.wf-frog, .wf .fx-tail, .wf .fs-b, .wf .fs-sp, .wf .fb-b, .wf .fb-w, .wf .fp-b, .wf .fp-z, .wf .fh-sp, .wf .fg-b, .wf .fgh-b, .wf .fgh-sh, .wf .fa-g, .wf .fo-t path, .wf .fo-h, .wf .fd-b, .wf .fd-p, .wf .fj-b { transform-box: fill-box; }
:is(.wd-friend, .wd-fr-art) .wd-blink { animation: wdBlink 1.4s steps(2, jump-none) infinite; }
:is(.wd-friend, .wd-fr-art) .wd-d2, svg .wd-l .wd-d2 { animation-delay: -.7s !important; }
:is(.wd-friend, .wd-fr-art) .wd-drop { animation: wdDrop 2.2s ease-in infinite; transform-origin: center; }
:is(.wd-friend, .wd-fr-art) .wd-flame { animation: wdTw 1.1s ease-in-out infinite; transform-origin: left center; }
@keyframes wdBlink { 50% { opacity: .25; } }
@keyframes wdDrop { 0% { transform: translateY(-4px); opacity: 0; } 30% { opacity: 1; } 100% { transform: translateY(6px); opacity: 0; } }
/* Квак: прыгун */
:is(.wd-friend, .wd-fr-art) .wf-frog { animation: wfHop 1.6s cubic-bezier(.3, 0, .4, 1) infinite; transform-origin: 50% 100%; }
@keyframes wfHop { 0%, 100% { transform: none; } 15% { transform: scale(1.12, .86); } 40% { transform: translateY(-16%) scale(.94, 1.08); } 65% { transform: scale(1.08, .9); } 80% { transform: none; } }
/* Рыжик: хитрец, виляет хвостом */
:is(.wd-friend, .wd-fr-art) .wf-fox .fx-tail { animation: wfWag 1.2s ease-in-out infinite; transform-origin: 0% 90%; }
@keyframes wfWag { 50% { transform: rotate(-16deg); } }
/* Ная: мерцает и кружится */
:is(.wd-friend, .wd-fr-art) .wf-star .fs-b { animation: wfSpin 6s ease-in-out infinite; transform-origin: center; }
:is(.wd-friend, .wd-fr-art) .wf-star .fs-sp { animation: wdTw 1.4s ease-in-out infinite; transform-origin: center; }
@keyframes wfSpin { 0%, 100% { transform: rotate(-8deg) scale(1); } 50% { transform: rotate(8deg) scale(1.06); } }
/* Жужа: трудяга, снуёт туда-сюда, крылья дрожат */
:is(.wd-friend, .wd-fr-art) .wf-bee .fb-b { animation: wfBuzz 2.4s ease-in-out infinite; }
:is(.wd-friend, .wd-fr-art) .wf-bee .fb-w { animation: wfFlut .12s linear infinite alternate; transform-origin: 50% 100%; }
@keyframes wfBuzz { 0%, 100% { transform: translate(0, 0); } 25% { transform: translate(-8%, -6%) rotate(-6deg); } 50% { transform: translate(6%, -2%) rotate(4deg); } 75% { transform: translate(-2%, -8%); } }
@keyframes wfFlut { to { transform: scaleY(.55); } }
/* Бамбук: соня, дышит во сне, «z» улетают */
:is(.wd-friend, .wd-fr-art) .wf-panda .fp-b { animation: wfBreath 3.2s ease-in-out infinite; transform-origin: 50% 100%; }
:is(.wd-friend, .wd-fr-art) .wf-panda .fp-z { animation: wfZ 2.6s ease-out infinite; }
@keyframes wfBreath { 50% { transform: scale(1.04, .97); } }
@keyframes wfZ { 0% { transform: translate(0, 4px); opacity: 0; } 30% { opacity: 1; } 100% { transform: translate(4px, -6px); opacity: 0; } }
/* Колючка: ворчун, топорщит иголки */
:is(.wd-friend, .wd-fr-art) .wf-hedgehog .fh-sp { animation: wfBristle 2.2s ease-in-out infinite; transform-origin: 50% 100%; }
@keyframes wfBristle { 0%, 60%, 100% { transform: none; } 70% { transform: scale(1.12); } 80% { transform: scale(.98); } 88% { transform: scale(1.1); } }
/* Пинг: неуклюжий, переваливается */
:is(.wd-friend, .wd-fr-art) .wf-penguin .fg-b { animation: wfWaddle 1.4s ease-in-out infinite; transform-origin: 50% 100%; }
@keyframes wfWaddle { 0%, 100% { transform: rotate(-7deg); } 50% { transform: rotate(7deg); } }
/* Бу: стесняшка, парит и прячется */
:is(.wd-friend, .wd-fr-art) .wf-ghost .fgh-b { animation: wfBoo 3.6s ease-in-out infinite; }
:is(.wd-friend, .wd-fr-art) .wf-ghost .fgh-sh { animation: wfShadow 3.6s ease-in-out infinite; transform-origin: center; }
@keyframes wfBoo { 0%, 100% { transform: translateY(0); opacity: 1; } 45% { transform: translateY(-12%); opacity: .9; } 70% { opacity: .4; } }
@keyframes wfShadow { 45% { transform: scale(.7); opacity: .06; } }
/* Аксель: добряк, колышет жабрами */
:is(.wd-friend, .wd-fr-art) .wf-axolotl .fa-g { animation: wfGill 1.8s ease-in-out infinite; transform-origin: 100% 50%; }
:is(.wd-friend, .wd-fr-art) .wf-axolotl .fa-gr { transform-origin: 0% 50%; animation-direction: reverse; }
@keyframes wfGill { 50% { transform: rotate(14deg); } }
/* Тина: любопытная, щупальца волной, оглядывается */
:is(.wd-friend, .wd-fr-art) .wf-octopus .fo-t path { animation: wfTent 1.6s ease-in-out infinite; transform-origin: 50% 0%; }
:is(.wd-friend, .wd-fr-art) .wf-octopus .fo-t path:nth-child(2n) { animation-delay: -.8s; }
:is(.wd-friend, .wd-fr-art) .wf-octopus .fo-h { animation: wfLook 4s ease-in-out infinite; transform-origin: 50% 100%; }
@keyframes wfTent { 50% { transform: skewX(14deg); } }
@keyframes wfLook { 0%, 100% { transform: rotate(0); } 30% { transform: rotate(-8deg); } 60% { transform: rotate(8deg); } }
/* Дрон: разведчик, зависает, винты крутятся */
:is(.wd-friend, .wd-fr-art) .wf-drone .fd-b { animation: wfHover 2.4s ease-in-out infinite; }
:is(.wd-friend, .wd-fr-art) .wf-drone .fd-p { animation: wfProp .18s linear infinite; transform-origin: center; }
@keyframes wfHover { 50% { transform: translateY(-8%) rotate(3deg); } }
@keyframes wfProp { 50% { transform: scaleX(.2); } }
/* Желе: весельчак, трясётся */
:is(.wd-friend, .wd-fr-art) .wf-jelly .fj-b { animation: wfWobble 1.3s ease-in-out infinite; transform-origin: 50% 100%; }
@keyframes wfWobble { 0%, 100% { transform: none; } 20% { transform: scale(1.1, .9); } 40% { transform: scale(.92, 1.08); } 60% { transform: scale(1.04, .96); } 80% { transform: scale(.98, 1.02); } }
/* Лори's own v2 accessories (they move only on the real Лори, not on the small previews) */
svg .wd-sway { animation: wdSway 3s ease-in-out infinite; transform-box: fill-box; transform-origin: 50% 100%; }
svg .wd-ring { animation: wdSway 1.6s ease-in-out infinite; transform-box: fill-box; transform-origin: 50% 0%; }
svg .wd-flap-l > path, svg .wd-flap-r > path { animation: wdFlap 1.8s ease-in-out infinite; transform-box: fill-box; transform-origin: 100% 60%; }
svg .wd-scan { animation: wdScan 2s ease-in-out infinite; transform-box: fill-box; }
svg .wd-note { animation: wdTw 1.8s ease-in-out infinite; transform-box: fill-box; transform-origin: center; }
svg .wd-l .wd-blink { animation: wdBlink 1.4s steps(2, jump-none) infinite; }
@keyframes wdSway { 50% { transform: rotate(8deg); } }
@keyframes wdFlap { 50% { transform: rotate(-14deg); } }
@keyframes wdScan { 50% { transform: translateY(3px); opacity: .4; } }
.wd-grid .wd-th-lori svg .wd-l *, .so svg .wd-l *, .ck svg .wd-l * { animation: none !important; }
@media (prefers-reduced-motion: reduce) { .wf, .wf *, svg .wd-l, svg .wd-l * { animation: none !important; } }
