.hero-visual.has-hero-3d {
  min-height: 560px;
  position: relative;
  background: radial-gradient(ellipse at 50% 46%, #edf1e5 0%, rgba(237,241,229,.45) 42%, transparent 72%);
}
.hero-3d-stage { position: absolute; inset: 0; z-index: 3; opacity: 0; pointer-events: none; }
.hero-3d-stage canvas { width: 100%; height: 100%; display: block; }
.hero-3d-ready .hero-3d-stage { opacity: 1; }
.hero-3d-ready > .phone, .hero-3d-ready > .hero-stamp { visibility: hidden; }
@media (max-width: 719px) {
  .hero-visual.has-hero-3d { min-height: 340px; padding: 14px 34px; overflow: visible; }
}
@media (prefers-reduced-motion: reduce) {
  .hero-3d-stage { display: none; }
  .hero-3d-ready > .phone, .hero-3d-ready > .hero-stamp { visibility: visible; }
}
