body.bloom{--paper:#fbf8f1;--ink:#404a40;--panel:#eeeee4;--line:#aab5a4;--rsvp:#e7eadd;--pink:#eed7d8;--blue:#d6e3ec;background:var(--paper);color:var(--ink);font:18px/1.7 Arial,sans-serif}body.bloom.hydrangea{--paper:#f7f8f5;--panel:#e9eff0;--ink:#344b51;--line:#a4b6ba;--rsvp:#e0e9e9}body.bloom.silk{--paper:#fff9f4;--panel:#f2e7e2;--ink:#604741;--line:#c1a7a0;--rsvp:#eedfda}.bloom *{box-sizing:border-box}.bloom [hidden]{display:none!important}.bloom h1,.bloom h2,.bloom h3{font-family:Georgia,'Times New Roman',serif;font-weight:400;letter-spacing:-.045em;line-height:1.1}.bloom h1{font-size:clamp(58px,6vw,94px)}.bloom h2{font-size:clamp(38px,4vw,60px)}.bloom h3{font-size:30px}.bloom p{font-size:18px;line-height:1.8}.bloom .eyebrow{font-size:16px;line-height:1.5;letter-spacing:.06em}.bloom .scene{position:relative;padding:85px 7vw;overflow:hidden}.bloom .hero{display:grid;grid-template-columns:1.2fr 1fr;gap:35px;align-items:center;min-height:820px;padding-top:100px;padding-bottom:100px}.bloom .hero-copy{min-width:0;position:relative;z-index:2}.bloom .hero .eyebrow{max-width:none;margin-bottom:30px}.bloom .subtitle{font-family:Georgia,serif;font-style:italic;font-size:30px;margin:26px 0;max-width:none}.bloom .date{font-size:19px;margin:26px 0}.bloom-art{width:100%;max-width:630px;justify-self:center;animation:petal-breath 9s ease-in-out infinite;transform-origin:50% 85%}.bloom-art img{display:block;width:100%;max-height:650px;object-fit:contain;filter:drop-shadow(0 9px 20px #3b4d3510)}.bloom .hero-foot{left:7vw;bottom:30px;font-size:16px}.bloom #music-toggle{position:absolute;right:25px;top:20px;background:transparent;color:var(--ink);border:1px solid var(--line);font-size:16px;padding:8px 16px;z-index:5}.bloom button,.bloom summary{font:inherit;min-height:48px}.bloom button{color:var(--paper);background:var(--ink);border:1px solid var(--ink);border-radius:30px}.bloom .toolbar{background:var(--paper);color:var(--ink);border-color:var(--line)}.bloom .toolbar button{font-size:16px}.bloom .intro{display:grid;grid-template-columns:.45fr 1fr;gap:60px;background:var(--panel);align-items:start;border-block:1px solid var(--line)}.bloom .intro-accent{font:italic 32px/1.4 Georgia,serif;border-top:1px solid var(--line);padding-top:20px}.bloom .intro-accent i{font-size:52px;line-height:1.3}.bloom .intro>div{max-width:850px}.bloom .intro h2{max-width:800px}.bloom .intro p{max-width:750px}.bloom .venue{display:flex;justify-content:center;gap:70px;align-items:center}.bloom .venue-copy{text-align:center;max-width:700px;border-block:1px solid var(--line);padding:35px 15px}.bloom .venue h2{margin-block:22px}.bloom .venue figure{flex:0 1 45%;margin:0}.bloom .venue img{width:100%;max-height:460px;object-fit:contain;border-radius:130px 130px 5px 5px}.bloom .program{display:grid;grid-template-columns:1fr 1.1fr;gap:65px;background:var(--panel)}.bloom .schedule-row{padding:24px 0;grid-template-columns:75px 1fr;gap:20px;border-bottom:1px solid var(--line);font-size:18px}.bloom .schedule-row time{font-size:18px}.bloom .invitation-details{text-align:center;background:var(--paper)}.bloom .details-copy{max-width:850px;margin:auto}.bloom .details-copy p{max-width:750px;margin-inline:auto}.bloom .details-subblock{max-width:750px;margin:35px auto 0;padding-top:28px;border-top:1px solid var(--line)}.bloom .details-subblock h3{font-size:30px}.bloom .gallery-section{text-align:center;background:var(--paper)}.bloom .gallery-section h2{max-width:800px;margin:0 auto 45px}.bloom .gallery{justify-content:center;gap:24px}.bloom .gallery figure{flex-basis:44%;max-width:44%;padding:12px;background:var(--panel);border:1px solid var(--line);border-radius:120px 120px 2px 2px;overflow:hidden}.bloom .gallery img{height:auto;max-height:540px;object-fit:contain}.bloom .photo-empty{padding:38px 24px;border:1px dashed var(--line);max-width:700px;margin:0 auto 24px}.photo-icon{font-size:32px;display:inline-flex;border:1px solid var(--ink);border-radius:8px;width:60px;height:45px;align-items:center;justify-content:center}.bloom .rsvp{background:var(--rsvp);text-align:center;border-block:1px solid var(--line)}.bloom .rsvp:before,.bloom .rsvp:after{display:none}.bloom .rsvp .eyebrow,.bloom .rsvp h2{margin-inline:auto}.bloom .rsvp details{max-width:650px;margin:30px auto 0}.bloom .rsvp summary{display:inline-flex;justify-content:center;align-items:center;min-height:52px;padding:14px 28px;border:1px solid var(--ink);border-radius:40px;background:var(--ink);color:var(--paper);cursor:pointer;list-style:none}.bloom #rsvp{font-size:18px;border:1px solid var(--line);background:var(--paper);color:var(--ink);padding:30px;border-radius:16px;margin-top:24px}.bloom #rsvp label{font-size:18px;line-height:1.6;text-align:left}.bloom #rsvp input,.bloom #rsvp textarea{font-size:18px;color:var(--ink);accent-color:var(--ink)}.bloom #rsvp .consent{display:grid;grid-template-columns:24px 1fr;gap:12px;align-items:start;margin:26px 0 28px;text-align:left}.bloom #rsvp .consent label{margin:0}.bloom #rsvp .consent input{width:19px;height:19px;margin-top:6px}.bloom .baby-vote{border:0;border-top:1px solid var(--line);margin:26px 0 0;padding:24px 0 5px;min-width:0}.bloom .baby-vote legend{font-size:20px;font-family:Georgia,serif;line-height:1.4;text-align:left;padding:0 10px 0 0;max-width:100%}.bloom #rsvp .baby-vote label{display:flex!important;align-items:center;gap:12px;min-height:48px;margin:10px 0!important;padding:9px 14px;border:1px solid var(--line);border-radius:10px;background:var(--paper)}.bloom #rsvp .baby-vote input{width:19px;height:19px;margin:0;flex:0 0 19px}.bloom .baby-vote label:has(:checked){outline:2px solid var(--ink);outline-offset:2px}.bloom #rsvp .preview-note,.bloom #rsvp-status{font-size:16px}.bloom .closing{text-align:center;padding:85px 25px 35px}.bloom .closing h2{max-width:850px;margin:auto;font-size:clamp(36px,4vw,60px)}.bloom .closing:before{content:'';display:block;width:120px;height:16px;margin:0 auto 35px;border-top:3px solid #c89599;border-bottom:3px solid #94b2c6;transform:rotate(-7deg)}.bloom footer{font-size:14px;text-align:center;padding:70px 20px 35px}.bloom :focus-visible{outline:3px solid var(--ink);outline-offset:5px}.bloom .invitation-carousel{display:flex!important;flex-wrap:nowrap!important;justify-content:flex-start;overflow-x:auto;scroll-snap-type:x mandatory;gap:0;scrollbar-width:none}.bloom .invitation-carousel>figure{flex:0 0 100%;max-width:none;display:flex;justify-content:center;scroll-snap-align:center;border:0;border-radius:0;background:transparent;padding:0}.bloom .invitation-carousel img{width:auto;max-width:100%}.bloom .invitation-carousel__controls{display:flex;justify-content:center;align-items:center;gap:18px;margin-top:25px}.bloom .invitation-carousel__controls button{width:48px;height:48px;padding:0}
.peony .hero:before{content:'';position:absolute;right:-8%;top:5%;width:50%;height:90%;border-radius:50%;background:radial-gradient(ellipse,#e7e9dd99,transparent 70%)}.hydrangea .hero{grid-template-columns:1fr;text-align:center;padding-top:85px;gap:15px;min-height:0;background:linear-gradient(160deg,#f8f7f3,#eaf0f0)}.hydrangea .hero-copy{width:min(100%,900px);margin:auto}.hydrangea .hero h1{font-size:clamp(56px,6vw,90px);max-width:850px;margin:auto}.hydrangea .bloom-art{max-width:520px;margin:0 auto 10px}.hydrangea .bloom-art img{max-height:420px}.hydrangea .hero-foot{position:static}.hydrangea .intro{background:var(--paper);border-top:0}.hydrangea .venue{background:var(--panel)}.hydrangea .program{background:var(--paper)}.hydrangea .gallery-section{background:var(--panel)}.silk .hero{grid-template-columns:1.3fr .8fr;padding-inline:9vw;background:linear-gradient(90deg,#fff9f4 65%,#f0e4df 65%)}.silk .hero-copy{border-block:1px solid var(--line);padding-block:38px}.silk .bloom-art{max-width:450px}.silk .subtitle{font-style:normal;letter-spacing:.03em;font-size:25px}.silk .intro{background:var(--paper);border-top:0}.silk .venue{background:var(--panel)}.silk .program{background:var(--paper);border-bottom:1px solid var(--line)}.silk .intro-accent{font-size:27px}
@keyframes petal-breath{0%,100%{rotate:-.6deg;translate:0 0}50%{rotate:.6deg;translate:0 -6px}}.bloom .scene:not(.hero)>div{transition:opacity .8s ease,translate .8s ease}.bloom .scene:not(.hero)>div.waiting{opacity:0;translate:0 24px}.bloom .scene:not(.hero)>div:nth-child(2){transition-delay:.15s}
@media(max-width:950px){.bloom .hero,.silk .hero{grid-template-columns:1fr;gap:25px;min-height:0}.bloom .hero-copy{max-width:720px;margin:auto}.bloom .bloom-art{max-width:450px}.bloom .intro,.bloom .program{grid-template-columns:1fr;gap:30px}.bloom .intro-accent br{display:none}.bloom .intro-accent i{font-size:38px}.bloom .venue{flex-direction:column}.bloom .venue figure{width:100%}.silk .hero{background:linear-gradient(#fff9f4 60%,#f0e4df)}.bloom .hero-foot{right:7vw;text-align:center}}
@media(max-width:600px){.bloom .scene{padding:48px 24px}.bloom .hero{padding:90px 24px 70px;text-align:center}.bloom h1,.hydrangea .hero h1{font-size:clamp(44px,12vw,64px);line-height:1.06}.bloom h2{font-size:38px}.bloom .hero .eyebrow{font-size:16px;letter-spacing:.025em}.bloom .subtitle{font-size:27px;margin-block:24px}.bloom .date{font-size:18px}.bloom .hero-foot{font-size:16px;line-height:1.5;bottom:18px;left:20px;right:20px}.bloom .bloom-art{max-width:330px}.bloom .bloom-art img{max-height:420px}.hydrangea .bloom-art img{max-height:290px}.bloom .intro-accent{font-size:27px}.bloom .schedule-row{grid-template-columns:60px 1fr;gap:14px}.bloom .gallery figure{max-width:100%;flex-basis:100%}.bloom .details-subblock h3{font-size:28px}.bloom #rsvp{padding:25px 18px}.bloom .rsvp summary{font-size:17px;padding:13px 20px}.bloom .toolbar{padding:12px;gap:9px;flex-wrap:wrap}.bloom .toolbar strong{font-size:16px}.silk .hero-copy{padding-block:28px}.bloom footer{font-size:14px}}
@media(prefers-reduced-motion:reduce){.bloom *{animation:none!important;transition:none!important;scroll-behavior:auto!important}.bloom .waiting{opacity:1!important;translate:none!important;transform:none!important}}
@media(max-width:950px){.bloom .intro-accent i{margin-inline-start:.2em}}
/* White peonies: distinct nursery still lifes for each illustrated scene. */
.peony .peony-detail-art{pointer-events:none;min-width:0;align-self:center}
.peony .peony-detail-art img{display:block;width:100%;height:auto;object-fit:contain}
.peony .intro{grid-template-columns:minmax(170px,.55fr) 1.45fr;align-items:center;gap:60px}
.peony .peony-booties{width:100%;max-width:240px;justify-self:center}
.peony .peony-cradle{width:29%;max-width:300px;flex-shrink:0}
.peony .venue:has(#venue-photo:not([hidden]))  .peony-cradle{display:none}
.peony .venue-copy{flex:0 1 650px}
.peony .program{align-items:center}
.peony .peony-rattle{width:270px;max-width:85%;margin:30px auto 0}
.peony .closing:before{display:none}
.peony .closing{display:grid;grid-template-columns:minmax(180px,310px) minmax(0,650px);align-items:center;justify-content:center;gap:45px;padding:70px 7vw;background:linear-gradient(125deg,#f0f0e7,var(--paper) 65%)}
.peony .peony-bear{width:100%;max-width:310px}
.peony .closing h2{font-size:clamp(34px,3.8vw,54px);line-height:1.2}
@media(max-width:950px){.peony .intro{grid-template-columns:1fr;gap:25px}.peony .peony-booties{max-width:180px}.peony .peony-cradle{width:230px}.peony .venue-copy{flex:auto}.peony .closing{grid-template-columns:minmax(140px,230px) minmax(0,1fr);gap:28px}}
@media(max-width:600px){.peony .peony-booties{max-width:150px}.peony .venue{gap:28px}.peony .peony-cradle{width:190px}.peony .peony-rattle{width:210px;margin-top:24px}.peony .closing{grid-template-columns:1fr;gap:25px;padding:48px 24px}.peony .peony-bear{width:220px;justify-self:center}.peony .closing h2{font-size:36px}}

.peony .intro.intro-text-only{grid-template-columns:minmax(0,850px);justify-content:center}
/* Gentle rocking around the cradle's runners, independent of scene reveals. */
.peony .peony-cradle img{transform-origin:50% 91%;animation:peony-cradle-rock 5s ease-in-out infinite}
@keyframes peony-cradle-rock{0%,100%{transform:rotate(-2deg)}50%{transform:rotate(2deg)}}
@media(prefers-reduced-motion:reduce){.peony .peony-cradle img{animation:none!important;transform:none}}
/* Unframed photo gallery for White Peonies. */
.peony .gallery figure{padding:0;border:0;border-radius:0;background:transparent;box-shadow:none}
.peony .gallery img{display:block;width:100%;height:auto;border-radius:0;object-fit:contain}
.peony .gallery.invitation-carousel img{width:auto;max-width:100%}
