/* Portfolio uses the same thumbnail grid as the homepage. */
.site-header { background:#111; }
body > main { padding-top:100px; }
.portfolio .section__intro h1 { margin:0; font-family:var(--serif); font-size:clamp(2.5rem,5vw,5rem); font-weight:400; line-height:1.08; }
.gallery__item { display:block; width:100%; padding:0; border:0; text-align:left; cursor:pointer; }
.portfolio-retry { min-height:44px; padding:10px 18px; border:1px solid currentColor; background:transparent; color:inherit; cursor:pointer; }
@media(max-width:900px) { body > main {padding-top:82px;} }
body.portfolio-viewer-open { overflow:hidden; }
.photo-viewer { position:fixed; inset:0; margin:0; padding:0; width:100vw; height:100vh; height:100dvh; max-width:none; max-height:none; border:0; color:#fff; background:#090909; }
.photo-viewer::backdrop {background:#090909;}
.photo-viewer img { width:100%; height:100%; object-fit:contain; padding:64px 60px; }
.photo-viewer button { position:absolute; z-index:2; width:48px; height:48px; border:1px solid #ffffff45; background:#111a; color:#fff; font-size:26px; }
.photo-viewer__close {top:12px;right:16px;}
.photo-viewer__previous {left:12px;top:calc(50% - 24px);}
.photo-viewer__next {right:12px;top:calc(50% - 24px);}
.photo-viewer__caption {position:absolute;bottom:14px;left:70px;right:70px;text-align:center;font-size:11px;letter-spacing:.12em;}
@media(max-width:600px) { .photo-viewer img {padding:64px 0;} .photo-viewer button {width:40px;height:40px;} }

