/* Motion adds feedback without changing the editorial layout. */
:root{--ease-out:cubic-bezier(.22,1,.36,1)}
.chevron{display:block;width:7px;height:7px;border-right:1.5px solid currentColor;border-bottom:1.5px solid currentColor;transform:translateY(-2px) rotate(45deg);transition:transform .25s var(--ease-out)}
.nav-dropdown[open] .chevron{transform:translateY(2px) rotate(225deg)}
.nav-dropdown[open] .nav-subpages{transform-origin:top center;animation:menu-arrive .24s var(--ease-out) both}
@keyframes menu-arrive{from{opacity:0;transform:translateY(-6px) scale(.985)}to{opacity:1;transform:translateY(0) scale(1)}}
.nav-links>a,.theme-toggle,.nav-dropdown>summary{position:relative}
.nav-links>a:after,.nav-dropdown>summary:after{content:'';position:absolute;left:0;right:0;bottom:6px;height:1px;background:var(--blue);transform:scaleX(0);transform-origin:left;transition:transform .25s var(--ease-out)}
.nav-links>a:hover,.theme-toggle:hover,.nav-dropdown>summary:hover{text-decoration:none;color:var(--blue)}
.nav-links>a:hover:after,.nav-links>a[aria-current=page]:after,.nav-dropdown[open]>summary:after{transform:scaleX(1)}
.nav-subpages a{transition:background .2s,color .2s,transform .25s var(--ease-out)}
.tile{transition:transform .4s var(--ease-out)}
.tile .media{position:relative;overflow:hidden;transition:border-color .3s,box-shadow .4s var(--ease-out)}
.tile .media:after{content:'';position:absolute;inset:0;background:linear-gradient(115deg,transparent 15%,rgba(var(--wash-blue),.07) 50%,transparent 85%);transform:translateX(-100%);transition:transform .75s var(--ease-out);pointer-events:none}
.tile h3,.discipline h2{transition:color .2s,transform .35s var(--ease-out)}
.discipline{transition:border-color .3s}
.discipline-link{transition:transform .35s var(--ease-out)}
.button{transition:background .25s,transform .25s var(--ease-out),box-shadow .25s}
.button .arrow{transition:transform .25s var(--ease-out)}
.button:active{transform:translateY(1px) scale(.98)}
.button:focus-visible .arrow{transform:translateX(3px)}
.marker:before{transform-origin:left;transition:width .35s var(--ease-out)}
.motion-ready body,.motion-ready .tint,.motion-ready .blue-tint,.motion-ready .nav-subpages{transition:background-color .3s,color .3s,border-color .3s}
@media(hover:hover) and (pointer:fine){
 .tile:hover{transform:translateY(-4px)}
 .tile:hover .media{box-shadow:0 12px 28px -18px rgba(var(--wash-blue),.35)}
 .tile:hover .media:after{transform:translateX(100%)}
 .tile:hover h3{color:var(--blue)}
 .discipline:hover{border-color:var(--blue)}
 .discipline:hover h2{transform:translateX(6px)}
 .discipline:hover .discipline-link{transform:translateX(5px)}
 .button:hover{transform:translateY(-2px);box-shadow:0 8px 22px -12px rgba(var(--wash-blue),.45)}
 .button:hover .arrow{transform:translateX(3px)}
 .nav-subpages a:hover{transform:translateX(2px)}
 section:hover .marker:before{width:32px}
}
/* Native navigation avoids snapshot flashes between documents. */
@view-transition{navigation:none}
@media(prefers-reduced-motion:reduce){
 @view-transition{navigation:none}
 *,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}
 .tile:hover,.button:hover,.discipline:hover h2,.discipline:hover .discipline-link,.nav-subpages a:hover,.button:hover .arrow{transform:none}
 ::view-transition-old(root),::view-transition-new(root){animation:none!important}
}

/* Shared artwork and control feedback. Keep full artwork visible. */
.brand-figure>a{display:block;transition:transform .32s var(--ease-out),box-shadow .32s var(--ease-out);transform-origin:center}
.brand-figure figcaption a,.footer a,.back{transition:color .2s ease,text-decoration-color .2s ease;text-underline-offset:5px}
.brand-filter,.brand-filters button,[data-brand-filter],.theme-toggle{transition:background-color .22s ease,color .22s ease,transform .22s var(--ease-out),box-shadow .22s ease}
.tile,.tile h3,.tile img{transition:transform .4s var(--ease-out),color .25s ease,box-shadow .3s ease}
.brand-figure>a:focus-visible,.tile:focus-visible{outline:2px solid var(--blue);outline-offset:5px}
@media(hover:hover) and (pointer:fine) and (prefers-reduced-motion:no-preference){
 .brand-figure>a:hover{transform:translateY(-3px);box-shadow:0 14px 30px -22px rgba(0,0,0,.4)}
 .tile:hover img{transform:scale(1.015)}
 [data-brand-filter]:hover,.theme-toggle:hover{transform:translateY(-2px)}
 .brand-figure figcaption a:hover,.footer a:hover,.back:hover{text-decoration:underline;text-decoration-thickness:2px}
}
@media(prefers-reduced-motion:reduce){.brand-figure>a,.tile img,[data-brand-filter],.theme-toggle{transform:none!important;transition:none!important}}
