/* Landscape Ruby card with a blended portrait and interactive perspective. */
body[data-design="rings"] .business-card {
  container-type: inline-size;
  aspect-ratio: 1.586;
  border-radius: 20px;
  background:
    linear-gradient(125deg, #fb8b8050, #eb494736 15%, transparent 42%),
    linear-gradient(140deg, #a32238, #a22c3d 38%, #500e22);
  border-color: #ffc0ae80;
  box-shadow:
    inset 0 1px 0 #ffe2cb85,
    inset 0 -1px 0 #ff654030,
    0 20px 60px #0007,
    0 0 48px #f6373820;
  transform: rotateX(var(--tilt-x, 5deg)) rotateY(var(--tilt-y, -9deg))
    rotateZ(-2deg);
  transition: transform 450ms cubic-bezier(0.2, 0.65, 0.25, 1);
  will-change: transform;
}
.card-rings {
  position: absolute;
  inset: 0;
  overflow: hidden;
  pointer-events: none;
}
.ring {
  position: absolute;
  border-radius: 50%;
  transform: rotate(28deg);
  border: 3.4cqw solid #ed776150;
  box-shadow:
    inset 2px 0 3px #ffb5a886,
    -2px 1px 3px #ffc8b866,
    12px 8px 30px #32061770,
    0 0 35px #ff705020;
}
.ring-one {
  width: 63%;
  height: 140%;
  right: -8%;
  top: -28%;
}
.ring-two {
  width: 51%;
  height: 116%;
  right: -2%;
  top: -16%;
  border-width: 2.7cqw;
  opacity: 0.82;
}
.ring-three {
  width: 39%;
  height: 92%;
  right: 4%;
  top: -4%;
  border-width: 2cqw;
  opacity: 0.75;
}
body[data-design="rings"] .portrait-window {
  width: 52%;
  height: 103%;
  aspect-ratio: auto;
  right: -3%;
  top: 5%;
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
  overflow: visible;
  mix-blend-mode: luminosity;
  -webkit-mask-image: linear-gradient(
    #000 0%,
    #000 48%,
    #000b 70%,
    transparent 95%
  );
  mask-image: linear-gradient(#000 0%, #000 48%, #000b 70%, transparent 95%);
}
body[data-design="rings"] .portrait {
  object-fit: contain;
  object-position: 50% 0%;
  transform: none;
  filter: grayscale(1) contrast(1.08);
  mix-blend-mode: normal;
  opacity: 0.93;
}
body[data-design="rings"] .card-top {
  left: 5.7%;
  right: 5.7%;
  top: 8%;
}
body[data-design="rings"] .card-top::before {
  display: none;
}
body[data-design="rings"] .card-logo {
  width: 11cqw;
  height: auto;
}
body[data-design="rings"] .card-initials {
  font-size: max(7px, 1.4cqw);
  letter-spacing: 2px;
}
body[data-design="rings"] .identity {
  left: 5.7%;
  top: 31%;
  bottom: auto;
  max-width: 63%;
}
body[data-design="rings"] h1 {
  font-family: "DM Sans", sans-serif;
  font-size: 8.7cqw;
  line-height: 1;
  letter-spacing: -0.4cqw;
  font-weight: 500;
  text-shadow: 0 2px 14px #430c1770;
}
body[data-design="rings"] h1 span {
  font-style: normal;
}
.education {
  margin-top: 2.4cqw;
}
.education p {
  margin: 0;
  font-size: max(10px, 2.3cqw);
  line-height: 1.5;
  color: #ffe6da;
}
.education p + p {
  font-size: max(9px, 2.05cqw);
  color: #f9d2cb;
}
body[data-design="rings"] .card-bottom {
  left: 5.7%;
  right: 5.7%;
  bottom: 8%;
}
body[data-design="rings"] .card-bottom > span {
  font-size: max(7px, 1.4cqw);
  letter-spacing: 0.15cqw;
}
body[data-design="rings"] .seal {
  width: 6.4cqw;
  height: 6.4cqw;
  min-width: 22px;
  min-height: 22px;
  outline-offset: 3px;
  background: #efa48214;
}
body[data-design="rings"] .seal img {
  width: 4.2cqw;
  height: auto;
}
@media (max-width: 760px) {
  body[data-design="rings"] main {
    padding-top: 20px;
  }
  body[data-design="rings"] .business-card {
    border-radius: 16px;
  }
  body[data-design="rings"] .contact-panel {
    margin-top: 34px;
  }
}
@media (prefers-reduced-motion: reduce) {
  body[data-design="rings"] .business-card {
    transform: none;
  }
}

.card-stage {
  perspective: 1100px;
  position: relative;
  min-width: 0;
  touch-action: pan-y;
}
.card-stage::before {
  content: "";
  position: absolute;
  left: 9%;
  right: 4%;
  bottom: -6%;
  height: 20%;
  border-radius: 50%;
  background: #0008;
  filter: blur(25px);
  pointer-events: none;
}
.card-stage.is-tilting .business-card {
  transition-duration: 100ms;
}
@media (prefers-reduced-motion: reduce) {
  body[data-design="rings"] .business-card {
    will-change: auto;
  }
}

/* Inline preview keeps the portrait visible while the full image downloads. */
body[data-design="rings"] .portrait-preview {
  position: absolute;
  inset: 0;
  pointer-events: none;
}
