/* Native touch scrolling keeps vertical page scrolling and pinch zoom available. */
.profile-gallery { width: 100%; min-width: 0; }
.profile-gallery-stage { position: relative; overflow: hidden; border: 1px solid rgba(255,255,255,.95); border-radius: 25px; background: #f8f1fb; box-shadow: var(--shadow); }
.profile-gallery-track { display: flex; width: 100%; overflow-x: auto; overflow-y: hidden; scroll-snap-type: x mandatory; scroll-behavior: smooth; overscroll-behavior-x: contain; scrollbar-width: none; cursor: grab; user-select: none; -webkit-user-select: none; -webkit-overflow-scrolling: touch; }
.profile-gallery-track::-webkit-scrollbar { display: none; }
.profile-gallery-track:focus-visible { outline-offset: -4px; }
.profile-gallery-slide { flex: 0 0 100%; min-width: 0; aspect-ratio: 4 / 5; margin: 0; scroll-snap-align: start; scroll-snap-stop: always; background: linear-gradient(150deg,#fbf0fa,#efe4fa); }
.profile-gallery-slide img { display: block; width: 100%; height: 100%; object-fit: contain; object-position: center; -webkit-user-drag: none; }
.profile-gallery-track.is-dragging { cursor: grabbing; scroll-snap-type: none; scroll-behavior: auto; }
.profile-gallery-role { position: absolute; right: 16px; bottom: 16px; padding: 5px 16px; border: 1px solid white; border-radius: 999px; background: rgba(255,247,255,.94); color: #865493; font-size: .75rem; pointer-events: none; }
.profile-gallery-arrow { position: absolute; top: 50%; display: grid; place-items: center; width: 42px; height: 42px; padding: 0 0 3px; transform: translateY(-50%); border: 1px solid white; border-radius: 50%; background: rgba(255,248,255,.91); color: #80528d; font-family: sans-serif; font-size: 2rem; line-height: 1; box-shadow: 0 4px 15px rgba(86,58,103,.13); cursor: pointer; }
.profile-gallery-prev { left: 10px; }
.profile-gallery-next { right: 10px; }
.profile-gallery-arrow:disabled { opacity: .38; cursor: default; box-shadow: none; }
.profile-gallery-info { display: flex; justify-content: space-between; align-items: center; gap: 10px; padding: 12px 3px 10px; color: var(--muted); font-size: .73rem; }
.profile-gallery-count { flex-shrink: 0; color: #8e629b; font-variant-numeric: tabular-nums; font-weight: 700; }
.profile-gallery-thumbnails { display: flex; gap: 8px; padding: 3px 2px 8px; overflow-x: auto; overscroll-behavior-x: contain; scrollbar-width: thin; scrollbar-color: #dfc3e9 transparent; }
.profile-gallery-thumb { flex: 0 0 56px; width: 56px; height: 68px; overflow: hidden; padding: 0; border: 2px solid white; border-radius: 10px; background: #f9f0fc; opacity: .66; cursor: pointer; transition: opacity 140ms ease, border-color 140ms ease; }
.profile-gallery-thumb img { width: 100%; height: 100%; object-fit: cover; object-position: center 20%; }
.profile-gallery-thumb[aria-current="true"] { opacity: 1; border-color: #ba82bf; box-shadow: 0 0 0 1px rgba(186,130,191,.15); }
.profile-gallery-thumb:hover { opacity: 1; }
.profile-single-photo img { object-fit: contain; object-position: center; background: linear-gradient(150deg,#fbf0fa,#efe4fa); }
@media (min-width: 1000px) { .profile-gallery { max-width: 470px; } }
@media (prefers-reduced-motion: reduce) { .profile-gallery-track { scroll-behavior: auto; } .profile-gallery-thumb { transition: none; } }
