/* hover interactions: 3D tilt, glare, glow, parallax art, shine sweep */
.card,.btile,.ctile{--rx:0deg;--ry:0deg;--px:0;--py:0;--gx:50%;--gy:50%}
.btile,.ctile{transform:perspective(900px) rotateX(var(--rx)) rotateY(var(--ry));transition:transform .18s ease-out,border-color .2s,box-shadow .3s;position:relative}
.card::after,.btile::before,.ctile::after{content:"";position:absolute;inset:0;border-radius:inherit;pointer-events:none;opacity:0;transition:opacity .3s;background:radial-gradient(280px circle at var(--gx) var(--gy),rgba(255,255,255,.3),transparent 62%);mix-blend-mode:soft-light;z-index:3}
.stage::before{content:"";position:absolute;inset:-20% auto -20% -60%;width:40%;transform:skewX(-18deg);background:linear-gradient(90deg,transparent,rgba(255,255,255,.4),transparent);opacity:0;pointer-events:none;z-index:2}
.art{transition:transform .18s ease-out,scale .35s cubic-bezier(.3,1.4,.5,1),filter .3s}
@media (hover:hover){
  .card:hover,.btile:hover,.ctile:hover{transform:perspective(900px) translateY(-7px) rotateX(var(--rx)) rotateY(var(--ry));border-color:var(--c);box-shadow:0 30px 60px -14px color-mix(in srgb,var(--c) 55%,transparent),var(--shadow),inset 0 1px 0 var(--glass-hi)}
  .ctile:hover{--c:var(--accent)}
  .card:hover::after,.btile:hover::before,.ctile:hover::after{opacity:1}
  .card:hover .art,.ctile:hover .art{scale:1.1;filter:drop-shadow(0 24px 24px rgba(0,0,0,.42))}
  .card:hover .stage::before,.ctile:hover .stage::before{opacity:1;animation:sweep .9s ease-out}
  .card:hover .badge{transform:translateY(-2px) scale(1.05)}
  .card:hover .btn{background-position:100% 0;box-shadow:0 8px 24px color-mix(in srgb,var(--accent) 50%,transparent)}
  .btile:hover .n{letter-spacing:.16em}
  .heart:hover{scale:1.15;border-color:var(--hot)}
  .btn:hover{box-shadow:0 10px 26px color-mix(in srgb,var(--accent) 45%,transparent)}
}
.card .badge,.btile .n{transition:transform .25s,letter-spacing .3s}
.heart{transition:scale .2s,border-color .2s}
.heart[aria-pressed="true"]{animation:cpop .4s}
@keyframes sweep{to{left:130%}}
