/* An oversized contact sheet, pulled from the club's own photo archive. */
.gallery-section{padding-top:100px;padding-bottom:80px;overflow:hidden;border-top:1px solid #44483b;background:#0f110e}
.gallery-section::before{opacity:.39;background-size:1200px}
.gallery-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:35px;margin-bottom:62px}
.gallery-heading h2{font-size:clamp(66px,7.5vw,116px);line-height:.9;letter-spacing:-1.7px;position:relative}
.gallery-heading h2 em{display:inline-block;padding-right:12px}
.gallery-heading p{max-width:255px;color:#bec0b3;font-size:17px;line-height:1.7;margin:0 0 5px}
.gallery-grid{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));align-items:start;gap:42px 28px;list-style:none;padding:0;margin:0;position:relative}
.gallery-grid>li{min-width:0;position:relative;grid-column:span 4}
.gallery-grid>li:nth-child(1){grid-column:span 7;grid-row:span 2;padding-top:24px}
.gallery-grid>li:nth-child(2){grid-column:span 5;padding-left:18px}
.gallery-grid>li:nth-child(3){grid-column:8 / span 5;padding-left:18px}
.gallery-grid>li:nth-child(5){padding-top:42px}
.gallery-frame{display:block;padding:8px 8px 0;background:#262820;border:1px solid #595c4a;box-shadow:0 14px 35px #0005;transform:rotate(var(--angle,-1deg));transition:transform 500ms var(--ease-out),border-color 250ms;position:relative}
.gallery-grid>li:nth-child(2n) .gallery-frame{--angle:1.4deg}
.gallery-grid>li:nth-child(3n) .gallery-frame{--angle:-1.5deg}
.gallery-photo-wrap{display:block;position:relative;overflow:hidden;background:#161a12;aspect-ratio:1.65}
.gallery-grid>li:first-child .gallery-photo-wrap{aspect-ratio:.99}
.gallery-grid>li:nth-child(n+4) .gallery-photo-wrap{aspect-ratio:1.14}
.gallery-photo-wrap img{width:100%;height:100%;object-fit:cover;display:block;filter:saturate(.82) contrast(1.045);transition:transform 900ms var(--ease-out),filter 700ms var(--ease-out)}
.gallery-photo-wrap::after{position:absolute;inset:0;content:'';pointer-events:none;box-shadow:inset 0 0 55px #05090444}
.gallery-expand{position:absolute;right:15px;bottom:15px;display:grid;place-items:center;width:42px;height:42px;color:white;background:#141713a8;border:1px solid #ffffff90;backdrop-filter:blur(6px);z-index:1;transition:background 200ms,transform 400ms var(--ease-out)}
.gallery-expand svg{width:18px;height:18px;stroke:currentColor;fill:none;stroke-width:1.4}
.gallery-frame-meta{display:flex;align-items:center;gap:15px;min-height:47px;padding:10px 6px;color:#dcdfd1;font-family:var(--heading);font-size:16px;font-weight:600;line-height:1.2;letter-spacing:.5px;text-transform:uppercase}
.gallery-frame-number{color:#ee594e;font-variant-numeric:tabular-nums;font-size:14px;font-family:var(--body);font-weight:500}
.gallery-frame-meta>span:last-child{margin-left:auto;font-size:13px;color:#969d87;letter-spacing:2px}
.gallery-grid>li:first-child .gallery-frame::before{content:'';position:absolute;width:25%;height:7px;background:var(--red);top:-4px;left:25px;z-index:1;transform:rotate(-2deg)}
.gallery-footer{display:flex;justify-content:space-between;gap:20px;align-items:center;margin-top:48px;padding-top:22px;border-top:1px solid #414637;font-size:14px;color:#aaaF9e}
.gallery-footer p{margin:0}.gallery-footer a{text-decoration:underline;text-underline-offset:5px}.gallery-footer a span{margin-left:7px}
.gallery-wordmark{margin:52px -7% -28px;font-family:var(--heading);font-weight:800;font-style:italic;font-size:clamp(95px,19vw,300px);line-height:.8;letter-spacing:-.025em;white-space:nowrap;color:transparent;-webkit-text-stroke:1px #535a403d;text-align:center;pointer-events:none;user-select:none}
@media(hover:hover) and (pointer:fine){.gallery-frame:hover{transform:rotate(0deg) translateY(-6px);border-color:#a9b08f;z-index:2}.gallery-frame:hover img{transform:scale(1.045);filter:saturate(1) contrast(1.02)}.gallery-frame:hover .gallery-expand{background:var(--red);transform:scale(1.07)}}
.gallery-frame:focus-visible{transform:rotate(0);outline-offset:7px}

/* Native modal provides focus containment and makes the page behind it inert. */
.gallery-open{overflow:hidden;scrollbar-gutter:stable}
.photo-viewer{position:fixed;inset:0;width:100%;height:100%;height:100dvh;max-width:none;max-height:none;margin:0;padding:0;border:0;background:#0b0d0bf5;color:var(--paper);overflow:auto}
.photo-viewer::backdrop{background:#070907f5}
.photo-viewer[open]{display:grid;grid-template-rows:auto minmax(150px,1fr) auto auto;gap:15px;padding:22px 4% 24px;animation:viewer-enter 240ms var(--ease-out)}
.viewer-topbar{display:flex;align-items:center;gap:20px;justify-content:space-between;padding-bottom:16px;border-bottom:1px solid #ffffff23}
.viewer-topbar h2{font-size:25px;line-height:1;letter-spacing:.5px;font-weight:700}
.viewer-topbar h2 span{color:var(--red)}
.viewer-close{display:flex;align-items:center;justify-content:center;gap:12px;min-width:98px;min-height:44px;padding:8px 15px;border:1px solid #ffffff45;background:transparent;color:var(--paper);cursor:pointer;font-size:14px}
.viewer-close span{font-family:Arial,sans-serif;font-size:25px;line-height:1}
.viewer-stage{display:grid;grid-template-columns:50px minmax(0,1fr) 50px;gap:22px;align-items:center;min-height:0;position:relative}
.viewer-image-wrap{position:relative;height:100%;min-height:0;display:flex;align-items:center;justify-content:center;touch-action:pan-y pinch-zoom;overflow:hidden}
.viewer-image{display:block;max-width:100%;max-height:100%;width:auto;height:auto;object-fit:contain;box-shadow:0 15px 70px #0009}
.viewer-nav{width:50px;height:50px;display:grid;place-items:center;align-self:center;background:transparent;border:1px solid #ffffff45;color:var(--paper);font-size:26px;font-family:Arial,sans-serif;cursor:pointer}
.viewer-status{position:absolute;left:15%;right:15%;text-align:center;pointer-events:none;font-size:14px;color:#c7ccbe;margin:0}
.viewer-details{display:flex;align-items:center;justify-content:space-between;gap:25px;margin:0 72px;padding-top:7px}
.viewer-caption{margin:0;font-size:18px;font-family:var(--heading);font-weight:500;text-transform:uppercase;letter-spacing:.7px}
.viewer-counter{font-family:var(--heading);font-size:20px;white-space:nowrap;font-variant-numeric:tabular-nums;color:#bdc4af;letter-spacing:2px}
.viewer-thumbnails{position:relative;display:flex;gap:9px;width:max-content;max-width:100%;overflow-x:auto;overscroll-behavior:contain;margin:0 auto;padding:6px 3px 3px;scrollbar-width:thin;scrollbar-color:#5a6248 transparent}
.viewer-thumbnails button{width:74px;height:52px;padding:3px;flex-shrink:0;background:transparent;border:1px solid transparent;opacity:.45;cursor:pointer;transition:opacity 160ms,border-color 160ms}
.viewer-thumbnails button[aria-pressed=true]{border-color:var(--red);opacity:1}
.viewer-thumbnails img{display:block;width:100%;height:100%;object-fit:cover}
.viewer-thumbnails button:focus-visible{outline-offset:0}
@keyframes viewer-enter{from{opacity:0}to{opacity:1}}
@media(hover:hover){.viewer-nav:hover,.viewer-close:hover{background:var(--red);border-color:var(--red)}.viewer-thumbnails button:hover{opacity:1}}
@media(max-width:900px){.gallery-grid{gap:30px 20px}.gallery-heading h2{font-size:76px}.gallery-heading p{max-width:200px;font-size:16px}.gallery-frame-meta{font-size:14px;gap:10px}.gallery-frame-meta>span:last-child{display:none}.gallery-grid>li:nth-child(1){padding-top:14px}.gallery-grid>li:nth-child(2),.gallery-grid>li:nth-child(3){padding-left:0}.gallery-grid>li:nth-child(5){padding-top:25px}}
@media(max-width:650px){.gallery-section{padding-top:64px;padding-bottom:48px}.gallery-heading{display:block;margin-bottom:34px}.gallery-heading h2{font-size:clamp(53px,13.8vw,84px);letter-spacing:-1px}.gallery-heading p{margin-top:22px;max-width:none}.gallery-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:26px 18px}.gallery-grid>li:nth-child(n){grid-column:span 1;grid-row:auto;padding:0}.gallery-grid>li:first-child,.gallery-grid>li:last-child{grid-column:span 2}.gallery-grid>li:first-child .gallery-photo-wrap{aspect-ratio:1.25}.gallery-grid>li:last-child .gallery-photo-wrap{aspect-ratio:1.7}.gallery-photo-wrap,.gallery-grid>li:nth-child(n+4) .gallery-photo-wrap{aspect-ratio:1.06}.gallery-grid>li:last-child .gallery-photo-wrap{aspect-ratio:1.7}.gallery-frame{padding:5px 5px 0}.gallery-frame-meta{min-height:44px;padding:9px 3px;font-size:14px;letter-spacing:0;gap:8px}.gallery-frame-number{font-size:12px}.gallery-expand{width:34px;height:34px;right:9px;bottom:9px}.gallery-expand svg{width:15px;height:15px}.gallery-footer{margin-top:32px;align-items:flex-start;flex-direction:column;gap:13px;line-height:1.5}.gallery-wordmark{margin-top:40px;margin-bottom:-15px;font-size:20vw}.photo-viewer[open]{padding:14px 4% max(16px,env(safe-area-inset-bottom));gap:14px;grid-template-rows:auto minmax(160px,1fr) auto auto}.viewer-topbar{padding-bottom:12px}.viewer-topbar h2{font-size:22px}.viewer-close{min-width:85px;padding:8px 10px}.viewer-stage{grid-template-columns:minmax(0,1fr);padding-bottom:58px;gap:0}.viewer-nav{position:absolute;bottom:0;width:44px;height:44px}.viewer-previous{left:0}.viewer-next{right:0}.viewer-image-wrap{grid-column:1;grid-row:1}.viewer-details{margin:0;align-items:center;gap:12px}.viewer-caption{font-size:17px;line-height:1.3}.viewer-counter{font-size:17px;letter-spacing:1px}.viewer-thumbnails{margin:0;max-width:100%;width:100%;gap:6px}.viewer-thumbnails button{width:58px;height:44px}.viewer-status{left:10%;right:10%;bottom:50%}}
@media(prefers-reduced-motion:reduce){.gallery-frame,.gallery-photo-wrap img,.gallery-expand{transition:none}.photo-viewer[open]{animation:none}}
