/* PIGGY CHEF motion layer (v47): comic "pop" reveal + springy hovers. Off for reduced motion / paused. */
@keyframes pc-pop{0%{opacity:0;transform:translateY(26px) scale(.9) rotate(var(--pop-r,-2deg))}60%{opacity:1;transform:translateY(-4px) scale(1.03) rotate(calc(var(--pop-r,-2deg) * -.4))}100%{opacity:1;transform:none}}
@keyframes pc-bob{0%,100%{transform:translateY(0) rotate(-.6deg)}50%{transform:translateY(-6px) rotate(.6deg)}}
@keyframes pc-wiggle{0%,100%{transform:rotate(0)}25%{transform:rotate(-7deg) scale(1.08)}60%{transform:rotate(5deg) scale(1.04)}}
@keyframes pc-dots{to{background-position:24px 24px}}
.pc-js [data-pop].pc-wait{opacity:0}
.pc-js [data-pop].pc-in{animation:pc-pop .7s cubic-bezier(.2,.9,.3,1.2) both;animation-delay:calc(var(--pc-i,0) * 90ms)}
[data-pop]:nth-child(even){--pop-r:2deg}
/* springy hover for cards that live in comic panels */
.feature,.guide,.comic-cover-card,.article-link,.ui-comic-panel{transition:transform .25s cubic-bezier(.3,1.6,.5,1),box-shadow .25s}
.feature:hover,.article-link:hover,.ui-comic-panel:hover{transform:translateY(-6px) rotate(-.8deg)}
.guide:hover .guide-art{transform:rotate(-1.2deg) scale(1.015)}
.guide-art{transition:transform .35s cubic-bezier(.3,1.6,.5,1)}
.comic-cover-card:hover{transform:translateY(-10px) rotate(-2deg)}
.comic-cover-card:nth-child(even):hover{transform:translateY(-10px) rotate(2deg)}
/* number stamps wiggle on hover */
.feature:hover .num,.feature:hover [class*="stamp"],.ui-comic-panel:hover .ui-panel-stamp,.article-link:hover .number{animation:pc-wiggle .55s ease}
/* buttons: press like a rubber stamp */
.btn{transition:transform .15s,box-shadow .15s}
.btn:hover{transform:translate(-2px,-2px) rotate(-1deg)}
.btn:active{transform:translate(3px,3px)}
/* price ticket: tilt + halftone burst on hover */
#price{position:relative}
#price .ticket,#price [class*="ticket"]{transition:transform .35s cubic-bezier(.3,1.6,.5,1)}
#price:hover .ticket,#price:hover [class*="ticket-card"]{transform:rotate(-1.2deg) scale(1.01)}
#price:before{content:"";position:absolute;left:50%;top:52%;width:min(760px,90vw);height:min(760px,90vw);transform:translate(-50%,-50%) scale(.6);border-radius:50%;background:radial-gradient(circle,rgba(242,163,184,.55) 1.6px,transparent 2.2px) 0 0/12px 12px;opacity:0;transition:opacity .4s,transform .6s cubic-bezier(.3,1.4,.5,1);pointer-events:none;z-index:0}
#price:hover:before{opacity:1;transform:translate(-50%,-50%) scale(1)}
#price>*{position:relative;z-index:1}
@media (prefers-reduced-motion:reduce){.pc-js [data-pop].pc-wait{opacity:1}.pc-js [data-pop].pc-in,.camper-rest img{animation:none}*{transition-duration:.01ms!important}}
.motion-paused [data-pop]{opacity:1!important;animation:none!important}
.motion-paused .camper-rest img{animation:none}
