/* Separate phones float independently; the outer layer follows the pointer. */
.hero-art{height:610px;perspective:1100px}
.visual-hero{position:relative;height:100%;transform:rotateX(var(--rx,0deg)) rotateY(var(--ry,0deg));transition:transform .45s ease-out}
.floating-phone{position:absolute;width:43%;height:480px;filter:drop-shadow(0 25px 20px #28233329);transform-origin:50% 80%;animation:phone-drift 7s ease-in-out infinite;will-change:transform}
.floating-phone img{display:block;width:100%;height:100%;object-fit:contain}
.floating-phone.wedding{left:0;top:50px;--tilt:-10deg;--sway:2deg;z-index:1;animation-delay:-2s}
.floating-phone.love{left:29%;top:135px;--tilt:2deg;--sway:-2deg;z-index:3;animation-duration:8s;animation-delay:-4s}
.floating-phone.party{right:0;top:5px;--tilt:10deg;--sway:2deg;z-index:2;animation-duration:9s;animation-delay:-1s}
@keyframes phone-drift{0%,100%{transform:translateY(0) rotate(var(--tilt))}50%{transform:translateY(-16px) rotate(calc(var(--tilt) + var(--sway)))}}
.visual-grid{align-items:stretch}
.visual-card{display:flex;flex-direction:column}
.visual-card>img{width:100%;max-width:100%;height:auto;aspect-ratio:1 / 1;object-fit:contain;object-position:50% 50%;margin:0;padding:16px 0;flex-shrink:0}
.visual-caption{display:flex;flex-direction:column;flex:1}
.visual-caption h3{min-height:2.3em}
.visual-caption p{min-height:3.3em}
.visual-caption .style-choice{margin-top:auto}
@media(max-width:1100px) and (min-width:761px){.hero-art{height:540px}.floating-phone{height:400px}.floating-phone.love{top:120px}}
@media(max-width:760px){.hero-art{height:450px;width:100%;margin:24px 0 0}.floating-phone{width:38%;height:300px;filter:drop-shadow(0 15px 12px #28233324)}.floating-phone.wedding{top:55px;left:5%}.floating-phone.love{top:125px;left:31%}.floating-phone.party{top:25px;right:5%}.visual-caption h3,.visual-caption p{min-height:0}}
@media(max-width:370px){.hero-art{height:405px}.floating-phone{height:280px}.floating-phone.love{top:110px}}
@media(prefers-reduced-motion:reduce){.floating-phone{animation:none;transform:rotate(var(--tilt));will-change:auto}.visual-hero{transform:none;transition:none}}
