:root{--giay:#f3e7c9;--giay-sang:#fbf3dd;--muc:#2a1d14;--son:#a8322a;--hoe:#e2a72e;--cham:#2c4a7a}
*{box-sizing:border-box}
html,body{margin:0;height:100%;overflow:hidden;overscroll-behavior:none}
/* Điện thoại: chạm đúp (vd. bấm + hai lần) không được phóng to CẢ TRANG — trên #canh cử chỉ hai ngón đã bị tắt nên người xem không thu trang về được. */
html{touch-action:manipulation}
body{height:100vh;height:100dvh;display:grid;grid-template-rows:auto minmax(0,1fr) auto;color:var(--muc);
  font-family:'Patrick Hand',system-ui,sans-serif;font-size:17px;line-height:1.3;background:var(--giay);
  background-image:radial-gradient(rgba(255,255,255,.6) 1px,transparent 1.5px),radial-gradient(rgba(150,110,50,.10) 1px,transparent 1.6px);
  background-size:7px 7px,11px 11px;background-position:0 0,3px 5px}
button{font:inherit;color:inherit}
[hidden]{display:none!important}
.tren{display:flex;align-items:center;gap:10px;padding:8px 12px 6px;min-width:0}
.an-son{flex:none;width:44px;height:44px;background:var(--son);color:#fbeed0;border-radius:6px;display:grid;place-items:center;
  font-family:Lobster,cursive;font-size:11px;line-height:1.05;text-align:center;transform:rotate(-5deg);
  box-shadow:inset 0 0 0 2.5px #fbeed0,inset 0 0 0 4px var(--son),2px 2px 0 rgba(42,29,20,.25)}
.ten-trang{min-width:0}
h1{font-family:Lobster,cursive;font-weight:400;color:var(--son);font-size:32px;margin:0;line-height:1}
/* "Trực tiếp": cho người xem biết lều là bé thật — kèm độ tươi của dữ liệu */
.truc-tiep{display:block;max-width:100%;border:0;background:none;padding:0;margin-top:3px;font-size:15px;text-align:left;cursor:pointer;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.truc-tiep b{color:var(--son);font-weight:400}
.truc-tiep .cham{display:inline-block;width:9px;height:9px;border-radius:50%;background:#d63b3b;margin-right:6px;vertical-align:1px;animation:nhip 1.6s infinite}
.truc-tiep.cu .cham{background:#9a8f80;animation:none}
.truc-tiep.cu b{color:#7a6f60}
@keyframes nhip{0%{box-shadow:0 0 0 0 rgba(214,59,59,.55)}70%{box-shadow:0 0 0 7px rgba(214,59,59,0)}100%{box-shadow:0 0 0 0 rgba(214,59,59,0)}}
.cap-nhat{opacity:.65;font-size:13px}
.chi-dt{display:none}
.chao{position:fixed;inset:0;z-index:30;display:grid;place-items:center;padding:14px;background:rgba(42,29,20,.45)}
.chao .hop{width:min(470px,100%);max-height:calc(100dvh - 28px);overflow:auto;background:var(--giay-sang);border:3px solid var(--muc);border-radius:16px;padding:16px 20px 18px;box-shadow:5px 6px 0 rgba(42,29,20,.3)}
.chao h2{font-family:Lobster,cursive;color:var(--son);font-weight:400;font-size:30px;margin:0;line-height:1.1}
.chao .y{display:flex;gap:10px;margin:9px 0;font-size:17px;line-height:1.3}
.chao .y>span:first-child{flex:none;font-size:22px;line-height:1.1}
.chao .nut-hang{display:flex;gap:8px;margin-top:14px;flex-wrap:wrap}
.chao .nut-hang>*{flex:1;text-align:center;font-size:18px;padding:8px 10px}
.bang-that{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:6px 0 10px}
.bang-that h3{font-size:17px;font-weight:400;margin:0 0 4px;color:var(--son)}
.bang-that ul{margin:0;padding-left:18px;font-size:15px}
.bang-that li{margin:2px 0}
.tam-nghi{position:absolute;inset:0;z-index:4;display:grid;place-items:center;padding:16px;background:rgba(42,29,20,.35)}
.tam-nghi .hop-nghi{max-width:340px;text-align:center;background:var(--giay-sang);border:3px solid var(--muc);border-radius:14px;padding:16px 20px;font-size:17px;box-shadow:4px 4px 0 rgba(42,29,20,.3)}
.tam-nghi b{display:block;font-family:Lobster,cursive;font-weight:400;color:var(--son);font-size:26px;margin:4px 0}
.tam-nghi .bieu-tuong{font-size:34px}
.tam .phu{font-size:14px;opacity:.7;margin:-4px 0 8px}
.dong-ho{margin-left:auto;flex:none;display:flex;align-items:center;gap:8px;background:var(--giay-sang);border:2px solid var(--muc);border-radius:10px;padding:3px 10px 3px 5px;box-shadow:2px 2px 0 rgba(42,29,20,.2)}
.dong-ho .gio{font-size:20px;color:var(--son);line-height:1.05;white-space:nowrap}
.dong-ho .ngay{font-size:13px;opacity:.8;white-space:nowrap}
.san{position:relative;margin:0 10px;border:6px solid var(--muc);border-radius:10px;overflow:hidden;background:#d8c48a;min-height:0;box-shadow:3px 4px 0 rgba(42,29,20,.22)}
.san::after{content:"";position:absolute;inset:3px;border:2px solid var(--son);border-radius:4px;pointer-events:none}
#canh{position:absolute;inset:0;width:100%;height:100%;display:block;touch-action:none;user-select:none;-webkit-user-select:none;cursor:grab;transition:opacity .2s}
#canh.dang-keo{cursor:grabbing}
#canh.doi{opacity:0}
.noi{position:absolute;z-index:2;background:var(--giay-sang);border:2px solid var(--muc);border-radius:999px;box-shadow:2px 2px 0 rgba(42,29,20,.2)}
.chip-dem{top:10px;left:10px;padding:3px 12px;font-size:16px;max-width:calc(100% - 70px);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.chip-dem b,.chip-vi b{color:var(--cham);font-weight:400;font-size:19px}
.thanh-vi{position:absolute;z-index:2;top:10px;left:10px;right:62px;display:flex;flex-wrap:wrap;gap:6px;align-items:center;pointer-events:none}
.thanh-vi>*{pointer-events:auto}
.chip-vi{position:static;padding:3px 12px;font-size:16px;white-space:nowrap}
.dieu-khien{position:absolute;z-index:2;top:10px;right:10px;display:flex;flex-direction:column;gap:6px}
.nut{background:var(--giay-sang);border:2px solid var(--muc);border-radius:9px;padding:5px 12px;cursor:pointer;box-shadow:0 3px 0 var(--muc);font-size:16px;white-space:nowrap}
.nut:active{transform:translateY(2px);box-shadow:0 1px 0 var(--muc)}
.dieu-khien .nut{width:40px;height:40px;padding:0;font-size:20px;line-height:1}
.goi-y{bottom:12px;left:50%;transform:translateX(-50%);padding:4px 14px;font-size:15px;white-space:nowrap;transition:opacity .8s;pointer-events:none;max-width:calc(100% - 20px);overflow:hidden;text-overflow:ellipsis}
.goi-y.tat{opacity:0}
.loa{top:56px;left:50%;transform:translate(-50%,-8px);padding:5px 16px;font-size:19px;white-space:nowrap;opacity:0;transition:opacity .35s,transform .35s;pointer-events:none;max-width:calc(100% - 20px);overflow:hidden;text-overflow:ellipsis}
.loa.hien{opacity:1;transform:translate(-50%,0)}
.the-leu{position:absolute;z-index:3;left:10px;bottom:10px;width:min(330px,calc(100% - 20px));background:var(--giay-sang);border:2.5px solid var(--muc);border-radius:12px;padding:10px 14px 12px;display:none;box-shadow:3px 3px 0 rgba(42,29,20,.25)}
/* Tìm lều: nút vào vi; thẻ tự dời khi che lều của con (tim-leu.mjs) */
.the-leu .vao-vi{display:block;width:100%;margin:8px 0 4px;font-size:16px}
.the-leu.ben-phai{left:auto;right:62px}.the-leu.ben-tren{bottom:auto;top:10px}
.the-leu.hien{display:block}
.the-leu .ten{font-size:23px;color:var(--son);line-height:1.1;padding-right:26px}
.the-leu .hoc-vi{display:flex;align-items:center;gap:8px;margin-top:4px}
.the-leu .dong-x{position:absolute;top:4px;right:6px;border:0;background:none;font-size:26px;cursor:pointer;line-height:1}
.the-leu .tg b{color:var(--cham);font-weight:400;font-size:19px}
.co-vu{display:grid;grid-template-columns:repeat(4,1fr);gap:6px;margin-top:8px}
.co-vu button{background:#fff8e6;border:2px solid var(--muc);border-radius:10px;padding:4px 2px 3px;cursor:pointer;font-size:14px;line-height:1.1;box-shadow:0 2px 0 var(--muc)}
.co-vu button span{display:block;font-size:22px}
.co-vu button:active{transform:translateY(2px);box-shadow:none}
/* Thẻ lều gọn (docs/thi-cong-the-gon.md): dòng cuối có nút "Xem thêm", nút nảy khi bấm, biểu tượng cổ vũ bay trên mặt thẻ */
.the-leu .hv-gon,.the-leu .xem-them,.the-leu .hinh-gon{display:none}
.the-leu .dong-cuoi{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-top:5px}
.the-leu .xem-them{border:0;background:none;font:inherit;font-size:16px;color:var(--cham);cursor:pointer;padding:2px 0 2px 8px;white-space:nowrap}
.co-vu button.nay{animation:nay .38s ease-out}
@keyframes nay{35%{transform:scale(1.14) rotate(-3deg);background:#ffe9a8}}
#cv-cua-toi.chop{animation:chop .6s}
@keyframes chop{30%{opacity:1;color:var(--son)}}
.bay-cv{position:fixed;left:0;top:0;z-index:30;font-size:34px;line-height:1;pointer-events:none;will-change:transform;filter:drop-shadow(0 2px 2px rgba(42,29,20,.35))}
.ghi-chu{font-size:14px;opacity:.65}
.duoi{display:flex;align-items:center;gap:8px;padding:8px 10px;padding-bottom:max(8px,env(safe-area-inset-bottom));min-width:0}
.bang-tin{flex:1;min-width:0;text-align:left;font-size:17px;background:var(--giay-sang);border:2px solid var(--muc);border-radius:10px;padding:6px 12px;cursor:pointer;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.nut-son{background:var(--son);color:#fff4dc;text-decoration:none;font-size:18px}
.tam{position:fixed;z-index:20;right:12px;bottom:64px;width:min(380px,calc(100vw - 24px));max-height:min(68vh,560px);overflow:auto;background:var(--giay-sang);
  border:2.5px solid var(--muc);border-radius:14px;padding:12px 16px 14px;box-shadow:4px 4px 0 rgba(42,29,20,.25);display:none}
.tam.mo{display:block}
.tam h2{font-family:Lobster,cursive;font-weight:400;color:var(--son);font-size:24px;margin:0 30px 8px 0}
.tam .dong-x{position:absolute;top:6px;right:8px;border:0;background:none;font-size:28px;cursor:pointer;line-height:1}
form.tim{display:flex;gap:8px}
form.tim input{flex:1;min-width:0;font:inherit;font-size:19px;padding:6px 10px;border:2px solid var(--muc);border-radius:9px;background:#fff}
.ket-qua-tim{min-height:22px;margin:8px 0 4px;font-size:16px}
.ket-qua-tim a{color:var(--son)}
ul.su-kien{list-style:none;margin:0;padding:0}
ul.su-kien li{padding:6px 2px;border-bottom:1.5px dashed #cdb582;font-size:17px}
ul.su-kien li .luc{font-size:13px;opacity:.55;white-space:nowrap}
ul.su-kien li.he-thong{font-style:italic;opacity:.8}
.thang{display:grid;grid-template-columns:repeat(4,1fr);gap:4px 2px;text-align:center;font-size:14px;line-height:1.1}
.thang svg{display:block;margin:0 auto}
/* ---------- sân vắng · Bảng vàng · Thầy Cóc ra đề (docs/thi-cong-san-vang.md) ---------- */
.hang-vang{position:absolute;z-index:2;top:48px;left:10px;right:62px;display:flex;flex-wrap:wrap;gap:6px;pointer-events:none}
.hang-vang[hidden]{display:none}
.hang-vang>button{pointer-events:auto;position:static;font:inherit;font-size:15px;padding:3px 12px;cursor:pointer;color:var(--muc);text-align:left;max-width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.hang-vang b{color:var(--cham);font-weight:400}
.so-lieu{display:grid;grid-template-columns:1fr 1fr;gap:6px;margin:4px 0 10px}
.so-lieu>div{background:#fff8e6;border:2px solid var(--muc);border-radius:10px;padding:4px 8px;line-height:1.15}
.so-lieu b{display:block;font-size:24px;color:var(--son);font-weight:400}
.ten-vang{margin:2px 0 8px;padding-left:20px;font-size:16px}
.ten-vang li{margin:1px 0}
.tam h3{font-size:17px;font-weight:400;color:var(--son);margin:8px 0 2px}
.de-coc{font-size:19px;line-height:1.35;margin:4px 0 10px}
.lua-chon{display:grid;gap:6px}
.lua-chon button{font:inherit;font-size:18px;text-align:left;background:#fff8e6;border:2px solid var(--muc);border-radius:10px;padding:6px 12px;cursor:pointer;box-shadow:0 2px 0 var(--muc);color:var(--muc)}
.lua-chon button.dung{background:#dff0c8}.lua-chon button.sai{background:#f6d3cc;opacity:.75}
.lua-chon button:disabled{cursor:default}
.loi-coc{margin:10px 0 4px;font-size:17px;min-height:1.3em}
.hang-nut{display:flex;gap:8px;flex-wrap:wrap;margin-top:8px}.hang-nut>*{flex:1;text-align:center}
@media (max-width:700px){
  .chu-dai,.dong-ho .ngay,.cap-nhat,.chi-pc{display:none}
  .chi-dt{display:inline}.truc-tiep{font-size:13px}
  .bang-that{grid-template-columns:1fr}
  h1{font-size:26px}.an-son{width:36px;height:36px;font-size:9px}
  .tam{left:8px;right:8px;width:auto;bottom:60px}
  .bang-tin{font-size:15px}.chip-dem,.chip-vi{font-size:14px}.chip-dem b,.chip-vi b{font-size:16px}
  .loa{top:94px;font-size:16px}.nut{padding:5px 10px}
  .co-vu button{font-size:13px}
  /* thẻ lều thu gọn — phần .chi-tiet chỉ hiện khi bấm "Xem thêm"; hình sĩ tử vào chỗ trống bên phải, chữ tự chảy quanh */
  .the-leu{padding:7px 12px 6px;max-height:calc(100% - 20px);overflow:auto}
  .the-leu .ten{font-size:21px}
  .the-leu .hv-gon{display:inline;font-size:17px;color:var(--muc)}
  .the-leu .xem-them{display:inline}
  .the-leu:not(.mo-rong) .chi-tiet{display:none}
  .the-leu:not(.mo-rong) .hinh-gon{display:block;float:right;margin:4px 26px 0 6px}
  .the-leu .co-vu{margin-top:6px;clear:both}
  .co-vu button{padding:3px 2px 2px}.co-vu button span{font-size:20px}
}
@media (max-height:520px){
  .tren{padding:3px 10px}.an-son,.cap-nhat{display:none}h1{font-size:22px}
  .duoi{padding-top:4px;padding-bottom:max(4px,env(safe-area-inset-bottom))}
  .tam{bottom:52px;max-height:calc(100vh - 70px)}
}
/* ---------- hoạt cảnh trong tranh ---------- */
.moc{transform-box:fill-box;transform-origin:50% 100%;animation:dung .8s cubic-bezier(.3,1.6,.5,1)}
@keyframes dung{from{transform:scale(.15,0)}to{transform:none}}
.cuon-leu{transform-box:fill-box;transform-origin:50% 100%;animation:cuon .5s ease-in forwards}
@keyframes cuon{to{transform:scale(.25,0);opacity:.3}}
.nhay{transform-box:fill-box;transform-origin:50% 100%}
.giat .nhay{animation:nhay .6s ease-out}
@keyframes nhay{0%,100%{transform:translateY(0)}25%{transform:translateY(-10px)}}
.nhay.vuon{animation:vuon 1s ease-in-out}
@keyframes vuon{30%{transform:scaleY(1.1) translateY(-5px)}60%{transform:scaleY(.95)}}
.nhay.chao{animation:chao .5s ease-in-out 3}
@keyframes chao{50%{transform:rotate(-6deg) translateY(-4px)}}
/* Bé đang ngủ ngó ra khỏi lều (ngu-ngo.mjs). Phần tử có hoạt cảnh CSS không mang thuộc tính transform. */
.ngo .mat-nham,.ngo .mat-mo,.ngo .mat-tron,.ngo .mieng-cuoi,.ngo .mieng-o,.ngo .mieng-ha,.ngo .mieng-phang{display:none}
.ngo[data-mat=nham] .mat-nham,.ngo[data-mat=mo] .mat-mo,.ngo[data-mat=tron] .mat-tron,
.ngo[data-mieng=cuoi] .mieng-cuoi,.ngo[data-mieng=o] .mieng-o,.ngo[data-mieng=ha] .mieng-ha,.ngo[data-mieng=phang] .mieng-phang{display:inline}
.ngo .dau-ngo,.ngo .than-ngo{transform-box:fill-box;transform-origin:50% 100%}
.dau-ngo.hit-ha{animation:hitHa .8s ease-in-out 2}
@keyframes hitHa{50%{transform:rotate(9deg) translateX(2px)}}
.dau-ngo.giat-mui{animation:giatMui .16s linear 4}
@keyframes giatMui{50%{transform:translateY(-1.5px) rotate(-3deg)}}
.dau-ngo.hat-xi{animation:hatXi .5s cubic-bezier(.2,1.6,.4,1)}
@keyframes hatXi{35%{transform:translateY(5px) scale(1.12) rotate(-4deg)}}
.dau-ngo.quanh{animation:quanh 1.2s ease-in-out}
@keyframes quanh{20%,40%{transform:rotate(-16deg)}60%,80%{transform:rotate(16deg)}}
.than-ngo.bat{animation:bat .45s ease-out}
@keyframes bat{40%{transform:translateY(-7px) scaleY(1.06)}}
.than-ngo.cui{animation:cui 1.9s ease-in-out}
@keyframes cui{10%,38%{transform:translateY(6px) scaleY(.9)}20%,48%{transform:none}70%{transform:translateY(15px) scaleY(.82) rotate(5deg)}80%{transform:translateY(12px) rotate(-7deg)}90%{transform:translateY(4px) rotate(4deg)}}
.than-ngo.loang{animation:loang .8s ease-in-out}
@keyframes loang{25%{transform:rotate(-6deg)}75%{transform:rotate(6deg)}}
.than-ngo.sup{animation:sup .5s ease-out forwards}
@keyframes sup{to{transform:translateY(4px) scaleY(.93)}}
.nhay.rung-leu{animation:rungLeu .09s linear 5}
@keyframes rungLeu{25%{transform:translateX(-2.5px)}75%{transform:translateX(2.5px)}}
.lac-bien{transform-box:fill-box;transform-origin:50% 0;animation:lacBien 2.6s ease-in-out infinite}
@keyframes lacBien{0%,100%{transform:rotate(-4deg)}50%{transform:rotate(4deg)}}
.dau{transform-box:fill-box;transform-origin:50% 100%}
.dau.hoc{animation:gat 3.2s ease-in-out infinite}
.dau.an{animation:gat 1.5s ease-in-out infinite}
.dau.ngu{animation:ngu 4.5s ease-in-out infinite}
@keyframes gat{0%,100%{transform:rotate(-5deg)}50%{transform:rotate(5deg)}}
@keyframes ngu{0%,100%{transform:rotate(9deg)}50%{transform:rotate(15deg)}}
.zzz{font:14px 'Patrick Hand',sans-serif;fill:#2c4a7a;animation:zz 3s linear infinite}
@keyframes zz{0%{opacity:0;transform:translate(0,0)}30%{opacity:1}100%{opacity:0;transform:translate(9px,-16px)}}
.lua{transform-box:fill-box;transform-origin:50% 100%;animation:lua .8s ease-in-out infinite alternate}
@keyframes lua{from{transform:scale(.8,.85)}to{transform:scale(1.1,1.15)}}
.den{animation:chap 1.7s ease-in-out infinite alternate}
@keyframes chap{from{opacity:.7}to{opacity:1}}
.hao-quang{transform-box:fill-box;transform-origin:center;animation:hq 2.6s ease-in-out infinite}
@keyframes hq{50%{transform:scale(1.18);opacity:.65}}
.co-bay{transform-box:fill-box;transform-origin:0% 50%;animation:vay 1.3s ease-in-out infinite alternate}
@keyframes vay{from{transform:skewY(-8deg) scaleX(.88)}to{transform:skewY(6deg) scaleX(1)}}
.leu,.bang-ten,.co-vi,#coc,#choi-canh{cursor:pointer}
.bang-ten rect{transition:fill .2s}
.bang-ten:hover rect{fill:#fff1bf}
.bang-ten.chon rect{fill:#f6d26b;stroke:#a8322a;stroke-width:2.5}
.ten-be{font:15px 'Patrick Hand',sans-serif;fill:#2a1d14}
.xa #nhan .bang-ten:not(.chon){display:none}
.vong-sang{transform-box:fill-box;transform-origin:center;animation:vong 1.5s ease-out infinite}
@keyframes vong{from{transform:scale(.35);opacity:1}to{transform:scale(1.5);opacity:0}}
.may{animation:troi-may 140s ease-in-out infinite alternate}
@keyframes troi-may{to{transform:translateX(180px)}}
.dieu{transform-box:fill-box;transform-origin:50% 100%;animation:dieu 3s ease-in-out infinite alternate}
@keyframes dieu{from{transform:rotate(-9deg)}to{transform:rotate(8deg) translateY(-8px)}}
.vo-canh{transform-box:fill-box;transform-origin:center;animation:vo .2s ease-in-out infinite alternate}
@keyframes vo{to{transform:scaleY(-.5)}}
.khoi{transform-box:fill-box;transform-origin:center;animation:khoi 3.6s ease-out infinite}
@keyframes khoi{0%{transform:translateY(0) scale(.5);opacity:0}20%{opacity:.75}100%{transform:translateY(-50px) scale(1.7);opacity:0}}
.dom{animation:dom 3.4s ease-in-out infinite alternate}
@keyframes dom{0%{transform:translate(0,0);opacity:.15}50%{opacity:1}100%{transform:translate(16px,-12px);opacity:.25}}
.di-bo{transform-box:fill-box;transform-origin:50% 100%;animation:di .3s ease-in-out infinite alternate}
@keyframes di{from{transform:translateY(0) rotate(-3deg)}to{transform:translateY(-3px) rotate(3deg)}}
.chan-a,.chan-b{transform-box:fill-box;transform-origin:50% 0%;animation:chan .3s ease-in-out infinite alternate}
.chan-b{animation-direction:alternate-reverse}
@keyframes chan{from{transform:rotate(-22deg)}to{transform:rotate(22deg)}}
.bong{transform-box:fill-box;transform-origin:50% 100%;animation:bong 2.8s ease-out forwards}
@keyframes bong{0%{transform:scale(0);opacity:0}10%{transform:scale(1.12);opacity:1}18%{transform:scale(1)}82%{opacity:1}100%{opacity:0;transform:translateY(-10px)}}
.loi{font:15px 'Patrick Hand',sans-serif;fill:#2a1d14}
.trong{transform-box:fill-box;transform-origin:center}
.giat .trong{animation:rung .15s linear 4}
@keyframes rung{50%{transform:translateX(2px) rotate(4deg)}}
.chu-vi{font:21px 'Patrick Hand',sans-serif;fill:#fff5dc}
.chu-bang{font:15px 'Patrick Hand',sans-serif;fill:#f6e2a8}
.chu-dem-vi{font:15px 'Patrick Hand',sans-serif;fill:#2a1d14}
.chu-day{font:16px 'Patrick Hand',sans-serif;fill:#fff5dc}
.chu-cong-vi{font:30px 'Patrick Hand',sans-serif;fill:#fff5dc}
/* mỗi bé một kiểu học */
.but{transform-box:fill-box;transform-origin:0% 100%;animation:but .5s ease-in-out infinite alternate}
@keyframes but{from{transform:translate(-5px,1px) rotate(-8deg)}to{transform:translate(4px,-1px) rotate(6deg)}}
.hat{animation:hat .7s steps(2) infinite alternate}
@keyframes hat{to{transform:translateX(6px)}}
.gay{animation:hat .35s steps(2) infinite alternate}
.quat-tay{transform-box:fill-box;transform-origin:0% 100%;animation:quat .45s ease-in-out infinite alternate}
@keyframes quat{from{transform:rotate(-18deg)}to{transform:rotate(14deg)}}
.gai{animation:gai .18s linear infinite alternate}
@keyframes gai{to{transform:translate(1px,-3px)}}
.dau.nghi{animation:nghi 5s ease-in-out infinite}
@keyframes nghi{0%,100%{transform:rotate(4deg)}50%{transform:rotate(11deg)}}
.lac{transform-box:fill-box;transform-origin:50% 100%;animation:lac 1.6s ease-in-out infinite}
@keyframes lac{0%,100%{transform:rotate(-6deg)}50%{transform:rotate(6deg)}}
.mieng{transform-box:fill-box;transform-origin:center;animation:mieng .3s infinite alternate}
@keyframes mieng{to{transform:scaleY(.3)}}
/* giờ nghỉ: sĩ tử ra khỏi lều làm việc khác */
.cau{animation:cau 1s ease-in-out infinite}
@keyframes cau{0%,100%{transform:translateY(0)}50%{transform:translateY(-60px)}}
.nhun{transform-box:fill-box;transform-origin:50% 100%;animation:nhun 1s ease-in-out infinite}
@keyframes nhun{0%,25%,100%{transform:none}8%{transform:rotate(-9deg) translateY(-3px)}}
.dao{transform-box:fill-box;transform-origin:50% 100%;animation:dao 9s linear infinite}
@keyframes dao{0%{transform:translateX(-30px)}48%{transform:translateX(60px)}50%{transform:translateX(60px) scaleX(-1)}98%{transform:translateX(-30px) scaleX(-1)}100%{transform:translateX(-30px)}}
.tap{transform-box:fill-box;transform-origin:50% 100%;animation:tap .9s ease-in-out infinite}
@keyframes tap{0%,100%{transform:none}30%{transform:scaleY(.9)}60%{transform:translateY(-10px)}}
.tay-tap{transform-box:fill-box;transform-origin:50% 100%;animation:taytap .9s ease-in-out infinite}
@keyframes taytap{0%,100%{transform:scaleY(1)}50%{transform:scaleY(-.6)}}
.nhun-day{transform-box:fill-box;transform-origin:50% 100%;animation:nhunday .6s ease-in-out infinite}
@keyframes nhunday{0%,100%{transform:none}50%{transform:translateY(-9px)}}
.day{transform-box:fill-box;transform-origin:center;animation:day .6s linear infinite}
@keyframes day{0%,100%{transform:scaleY(1)}50%{transform:scaleY(-1)}}
@media (prefers-reduced-motion:reduce){*{animation:none!important}}
