:root{--bg-1:#ffe9d6;--bg-2:#ffd6e8;--ink:#5a4636;--accent:#ff9e57;--accent-dark:#e98c1f}*{box-sizing:border-box}body{margin:0;min-height:100vh;font-family:PingFang SC,Microsoft YaHei,system-ui,-apple-system,sans-serif;color:var(--ink);background:radial-gradient(circle at 30% 20%,var(--bg-2),var(--bg-1) 70%);justify-content:center;align-items:flex-start;padding:32px 16px 64px;cursor:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2240%22%20height%3D%2240%22%20viewBox%3D%220%200%2036%2036%22%3E%3Cpath%20fill%3D%22%23dcc9ad%22%20d%3D%22M20.5%202.965a2.5%202.5%200%200%200-2.5%202.5v.005L15.5.465a2.5%202.5%200%200%200-2.5%202.5V4.25l-2.5-1.535a2.5%202.5%200%200%200-2.5%202.5V8.75L7%2018h13.542z%22%2F%3E%3Cpath%20fill%3D%22%23ffffff%22%20d%3D%22M31.375%2016.219c-1.381-.611-3.354.208-4.75%202.188c-.917%201.3-1.187%203.151-2.391%203.344c-.46.073-1.234-.313-1.234-1.397V4.5s0-2-2-2s-2%202-2%202v11.633c0-.029-1-.064-1-.082V2s0-2-2-2s-2%202-2%202v14.053c0%20.017-1%20.041-1%20.069V4.25s0-2-2-2s-2%202-2%202v12.638c0%20.118-1%20.251-1%20.398V8.75s0-2-2-2s-2%202-2%202V24c0%206.627%205.373%2012%2012%2012c4.775%200%208.06-2.598%209.896-5.292c1.557-2.285%202.009-4.658%202.104-5.375c0%200%20.123-1.479%201.156-2.865a58%2058%200%200%201%203.125-3.866c.317-.358.625-1.706-.906-2.383%22%20stroke%3D%22%235a4636%22%20stroke-width%3D%221%22%20stroke-linejoin%3D%22round%22%2F%3E%3Cpath%20fill%3D%22%23dcc9ad%22%20d%3D%22M23.439%2021.471c-.297-.266-.372-.552-.417-.808c-1.892.259-4.457.789-6.427%202.715c-2.556%202.499-2.992%205.2-2.971%207.007c.017%201.457.812%202.147%201.045-.012c.292-2.706%202.254-8.063%208.784-8.58c.028-.002.387-.024.591-.035c0%200-.352-.06-.605-.287%22%2F%3E%3C%2Fsvg%3E") 17 2,auto}.stage,body{display:flex}.stage{width:100%;max-width:520px;flex-direction:column;align-items:center;gap:18px}.title{font-size:28px;margin:0;letter-spacing:1px}.title-en{font-size:15px;color:var(--accent-dark);font-weight:400;margin-left:6px}.cat-wrap{position:relative;width:320px;height:340px;display:flex;align-items:flex-end;justify-content:center}.cat{width:300px;height:auto;cursor:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2240%22%20height%3D%2240%22%20viewBox%3D%220%200%2036%2036%22%3E%3Cg%20transform%3D%22rotate%28270%2018%2018%29%22%3E%3Cpath%20fill%3D%22%23ffffff%22%20d%3D%22M32.375%2016.219c-1.381-.611-3.354.208-4.75%202.188c-.917%201.3-1.187%203.151-2.391%203.344c-.46.074-.71-.206-.84-.609c-.137-.68-.107-1.731.147-3.201l2.74-12.315c.218-.941-.293-1.852-1.523-2.149s-2.155.306-2.374%201.247L20.938%2015.89c-.493%202.466-1.407%202.018-1.186-.775v-.001l.701-13.092C20.51%201.01%2019.732.183%2018.582.139s-1.979.646-2.038%201.657l-.668%2013.409c-.143%202.707-1.112%201.687-1.322-.274L13%204.083c-.159-1.023-1.118-1.73-2.268-1.546c-1.15.185-1.845%201.136-1.686%202.159l1.495%209.914c.593%203.785-.182%204.833-1.458.723L7.489%209.308c-.26-.967-1.213-1.567-2.41-1.231s-1.713%201.299-1.454%202.266l1.558%205.663c.651%204.077.651%205.686.651%208.493S7.125%2036%2017%2036s11.906-10.031%2012-10.666c0%200%20.123-1.48%201.156-2.865a58%2058%200%200%201%203.125-3.866c.317-.359.625-1.707-.906-2.384%22%20stroke%3D%22%235a4636%22%20stroke-width%3D%221%22%20stroke-linejoin%3D%22round%22%2F%3E%3Cpath%20fill%3D%22%23dcc9ad%22%20d%3D%22M24.911%2021.741c-.3-.122-.554-.436-.584-1.119c-1.892.259-4.451.789-6.42%202.715c-2.556%202.499-2.992%205.2-2.971%207.007c.017%201.457.812%202.147%201.045-.012c.293-2.727%202.282-8.143%208.93-8.591%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E") 5 20,pointer;overflow:visible;-webkit-user-select:none;-moz-user-select:none;user-select:none}.cat.petting #head{transform-origin:200px 260px;animation:pet-wiggle .45s ease-in-out infinite}@keyframes pet-wiggle{0%,to{transform:rotate(-2.5deg)}50%{transform:rotate(2.5deg)}}#cat-body{transform-origin:200px 360px;animation:breathe 3.4s ease-in-out infinite}@keyframes breathe{0%,to{transform:translateY(0) scale(1)}50%{transform:translateY(-4px) scale(1.015)}}#tail{transform-origin:289px 303px;animation:tail-sway 2.6s ease-in-out infinite}@keyframes tail-sway{0%,to{transform:rotate(-6deg)}50%{transform:rotate(10deg)}}#eyes-open{transform-origin:200px 185px;transition:transform .08s ease}.cat.blinking #eyes-open{transform:scaleY(.08)}#pupils{transition:transform .12s ease-out}#anger-mark,#angry-spikes,#excited-burst,#eyes-angry,#eyes-excited,#eyes-happy,#eyes-love,#eyes-sad,#eyes-sleep,#love-notes,#mouth-fang,#mouth-frown,#mouth-grin,#mouth-open,#sad-tail,#sleep-zzz,#tongue-normal{display:none}.cat.act-stretch #cat-body{animation:stretch 1.8s ease-in-out}@keyframes stretch{0%{transform:translateY(0) scaleX(1) scaleY(1)}35%{transform:translateY(2px) scaleX(1.14) scaleY(.9)}60%{transform:translateY(2px) scaleX(1.14) scaleY(.9)}to{transform:translateY(0) scaleX(1) scaleY(1)}}.cat.act-look #head{animation:look-around 2.6s ease-in-out;transform-origin:200px 230px}@keyframes look-around{0%,to{transform:rotate(0deg)}25%{transform:rotate(-9deg)}75%{transform:rotate(9deg)}}.cat.act-walk{animation:walk-around 6s ease-in-out}@keyframes walk-around{0%{transform:translateX(0)}22%{transform:translateX(-46px)}30%{transform:translateX(-46px)}70%{transform:translateX(46px)}78%{transform:translateX(46px)}to{transform:translateX(0)}}.cat.act-walk #cat-body{animation:walk-bob .42s ease-in-out infinite}@keyframes walk-bob{0%,to{transform:translateY(0)}50%{transform:translateY(-4px)}}.cat.act-walk #tail{animation:tail-sway 1.1s ease-in-out infinite}.cat.act-walk .paw{transform-box:fill-box;transform-origin:center}.cat.act-walk .paw-left,.cat.act-walk .paw-right{animation:paw-step .84s ease-in-out infinite}.cat.act-walk .paw-right{animation-delay:-.42s}@keyframes paw-step{0%,50%,to{transform:translate(0) rotate(0deg)}25%{transform:translate(2px,-8px) rotate(-6deg)}}.cat.act-saunter{animation:saunter-around 5.2s ease-in-out}@keyframes saunter-around{0%{transform:translateX(0)}45%{transform:translateX(34px)}55%{transform:translateX(34px)}to{transform:translateX(0)}}.cat.act-saunter #cat-body{animation:saunter-sway 1.3s ease-in-out infinite}@keyframes saunter-sway{0%,to{transform:translateY(0) rotate(0deg)}25%{transform:translateY(-2px) rotate(-2deg)}75%{transform:translateY(-2px) rotate(2deg)}}.cat.act-saunter #tail{animation:tail-sway 1.7s ease-in-out infinite}.cat.act-eye-roll #pupils{transform:none!important}.cat.act-eye-roll #pupil-left{transform-origin:155px 187px;animation:pupil-spin .55s linear infinite}.cat.act-eye-roll #pupil-right{transform-origin:245px 187px;animation:pupil-spin .55s linear infinite}@keyframes pupil-spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.cat.act-head-shake #head{transform-origin:200px 230px;animation:head-shake .18s ease-in-out 6}@keyframes head-shake{0%,to{transform:rotate(0deg)}25%{transform:rotate(-9deg)}75%{transform:rotate(9deg)}}.cat.act-bounce #cat-body{animation:reflex-bounce .62s cubic-bezier(.34,1.56,.64,1)}@keyframes reflex-bounce{0%{transform:translateY(0) scaleY(1)}22%{transform:translateY(3px) scaleY(.9)}50%{transform:translateY(-22px) scaleY(1.07)}76%{transform:translateY(0) scaleY(.95)}to{transform:translateY(0) scaleY(1)}}.cat.act-sparkle #excited-burst{display:block}.cat.act-sparkle .burst-star{animation:burst-star-pop .62s cubic-bezier(.34,1.56,.64,1)}.cat.act-sparkle .burst-lines{animation:burst-lines-flash .3s ease-in-out 2}.cat.act-wiggle #tail{animation:reflex-wiggle .175s ease-in-out 4}@keyframes reflex-wiggle{0%,to{transform:rotate(0deg)}25%{transform:rotate(-11deg)}75%{transform:rotate(11deg)}}.cat.act-wilt #cat-body{animation:reflex-wilt .82s ease-in-out}.cat.act-wilt #head{transform-origin:200px 230px;animation:reflex-wilt-head .82s ease-in-out}@keyframes reflex-wilt{0%,to{transform:translateY(0) scaleY(1)}40%{transform:translateY(5px) scaleY(.955)}60%{transform:translateY(5px) scaleY(.955)}}@keyframes reflex-wilt-head{0%,to{transform:translateY(0) rotate(0deg)}40%{transform:translateY(4px) rotate(-4deg)}60%{transform:translateY(4px) rotate(-4deg)}}.cat.act-tilt #head{transform-origin:200px 230px;animation:reflex-tilt .9s ease-in-out}@keyframes reflex-tilt{0%,to{transform:rotate(0deg)}30%{transform:rotate(-13deg)}70%{transform:rotate(-13deg)}}.cat.act-cheer #cat-body{animation:reflex-bounce .48s cubic-bezier(.34,1.56,.64,1) 2}.cat.act-cheer .paw{transform-box:fill-box;transform-origin:center}.cat.act-cheer .paw-left{animation:reflex-cheer-paw-left .48s ease-in-out 2}.cat.act-cheer .paw-right{animation:reflex-cheer-paw-right .48s ease-in-out 2}@keyframes reflex-cheer-paw-left{0%,to{transform:translate(0) rotate(0deg)}50%{transform:translate(-4px,-16px) rotate(-18deg)}}@keyframes reflex-cheer-paw-right{0%,to{transform:translate(0) rotate(0deg)}50%{transform:translate(4px,-16px) rotate(18deg)}}.cat.act-ponder #head{transform-origin:200px 230px;animation:reflex-ponder 1.5s ease-in-out}@keyframes reflex-ponder{0%,to{transform:rotate(0deg) translateY(0)}30%{transform:rotate(7deg) translateY(-2px)}65%{transform:rotate(-5deg) translateY(-2px)}}.cat.state-happy #eyes-open{display:none}.cat.state-happy #eyes-happy{display:block}.cat.state-happy .blush{fill:#ff8da3;opacity:.95;transform:scale(1.15);transform-box:fill-box;transform-origin:center}.cat.state-happy #cat-body{animation:happy-bounce .5s ease-in-out infinite}@keyframes happy-bounce{0%,to{transform:translateY(0)}50%{transform:translateY(-12px)}}.cat.state-thinking #head{transform:rotate(-7deg);transform-origin:200px 230px;transition:transform .3s}.cat.state-thinking #tail{animation-duration:4.5s}.cat.state-surprised #eyes-open{transform:scale(1.18)}.cat.state-surprised #mouth-smile{display:none}.cat.state-surprised #mouth-open{display:block;transform:scale(1.1);transform-box:fill-box;transform-origin:center}.cat.state-angry #eyes-open{display:none}.cat.state-angry #eyes-angry{display:block}.cat.state-angry #mouth-smile{display:none}.cat.state-angry #mouth-fang{display:block}.cat.state-angry .blush{opacity:0}.cat.state-angry #tail{animation:angry-tail-lash .35s ease-in-out infinite}.cat.state-angry #angry-spikes{display:block;animation:spikes-shiver .08s ease-in-out infinite}.cat.state-angry #anger-mark{display:block;transform-box:fill-box;transform-origin:center;animation:anger-pulse .5s ease-in-out infinite}.cat.state-angry #cat-body{animation:arched-back .09s ease-in-out infinite;transform-origin:200px 380px}.cat.state-angry #head{animation:angry-shake .08s ease-in-out infinite;transform-origin:200px 230px}.cat.state-angry .slit-pupil{animation:slit-twitch .18s ease-in-out infinite}.cat.state-angry .anger-vein{animation:vein-pulse .45s ease-in-out infinite;transform-origin:center}@keyframes arched-back{0%,to{transform:translateY(-9px) scale(1.08,1.04)}50%{transform:translateY(-10px) scale(1.09,1.04)}}@keyframes angry-shake{0%,to{transform:translate(0) rotate(0deg)}25%{transform:translate(-4px,-1px) rotate(-2deg)}75%{transform:translate(4px,-1px) rotate(2deg)}}@keyframes angry-tail-lash{0%,to{transform:rotate(-18deg)}50%{transform:rotate(22deg)}}@keyframes spikes-shiver{0%,to{transform:translateY(0)}50%{transform:translateY(-1.5px)}}@keyframes slit-twitch{0%,to{transform:translateX(0)}50%{transform:translateX(1.5px)}}@keyframes vein-pulse{0%,to{opacity:.6}50%{opacity:1}}@keyframes anger-pulse{0%,to{transform:scale(1);opacity:.85}50%{transform:scale(1.28);opacity:1}}.cat.state-excited #eyes-open{display:none}.cat.state-excited #eyes-excited{display:block}.cat.state-excited #mouth-smile{display:none}.cat.state-excited #excited-burst,.cat.state-excited #mouth-grin,.cat.state-excited #tongue-normal{display:block}.cat.state-excited .blush{fill:#ff8da3;opacity:1}.cat.state-excited .star-eye{transform-box:fill-box;transform-origin:center;animation:star-twinkle .45s cubic-bezier(.34,1.56,.64,1) infinite}.cat.state-excited .burst-star{animation:burst-star-pop .65s cubic-bezier(.34,1.56,.64,1) infinite}.cat.state-excited .burst-lines{animation:burst-lines-flash .32s ease-in-out infinite;transform-origin:200px 200px}.cat.state-excited .drool{animation:drool-drip 1.6s ease-in infinite;transform-box:fill-box;transform-origin:top center}.cat.state-excited #cat-body{animation:excited-bounce .28s cubic-bezier(.34,1.56,.64,1) infinite,excited-wiggle .55s ease-in-out infinite}@keyframes excited-bounce{0%,to{transform:translateY(0) scale(1)}35%{transform:translateY(-26px) scale(1.05,.95)}to{transform:translateY(0) scale(.96,1.06)}}@keyframes excited-wiggle{0%,to{transform:translateX(0) rotate(0deg)}25%{transform:translateX(-6px) rotate(-3deg)}75%{transform:translateX(6px) rotate(3deg)}}@keyframes star-twinkle{0%{transform:scale(.4) rotate(-30deg)}60%{transform:scale(1.55) rotate(15deg)}to{transform:scale(1.1) rotate(0deg)}}@keyframes burst-star-pop{0%{transform:scale(0);opacity:0}40%{transform:scale(1.4);opacity:1}70%{transform:scale(1);opacity:1}to{transform:scale(.4);opacity:0}}@keyframes burst-lines-flash{0%,to{opacity:.3;transform:scale(.9)}50%{opacity:1;transform:scale(1.05)}}@keyframes drool-drip{0%{transform:scaleY(.4);opacity:.4}60%{transform:scaleY(1);opacity:1}to{transform:scaleY(1.3) translateY(8px);opacity:0}}.cat.state-sad #eyes-open{display:none}.cat.state-sad #eyes-sad{display:block}.cat.state-sad #mouth-smile{display:none}.cat.state-sad #mouth-frown{display:block}.cat.state-sad .blush{opacity:.3}.cat.state-sad #head{transform:translateY(7px) rotate(-2deg);transform-origin:200px 230px;transition:transform .4s ease}.cat.state-sad #cat-body{animation:none}.cat.state-sad #tail{display:none}.cat.state-sad #sad-tail{display:block;transform-origin:300px 320px;animation:sad-tail-sway 4.5s ease-in-out infinite}@keyframes sad-tail-sway{0%,to{transform:rotate(0deg)}50%{transform:rotate(3deg)}}.cat.state-sad .tear{transform-box:fill-box;transform-origin:top center;animation:tear-drip 1.7s ease-in infinite}@keyframes tear-drip{0%{transform:translateY(0);opacity:0}20%{opacity:1}80%{opacity:1}to{transform:translateY(42px);opacity:0}}.cat.state-love #eyes-open{display:none}.cat.state-love #eyes-love{display:block}.cat.state-love #mouth-smile{display:none}.cat.state-love #love-notes,.cat.state-love #mouth-grin{display:block}.cat.state-love .blush{fill:#ff7a9c;opacity:1;transform:scale(1.2);transform-box:fill-box;transform-origin:center}.cat.state-love .dewy-eye{transform-box:fill-box;transform-origin:center;animation:dewy-shine 1.6s ease-in-out infinite}.cat.state-love .float-note{transform-box:fill-box;transform-origin:center;animation:float-note 2.6s ease-in infinite}.cat.state-love #cat-body{animation:love-wiggle 1.1s ease-in-out infinite}@keyframes dewy-shine{0%,to{transform:scale(1)}50%{transform:scale(1.1)}}@keyframes float-note{0%{transform:translate(0) rotate(-8deg) scale(.6);opacity:0}20%{opacity:1}50%{transform:translate(8px,-38px) rotate(10deg) scale(1)}to{transform:translate(-6px,-80px) rotate(-12deg) scale(1.05);opacity:0}}@keyframes love-wiggle{0%,to{transform:translateY(0) rotate(0deg)}25%{transform:translateY(-10px) rotate(-4deg)}50%{transform:translateY(0) rotate(0deg)}75%{transform:translateY(-10px) rotate(4deg)}}.cat.state-sleep #eyes-open{display:none}.cat.state-sleep #eyes-sleep,.cat.state-sleep #sleep-zzz{display:block}.cat.state-sleep .blush{opacity:.5}.cat.state-sleep #cat-body{animation:sleep-breathe 4.6s ease-in-out infinite}@keyframes sleep-breathe{0%,to{transform:translateY(0) scale(1)}50%{transform:translateY(-7px) scale(1.03)}}.cat.state-sleep #head{transform-origin:200px 240px;animation:sleep-nod 4.6s ease-in-out infinite}@keyframes sleep-nod{0%,to{transform:translateY(0) rotate(0deg)}55%{transform:translateY(8px) rotate(6deg)}}.cat.state-sleep #tail{animation:tail-sway 6s ease-in-out infinite}.cat.state-sleep .zzz{transform-box:fill-box;transform-origin:center;animation:zzz-float 3s ease-in-out infinite}@keyframes zzz-float{0%{transform:translateY(6px) scale(.6);opacity:0}25%{opacity:1}70%{opacity:.9}to{transform:translate(10px,-26px) scale(1.1);opacity:0}}#ear-left{transform-origin:143px 136px}#ear-left,#ear-right{transition:transform .25s ease}#ear-right{transform-origin:257px 136px}.cat.state-idle #ear-left{animation:idle-ear-twitch-left 6.5s ease-in-out infinite}.cat.state-idle #ear-right{animation:idle-ear-twitch-right 8.2s ease-in-out 1.8s infinite}@keyframes idle-ear-twitch-left{0%,88%,to{transform:rotate(0deg)}90%,94%{transform:rotate(-6deg)}92%,96%{transform:rotate(0deg)}}@keyframes idle-ear-twitch-right{0%,86%,to{transform:rotate(0deg)}88%,92%,96%{transform:rotate(5deg)}90%,94%{transform:rotate(0deg)}}.cat.state-happy #ear-left{animation:happy-ear-left .5s ease-in-out infinite}.cat.state-happy #ear-right{animation:happy-ear-right .5s ease-in-out infinite}@keyframes happy-ear-left{0%,to{transform:rotate(0deg) translateY(0)}50%{transform:rotate(-10deg) translateY(-3px)}}@keyframes happy-ear-right{0%,to{transform:rotate(0deg) translateY(0)}50%{transform:rotate(10deg) translateY(-3px)}}.cat.state-thinking #ear-left{animation:thinking-ear-left 2.4s ease-in-out infinite}.cat.state-thinking #ear-right{animation:thinking-ear-right 2.4s ease-in-out infinite}@keyframes thinking-ear-left{0%,to{transform:rotate(-4deg)}50%{transform:rotate(-12deg)}}@keyframes thinking-ear-right{0%,to{transform:rotate(10deg)}50%{transform:rotate(2deg)}}.cat.state-surprised #ear-left{animation:surprised-ear-left .13s ease-in-out 8}.cat.state-surprised #ear-right{animation:surprised-ear-right .13s ease-in-out 8}@keyframes surprised-ear-left{0%,to{transform:translateY(-7px) rotate(-3deg)}50%{transform:translateY(-11px) rotate(-7deg)}}@keyframes surprised-ear-right{0%,to{transform:translateY(-7px) rotate(3deg)}50%{transform:translateY(-11px) rotate(7deg)}}.cat.state-angry #ear-left{animation:angry-ear-left .12s ease-in-out infinite}.cat.state-angry #ear-right{animation:angry-ear-right .12s ease-in-out infinite}@keyframes angry-ear-left{0%,to{transform:rotate(-32deg) translateY(6px)}50%{transform:rotate(-36deg) translateY(7px)}}@keyframes angry-ear-right{0%,to{transform:rotate(32deg) translateY(6px)}50%{transform:rotate(36deg) translateY(7px)}}.cat.state-excited #ear-left{animation:excited-ear-left .14s ease-in-out infinite}.cat.state-excited #ear-right{animation:excited-ear-right .14s ease-in-out infinite}@keyframes excited-ear-left{0%,to{transform:translateY(0) rotate(0deg)}25%{transform:translateY(-8px) rotate(-14deg)}75%{transform:translateY(-2px) rotate(8deg)}}@keyframes excited-ear-right{0%,to{transform:translateY(0) rotate(0deg)}25%{transform:translateY(-2px) rotate(-8deg)}75%{transform:translateY(-8px) rotate(14deg)}}.cat.state-sad #ear-left{animation:sad-ear-left 4.5s ease-in-out infinite}.cat.state-sad #ear-right{animation:sad-ear-right 4.5s ease-in-out infinite}@keyframes sad-ear-left{0%,to{transform:rotate(-22deg) translateY(4px)}50%{transform:rotate(-26deg) translateY(6px)}}@keyframes sad-ear-right{0%,to{transform:rotate(22deg) translateY(4px)}50%{transform:rotate(26deg) translateY(6px)}}.cat.state-love #ear-left{animation:love-ear-left 1.1s ease-in-out infinite}.cat.state-love #ear-right{animation:love-ear-right 1.1s ease-in-out infinite}@keyframes love-ear-left{0%,to{transform:rotate(-5deg) translateY(-1px)}50%{transform:rotate(-12deg) translateY(-3px)}}@keyframes love-ear-right{0%,to{transform:rotate(5deg) translateY(-1px)}50%{transform:rotate(12deg) translateY(-3px)}}.cat.state-sleep #ear-left{animation:sleep-ear-left 4.6s ease-in-out infinite}.cat.state-sleep #ear-right{animation:sleep-ear-right 4.6s ease-in-out infinite}@keyframes sleep-ear-left{0%,to{transform:rotate(-14deg) translateY(3px)}55%{transform:rotate(-18deg) translateY(5px)}}@keyframes sleep-ear-right{0%,to{transform:rotate(14deg) translateY(3px)}55%{transform:rotate(18deg) translateY(5px)}}.cat.speaking #mouth-frown,.cat.speaking #mouth-grin,.cat.speaking #mouth-smile{display:none}.cat.speaking #mouth-open{display:block;transform-box:fill-box;transform-origin:center;animation:talk .26s ease-in-out infinite}@keyframes talk{0%,to{transform:scaleY(.35)}50%{transform:scaleY(1.1)}}.cat.eating #mouth-fang,.cat.eating #mouth-frown,.cat.eating #mouth-grin,.cat.eating #mouth-smile,.cat.eating-open #mouth-fang,.cat.eating-open #mouth-frown,.cat.eating-open #mouth-grin,.cat.eating-open #mouth-smile{display:none}.cat.eating-open #mouth-open{display:block;fill:#b34a5c;transform-box:fill-box;transform-origin:center top;animation:mouth-agape .16s ease-out forwards}@keyframes mouth-agape{0%{transform:scale(.9,.8)}to{transform:scale(1.5,1.7)}}.cat.eating #mouth-open{display:block;fill:#c85a6a;transform-box:fill-box;transform-origin:center;animation:chew .24s ease-in-out infinite}.cat.eating #head{animation:nom .24s ease-in-out infinite;transform-origin:200px 250px}.cat.eating .blush,.cat.eating-open .blush{fill:#ff8da3;opacity:.95}@keyframes chew{0%,to{transform:scaleY(.45) scaleX(1.08)}50%{transform:scaleY(1.05) scaleX(.9)}}@keyframes nom{0%,to{transform:translateY(0) rotate(0deg)}50%{transform:translateY(3px) rotate(-1.5deg)}}.cat{transition:filter .15s ease}.cat.feed-hover{filter:drop-shadow(0 0 12px rgba(255,158,87,.8))}.bubble{top:-8px;transform:translateX(-50%) translateY(-100%);max-width:240px;background:#fff;color:var(--ink);padding:12px 16px;border-radius:18px;border:2px solid #ffd0b0;box-shadow:0 6px 18px rgba(180,120,60,.18);font-size:15px;line-height:1.5;z-index:5;animation:pop .25s ease-out}.bubble,.bubble:after{position:absolute;left:50%}.bubble:after{content:"";bottom:-10px;transform:translateX(-50%);border:10px solid transparent;border-top-color:#fff}.bubble.hidden{display:none}@keyframes pop{0%{transform:translateX(-50%) translateY(-100%) scale(.7);opacity:0}to{transform:translateX(-50%) translateY(-100%) scale(1);opacity:1}}.bubble.thinking span:after{content:"";animation:dots 1.2s steps(4) infinite}@keyframes dots{0%{content:""}25%{content:"·"}50%{content:"··"}75%{content:"···"}}.callbar{display:flex;align-items:center;gap:10px;padding:9px 16px;border-radius:999px;background:#fff;border:2px solid #ffceae;box-shadow:0 4px 14px rgba(180,120,60,.12);font-size:15px;font-weight:500;transition:all .2s}.callbar-dot{width:10px;height:10px;border-radius:50%;background:#c9b59c;flex:none}.callbar-text{white-space:nowrap}.callbar-connecting .callbar-dot{background:var(--accent);animation:dot-breathe 1s ease-in-out infinite}.callbar-live{border-color:#34c759;color:#1e8e3e}.callbar-live .callbar-dot{background:#34c759;animation:dot-pulse 1.4s ease-in-out infinite}.callbar-closing .callbar-dot{background:#ff8fa3;animation:dot-breathe 1s ease-in-out infinite}@keyframes dot-breathe{0%,to{opacity:.4}50%{opacity:1}}@keyframes dot-pulse{0%,to{box-shadow:0 0 0 0 rgba(52,199,89,.55)}50%{box-shadow:0 0 0 8px rgba(52,199,89,0)}}.callbar-hangup{border:none;background:#ff5a5f;color:#fff;padding:6px 14px;border-radius:999px;font-size:14px;font-weight:600;cursor:pointer;transition:background .15s}.callbar-hangup:hover{background:#d83b40}.callbar-backend{border:1px solid #d8c4a0;background:#fff;color:#8a6d3b;padding:4px 12px;border-radius:999px;font-size:13px;font-weight:600;cursor:pointer;transition:background .15s,border-color .15s}.callbar-backend:hover{background:#fff7ec;border-color:#c9a96a}.callbar-voice{border:1px solid #d8c4a0;background:#fff;color:#8a6d3b;padding:4px 10px;border-radius:999px;font-size:13px;font-weight:600;cursor:pointer;max-width:170px}.callbar-voice:hover{background:#fff7ec;border-color:#c9a96a}.hint{font-size:13px;color:#a98b6f;text-align:center;margin:0;max-width:360px}.dev-panel{width:100%;max-width:360px;background:#fff;border:2px solid #ffceae;border-radius:16px;box-shadow:0 6px 18px rgba(180,120,60,.18);padding:12px 14px;display:flex;flex-direction:column;gap:8px;animation:pop-in .18s ease-out}@keyframes pop-in{0%{transform:translateY(-6px);opacity:0}to{transform:translateY(0);opacity:1}}.dev-panel-hint{font-size:12px;color:#a98b6f;text-align:center}.dev-panel-label{font-size:12px;font-weight:700;color:var(--accent-dark);margin-top:2px}.dev-panel-row{display:flex;flex-wrap:wrap;gap:6px}.dev-btn{border:1px solid #ffd0b0;background:#fff7ec;color:var(--ink);padding:5px 10px;border-radius:999px;font-size:13px;font-weight:600;cursor:pointer;transition:background .12s,border-color .12s,transform .08s}.dev-btn:hover{background:#ffe9d6;border-color:var(--accent)}.dev-btn:active{transform:scale(.94)}@media (prefers-reduced-motion:reduce){#cat-body,#ear-left,#ear-right,#tail,.callbar-dot,.cat.act-bounce #cat-body,.cat.act-cheer #cat-body,.cat.act-cheer .paw-left,.cat.act-cheer .paw-right,.cat.act-eye-roll #pupil-left,.cat.act-eye-roll #pupil-right,.cat.act-head-shake #head,.cat.act-look #head,.cat.act-ponder #head,.cat.act-saunter,.cat.act-saunter #cat-body,.cat.act-saunter #tail,.cat.act-sparkle .burst-lines,.cat.act-sparkle .burst-star,.cat.act-stretch #cat-body,.cat.act-tilt #head,.cat.act-walk,.cat.act-walk #cat-body,.cat.act-walk #tail,.cat.act-walk .paw-left,.cat.act-walk .paw-right,.cat.act-wiggle #tail,.cat.act-wilt #cat-body,.cat.act-wilt #head,.cat.eating #head,.cat.eating #mouth-open,.cat.eating-open #mouth-open,.cat.state-angry #anger-mark,.cat.state-angry #angry-spikes,.cat.state-angry #cat-body,.cat.state-angry #head,.cat.state-angry #tail,.cat.state-angry .anger-vein,.cat.state-angry .slit-pupil,.cat.state-excited #cat-body,.cat.state-excited .burst-lines,.cat.state-excited .burst-star,.cat.state-excited .drool,.cat.state-excited .star-eye,.cat.state-happy #cat-body,.cat.state-love #cat-body,.cat.state-love .dewy-eye,.cat.state-love .float-note,.cat.state-sad #sad-tail,.cat.state-sad .tear,.cat.state-sleep #cat-body,.cat.state-sleep #head,.cat.state-sleep #tail,.cat.state-sleep .zzz{animation:none}}.board{width:100%;max-width:440px;padding:14px 16px 18px;border-radius:22px;background:rgba(255,255,255,.86);border:2px solid #ffd0b0;box-shadow:0 6px 18px rgba(180,120,60,.16);animation:pop-in .22s ease-out}.board-head{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:10px}.board-title{font-size:16px;letter-spacing:.5px;flex:1 1 auto}.board-score,.board-title{margin:0;font-weight:700;color:var(--accent-dark)}.board-score{flex:none;white-space:nowrap}.board-score-num{font-size:20px}.board-score-total{font-size:13px;opacity:.65;margin-left:2px}.board-close{flex:none;width:32px;height:32px;border:1px solid #ffd0b0;background:#fff7ec;color:var(--ink);border-radius:999px;font-size:15px;font-weight:700;line-height:1;cursor:pointer;transition:background .12s,border-color .12s,transform .08s}.board-close:hover{background:#ffe9d6;border-color:var(--accent)}.board-close:active{transform:scale(.9)}.board-items{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:12px;counter-reset:board-item}.board-item{counter-increment:board-item;padding:10px 12px;border-radius:16px;background:#fff7ec;border:1px solid #ffe0c6}.board-prompt{margin:0 0 8px;font-size:18px;font-weight:700}.board-prompt:before{content:counter(board-item) ". ";color:var(--accent-dark)}.board-choices{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:8px}.board-choices>li{display:flex}.board-choice{min-width:58px;padding:10px 16px;border:1px solid #ffd0b0;background:#fff;border-radius:14px;color:var(--ink);font-family:inherit;font-size:16px;font-weight:600;text-align:center;cursor:pointer;transition:background .12s,border-color .12s,color .12s,transform .08s}.board-choice:hover:enabled{background:#fff2e2;border-color:var(--accent)}.board-choice:active:enabled{transform:scale(.94)}.board-choice:disabled{cursor:default}.board-choice.is-correct{background:#e4f8e2;border-color:#57b94a;color:#2f7a26}.board-choice.is-wrong{background:#ffeaea;border-color:#f08a8a;color:#b8474a}.board-choice.is-picked{box-shadow:0 0 0 2px rgba(255,158,87,.45)}.board-item.is-answered{opacity:.92}.board-item.is-answered .board-choice:not(.is-correct):not(.is-wrong){opacity:.5}@media (prefers-reduced-motion:reduce){.board{animation:none}.board-choice:active:enabled{transform:none}}.prop-bar{width:100%;max-width:440px;display:flex;flex-direction:column;align-items:center;gap:10px;padding:14px 16px;border-radius:22px;background:rgba(255,255,255,.6);border:2px solid #ffd0b0;box-shadow:0 6px 18px rgba(180,120,60,.12)}.prop-bar-hint{font-size:13px;font-weight:700;color:var(--accent-dark);letter-spacing:.5px}.prop-bar-items{display:flex;flex-wrap:wrap;justify-content:center;gap:10px}.prop-btn{display:flex;flex-direction:column;align-items:center;gap:2px;width:60px;padding:8px 4px;border:1px solid #ffd0b0;background:#fff7ec;border-radius:16px;cursor:-webkit-grab;cursor:grab;touch-action:none;transition:background .12s,border-color .12s,transform .1s}.prop-btn:hover{background:#ffe9d6;border-color:var(--accent);transform:translateY(-2px)}.prop-btn:active{cursor:-webkit-grabbing;cursor:grabbing;transform:translateY(0) scale(.94)}.prop-emoji{font-size:28px;line-height:1;pointer-events:none}.prop-label{font-size:11px;font-weight:600;color:var(--ink);pointer-events:none}.fly-layer{position:fixed;inset:0;pointer-events:none;overflow:hidden;z-index:60}.flying-food{position:absolute;font-size:34px;line-height:1;transform:translate(-50%,-50%);will-change:transform,opacity;filter:drop-shadow(0 3px 4px rgba(120,80,40,.25))}.flying-food.dragging{font-size:42px}.prop-toy{cursor:pointer}.prop-toy.active{background:#ffe1ec;border-color:#ff7da6;box-shadow:0 0 0 2px rgba(255,125,166,.35),0 4px 12px rgba(214,95,134,.25)}.stage.toy-cursor,.stage.toy-cursor *{cursor:url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20width='36'%20height='36'%20viewBox='0%200%2036%2036'%3E%3Ccircle%20cx='18'%20cy='18'%20r='14'%20fill='%23ff9ab5'%20stroke='%23d65f86'%20stroke-width='2'/%3E%3Cg%20fill='none'%20stroke='%23d65f86'%20stroke-width='1.4'%20opacity='0.85'%3E%3Cpath%20d='M6%2013%20Q18%206%2030%2015'/%3E%3Cpath%20d='M4%2020%20Q18%2013%2032%2021'/%3E%3Cpath%20d='M7%2027%20Q18%2019%2028%2029'/%3E%3Cpath%20d='M13%205%20Q22%2018%2015%2031'/%3E%3Cpath%20d='M23%205%20Q15%2018%2023%2031'/%3E%3C/g%3E%3Cpath%20d='M30%2015%20q7%203%204%2010'%20fill='none'%20stroke='%23d65f86'%20stroke-width='1.6'/%3E%3C/svg%3E") 18 18,pointer}.cat.toy-mode #cat-body{animation:none}.cat.toy-mode #cat-body,.cat.toy-mode #tail,.cat.toy-mode .paw{transition:transform .18s ease-out}.cat.toy-mode #tail{animation:none}.login-stage{width:100%;min-height:calc(100vh - 96px);min-height:calc(100dvh - 96px);display:flex;align-items:center;justify-content:center;padding:0 max(0px,env(safe-area-inset-left)) env(safe-area-inset-bottom) max(0px,env(safe-area-inset-right));-webkit-text-size-adjust:100%}.login-card{width:100%;max-width:360px;padding:30px 24px 26px;border-radius:22px;background:rgba(255,255,255,.78);box-shadow:0 12px 30px rgba(90,70,54,.14);text-align:center}.login-cat{font-size:46px;line-height:1}.login-title{font-size:21px;margin:12px 0 4px;letter-spacing:.4px}.login-subtitle{font-size:14px;margin:0 0 22px;opacity:.7}.login-form{display:flex;flex-direction:column;text-align:left}.login-label{font-size:13px;font-weight:600;opacity:.75;margin:0 0 6px 2px}.login-label+.login-input{margin-bottom:14px}.login-input{font:inherit;font-size:16px;min-height:44px;width:100%;padding:11px 14px;color:var(--ink);border:1px solid rgba(90,70,54,.18);border-radius:12px;background:#fff;-webkit-appearance:none;-moz-appearance:none;appearance:none}.login-input:focus{outline:2px solid var(--accent);outline-offset:1px}.login-error{margin:0 0 12px;font-size:13px;color:#c0392b}.login-button{font:inherit;font-size:16px;font-weight:600;min-height:48px;margin-top:6px;padding:12px 0;color:#fff;background:var(--accent);border:none;border-radius:12px;cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none;-webkit-tap-highlight-color:transparent;touch-action:manipulation}.login-button:active{background:var(--accent-dark)}@media (hover:hover){.login-button:hover{background:var(--accent-dark)}}