#image-modal .modal-container{max-width:90vw;box-shadow:none;background:0 0;border:none;flex-direction:column;align-items:center;display:flex}.modal-image-shell{width:100%;min-width:0;position:relative}#image-modal:before{background:#000000e6}.modal-img-wrapper{justify-content:center;align-items:center;width:100%;height:min(78vh,100dvh - 7rem);max-height:none;display:flex;overflow:hidden}.modal-image-viewport{overscroll-behavior:contain;cursor:grab;touch-action:none;scrollbar-color:#ffffff57 transparent;scrollbar-width:thin;display:block;position:relative;overflow:auto}.modal-image-viewport--dragging{cursor:grabbing}.modal-image-viewport:focus-visible{outline:2px solid var(--accent-primary);outline-offset:-3px}.modal-image-stage{place-items:center;min-width:100%;min-height:100%;display:grid}.modal-img-wrapper--video{flex:none;height:min(80vh,100dvh - 8rem)}.modal-image-bg{object-fit:contain;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;flex:none;max-width:none;min-height:0;max-height:none;display:block}.modal-image-bg:not([style]){max-width:100%;max-height:100%}.modal-zoom-controls{z-index:12;-webkit-backdrop-filter:blur(18px)saturate(130%);backdrop-filter:blur(18px)saturate(130%);background:#111113d6;border:1px solid #ffffff2e;border-radius:999px;align-items:center;padding:4px;display:flex;position:absolute;bottom:16px;right:16px;box-shadow:0 12px 32px #0006}.modal-zoom-button{color:#ffffffd1;cursor:pointer;width:40px;height:40px;transition:color .16s var(--ease-out), background-color .16s var(--ease-out), border-color .16s var(--ease-out);background:0 0;border:1px solid #0000;border-radius:50%;place-items:center;display:grid}.modal-zoom-button svg{fill:none;stroke:currentColor;stroke-linecap:round;stroke-width:2px;width:18px;height:18px}.modal-zoom-button:hover:not(:disabled){color:#fff;background:#10b9812e;border-color:#10b98180}.modal-zoom-button:focus-visible{outline:2px solid var(--accent-primary);outline-offset:2px}.modal-zoom-button:disabled{cursor:not-allowed;opacity:.4}.modal-zoom-value{color:#fff;font-variant-numeric:tabular-nums;text-align:center;min-width:56px;font-size:13px;font-weight:650}.modal-visually-hidden{clip:rect(0 0 0 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.modal-video-bg{object-fit:contain;background:var(--bg-primary);width:100%;max-width:100%;height:100%;min-height:0;max-height:none;display:block}.modal-download-btn{-webkit-backdrop-filter:blur(12px);width:36px;height:36px;color:var(--text-muted);cursor:pointer;transition:color .16s var(--ease-out), background-color .16s var(--ease-out), border-color .16s var(--ease-out), box-shadow .16s var(--ease-out), transform .16s var(--ease-out);z-index:10;background:#ffffff0f;border:1px solid #ffffff14;border-radius:50%;justify-content:center;align-items:center;display:flex;position:absolute;top:16px;right:64px}.modal-download-btn:hover{color:#fff;background:#10b9812e;border-color:#10b98166;box-shadow:0 0 0 4px #10b98114}.modal-download-btn:active{transform:translateY(0)scale(.96)}.modal-download-btn svg{stroke-width:1.8px;width:18px;height:18px}@media (hover:hover) and (pointer:fine){.modal-download-btn:hover{transform:translateY(-1px)scale(1.05)}}.modal-caption{color:#fff;text-align:center;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#00000080;border-radius:20px;width:-moz-fit-content;width:fit-content;min-width:0;max-width:100%;margin-top:16px;padding:8px 16px;font-size:14px}.modal-caption-text.ui-overflow-tooltip-text{text-align:left;white-space:normal;-webkit-line-clamp:3;-webkit-box-orient:vertical;max-width:100%;display:-webkit-box;overflow:hidden}@media (max-width:768px){#image-modal .modal-container{border-radius:0;max-width:100vw;max-height:100dvh;margin:0}.modal-img-wrapper{border-radius:0;height:min(70vh,100dvh - 7rem);max-height:none}.modal-img-wrapper--video{height:min(70vh,100dvh - 7rem)}.modal-zoom-controls{right:max(12px, env(safe-area-inset-right));bottom:max(12px, env(safe-area-inset-bottom))}}@media (prefers-reduced-motion:reduce){.modal-zoom-button{transition:none}}