/* Five distinct flower fairies, each rooted in her own blossom. */
.flower-ball .fairy-flower{margin:0;position:relative;pointer-events:none;isolation:isolate;min-width:0}
.flower-ball .fairy-flower img{display:block;width:100%;height:auto;object-fit:contain;transform-origin:50% 92%;animation:flower-fairy-sway 7s ease-in-out infinite}
.flower-ball .fairy-flower::after{content:'';position:absolute;inset:12% 14% 35%;pointer-events:none;background:radial-gradient(circle at 15% 38%,#fffbe1 0 2px,transparent 4px),radial-gradient(circle at 84% 15%,#fffbe1 0 2px,transparent 4px),radial-gradient(circle at 78% 85%,#fffbe1 0 1px,transparent 3px);animation:fairy-pollen 5s ease-in-out infinite;opacity:.5}
.flower-ball .fairy-lilac img{animation-delay:-3s;animation-duration:8s}.flower-ball .fairy-blue img{animation-delay:-4s;animation-duration:9s}.flower-ball .fairy-gold img{animation-delay:-1s;animation-duration:8.5s}.flower-ball .fairy-mint img{animation-delay:-5s;animation-duration:10s}
.flower-ball .hero .fairy-garden{width:min(540px,80%);max-width:none;position:relative;margin:10px auto 0;display:block;animation:none}
.flower-ball .fairy-garden>img{width:100%;height:auto;margin:0}
.flower-ball .intro{display:grid;grid-template-columns:minmax(180px,.65fr) minmax(0,1.35fr);align-items:center;gap:35px;padding:70px 10% 40px}
.flower-ball .intro .fairy-blue{max-width:310px;justify-self:center}.flower-ball .intro h2{font-size:clamp(38px,4.4vw,64px)}
.flower-ball .venue{display:grid;grid-template-columns:minmax(180px,.65fr) minmax(0,1.5fr);align-items:center;gap:40px;padding:45px 8% 20px 3%}
.flower-ball .venue .fairy-gold{max-width:300px}.flower-ball .venue h2{font-size:clamp(38px,4.5vw,64px)}
.flower-ball .closing .fairy-mint{width:min(100%,370px);justify-self:center}
@keyframes flower-fairy-sway{0%,100%{transform:rotate(-1.5deg) translateY(0)}50%{transform:rotate(1.5deg) translateY(-5px)}}
@keyframes fairy-pollen{0%,100%{opacity:.2;transform:translateY(4px)}50%{opacity:.8;transform:translateY(-5px)}}
@media(max-width:760px){
.flower-ball .hero .fairy-garden{width:110%;margin:20px -5% 0}
.flower-ball .intro{display:flex;flex-direction:column;gap:10px;padding:40px 8% 30px}.flower-ball .intro .fairy-blue{width:210px}.flower-ball .intro>div{width:100%}
.flower-ball .venue{display:flex;flex-direction:column;gap:10px;padding:50px 8% 20px}.flower-ball .venue .fairy-gold{width:210px}
.flower-ball .closing .fairy-mint{width:260px;margin:25px auto 0}
}
@media(prefers-reduced-motion:reduce){.flower-ball .fairy-flower img,.flower-ball .fairy-flower::after{animation:none;transform:none}.flower-ball .fairy-flower::after{opacity:.45}}
.flower-ball .fairy-resting img,.flower-ball .fairy-resting::after{animation-play-state:paused}

/* Requested side compositions; mirror the wrapper so the sway remains intact. */
.flower-ball .invitation-details{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(170px,.7fr);gap:30px;align-items:center;margin:15px 7% 65px;padding:35px 4% 35px 7%}
.flower-ball .invitation-details .fairy-lilac{width:100%;max-width:270px;justify-self:end;transform:scaleX(-1)}
.flower-ball .program{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(180px,.65fr);gap:40px;align-items:center;padding:35px 4% 65px 10%}
.flower-ball .program .fairy-rose{width:100%;max-width:300px;justify-self:end}
.flower-ball .details-copy,.flower-ball .program-copy{min-width:0}
@media(max-width:760px){
.flower-ball .invitation-details{grid-template-columns:minmax(0,1fr);gap:12px;margin:10px 6% 45px;padding:35px 8% 20px}
.flower-ball .invitation-details .fairy-lilac{width:190px;justify-self:end}
.flower-ball .venue{align-items:stretch;padding:40px 8% 25px;gap:20px}
.flower-ball .venue .fairy-gold{align-self:flex-start;width:190px}
.flower-ball .program{grid-template-columns:minmax(0,1fr);padding:25px 8% 45px;gap:15px}
.flower-ball .program .fairy-rose{width:200px;justify-self:end}
}
/* Centre the schedule as a group, with a consistent left edge for every time. */
.flower-ball .program .plan-text{width:fit-content;max-width:100%;margin-inline:auto;text-align:left;font-variant-numeric:tabular-nums;white-space:pre-line}
