.media-section .stage { min-height: 310px; padding: 44px clamp(16px, 3vw, 44px); }
.stage-media { position: relative; z-index: 1; width: min(1100px, 100%, max(760px, (100vh - 190px) * 16 / 9)); aspect-ratio: 16 / 9; }
.stage .stage-media img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: contain; }

@media (max-width: 480px) {
	.media-section .stage { padding: 46px 0; }
	.stage-media { width: 100%; }
}

.stage:not(.is-video) .stage-media { cursor: zoom-in; }
.stage-media[role="button"]:focus { outline: none; }
.stage-media[role="button"]:focus-visible::after { content: ""; position: absolute; inset: 4px; z-index: 4; border: 2px solid var(--accent); pointer-events: none; }
html.photo-viewer-open, html.photo-viewer-open body { overflow: hidden; }
.photo-viewer { position: fixed; inset: 0; z-index: 5000; display: flex; align-items: center; justify-content: center; background: rgba(5, 8, 10, .94); cursor: zoom-out; opacity: 0; transition: opacity .2s ease; overscroll-behavior: contain; }
.photo-viewer[hidden] { display: none; }
.photo-viewer:focus { outline: none; }
.photo-viewer.is-open { opacity: 1; }
.photo-viewer-image { display: block; flex: 0 0 auto; max-width: none; max-height: none; transform: scale(.97); transition: transform .25s cubic-bezier(.16, 1, .3, 1); }
.photo-viewer.is-open .photo-viewer-image { transform: none; }
.photo-viewer-close { position: absolute; top: 12px; right: 12px; width: 44px; height: 44px; padding: 0; border: 1px solid var(--accent); border-radius: 0; background: rgba(11, 15, 18, .85); opacity: 0; pointer-events: none; }
.photo-viewer-close:focus-visible { opacity: 1; pointer-events: auto; outline: none; }
.photo-viewer-close::before, .photo-viewer-close::after { content: ""; position: absolute; top: 50%; left: 50%; width: 18px; height: 2px; background: #fff; }
.photo-viewer-close::before { transform: translate(-50%, -50%) rotate(45deg); }
.photo-viewer-close::after { transform: translate(-50%, -50%) rotate(-45deg); }
@media (prefers-reduced-motion: reduce) {
	.photo-viewer, .photo-viewer-image { transition: none; }
}
