/* Sculptural oil flowers. Artwork stays in its own space around the typesetting. */
.oil-flower{position:absolute;aspect-ratio:1;pointer-events:none;user-select:none;transform-origin:50% 72%}
.oil-flower img{width:100%;height:100%;object-fit:contain;pointer-events:none;-webkit-user-drag:none}
.hero-flower-ivory{z-index:2;width:clamp(300px,36vw,570px);right:-7%;bottom:68px;transform:rotate(-12deg)}
.hero-flower-wine{z-index:2;width:clamp(200px,23vw,360px);right:21%;bottom:54px;transform:rotate(17deg)}
.story-flower-wine{z-index:2;width:clamp(310px,39vw,580px);left:-17%;bottom:76px;transform:rotate(-17deg)}
html[data-art-motion=on] .oil-flower[data-scene-flower]{opacity:0}
html[data-art-motion=on] .art-active .oil-flower[data-scene-flower]{will-change:transform,opacity}
.floral-composition{position:relative;isolation:isolate;pointer-events:none;user-select:none}
.floral-composition .oil-flower{z-index:2}
.floral-arch{position:absolute;z-index:0;inset:6% 17% 7%;border:1px solid #916b4560;border-radius:50% 50% 0 0 / 38% 38% 0 0;transform-origin:center bottom}
.floral-arch::after{content:'';position:absolute;inset:9px;border:1px solid #916b452e;border-radius:inherit}
.atelier-flowers{width:min(100%,470px);aspect-ratio:1.08;margin-top:40px}
.atelier-flowers .bouquet-ivory{width:79%;left:-11%;bottom:-3%;transform:rotate(-17deg)}
.atelier-flowers .bouquet-wine{width:58%;right:-3%;bottom:1%;transform:rotate(21deg)}
.floral-gilding{position:absolute;z-index:1;width:43%;height:85%;right:7%;top:-6%;object-fit:contain;transform:rotate(12deg);opacity:.75}
.floral-initial{position:absolute;z-index:1;left:31%;top:-5%;font-family:Ballet,var(--text);font-size:clamp(5rem,10vw,9rem);line-height:1.45;color:var(--wine)}
.approach{overflow:hidden}
.invitation-intro{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(0,1fr);gap:28px;align-items:center}
.invitation h2{font-size:clamp(2.8125rem,5vw,5.75rem)}
.invitation-flowers{width:100%;aspect-ratio:1}
.invitation-flowers .floral-arch{inset:4% 8% 6%;border-color:#caa98473;transform:rotate(9deg)}
.invitation-flowers .floral-arch::after{border-color:#caa98438}
.invitation-flowers .bouquet-ivory{width:95%;right:-12%;top:-4%;transform:rotate(9deg)}
.invitation-flowers .bouquet-wine{width:73%;left:-9%;bottom:-6%;transform:rotate(-23deg)}
.invitation-ornament{width:clamp(250px,37vw,580px);right:-8%;top:0}
.invitation-ornament img{opacity:.22}
.invitation-bottom{position:relative;margin-top:48px}
/* A slow, staggered emergence; the last frame is the ordinary static composition. */
.floral-composition.will-appear,.floral-composition.will-appear.is-visible{opacity:1;transform:none;transition:none}
.floral-composition .oil-flower img{transform-origin:50% 75%;transition:opacity 1.4s cubic-bezier(.2,.65,.25,1),transform 1.7s cubic-bezier(.16,1,.3,1)}
.floral-composition .bouquet-ivory img{transition-delay:calc(var(--reveal-delay,0ms) + 100ms)}
.floral-composition .bouquet-wine img{transition-delay:calc(var(--reveal-delay,0ms) + 250ms)}
.floral-composition.will-appear:not(.is-visible) .oil-flower img{opacity:0;transform:translate3d(0,48px,0) rotate(-8deg) scale(.91)}
.floral-composition.will-appear:not(.is-visible) .bouquet-wine img{transform:translate3d(0,62px,0) rotate(10deg) scale(.9)}
.floral-composition .floral-arch,.floral-composition .floral-gilding,.floral-composition .floral-initial{transition:opacity 1.5s ease;transition-delay:var(--reveal-delay,0ms)}
.floral-composition.will-appear:not(.is-visible) .floral-arch,.floral-composition.will-appear:not(.is-visible) .floral-gilding,.floral-composition.will-appear:not(.is-visible) .floral-initial{opacity:0}
.chapter-flower{position:absolute;width:min(45vw,670px);max-width:none;aspect-ratio:1;height:auto;object-fit:contain;pointer-events:none}
.chapter-leaf-left .chapter-flower{left:-18%;bottom:-12%;transform:rotate(-16deg)}
.chapter-leaf-right .chapter-flower{right:-20%;top:-14%;transform:rotate(22deg)}
@media(min-width:1800px){.hero-flower-ivory{right:calc((100vw - 1760px)/2 - 100px)}.hero-flower-wine{right:calc((100vw - 1760px)/2 + 300px)}.story-flower-wine{left:calc((100vw - 1760px)/2 - 155px)}}
@media(max-width:1100px){.hero-flower-ivory{right:-10%;width:40vw}.hero-flower-wine{right:20%;width:25vw;min-width:210px}.invitation-intro{gap:15px}.atelier-flowers{margin-top:30px}}
@media(max-width:820px){
  .hero-flower-ivory{width:55vw;right:-13%;bottom:100px}.hero-flower-wine{width:36vw;right:auto;left:8%;bottom:90px}
  .story-flower-wine{width:46vw;left:-15%;bottom:10px}
  .invitation-intro{grid-template-columns:1fr;gap:25px}.invitation h2{font-size:3.9375rem}
  .invitation-flowers{width:min(82%,440px);justify-self:center;aspect-ratio:1.2;margin-block:10px 0}
  .invitation-ornament{width:360px;top:24%;right:-100px}.invitation-bottom{margin-top:35px}
  .atelier-flowers{aspect-ratio:.96}.floral-initial{font-size:5rem;left:28%;top:-1%}
}
@media(max-width:600px){
  .hero-flower-ivory{width:72vw;right:-18%;bottom:190px}.hero-flower-wine{width:49vw;min-width:0;left:-10%;bottom:205px}
  .story-flower-wine{width:55vw;left:-22%;bottom:20px}
  .atelier-flowers{width:min(100%,390px);aspect-ratio:1.15;margin:32px auto 8px}
  .atelier-flowers .bouquet-ivory{left:-5%;width:76%}.atelier-flowers .bouquet-wine{right:0}
  .floral-initial{font-size:6rem;left:34%;top:-10%}.floral-gilding{right:12%}
  .invitation h2{font-size:clamp(2.0625rem,8.9vw,3.0625rem)}
  .invitation-intro{gap:28px}.invitation-flowers{width:93%;max-width:360px;aspect-ratio:1.16;margin:0 auto 8px}
  .invitation-flowers .bouquet-ivory{right:-8%;width:90%}.invitation-flowers .bouquet-wine{left:-6%;width:71%}
  .invitation-ornament{width:300px;top:20%;right:-100px}.invitation-bottom{margin-top:25px}
  .chapter-flower{width:82vw}.chapter-leaf-left .chapter-flower{left:-76%;bottom:-4%}.chapter-leaf-right .chapter-flower{right:-76%;top:-4%}
}
@media(max-width:360px){.invitation h2{font-size:1.875rem}.floral-initial{font-size:5rem}}
html[data-art-motion=off] .floral-composition .oil-flower img{opacity:1;transform:none}
@media(prefers-reduced-motion:reduce){
  .oil-flower[data-scene-flower]{opacity:1!important}
  .floral-composition .oil-flower img{opacity:1!important;transform:none!important}
  .floral-composition .floral-arch,.floral-composition .floral-initial{opacity:1!important}
  .floral-composition .floral-gilding{opacity:.75!important}
}
