.ptcard{display:flex;gap:16px;align-items:center;flex-wrap:wrap}.ptcard h2 small{font-size:.8rem;font-weight:600}
.ptstage{cursor:pointer;border-radius:24px;background:radial-gradient(circle at 50% 70%,rgba(255,255,255,.55),transparent 70%)}
.ptegg{font-size:64px;animation:ptwob 2.4s ease-in-out infinite}
.ptm{display:flex;align-items:center;gap:8px;margin:5px 0;font-weight:700;font-size:.9rem}.ptm span{min-width:86px}
.ptbar{flex:1;height:12px;border-radius:99px;background:rgba(127,127,127,.2);overflow:hidden}.ptbar i{display:block;height:100%;border-radius:99px;transition:width .6s cubic-bezier(.3,1.4,.5,1)}
.ptrow{display:flex;gap:10px;overflow-x:auto;padding:4px 2px 8px;scroll-snap-type:x mandatory}
.ptmini{flex:0 0 auto;scroll-snap-align:start;display:flex;flex-direction:column;align-items:center;gap:2px;border:0;background:rgba(127,127,127,.1);border-radius:20px;padding:8px 12px;min-width:92px;cursor:pointer;color:inherit;font:inherit}
.ptmini b{font-size:.9rem}.ptmini small{opacity:.7;font-size:.75rem}.ptadd span{font-size:40px;line-height:64px}
.ptmini:active{transform:scale(.94)}
.ptsvg{overflow:visible}.pt-happy,.pt-ok{animation:ptbob 2.6s ease-in-out infinite}.pt-sleep{animation:ptbreathe 3.5s ease-in-out infinite}.pt-sad,.pt-hungry{animation:ptsway 4s ease-in-out infinite}
.ptz{animation:ptzz 2s ease-in-out infinite}
.ptsheet{position:relative;text-align:center}.ptsheet h2{margin:0}.ptx{position:absolute;right:0;top:0;border:0;background:none;font-size:20px;cursor:pointer;color:inherit}
.ptbig{position:relative;margin:6px auto;width:200px}.ptfx{position:absolute;inset:0;pointer-events:none;font-size:30px}
.pa-feed .ptfx,.pa-play .ptfx,.pa-pet .ptfx,.pa-nap .ptfx{animation:ptfx 1.2s ease-out forwards}
.pa-feed .ptcr{animation:ptchomp .5s ease-in-out 2}.pa-play .ptcr{animation:ptjump .55s cubic-bezier(.3,1.6,.5,1) 2}.pa-pet .ptcr{animation:ptsquish .7s ease-in-out}.pa-nap .ptcr{animation:ptbreathe 3.5s ease-in-out infinite}
.ptsay{font-weight:800;font-size:1.1rem;min-height:1.6em;margin-bottom:8px;animation:ptpop .35s cubic-bezier(.3,1.6,.5,1)}
.ptacts{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-top:12px}
.ptact{display:flex;flex-direction:column;align-items:center;gap:2px;border:0;border-radius:18px;padding:12px 4px;font:inherit;font-weight:800;cursor:pointer;background:var(--acc,#f97316);color:#fff;box-shadow:0 4px 0 rgba(0,0,0,.18)}
.ptact span{font-size:28px}.ptact:active{transform:translateY(3px);box-shadow:0 1px 0 rgba(0,0,0,.18)}.ptact:disabled{opacity:.4}
.ptmk{text-align:center}.ptprev{display:flex;justify-content:center;background:radial-gradient(circle,rgba(249,115,22,.15),transparent 70%);border-radius:24px}
.ptmk input{width:100%;font-size:1.1rem;text-align:center}
.pttabs{display:flex;gap:6px;overflow-x:auto;padding:10px 0 6px}.pttab{flex:0 0 auto;border:0;border-radius:99px;padding:8px 12px;font:inherit;font-weight:700;background:rgba(127,127,127,.14);color:inherit;cursor:pointer}.pttab.on{background:var(--acc,#f97316);color:#fff}
.ptopts{display:grid;grid-template-columns:repeat(auto-fill,minmax(82px,1fr));gap:8px;max-height:260px;overflow-y:auto;padding:4px}
.ptopt{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;border:3px solid transparent;border-radius:16px;padding:6px;background:rgba(127,127,127,.1);color:inherit;font:inherit;cursor:pointer;min-height:64px}
.ptopt.on{border-color:var(--acc,#f97316);background:rgba(249,115,22,.12)}.ptopt:disabled{opacity:.45}.ptopt small{font-size:.72rem;font-weight:700}
.ptsw{width:40px;height:40px;border-radius:50%;box-shadow:inset 0 -4px 0 rgba(0,0,0,.15)}
@keyframes ptbob{0%,100%{transform:translateY(0)}50%{transform:translateY(-4px)}}@keyframes ptbreathe{0%,100%{transform:scale(1,1)}50%{transform:scale(1.03,.97)}}
@keyframes ptsway{0%,100%{transform:rotate(-2deg)}50%{transform:rotate(2deg)}}@keyframes ptzz{0%{opacity:0;transform:translate(0,6px)}50%{opacity:1}100%{opacity:0;transform:translate(8px,-10px)}}
@keyframes ptchomp{50%{transform:scale(1.06,.92)}}@keyframes ptjump{50%{transform:translateY(-26px) rotate(-6deg)}}@keyframes ptsquish{30%{transform:scale(1.12,.88)}60%{transform:scale(.95,1.06)}}
@keyframes ptfx{0%{opacity:0;transform:translateY(40px) scale(.6)}30%{opacity:1}100%{opacity:0;transform:translateY(-40px) scale(1.3)}}@keyframes ptpop{0%{transform:scale(.7)}100%{transform:scale(1)}}
@keyframes ptwob{0%,100%{transform:rotate(-6deg)}50%{transform:rotate(6deg)}}
@media (prefers-reduced-motion:reduce){.ptsvg,.ptfx,.ptegg,.ptz{animation:none!important}}
.pthm{display:flex;align-items:center;gap:10px;width:100%;text-align:left;cursor:pointer;color:inherit;font:inherit;padding:10px 16px}.pthmr{flex:1;display:flex;gap:2px;overflow:hidden;align-items:center}
.ptgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:12px}.ptwho{display:flex;align-items:center;gap:8px;margin:6px 0}
.ptbub{position:relative;background:#fff;color:#1f2937;border-radius:14px;padding:6px 10px;font-weight:700;font-size:.85rem;max-width:180px;margin-top:-6px;box-shadow:0 2px 8px rgba(0,0,0,.15);animation:ptpop .35s cubic-bezier(.3,1.6,.5,1)}
.ptcl{display:flex;flex-direction:column;align-items:center;gap:4px;padding:6px;border-radius:14px;background:rgba(127,127,127,.1)}.ptcl input{width:52px;height:52px;border:0;padding:0;background:none;cursor:pointer}
.ptsl{grid-column:1/-1;display:flex;align-items:center;gap:10px;text-align:left}.ptsl small{min-width:110px;font-weight:700}.ptsl input{flex:1;accent-color:var(--acc,#f97316)}
.pi-wiggle{animation:ptwig 1.6s ease-in-out infinite}.pi-sway{animation:ptsway 3.5s ease-in-out infinite}.pi-nod{animation:ptnod 4s ease-in-out infinite}.pi-stomp{animation:ptstomp 1.4s ease-in-out infinite}.pi-peek{animation:ptpeek 5s ease-in-out infinite}.pi-swoon{animation:ptswoon 4.5s ease-in-out infinite}.pi-bounce{animation:ptjump .7s ease-in-out infinite}.pi-bob{animation:ptbob 2.6s ease-in-out infinite}
.ptcr.pt-sleep{animation:ptbreathe 3.5s ease-in-out infinite}
@keyframes ptwig{0%,100%{transform:rotate(0)}25%{transform:rotate(-7deg)}75%{transform:rotate(7deg)}}@keyframes ptnod{0%,70%,100%{transform:rotate(0)}80%{transform:rotate(8deg) translateY(2px)}}
@keyframes ptstomp{0%,100%{transform:translateY(0) scale(1)}50%{transform:translateY(-3px) scale(1.04)}}@keyframes ptpeek{0%,60%,100%{transform:translateX(0)}70%,90%{transform:translateX(-8px) rotate(-6deg)}}
@keyframes ptswoon{0%,80%,100%{transform:rotate(0)}88%{transform:rotate(-14deg) translateY(3px)}}
.ptchip{display:inline-flex;align-self:flex-end;margin:0 2px;filter:drop-shadow(0 1px 2px rgba(0,0,0,.2))}
.ptpg{margin:6px 0;border-radius:18px;background:linear-gradient(180deg,rgba(125,211,252,.18),rgba(134,239,172,.22));overflow:hidden}.ptpg.off{background:none}
.ptpgt{border:0;background:none;color:inherit;font:inherit;font-weight:800;font-size:.8rem;padding:6px 12px;cursor:pointer;opacity:.8}
.ptpgf{position:relative;height:96px;border-bottom:6px solid rgba(34,197,94,.35)}
.ptpgp{position:absolute;left:0;bottom:0;width:56px;cursor:pointer;will-change:transform}.ptpgb{transition:transform .2s}
.ptpgp.hop .ptcr{animation:ptjump .5s cubic-bezier(.3,1.6,.5,1) 2}.ptpgp.swoon .ptcr{animation:ptswoon 1.2s ease-in-out}
.ptpgs{position:absolute;bottom:58px;left:50%;transform:translateX(-50%) scale(0);background:#fff;color:#111;border-radius:10px;padding:2px 7px;font-size:.72rem;font-weight:800;white-space:nowrap;opacity:0}
.ptpgs.on{animation:pgsay 2.2s ease forwards}@keyframes pgsay{0%{opacity:0;transform:translateX(-50%) scale(.4)}12%,80%{opacity:1;transform:translateX(-50%) scale(1)}100%{opacity:0;transform:translateX(-50%) scale(.9)}}
.ptpgball{position:absolute;left:0;bottom:20px;font-size:16px;opacity:0;pointer-events:none}
.ptpgfx{position:absolute;bottom:40px;font-size:18px;pointer-events:none;animation:ptfx 1.6s ease-out forwards;opacity:0}
@media (prefers-reduced-motion:reduce){.pi-wiggle,.pi-sway,.pi-nod,.pi-stomp,.pi-peek,.pi-swoon,.pi-bounce,.pi-bob,.ptpgp .ptsvg,.ptpgfx{animation:none!important}}
/* ===== v64 quality pass ===== */
.ptsvg{overflow:visible}.ptsvg .ptbd{transform-box:fill-box;transform-origin:50% 100%;animation:ptbreath 3.2s cubic-bezier(.45,0,.55,1) infinite}
.ptsvg .ptshadow{transform-box:fill-box;transform-origin:center;animation:ptshad 3.2s cubic-bezier(.45,0,.55,1) infinite}
.ptsvg .pteyes{transform-box:fill-box;transform-origin:50% 55%;animation:ptblink 5.2s infinite}
.pt-sleep .pteyes,.pt-tired .pteyes{animation:none}
@keyframes ptbreath{0%,100%{transform:scale(1,1)}50%{transform:scale(1.025,.975)}}@keyframes ptshad{0%,100%{transform:scale(1)}50%{transform:scale(1.04)}}
@keyframes ptblink{0%,93%,100%{transform:scaleY(1)}95%{transform:scaleY(.08)}97%{transform:scaleY(1)}}
.pt-happy,.pt-ok{animation:none}.pi-bob,.pi-sway,.pi-wiggle,.pi-nod,.pi-stomp,.pi-peek,.pi-swoon,.pi-bounce{animation-timing-function:cubic-bezier(.45,0,.55,1)!important}
@keyframes ptjump{0%{transform:translateY(0) scale(1,1)}15%{transform:translateY(0) scale(1.12,.86)}45%{transform:translateY(-24px) scale(.92,1.1)}75%{transform:translateY(0) scale(1.1,.9)}100%{transform:translateY(0) scale(1,1)}}
.pa-play .ptcr{animation:ptjump .7s cubic-bezier(.3,.7,.4,1) 2}.pa-feed .ptcr{animation:ptchomp .32s ease-in-out 3}.pa-pet .ptcr{animation:ptsquish .8s cubic-bezier(.3,1.5,.5,1)}
/* roomy phone cards */
.ptcard{flex-direction:column;align-items:stretch;gap:10px;padding:16px}.ptcard .ptstage{position:relative;display:flex;justify-content:center;padding:10px 0 4px;border-radius:22px;background:radial-gradient(circle at 50% 75%,rgba(255,255,255,.14),transparent 70%)}
.ptcard .ptstage .ptsvg{width:min(190px,58vw);height:auto}.ptcard .ptbub{position:absolute;top:6px;right:8px;max-width:48%;font-size:.8rem}
.ptcard .ptbub:after{content:'';position:absolute;left:14px;bottom:-6px;border:6px solid transparent;border-top-color:#fff;border-bottom:0}
.ptcard h2{display:flex;align-items:baseline;gap:8px;flex-wrap:wrap;margin:0}.ptcard .btn.s{width:100%;margin-top:8px;padding:12px}
.ptm{font-size:.85rem}.ptm span{min-width:78px}.ptbar{height:10px;box-shadow:inset 0 1px 2px rgba(0,0,0,.25)}.ptbar i{background-image:linear-gradient(180deg,rgba(255,255,255,.35),transparent)!important;background-blend-mode:overlay}
@media(min-width:720px){.ptcard{flex-direction:row;align-items:center}.ptcard .ptstage{flex:0 0 220px}}
.ptgrid{grid-template-columns:repeat(auto-fill,minmax(min(100%,320px),1fr));gap:16px}
.ptmini .ptsvg{width:60px;height:60px}.ptmini{border-radius:22px;padding:10px 14px;background:linear-gradient(180deg,rgba(255,255,255,.1),rgba(255,255,255,.03))}
/* sheet + creator */
.ptbig{width:min(240px,70vw)}.ptbig .ptsvg{width:100%;height:auto}.ptsay{background:#fff;color:#1f2937;display:inline-block;padding:8px 14px;border-radius:16px;box-shadow:0 3px 10px rgba(0,0,0,.2)}
.ptmk .ptprev{position:sticky;top:-16px;z-index:2;background:radial-gradient(circle at 50% 60%,rgba(249,115,22,.22),rgba(30,20,45,.96) 72%);margin:0 -8px;padding:8px 0}.ptmk .ptprev .ptsvg{width:min(200px,56vw);height:auto}
.ptgrps{display:grid;grid-template-columns:repeat(5,1fr);gap:4px;margin-top:10px;background:rgba(127,127,127,.12);border-radius:16px;padding:4px}
.ptgrp{border:0;border-radius:12px;padding:9px 2px;font:inherit;font-weight:800;font-size:.78rem;background:none;color:inherit;cursor:pointer}.ptgrp.on{background:var(--acc,#f97316);color:#fff;box-shadow:0 2px 6px rgba(0,0,0,.25)}
.pttab{font-size:.85rem;padding:7px 12px}.ptopts{grid-template-columns:repeat(auto-fill,minmax(88px,1fr));max-height:300px}.ptopt{transition:transform .15s}.ptopt:active{transform:scale(.94)}.ptopt .ptsvg{width:64px;height:64px}
.ptsw{width:44px;height:44px;border:3px solid rgba(255,255,255,.7)}
/* playground */
.ptpgf{height:112px;background:linear-gradient(180deg,transparent 60%,rgba(34,197,94,.18))}.ptpgp{width:60px;transition:none}.ptpgb{transition:none;transform-origin:50% 100%}.ptpgp .ptsvg{width:60px;height:60px}
.ptpgp.land .ptpgb{animation:ptland .28s ease-out}@keyframes ptland{0%{transform:scale(1.15,.82)}100%{transform:scale(1,1)}}
.ptpgs{bottom:64px;z-index:5;box-shadow:0 2px 6px rgba(0,0,0,.25)}
@media (prefers-reduced-motion:reduce){.ptsvg .ptbd,.ptsvg .pteyes,.ptsvg .ptshadow,.ptpgp.land .ptpgb{animation:none!important}}

/* v65: room stays still; only the creature group moves */
.ptcr{transform-box:view-box;transform-origin:60px 110px}.ptsvg{animation:none!important}
@media (prefers-reduced-motion:reduce){.ptcr{animation:none!important}}
.pshopc h3{margin:14px 0 6px}.pshbal{font-weight:900;background:rgba(250,204,21,.18);padding:4px 10px;border-radius:99px;margin-right:8px}
.pshgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:10px;margin-top:8px}
.pshop{position:relative;display:flex;flex-direction:column;align-items:center;gap:4px;text-align:center;padding:12px 10px;border-radius:20px;background:linear-gradient(180deg,rgba(255,255,255,.1),rgba(255,255,255,.03))}
.pshi{font-size:40px;line-height:56px;height:56px}.pshi img{width:56px;height:56px;object-fit:cover;border-radius:14px}.pshp{font-weight:900;color:#facc15}.pshop .btn{width:100%;margin-top:4px}
.pshe{position:absolute;top:6px;right:6px;border:0;background:rgba(0,0,0,.25);border-radius:99px;width:28px;height:28px;cursor:pointer}
.pshrow{display:flex;align-items:center;gap:8px;padding:8px 0;border-top:1px solid rgba(127,127,127,.15)}.pshrow>span{font-size:26px}
.pshf label{display:block;font-weight:700;margin:10px 0 4px}.pshf input[type=text],.pshf input:not([type]),.pshf input[type=number]{width:100%}
.pshic{display:grid;grid-template-columns:repeat(auto-fill,minmax(48px,1fr));gap:6px}.pshic .ptopt{min-height:48px;font-size:24px;margin:0}.pshup{cursor:pointer}.pshpv{width:72px;height:72px;object-fit:cover;border-radius:14px;margin-top:6px}
.pshwho{display:flex;flex-wrap:wrap;gap:6px}.pshwho label{display:flex;align-items:center;gap:6px;margin:0;font-weight:600;background:rgba(127,127,127,.12);padding:6px 10px;border-radius:99px}
