header nav{position:absolute;top:112px;left:0;width:100%;display:flex;justify-content:center;gap:28px;font-size:14px}
header nav a{color:#fff;text-decoration:none;padding:8px}
header nav a:hover,header nav a[aria-current]{text-decoration:underline;text-underline-offset:5px}
.photo-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px;margin:35px 0}
.photo-card{display:block;min-width:0;padding:0;overflow:hidden;background:#102139;border:1px solid #ffffff30;border-radius:9px;color:#fff;text-align:left;cursor:pointer;font:inherit}
.photo-card img{display:block;width:100%;height:auto;aspect-ratio:4/3;object-fit:cover;transition:transform .25s}
.photo-card:hover img{transform:scale(1.025)}
.photo-card>span{display:none}
.photo-card:focus-visible,a:focus-visible,button:focus-visible{outline:3px solid #fff3d7;outline-offset:4px}
.gallery-link{margin-top:8px}
.social-footer{padding:70px 0 45px;text-align:center}
.social-footer h2{margin:14px auto 34px}
.social-links{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;max-width:850px;margin:0 auto}
.social-links a{display:flex;flex-direction:column;align-items:center;gap:8px;padding:22px 14px;background:#102139;border:1px solid #ffffff30;border-radius:8px;color:#fff;text-decoration:none;transition:transform .2s,border-color .2s}
.social-links a:hover{transform:translateY(-3px);border-color:#29b96c}
.social-links strong{font-size:18px}
.social-links small{color:#29b96c;font-size:14px}
.social-footer p .festive-word,.social-footer a .festive-word{display:inline}
.social-links small .festive-word{-webkit-text-stroke:.65px #fff}
.back-home{display:inline-block;margin-top:28px}
.sign-section{display:grid;grid-template-columns:1fr 1fr;gap:42px;align-items:center}
.sign-section>img{width:100%;height:auto;border-radius:8px}
.sign-section p{font-size:20px;line-height:1.5}
.sign-section h2{margin-top:0}
.quote a:not(.button),footer a{color:#fff;text-underline-offset:4px}
.portfolio-page .brand{animation:none}
.portfolio-section{border:0;padding-top:48px}
.portfolio-section>.intro{margin:0;max-width:600px}
.portfolio-page h1{font-size:clamp(44px,6vw,70px)}
#photo-viewer{position:fixed;width:min(1120px,96vw);max-width:96vw;max-height:94svh;padding:48px 16px 12px;background:#071528;border:1px solid #ffffff50;border-radius:12px;color:#fff;overflow:auto}
#photo-viewer::backdrop{background:#020812ed}
#photo-viewer>img{display:block;width:100%;height:calc(82svh - 100px);object-fit:contain}
.viewer-close{position:absolute;right:12px;top:6px}
.viewer-controls{display:flex;align-items:center;justify-content:space-between;gap:15px}
.viewer-controls p{text-align:center;font-size:14px;line-height:1.5}
.viewer-controls button,.viewer-close{color:#fff;background:#172c43;border:1px solid #ffffff40;border-radius:6px;min-width:44px;min-height:44px;font-size:24px;cursor:pointer}
body:has(#photo-viewer[open]){overflow:hidden}
@media(max-width:700px){.photo-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.sign-section{grid-template-columns:1fr;gap:24px}
.portfolio-section{padding-top:30px}
.social-links{grid-template-columns:1fr;gap:12px}
.social-links a{padding:18px 14px}
}
@media(max-width:420px){.photo-grid{grid-template-columns:1fr}
.photo-card img{aspect-ratio:4/3}
header nav{gap:12px}
}
