.cover-shadow {
  position: relative;
  display: inline-block;
  overflow: visible;
  z-index: 0;
}

.cover-shadow::before {
  content: '';
  position: absolute;
  left: 50%;
  bottom: -2px;
  transform: translateX(-50%);
  width: 82%;
  height: 24px;
  background: radial-gradient(
    ellipse at center,
    rgba(0,0,0,0.50) 0%,
    rgba(0,0,0,0.32) 40%,
    rgba(0,0,0,0.18) 60%,
    rgba(0,0,0,0.08) 75%,
    transparent 90%
  );
  filter: blur(18px);
  z-index: 0;
  pointer-events: none;
}

.cover-shadow::after {
  content: '';
  position: absolute;
  left: -18px;
  top: 14px;
  width: 40px;
  height: 90%;
  background: linear-gradient(
    to right,
    rgba(0,0,0,0.16) 0%,
    rgba(0,0,0,0.42) 35%,
    rgba(0,0,0,0.42) 65%,
    rgba(0,0,0,0.14) 100%
  );
  filter: blur(10px);
  z-index: 0;
  pointer-events: none;
}

.cover-glossy {
  position: relative;
  z-index: 1;
  overflow: hidden;
  width: 200px;
  height: 300px;
  border-radius: 2px;
  background: #e9e9e9;
}

/* immagine vera */
.cover-glossy img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  display: block;
  object-fit: cover;
  z-index: 1;
}

/* luci della costola e gloss */
.cover-glossy::before {
  content: '';
  position: absolute;
  inset: 0;
  pointer-events: none;
  z-index: 2;
  background:
    linear-gradient(
      to right,
      rgba(255,255,255,0.78) 0px,
      rgba(255,255,255,0.52) 1px,
      rgba(255,255,255,0.16) 2px,
      transparent 4px
    ),
    linear-gradient(
      to right,
      transparent 0,
      transparent 7px,
      rgba(255,255,255,0.34) 8px,
      rgba(255,255,255,0.18) 10px,
      rgba(255,255,255,0.08) 12px,
      transparent 16px
    ),
    linear-gradient(
      to right,
      rgba(255,255,255,0.14) 0%,
      rgba(255,255,255,0.08) 4%,
      rgba(255,255,255,0.04) 8%,
      rgba(255,255,255,0.02) 12%,
      transparent 26%
    ),
    radial-gradient(
      ellipse at 5% 10%,
      rgba(255,255,255,0.12) 0%,
      rgba(255,255,255,0.06) 22%,
      rgba(255,255,255,0.025) 40%,
      transparent 58%
    );
}

/* ombra costola */
.cover-glossy::after {
  content: '';
  position: absolute;
  inset: 0;
  pointer-events: none;
  z-index: 3;
  transform: perspective(600px) rotateY(-1deg);
  transform-origin: left;
  background:
    linear-gradient(
      to right,
      rgba(0,0,0,0.30) 0px,
      rgba(0,0,0,0.20) 3px,
      rgba(0,0,0,0.10) 7px,
      rgba(0,0,0,0.04) 12px,
      transparent 50px
    ),
    radial-gradient(
      ellipse at 0% 50%,
      rgba(0,0,0,0.04) 0%,
      rgba(0,0,0,0.12) 20%,
      rgba(0,0,0,0.05) 42%,
      transparent 68%
    );
}

.cover-glossy .cover-shine {
  position: absolute;
  inset: 0;
  pointer-events: none;
  z-index: 4;
  background: linear-gradient(
    110deg,
    transparent 0%,
    rgba(255,255,255,0.02) 38%,
    rgba(255,255,255,0.055) 52%,
    rgba(255,255,255,0.018) 66%,
    transparent 100%
  );
}