/* Shared icon metrics, independent of emoji fonts and platform rendering. */
.ui-icon{width:1.2em;height:1.2em;display:inline-block;flex:none;vertical-align:-.2em;margin-inline-start:.35em;pointer-events:none}
.button .ui-icon,.menu-close .ui-icon,#menu-toggle .ui-icon{margin:0}
.breadcrumb .ui-icon{margin-inline:0 .35em}
.button{display:inline-flex;align-items:center;justify-content:center}
.brand-name{white-space:nowrap;overflow-wrap:normal}
.header #navigation a[aria-current=page]{box-shadow:none;background:var(--sand)}
.header #navigation a,.header #navigation a:hover{text-decoration:none;border-bottom:0}
.header #navigation a::after{content:none}
#menu-toggle{border:0;background:transparent;padding:.5rem .25rem;align-items:center;gap:.6rem;min-width:0;min-height:2.75rem;line-height:1.4;font-weight:600}
#menu-toggle .ui-icon{width:1.5rem;height:1.5rem}
#mobile-navigation{color:var(--ink);background:var(--paper);border:0;padding:0;margin:0 0 0 auto;width:min(100%,34rem);max-width:100%;height:100dvh;max-height:100dvh;overflow-y:auto;overscroll-behavior:contain}
#mobile-navigation::backdrop{background:rgb(23 23 19 / .45)}
.navigation-open{position:fixed;width:100%;overflow:hidden}
.mobile-menu-shell{min-height:100%;display:flex;flex-direction:column;padding:1rem clamp(1.25rem,6vw,2.5rem) 1.5rem}
.mobile-menu-head{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding-bottom:1rem;border-bottom:1px solid var(--line)}
.mobile-menu-brand{font-size:1rem;letter-spacing:.07em;font-weight:600;line-height:1.5}
.menu-close{display:inline-flex;align-items:center;justify-content:center;gap:.45rem;min-height:2.75rem;background:transparent;border:0;padding:.5rem 0 .5rem .5rem;color:inherit;font-size:1rem}
.mobile-menu-heading{font-size:var(--text-label);letter-spacing:.14em;color:var(--muted);margin:1.5rem 0 .5rem;display:flex;align-items:center;gap:.8rem}
.mobile-menu-heading:before{content:'';width:.65rem;height:.65rem;transform:rotate(45deg);border:1px solid var(--bronze);box-shadow:inset 0 0 0 2px var(--paper);background:var(--sand)}
#mobile-navigation nav{display:grid;gap:0}
#mobile-navigation nav a{display:flex;align-items:center;gap:1rem;padding:.7rem .6rem;min-height:3.5rem;text-decoration:none;border-bottom:1px solid var(--line);font-size:clamp(1.5rem,6vw,1.9rem);line-height:1.3;letter-spacing:-.03em;color:var(--ink)}
#mobile-navigation nav a span{font-size:.875rem;color:var(--muted);letter-spacing:.03em}
#mobile-navigation nav a[aria-current=page]{background:var(--sand);border-radius:.25rem;box-shadow:none}
#mobile-navigation nav a[aria-current=page]:after{content:'';width:.45rem;height:.45rem;background:var(--ink);transform:rotate(45deg);margin-left:auto;flex-shrink:0}
.mobile-menu-bottom{padding-top:1.5rem;margin-top:auto}
.mobile-menu-bottom .button{width:100%;text-align:left;justify-content:space-between;gap:.6rem}
.mobile-menu-bottom>a:not(.button){display:inline-flex;align-items:center;min-height:2.75rem;margin-top:.5rem;font-size:var(--text-control)}
.mobile-menu-bottom p{font-size:var(--text-secondary);color:var(--muted);margin:.6rem 0 0}
.mobile-menu-bottom:after{content:'';display:block;width:5rem;height:.65rem;margin-top:1rem;background:repeating-linear-gradient(45deg,transparent 0 7px,var(--sand) 7px 9px,transparent 9px 15px)}
.portfolio-filters[open] .filter-expand{transform:rotate(180deg)}
.gallery-filters button[aria-pressed=true]:before{content:'';display:inline-block;width:.4em;height:.4em;background:currentColor;transform:rotate(45deg);margin-right:.65em;vertical-align:.1em}
.lightbox-toolbar button{display:inline-flex;align-items:center;gap:.35rem;min-height:2.75rem}
.section-head,.project-heading,.form-wrap,.opening-copy,.opening-image{min-width:0}
@media(min-width:75.001rem){#menu-toggle{display:none}}
@media(max-width:75rem){
 .header{flex-wrap:nowrap;justify-content:space-between;position:sticky;top:0}
 .header #navigation{display:none}
 .header #menu-toggle{display:inline-flex}
 .header .brand{max-width:calc(100% - 6rem);flex-shrink:1}
}
@media(max-width:760px){
 .header{padding:.75rem 6vw;min-height:4.75rem;gap:.75rem}
 .header .brand{gap:.55rem;font-size:.9375rem;letter-spacing:.055em}
 .brand-name{display:block;white-space:normal;line-height:1.25}
 .brand-name span{display:block;white-space:nowrap}
 .home-opening{padding:1.25rem 6vw 1.75rem;gap:1.5rem}
 .opening-copy{padding:0}
 .opening-copy>.eyebrow{margin:0}
 .opening-copy h1{margin:1rem 0;line-height:1.04}
 .opening-description{margin:0;line-height:1.6}
 .opening-copy .actions{margin-top:1.15rem;gap:.5rem;align-items:stretch}
 .opening-copy .button{padding:.8rem .85rem;gap:.45rem}
 .opening-copy .actions .outline{padding-inline:.4rem}
 .opening-location{margin-top:1.25rem;gap:1rem}
 .opening-image figcaption{padding:.65rem 1rem;gap:.25rem .75rem}
 .page-intro{padding-top:1.75rem;padding-bottom:1.5rem}
 .page-intro h1{margin:1rem 0}
 .section{padding-block:3rem}
 .section-head{gap:1rem}
 .editorial-form{padding:1.35rem 1rem;border-top-width:2px}
 .portfolio-filters{border-top-width:2px;border-radius:1rem}
 .project-chapters{gap:.4rem 1.25rem}
 .project-chapters a:not(.button){padding:.5rem 0}
 .lightbox-toolbar{gap:.35rem}
 .lightbox-toolbar button{padding:.5rem}
}
@media(max-width:350px){.opening-copy .actions{flex-direction:column}.opening-copy .actions .outline{align-self:flex-start}.mobile-menu-shell{padding-inline:1.1rem}}
@media(prefers-reduced-motion:reduce){#mobile-navigation *,#menu-toggle{transition:none;animation:none}}
