.wildflower-meadow {
  --paper: #faf7ed;
  --ink: #3f4a35;
  --line: #c6c6af;
  --rose: #845768;
  --edge: clamp(21px,8vw,130px);
  font-size: 15px;
  overflow-wrap: anywhere;
}
.wildflower-meadow .occasion-nav { text-transform: uppercase; padding-inline: var(--edge); }
.wildflower-meadow .overline { text-transform: uppercase; letter-spacing: .18em; }
.wm-cover { isolation: isolate; position: relative; display: grid; align-items: center; grid-template-columns: minmax(0,.9fr) minmax(0,1.1fr); gap: 10%; margin: clamp(23px,5vw,74px) var(--edge) 0; }
.wm-cover::after { content: ""; position: absolute; pointer-events: none; inset: 4% 0 -8% 32%; background: url('/art/wildflower-stems.svg') left bottom / clamp(110px,22vw,300px) auto no-repeat; z-index: 2; }
.wm-title { position: relative; z-index: 3; text-align: center; }
.wm-title h1 { font-size: clamp(58px,9vw,133px); line-height: .88; letter-spacing: -.05em; margin-block: 17px 24px; }
.wm-title h1 span, .wm-title h1 i { display: block; }
.wm-title h1 i { font-size: .5em; color: var(--rose); margin-block: .18em; }
.wm-title .cover-date { margin-top: 0; letter-spacing: .14em; }
.wm-title a { display: inline-block; margin-top: 15px; border-bottom: 1px solid var(--line); font-size: 10px; text-transform: uppercase; letter-spacing: .13em; }
.wm-cover figure { border-radius: 49% 49% 0 0 / 32% 32% 0 0; background: #e8dfd0; padding: 6px; }
.wm-cover img { aspect-ratio: 4/5; height: auto; object-position: center 38%; border-radius: inherit; }
.wm-note.welcome { max-width: 800px; padding-top: clamp(57px,10vw,145px); }
.wm-note h2 i, .wm-note .sign { color: var(--rose); }
.wm-note > p:not(.overline), .wm-dress > p:not(.overline) { white-space: pre-line; }
.wm-date { background: #ecead9; padding: clamp(27px,6vw,73px) var(--edge); text-align: center; }
.wm-date .overline { margin: 0 0 10px; }
.wm-date h2 { font-size: clamp(36px,6vw,83px); }
.wm-date .digits { display: grid; grid-template-columns: repeat(4,minmax(0,75px)); gap: 9px; }
.wm-date .digits b { min-width: 0; font-size: clamp(31px,5vw,55px); }
.wm-date .digits span { letter-spacing: .06em; }
.wm-place { margin: clamp(42px,8vw,115px) var(--edge) 0; display: grid; grid-template-columns: minmax(0,.85fr) minmax(0,1fr); align-items: center; gap: clamp(15px,7vw,105px); }
.wm-place img { height: auto; aspect-ratio: 4/3; object-position: center 36%; }
.wm-place .location-copy { padding: 0; }
.wm-place h2 { font-size: clamp(36px,6vw,80px); }
.wildflower-meadow .schedule { width: calc(100% - 2 * var(--edge)); max-width: none; display: block; padding-inline: 0; }
.wildflower-meadow .section-title { text-align: center; margin-bottom: 26px; }
.wildflower-meadow .schedule ol { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: clamp(12px,2vw,26px); }
.wildflower-meadow .schedule li { display: block; padding: 13px 0; border-block: 1px solid var(--line); }
.wildflower-meadow .event-number { display: none; }
.wildflower-meadow .schedule time { display: block; color: var(--rose); margin-bottom: 9px; }
.wildflower-meadow .schedule li p { font-size: 13px; }
.wm-dress.dress { background: #efe4e0; padding-block: clamp(43px,7vw,90px); }
.wildflower-meadow .response { width: calc(100% - 2 * var(--edge)); grid-template-columns: repeat(2,minmax(0,1fr)); padding-inline: 0; border: 0; gap: clamp(25px,6vw,84px); }
.wildflower-meadow .response button { min-height: 44px; }
.wm-footer { padding: clamp(54px,10vw,132px) 22px; background: url('/art/wildflower-stems.svg') 5% bottom / min(24vw,215px) auto no-repeat,#e6e8d5; }
.wm-footer > span { font-size: clamp(42px,8vw,100px); line-height: 1; }
.wm-opening[hidden] { display: none; }
.wm-opening { --opening-ready: 1; inset: 0; width: 100%; height: 100%; max-width: none; max-height: none; padding: 0; border: 0; background: #f5f0e2; color: var(--ink); }
.wm-opening[open] { display: grid; }
.wm-opening::backdrop { background: transparent; }
.wm-flowers { position: absolute; inset: 0; overflow: clip; pointer-events: none; }
.wm-flowers i { position: absolute; bottom: -10%; width: min(45vw,490px); height: 93%; background: url('/art/wildflower-stems.svg') bottom center / contain no-repeat; transform-origin: bottom center; }
.wm-flowers i:first-child { left: -3%; transform: rotate(14deg); }
.wm-flowers i:nth-child(2) { right: -4%; transform: rotate(-13deg); }
.wm-flowers i:last-child { bottom: -32%; left: 34%; height: 61%; opacity: .58; }
.wm-intro { position: relative; width: min(84%,670px); margin: auto; padding: 19px; text-align: center; background: #faf7ede8; }
.wm-intro h2 { font-size: clamp(38px,8vw,93px); }
.wm-intro p { margin: 7px 0; }
.wm-intro button { min-height: 44px; padding: 8px 15px; background: transparent; border: 0; color: var(--ink); }
.wm-intro [data-open] { border: 1px solid var(--ink); margin-top: 9px; }
.wm-intro form button { text-decoration: underline; text-underline-offset: .3em; }
.wm-opening.is-opening .wm-flowers i { animation: wm-sway 1.55s ease-in-out both; }
.wm-opening.is-opening .wm-flowers i:nth-child(2) { animation-name: wm-sway-right; animation-delay: 85ms; }
.wm-opening.is-opening .wm-flowers i:last-child { animation-name: wm-sink; animation-delay: 130ms; }
@keyframes wm-sway { 24% { transform: rotate(19deg); } to { transform: translateX(-40%) rotate(-38deg); opacity: 0; } }
@keyframes wm-sway-right { 23% { transform: rotate(-18deg); } to { transform: translateX(40%) rotate(38deg); opacity: 0; } }
@keyframes wm-sink { to { transform: translateY(40%); opacity: 0; } }
@media(max-width:700px) {
  .wm-cover { grid-template-columns: minmax(0,1fr); gap: 19px; }
  .wm-cover figure { width: 83%; justify-self: end; }
  .wm-cover img { aspect-ratio: 5/4; }
  .wm-cover::after { inset: 35% 0 -10% -8%; background-size: 120px auto; }
  .wm-place, .wildflower-meadow .response { grid-template-columns: minmax(0,1fr); }
  .wildflower-meadow .schedule ol { grid-template-columns: repeat(2,minmax(0,1fr)); }
}
@media(prefers-reduced-motion:reduce) { .wm-opening * { animation: none !important; } }

.wm-cover img[src$="/wildflower-meadow.webp"],
.wm-place img[src$="/wildflower-meadow.webp"] { object-position: center 56%; }
