/* =====================================================
   GalleriaPro — Pro Styles (51–100)
   Requires active license key
   ===================================================== */

/* =====================================================
   ADVANCED HOVER EFFECTS (51-60)
   ===================================================== */

/* 51 — Neon Glow Border */
[data-gp-style="51"] .gp-item-inner {
  overflow: hidden; border-radius: var(--gp-radius);
  transition: box-shadow 0.4s ease, transform 0.4s var(--gp-ease);
}
[data-gp-style="51"] .gp-item:hover .gp-item-inner {
  box-shadow:
    0 0 0 2px var(--gp-accent),
    0 0 16px var(--gp-accent),
    0 0 40px color-mix(in srgb, var(--gp-accent) 40%, transparent),
    0 0 80px color-mix(in srgb, var(--gp-accent) 20%, transparent);
  transform: scale(1.02);
}
[data-gp-style="51"] .gp-img-wrap img { transition: transform 0.4s var(--gp-ease), brightness 0.4s ease; }
[data-gp-style="51"] .gp-item:hover .gp-img-wrap img { transform: scale(1.05); filter: brightness(1.1); }
@keyframes gp-neon-pulse {
  0%, 100% { box-shadow: 0 0 0 2px var(--gp-accent), 0 0 16px var(--gp-accent), 0 0 40px color-mix(in srgb, var(--gp-accent) 40%, transparent); }
  50%       { box-shadow: 0 0 0 2px var(--gp-accent), 0 0 28px var(--gp-accent), 0 0 70px color-mix(in srgb, var(--gp-accent) 60%, transparent); }
}
[data-gp-style="51"] .gp-item:hover .gp-item-inner { animation: gp-neon-pulse 1.4s ease-in-out infinite; }

/* 52 — Liquid Metal Sheen */
[data-gp-style="52"] .gp-item-inner { position: relative; overflow: hidden; border-radius: var(--gp-radius); }
[data-gp-style="52"] .gp-item-inner::after {
  content: '';
  position: absolute; inset: -50%;
  background: conic-gradient(from 0deg, transparent 0%, rgba(255,255,255,0) 30%, rgba(255,255,255,0.55) 50%, rgba(255,255,255,0) 70%, transparent 100%);
  transform: rotate(-30deg) translateY(-120%);
  transition: transform 0s;
  pointer-events: none; z-index: 5;
}
[data-gp-style="52"] .gp-item:hover .gp-item-inner::after {
  transform: rotate(-30deg) translateY(120%);
  transition: transform 0.9s var(--gp-ease);
}
[data-gp-style="52"] .gp-img-wrap img { transition: transform 0.4s var(--gp-ease), filter 0.4s ease; }
[data-gp-style="52"] .gp-item:hover .gp-img-wrap img { transform: scale(1.04); filter: brightness(1.08) contrast(1.05); }

/* 53 — Horizontal Slice */
[data-gp-style="53"] .gp-item-inner { position: relative; overflow: hidden; border-radius: var(--gp-radius); }
[data-gp-style="53"] .gp-item-inner::before,
[data-gp-style="53"] .gp-item-inner::after {
  content: '';
  position: absolute; left: 0; right: 0; z-index: 4;
  background: var(--gp-accent);
  height: 52%;
  transition: transform 0.42s var(--gp-ease), opacity 0.3s ease;
  opacity: 0;
}
[data-gp-style="53"] .gp-item-inner::before { top: 0;  transform: scaleY(0); transform-origin: top; }
[data-gp-style="53"] .gp-item-inner::after  { bottom: 0; transform: scaleY(0); transform-origin: bottom; }
[data-gp-style="53"] .gp-item:hover .gp-item-inner::before,
[data-gp-style="53"] .gp-item:hover .gp-item-inner::after { transform: scaleY(1); opacity: 0.82; }
[data-gp-style="53"] .gp-overlay { z-index: 5; opacity: 0; transition: opacity 0.2s 0.3s ease; }
[data-gp-style="53"] .gp-item:hover .gp-overlay { opacity: 1; }
[data-gp-style="53"] .gp-caption { transform: none; }

/* 54 — Vertical Split */
[data-gp-style="54"] .gp-item-inner { position: relative; overflow: hidden; border-radius: var(--gp-radius); }
[data-gp-style="54"] .gp-item-inner::before,
[data-gp-style="54"] .gp-item-inner::after {
  content: '';
  position: absolute; top: 0; bottom: 0; z-index: 4;
  background: var(--gp-accent);
  width: 52%;
  transition: transform 0.42s var(--gp-ease), opacity 0.3s ease;
  opacity: 0;
}
[data-gp-style="54"] .gp-item-inner::before { left: 0;  transform: scaleX(0); transform-origin: left; }
[data-gp-style="54"] .gp-item-inner::after  { right: 0; transform: scaleX(0); transform-origin: right; }
[data-gp-style="54"] .gp-item:hover .gp-item-inner::before,
[data-gp-style="54"] .gp-item:hover .gp-item-inner::after { transform: scaleX(1); opacity: 0.82; }
[data-gp-style="54"] .gp-overlay { z-index: 5; opacity: 0; transition: opacity 0.2s 0.3s ease; }
[data-gp-style="54"] .gp-item:hover .gp-overlay { opacity: 1; }

/* 55 — Duotone Shift */
[data-gp-style="55"] .gp-item-inner { overflow: hidden; border-radius: var(--gp-radius); }
[data-gp-style="55"] .gp-img-wrap img {
  filter: grayscale(1) sepia(0.4) brightness(.95);
  transition: filter 0.5s ease, transform 0.5s ease;
}
[data-gp-style="55"] .gp-item:hover .gp-img-wrap img {
  filter: grayscale(0.3) sepia(0.7) hue-rotate(var(--gp-hue, 240deg)) saturate(1.6) brightness(1.05);
  transform: scale(1.04);
}
[data-gp-style="55"] .gp-overlay { background: linear-gradient(to top, rgba(0,0,0,.6), transparent 60%); }

/* 56 — RGB Glitch Split */
[data-gp-style="56"] .gp-item-inner { overflow: hidden; border-radius: var(--gp-radius); position: relative; }
[data-gp-style="56"] .gp-img-wrap img { transition: filter 0.1s steps(2); }
[data-gp-style="56"] .gp-item:hover .gp-img-wrap img { animation: gp-rgb-glitch 0.6s steps(3) forwards; }
@keyframes gp-rgb-glitch {
  0%   { filter: none; transform: translate(0,0); }
  20%  { filter: drop-shadow(4px 0 0 rgba(255,0,0,.7)) drop-shadow(-4px 0 0 rgba(0,255,255,.7)); transform: translate(-2px, 0); }
  40%  { filter: drop-shadow(-3px 0 0 rgba(0,255,0,.7)) drop-shadow(3px 0 0 rgba(255,0,255,.7)); transform: translate(2px, 1px); }
  60%  { filter: drop-shadow(6px 0 0 rgba(255,0,0,.5)) drop-shadow(-6px 0 0 rgba(0,0,255,.5)); transform: translate(-4px, 0); }
  80%  { filter: drop-shadow(2px 0 0 rgba(255,165,0,.6)); transform: translate(1px, -1px); }
  100% { filter: none; transform: translate(0,0); }
}

/* 57 — Pixel Dissolve */
[data-gp-style="57"] .gp-item-inner { overflow: hidden; border-radius: var(--gp-radius); }
[data-gp-style="57"] .gp-img-wrap img { transition: none; }
[data-gp-style="57"] .gp-item:hover .gp-img-wrap img { animation: gp-pixelate 0.5s steps(6) forwards; }
@keyframes gp-pixelate {
  0%   { filter: blur(0px) brightness(1); transform: scale(1); }
  25%  { filter: blur(3px) brightness(1.1); transform: scale(1.02); }
  50%  { filter: blur(0px) brightness(.9); }
  75%  { filter: blur(1px) brightness(1.08); transform: scale(1.04); }
  100% { filter: blur(0px) brightness(1.05); transform: scale(1.04); }
}

/* 58 — CRT Scanlines */
[data-gp-style="58"] .gp-item-inner { position: relative; overflow: hidden; border-radius: var(--gp-radius); }
[data-gp-style="58"] .gp-item-inner::after {
  content: '';
  position: absolute; inset: 0; z-index: 5;
  background: repeating-linear-gradient(0deg, rgba(0,0,0,0) 0px, rgba(0,0,0,0) 2px, rgba(0,0,0,.25) 2px, rgba(0,0,0,.25) 4px);
  pointer-events: none;
  opacity: 0;
  transition: opacity var(--gp-trans) ease;
}
[data-gp-style="58"] .gp-item:hover .gp-item-inner::after { opacity: 1; }
[data-gp-style="58"] .gp-img-wrap img { transition: filter var(--gp-trans) ease, transform var(--gp-trans) ease; }
[data-gp-style="58"] .gp-item:hover .gp-img-wrap img {
  filter: brightness(.85) contrast(1.2) saturate(.7) sepia(.15);
  transform: scale(1.02);
}
[data-gp-style="58"] .gp-overlay { z-index: 6; }

/* 59 — Magnetic Follow — handled by galleria-pro.js */
[data-gp-style="59"] .gp-item-inner { overflow: hidden; border-radius: var(--gp-radius); will-change: transform; }
[data-gp-style="59"] .gp-img-wrap img { transition: transform 0.3s var(--gp-ease); }

/* 60 — Water Ripple */
[data-gp-style="60"] .gp-item-inner { position: relative; overflow: hidden; border-radius: var(--gp-radius); }
[data-gp-style="60"] .gp-item-inner::before {
  content: '';
  position: absolute;
  width: 0; height: 0;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(255,255,255,0.5) 0%, rgba(255,255,255,0) 70%);
  transform: translate(-50%, -50%);
  opacity: 0;
  pointer-events: none; z-index: 5;
  top: var(--gp-ripple-y, 50%);
  left: var(--gp-ripple-x, 50%);
  transition: none;
}
[data-gp-style="60"] .gp-item.gp-rippling .gp-item-inner::before {
  animation: gp-ripple 0.7s ease-out forwards;
}
@keyframes gp-ripple {
  0%   { width: 0; height: 0; opacity: 0.6; }
  100% { width: 300px; height: 300px; opacity: 0; }
}
[data-gp-style="60"] .gp-img-wrap img { transition: transform 0.4s var(--gp-ease); }
[data-gp-style="60"] .gp-item:hover .gp-img-wrap img { transform: scale(1.04); }

/* =====================================================
   3D & PERSPECTIVE (61-75)
   ===================================================== */

/* 61 — 3D Flip Card */
[data-gp-style="61"] .gp-item { perspective: 1200px; }
[data-gp-style="61"] .gp-item-inner {
  border-radius: var(--gp-radius);
  transform-style: preserve-3d;
  transition: transform 0.7s var(--gp-ease);
  position: relative;
}
[data-gp-style="61"] .gp-item:hover .gp-item-inner { transform: rotateY(180deg); }
[data-gp-style="61"] .gp-img-wrap { backface-visibility: hidden; -webkit-backface-visibility: hidden; }
[data-gp-style="61"] .gp-overlay {
  position: absolute; inset: 0; z-index: 3;
  background: var(--gp-accent);
  backface-visibility: hidden;
  -webkit-backface-visibility: hidden;
  transform: rotateY(180deg);
  opacity: 1;
  display: flex; align-items: center; justify-content: center; text-align: center;
  padding: 24px;
  border-radius: var(--gp-radius);
}
[data-gp-style="61"] .gp-caption { transform: none; color: #fff; }
[data-gp-style="61"] .gp-caption-title { font-size: 1.1rem; margin-bottom: 8px; }

/* 62 — Mouse Tilt 3D — driven by galleria-pro.js */
[data-gp-style="62"] .gp-item { perspective: 900px; }
[data-gp-style="62"] .gp-item-inner {
  border-radius: var(--gp-radius); overflow: hidden;
  transform-style: preserve-3d;
  transition: transform 0.15s ease;
  will-change: transform;
  box-shadow: 0 8px 30px rgba(0,0,0,.15);
}
[data-gp-style="62"] .gp-item:hover .gp-item-inner { box-shadow: 0 24px 60px rgba(0,0,0,.28); }
[data-gp-style="62"] .gp-overlay { z-index: 2; }

/* 63 — Cube Carousel — Swiper cube effect */
[data-gp-style="63"] .gp-swiper { overflow: hidden; border-radius: var(--gp-radius); }
[data-gp-style="63"] .gp-img-wrap img { height: 480px; object-fit: cover; width: 100%; }
[data-gp-style="63"] .swiper-cube-shadow { background: rgba(0,0,0,.3); }

/* 64 — Isometric Grid */
[data-gp-style="64"] .gp-gallery-inner {
  display: grid;
  grid-template-columns: repeat(var(--gp-cols), 1fr);
  gap: var(--gp-gap);
  transform: rotateX(40deg) rotateZ(-20deg) skewX(0deg);
  transform-origin: center;
  transform-style: preserve-3d;
}
[data-gp-style="64"] { perspective: 1400px; overflow: visible; }
[data-gp-style="64"] .gp-item { transform-style: preserve-3d; transition: transform 0.4s var(--gp-ease); }
[data-gp-style="64"] .gp-item:hover { transform: translateZ(32px); }
[data-gp-style="64"] .gp-item-inner { border-radius: 4px; overflow: hidden; box-shadow: -8px 8px 24px rgba(0,0,0,.4); }
[data-gp-style="64"] .gp-img-wrap img { filter: brightness(.85); transition: filter 0.4s ease; }
[data-gp-style="64"] .gp-item:hover .gp-img-wrap img { filter: brightness(1.1); }

/* 65 — Float Depth — GSAP ScrollTrigger parallax per item */
[data-gp-style="65"] .gp-gallery-inner { gap: calc(var(--gp-gap) * 1.5); }
[data-gp-style="65"] .gp-item-inner { border-radius: var(--gp-radius); overflow: hidden; box-shadow: 0 6px 24px rgba(0,0,0,.12); will-change: transform; }
[data-gp-style="65"] .gp-item:nth-child(3n+1) { --gp-depth: 0.15; }
[data-gp-style="65"] .gp-item:nth-child(3n+2) { --gp-depth: 0.08; }
[data-gp-style="65"] .gp-item:nth-child(3n)   { --gp-depth: 0.22; }

/* 66 — Ring Orbit — GSAP driven */
[data-gp-style="66"] {
  display: flex; align-items: center; justify-content: center;
  min-height: 500px; perspective: 1000px;
  overflow: visible;
}
[data-gp-style="66"] .gp-gallery-inner {
  display: block;
  position: relative;
  width: 340px; height: 340px;
  transform-style: preserve-3d;
}
[data-gp-style="66"] .gp-item {
  position: absolute;
  width: 130px; height: 100px;
  top: 50%; left: 50%;
  margin: -50px -65px;
  transform-style: preserve-3d;
}
[data-gp-style="66"] .gp-item-inner { border-radius: 8px; overflow: hidden; width: 100%; height: 100%; box-shadow: 0 4px 20px rgba(0,0,0,.4); }
[data-gp-style="66"] .gp-item-inner img { object-fit: cover; width: 100%; height: 100%; }

/* 67 — Accordion 3D */
[data-gp-style="67"] .gp-gallery-inner {
  display: flex;
  height: 380px;
  perspective: 1000px;
  gap: var(--gp-gap);
}
[data-gp-style="67"] .gp-item {
  flex: 1;
  overflow: hidden;
  border-radius: var(--gp-radius);
  transition: flex 0.5s var(--gp-ease), box-shadow 0.4s ease;
  position: relative;
  cursor: pointer;
}
[data-gp-style="67"] .gp-item:hover { flex: 4; box-shadow: 0 16px 48px rgba(0,0,0,.3); }
[data-gp-style="67"] .gp-item-inner { height: 100%; }
[data-gp-style="67"] .gp-img-wrap { height: 100%; }
[data-gp-style="67"] .gp-img-wrap img { height: 100%; width: 100%; object-fit: cover; transition: transform 0.5s ease; }
[data-gp-style="67"] .gp-item:hover .gp-img-wrap img { transform: scale(1.06); }
[data-gp-style="67"] .gp-overlay { opacity: 0; transition: opacity 0.3s 0.2s ease; align-items: center; justify-content: center; text-align: center; }
[data-gp-style="67"] .gp-item:hover .gp-overlay { opacity: 1; }
[data-gp-style="67"] .gp-caption { transform: none; }

/* 68 — Perspective Grid */
[data-gp-style="68"] { perspective: 1400px; }
[data-gp-style="68"] .gp-gallery-inner { transform: rotateX(10deg); transform-style: preserve-3d; }
[data-gp-style="68"] .gp-item-inner { border-radius: var(--gp-radius); overflow: hidden; transition: transform 0.4s var(--gp-ease), box-shadow 0.4s ease; box-shadow: 0 4px 16px rgba(0,0,0,.1); }
[data-gp-style="68"] .gp-item:hover .gp-item-inner { transform: translateZ(30px) rotateX(-10deg); box-shadow: 0 20px 50px rgba(0,0,0,.3); }
[data-gp-style="68"] .gp-img-wrap img { transition: transform 0.4s ease; }
[data-gp-style="68"] .gp-item:hover .gp-img-wrap img { transform: scale(1.05); }

/* 69 — Stack & Spread — GSAP on scroll */
[data-gp-style="69"] .gp-gallery-inner { position: relative; min-height: 360px; }
[data-gp-style="69"] .gp-item { position: absolute; width: 60%; top: 50%; left: 50%; transform: translate(-50%, -50%); border-radius: var(--gp-radius); overflow: hidden; box-shadow: 0 8px 32px rgba(0,0,0,.2); }
[data-gp-style="69"] .gp-item-inner { border-radius: inherit; }

/* 70 — Book Page Turn — GSAP driven */
[data-gp-style="70"] { perspective: 2000px; }
[data-gp-style="70"] .gp-swiper { overflow: visible; }
[data-gp-style="70"] .swiper-slide { transform-origin: left center; transform-style: preserve-3d; }
[data-gp-style="70"] .gp-img-wrap img { height: 480px; width: 100%; object-fit: cover; }
[data-gp-style="70"] .swiper-slide { border-radius: 2px 8px 8px 2px; overflow: hidden; box-shadow: 4px 0 20px rgba(0,0,0,.3); }

/* 71 — Skew Scroll — GSAP velocity skew */
[data-gp-style="71"] .gp-gallery-inner { will-change: transform; }
[data-gp-style="71"] .gp-item-inner { border-radius: var(--gp-radius); overflow: hidden; box-shadow: 0 3px 14px rgba(0,0,0,.1); }
[data-gp-style="71"] .gp-img-wrap img { transition: transform 0.4s ease; }
[data-gp-style="71"] .gp-item:hover .gp-img-wrap img { transform: scale(1.05); }

/* 72 — Depth Layers — GSAP ScrollTrigger per-item depth */
[data-gp-style="72"] .gp-gallery-inner { grid-template-columns: repeat(var(--gp-cols), 1fr); }
[data-gp-style="72"] .gp-item-inner { border-radius: var(--gp-radius); overflow: hidden; will-change: transform; }
[data-gp-style="72"] .gp-item:nth-child(3n+1) { --gp-parallax-speed: 0.18; }
[data-gp-style="72"] .gp-item:nth-child(3n+2) { --gp-parallax-speed: 0.06; }
[data-gp-style="72"] .gp-item:nth-child(3n)   { --gp-parallax-speed: 0.28; }

/* 73 — 3D Tunnel — GSAP */
[data-gp-style="73"] { overflow: hidden; perspective: 1200px; }
[data-gp-style="73"] .gp-gallery-inner { position: relative; min-height: 500px; transform-style: preserve-3d; }
[data-gp-style="73"] .gp-item { position: absolute; width: 100%; top: 0; left: 0; transform-style: preserve-3d; }
[data-gp-style="73"] .gp-item-inner { border-radius: 4px; overflow: hidden; }
[data-gp-style="73"] .gp-img-wrap img { height: 500px; width: 100%; object-fit: cover; }

/* 74 — Levitating Card — GSAP hover float */
[data-gp-style="74"] .gp-item-inner {
  border-radius: var(--gp-radius); overflow: hidden;
  box-shadow: 0 8px 24px rgba(0,0,0,.14), 0 0 0 0 var(--gp-accent);
  transition: box-shadow 0.4s ease, transform 0.4s var(--gp-ease);
  will-change: transform;
}
[data-gp-style="74"] .gp-item:hover .gp-item-inner {
  transform: translateY(-16px);
  box-shadow: 0 40px 80px rgba(0,0,0,.25), 0 0 0 1px rgba(0,0,0,.06);
}
[data-gp-style="74"] .gp-img-wrap img { transition: transform 0.4s ease; }
[data-gp-style="74"] .gp-item:hover .gp-img-wrap img { transform: scale(1.04); }

/* 75 — Origami Unfold */
[data-gp-style="75"] .gp-item { perspective: 1000px; }
[data-gp-style="75"] .gp-item-inner {
  border-radius: 0;
  transform-origin: top center;
  transform: perspective(1000px) rotateX(-90deg);
  opacity: 0;
  transition: transform 0.7s var(--gp-ease), opacity 0.5s ease;
}
[data-gp-style="75"] .gp-item.gp-in-view .gp-item-inner {
  transform: perspective(1000px) rotateX(0deg);
  opacity: 1;
}
[data-gp-style="75"] .gp-item:nth-child(2) .gp-item-inner { transition-delay: 0.1s; }
[data-gp-style="75"] .gp-item:nth-child(3) .gp-item-inner { transition-delay: 0.2s; }
[data-gp-style="75"] .gp-item:nth-child(4) .gp-item-inner { transition-delay: 0.3s; }
[data-gp-style="75"] .gp-item:nth-child(5) .gp-item-inner { transition-delay: 0.4s; }
[data-gp-style="75"] .gp-item:nth-child(6) .gp-item-inner { transition-delay: 0.5s; }
[data-gp-style="75"] .gp-img-wrap img { height: 100%; width: 100%; object-fit: cover; }

/* =====================================================
   CREATIVE & EDITORIAL (76-100)
   ===================================================== */

/* 76 — Magazine Cover */
[data-gp-style="76"] .gp-gallery-inner { display: block; }
[data-gp-style="76"] .gp-item { position: relative; height: 92vh; min-height: 560px; overflow: hidden; }
[data-gp-style="76"] .gp-item-inner { height: 100%; border-radius: 0; }
[data-gp-style="76"] .gp-img-wrap { height: 100%; }
[data-gp-style="76"] .gp-img-wrap img { width: 100%; height: 100%; object-fit: cover; filter: brightness(.6); }
[data-gp-style="76"] .gp-overlay {
  opacity: 1;
  background: linear-gradient(to top, rgba(0,0,0,.85) 0%, rgba(0,0,0,.15) 60%);
  padding: 48px;
  align-items: flex-end;
}
[data-gp-style="76"] .gp-caption { transform: none; }
[data-gp-style="76"] .gp-caption-title { font-size: clamp(2rem, 5vw, 4.5rem); font-weight: 900; line-height: 1.05; letter-spacing: -0.04em; text-transform: uppercase; margin-bottom: 12px; }
[data-gp-style="76"] .gp-caption-desc  { font-size: clamp(1rem, 2vw, 1.3rem); opacity: 0.75; max-width: 55ch; }

/* 77 — Physical Film Strip */
[data-gp-style="77"] { background: #1a1208; padding: 30px 0; overflow-x: auto; }
[data-gp-style="77"] .gp-gallery-inner {
  display: flex;
  gap: 0;
  position: relative;
  flex-wrap: nowrap;
  min-height: 260px;
}
[data-gp-style="77"] .gp-gallery-inner::before,
[data-gp-style="77"] .gp-gallery-inner::after {
  content: '';
  position: absolute;
  left: 0; right: 0;
  height: 24px;
  background: repeating-linear-gradient(90deg, #1a1208 0px, #1a1208 14px, transparent 14px, transparent 26px);
  background-size: 36px 24px;
  z-index: 5; pointer-events: none;
}
[data-gp-style="77"] .gp-gallery-inner::before { top: -24px; }
[data-gp-style="77"] .gp-gallery-inner::after  { bottom: -24px; }
[data-gp-style="77"] .gp-item { flex: 0 0 220px; border: 3px solid #0a0804; transition: transform 0.3s ease, filter 0.3s ease; }
[data-gp-style="77"] .gp-item-inner { border-radius: 0; height: 100%; }
[data-gp-style="77"] .gp-img-wrap { height: 100%; }
[data-gp-style="77"] .gp-img-wrap img { height: 220px; width: 100%; object-fit: cover; filter: sepia(.2) contrast(1.1); transition: filter 0.3s ease; }
[data-gp-style="77"] .gp-item:hover .gp-img-wrap img { filter: sepia(0) contrast(1); transform: scale(1.04); }

/* 78 — Polaroid Chaos Wall */
[data-gp-style="78"] { background: #d4c8b8; padding: 40px; min-height: 600px; position: relative; }
[data-gp-style="78"] .gp-gallery-inner { display: flex; flex-wrap: wrap; gap: 0; position: relative; min-height: 500px; }
[data-gp-style="78"] .gp-item {
  position: relative;
  margin: 10px;
  background: #fff;
  padding: 10px 10px 36px;
  box-shadow: 2px 4px 18px rgba(0,0,0,.22);
  cursor: pointer;
  z-index: 1;
  transition: transform 0.4s var(--gp-spring), z-index 0s, box-shadow 0.3s ease;
}
[data-gp-style="78"] .gp-item:nth-child(1)  { transform: rotate(-3deg) translateY(-8px); }
[data-gp-style="78"] .gp-item:nth-child(2)  { transform: rotate(2.5deg) translateY(6px); }
[data-gp-style="78"] .gp-item:nth-child(3)  { transform: rotate(-1.5deg) translateY(-4px); }
[data-gp-style="78"] .gp-item:nth-child(4)  { transform: rotate(4deg) translateY(10px); }
[data-gp-style="78"] .gp-item:nth-child(5)  { transform: rotate(-2.8deg); }
[data-gp-style="78"] .gp-item:nth-child(6)  { transform: rotate(1.2deg) translateY(-6px); }
[data-gp-style="78"] .gp-item:nth-child(odd){ transform: rotate(-2.1deg) translateY(4px); }
[data-gp-style="78"] .gp-item:hover { transform: rotate(0deg) scale(1.08) !important; z-index: 20; box-shadow: 8px 16px 40px rgba(0,0,0,.35); }
[data-gp-style="78"] .gp-item-inner { border-radius: 0; overflow: hidden; }
[data-gp-style="78"] .gp-img-wrap img { width: 180px; height: 160px; object-fit: cover; display: block; }

/* 79 — Tape Moodboard */
[data-gp-style="79"] { background: #f0ebe3; padding: 32px; }
[data-gp-style="79"] .gp-gallery-inner { gap: 24px; }
[data-gp-style="79"] .gp-item { position: relative; }
[data-gp-style="79"] .gp-item::before {
  content: '';
  position: absolute;
  top: -10px; left: 50%; transform: translateX(-50%) rotate(-2deg);
  width: 48px; height: 22px;
  background: rgba(220,200,150,.7);
  z-index: 5;
  pointer-events: none;
  border-radius: 1px;
  box-shadow: 0 1px 4px rgba(0,0,0,.12);
}
[data-gp-style="79"] .gp-item:nth-child(even)::before { transform: translateX(-50%) rotate(3deg); left: 40%; top: -8px; width: 38px; }
[data-gp-style="79"] .gp-item-inner {
  background: #fff;
  padding: 8px 8px 28px;
  border-radius: 1px;
  box-shadow: 0 3px 12px rgba(0,0,0,.14);
  transition: transform 0.35s var(--gp-ease);
}
[data-gp-style="79"] .gp-item:hover .gp-item-inner { transform: scale(1.04) rotate(-1deg); }
[data-gp-style="79"] .gp-img-wrap img { border-radius: 0; filter: sepia(.1) contrast(1.05); }

/* 80 — Split Screen */
[data-gp-style="80"] .gp-swiper { border-radius: var(--gp-radius); overflow: hidden; }
[data-gp-style="80"] .gp-item-inner { display: flex; border-radius: 0; }
[data-gp-style="80"] .gp-img-wrap { flex: 0 0 50%; height: 480px; }
[data-gp-style="80"] .gp-img-wrap img { height: 100%; width: 100%; object-fit: cover; }
[data-gp-style="80"] .gp-overlay {
  position: relative; flex: 1;
  background: var(--gp-accent);
  opacity: 1;
  align-items: center; justify-content: center; text-align: center;
  padding: 40px 32px;
}
[data-gp-style="80"] .gp-caption { transform: none; color: #fff; }
[data-gp-style="80"] .gp-caption-title { font-size: 1.8rem; font-weight: 800; letter-spacing: -0.03em; }

/* 81 — Page Snap Scroll (base in galleria-base.css) */
[data-gp-style="81"] .gp-snap-slide::before {
  content: '';
  position: absolute; inset: 0;
  background: linear-gradient(to top, rgba(0,0,0,.55) 0%, transparent 45%);
  pointer-events: none; z-index: 2;
}

/* 82 — SVG Text Mask */
[data-gp-style="82"] { overflow: hidden; }
[data-gp-style="82"] .gp-gallery-inner { display: block; position: relative; }
[data-gp-style="82"] .gp-item { position: relative; width: 100%; min-height: 300px; }
[data-gp-style="82"] .gp-item-inner { border-radius: 0; overflow: hidden; }
[data-gp-style="82"] .gp-item::before {
  content: attr(data-caption-title);
  position: absolute; inset: 0;
  display: flex; align-items: center; justify-content: center;
  font-size: clamp(4rem, 12vw, 9rem);
  font-weight: 900;
  color: transparent;
  background-image: url(); /* set dynamically via JS from img src */
  background-size: cover;
  background-clip: text;
  -webkit-background-clip: text;
  line-height: 1;
  text-transform: uppercase;
  letter-spacing: -0.06em;
  z-index: 5;
  pointer-events: none;
}

/* 83 — Film Grain Vintage */
[data-gp-style="83"] .gp-item-inner { border-radius: var(--gp-radius); overflow: hidden; position: relative; }
[data-gp-style="83"] .gp-img-wrap img { filter: sepia(.45) contrast(1.1) brightness(.92); transition: filter 0.5s ease; }
[data-gp-style="83"] .gp-item:hover .gp-img-wrap img { filter: sepia(.25) contrast(1.12) brightness(.96); }
[data-gp-style="83"] .gp-item-inner::after {
  content: '';
  position: absolute; inset: 0; z-index: 5; pointer-events: none;
  background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.75' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='0.08'/%3E%3C/svg%3E");
  opacity: 0.6;
  mix-blend-mode: overlay;
}
[data-gp-style="83"] .gp-overlay { background: linear-gradient(to top, rgba(40,20,5,.7) 0%, transparent 60%); }
[data-gp-style="83"] .gp-caption-title { font-family: serif; font-style: italic; color: #e8d5a8; }

/* 84 — Ink Drop Reveal — GSAP SVG mask, JS driven */
[data-gp-style="84"] .gp-item-inner { border-radius: var(--gp-radius); overflow: hidden; position: relative; }
[data-gp-style="84"] .gp-img-wrap img { opacity: 0; transition: opacity 0s; }
[data-gp-style="84"] .gp-item.gp-in-view .gp-img-wrap img { opacity: 1; }
[data-gp-style="84"] .gp-item-inner::before {
  content: '';
  position: absolute; inset: 0; z-index: 6;
  background: #111;
  clip-path: circle(0% at 50% 50%);
  transition: clip-path 0s;
  pointer-events: none;
}
[data-gp-style="84"] .gp-item.gp-in-view .gp-item-inner::before {
  clip-path: circle(150% at 50% 50%);
  transition: clip-path 0s;
  opacity: 0;
}

/* 85 — Glitch Wave — GSAP clip-path wave */
[data-gp-style="85"] .gp-item-inner { border-radius: var(--gp-radius); overflow: hidden; will-change: clip-path; }
[data-gp-style="85"] .gp-img-wrap img { transition: transform 0.4s ease; }
[data-gp-style="85"] .gp-item:hover .gp-img-wrap img { transform: scale(1.06); }

/* 86 — Dark Gold Luxury */
[data-gp-style="86"] { background: #0a0a0c; padding: 32px; }
[data-gp-style="86"] .gp-gallery-inner { gap: calc(var(--gp-gap) + 8px); }
[data-gp-style="86"] .gp-item-inner {
  border-radius: 2px;
  overflow: hidden;
  border: 1px solid rgba(212,175,55,.2);
  box-shadow: 0 0 0 1px rgba(212,175,55,.07), 0 8px 32px rgba(0,0,0,.6);
  transition: border-color 0.4s ease, box-shadow 0.4s ease;
}
[data-gp-style="86"] .gp-item:hover .gp-item-inner {
  border-color: rgba(212,175,55,.6);
  box-shadow: 0 0 0 1px rgba(212,175,55,.3), 0 16px 48px rgba(0,0,0,.7), 0 0 24px rgba(212,175,55,.08);
}
[data-gp-style="86"] .gp-img-wrap img { filter: brightness(.7) contrast(1.05); transition: filter 0.4s ease, transform 0.4s ease; }
[data-gp-style="86"] .gp-item:hover .gp-img-wrap img { filter: brightness(.9) contrast(1.1); transform: scale(1.04); }
[data-gp-style="86"] .gp-overlay { background: linear-gradient(to top, rgba(10,8,0,.85) 0%, transparent 55%); }
[data-gp-style="86"] .gp-caption-title { color: #d4af37; font-family: serif; letter-spacing: 0.06em; text-transform: uppercase; font-size: 0.85rem; }
[data-gp-style="86"] .gp-caption-desc  { color: rgba(212,175,55,.65); font-size: 0.75rem; }

/* 87 — Glassmorphism */
[data-gp-style="87"] { background: linear-gradient(135deg, #667eea 0%, #764ba2 100%); padding: 32px; }
[data-gp-style="87"] .gp-item-inner {
  background: rgba(255,255,255,0.12);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  border: 1px solid rgba(255,255,255,0.25);
  border-radius: 20px;
  overflow: hidden;
  box-shadow: 0 8px 32px rgba(31,38,135,.2);
  transition: transform 0.4s var(--gp-ease), box-shadow 0.4s ease, border-color 0.3s ease;
}
[data-gp-style="87"] .gp-item:hover .gp-item-inner {
  transform: translateY(-8px);
  box-shadow: 0 24px 60px rgba(31,38,135,.35);
  border-color: rgba(255,255,255,.5);
}
[data-gp-style="87"] .gp-img-wrap img { border-radius: 14px; opacity: 0.92; transition: opacity 0.3s ease, transform 0.4s ease; }
[data-gp-style="87"] .gp-item:hover .gp-img-wrap img { opacity: 1; transform: scale(1.03); }
[data-gp-style="87"] .gp-overlay { border-radius: 20px; background: linear-gradient(to top, rgba(0,0,0,.6), transparent 60%); }

/* 88 — Neo-Brutalist */
[data-gp-style="88"] { background: #f5f5f0; padding: 24px; }
[data-gp-style="88"] .gp-item-inner {
  border: 3px solid #0a0a0a;
  border-radius: 0;
  box-shadow: 6px 6px 0 #0a0a0a;
  transition: transform 0.2s steps(2), box-shadow 0.2s steps(2);
  overflow: hidden;
}
[data-gp-style="88"] .gp-item:hover .gp-item-inner {
  transform: translate(-4px, -4px);
  box-shadow: 10px 10px 0 var(--gp-accent);
}
[data-gp-style="88"] .gp-img-wrap img { transition: filter 0.2s steps(2); }
[data-gp-style="88"] .gp-item:hover .gp-img-wrap img { filter: contrast(1.15) brightness(1.05); }
[data-gp-style="88"] .gp-overlay { background: rgba(10,10,10,0); border: 3px solid transparent; transition: background 0.2s steps(2), border-color 0.2s steps(2); }
[data-gp-style="88"] .gp-item:hover .gp-overlay { background: rgba(10,10,10,.55); }
[data-gp-style="88"] .gp-caption-title { font-weight: 900; text-transform: uppercase; letter-spacing: -0.02em; font-size: 1.1rem; }

/* 89 — Before / After (base in galleria-base.css) */
[data-gp-style="89"] .gp-before-after { border-radius: var(--gp-radius); box-shadow: 0 12px 40px rgba(0,0,0,.22); }
[data-gp-style="89"] .gp-ba-handle { width: 44px; }

/* 90 — Parallax Scroll — GSAP ScrollTrigger */
[data-gp-style="90"] .gp-gallery-inner { gap: calc(var(--gp-gap) * 2); }
[data-gp-style="90"] .gp-item-inner { border-radius: var(--gp-radius); overflow: hidden; will-change: transform; }
[data-gp-style="90"] .gp-img-wrap img { will-change: transform; transform: scale(1.2); }

/* 91 — Watercolor Canvas */
[data-gp-style="91"] { background: #f8f4ef; }
[data-gp-style="91"] .gp-item-inner { border-radius: var(--gp-radius); overflow: hidden; }
[data-gp-style="91"] .gp-img-wrap img {
  filter: saturate(.6) brightness(1.05) contrast(.9);
  transition: filter 0.5s ease, transform 0.5s ease;
}
[data-gp-style="91"] .gp-item:hover .gp-img-wrap img {
  filter: saturate(.3) brightness(1.1) contrast(.85) sepia(.15);
  transform: scale(1.03);
}
[data-gp-style="91"] .gp-item-inner::before {
  content: '';
  position: absolute; inset: -2px; z-index: 5; pointer-events: none;
  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='100%25' height='100%25'%3E%3Cfilter id='wc'%3E%3CfeTurbulence baseFrequency='0.035' numOctaves='3' result='noise'/%3E%3CfeDisplacementMap in='SourceGraphic' in2='noise' scale='8' xChannelSelector='R' yChannelSelector='G'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23wc)'/%3E%3C/svg%3E");
  opacity: 0.3;
  mix-blend-mode: multiply;
}

/* 92 — Horizontal Timeline */
[data-gp-style="92"] { overflow-x: auto; padding: 40px 0; }
[data-gp-style="92"] .gp-gallery-inner {
  display: flex;
  flex-wrap: nowrap;
  gap: 48px;
  padding: 0 40px;
  position: relative;
  align-items: center;
  min-height: 360px;
}
[data-gp-style="92"] .gp-gallery-inner::before {
  content: '';
  position: absolute;
  top: 50%; left: 0; right: 0;
  height: 2px;
  background: linear-gradient(90deg, transparent, var(--gp-accent) 10%, var(--gp-accent) 90%, transparent);
  pointer-events: none;
}
[data-gp-style="92"] .gp-item:nth-child(odd)  { margin-top: -100px; }
[data-gp-style="92"] .gp-item:nth-child(even) { margin-top: 100px; }
[data-gp-style="92"] .gp-item { flex: 0 0 240px; position: relative; }
[data-gp-style="92"] .gp-item::before {
  content: '';
  position: absolute; top: 50%; left: 50%;
  width: 12px; height: 12px;
  background: var(--gp-accent);
  border: 3px solid #fff;
  border-radius: 50%;
  transform: translate(-50%, -50%);
  z-index: 5; box-shadow: 0 0 0 3px var(--gp-accent);
}
[data-gp-style="92"] .gp-item:nth-child(odd)::before  { top: calc(100% + 50px); }
[data-gp-style="92"] .gp-item:nth-child(even)::before { top: calc(-50px); }
[data-gp-style="92"] .gp-item-inner { border-radius: 8px; overflow: hidden; box-shadow: 0 6px 24px rgba(0,0,0,.15); transition: transform 0.35s var(--gp-ease), box-shadow 0.35s ease; }
[data-gp-style="92"] .gp-item:hover .gp-item-inner { transform: scale(1.05); box-shadow: 0 16px 48px rgba(0,0,0,.25); }
[data-gp-style="92"] .gp-img-wrap img { height: 200px; width: 100%; object-fit: cover; }

/* 93 — Story Mode (base snap in galleria-base.css) */
[data-gp-style="93"] .gp-snap-caption { bottom: 120px; }
[data-gp-style="93"] .gp-snap-caption h2 { font-size: clamp(2rem, 5vw, 3.5rem); font-weight: 900; }

/* 94 — Cinematic Letterbox */
[data-gp-style="94"] .gp-swiper { border-radius: var(--gp-radius); background: #000; overflow: hidden; }
[data-gp-style="94"] .gp-img-wrap img { height: 480px; width: 100%; object-fit: cover; }
[data-gp-style="94"] .swiper-slide::before,
[data-gp-style="94"] .swiper-slide::after {
  content: '';
  position: absolute; left: 0; right: 0; z-index: 5;
  height: clamp(28px, 7.5%, 60px);
  background: #000;
  pointer-events: none;
}
[data-gp-style="94"] .swiper-slide::before { top: 0; }
[data-gp-style="94"] .swiper-slide::after  { bottom: 0; }
[data-gp-style="94"] .gp-overlay { bottom: clamp(28px,7.5%,60px); background: linear-gradient(to top, rgba(0,0,0,.8) 0%, transparent 60%); }
[data-gp-style="94"] .gp-caption-title { font-family: serif; font-style: italic; font-size: 1.5rem; }

/* 95 — Grid Architecture */
[data-gp-style="95"] { background: #f8f7f5; padding: 32px; }
[data-gp-style="95"] .gp-item-inner {
  border-radius: 0;
  overflow: hidden;
  outline: 1px solid rgba(0,0,0,.12);
  transition: outline-color 0.3s ease;
}
[data-gp-style="95"] .gp-item:hover .gp-item-inner { outline-color: var(--gp-accent); outline-width: 2px; }
[data-gp-style="95"] .gp-img-wrap img { filter: grayscale(.2); transition: filter 0.4s ease, transform 0.4s ease; }
[data-gp-style="95"] .gp-item:hover .gp-img-wrap img { filter: grayscale(0); transform: scale(1.04); }
[data-gp-style="95"] .gp-overlay { background: transparent; border: 1px solid transparent; transition: border-color 0.3s ease; }
[data-gp-style="95"] .gp-item:hover .gp-overlay { border-color: var(--gp-accent); background: linear-gradient(to top, rgba(0,0,0,.6) 0%, transparent 50%); opacity: 1; }
[data-gp-style="95"] .gp-gallery-inner { gap: 1px; background: rgba(0,0,0,.1); }

/* 96 — Fashion Runway */
[data-gp-style="96"] { overflow-x: auto; padding: 24px 0; }
[data-gp-style="96"] .gp-gallery-inner {
  display: flex;
  flex-wrap: nowrap;
  gap: var(--gp-gap);
  padding: 0 24px;
}
[data-gp-style="96"] .gp-item { flex: 0 0 280px; height: 460px; }
[data-gp-style="96"] .gp-item-inner { height: 100%; border-radius: var(--gp-radius); overflow: hidden; transition: transform 0.4s var(--gp-ease); }
[data-gp-style="96"] .gp-item:hover .gp-item-inner { transform: scaleY(1.04); }
[data-gp-style="96"] .gp-img-wrap { height: 100%; }
[data-gp-style="96"] .gp-img-wrap img { width: 100%; height: 100%; object-fit: cover; object-position: top; transition: transform 0.5s var(--gp-ease); }
[data-gp-style="96"] .gp-item:hover .gp-img-wrap img { transform: scale(1.05) translateY(-2%); }

/* 97 — Cyber Neon */
[data-gp-style="97"] { background: #060810; padding: 28px; }
[data-gp-style="97"] .gp-item-inner {
  border-radius: 4px;
  overflow: hidden;
  border: 1px solid rgba(99,102,241,.2);
  box-shadow: 0 0 20px rgba(99,102,241,.06), inset 0 0 12px rgba(0,0,0,.4);
  transition: border-color 0.3s ease, box-shadow 0.4s ease, transform 0.3s ease;
}
[data-gp-style="97"] .gp-item:hover .gp-item-inner {
  border-color: var(--gp-accent);
  box-shadow: 0 0 24px var(--gp-accent), 0 0 60px color-mix(in srgb, var(--gp-accent) 30%, transparent), inset 0 0 12px rgba(0,0,0,.2);
  transform: scale(1.02);
}
[data-gp-style="97"] .gp-img-wrap img { filter: brightness(.7) saturate(.8) contrast(1.1); transition: filter 0.3s ease; }
[data-gp-style="97"] .gp-item:hover .gp-img-wrap img { filter: brightness(.85) saturate(1.1) contrast(1.15); }
[data-gp-style="97"] .gp-overlay { background: linear-gradient(to top, rgba(6,8,16,.85) 0%, transparent 60%); }
[data-gp-style="97"] .gp-caption-title { color: var(--gp-accent); font-family: monospace; text-transform: uppercase; letter-spacing: .1em; font-size: 0.8rem; text-shadow: 0 0 10px var(--gp-accent); }

/* 98 — VSCO Minimal */
[data-gp-style="98"] { background: #faf8f4; padding: 48px; }
[data-gp-style="98"] .gp-gallery-inner { gap: 40px; }
[data-gp-style="98"] .gp-item-inner { border-radius: 0; overflow: hidden; box-shadow: none; }
[data-gp-style="98"] .gp-img-wrap img {
  filter: brightness(1.03) contrast(.96) saturate(.85);
  transition: filter 0.6s ease, transform 0.6s ease;
}
[data-gp-style="98"] .gp-item:hover .gp-img-wrap img { filter: brightness(1.05) contrast(.98) saturate(.9); transform: scale(1.02); }
[data-gp-style="98"] .gp-overlay { background: linear-gradient(to top, rgba(0,0,0,.25) 0%, transparent 50%); }
[data-gp-style="98"] .gp-caption-title { font-family: serif; font-style: italic; font-weight: 400; font-size: 0.9rem; letter-spacing: 0.04em; color: rgba(255,255,255,.85); }

/* 99 — Infinite Mosaic */
[data-gp-style="99"] { overflow: hidden; position: relative; }
[data-gp-style="99"] .gp-gallery-inner {
  display: flex;
  flex-wrap: nowrap;
  animation: gp-mosaic-scroll 28s linear infinite;
  width: max-content;
}
[data-gp-style="99"]:hover .gp-gallery-inner { animation-play-state: paused; }
[data-gp-style="99"] .gp-item { flex: 0 0 200px; }
[data-gp-style="99"] .gp-item-inner { border-radius: 0; overflow: hidden; }
[data-gp-style="99"] .gp-img-wrap img { width: 200px; height: 200px; object-fit: cover; filter: brightness(.8); transition: filter 0.3s ease; }
[data-gp-style="99"] .gp-item:hover .gp-img-wrap img { filter: brightness(1.1); }
@keyframes gp-mosaic-scroll {
  from { transform: translateX(0); }
  to   { transform: translateX(-50%); }
}

/* 100 — World Pinboard */
[data-gp-style="100"] {
  position: relative;
  min-height: 600px;
  background: #e8e4dc url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1200 600'%3E%3Crect fill='%23ddd9d0' width='1200' height='600'/%3E%3C/svg%3E") center/cover;
  overflow: hidden;
}
[data-gp-style="100"] .gp-gallery-inner { display: block; width: 100%; height: 600px; position: relative; }
[data-gp-style="100"] .gp-item {
  position: absolute;
  width: 160px;
  cursor: pointer;
  transition: transform 0.35s var(--gp-spring), z-index 0s;
  z-index: 1;
}
[data-gp-style="100"] .gp-item:hover { transform: scale(1.18) !important; z-index: 20; }
[data-gp-style="100"] .gp-item::after {
  content: '';
  position: absolute;
  top: -8px; left: 50%;
  transform: translateX(-50%);
  width: 10px; height: 10px;
  background: var(--gp-accent);
  border-radius: 50% 50% 50% 50% / 60% 60% 40% 40%;
  box-shadow: 0 2px 8px rgba(0,0,0,.3);
  z-index: 5;
}
[data-gp-style="100"] .gp-item-inner {
  border: 3px solid #fff;
  border-radius: 2px;
  box-shadow: 2px 4px 16px rgba(0,0,0,.25);
  overflow: hidden;
}
[data-gp-style="100"] .gp-img-wrap img { width: 160px; height: 120px; object-fit: cover; display: block; }
/* JS places items at geo-inspired positions */
