:root{--ease-out:cubic-bezier(.2,.75,.2,1)}
::selection{background:var(--accent);color:#1d201c}
.reading-progress{position:fixed;inset:0 0 auto;height:2px;z-index:100;background:var(--accent);transform:scaleX(0);transform-origin:left;pointer-events:none}
header nav a{position:relative;transition:color .25s ease}
header nav a:not(.contact-link)::after{content:'';position:absolute;left:0;right:0;bottom:-7px;height:1px;background:var(--accent);transform:scaleX(0);transform-origin:left;transition:transform .3s var(--ease-out)}
header nav a:hover::after,header nav a[aria-current=location]::after{transform:scaleX(1)}
.text-link{transition:color .25s ease,gap .35s var(--ease-out)}
.text-link:hover{gap:55px}
.text-link span{transition:transform .35s var(--ease-out)}
.text-link:hover span{transform:translate(3px,-3px)}
.wordmark .header-logo{transition:transform .5s var(--ease-out)}
.wordmark:hover .header-logo{transform:rotate(-7deg)}
.case summary{transition:background .3s,color .3s}
.case summary:hover .case-name{color:var(--accent)}
.case-name{transition:color .3s}
.case-toggle>span{display:inline-block;transition:transform .4s var(--ease-out)}
.case[open] .case-toggle>span{transform:rotate(45deg)}
.case-mark img{transition:transform .5s var(--ease-out)}
.case summary:hover .case-mark img{transform:scale(1.05)}
.contact-big>span{transition:transform .5s var(--ease-out)}
.contact-big:hover>span{transform:translate(8px,-8px)}
.film-image,.photo,.gallery-masonry button{isolation:isolate}
.gallery-masonry button{overflow:hidden}
.film-image img,.photo img,.gallery-masonry button img{transition:transform .8s var(--ease-out),filter .6s,opacity .6s}
.film-image:hover img,.photo:hover img,.gallery-masonry button:hover img{transform:scale(1.045);filter:saturate(1.08)}
.photo span:not(.media-follow){transition:background .3s,transform .4s var(--ease-out)}
.photo:hover span:not(.media-follow){background:#1c1e19e8;transform:translateY(-3px)}
.media-follow{position:absolute!important;bottom:auto!important;right:auto!important;left:50%;top:50%;z-index:3;pointer-events:none;padding:16px 20px!important;border-radius:50%;min-width:96px;height:66px!important;display:flex;align-items:center;justify-content:center;background:var(--ink)!important;color:var(--paper)!important;font:600 10px Manrope,Arial,sans-serif!important;letter-spacing:1px;opacity:0;transform:translate(-50%,-50%) scale(.75);transition:opacity .2s,transform .3s var(--ease-out);white-space:nowrap;box-shadow:0 4px 25px #0002}
.media-hovered .media-follow{opacity:1;transform:translate(-50%,-50%) scale(1)}
@media(prefers-reduced-motion:no-preference){
.reveal-pending{opacity:0;transform:translateY(28px)}
.is-revealed{animation:section-reveal .8s var(--ease-out) var(--reveal-delay,0ms) both}
@keyframes section-reveal{from{opacity:0;transform:translateY(28px)}to{opacity:1;transform:translateY(0)}}
@view-transition{navigation:auto}
::view-transition-old(root){animation:page-out .16s ease both}
::view-transition-new(root){animation:page-in .4s var(--ease-out) both}
@keyframes page-out{to{opacity:0;transform:translateY(-8px)}}
@keyframes page-in{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}
}
@media(max-width:600px){
.intro-note{display:grid;grid-template-columns:1fr auto;align-items:center;gap:20px 12px}
.intro-note .status{grid-column:1;grid-row:1}
.intro-note .text-link{grid-column:2;grid-row:1}
.intro-note p{display:block;grid-column:1/-1;grid-row:2;font-size:22px;line-height:1.35;margin:0;max-width:290px}
.text-link:hover{gap:inherit}
}
@media(hover:none),(pointer:coarse){.media-follow{display:none}}
@media(prefers-reduced-motion:reduce){
html{scroll-behavior:auto}
*,*::before,*::after{animation-duration:.01ms!important;animation-delay:0ms!important;transition-duration:.01ms!important}
.reveal-pending{opacity:1;transform:none}.media-follow{display:none}
}
