.image-gallery{position:relative;overflow:hidden}.image-gallery-main{transition:all .3s cubic-bezier(.4,0,.2,1)}.image-gallery-main:hover{transform:scale(1.02)}.image-gallery-thumbnail{transition:all .2s ease;border-radius:12px;overflow:hidden}.image-gallery-thumbnail:hover{transform:scale(1.05);box-shadow:0 8px 25px #00000026}.image-gallery-modal{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.image-gallery-modal-image{transition:transform .3s cubic-bezier(.4,0,.2,1);will-change:transform}.image-gallery-modal-image.dragging{transition:none}.image-gallery-overlay{background:linear-gradient(to bottom,#000c,#0006,#000c)}.image-gallery-controls{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#ffffff1a;border-radius:12px;border:1px solid rgba(255,255,255,.2)}.image-gallery-nav-button{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#00000080;border-radius:50%;border:1px solid rgba(255,255,255,.2);transition:all .3s ease}.image-gallery-nav-button:hover{background:#000000b3;transform:scale(1.1)}.image-gallery-thumbnail-strip{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:linear-gradient(to top,rgba(0,0,0,.8) 0%,rgba(0,0,0,.4) 50%,transparent 100%)}.image-gallery-thumbnail-item{transition:all .2s ease;border-radius:8px;overflow:hidden}.image-gallery-thumbnail-item:hover{transform:translateY(-2px);box-shadow:0 4px 12px #0000004d}.image-gallery-thumbnail-item.active{transform:translateY(-2px);box-shadow:0 0 0 2px #fff,0 4px 12px #0000004d}.image-gallery-zoom-indicator{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#0009;border-radius:8px;border:1px solid rgba(255,255,255,.2)}.image-gallery-grid-overlay{background:linear-gradient(45deg,#0000004d,#0009);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.image-gallery-thumbnails::-webkit-scrollbar{display:none}.image-gallery-thumbnails{-ms-overflow-style:none;scrollbar-width:none;scroll-behavior:smooth}.image-gallery-loading{background:linear-gradient(90deg,#ffffff1a,#ffffff4d,#ffffff1a);background-size:200% 100%;animation:shimmer 2s infinite}@keyframes shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}@media (max-width: 768px){.image-gallery-modal-controls{padding:12px}.image-gallery-nav-button{width:40px;height:40px}.image-gallery-thumbnail-strip{padding:12px}}.mobile-gallery-container{position:relative;border-radius:16px;overflow:hidden;box-shadow:0 4px 12px #0000001a}.mobile-gallery-image{transition:transform .3s cubic-bezier(.25,.46,.45,.94),opacity .2s ease}.mobile-gallery-image:active{transform:scale(.98)}.mobile-gallery-image.swiping{opacity:.8}.mobile-gallery-counter{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#000000b3;border:1px solid rgba(255,255,255,.1)}.mobile-gallery-show-all{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#fffffff2;border:1px solid rgba(0,0,0,.1);transition:all .2s ease}.mobile-gallery-show-all:hover{background:#fff;transform:translateY(-1px);box-shadow:0 4px 12px #0003}.mobile-gallery-dots{padding:12px 0}.mobile-gallery-dot{width:6px;height:6px;border-radius:50%;transition:all .3s cubic-bezier(.25,.46,.45,.94);cursor:pointer}.mobile-gallery-dot:hover{transform:scale(1.3)}.mobile-gallery-dot.active{background:#1a202c!important;transform:scale(1.2)}.mobile-gallery-dot.inactive{background:#cbd5e0!important}.mobile-gallery-swipe{touch-action:pan-y;-webkit-overflow-scrolling:touch}@media (hover: none) and (pointer: coarse){.image-gallery-nav-button{min-width:48px;min-height:48px}.image-gallery-thumbnail-item{min-width:60px;min-height:45px}.mobile-gallery-show-all{min-height:36px;padding:8px 12px}.mobile-gallery-dot{min-width:8px;min-height:8px;width:8px;height:8px}}.swipe-hint{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#000c;border:1px solid rgba(255,255,255,.2);animation:swipeHintFade 2s ease-in-out}@keyframes swipeHintFade{0%{opacity:0;transform:translate(-50%) translateY(10px)}20%{opacity:1;transform:translate(-50%) translateY(0)}80%{opacity:1;transform:translate(-50%) translateY(0)}to{opacity:0;transform:translate(-50%) translateY(-10px)}}.image-container{transition:transform .3s cubic-bezier(.25,.46,.45,.94)}.image-container.swiping{transition:none}
