/* Shared tactile feedback; never delays navigation or game input. */
a[href],button,summary,[role="button"]{touch-action:manipulation;-webkit-tap-highlight-color:transparent}
:where(a[href],button,summary,[role="button"]):not(.cell):not(:disabled){transition:translate 90ms ease,scale 90ms ease,filter 90ms ease}
:where(a[href],button,summary,[role="button"]):not(.cell):not(:disabled).is-pressed{translate:0 2px;scale:.975;filter:brightness(.9)}
@media(prefers-reduced-motion:reduce){:where(a[href],button,summary,[role="button"]):not(.cell){transition:none!important;translate:none!important;scale:none!important}}


/* Touch scrolling must not trigger desktop hover decoration. */
@media(hover:none){
 .featured:hover .featured-cover img{transform:rotate(-4deg)}
 .featured:hover .featured-case{transform:rotate(3deg)}
 .featured:hover .primary-action{transform:none;background:var(--blue)}
}
/* Browser-managed crossfade; no click interception or navigation timeout. */
@media(prefers-reduced-motion:no-preference){
 @view-transition{navigation:auto}
 ::view-transition-old(root){animation:page-out 140ms ease-out both}
 ::view-transition-new(root){animation:page-in 140ms ease-out both}
 ::view-transition-group(root){animation-duration:140ms}
 ::view-transition{pointer-events:none}
}
@keyframes page-out{to{opacity:0}}
@keyframes page-in{from{opacity:0}to{opacity:1}}
