﻿/* XYSHIMA - 3D Cover Flow */

.xy-public-3d .loop.xy-coverflow {
  display: block !important;
  position: relative;
  height: 390px;
  perspective: 1100px;
  perspective-origin: center;
  transform-style: preserve-3d;
  overflow: hidden;
  isolation: isolate;
  margin-top: 36px;
  padding: 0;
}

.xy-public-3d .loop.xy-coverflow article {
  position: absolute;
  top: 32px;
  left: 50%;
  width: min(54%, 460px);
  height: 290px;
  min-height: 0;
  margin: 0;
  padding: 30px;
  border-radius: 26px;

  background:
    radial-gradient(
      circle at 85% 10%,
      rgba(83, 245, 216, .24),
      transparent 48%
    ),
    linear-gradient(145deg, #216e61, #0c3230);

  border: 1px solid rgba(138, 245, 216, .55);
  box-shadow:
    0 30px 65px rgba(0, 0, 0, .30),
    inset 0 1px 0 rgba(255,255,255,.12);

  color: white;

  transform-style: preserve-3d;

  transform:
    translateX(-50%)
    translateZ(-300px)
    scale(.65);

  opacity: 0;
  visibility: hidden;
  pointer-events: none;

  transition:
    transform .65s cubic-bezier(.2,.8,.2,1),
    opacity .45s ease,
    box-shadow .45s ease;
}

/* Main card */
.xy-public-3d .loop.xy-coverflow article[data-pos="center"] {
  transform:
    translateX(-50%)
    translateZ(65px)
    rotateY(0deg);

  opacity: 1;
  visibility: visible;
  pointer-events: auto;
  z-index: 5;

  box-shadow: 0 36px 75px rgba(0,0,0,.38);
}

/* Left 3D card */
.xy-public-3d .loop.xy-coverflow article[data-pos="left"] {
  transform:
    translateX(calc(-50% - clamp(180px,27vw,310px)))
    rotateY(42deg)
    translateZ(-90px)
    scale(.85);

  opacity: .65;
  visibility: visible;
  pointer-events: auto;
  cursor: pointer;
  z-index: 2;
}

/* Right 3D card */
.xy-public-3d .loop.xy-coverflow article[data-pos="right"] {
  transform:
    translateX(calc(-50% + clamp(180px,27vw,310px)))
    rotateY(-42deg)
    translateZ(-90px)
    scale(.85);

  opacity: .65;
  visibility: visible;
  pointer-events: auto;
  cursor: pointer;
  z-index: 2;
}

.xy-public-3d .loop.xy-coverflow h3 {
  font-size: clamp(1.4rem,2.5vw,1.85rem);
  line-height: 1.2;
  margin-top: 34px;
  color: white;
}

.xy-public-3d .loop.xy-coverflow p {
  color: #d4eee7;
  font-size: 1rem;
  line-height: 1.7;
}

/* Navigation */
.xy-motion-controls {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 20px;
  margin: 0 auto 20px;
  flex-wrap: wrap;
}

.xy-motion-controls button {
  border: 1px solid rgba(139,239,214,.5);
  border-radius: 999px;
  padding: 12px 22px;

  background: rgba(255,255,255,.09);
  color: white;

  font: inherit;
  font-weight: 750;
  cursor: pointer;

  transition:
    background .2s ease,
    transform .2s ease;
}

.xy-motion-controls button:hover {
  background: rgba(139,239,214,.20);
  transform: translateY(-2px);
}

.xy-motion-controls button:focus-visible,
.xy-coverflow:focus-visible {
  outline: 2px solid #8befd5;
  outline-offset: 4px;
}

.xy-motion-counter {
  color: #8befd5;
  font-weight: 800;
  font-size: 14px;
  min-width: 55px;
  text-align: center;
}

/* Mobile */
@media (max-width: 680px) {
  .xy-public-3d .loop.xy-coverflow {
    height: 345px;
  }

  .xy-public-3d .loop.xy-coverflow article {
    width: 84%;
    height: 265px;
    padding: 24px;
  }

  .xy-public-3d .loop.xy-coverflow article[data-pos="center"] {
    transform: translateX(-50%);
  }

  .xy-public-3d .loop.xy-coverflow article[data-pos="left"] {
    transform:
      translateX(calc(-50% - 65vw))
      rotateY(45deg)
      scale(.75);
    opacity: .35;
  }

  .xy-public-3d .loop.xy-coverflow article[data-pos="right"] {
    transform:
      translateX(calc(-50% + 65vw))
      rotateY(-45deg)
      scale(.75);
    opacity: .35;
  }
}

/* Accessibility */
@media (prefers-reduced-motion: reduce) {
  .xy-public-3d .loop.xy-coverflow article {
    transition: none;
  }

  .xy-motion-controls button {
    transition: none;
  }
}
