/* Subtle motion, with a static fallback. */
@view-transition{navigation:auto}
::view-transition-old(root){animation:aniwaart-out .65s cubic-bezier(.4,0,.2,1) both}
::view-transition-new(root){animation:aniwaart-in .9s cubic-bezier(.4,0,.2,1) both}
header{view-transition-name:site-header}
::view-transition-group(site-header){animation-duration:.9s;animation-timing-function:cubic-bezier(.4,0,.2,1)}
@keyframes aniwaart-out{to{opacity:0}}
@keyframes aniwaart-in{from{opacity:0}to{opacity:1}}
@media(prefers-reduced-motion:no-preference){
.btn{transition:background-color .25s ease,box-shadow .3s ease,transform .3s ease}
.btn:hover{transform:translateY(-2px);box-shadow:0 8px 20px #6539b526}
.btn:active{transform:translateY(0)}
nav a:not(.btn),.textlink,.project-info a{transition:color .25s ease,opacity .25s ease}
nav a:not(.btn):hover,.textlink:hover{color:var(--purple)}
.card,.project{transition:transform .4s cubic-bezier(.2,.65,.3,1),box-shadow .4s ease,border-color .4s ease}
.card:hover,.project:hover{transform:translateY(-4px);box-shadow:0 16px 32px #35204d0c;border-color:#d5c5e8}
.project-preview img{transition:transform .65s cubic-bezier(.2,.65,.3,1)}
input,select,textarea{transition:border-color .25s ease,box-shadow .25s ease}
input:focus,select:focus,textarea:focus{border-color:var(--purple);box-shadow:0 0 0 3px #6539b514;outline:none}
.motion-ready [data-reveal]{opacity:0;transform:translateY(18px);transition:opacity .65s cubic-bezier(.2,.65,.3,1),transform .65s cubic-bezier(.2,.65,.3,1);transition-delay:var(--reveal-delay,0ms)}
.motion-ready [data-reveal].is-visible{opacity:1;transform:translateY(0)}
dialog[open]{animation:dialog-arrive .24s ease-out}
dialog[open]::backdrop{animation:aniwaart-in .24s ease-out}
@keyframes dialog-arrive{from{opacity:0;transform:translateY(10px) scale(.99)}to{opacity:1;transform:none}}
}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto!important}*,*::before,*::after{animation:none!important;transition:none!important}.motion-ready [data-reveal]{opacity:1!important;transform:none!important}::view-transition-old(root),::view-transition-new(root){animation:none!important}}
