/* Unique photographic decorations for the wine invitation only. */
.decorative{pointer-events:none;object-fit:contain;height:auto}.theme-wine .intro{padding-top:40px}.intro-bouquet{width:300px;max-width:75%;margin:0 auto 28px}.envelope-art{width:100%;align-self:center;filter:drop-shadow(0 12px 16px #45201912)}.theme-wine .closing:before{display:none}.rings-art{width:210px;margin:0 auto 35px}.theme-wine .program{padding-bottom:110px}.program-art{position:absolute;width:150px;left:9%;bottom:5px;opacity:.95}.theme-wine .program .copy{position:relative}.theme-wine .outfit{grid-template-columns:1fr 1fr}.fabric-art{width:220px;grid-column:2;grid-row:1;margin:auto}.theme-wine .outfit .palette{grid-column:2;grid-row:2;margin-top:0}.theme-wine .outfit .copy{grid-column:1;grid-row:1/3}.decorative{transition:opacity .8s ease,translate .8s ease}.scene.reveal-ready:not(.visible)>.decorative{opacity:0;translate:0 10px}@container(max-width:620px){.intro-bouquet{width:240px;margin-bottom:24px}.envelope-art{width:240px;max-width:90%;margin:0 auto 30px}.rings-art{width:180px}.theme-wine .program{padding-bottom:52px}.program-art{position:static;width:120px;margin:0 auto 24px}.fabric-art{width:190px;margin:28px auto 24px}.theme-wine .outfit .palette{margin-top:24px}}@media(prefers-reduced-motion:reduce){.decorative{transition:none!important;opacity:1!important;translate:none!important}}
/* Greeting: generous floral composition on the left, editable copy on the right. */
.theme-wine .intro{display:grid;grid-template-columns:42% minmax(0,1fr);align-items:center;gap:24px;padding:64px 6% 64px 0;text-align:left}.theme-wine .intro-bouquet{width:135%;max-width:none;margin:0 0 0 -28%;transform:rotate(20deg)}.theme-wine .intro .copy{grid-column:2}.theme-wine .intro h2{text-align:left}.theme-wine .intro p{margin:0;max-width:none}
@container(max-width:620px){.theme-wine .intro{grid-template-columns:35% minmax(0,1fr);gap:18px;padding:56px 24px 56px 0}.theme-wine .intro-bouquet{width:175%;margin-left:-69%;transform:rotate(35deg)}.theme-wine .intro h2{font-size:32px}.theme-wine .intro p{font-size:18px}}
@container(max-width:380px){.theme-wine .intro{grid-template-columns:27% minmax(0,1fr);gap:14px;padding-right:20px}.theme-wine .intro-bouquet{width:240%;margin-left:-135%}.theme-wine .intro h2{font-size:29px}}
@container(max-width:620px){.theme-wine .intro-bouquet{width:130%;margin-left:-25%;transform:rotate(65deg)}}
.theme-wine .intro-bouquet{scale:1.1;transform-origin:50% 50%}.theme-wine .rings-art{width:290px;max-width:85%}.theme-wine .outfit .palette{grid-row:1}.theme-wine .palette span:before{margin-bottom:0}
.clock-art{position:relative;width:240px;margin:0 0 26px 12%;transform:rotate(13deg);height:auto}.clock-art svg{width:100%;display:block;overflow:visible}.theme-wine .program{padding-bottom:70px}.clock-hour,.clock-minute,.clock-second{transform-origin:208px 260px}.clock-hour{animation:clock-hour-turn 43200s linear infinite}.clock-minute{animation:clock-minute-turn 3600s linear infinite}.clock-second{animation:clock-second-turn 60s steps(60,end) infinite}@keyframes clock-hour-turn{from{transform:rotate(305deg)}to{transform:rotate(665deg)}}@keyframes clock-minute-turn{from{transform:rotate(60deg)}to{transform:rotate(420deg)}}@keyframes clock-second-turn{from{transform:rotate(180deg)}to{transform:rotate(540deg)}}
.candle-scene{display:block;overflow:visible}.candle-flame{animation:candle-flicker 2.8s ease-in-out infinite alternate}.flame-1{animation-duration:2.3s;animation-delay:-1s}.flame-2{animation-duration:3.2s;animation-delay:-1.8s}@keyframes candle-flicker{0%,100%{transform:rotate(-3deg) scaleX(.92);opacity:.94}35%{transform:rotate(2deg) scaleY(1.035);opacity:1}70%{transform:rotate(-1deg) scaleX(1.05);opacity:.96}}
@container(max-width:620px){.clock-art{width:235px;max-width:80%;margin:0 8% 30px auto}.theme-wine .rings-art{width:260px}.theme-wine .outfit .palette{margin-top:30px}.theme-wine .intro-bouquet{scale:1.08}}
@media(prefers-reduced-motion:reduce){.clock-hour{animation:none;transform:rotate(305deg)}.clock-minute{animation:none;transform:rotate(60deg)}.clock-second{animation:none;transform:rotate(180deg)}.candle-flame{animation:none;transform:none;opacity:1}}
.clock-art{margin-left:auto;margin-right:12%}
/* Sparse white rose petals: phone viewport only, confined to the cover. */
.rose-petals{display:none;position:absolute;inset:0;overflow:hidden;pointer-events:none;z-index:1;contain:strict}
@media(max-width:760px) and (prefers-reduced-motion:no-preference){.rose-petals{display:block}.rose-petals i{position:absolute;left:var(--x);top:-8%;width:var(--size);height:calc(var(--size)*1.35);border-radius:75% 22% 65% 30%;background:radial-gradient(ellipse at 28% 22%,#fffef9 12%,#f2e9db 65%,#d6c6b2 100%);box-shadow:inset 1px 1px 2px #ffffffb3,0 1px 3px #170a141a;animation:rose-petal-fall var(--duration) linear var(--delay) infinite;opacity:0}.rose-petals i:nth-child(3n){border-radius:28% 75% 38% 65%}.hero.petals-paused .rose-petals i{animation-play-state:paused}}
@keyframes rose-petal-fall{0%{top:-8%;opacity:0;transform:translateX(0) rotate(-25deg) rotateY(0)}8%{opacity:.7}35%{transform:translateX(var(--drift)) rotate(45deg) rotateY(55deg)}65%{transform:translateX(calc(var(--drift)*-.4)) rotate(110deg) rotateY(-35deg);opacity:.62}92%{opacity:.5}100%{top:104%;opacity:0;transform:translateX(var(--drift)) rotate(185deg) rotateY(35deg)}}
@media(prefers-reduced-motion:reduce){.rose-petals{display:none!important}}
@media(max-width:760px) and (prefers-reduced-motion:no-preference){.rose-petals i,.rose-petals i:nth-child(3n){width:calc(var(--size)*1.6);height:calc(var(--size)*1.6);background:transparent url("assets/white-rose-petal.7af28d609c01.webp") center/contain no-repeat;border-radius:0;box-shadow:none;filter:drop-shadow(0 1px 1px #16081018)}.rose-petals i:nth-child(even){scale:-1 1}}
/* Match the desktop edge-cropped bouquet on phones. */
@media(max-width:760px){.theme-wine .intro-bouquet{position:absolute;width:290px;max-width:none;left:-162px;top:50%;margin:0;transform:translateY(-50%) rotate(65deg);scale:1;transform-origin:center}.theme-wine .intro{grid-template-columns:31% minmax(0,1fr);gap:14px;padding-right:20px}}
@media(min-width:400px) and (max-width:760px){.theme-wine .intro-bouquet{width:350px;left:-183px}.theme-wine .intro{grid-template-columns:34% minmax(0,1fr)}}
@media(max-width:399px){.theme-wine .intro-bouquet{left:-88px}}
@media(min-width:400px) and (max-width:760px){.theme-wine .intro-bouquet{left:-100px}}
/* Larger envelope, with room reserved between the illustration and copy. */
.theme-wine .invitation-details{grid-template-columns:1fr 1.25fr;padding-inline:6%;gap:36px}.theme-wine .envelope-art{width:115%;max-width:none;margin-left:-8%}
@container(max-width:620px){.theme-wine .invitation-details{padding-inline:26px}.theme-wine .envelope-art{width:310px;max-width:100%;margin:0 auto 30px}}
/* Long names wrap inside the clear centre of the candle composition. */
.theme-wine .hero .copy h1{
 width:100%;
 max-width:11ch;
 margin-inline:auto;
 text-align:center;
 white-space:normal;
 text-wrap:balance;
 overflow-wrap:anywhere;
 hyphens:none;
 line-height:1.12;
}
