/* Motion helpers. All decorative effects are disabled under reduced motion. */
.mwc{display:inline-block;overflow:hidden;vertical-align:top;padding:.08em .04em .18em;margin:-.08em -.04em -.18em}
.mw{display:inline-block;will-change:transform}
.btn{position:relative;overflow:hidden;will-change:transform;-webkit-tap-highlight-color:transparent}
.btn::after{content:"";position:absolute;inset:0;background:linear-gradient(105deg,transparent 35%,rgba(255,255,255,.55) 50%,transparent 65%);transform:translateX(120%);pointer-events:none}
.btn.shine::after{transform:translateX(-120%);transition:transform .7s cubic-bezier(.22,.8,.3,1)}
.btn.alt::after{background:linear-gradient(105deg,transparent 35%,rgba(191,227,238,.6) 50%,transparent 65%)}
.chap > *,.taste a,.hero .cover{transform-style:preserve-3d}
.hero{background-size:140% 140%,140% 140%,auto;animation:skyDrift 18s ease-in-out infinite alternate}
@keyframes skyDrift{from{background-position:0 0,0 0,0 0}to{background-position:30% 20%,-20% 30%,0 0}}
.mq-track{animation-duration:24s}
.mq:hover .mq-track{animation-play-state:paused}
.band::before{animation:dots 30s linear infinite}
@keyframes dots{to{background-position:120px 60px}}
.nav .wrap{transition:transform .4s cubic-bezier(.22,.8,.3,1),box-shadow .3s,background .3s}
.nav.scrolled .wrap{transform:scale(.97)}
details summary .ic{transition:transform .35s cubic-bezier(.22,.8,.3,1),background .3s}
details[open] summary .ic{transform:rotate(90deg)}
@media(prefers-reduced-motion:reduce){
  .btn::after{display:none}
  .hero,.band::before{animation:none!important}
  .mwc{overflow:visible}
}
