/* Natural media proportions, editorial grid, and Traits / Libre opening. */
header{padding:12px;background:#fff}
.ruler{position:relative;height:17px;display:block;padding:0;background:none;pointer-events:none}
.ruler span{position:absolute;display:block;width:1px;height:5px;background:#111;transform:translate(-50%,-50%)}
nav{margin-top:5px;gap:12px}
nav .brand{font-weight:500}
nav a[aria-current=page]:not(.brand){text-decoration:none;color:#888}
main{padding-top:64px}
.has-feed main{padding-top:0}
.snap-feed{scroll-snap-type:y mandatory}
.feed{max-width:none}
.feed .work,.feed .work.portrait{position:relative;display:flex;align-items:center;justify-content:center;width:100%;height:100svh;min-height:380px;margin:0;scroll-snap-align:start;scroll-snap-stop:always}
.feed .work .media{display:block;flex:none;width:min(80vw,calc(var(--media-max-height,80svh)*var(--media-ratio,1.7777778)));height:auto;aspect-ratio:var(--media-ratio,1.7777778);max-height:var(--media-max-height,80svh);overflow:visible;padding:0}
.feed .work .media img,.feed .work .media video{width:100%;height:100%;max-height:none;object-fit:contain}
.feed figcaption{position:absolute;left:12px;right:12px;bottom:12px;padding:0;text-align:center;line-height:1.15}
.feed figcaption .view{color:#888}
.feed .film-player,.index .film-player{height:100%;aspect-ratio:var(--media-ratio,1.7777778);background:transparent}
.feed .film-player .film-poster,.index .film-player .film-poster{object-fit:contain}
.has-feed .project-navigation{position:absolute;z-index:2;top:76px;left:0}
.art-details{scroll-snap-align:start;padding-top:70px}
.has-feed footer{scroll-snap-align:end}
.index{grid-template-columns:repeat(5,minmax(0,1fr));gap:25px 12px;padding:28px 12px 70px;align-items:stretch}
.index .work{min-width:0;width:100%;margin:0;display:flex;flex-direction:column;justify-content:flex-end;align-items:stretch}
.index .media{display:block!important;width:100%;height:auto!important;aspect-ratio:var(--media-ratio,1.7777778);overflow:hidden;flex:none}
.index .media img,.index .media video{display:block;width:100%;height:100%;max-height:none;object-fit:contain}
.index figcaption{padding:6px 0 0;text-align:left;line-height:1.15;min-width:0}
.overview-title,.overview-credit{display:block;max-width:100%;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}
.overview-title{text-align:left}
.overview-credit{color:#aaa}
#openingIdentity{display:none}
html.intro-pending{scroll-snap-type:none;scroll-behavior:auto;overflow:hidden;overflow-anchor:none}
.intro-pending body{overflow:hidden;overflow-anchor:none}
/* Marks move independently; the header and feed never move a full viewport. */
.intro-pending header nav{visibility:hidden;animation:libre-nav 2.8s ease both}
.intro-pending #openingIdentity{position:fixed;display:flex;justify-content:space-between;gap:20px;left:0;right:0;top:calc(50svh + 5px);padding:0 12px;z-index:30;pointer-events:none;animation:libre-identity 2.8s ease both}
.intro-pending main,.intro-pending footer{animation:libre-content 2.8s cubic-bezier(.25,.7,.2,1) both}
@keyframes libre-nav{0%,56%{visibility:hidden;opacity:0}82%,100%{visibility:visible;opacity:1}}
@keyframes libre-content{0%,48%{opacity:0;transform:translateY(24px)}100%{opacity:1;transform:none}}
@keyframes libre-identity{0%{opacity:0}12%,32%{opacity:1}55%,100%{opacity:0}}
@media(max-width:767px){
 .index{grid-template-columns:repeat(2,minmax(0,1fr));gap:25px 12px;padding:24px 12px 70px}
 .art-details{padding-top:45px}
}
@media(max-width:767px){
 header{padding:12px}
 nav{font-size:13px}
 .feed .work .media{width:min(calc(100vw - 30px),calc(var(--media-max-height,80svh)*var(--media-ratio,1.7777778)))}
 #mobileMenu{inset:58px 0 0}
 .feed figcaption{bottom:max(12px,env(safe-area-inset-bottom))}
}
@media(prefers-reduced-motion:reduce){
 header{transition:none}
 .snap-feed{scroll-snap-type:y proximity}
 .intro-pending header nav{visibility:visible;opacity:1;animation:none}
 .intro-pending .ruler span{opacity:1}
 .intro-pending main,.intro-pending footer{opacity:1;transform:none;animation:none}
 .intro-pending #openingIdentity{display:none}
}

/* Match the visual weight of the Urth wordmark to the other marks. */
.client-link[href="#commissioned/urth"] img{width:92px;height:40px}
