.image-window-container { width: 100vw; height: 100vh; background-color: var(--bg-primary); display: flex; flex-direction: column; overflow: hidden; user-select: none; .image-viewport { flex: 1; display: flex; align-items: center; justify-content: center; overflow: hidden; position: relative; cursor: grab; &:active { cursor: grabbing; } .media-wrapper { position: relative; display: inline-flex; align-items: center; justify-content: center; will-change: transform; } img, video { display: block; max-width: none; max-height: none; object-fit: contain; box-shadow: 0 4px 20px rgba(0, 0, 0, 0.15); pointer-events: auto; } .live-video { position: absolute; top: 0; left: 0; width: 100%; height: 100%; object-fit: fill; pointer-events: none; opacity: 0; will-change: opacity; transition: opacity 0.3s ease-in-out; } .live-video.visible { opacity: 1; } } } .image-window-empty { height: 100vh; display: flex; align-items: center; justify-content: center; color: var(--text-secondary); background-color: var(--bg-primary); }