/* Title first, a delayed entrance, then an automatic character performance loop. */
.home .logo{animation:logo-arrive .8s cubic-bezier(.2,.9,.25,1.25) both;transform-origin:50% 65%}
.home .logo:before,.home .logo:after{animation:burst-breathe 5.8s ease-in-out infinite;transform-origin:center}
.home .logo h1{animation:title-wiggle 4.8s ease-in-out .6s infinite;transform-origin:50% 80%}
.home .logo-ribbon{animation:ribbon-arrive .9s cubic-bezier(.2,.8,.2,1.2) both}
.home .doodle.plus{animation:doodle-turn 7s ease-in-out infinite}.home .doodle.star{animation:doodle-star 4.8s ease-in-out .7s infinite}.home .doodle.dot{animation:doodle-float 5s ease-in-out 1.2s infinite}
.home .home-panel{animation:panel-arrive .65s ease-out .95s both}.home .poster>.bubble{margin-top:0;max-width:100%;min-height:38px;display:flex;align-items:center;justify-content:center;text-align:center;font-size:11px;transition:background .2s;animation:panel-arrive .35s ease-out 1.2s both}.home .poster-note{animation:panel-arrive .35s ease-out 1.2s both}
.home .poster>.bubble:after{left:calc(50% - 5px);bottom:auto;top:-7px;transform:rotate(135deg)}
.cat-stage{position:relative;width:280px;height:278px;margin:0 auto;isolation:isolate;flex-shrink:0}
.cat-pet{display:block;position:absolute;inset:0;padding:0;border:0;background:none;box-shadow:none;touch-action:manipulation;border-radius:40%;cursor:pointer}
.cat-pet:hover:not(:disabled){filter:none}.cat-pet:active:not(:disabled){transform:none;box-shadow:none}.cat-pet:focus-visible{outline:3px dashed var(--blue);outline-offset:0}
.live-cat{width:100%;height:100%;overflow:visible;pointer-events:none}
.cat-breathe{transform-origin:160px 285px;animation:cat-breathe 3.8s ease-in-out infinite}
.cat-tail{transform-origin:207px 253px;animation:cat-tail 3s ease-in-out infinite}
.cat-head{transform-origin:160px 202px;animation:cat-look 8s ease-in-out infinite}
.ear-left{transform-origin:103px 84px}.ear-right{transform-origin:220px 84px;animation:ear-twitch 9s ease-in-out 2s infinite}
.arm-left{transform-origin:122px 220px}.arm-right{transform-origin:198px 220px}.foot-left{transform-origin:140px 276px}.foot-right{transform-origin:182px 276px}
.cat-open-eyes{transform-box:fill-box;transform-origin:center;transition:transform 70ms ease-out}
.cat-closed-eyes,.mouth-happy,.mouth-oh{display:none}
.cat-stage.is-blinking .cat-open-eyes{transform:scaleY(.05)}.cat-stage.is-blinking .cat-closed-eyes{display:block}
.cat-stage[data-expression="happy"] .cat-open-eyes,.cat-stage[data-expression="shy"] .cat-open-eyes,.cat-stage[data-expression="sleep"] .cat-open-eyes{display:none}
.cat-stage[data-expression="happy"] .cat-closed-eyes,.cat-stage[data-expression="shy"] .cat-closed-eyes,.cat-stage[data-expression="sleep"] .cat-closed-eyes{display:block}
.cat-stage[data-expression="happy"] .mouth-smile,.cat-stage[data-expression="surprised"] .mouth-smile{display:none}
.cat-stage[data-expression="happy"] .mouth-happy,.cat-stage[data-expression="surprised"] .mouth-oh{display:block}
.cat-stage[data-expression="shy"] .cat-cheeks{fill:#ff5c9e}.cat-stage[data-expression="sleep"] .cat-closed-eyes{transform:translateY(280px) scaleY(-1)}
.cat-spark,.cat-heart{position:absolute;pointer-events:none;opacity:0;z-index:2;font-weight:900}.cat-spark{color:#ffe46a;-webkit-text-stroke:1.5px var(--ink);font-size:36px}.spark-one{left:14px;top:65px}.spark-two{right:4px;top:110px;color:#bda2fb;font-size:30px}.cat-heart{right:36px;top:38px;color:#f36da8;font-size:30px;-webkit-text-stroke:1.5px var(--ink)}
.pet-caption{position:absolute;right:-4px;bottom:34px;font-size:10px;letter-spacing:1px;transform:rotate(-8deg);color:#82748c;pointer-events:none;transition:opacity .4s}.pet-caption span{display:inline-block;color:#e568a0;font-size:18px;margin-left:2px}.pet-caption.has-petted{opacity:0}
.cat-stage[data-act="greet"] .cat-jump{animation:cat-enter 1.15s cubic-bezier(.2,.7,.3,1) both;transform-origin:160px 291px}
.cat-stage[data-act="greet"] .cat-shadow{animation:shadow-enter 1.15s ease-out both;transform-origin:160px 299px}
.cat-stage[data-act="greet"] .arm-right,.cat-stage[data-act="wave"] .arm-right{animation:cat-wave 1.5s ease-in-out}
.cat-stage[data-mode="intro"] .cat-jump,.cat-stage[data-mode="intro"] .cat-shadow,.cat-stage[data-mode="intro"] .cat-spark,.cat-stage[data-mode="intro"] .arm-right{animation-delay:.5s}
.cat-stage[data-mode="intro"] .pet-caption{opacity:0}.cat-stage[data-mode="intro"] .cat-pet{pointer-events:none}
.cat-stage[data-act="hop"] .cat-jump{animation:cat-hop 1.15s ease-in-out;transform-origin:160px 290px}
.cat-stage[data-act="hop"] .cat-shadow{animation:shadow-hop 1.15s ease-in-out;transform-origin:160px 299px}
.cat-stage[data-act="hop"] .arm-left{animation:arm-cheer-left 1.15s ease-in-out}.cat-stage[data-act="hop"] .arm-right{animation:arm-cheer-right 1.15s ease-in-out}
.cat-stage[data-act="hop"] .cat-spark,.cat-stage[data-act="greet"] .cat-spark{animation:cat-spark 1.15s ease-out both}.cat-stage[data-act="hop"] .spark-two{animation-delay:.15s}
.cat-stage[data-act="wave"] .cat-head{animation:cat-tilt 1.7s ease-in-out}.cat-stage[data-act="wave"] .ear-left{animation:left-ear-twitch .8s ease-in-out}
.cat-stage[data-act="shy"] .cat-head{animation:cat-shy 1.8s ease-in-out}.cat-stage[data-act="shy"] .arm-left{animation:shy-left 1.8s ease-in-out}.cat-stage[data-act="shy"] .arm-right{animation:shy-right 1.8s ease-in-out}.cat-stage[data-act="shy"] .cat-heart{animation:heart-up 1.8s ease-out}
.cat-stage[data-act="nuzzle"] .cat-head{animation:cat-nuzzle 1.8s ease-in-out}.cat-stage[data-act="nuzzle"] .arm-left{animation:shy-left 1.8s ease-in-out}.cat-stage[data-act="nuzzle"] .arm-right{animation:shy-right 1.8s ease-in-out}.cat-stage[data-act="nuzzle"] .cat-heart{animation:heart-up 1.8s ease-out}.cat-stage[data-act="nuzzle"] .cat-tail{animation:tail-love 1.8s ease-in-out}
.cat-stage[data-act="stretch"] .cat-breathe{animation:cat-stretch 2.1s ease-in-out}.cat-stage[data-act="stretch"] .arm-left{animation:stretch-left 2.1s ease-in-out}.cat-stage[data-act="stretch"] .arm-right{animation:stretch-right 2.1s ease-in-out}
.cat-stage[data-act="curious"] .cat-head{animation:cat-tilt 1.8s ease-in-out}.cat-stage[data-act="curious"] .cat-pupils{animation:cat-gaze 1.8s ease-in-out}
.cat-stage[data-act="depart"] .cat-jump{animation:cat-depart .52s ease-in both;transform-origin:160px 290px}.cat-stage[data-act="depart"] .arm-right{transform:rotate(-135deg)}
.is-departing .home-panel{pointer-events:none}.is-departing .big-button{transform:translateY(4px);box-shadow:0 2px 0 var(--ink)}
.cat-stage[data-act="sleep"] .cat-tail{animation-duration:6s}
body:has(dialog[open]) .cat-stage *,body:has(dialog[open]) .home .logo *{animation-play-state:paused}
.home.is-sleeping *,.home.is-sleeping *:before,.home.is-sleeping *:after,body:has(dialog[open]) .home .logo:before,body:has(dialog[open]) .home .logo:after{animation-play-state:paused}
@keyframes logo-arrive{from{opacity:0;transform:translateY(-18px) rotate(-8deg) scale(.9)}to{opacity:1;transform:rotate(-5deg)}}
@keyframes burst-breathe{0%,100%{transform:rotate(-2deg) scale(.98)}50%{transform:rotate(3deg) scale(1.025)}}
@keyframes title-wiggle{0%,72%,100%{transform:rotate(2deg)}78%{transform:translateY(-3px) rotate(-2deg)}84%{transform:rotate(4deg)}90%{transform:rotate(1deg)}}
@keyframes ribbon-arrive{from{opacity:0;transform:translateY(12px) rotate(7deg) scale(.85)}to{opacity:1;transform:rotate(3deg)}}
@keyframes doodle-turn{0%,65%,100%{transform:rotate(-15deg)}78%{transform:rotate(80deg)}90%{transform:rotate(75deg)}}
@keyframes doodle-star{0%,100%{transform:rotate(0) scale(1)}50%{transform:rotate(20deg) scale(1.15)}}
@keyframes doodle-float{0%,100%{transform:translateY(0) rotate(-12deg)}50%{transform:translateY(-6px) rotate(8deg)}}
@keyframes panel-arrive{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}
@keyframes cat-breathe{0%,100%{transform:scale(1,1)}50%{transform:scale(1.012,.985)}}
@keyframes cat-tail{0%,100%{transform:rotate(-7deg)}50%{transform:rotate(12deg)}}
@keyframes cat-look{0%,35%,65%,100%{transform:rotate(0)}45%,55%{transform:rotate(-3deg)}}
@keyframes ear-twitch{0%,68%,84%,100%{transform:rotate(0)}72%,79%{transform:rotate(10deg)}75%{transform:rotate(-3deg)}}
@keyframes left-ear-twitch{0%,100%{transform:rotate(0)}35%{transform:rotate(-9deg)}65%{transform:rotate(3deg)}}
@keyframes cat-enter{0%{opacity:0;transform:translateY(-45px) rotate(-9deg) scale(.8)}40%{opacity:1;transform:translateY(0) scale(1.1,.84)}62%{transform:translateY(-17px) rotate(4deg) scale(.97,1.04)}80%{transform:translateY(0) scale(1.04,.95)}100%{opacity:1;transform:none}}
@keyframes shadow-enter{0%{opacity:0;transform:scale(.5)}40%{opacity:.18;transform:scale(1.12)}62%{opacity:.08;transform:scale(.78)}100%{opacity:.13;transform:scale(1)}}
@keyframes cat-hop{0%,100%{transform:none}17%{transform:scale(1.09,.85)}39%{transform:translateY(-40px) rotate(-5deg) scale(.95,1.06)}58%{transform:translateY(-30px) rotate(4deg)}78%{transform:scale(1.12,.84)}90%{transform:scale(.99,1.03)}}
@keyframes shadow-hop{0%,100%{transform:scale(1);opacity:.13}17%,78%{transform:scale(1.12);opacity:.18}39%,58%{transform:scale(.65);opacity:.07}}
@keyframes cat-wave{0%,100%{transform:rotate(0)}20%,48%,76%{transform:rotate(-145deg)}34%,62%{transform:rotate(-112deg)}88%{transform:rotate(-120deg)}}
@keyframes arm-cheer-left{0%,100%{transform:rotate(0)}30%,65%{transform:rotate(130deg)}}
@keyframes arm-cheer-right{0%,100%{transform:rotate(0)}30%,65%{transform:rotate(-130deg)}}
@keyframes cat-spark{0%,100%{opacity:0;transform:translateY(10px) scale(.3) rotate(-20deg)}35%{opacity:1;transform:translateY(-7px) scale(1.1) rotate(12deg)}75%{opacity:.7;transform:translateY(-18px) scale(.8)}}
@keyframes cat-tilt{0%,100%{transform:rotate(0)}30%,65%{transform:rotate(-9deg)}}
@keyframes cat-shy{0%,100%{transform:none}30%,75%{transform:translateY(7px) rotate(7deg)}}
@keyframes cat-nuzzle{0%,100%{transform:none}25%{transform:translate(-5px,3px) rotate(-8deg)}55%{transform:translate(5px,4px) rotate(8deg)}80%{transform:translate(-2px,3px) rotate(-4deg)}}
@keyframes tail-love{0%,100%{transform:rotate(0)}25%,75%{transform:rotate(18deg)}50%{transform:rotate(-8deg)}}
@keyframes shy-left{0%,100%{transform:none}30%,75%{transform:translate(13px,-17px) rotate(20deg)}}
@keyframes shy-right{0%,100%{transform:none}30%,75%{transform:translate(-13px,-17px) rotate(-20deg)}}
@keyframes heart-up{0%,100%{opacity:0;transform:translateY(15px) scale(.5)}30%{opacity:1;transform:translateY(0) scale(1)}85%{opacity:0;transform:translateY(-30px) rotate(15deg)}}
@keyframes cat-stretch{0%,100%{transform:scale(1)}35%,65%{transform:scale(.96,1.07)}}
@keyframes stretch-left{0%,100%{transform:rotate(0)}35%,65%{transform:rotate(155deg)}}
@keyframes stretch-right{0%,100%{transform:rotate(0)}35%,65%{transform:rotate(-155deg)}}
@keyframes cat-gaze{0%,100%{transform:translateX(0)}30%,65%{transform:translateX(-4px)}}
@keyframes cat-depart{0%{transform:none}28%{transform:scale(1.08,.88)}100%{transform:translateY(-25px) rotate(9deg) scale(.95,1.03);opacity:0}}
@media(min-width:1300px){.cat-stage{width:300px;height:300px}}
@media(max-width:800px){.cat-stage{width:252px;height:250px}.pet-caption{right:-6px}}
@media(max-width:600px){.home{gap:20px;padding-top:18px}.home .logo{height:174px}.cat-stage{width:224px;height:220px;margin:0 auto}.home .poster>.bubble{min-height:33px;font-size:10px;padding:7px 12px;margin-top:-2px}.pet-caption{font-size:9px;right:-15px;bottom:30px}.cat-spark{font-size:28px}.spark-one{left:3px;top:48px}.spark-two{right:-1px;top:80px}.cat-heart{right:20px;top:24px}}
@media(prefers-reduced-motion:reduce){html:not([data-home-motion="on"]) .home *,html:not([data-home-motion="on"]) .home *:before,html:not([data-home-motion="on"]) .home *:after{animation:none!important;transition:none!important}html:not([data-home-motion="on"]) .cat-stage[data-act="depart"] .cat-jump{opacity:1}html:not([data-home-motion="on"]) .cat-stage .cat-spark,html:not([data-home-motion="on"]) .cat-stage .cat-heart{display:none}}
