#recording-badge{position:absolute;right:1rem;bottom:1rem;z-index:5;display:flex;align-items:center;gap:.6rem;background:#a41425;color:white;border:2px solid #fff;border-radius:999px;padding:.75rem 1.1rem;font:700 clamp(16px,1.2vw,32px)/1.2 'DM Sans',sans-serif;box-shadow:0 3px 15px #0008;pointer-events:none}#recording-badge span{color:#fff}#guest-entry input{letter-spacing:.35em;font-size:1.5rem}#owner-entry{margin-top:1rem}#invite-pin{font:700 1.5rem monospace;letter-spacing:.3em}
#photo-dialog,#photo-dialog:fullscreen{position:fixed;inset:0;margin:0;width:100vw;height:100dvh;max-width:none;max-height:none;border:0;border-radius:0;padding:clamp(12px,1.4vw,36px);background:#101614;color:#f7f5ed;overflow:hidden;box-sizing:border-box}#photo-dialog[open]{display:grid;grid-template-rows:auto minmax(0,1fr) auto;gap:1rem}#photo-dialog::backdrop{background:#101614}#photo-dialog .slide-caption p,#photo-dialog .field-help{color:#bac5be}#photo-dialog .slide-caption h2{color:#fff}#photo-dialog .slideshow-stage{min-height:0;min-width:0;grid-template-columns:3.5rem minmax(0,1fr) 3.5rem}#slide-surface{background:#080c0a;overflow:hidden;touch-action:none;min-height:0;min-width:0;isolation:isolate}#gallery-photo{width:100%;height:100%;object-fit:contain;transform-origin:center;will-change:transform;transition:none;pointer-events:none}#gallery-video{display:block;position:absolute;inset:0;width:100%;height:100%;max-width:100%;max-height:100%;object-fit:contain}#slide-surface.zoomed{cursor:grab}#photo-dialog .slide-arrow{width:3.5rem;background:#ffffff16;color:#fff;border-color:#ffffff38}#photo-dialog .button,#photo-dialog #close-photo{background:#ffffff12;color:#fff;border-color:#ffffff40}#photo-dialog #close-photo{min-height:48px}#photo-dialog #close-photo span{display:inline;font-size:1rem}#photo-dialog .primary{background:#f3eddf;color:#173a33}#photo-dialog .slideshow-playback{display:flex;align-items:center;gap:1rem;flex-wrap:wrap}#photo-dialog .slideshow-playback .field-help{width:100%;margin:0}#photo-dialog .slideshow-playback button{min-width:0}.zoom-controls{display:flex;align-items:center;gap:.4rem}.zoom-controls .button{min-width:44px!important;padding:.5rem .8rem}#zoom-level{min-width:4em;text-align:center;font-variant-numeric:tabular-nums}.slide-status{color:#173a33}#photo-dialog .slideshow-footer{flex-wrap:nowrap}#photo-dialog .photo-dialog-actions{flex-wrap:nowrap}#gallery-card-download{color:#173a33}
@media(max-width:650px){#photo-dialog[open]{gap:.6rem}#photo-dialog .slideshow-stage{grid-template-columns:44px minmax(0,1fr) 44px;gap:3px}#photo-dialog .slide-arrow{width:44px}#photo-dialog .slide-caption p{display:none}#photo-dialog .slide-caption h2{font-size:1.2rem}#photo-dialog #close-photo span{font-size:.8rem}#photo-dialog .slideshow-footer{flex-wrap:wrap;gap:.5rem}#photo-dialog .slideshow-playback{gap:.5rem;width:100%;justify-content:space-between}#photo-dialog .slideshow-playback .field-help{display:none}#photo-dialog .photo-dialog-actions{width:100%;display:flex}#photo-dialog .photo-dialog-actions>*{flex:1}#photo-dialog .slideshow-footer .button{font-size:.8rem}#zoom-level{min-width:3em;font-size:.8rem}.zoom-controls .button{padding:.4rem;min-width:36px!important}}

/* Remove image intrinsic sizing from the grid calculation. The stage owns
   the available rectangle; both media types fill that rectangle at Fit. */
#photo-dialog .slideshow-stage{align-items:stretch;overflow:hidden}
#photo-dialog .slide-arrow{align-self:center}
#photo-dialog #slide-surface{height:auto;align-self:stretch;display:block}
#photo-dialog #gallery-photo{position:absolute;inset:0;display:block;width:100%;height:100%;max-width:none;max-height:none;object-fit:contain;object-position:50% 50%;margin:0}
#photo-dialog #gallery-video{object-position:50% 50%}
#photo-dialog .slide-status{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);z-index:4;max-width:90%;margin:0;pointer-events:none}
#photo-dialog .slide-status:empty{display:none}
