/* Small movements, once per entrance. Layout and artwork stay unchanged. */
.motion-ready .cinema-reveal{transform:translateY(24px);transition-duration:.7s}
.motion-ready .motion-card:not(.is-visible){opacity:0;transform:translateY(18px)}
.motion-ready .motion-card.is-visible{animation:df-card-enter .65s cubic-bezier(.22,.7,.25,1) var(--reveal-delay,0ms) backwards}
@keyframes df-card-enter{from{opacity:0;transform:translateY(18px)}to{opacity:1;transform:translateY(0)}}

.album,.video,.member-avatar,.member-instagram,.journal-arrow,.contact-logo img,
.merch-card,.merch-arrow,.cinema-play>span,.video-image .play,.close-dialog{
  transition:transform .3s ease,box-shadow .3s ease,border-color .3s ease,color .3s ease,background .3s ease;
}
.button{transition:transform .25s ease,box-shadow .3s ease,background .25s ease,border-color .25s ease}
.album-cover{transition:box-shadow .35s ease}
.video-image img{transition:transform .6s cubic-bezier(.2,.7,.25,1)}
.video-image .play{transition:transform .3s ease,box-shadow .3s ease}
.merch-card{overflow:hidden}
.merch-card>img{transition:transform .55s cubic-bezier(.2,.7,.25,1)}
.header nav>a:not(.nav-contact){position:relative}
.header nav>a:not(.nav-contact):after{content:'';position:absolute;left:0;right:0;bottom:-7px;height:1px;background:var(--gold);transform:scaleX(0);transform-origin:left;transition:transform .25s ease}
.header nav>a:focus-visible:after{transform:scaleX(1)}
dialog[open]{animation:df-dialog-enter .22s ease-out}
dialog[open]::backdrop{animation:df-backdrop-enter .22s ease-out}
@keyframes df-dialog-enter{from{opacity:0;transform:translateY(10px) scale(.985)}to{opacity:1;transform:translateY(0) scale(1)}}
@keyframes df-backdrop-enter{from{opacity:0}to{opacity:1}}

@media(hover:hover) and (pointer:fine) and (prefers-reduced-motion:no-preference){
  .header nav>a:hover:after{transform:scaleX(1)}
  .button:hover{transform:translateY(-3px);box-shadow:0 8px 25px #0003}
  .album:hover{transform:translateY(-5px)}
  .album:hover .album-cover{box-shadow:0 18px 42px #0007,0 0 0 1px #e6c66e88}
  .album:hover .album-cover img{transform:scale(1.045);filter:none}
  .video:hover .video-image img{transform:scale(1.035);filter:none}
  .video:hover .play{transform:translate(-50%,-50%) scale(1.08);box-shadow:0 8px 35px #0007,0 0 24px #e6c66e35}
  .cinema-play:hover>span{transform:scale(1.08);box-shadow:0 0 18px #e6c66e22}
  .member-avatar:hover{transform:translateY(-3px) scale(1.04);box-shadow:0 0 0 4px #e6c66e19}
  .member-instagram:hover{transform:translateY(-2px)}
  .journal-item:hover .journal-arrow{transform:translate(4px,-4px)}
  .contact-logo:hover img{transform:scale(1.035)}
  .merch-card:hover>img{transform:scale(1.025)}
  .merch-arrow:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 5px 18px #0003}
  .close-dialog:hover{transform:rotate(8deg)}
}
@media(prefers-reduced-motion:reduce){
  .motion-ready .motion-card:not(.is-visible),.motion-ready .cinema-reveal{opacity:1;transform:none}
  .motion-card,dialog[open],dialog[open]::backdrop{animation:none!important}
  .header nav>a:after{transition:none}
}
@media print{.motion-ready .motion-card:not(.is-visible),.motion-ready .cinema-reveal{opacity:1;transform:none}}
