.page-fotos .subpage-heading h1{font-size:clamp(2.15rem,5.3vw,3.8rem)}
.party-grid{gap:1rem;align-items:start}
.party-media{margin:0;min-width:0;overflow:hidden;border:1px solid var(--line);border-radius:12px;background:rgb(0 0 0 / 14%)}
.gallery-photo{display:block;position:relative;overflow:hidden}
.party-grid .gallery-photo:hover{opacity:1}
.party-grid img{border-radius:0;transition:transform .7s cubic-bezier(.2,.65,.3,1)}
.photo-expand{position:absolute;bottom:.75rem;right:.75rem;width:34px;height:34px;display:grid;place-items:center;border:1px solid rgb(245 236 221 / 40%);background:rgb(24 0 4 / 70%);border-radius:50%;transition:transform .3s}
@media(hover:hover) and (pointer:fine){.gallery-photo:hover img{transform:scale(1.035)}.gallery-photo:hover .photo-expand{transform:translate(2px,-2px)}}
.party-video video{display:block;width:100%;aspect-ratio:4/3;max-height:520px;object-fit:contain;background:#160004}
.party-video figcaption{padding:.8rem 1rem;color:var(--cream);font-size:.85rem;line-height:1.6}
.viewer-open{overflow:hidden}
.photo-viewer{width:min(1100px,94vw);max-width:none;max-height:94svh;padding:1rem;border:1px solid rgb(245 236 221 / 22%);border-radius:16px;color:var(--cream);background:#230006;box-shadow:0 20px 100px rgb(0 0 0 / 45%)}
.photo-viewer::backdrop{background:rgb(12 0 3 / 88%);backdrop-filter:blur(8px)}
.viewer-toolbar{display:flex;justify-content:space-between;align-items:center;gap:1rem;margin-bottom:1rem}
.viewer-position{font-size:.85rem;letter-spacing:.08em}
.photo-viewer button{cursor:pointer;background:transparent;color:var(--cream);border:1px solid rgb(245 236 221 / 32%);border-radius:100px;min-height:44px;min-width:44px;transition:background .2s}
.photo-viewer button:hover{background:rgb(245 236 221 / 12%)}
.viewer-close{padding:.5rem 1rem;font-size:.85rem}
.viewer-frame{display:grid;grid-template-columns:44px minmax(0,1fr) 44px;align-items:center;gap:1rem}
.viewer-frame img{grid-column:2;grid-row:1;display:block;width:100%;height:min(67svh,750px);object-fit:contain}
.viewer-prev{grid-column:1;grid-row:1;font-size:1.8rem}.viewer-next{grid-column:3;grid-row:1;font-size:1.8rem}
.viewer-caption{text-align:center;margin:1rem auto 0;max-width:75ch;font:1rem/1.6 Georgia,serif}
@media(prefers-reduced-motion:no-preference){.photo-viewer[open]{animation:viewer-arrive .3s cubic-bezier(.2,.65,.3,1)}.photo-viewer[open]::backdrop{animation:viewer-backdrop .3s ease-out}}
@keyframes viewer-arrive{from{opacity:0;transform:translateY(12px) scale(.985)}to{opacity:1;transform:none}}
@keyframes viewer-backdrop{from{opacity:0}to{opacity:1}}
.motion-paused .photo-viewer[open],.motion-paused .photo-viewer[open]::backdrop{animation:none}.motion-paused .gallery-photo img,.motion-paused .photo-expand{transform:none!important}
@media(prefers-reduced-motion:reduce){.gallery-photo img,.photo-expand{transform:none!important}}
@media(max-width:640px){.party-video{grid-column:1/-1}.party-grid{gap:.6rem}.photo-viewer{padding:.8rem;border-radius:12px}.viewer-frame{gap:.4rem;grid-template-columns:40px minmax(0,1fr) 40px}.photo-viewer button{min-width:40px}.viewer-frame img{height:60svh}.viewer-caption{font-size:.9rem}}

.gallery-photo:focus-visible{outline-offset:-4px}
@media(max-width:640px){.viewer-frame{grid-template-columns:1fr 1fr}.viewer-frame img{grid-column:1/-1;height:auto;max-height:65svh}.viewer-prev{grid-column:1;grid-row:2;justify-self:end}.viewer-next{grid-column:2;grid-row:2;justify-self:start}}
