/* Dialog geometry belongs to the viewport, independently of the page shell. */
.modal { padding: 40px 32px; }
.modal .modal-panel { width: min(1120px, calc(100vw - 64px)); height: min(680px, calc(100dvh - 96px)); max-height: calc(100dvh - 96px); }
.video-modal { padding: 32px; }
.video-modal .video-modal-panel { width: min(1120px, calc(100vw - 64px), calc((100dvh - 96px) * 16 / 9)); height: auto; max-height: calc(100dvh - 96px); aspect-ratio: 16 / 9; }
.contact-modal { padding: 28px 20px; }
body[data-page] .contact-modal-card { max-height: calc(100dvh - 56px); overflow-y: auto; }
.zoom-transition-active :is(.modal-panel,.video-modal-panel,.contact-modal-card) { will-change: transform,opacity; }
.zoom-transition-active:not(.zoom-settled) :is(.video-modal-panel,.contact-modal-card) { backdrop-filter: none !important; -webkit-backdrop-filter: none !important; }
.zoom-transition-active.open > :is(.modal-backdrop,.video-modal-backdrop,.contact-modal-backdrop) { backdrop-filter: blur(14px) !important; -webkit-backdrop-filter: blur(14px) !important; animation: none !important; transition: none !important; will-change: opacity; }
.zoom-transition-active .video-stage { transform: scale(var(--zoom-content-x,1),var(--zoom-content-y,1)); transform-origin: center; }
.zoom-transition-active :is(.modal-close,.video-modal-close,.contact-modal-close,.zoom-pull-handle) { transform: scale(var(--zoom-inverse-x,1),var(--zoom-inverse-y,1)) !important; transform-origin: center; }
@media(max-width:640px) {
 .modal { padding: max(16px, env(safe-area-inset-top)) 12px max(16px, env(safe-area-inset-bottom)); }
 .modal .modal-panel { width: calc(100vw - 24px); height: calc(100dvh - 40px); max-height: calc(100dvh - 40px); border-radius: 22px; }
 .video-modal { padding: 16px; }
 .video-modal .video-modal-panel { width: min(calc(100vw - 32px), calc((100dvh - 48px) * 16 / 9)); max-height: calc(100dvh - 48px); border-radius: 18px; }
 .contact-modal { padding: 16px 12px; }
 body[data-page] .contact-modal-card { max-height: calc(100dvh - 32px); }
}
