*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}
html,body{margin:0;height:100%;background:#ffe9f3;font-family:"Nunito","Trebuchet MS",system-ui,sans-serif;color:#4a3550;overscroll-behavior:none;user-select:none;-webkit-user-select:none}
#app{max-width:520px;margin:0 auto;height:100%;display:flex;flex-direction:column;background:linear-gradient(#ffe0ee,#fff6e0 60%,#e6f6ff)}
#top{display:flex;gap:8px;justify-content:space-between;padding:calc(10px + env(safe-area-inset-top)) 12px 6px}
.pill{background:#fff;border-radius:999px;padding:6px 12px;font-size:17px;box-shadow:0 2px 0 #f1c6da;display:flex;align-items:center;gap:4px;white-space:nowrap}
.pill small{font-size:12px;color:#8a6f93;margin-left:4px}
#screens{flex:1;overflow:hidden;position:relative}
.screen{position:absolute;inset:0;overflow-y:auto;padding:8px 14px 24px;display:none}
.screen.on{display:block}
#nav{display:flex;background:#fff;border-top:2px solid #f6d3e3;padding-bottom:env(safe-area-inset-bottom)}
#nav button{flex:1;border:0;background:none;padding:7px 0 8px;font:inherit;color:#9b7fa5;display:flex;flex-direction:column;align-items:center;gap:1px;cursor:pointer}
#nav button span{font-size:24px}#nav button i{font-style:normal;font-size:12px;font-weight:700}
#nav button.on{color:#e0457f}#nav button.on span{transform:scale(1.15)}
h2{margin:6px 0 10px;font-size:22px;text-align:center}
h3{margin:14px 0 8px;font-size:17px}
.card{background:#fff;border-radius:20px;padding:14px;margin:10px 0;box-shadow:0 3px 0 #f1c6da}
.btn{border:0;border-radius:18px;padding:13px 18px;font:inherit;font-weight:800;font-size:17px;background:#ff6fa5;color:#fff;box-shadow:0 4px 0 #d94b83;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:6px}
.btn:active{transform:translateY(3px);box-shadow:0 1px 0 #d94b83}
.btn.big{font-size:21px;padding:16px 26px;width:100%}
.btn.sec{background:#5aa7f5;box-shadow:0 4px 0 #3b84d0}.btn.sec:active{box-shadow:0 1px 0 #5c9fd8}
.btn.ok{background:#4fcf8a;box-shadow:0 4px 0 #2fa66a}
.btn.gray{background:#d9d0e0;color:#6b5975;box-shadow:0 4px 0 #b8adc2}
.btn.sm{padding:8px 12px;font-size:14px;border-radius:14px}
.btn[disabled]{opacity:.55;filter:grayscale(.4);cursor:default}
.row{display:flex;gap:8px;align-items:center}.row>*{flex:1}
.center{text-align:center}.muted{color:#8a6f93;font-size:14px}
#eggStage{display:flex;flex-direction:column;align-items:center;margin:4px 0}
#eggStage .egg{width:150px;height:180px;animation:bob 2.4s ease-in-out infinite}
@keyframes bob{50%{transform:translateY(-8px) rotate(2deg)}}
.goal{display:flex;align-items:center;gap:10px;padding:8px 0;border-bottom:1px dashed #f1d3e1}.goal:last-child{border:0}
.goal .gt{flex:1;font-size:15px}.bar{height:8px;background:#f6e2ec;border-radius:9px;overflow:hidden;margin-top:4px}.bar b{display:block;height:100%;background:#ff8fb8}
.tabs{display:flex;gap:6px;overflow-x:auto;padding-bottom:4px}
.tabs button{flex:1;border:0;border-radius:14px;padding:8px 6px;font:inherit;font-weight:800;background:#fff;color:#8a6f93;box-shadow:0 2px 0 #f1c6da;white-space:nowrap}
.tabs button.on{background:#ff6fa5;color:#fff}
.grid{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}
.slot{background:#fff;border-radius:16px;padding:4px 2px 6px;text-align:center;position:relative;border:3px solid transparent;cursor:pointer}
.slot .cat{width:100%;height:auto;display:block}.slot .nm{font-size:11px;font-weight:700;line-height:1.1;min-height:24px;display:flex;align-items:center;justify-content:center}
.slot .ct{position:absolute;top:2px;right:4px;background:#ff6fa5;color:#fff;border-radius:9px;font-size:11px;padding:1px 6px;font-weight:800}
.slot.r-r{border-color:#c9a8ff}.slot.r-g{border-color:#ffd34d;background:#fff8dc}.slot.r-x{border-image:linear-gradient(90deg,#ff8fa3,#ffd36b,#8ef0a0,#8ec8ff,#d59bff) 1;border-radius:4px}
.slot.sel{outline:4px solid #4fcf8a}
.cat.sil{opacity:.8}
.rtag{display:inline-block;border-radius:9px;padding:2px 8px;font-size:12px;font-weight:800;color:#fff}
.rt-c{background:#6bb3f5}.rt-r{background:#a77cf5}.rt-g{background:#e6ac10}.rt-x{background:linear-gradient(90deg,#ff7d96,#f5b93a,#4fcf8a,#5aa7f5,#b77df5)}
#overlay{position:fixed;inset:0;background:rgba(74,53,80,.55);z-index:20;display:flex;align-items:center;justify-content:center;padding:16px}
#overlay.hidden,#toast.hidden{display:none}
.modal{background:#fff;border-radius:26px;padding:18px;width:100%;max-width:440px;max-height:92vh;overflow-y:auto;text-align:center;position:relative}
.open-stage{min-height:300px;display:flex;flex-direction:column;align-items:center;justify-content:center}
.open-stage .egg{width:200px;height:240px;cursor:pointer;touch-action:manipulation}
.open-stage .egg.wob{animation:wob .25s}
@keyframes wob{25%{transform:rotate(-9deg) scale(1.04)}75%{transform:rotate(9deg)}}
.crk{stroke:#7a5a6a;stroke-width:4;fill:none;stroke-linecap:round;stroke-linejoin:round}
.reveal .cat{width:210px;height:210px;animation:pop .6s cubic-bezier(.2,1.6,.4,1)}
@keyframes pop{0%{transform:scale(.2);opacity:0}100%{transform:scale(1);opacity:1}}
.rays{position:absolute;left:50%;top:150px;width:420px;height:420px;margin:-210px 0 0 -210px;border-radius:50%;background:repeating-conic-gradient(var(--rc) 0 12deg,transparent 12deg 30deg);opacity:.35;animation:spin 8s linear infinite;pointer-events:none;-webkit-mask:radial-gradient(circle,#000 30%,transparent 70%);mask:radial-gradient(circle,#000 30%,transparent 70%)}
@keyframes spin{to{transform:rotate(360deg)}}
.reveal{position:relative}.reveal>*{position:relative}
.conf{position:fixed;width:10px;height:14px;top:-20px;z-index:30;border-radius:3px;animation:fall linear forwards;pointer-events:none}
@keyframes fall{to{transform:translateY(110vh) rotate(720deg)}}
#toast{position:fixed;left:50%;top:70px;transform:translateX(-50%);background:#4a3550;color:#fff;padding:10px 16px;border-radius:16px;z-index:40;font-weight:700;max-width:90%;text-align:center}
.member{display:flex;align-items:center;gap:10px;padding:8px 0;border-bottom:1px dashed #f1d3e1}.member:last-child{border:0}
.member .av{width:46px;height:46px;flex:none}.member .mi{flex:1;min-width:0}.member .mi>b{display:block}
.dot{display:inline-block;width:9px;height:9px;border-radius:50%;background:#4fcf8a;margin-right:4px}.dot.off{background:#ccc}
.code{font-size:38px;font-weight:900;letter-spacing:8px;color:#e0457f}
.codein{font:inherit;font-size:26px;font-weight:900;letter-spacing:6px;text-transform:uppercase;text-align:center;border:3px solid #f1c6da;border-radius:16px;padding:8px;width:100%;color:#4a3550}
.emotes{display:grid;grid-template-columns:repeat(4,1fr);gap:6px}
.emotes button{border:0;border-radius:14px;background:#fff3f8;font:inherit;font-size:13px;font-weight:700;padding:6px 2px;color:#4a3550;box-shadow:0 2px 0 #f1c6da}
.emotes button span{display:block;font-size:22px}
.feed{min-height:30px}.feed div{background:#fff3f8;border-radius:12px;padding:6px 10px;margin:4px 0;font-size:14px;animation:pop .3s}
.odds{width:100%;border-collapse:collapse;font-size:14px}.odds td{padding:4px;border-bottom:1px solid #f6e2ec}.odds td:last-child{text-align:right;font-weight:800}
.stub{display:inline-block;background:#ffe9a8;color:#7a5a00;border-radius:8px;padding:2px 8px;font-size:12px;font-weight:800}
.toggle{display:flex;gap:6px}.toggle button{flex:1}
.score{display:flex;justify-content:space-between;padding:5px 0;font-weight:700}
.x{position:absolute;top:8px;right:10px;border:0;background:#f6e2ec;border-radius:50%;width:36px;height:36px;font-size:18px;color:#6b5975;cursor:pointer}
.x~h2,.x~h3{padding:0 40px}
.chips{display:grid;grid-template-columns:repeat(2,1fr);gap:6px;margin:6px 0}.chips .rtag{text-align:center;white-space:nowrap;font-size:13px;padding:4px 6px}
.btn{white-space:normal;text-wrap:balance}

.chip{display:flex;align-items:center;gap:4px;border-radius:12px;padding:3px 8px 3px 3px;color:#fff;font-weight:800;font-size:13px;white-space:nowrap}
.chip .ci{width:26px;height:26px;background:#fff;border-radius:50%;flex:none;display:block;overflow:hidden}.chip .ci svg{width:26px;height:26px}
.board{background:#fff8dc;border-radius:16px;padding:6px;margin:6px 0}
.brow{display:flex;align-items:center;gap:8px;padding:6px;border-radius:12px}.brow.me{background:#ffeaa0}
.brow .rk{width:28px;text-align:center;font-size:20px;font-weight:900;flex:none}.brow .av{width:40px;height:40px;flex:none}
.brow .bn{flex:1;min-width:0}.brow .bn b{display:block;font-size:15px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.brow .eggs{font-size:14px;letter-spacing:1px;white-space:nowrap}.brow .eggs i{font-style:normal;color:#b4acc4;font-weight:900;margin-left:2px}
.brow .bp{font-size:22px;font-weight:900;flex:none}
.pwait{text-align:center;background:#eef6ff;border-radius:16px;padding:12px;margin:6px 0;font-size:17px}
.pwin{text-align:center;font-weight:900;font-size:20px;margin:4px 0}
.step{display:flex;gap:12px;align-items:center;text-align:left;background:#fff6fa;border-radius:16px;padding:10px;margin:8px 0;font-size:17px}
.step .sn{width:36px;height:36px;border-radius:50%;background:#ff6fa5;color:#fff;font-weight:900;font-size:20px;display:flex;align-items:center;justify-content:center;flex:none}
.step .sic{font-size:22px;margin-bottom:2px}
#tut{position:fixed;inset:0;z-index:60}
#tut .tspot{position:fixed;border-radius:18px;box-shadow:0 0 0 9999px rgba(40,25,50,.62);border:3px solid #ffd34d;pointer-events:none;transition:all .25s}
#tut .tdim{position:fixed;inset:0;background:rgba(40,25,50,.62)}
#tut .tarrow{position:fixed;font-size:24px;color:#ffd34d;animation:bob 1s infinite;pointer-events:none}
#tut .tbub{position:fixed;left:12px;right:12px;max-width:420px;margin:0 auto;background:#fff;border-radius:22px;padding:12px 14px;text-align:center;box-shadow:0 6px 0 #f1c6da}
#tut .tbub p{font-size:18px;font-weight:800;margin:4px 0 8px}#tut .tic{font-size:30px}
#tut .tdots{display:flex;gap:6px;justify-content:center;margin:0 0 8px}#tut .tdots i{width:9px;height:9px;border-radius:50%;background:#f1d3e1}#tut .tdots i.on{background:#ff6fa5}
#pHelp{border:0;font:inherit;font-weight:900;color:#e0457f;cursor:pointer;min-width:40px;justify-content:center}
.chatlog{max-height:260px;overflow-y:auto;background:#fff8fb;border-radius:14px;padding:6px;margin-bottom:8px}
.cm{background:#fff;border-radius:12px;padding:6px 8px;margin:5px 0;max-width:88%;box-shadow:0 1px 0 #f1d3e1}.cm.me{margin-left:auto;background:#e7f6ff}
.cm.sys{max-width:100%;background:#fff3c9;text-align:center;font-weight:700;font-size:14px}
.cn{border:0;background:none;padding:0;font:inherit;font-weight:900;color:#e0457f;font-size:13px;cursor:pointer}.cn[disabled]{color:#5aa7f5;cursor:default;opacity:1;filter:none}
.ct2{font-size:16px;word-break:break-word}
.ccard{display:flex;gap:8px;align-items:center;margin-top:4px;background:#fff3f8;border-radius:12px;padding:4px;font-size:14px}.ccard.tap{border:2px dashed #ff8fb8;cursor:pointer}
.cci{width:52px;height:52px;flex:none}
.chatin{display:flex;gap:6px;align-items:center}.chatin input{flex:1;min-width:0;font:inherit;font-size:16px;border:3px solid #f1c6da;border-radius:14px;padding:8px}
.chatin .btn{flex:none}
.avbtn{position:relative;flex:none;width:64px;height:64px;border:3px solid #f1c6da;border-radius:50%;background:#fff;padding:2px;cursor:pointer}.avbtn svg{width:100%;height:100%}.avbtn{overflow:visible}.avbtn span{position:absolute;right:0;bottom:0;width:22px;height:22px;line-height:22px;text-align:center;font-size:13px;background:#fff;border-radius:50%;box-shadow:0 1px 2px #0002;pointer-events:none}
#bEditName2{flex:none;min-width:40px;padding:6px 8px;overflow:hidden}

.member .mi>b,.brow b{overflow-wrap:anywhere;word-break:break-word}

#splash{position:fixed;inset:0;z-index:9999;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;background:linear-gradient(#ffe0ef,#d9f1ff);pointer-events:none;animation:spl 1.4s ease .9s forwards}
#splash img{width:min(68vw,320px);height:auto;border-radius:22%;box-shadow:0 8px 24px #e0457f33;image-rendering:auto}
#splash h1{margin:0;font-size:clamp(24px,7vw,34px);color:#e0457f;text-align:center}
@keyframes spl{to{opacity:0;visibility:hidden}}

.pack .price{font-size:22px;font-weight:900;color:#e0457f;margin-top:4px}

@media (max-width:400px){.member{flex-wrap:wrap}.member .mi{flex:1 1 calc(100% - 60px)}.member>.btn{margin-top:4px}}

.chip.packchip{background:#fff3c4;color:#7a5a00;justify-content:center;padding:6px 8px}
/* ===== mejoras ===== */
.streak{display:grid;grid-template-columns:repeat(7,1fr);gap:4px}
.sday{background:#fff6fa;border:2px solid #f6d3e3;border-radius:12px;text-align:center;padding:4px 1px;font-size:11px;line-height:1.1}
.sday small{display:block;font-size:10px;color:#8a6f93;white-space:nowrap}.sday .si{font-size:20px;height:32px;display:flex;align-items:center;justify-content:center}.sday b{font-size:10px;white-space:nowrap}
.sday.done{background:#e6f9ec;border-color:#8ef0a0}.sday.now{border-color:#e0457f;background:#fff;box-shadow:0 0 0 3px #ffd1e6;animation:bob 1.6s ease-in-out infinite}
.sday.d7{background:linear-gradient(#fff8dc,#ffeaa0);border-color:#ffd34d}
.btn.gold{background:linear-gradient(#ffd34d,#f5b31a);color:#5a3c00;box-shadow:0 4px 0 #d99a00}
.goldcard{background:linear-gradient(135deg,#fffbe6,#fff0b8)}
.goldegg{filter:drop-shadow(0 0 14px #ffd34d)}
.lv{display:inline-block;font-size:12px;font-weight:900;padding:1px 6px;border-radius:8px;background:#f3eefa;color:#7a5f86;white-space:nowrap}
.lv-r{background:#efe4ff;color:#7a4fd6}.lv-g{background:#fff2c2;color:#9a6a00}.lv-x{background:linear-gradient(90deg,#ffe0e8,#fff2c2,#e0fbe6,#e0f0ff,#f1e4ff);color:#b0407a}
.lvb{position:absolute;left:4px;top:2px;font-size:10px;color:#e6ac10;text-shadow:0 1px 0 #fff;letter-spacing:-1px}.lvb.lv-c{color:#8fc7ff}.lvb.lv-r{color:#a77cf5}.lvb.lv-x{color:#e0457f;background:none}
.slot.r-g .cat,.slot.r-x .cat{animation:shine 2.6s ease-in-out infinite}
@keyframes shine{50%{filter:brightness(1.12) drop-shadow(0 0 6px #fff3b0)}}
.sparkle{position:absolute;left:50%;top:150px;width:0;height:0;pointer-events:none;z-index:2}
.sparkle i{position:absolute;width:14px;height:14px;margin:-7px;background:#fff;clip-path:polygon(50% 0,62% 38%,100% 50%,62% 62%,50% 100%,38% 62%,0 50%,38% 38%);transform:rotate(var(--a)) translateY(0) scale(0);animation:spk 1.8s ease-out var(--dl) 2 both}
.s-r i{background:#c9a8ff}.s-g i{background:#ffd34d}.s-x i:nth-child(5n){background:#ff8fa3}.s-x i:nth-child(5n+1){background:#ffd36b}.s-x i:nth-child(5n+2){background:#8ef0a0}.s-x i:nth-child(5n+3){background:#8ec8ff}.s-x i:nth-child(5n+4){background:#d59bff}
@keyframes spk{0%{transform:rotate(var(--a)) translateY(0) scale(0);opacity:1}60%{opacity:1}100%{transform:rotate(var(--a)) translateY(calc(-1 * var(--d))) scale(1.2) rotate(90deg);opacity:0}}
.rv-g .cat{filter:drop-shadow(0 0 12px #ffd34d)}.rv-x .cat{filter:drop-shadow(0 0 14px #ff9ad5)}
.legend{font-weight:900;font-size:20px;background:linear-gradient(90deg,#ff7d96,#f5b93a,#4fcf8a,#5aa7f5,#b77df5);-webkit-background-clip:text;background-clip:text;color:transparent;animation:pop .6s cubic-bezier(.2,1.6,.4,1)}
.exbox{display:flex;gap:10px;align-items:center;margin-top:10px;background:#fffdf3;border:2px dashed #ffd34d;border-radius:16px;padding:8px}
.exbox .slot{width:84px;flex:none}.exbox.have{border-style:solid;background:linear-gradient(135deg,#fff8dc,#ffe9f6)}
.exwin{background:#fff8dc;border-radius:16px;padding:6px;margin:6px 0}.exwin .cat{width:110px;height:110px;animation:pop .6s}.exwin b{display:block;color:#b0407a}
.roomcard{padding:8px}.roomsvg{width:100%;height:auto;display:block;border-radius:14px}
.rcat svg,.rcat{animation:none}
.furn{display:grid;grid-template-columns:repeat(2,1fr);gap:8px}
.fi{background:#fff6fa;border:2px solid #f6d3e3;border-radius:14px;padding:6px;text-align:center;display:flex;flex-direction:column;gap:4px;align-items:center}
.fi.on{border-color:#8ef0a0;background:#f2fff5}.fi b{font-size:13px}.fi .btn{width:100%}
.fthumb{width:100%;height:60px}
.hstage{position:relative;height:130px;margin:10px 0}
.hb{position:absolute;top:0;width:33.33%;height:130px;border:0;background:none;padding:0 4px;transition:left .6s ease-in-out;cursor:pointer}
.hb[disabled]{cursor:default}.hb .bsk{width:100%;height:100%;overflow:visible}
.hb .lid{transition:transform .45s ease}.hb.show .lid{transform:translateY(-46px)}
.hb.wrong .lid{transform:translateY(-46px)}
.hdemo .bsk{width:110px;height:100px}.hdemo .lid{transform:translateY(-40px)}
.odds .oh td{font-size:16px;text-align:center}.odds td.gcol{color:#9a6a00;font-weight:800}
@media (min-width:700px) and (orientation:landscape){#app{max-width:760px}.furn{grid-template-columns:repeat(3,1fr)}.grid{grid-template-columns:repeat(4,1fr)}}
@media (prefers-reduced-motion:reduce){.sparkle,.sday.now,.rcat,.slot .cat{animation:none!important}}
/* ===== michi tamagotchi ===== */
.prow{display:grid;grid-template-columns:24px 76px 1fr auto;gap:6px;align-items:center;margin:5px 0}
.prow .pic{font-size:18px;text-align:center}.prow .plab{font-weight:800;font-size:13px}
.pbar{height:12px;background:#f3e6ee;border-radius:8px;overflow:hidden}.pbar i{display:block;height:100%;border-radius:8px;transition:width .6s}
.prow .btn{min-width:96px;white-space:nowrap}
.rci{transform-box:fill-box;transform-origin:50% 100%}
.rci.pa-h{animation:chew .5s ease-in-out infinite}.rci.pa-f{animation:hop .5s ease-in-out infinite}.rci.pa-s{transform:scale(1.06,.84);animation:breathe 2.4s ease-in-out infinite}.rci.pa-b{transform:scale(1,.94)}
@keyframes breathe{50%{transform:scale(1.08,.81)}}
.roomsvg.acting .pbub{display:none}.rf.roll{transform-box:fill-box;transform-origin:50% 50%;animation:roll 1s ease-in-out infinite}@keyframes roll{0%,100%{transform:translateX(-5px) rotate(-60deg)}50%{transform:translateX(7px) rotate(80deg)}}
.sty .fi.on{outline:3px solid #5fd08a}.btn[disabled]{opacity:.55;pointer-events:none}
@keyframes chew{50%{transform:scale(1.03,.96)}}@keyframes hop{50%{transform:scale(1.04,.95)}}
.pz{animation:zz 1.6s ease-out infinite both}@keyframes zz{0%{opacity:0;transform:translateY(6px)}40%{opacity:1}100%{opacity:0;transform:translateY(-10px)}}
.pdim{animation:dim .5s ease-out both}@keyframes dim{from{opacity:0}}
.pcrumb{animation:zz 1s ease-out infinite both}
@media (max-width:370px){.prow{grid-template-columns:22px 64px 1fr auto}.prow .btn{min-width:84px;font-size:13px;padding-left:6px;padding-right:6px}}
@media (prefers-reduced-motion:reduce){.rcat,.pz,.pcrumb{animation:none!important}}
@media (orientation:landscape) and (max-height:620px){.roomsvg{width:auto;max-width:100%;height:calc(100vh - 215px);height:calc(100dvh - 215px);min-height:150px;margin:0 auto}}
.zzinfo{margin:-2px 0 6px 34px;font-size:13px;font-weight:800;color:#6b5aa8}

#polOv{position:fixed;inset:0;z-index:9999;background:#fff7fb;display:flex;flex-direction:column;padding-top:env(safe-area-inset-top)}#polOv .polbar{padding:10px 12px;background:#ffe0ef;box-shadow:0 2px 6px rgba(0,0,0,.08)}#polOv .polbar .btn{width:100%;font-size:17px}#polOv iframe{flex:1;border:0;width:100%;background:#fff7fb}
/* ===== Cuarto 2D v2 (room2d.js) ===== */
.roomcard{background:linear-gradient(180deg,#fff,#fff6fa)}.roomsvg{box-shadow:inset 0 0 0 2px #ffd6e8,0 6px 16px rgba(176,64,122,.12)}
.c2body,.c2head,.c2tail,.c2earL,.c2earR,.c2eyes,.c2chew,.c2heart,.c2spk,.c2drop{transform-box:view-box}
.c2body{transform-origin:200px 266px;animation:c2breath 3.2s ease-in-out infinite}
.c2head{transform-origin:200px 228px;animation:c2head 6.4s ease-in-out infinite}
.c2tail{transform-origin:219px 259px;animation:c2tail 2.8s ease-in-out infinite}
.c2earL{transform-origin:182px 190px;animation:c2ear 7.3s ease-in-out infinite}
.c2earR{transform-origin:218px 190px;animation:c2ear 7.3s ease-in-out 3.1s infinite}
.c2eyes{transform-origin:200px 208px;animation:c2blink 4.7s linear infinite}
.c2spk{transform-box:fill-box;transform-origin:50% 50%;animation:c2spk 2.6s ease-in-out infinite both}
.c2glow{animation:c2glow 3.2s ease-in-out infinite}
.c2drop{animation:c2drop 2.4s ease-in infinite both}
@keyframes c2breath{0%,100%{transform:scale(1,1)}50%{transform:scale(1.025,1.04)}}
@keyframes c2head{0%,100%{transform:translateY(0) rotate(0)}25%{transform:translateY(.8px) rotate(-2deg)}50%{transform:translateY(1.2px) rotate(0)}75%{transform:translateY(.8px) rotate(2deg)}}
@keyframes c2tail{0%,100%{transform:rotate(-7deg)}50%{transform:rotate(9deg)}}
@keyframes c2ear{0%,90%,100%{transform:rotate(0)}93%{transform:rotate(-9deg)}96%{transform:rotate(3deg)}}
@keyframes c2blink{0%,92%,100%{transform:scaleY(1)}95%{transform:scaleY(.08)}}
@keyframes c2spk{0%,100%{opacity:.25;transform:scale(.6)}50%{opacity:1;transform:scale(1)}}
@keyframes c2glow{0%,100%{opacity:.55}50%{opacity:.85}}
@keyframes c2drop{0%,40%{opacity:0;transform:translateY(0)}55%{opacity:1}100%{opacity:0;transform:translateY(5px)}}
.rcat[data-mood=playful] .c2tail{animation-duration:1.3s}.rcat[data-mood=playful] .c2head{animation:c2bop 1.6s ease-in-out infinite}
@keyframes c2bop{0%,100%{transform:rotate(-4deg)}50%{transform:rotate(4deg) translateY(-1px)}}
.rcat[data-mood^=hungry] .c2tail,.rcat[data-mood^=bored] .c2tail,.rcat[data-mood=potty] .c2tail{animation-duration:4.8s}
.rcat[data-mood^=bored] .c2head,.rcat[data-mood^=hungry] .c2head{animation:c2droop 5s ease-in-out infinite}
@keyframes c2droop{0%,100%{transform:translateY(1.5px) rotate(-3deg)}50%{transform:translateY(2px) rotate(-1deg)}}
.rcat[data-mood=sleepy] .c2body,.rcat[data-mood=sleep] .c2body{animation-duration:4.6s}
.rcat[data-mood=sleepy] .c2head{animation:c2nod 4.6s ease-in-out infinite}
@keyframes c2nod{0%,100%{transform:translateY(1px) rotate(0)}50%{transform:translateY(3px) rotate(4deg)}}
.rcat[data-mood=sleep] .c2head{animation:none;transform:translateY(3px) rotate(6deg)}.rcat[data-mood=sleep] .c2tail{animation:none;transform:rotate(-18deg)}
.rcat[data-mood=walk] .c2tail{animation-duration:1s}.rcat[data-mood=walk] .c2head{animation:none}
.rcat[data-mood=eat] .c2head{animation:c2munch .45s ease-in-out infinite}
@keyframes c2munch{0%,100%{transform:translateY(2px) rotate(6deg)}50%{transform:translateY(4px) rotate(9deg)}}
.c2chew{transform-origin:200px 220px;animation:c2chew .45s ease-in-out infinite}@keyframes c2chew{0%,100%{transform:scaleY(.4)}50%{transform:scaleY(1)}}
.rcat[data-mood=play] .c2tail{animation-duration:.9s}
.rcat[data-mood=pet] .c2body{animation:c2squish .5s ease-out 1 both}.rcat[data-mood=pet] .c2head{animation:c2nuzzle .9s ease-in-out 1 both}
@keyframes c2squish{0%{transform:scale(1,1)}40%{transform:scale(1.06,.94)}100%{transform:scale(1,1)}}
@keyframes c2nuzzle{0%,100%{transform:rotate(0)}30%{transform:rotate(-7deg)}65%{transform:rotate(6deg)}}
.c2heart{animation:c2heart 1.2s ease-out 1 both}@keyframes c2heart{0%{opacity:0;translate:0 6px;scale:.5}25%{opacity:1;scale:1.15}100%{opacity:0;translate:0 -26px;scale:1}}
.rci.pa-h,.rci.pa-f{animation:none}.rci.pa-f{animation:hop .6s ease-in-out infinite}
.pfood{animation:c2eat 2.5s steps(4,end) 1 forwards}@keyframes c2eat{0%{opacity:1}100%{opacity:.15}}
.roomsvg.acting .pbubw{display:none}
.pbub{animation:c2float 3.6s ease-in-out infinite}@keyframes c2float{0%,100%{translate:0 0}50%{translate:0 -2px}}
/* barras */
.petcard h3{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.petcard .pmood{font-size:13px;font-weight:800;color:#b0407a;background:#ffe3ef;border-radius:999px;padding:2px 10px}
.prow .pic{width:24px;height:24px;line-height:24px;border-radius:50%;background:#fff3f8;box-shadow:inset 0 0 0 2px #ffd6e8;font-size:14px}
.pbar{height:14px;background:#f6e9f1;border-radius:999px;box-shadow:inset 0 1px 2px rgba(74,53,80,.15);position:relative}
.pbar i{border-radius:999px;position:relative;transition:width .6s ease;min-width:6px}.pbar i::after{content:"";position:absolute;left:4px;right:4px;top:2px;height:3px;border-radius:3px;background:rgba(255,255,255,.55)}
@media (prefers-reduced-motion:reduce){.c2body,.c2head,.c2tail,.c2earL,.c2earR,.c2eyes,.c2chew,.c2spk,.c2glow,.c2drop,.pbub{animation:none!important}}
