.overlay { position: fixed; inset: 0; z-index: 300; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 16px; padding: 24px; background: rgba(15, 23, 42, 0.82); backdrop-filter: blur(8px); -webkit-backdrop-filter: blur(8px); } .overlayIn { animation: fadeIn 0.2s ease forwards; } .overlayOut { animation: fadeOut 0.2s ease forwards; } .closeBtn { position: absolute; top: 20px; right: 20px; width: 42px; height: 42px; display: flex; align-items: center; justify-content: center; border-radius: 50%; color: white; background: rgba(255, 255, 255, 0.12); transition: background 0.2s; } .closeBtn:hover { background: rgba(255, 255, 255, 0.22); } .content { position: relative; display: flex; align-items: center; justify-content: center; width: min(92vw, 960px); max-height: calc(100vh - 140px); } .figure { margin: 0; display: flex; flex-direction: column; align-items: center; gap: 10px; max-width: 100%; } .image { max-width: 100%; max-height: calc(100vh - 180px); object-fit: contain; border-radius: 12px; background: #ffffff; box-shadow: 0 20px 60px rgba(0, 0, 0, 0.35); } .counter { font-size: 13px; font-weight: 500; color: rgba(255, 255, 255, 0.85); } .navBtn { position: absolute; top: 50%; transform: translateY(-50%); width: 44px; height: 44px; display: flex; align-items: center; justify-content: center; border-radius: 50%; color: white; background: rgba(255, 255, 255, 0.14); transition: background 0.2s; } .navBtn:hover { background: rgba(255, 255, 255, 0.24); } .navPrev { left: -56px; } .navNext { right: -56px; } .strip { display: flex; gap: 8px; max-width: min(92vw, 720px); overflow-x: auto; padding: 4px; } .thumb { flex-shrink: 0; width: 56px; height: 56px; border-radius: 8px; overflow: hidden; border: 2px solid transparent; background: #fff; opacity: 0.72; transition: opacity 0.2s, border-color 0.2s, transform 0.2s; } .thumb img { width: 100%; height: 100%; object-fit: contain; padding: 4px; } .thumb:hover { opacity: 1; } .thumbActive { opacity: 1; border-color: white; transform: translateY(-2px); } @keyframes fadeIn { from { opacity: 0; } to { opacity: 1; } } @keyframes fadeOut { from { opacity: 1; } to { opacity: 0; } } @media (max-width: 768px) { .overlay { padding: 16px; } .navPrev { left: 8px; } .navNext { right: 8px; } .content { width: 100%; } }