/* Small, finite responses. The camera and the tablet retain their own geometry. */
/* Native scroll anchoring must not follow moving cards or a reparented catalog. */
body.scroll-enhanced{overflow-anchor:none}
.button,.header-ticket,.filters button,#layout-toggle,.close-detail,.detail-navigation button,
.companion-actions>button,.companion-actions>a,.companion-question,.companion-replay{
  transition:background .22s,color .22s,border-color .22s,box-shadow .22s,transform .28s,scale .2s;
}
.button:active,.header-ticket:active,#layout-toggle:active,.filters button:active,
.companion-actions>button:active,.companion-actions>a:active,.companion-question:active{scale:.97}
.button span,.header-ticket span{transition:transform .3s cubic-bezier(.22,.8,.25,1)}
.button:is(:hover,:focus-visible) span,.header-ticket:is(:hover,:focus-visible) span{transform:translate(3px,-3px)}
.header nav a{position:relative;padding:8px 0}
.header nav a::after{content:"";position:absolute;bottom:0;left:0;width:100%;height:2px;background:var(--blue);transform:scaleX(0);transform-origin:left;transition:transform .25s}
.header nav a:is(:hover,:focus-visible)::after{transform:scaleX(1)}
.logo svg{transition:transform .4s cubic-bezier(.22,.8,.25,1)}
.logo:is(:hover,:focus-visible) svg{transform:translate(3px,-3px) rotate(-8deg)}
.boarding-pass{overflow:hidden}
.boarding-pass::after{content:"";pointer-events:none;position:absolute;inset:-50% -25%;background:linear-gradient(105deg,transparent 38%,#fff8 49%,transparent 60%);opacity:0;translate:-80% 0}
.boarding-pass:is(:hover,:focus-visible)::after{animation:ticket-glint .8s ease-out both}
.boarding-pass:active{scale:.98}
.boarding-pass:focus-visible{transform:rotate(-4deg) translateY(-8px)}
.flip-button{transition:filter .2s,translate .2s}
.flip-button:active{translate:-2px 0;filter:brightness(.96)}
.work-card{transform-origin:top left}
.work-open:focus-visible .work-cover{transform:translateY(-5px);box-shadow:0 15px 24px #29344916}
.work-open:active .work-cover{scale:.985}
.work-cover{transition:transform .35s,box-shadow .35s,scale .2s}
.work-play{transition:background .25s,padding .25s}
.work-card:has(video.playing) .work-play{background:#163cf4df}
.search-label{transition:border-color .22s,box-shadow .22s}
.search-label:focus-within{border-color:var(--blue);box-shadow:0 2px 0 var(--blue)}
#layout-toggle[aria-pressed="true"]{color:var(--blue);background:#163cf413}
#project-dialog[open]::backdrop{animation:detail-backdrop-in .25s ease-out both}
.detail-copy h2{text-wrap:balance}
.detail-navigation button:not(:disabled):active{scale:.96}
#companion-dialogue .companion-question:is(:hover,:focus-visible){transform:translateX(3px)}
#companion-dialogue .companion-question>span:last-child{transition:transform .25s}
#companion-dialogue .companion-question:is(:hover,:focus-visible)>span:last-child{transform:translate(2px,-2px)}
#companion-dialogue .companion-replay:hover{transform:rotate(-35deg)}
#copy-wechat{transition:color .2s}
#copy-wechat.copied{color:var(--blue)}
#copy-wechat.copied span{text-decoration:none}
@keyframes ticket-glint{0%{opacity:0;translate:-70% 0}25%{opacity:.7}100%{opacity:0;translate:70% 0}}
@keyframes detail-backdrop-in{from{background-color:#08112900;backdrop-filter:blur(0)}to{background-color:#081129c9;backdrop-filter:blur(9px)}}
@media(hover:hover) and (pointer:fine) and (prefers-reduced-motion:no-preference){
  .board-assembly{translate:calc(var(--look-x,0) * 1px) calc(var(--look-y,0) * 1px);transform:rotateY(calc(-13deg + var(--look-x,0) * .4deg)) rotateX(calc(var(--look-y,0) * -.4deg)) rotateZ(5deg);transition:transform .65s cubic-bezier(.22,.8,.25,1),translate .65s cubic-bezier(.22,.8,.25,1)}
  .boarding-pass{translate:calc(var(--look-x,0) * -.6px) calc(var(--look-y,0) * -.6px);transition:transform .4s,translate .65s cubic-bezier(.22,.8,.25,1),scale .2s}
}
@media(hover:none){.work-open:hover .work-cover{transform:none;box-shadow:none}}
@media(prefers-reduced-motion:reduce){
  .boarding-pass::after{display:none}
  .button,.header-ticket,.filters button,#layout-toggle,.close-detail,.detail-navigation button,
  .companion-actions>button,.companion-actions>a,.companion-question,.companion-replay{transition:none}
  .button:active,.header-ticket:active,#layout-toggle:active,.filters button:active,
  .companion-actions>button:active,.companion-actions>a:active,.companion-question:active,.boarding-pass:active,.work-open:active .work-cover{scale:1}
}
