:root{--gutter:clamp(16px,2.713vw,52px);--gap:clamp(18px,2.032vw,36px)}
*{box-sizing:border-box}
body{margin:0;line-height:1.6}
body:has(dialog[open]){overflow:hidden}
[hidden]{display:none!important}
a{color:inherit;text-underline-offset:4px}
button,input,select{font:inherit}
button,a,select{-webkit-tap-highlight-color:transparent}
button{cursor:pointer}
button:disabled{cursor:default;opacity:.35}
button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid var(--color-focus);outline-offset:5px}
svg{width:24px;height:24px;fill:none;stroke:currentColor;stroke-width:1.8}
.sr-only,.skip-link{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
.skip-link:focus{z-index:10;top:10px;left:10px;width:auto;height:auto;clip-path:none;padding:12px 20px;background:white}
.caps{font:600 12px/1.2 var(--font-body);letter-spacing:1.8px;text-transform:uppercase}
.gallery-header{padding:0 var(--gutter);background:#fff}
.header-top{height:109px;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;border-bottom:1px solid #c8c8c8}
.header-top a{text-decoration:none}
.home-link{justify-self:start;display:flex;gap:12px;align-items:center}
.wordmark{font:400 38px/1 var(--font-display)}
.header-search{justify-self:end;display:flex;align-items:center;gap:12px}
.header-nav{min-height:45px;display:flex;justify-content:center;align-items:center;gap:clamp(24px,5vw,76px);overflow-x:auto;white-space:nowrap;scrollbar-width:none}
.header-nav a{text-decoration:none;padding:15px 0}
.header-nav a:hover,.header-nav a[aria-current]{color:var(--color-gold)}
.gallery-banner{text-align:center;background:var(--brand-gradient);color:#fff;padding:64px var(--gutter) 48px}
h1{font:400 var(--text-h1)/1.08 var(--font-display);letter-spacing:1.2px;margin:0 auto;max-width:1107px;text-wrap:balance}
.back-link{display:inline-block;color:#fff;margin-bottom:24px;text-decoration:none}
.gallery-content{width:min(calc(100% - var(--gutter)*2),81.352vw,1440px);margin:0 auto;padding-bottom:88px;min-height:450px}
.gallery-search{width:min(493px,100%);height:66px;margin:64px auto;display:flex;align-items:center;border:1.5px solid var(--line);background:#fff}
.gallery-search input{width:100%;min-width:0;height:100%;border:0;background:transparent;padding:0 22px;font-size:14px;color:var(--navy)}
.gallery-search input:focus-visible{outline-offset:-4px}
.gallery-search button{display:grid;place-items:center;flex-shrink:0;width:52px;height:48px;border:0;background:transparent;color:#333e4b}
.collection-filters{display:flex;align-items:center;gap:4px;flex-wrap:wrap}
.collection-filters a{padding:10.5px 12px;text-decoration:none;color:var(--muted);transition:background .125s,color .125s}
.collection-filters a[aria-current],.collection-filters a:hover{background:var(--blue);color:#fff}
.mobile-filter{display:none;text-align:center}
.mobile-filter select{max-width:100%;border:1px solid #8f929f;border-radius:0;background:var(--color-blue);color:white;padding:12px 36px 12px 15px;font-size:14px}
.gallery-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--gap);margin-top:var(--gap)}
.gallery-card{position:relative;display:block;aspect-ratio:3/2;overflow:hidden;background:var(--color-surface);color:#fff;text-decoration:none}
.gallery-card img{display:block;width:100%;height:100%;object-fit:cover}
.gallery-card::after{position:absolute;inset:0;content:"";background:#000;opacity:0;transition:opacity .3s}
.gallery-card h2{position:absolute;inset:0;z-index:1;display:flex;align-items:center;justify-content:center;text-align:center;padding:24px;margin:0;font:400 var(--text-card-title)/1.18 var(--font-display);letter-spacing:.48px;opacity:0;transition:opacity .3s}
.gallery-card:hover::after,.gallery-card:focus-visible::after{opacity:.7}
.gallery-card:hover h2,.gallery-card:focus-visible h2{opacity:1}
.sample-badge{position:absolute;z-index:2;top:14px;left:14px;font-size:10px;line-height:1;letter-spacing:1.5px;text-transform:uppercase;background:var(--color-overlay);color:white;padding:7px 9px}
.sample-note{margin:32px 0 0;color:var(--muted);font-size:13px;text-align:center}
.gallery-message{text-align:center;padding:48px 16px}
.gallery-message h2{font:400 36px/1.2 var(--font-display);margin:0 0 12px}
.gallery-message p{color:var(--muted);margin:0 0 16px}
.gallery-message a{font-size:14px}
.pagination{display:flex;flex-wrap:wrap;gap:12px;justify-content:center;align-items:center;margin-top:48px}
.pagination a{display:grid;place-items:center;min-width:40px;min-height:40px;text-decoration:none;padding:6px 12px}
.pagination a[aria-current]{background:var(--blue);color:#fff}
.album-view .gallery-grid{margin-top:64px}
.photo-tile{position:relative;border:0;padding:0;background:var(--color-surface);aspect-ratio:3/2;overflow:hidden}
.photo-tile img{display:block;width:100%;height:100%;object-fit:cover}
.photo-tile span{position:absolute;right:12px;bottom:12px;background:var(--color-overlay);color:white;padding:4px 10px;font-size:18px}
.gallery-footer{background:var(--navy);color:white;padding:56px var(--gutter);text-align:center}
.footer-wordmark{font:400 44px/1.2 var(--font-display);text-decoration:none}
.gallery-footer nav{display:flex;justify-content:center;flex-wrap:wrap;gap:12px 28px;margin:24px 0}
.gallery-footer nav a{text-decoration:none;font-size:14px}
.gallery-footer p{font-size:12px;color:#c4c9d4;margin:0}
.photo-viewer{width:100vw;max-width:none;height:100dvh;max-height:none;border:0;padding:20px 32px;margin:0;background:#0a0d14;color:#fff}
.photo-viewer[open]{display:flex;flex-direction:column}
.photo-viewer::backdrop{background:#0a0d14}
.viewer-toolbar{display:flex;align-items:center;gap:24px;min-height:48px;font-size:14px}
#photo-download{margin-left:auto;text-decoration:none}
#viewer-close{width:48px;height:48px;padding:0;border:0;background:transparent;color:white;font-size:36px;font-weight:400}
.viewer-stage{display:grid;grid-template-columns:48px minmax(0,1fr) 48px;align-items:center;gap:16px;flex:1;min-height:0;margin:16px 0}
#viewer-image{width:100%;height:100%;min-height:0;object-fit:contain}
.viewer-arrow{width:48px;height:60px;background:transparent;border:1px solid #747985;color:white;font-size:36px}
#photo-caption{text-align:center;font-size:14px;max-width:900px;margin:0 auto;min-height:45px}
@media(max-width:900px){.gallery-content{width:calc(100% - var(--gutter)*2)}.collection-filters{display:none}.mobile-filter{display:block}.header-nav{gap:28px}.gallery-card h2{align-items:flex-end;opacity:1;padding:18px}.gallery-card::after{opacity:1;background:linear-gradient(transparent 40%,rgba(0,0,0,.72))}}
@media(max-width:600px){.header-top{height:72px}.wordmark{font-size:30px}.home-link span,.header-search span{display:none}.header-nav{justify-content:flex-start;min-height:40px;font-size:10px;gap:24px}.header-nav a{padding:14px 0}.gallery-banner{padding:48px var(--gutter) 40px}.gallery-search{height:63px}.gallery-search input{padding-left:20px;font-size:14px}.gallery-grid{grid-template-columns:1fr}.gallery-content{padding-bottom:56px}.gallery-card h2{font-size:22px}.photo-viewer{padding:12px}.viewer-toolbar{gap:10px;font-size:12px}.viewer-stage{grid-template-columns:34px minmax(0,1fr) 34px;gap:4px}.viewer-arrow{width:34px;height:48px}.gallery-footer{padding:40px 16px}.album-view h1{font-size:42px}}
@media(hover:none){.gallery-card h2{align-items:flex-end;opacity:1}.gallery-card::after{opacity:1;background:linear-gradient(transparent 40%,rgba(0,0,0,.72))}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{transition:none!important;scroll-behavior:auto!important}}
