:root{color-scheme:dark;--plum:#30232d;--rose:#edd3d8;--gold:#d8bd85;--white:#fff8fa}
*{box-sizing:border-box}
html{min-height:100%;background:var(--plum)}
body{margin:0;color:var(--white);font-family:Commissioner,Arial,sans-serif;-webkit-font-smoothing:antialiased}
body::before{content:"";position:fixed;inset:0;pointer-events:none;background:linear-gradient(115deg,rgba(48,35,45,.85),rgba(70,40,56,.7)),url('/coming-soon-assets/wine-waves.webp') center/cover;z-index:-1}
.curtain{min-height:100svh;padding:clamp(38px,7vh,84px) 24px 30px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;isolation:isolate;position:relative;overflow:hidden}
.curtain::before,.curtain::after{content:"";position:absolute;width:48vw;min-width:240px;height:130%;top:-15%;border:1px solid rgba(216,189,133,.1);border-radius:50%;pointer-events:none;z-index:-1;transform:rotate(15deg)}
.curtain::before{left:-37vw}.curtain::after{right:-37vw;transform:rotate(-15deg)}
.identity{color:var(--gold);width:min(300px,75vw);aspect-ratio:2/1;position:relative;overflow:hidden;animation:appear 1.3s ease both}
.brand-logo{display:block;position:absolute;top:50%;left:0;width:100%;height:auto;transform:translateY(-56.75%)}
.monogram{display:block;width:clamp(76px,12vh,120px);margin:0 auto 10px;animation:appear 1.3s ease both}
.wordmark{display:block;width:100%;overflow:visible;fill:var(--gold);stroke:var(--gold);stroke-width:.6;stroke-dasharray:600;animation:write 3.6s ease both}
.message{margin-top:clamp(32px,6vh,66px);animation:appear 1.1s .5s ease both}
.invitation{font-size:14px;color:var(--rose);margin:0 0 15px;font-weight:400}
h1{font-family:'Cormorant Garamond',Georgia,serif;font-size:clamp(37px,5vw,64px);font-weight:500;line-height:1.12;letter-spacing:-.02em;margin:0 0 22px}
.description{font-size:clamp(15px,1.5vw,18px);line-height:1.8;font-weight:400;color:var(--rose);margin:0 auto;max-width:38ch}
footer{font-size:12px;color:var(--rose);margin-top:clamp(45px,10vh,105px);opacity:.8}
@keyframes write{0%{fill:transparent;stroke-dashoffset:600;opacity:.35}65%{fill:transparent;opacity:1}100%{stroke-dashoffset:0;fill:var(--gold)}}
@keyframes appear{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
@media(max-width:380px){.curtain{padding-inline:18px}.wide-break{display:none}.description{max-width:28ch}}
@media(max-height:580px){.curtain{padding-block:24px}.monogram{width:62px}.identity{max-width:320px}.message{margin-top:24px}footer{margin-top:30px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important}}
