/* Ладик-ёжик в своей комнатке. Сгенерировано tools/build.py: правьте генератор, не этот файл. */
.lad-avatar { margin: 0; width: 100%; min-width: 0; color: var(--ink, #252525);
  --lad-wall: #f2eee7;
  --lad-base: #ddd5c8;
  --lad-floor: #e6dfd3;
  --lad-ink: #857d71;
  --lad-wood: #d3c6b1;
  --lad-wood2: #b9ab94;
  --lad-sky: #dae6eb;
  --lad-sky2: #e8eff1;
  --lad-disc: #fff5d8;
  --lad-disc2: #f6e2ab;
  --lad-mnt: #bfcbd0;
  --lad-mnt2: #a2b2b8;
  --lad-case: #efe9de;
  --lad-screen: #d3ddd6;
  --lad-radio: #b8afa1;
  --lad-acc: #ffd12e;
  --lad-bulb: #ece6da;
  --lad-leaf: #a3b192;
  --lad-rug: #cdbfa8;
  --lad-scr: #8c9b93;
  --lad-cloudlet: #f7fafb;
  --lad-sun: #faf7f1;
  --lad-star: #b9b9c4;
  --lad-moon: #26262d;
  --lad-cone: #fff0c8;
  --lad-outline: #3a2a22;
  --lad-quill: #7b5539;
  --lad-quill2: #99694a;
  --lad-tip: #b98a5e;
  --lad-face: #f6e5cb;
  --lad-nose: #2e211b;
  --lad-blush: #f0a99a;
  --lad-scarf: #3f9b8c;
  --lad-paw: #c4906c;
  --lad-eye: #231a16;
  --lad-shine: #ffffff;
  --lad-rim: #8a8277;
  --lad-cup: #fffdf8;
  --lad-paper: #ffffff;
  --lad-line: #a49d92;
  --lad-yellow: #ffd12e;
  --lad-mark: #3a332c;
  --lad-cloud-rim: #b3aca1;
  --lad-cloud: #ffffff;
  --lad-dot: #6f685e;
  --lad-note: #8f877b;
  --lad-drop: #9cc4dc;
}
:root[data-theme=dark] .lad-avatar {
  --lad-wall: #1f1f24;
  --lad-base: #2a2a31;
  --lad-floor: #18181c;
  --lad-ink: #5a5a64;
  --lad-wood: #34343b;
  --lad-wood2: #2a2a31;
  --lad-sky: #111116;
  --lad-sky2: #17171d;
  --lad-disc: #8e8e99;
  --lad-disc2: #3e3e48;
  --lad-mnt: #26272e;
  --lad-mnt2: #1c1c22;
  --lad-case: #3e3e47;
  --lad-screen: #4d8c7e;
  --lad-radio: #3f3f48;
  --lad-acc: #d8b23a;
  --lad-bulb: #ffe6a8;
  --lad-leaf: #5d6e55;
  --lad-rug: #2e2e36;
  --lad-scr: #1a3d36;
  --lad-outline: #4a3428;
  --lad-quill: #a8774f;
  --lad-quill2: #c39266;
  --lad-tip: #e2b787;
  --lad-face: #f8e8cf;
  --lad-nose: #241915;
  --lad-blush: #e8988b;
  --lad-scarf: #52b6a5;
  --lad-paw: #cf9d77;
  --lad-eye: #1b1411;
  --lad-rim: #a3a3ad;
  --lad-cup: #b9b9c2;
  --lad-paper: #d9d9df;
  --lad-line: #8a8a95;
  --lad-mark: #e2e2e8;
  --lad-cloud-rim: #6a6a74;
  --lad-cloud: #2c2c33;
  --lad-dot: #e2e2e8;
  --lad-note: #6e6e78;
  --lad-drop: #86b0c8;
}
.lad-stage { height: 120px; overflow: hidden; border-radius: 10px; }
/* max-width: none - кабинет подключает marker.css с правилом svg { max-width: 100% }, оно сжимало бы сцену.
   Второй margin-left округляет сдвиг до целого пикселя (нечётная ширина), где браузер умеет round(). */
.lad-room { display: block; width: max(100%, 320px); max-width: none; height: 120px; margin-left: min(0px, 50% - 160px); margin-left: round(down, min(0px, 50% - 160px), 1px); }
.lad-avatar-caption { display: flex; align-items: center; justify-content: space-between; gap: 8px; min-height: 28px; padding: 0 5px; font: 11px/1.3 Onest, sans-serif; color: var(--muted, #595959); }
.lad-avatar-pause { font: inherit; color: inherit; border: 0; border-radius: 4px; padding: 5px 7px; min-height: 28px; background: transparent; cursor: pointer; }
.lad-avatar-pause:hover { color: var(--ink, #252525); background: var(--paper, #f4f4f4); }
.lad-avatar-pause:focus-visible { outline: 2px solid var(--focus, #252525); outline-offset: 2px; }
.lad-avatar-pause:disabled { cursor: default; opacity: .7; }

/* Контур частей героя: обводка под заливкой, ровно 1 пиксель арта снаружи. */
.lad-room .lad-o { stroke-width: 4px; stroke-linejoin: miter; paint-order: stroke fill; }

/* День и ночь: только селектор темы кабинета, без JS. */
.lad-room .lad-night { display: none; }
:root[data-theme=dark] .lad-avatar .lad-night { display: inline; }
:root[data-theme=dark] .lad-avatar .lad-day { display: none; }
.lad-room .lad-cone-pool { opacity: .6; }
.lad-room .c-wall { fill: var(--lad-wall); }
.lad-room .c-base { fill: var(--lad-base); }
.lad-room .c-floor { fill: var(--lad-floor); }
.lad-room .c-ink { fill: var(--lad-ink); }
.lad-room .c-wood { fill: var(--lad-wood); }
.lad-room .c-wood2 { fill: var(--lad-wood2); }
.lad-room .c-sky { fill: var(--lad-sky); }
.lad-room .c-sky2 { fill: var(--lad-sky2); }
.lad-room .c-disc { fill: var(--lad-disc); }
.lad-room .c-disc2 { fill: var(--lad-disc2); }
.lad-room .c-mnt { fill: var(--lad-mnt); }
.lad-room .c-mnt2 { fill: var(--lad-mnt2); }
.lad-room .c-case { fill: var(--lad-case); }
.lad-room .c-screen { fill: var(--lad-screen); }
.lad-room .c-radio { fill: var(--lad-radio); }
.lad-room .c-acc { fill: var(--lad-acc); }
.lad-room .c-bulb { fill: var(--lad-bulb); }
.lad-room .c-leaf { fill: var(--lad-leaf); }
.lad-room .c-rug { fill: var(--lad-rug); }
.lad-room .c-scr { fill: var(--lad-scr); }
.lad-room .c-cloudlet { fill: var(--lad-cloudlet); }
.lad-room .c-sun { fill: var(--lad-sun); }
.lad-room .c-star { fill: var(--lad-star); }
.lad-room .c-moon { fill: var(--lad-moon); }
.lad-room .c-cone { fill: var(--lad-cone); }
.lad-room .c-outline { fill: var(--lad-outline); }
.lad-room .c-quill { fill: var(--lad-quill); }
.lad-room .c-quill2 { fill: var(--lad-quill2); }
.lad-room .c-tip { fill: var(--lad-tip); }
.lad-room .c-face { fill: var(--lad-face); }
.lad-room .c-nose { fill: var(--lad-nose); }
.lad-room .c-blush { fill: var(--lad-blush); }
.lad-room .c-scarf { fill: var(--lad-scarf); }
.lad-room .c-paw { fill: var(--lad-paw); }
.lad-room .c-eye { fill: var(--lad-eye); }
.lad-room .c-shine { fill: var(--lad-shine); }
.lad-room .c-cup { fill: var(--lad-cup); }
.lad-room .c-paper { fill: var(--lad-paper); }
.lad-room .c-line { fill: var(--lad-line); }
.lad-room .c-yellow { fill: var(--lad-yellow); }
.lad-room .c-mark { fill: var(--lad-mark); }
.lad-room .c-cloud { fill: var(--lad-cloud); }
.lad-room .c-dot { fill: var(--lad-dot); }
.lad-room .c-note { fill: var(--lad-note); }
.lad-room .c-drop { fill: var(--lad-drop); }
.lad-room .s-outline { stroke: var(--lad-outline); }
.lad-room .s-rim { stroke: var(--lad-rim); }
.lad-room .s-cloud-rim { stroke: var(--lad-cloud-rim); }

/* Места героя по состояниям: целые пиксели арта. */
.lad-avatar[data-state=idle] .lad-hero { transform:translate(104px,70px); }
.lad-avatar[data-state=thinking] .lad-hero { transform:translate(104px,70px); }
.lad-avatar[data-state=clarify] .lad-hero { transform:translate(104px,70px); }
.lad-avatar[data-state=preview] .lad-hero { transform:translate(104px,70px); }
.lad-avatar[data-state=saving] .lad-hero { transform:translate(156px,46px); }
.lad-avatar[data-state=success] .lad-hero { transform:translate(122px,70px); }
.lad-avatar[data-state=error] .lad-hero { transform:translate(156px,46px); }
.lad-room .lad-hero { transform: translate(104px, 70px); }

/* Видно только своё: сцена и поза текущего состояния. */
.lad-room :is(.lad-s, .lad-p, .lad-scr-doc, .lad-steam) { display: none; }
.lad-avatar[data-state=idle] .lad-s-idle, .lad-avatar[data-state=idle] .lad-p-idle,
.lad-avatar[data-state=thinking] .lad-s-thinking, .lad-avatar[data-state=thinking] .lad-p-thinking,
.lad-avatar[data-state=clarify] .lad-s-clarify, .lad-avatar[data-state=clarify] .lad-p-clarify,
.lad-avatar[data-state=preview] .lad-s-preview, .lad-avatar[data-state=preview] .lad-p-preview,
.lad-avatar[data-state=saving] .lad-s-saving, .lad-avatar[data-state=saving] .lad-p-saving,
.lad-avatar[data-state=success] .lad-s-success, .lad-avatar[data-state=success] .lad-p-success,
.lad-avatar[data-state=error] .lad-s-error, .lad-avatar[data-state=error] .lad-p-error,
.lad-avatar:is([data-state=idle], [data-state=clarify], [data-state=preview]) .lad-scr-doc,
.lad-avatar:is([data-state=thinking], [data-state=saving]) .lad-steam { display: inline; }
.lad-avatar[data-state=idle] .lad-desk-mug,
.lad-avatar:is([data-state=success], [data-state=error]) .lad-eyes { display: none; }
.lad-room :is(.lad-foot-step, .lad-foot-sit, .lad-yay) { opacity: 0; }
.lad-avatar:is([data-state=saving], [data-state=error]) .lad-foot-stand { opacity: 0; }
.lad-avatar:is([data-state=saving], [data-state=error]) .lad-foot-sit { opacity: 1; }

/* Взгляд: наверх к облачку, на учителя, на листок, на экран. */
.lad-avatar[data-state=thinking] .lad-eyes { transform: translate(0, -2px); }
.lad-avatar[data-state=clarify] .lad-eyes { transform: translate(-2px, 0); }
.lad-avatar[data-state=preview] .lad-eyes { transform: translate(2px, -2px); }
.lad-avatar[data-state=saving] .lad-eyes { transform: translate(2px, 0); }

/* Покой без анимации: ноты и искры спрятаны, полоска сохранения заполнена наполовину. */
.lad-room :is(.lad-note, .lad-spark) { opacity: 0; }
.lad-room .lad-eye { transform-box: fill-box; transform-origin: 50% 100%; }
.lad-room .lad-bar { transform-box: fill-box; transform-origin: 0 50%; transform: scaleX(.5); }

/* Анимации: только transform и opacity, шагами по пиксельной сетке. Кадр 0 % у каждой - спокойная поза:
   если пауза нажата заранее, состояние застывает на нём и всё равно читается («?», капля, «ура»). */
.lad-avatar[data-state=idle] .lad-act { animation: lad-idle-walk 20s steps(1, end) infinite; }
.lad-avatar[data-state=idle] .lad-foot-step { animation: lad-idle-step 20s steps(1, end) infinite; }
.lad-avatar[data-state=idle] .lad-foot-stand { animation: lad-idle-stand 20s steps(1, end) infinite; }
.lad-avatar[data-state=idle] .lad-cup { animation: lad-idle-sip 20s steps(1, end) infinite; }
.lad-avatar[data-state=idle] .lad-eyes { animation: lad-idle-look 20s steps(1, end) infinite; }
.lad-avatar[data-state=idle] .lad-note-1 { animation: lad-idle-note-1 20s steps(1, end) infinite; }
.lad-avatar[data-state=idle] .lad-note-2 { animation: lad-idle-note-2 20s steps(1, end) infinite; }
.lad-avatar:is([data-state=idle], [data-state=thinking], [data-state=clarify], [data-state=preview], [data-state=saving]) .lad-eye { animation: lad-blink 5.4s steps(1, end) infinite; }
.lad-avatar:is([data-state=idle], [data-state=thinking], [data-state=clarify], [data-state=preview], [data-state=saving]) .lad-shine { animation: lad-blink-shine 5.4s steps(1, end) infinite; }
.lad-avatar:is([data-state=thinking], [data-state=saving]) .lad-steam { animation: lad-steam 4.5s steps(1, end) infinite; }
.lad-avatar[data-state=thinking] .lad-think-cloud { animation: lad-bob 4s steps(1, end) infinite; }
.lad-avatar[data-state=thinking] .lad-dot { animation: lad-dot 2.1s steps(1, end) infinite; }
.lad-avatar[data-state=thinking] .lad-dot-2 { animation-delay: .35s; }
.lad-avatar[data-state=thinking] .lad-dot-3 { animation-delay: .7s; }
.lad-avatar[data-state=clarify] .lad-ask { animation: lad-pop .4s steps(1, end) 1 both; }
.lad-avatar[data-state=clarify] .lad-raise { animation: lad-wave 7s steps(1, end) infinite; }
.lad-avatar[data-state=preview] .lad-sheet { animation: lad-sink 7s steps(1, end) infinite; }
.lad-avatar[data-state=preview] .lad-eyes { animation: lad-glance 7s steps(1, end) infinite; }
.lad-avatar[data-state=preview] .lad-ants { animation: lad-ants 3s steps(1, end) infinite; }
.lad-avatar[data-state=saving] .lad-type { animation: lad-type .5s steps(1, end) infinite; }
.lad-avatar[data-state=saving] .lad-bar { animation: lad-bar 3s steps(1, end) infinite; }
.lad-avatar[data-state=success] .lad-act { animation: lad-hop 1.4s steps(1, end) 0.6s 1; }
.lad-avatar[data-state=success] .lad-yay { animation: lad-yay 1.4s steps(1, end) 0.6s 1 both; }
.lad-avatar[data-state=success] .lad-chest { animation: lad-chest 1.4s steps(1, end) 0.6s 1 both; }
.lad-avatar[data-state=success] .lad-spark { animation: lad-twinkle 2.4s steps(1, end) 0.6s 1 both; }
.lad-avatar[data-state=success] .lad-spark-2 { animation-delay: 0.9s; }
.lad-avatar[data-state=success] .lad-spark-3 { animation-delay: 1.2s; }
.lad-avatar[data-state=error] .lad-scratch { animation: lad-scratch 4s steps(1, end) infinite; }
.lad-avatar[data-state=error] .lad-squiggle { animation: lad-wiggle 3.5s steps(1, end) infinite; }
.lad-avatar[data-state=error] .lad-drop { animation: lad-drop 4s steps(1, end) infinite; }
.lad-room .lad-star-a { animation: lad-twinkle-star 8s steps(1, end) infinite; }
.lad-room .lad-star-b { animation: lad-twinkle-star 8s steps(1, end) -4s infinite; }

/* Переходы между местами: только когда сцена движется; пауза и «уменьшить движение» их гасят. */
@keyframes lad-go-cheer-rug{0%{transform:translate(164px,70px) scale(-1,1)}25%{transform:translate(158px,68px) scale(-1,1)}50%{transform:translate(152px,70px) scale(-1,1)}75%{transform:translate(146px,68px) scale(-1,1)}100%{transform:translate(104px,70px)}}
@keyframes lad-go-cheer-stool{0%{transform:translate(122px,70px)}16.67%{transform:translate(128px,68px)}33.33%{transform:translate(134px,70px)}50%{transform:translate(140px,68px)}66.67%{transform:translate(144px,70px)}83.33%{transform:translate(150px,58px)}100%{transform:translate(156px,46px)}}
@keyframes lad-go-rug-cheer{0%{transform:translate(104px,70px)}25%{transform:translate(110px,68px)}50%{transform:translate(116px,70px)}75%{transform:translate(122px,68px)}100%{transform:translate(122px,70px)}}
@keyframes lad-go-rug-stool{0%{transform:translate(104px,70px)}11.11%{transform:translate(110px,68px)}22.22%{transform:translate(116px,70px)}33.33%{transform:translate(122px,68px)}44.44%{transform:translate(128px,70px)}55.56%{transform:translate(134px,68px)}66.67%{transform:translate(140px,70px)}77.78%{transform:translate(144px,68px)}88.89%{transform:translate(150px,58px)}100%{transform:translate(156px,46px)}}
@keyframes lad-go-stool-cheer{0%{transform:translate(198px,46px) scale(-1,1)}14.29%{transform:translate(192px,58px) scale(-1,1)}28.57%{transform:translate(186px,70px) scale(-1,1)}42.86%{transform:translate(180px,68px) scale(-1,1)}57.14%{transform:translate(174px,70px) scale(-1,1)}71.43%{transform:translate(168px,68px) scale(-1,1)}85.71%{transform:translate(164px,70px) scale(-1,1)}100%{transform:translate(122px,70px)}}
@keyframes lad-go-stool-rug{0%{transform:translate(198px,46px) scale(-1,1)}10%{transform:translate(192px,58px) scale(-1,1)}20%{transform:translate(186px,70px) scale(-1,1)}30%{transform:translate(180px,68px) scale(-1,1)}40%{transform:translate(174px,70px) scale(-1,1)}50%{transform:translate(168px,68px) scale(-1,1)}60%{transform:translate(162px,70px) scale(-1,1)}70%{transform:translate(156px,68px) scale(-1,1)}80%{transform:translate(150px,70px) scale(-1,1)}90%{transform:translate(146px,68px) scale(-1,1)}100%{transform:translate(104px,70px)}}
.lad-avatar[data-state=idle]:is([data-from=saving], [data-from=error]) .lad-hero { animation: lad-go-stool-rug 0.8s steps(1, end) 1; }
.lad-avatar[data-state=idle]:is([data-from=saving], [data-from=error]) :is(.lad-p-idle, .lad-s-idle) { animation: lad-wait 0.8s steps(1, end) 1; }
.lad-avatar[data-state=idle]:is([data-from=success]) .lad-hero { animation: lad-go-cheer-rug 0.32s steps(1, end) 1; }
.lad-avatar[data-state=idle]:is([data-from=success]) :is(.lad-p-idle, .lad-s-idle) { animation: lad-wait 0.32s steps(1, end) 1; }
.lad-avatar[data-state=thinking]:is([data-from=saving], [data-from=error]) .lad-hero { animation: lad-go-stool-rug 0.8s steps(1, end) 1; }
.lad-avatar[data-state=thinking]:is([data-from=saving], [data-from=error]) :is(.lad-p-thinking, .lad-s-thinking) { animation: lad-wait 0.8s steps(1, end) 1; }
.lad-avatar[data-state=thinking]:is([data-from=success]) .lad-hero { animation: lad-go-cheer-rug 0.32s steps(1, end) 1; }
.lad-avatar[data-state=thinking]:is([data-from=success]) :is(.lad-p-thinking, .lad-s-thinking) { animation: lad-wait 0.32s steps(1, end) 1; }
.lad-avatar[data-state=clarify]:is([data-from=saving], [data-from=error]) .lad-hero { animation: lad-go-stool-rug 0.8s steps(1, end) 1; }
.lad-avatar[data-state=clarify]:is([data-from=saving], [data-from=error]) :is(.lad-p-clarify, .lad-s-clarify) { animation: lad-wait 0.8s steps(1, end) 1; }
.lad-avatar[data-state=clarify]:is([data-from=success]) .lad-hero { animation: lad-go-cheer-rug 0.32s steps(1, end) 1; }
.lad-avatar[data-state=clarify]:is([data-from=success]) :is(.lad-p-clarify, .lad-s-clarify) { animation: lad-wait 0.32s steps(1, end) 1; }
.lad-avatar[data-state=preview]:is([data-from=saving], [data-from=error]) .lad-hero { animation: lad-go-stool-rug 0.8s steps(1, end) 1; }
.lad-avatar[data-state=preview]:is([data-from=saving], [data-from=error]) :is(.lad-p-preview, .lad-s-preview) { animation: lad-wait 0.8s steps(1, end) 1; }
.lad-avatar[data-state=preview]:is([data-from=success]) .lad-hero { animation: lad-go-cheer-rug 0.32s steps(1, end) 1; }
.lad-avatar[data-state=preview]:is([data-from=success]) :is(.lad-p-preview, .lad-s-preview) { animation: lad-wait 0.32s steps(1, end) 1; }
.lad-avatar[data-state=saving]:is([data-from=idle], [data-from=thinking], [data-from=clarify], [data-from=preview]) .lad-hero { animation: lad-go-rug-stool 0.72s steps(1, end) 1; }
.lad-avatar[data-state=saving]:is([data-from=idle], [data-from=thinking], [data-from=clarify], [data-from=preview]) :is(.lad-p-saving, .lad-s-saving) { animation: lad-wait 0.72s steps(1, end) 1; }
.lad-avatar[data-state=saving]:is([data-from=idle], [data-from=thinking], [data-from=clarify], [data-from=preview]) .lad-foot-sit { animation: lad-wait 0.72s steps(1, end) 1; }
.lad-avatar[data-state=saving]:is([data-from=idle], [data-from=thinking], [data-from=clarify], [data-from=preview]) .lad-foot-stand { animation: lad-show 0.72s steps(1, end) 1; }
.lad-avatar[data-state=saving]:is([data-from=success]) .lad-hero { animation: lad-go-cheer-stool 0.48s steps(1, end) 1; }
.lad-avatar[data-state=saving]:is([data-from=success]) :is(.lad-p-saving, .lad-s-saving) { animation: lad-wait 0.48s steps(1, end) 1; }
.lad-avatar[data-state=saving]:is([data-from=success]) .lad-foot-sit { animation: lad-wait 0.48s steps(1, end) 1; }
.lad-avatar[data-state=saving]:is([data-from=success]) .lad-foot-stand { animation: lad-show 0.48s steps(1, end) 1; }
.lad-avatar[data-state=success]:is([data-from=idle], [data-from=thinking], [data-from=clarify], [data-from=preview]) .lad-hero { animation: lad-go-rug-cheer 0.32s steps(1, end) 1; }
.lad-avatar[data-state=success]:is([data-from=idle], [data-from=thinking], [data-from=clarify], [data-from=preview]) :is(.lad-p-success, .lad-s-success) { animation: lad-wait 0.32s steps(1, end) 1; }
.lad-avatar[data-state=success]:is([data-from=saving], [data-from=error]) .lad-hero { animation: lad-go-stool-cheer 0.56s steps(1, end) 1; }
.lad-avatar[data-state=success]:is([data-from=saving], [data-from=error]) :is(.lad-p-success, .lad-s-success) { animation: lad-wait 0.56s steps(1, end) 1; }
.lad-avatar[data-state=error]:is([data-from=idle], [data-from=thinking], [data-from=clarify], [data-from=preview]) .lad-hero { animation: lad-go-rug-stool 0.72s steps(1, end) 1; }
.lad-avatar[data-state=error]:is([data-from=idle], [data-from=thinking], [data-from=clarify], [data-from=preview]) :is(.lad-p-error, .lad-s-error) { animation: lad-wait 0.72s steps(1, end) 1; }
.lad-avatar[data-state=error]:is([data-from=idle], [data-from=thinking], [data-from=clarify], [data-from=preview]) .lad-foot-sit { animation: lad-wait 0.72s steps(1, end) 1; }
.lad-avatar[data-state=error]:is([data-from=idle], [data-from=thinking], [data-from=clarify], [data-from=preview]) .lad-foot-stand { animation: lad-show 0.72s steps(1, end) 1; }
.lad-avatar[data-state=error]:is([data-from=success]) .lad-hero { animation: lad-go-cheer-stool 0.48s steps(1, end) 1; }
.lad-avatar[data-state=error]:is([data-from=success]) :is(.lad-p-error, .lad-s-error) { animation: lad-wait 0.48s steps(1, end) 1; }
.lad-avatar[data-state=error]:is([data-from=success]) .lad-foot-sit { animation: lad-wait 0.48s steps(1, end) 1; }
.lad-avatar[data-state=error]:is([data-from=success]) .lad-foot-stand { animation: lad-show 0.48s steps(1, end) 1; }
@keyframes lad-idle-walk{0%,42%,100%{transform:none}8%{transform:translate(42px,0) scale(-1,1)}9.2%{transform:translate(40px,0) scale(-1,1)}10.4%{transform:translate(38px,0) scale(-1,1)}11.6%{transform:translate(36px,0) scale(-1,1)}12.8%{transform:translate(34px,0) scale(-1,1)}14%{transform:translate(32px,0) scale(-1,1)}15.2%{transform:translate(30px,0) scale(-1,1)}16.4%{transform:translate(28px,0) scale(-1,1)}17.6%{transform:translate(26px,0) scale(-1,1)}18.8%{transform:translate(24px,0) scale(-1,1)}20%{transform:translate(22px,0) scale(-1,1)}30%{transform:translate(-20px,0)}31.2%{transform:translate(-18px,0)}32.4%{transform:translate(-16px,0)}33.6%{transform:translate(-14px,0)}34.8%{transform:translate(-12px,0)}36%{transform:translate(-10px,0)}37.2%{transform:translate(-8px,0)}38.4%{transform:translate(-6px,0)}39.6%{transform:translate(-4px,0)}40.8%{transform:translate(-2px,0)}}
@keyframes lad-idle-step{0%,10.4%,12.8%,15.2%,17.6%,20%,32.4%,34.8%,37.2%,39.6%,42%,100%{opacity:0}9.2%,11.6%,14%,16.4%,18.8%,31.2%,33.6%,36%,38.4%,40.8%{opacity:1}}
@keyframes lad-idle-stand{0%,10.4%,12.8%,15.2%,17.6%,20%,32.4%,34.8%,37.2%,39.6%,42%,100%{opacity:1}9.2%,11.6%,14%,16.4%,18.8%,31.2%,33.6%,36%,38.4%,40.8%{opacity:0}}
@keyframes lad-idle-sip{0%,27%,70%,100%{transform:none}22%,65%{transform:translate(4px,-10px)}}
@keyframes lad-idle-look{0%,70%,88%,100%{transform:none}45%{transform:translate(2px,-2px)}65%{transform:translate(2px,0)}82%{transform:translate(-2px,0)}}
@keyframes lad-idle-note-1{0%{opacity:0;transform:translate(0,0px)}45%,58%{opacity:1;transform:translate(0,0px)}50%,63%{opacity:1;transform:translate(0,-2px)}55%,68%,100%{opacity:0;transform:translate(0,-2px)}}
@keyframes lad-idle-note-2{0%{opacity:0;transform:translate(0,0px)}49.5%,62.5%{opacity:1;transform:translate(0,0px)}54.5%,67.5%{opacity:1;transform:translate(0,-2px)}59.5%,72.5%,100%{opacity:0;transform:translate(0,-2px)}}
@keyframes lad-blink { 0%, 100% { transform: none; } 94% { transform: scaleY(.34); } 97% { transform: none; } }
@keyframes lad-blink-shine { 0%, 100% { opacity: 1; } 94% { opacity: 0; } 97% { opacity: 1; } }
@keyframes lad-steam { 0% { opacity: 0; transform: none; } 15% { opacity: 1; transform: none; } 40% { opacity: 1; transform: translate(0, -2px); } 65%, 100% { opacity: 0; transform: translate(0, -4px); } }
@keyframes lad-bob { 0%, 100% { transform: none; } 50% { transform: translate(0, -2px); } }
@keyframes lad-dot { 0%, 30%, 100% { transform: none; } 10%, 20% { transform: translate(0, -2px); } }
@keyframes lad-pop { 0% { transform: translate(0, 2px); } 50%, 100% { transform: none; } }
@keyframes lad-wave { 0%, 8%, 16%, 100% { transform: none; } 4%, 12% { transform: translate(2px, -2px); } }
@keyframes lad-sink { 0%, 40%, 70%, 100% { transform: none; } 50%, 60% { transform: translate(0, 2px); } }
@keyframes lad-glance { 0%, 100% { transform: translate(2px, -2px); } 45% { transform: translate(2px, 0); } 60% { transform: translate(-2px, 0); } 75% { transform: translate(2px, -2px); } }
@keyframes lad-ants { 0%, 100% { opacity: 1; } 50% { opacity: 0; } }
@keyframes lad-type { 0%, 100% { transform: none; } 50% { transform: translate(0, -2px); } }
@keyframes lad-bar { 0% { transform: scaleX(.1); } 17% { transform: scaleX(.3); } 34% { transform: scaleX(.5); } 50% { transform: scaleX(.7); } 67% { transform: scaleX(.9); } 84%, 100% { transform: scaleX(1); } }
@keyframes lad-hop { 0%, 30%, 60%, 100% { transform: none; } 10%, 20%, 40%, 50% { transform: translate(0, -4px); } 15%, 45% { transform: translate(0, -6px); } }
@keyframes lad-yay { 0%, 69% { opacity: 1; } 70%, 100% { opacity: 0; } }
@keyframes lad-chest { 0%, 69% { opacity: 0; } 70%, 100% { opacity: 1; } }
@keyframes lad-twinkle { 0%, 30%, 45%, 100% { opacity: 0; } 8%, 22%, 52%, 80% { opacity: 1; } 15%, 60%, 70% { opacity: 0; } }
@keyframes lad-scratch { 0%, 6%, 12%, 18%, 100% { transform: none; } 3%, 9%, 15% { transform: translate(-2px, 0); } }
@keyframes lad-wiggle { 0%, 7%, 14%, 100% { transform: none; } 3.5%, 10.5% { transform: translate(2px, 0); } }
@keyframes lad-drop { 0% { opacity: 1; transform: none; } 30% { opacity: 1; transform: translate(0, 2px); } 55% { opacity: 1; transform: translate(0, 4px); } 70%, 100% { opacity: 0; transform: translate(0, 4px); } }
@keyframes lad-twinkle-star { 0%, 100% { opacity: 1; } 40% { opacity: .45; } 60% { opacity: 1; } }
@keyframes lad-wait { 0%, 100% { opacity: 0; } }
@keyframes lad-show { 0%, 100% { opacity: 1; } }
/* Пауза, скрытая вкладка и «уменьшить движение» сильнее любого правила выше. Без движения искры success стоят. */
.lad-avatar[data-paused=true] .lad-room * { animation-play-state: paused !important; }
.lad-avatar[data-reduced-motion=true] .lad-room * { animation: none !important; }
.lad-avatar[data-reduced-motion=true] .lad-room .lad-spark { opacity: 1; }
@media (prefers-reduced-motion: reduce) { .lad-avatar .lad-room * { animation: none !important; } .lad-avatar .lad-room .lad-spark { opacity: 1; } }
