@import "https://fonts.googleapis.com/css2?family=Cormorant+Garamond:wght@400;500;600&family=Great+Vibes&family=Montserrat:wght@400;500;600&display=swap";
.watercolor-invitation{--wine:#7d1831;--ink:#213d43;--paper:#f7f1e7;--blue:#a8cbd1;--rose:#d7a29b;min-height:100vh;color:var(--ink);box-sizing:border-box;background:#ece5dc;font-family:Cormorant Garamond,serif}.watercolor-invitation *{box-sizing:border-box}.watercolor-invitation .envelope-screen{text-align:center;background:radial-gradient(circle at 50% 30%,#fffaf2 0,#f0e5d8 70%);place-content:center;min-height:100svh;padding:30px;display:grid;position:relative;overflow:hidden}.watercolor-invitation .eyebrow{text-transform:uppercase;letter-spacing:.3em;font-family:Montserrat,sans-serif;font-size:11px;font-weight:600}.watercolor-invitation .envelope{cursor:pointer;filter:drop-shadow(0 24px 28px #513a2f32);width:min(82vw,420px);height:270px;margin:60px auto 45px;transition:all .5s;position:relative}.watercolor-invitation .envelope:hover{transform:translateY(-8px)}.watercolor-invitation .letter{height:220px;color:var(--wine);background:#fffaf2;padding:40px 20px;position:absolute;top:-38px;left:7%;right:7%;box-shadow:0 0 0 1px #b99d7e55}.watercolor-invitation .letter span{text-transform:uppercase;letter-spacing:.3em;font:10px Montserrat;display:block}.watercolor-invitation .letter strong{margin-top:24px;font:54px Great Vibes;display:block}.watercolor-invitation .letter i{font-style:italic;font-weight:400}.watercolor-invitation .pocket{clip-path:polygon(0 0,50% 52%,100% 0,100% 100%,0 100%);background:#dec9b6;position:absolute;inset:0}.watercolor-invitation .flap{clip-path:polygon(0 0,100% 0,50% 56%);z-index:2;background:#ead9c9;position:absolute;inset:0}.watercolor-invitation .seal{z-index:4;color:#ecd9bd;background:#7d1831;border:3px double #c79b75;border-radius:50%;place-items:center;width:62px;height:62px;font:18px Cormorant Garamond;display:grid;position:absolute;top:47%;left:50%;transform:translate(-50%,-50%);box-shadow:0 5px 14px #0003}.watercolor-invitation .open-button,.watercolor-invitation .rsvp button{background:var(--wine);color:#fff;text-transform:uppercase;letter-spacing:.16em;cursor:pointer;border:0;padding:16px 25px;font:600 11px Montserrat}.watercolor-invitation .open-button span{padding-left:18px}.watercolor-invitation .envelope-screen small{color:#776b64;margin-top:18px;font:10px Montserrat;display:block}.watercolor-invitation .petals:before,.watercolor-invitation .petals:after{content:"";opacity:.3;background:radial-gradient(at 30% 20%,#c9898d 0 8%,#0000 9%),radial-gradient(at 60% 35%,#e4c6b5 0 9%,#0000 10%),radial-gradient(at 35% 70%,#9db6aa 0 7%,#0000 8%);width:360px;height:360px;animation:8s ease-in-out infinite float;position:absolute}.watercolor-invitation .petals:before{top:-100px;left:-120px}.watercolor-invitation .petals:after{bottom:-100px;right:-120px;transform:rotate(180deg)}@keyframes float{50%{transform:translateY(20px)rotate(4deg)}}.watercolor-invitation .invitation{background:var(--paper);max-width:920px;margin:auto;box-shadow:0 0 60px #4b372b22}.watercolor-invitation .panel{background:var(--paper);transform-origin:50%;flex-direction:column;justify-content:center;min-height:100svh;padding:40px clamp(20px,6vw,60px);transition:transform .4s cubic-bezier(.16,1,.3,1),filter .3s;display:flex;position:sticky;top:0;overflow:visible;box-shadow:0 -15px 40px #0000000f}.watercolor-invitation .panel.reveal{opacity:1!important}.watercolor-invitation .paper-noise,.watercolor-invitation .panel:after{content:"";pointer-events:none;opacity:.14;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.6' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.25'/%3E%3C/svg%3E");position:absolute;inset:0}.watercolor-invitation .hero{text-align:center;background:radial-gradient(circle at 50% 40%,#fffdf7 0,#f4ecdf 68%);align-items:center}.watercolor-invitation .hero h1{color:var(--wine);z-index:1;margin:65px 0 45px;font-weight:400;line-height:.72}.watercolor-invitation .hero h1 span{font:clamp(68px,14vw,130px) Great Vibes;display:block}.watercolor-invitation .hero h1 i{color:var(--ink);margin:17px;font:italic 36px Cormorant Garamond;display:block}.watercolor-invitation .hero-copy{font-size:20px;line-height:1.6}.watercolor-invitation .monogram{border:1px solid #7d183155;border-radius:50%;place-items:center;width:100px;height:100px;margin-top:40px;font:24px Great Vibes;display:grid;position:relative}.watercolor-invitation .monogram:before,.watercolor-invitation .monogram:after{content:"";border-top:1px solid #7d183144;width:70px;position:absolute}.watercolor-invitation .monogram:before{right:100%}.watercolor-invitation .monogram:after{left:100%}.watercolor-invitation .scroll-cue{color:var(--ink);text-transform:uppercase;letter-spacing:.2em;font:9px Montserrat;text-decoration:none;position:absolute;bottom:28px}.watercolor-invitation .scroll-cue b{font-size:18px;animation:1.5s infinite bob;display:block}@keyframes bob{50%{transform:translateY(5px)}}.watercolor-invitation .corner{opacity:.55;background:radial-gradient(at 20% 20%,#cb8590 0 9%,#0000 10%),radial-gradient(at 44% 14%,#ecc1ae 0 10%,#0000 11%),radial-gradient(at 27% 46%,#91aaa1 0 8%,#0000 9%),radial-gradient(at 53% 37%,#bd967d 0 6%,#0000 7%);width:290px;height:290px;position:absolute}.watercolor-invitation .corner-a{top:-40px;left:-60px}.watercolor-invitation .corner-b{bottom:-40px;right:-60px;transform:rotate(180deg)}.watercolor-invitation .portrait-panel{background:#d9e8e7;min-height:75svh;padding:0}.watercolor-invitation .portrait-panel img{object-fit:cover;will-change:transform;width:100%;height:100%;transition:transform 2.2s cubic-bezier(.16,1,.3,1);position:absolute;transform:scale(1.18)}.watercolor-invitation .portrait-panel.in img{transform:scale(1)}.watercolor-invitation .portrait-panel.groom img{object-position:23% 15%}.watercolor-invitation .portrait-panel.bride img{object-position:36% 18%}.watercolor-invitation .portrait-panel:before{content:"";z-index:1;background:linear-gradient(90deg,#0000 40%,#f7f1e7d9);position:absolute;inset:0}.watercolor-invitation .bride:before{background:linear-gradient(-90deg,#0000 40%,#f7f1e7db)}.watercolor-invitation .portrait-label{z-index:2;width:42%;margin-left:auto;padding:25px}.watercolor-invitation .bride .portrait-label{margin-left:0}.watercolor-invitation .portrait-label small,.watercolor-invitation .venue small{text-transform:uppercase;letter-spacing:.25em;font:600 10px Montserrat}.watercolor-invitation .portrait-label h2{color:var(--wine);margin:10px 0;font:clamp(62px,11vw,100px) Great Vibes}.watercolor-invitation .portrait-label p{font-size:17px}.watercolor-invitation .scratch-section{text-align:center;background:#f7f1e7;align-items:center}.watercolor-invitation .scratch-section h2,.watercolor-invitation .story h2,.watercolor-invitation .details h2,.watercolor-invitation .rsvp h2{margin:26px 0 55px;font-size:clamp(42px,8vw,72px);font-weight:400;line-height:.92}.watercolor-invitation .scratch-card{background:#fff;border-radius:3px;width:min(100%,390px);height:210px;padding:20px;position:relative;box-shadow:0 22px 60px #5f3f3030}.watercolor-invitation .scratch-card:before{content:"";border:1px solid #7d183144;position:absolute;inset:10px}.watercolor-invitation .date{place-content:center;height:100%;display:grid}.watercolor-invitation .date small{text-transform:uppercase;letter-spacing:.3em;font:600 10px Montserrat}.watercolor-invitation .date strong{color:var(--wine);font:90px/.8 Cormorant Garamond}.watercolor-invitation .date span{font-size:19px}.watercolor-invitation .scratch-card canvas{touch-action:none;cursor:crosshair;width:100%;height:100%;transition:opacity .8s;position:absolute;inset:0}.watercolor-invitation .scratch-card canvas.cleared{opacity:0;pointer-events:none}.watercolor-invitation .hint{color:#59696b;margin-top:25px;font-style:italic}.watercolor-invitation .story{background:var(--ink);color:#f6efe5}.watercolor-invitation .story em,.watercolor-invitation .details em,.watercolor-invitation .rsvp em{color:#dba5a4;font-family:Great Vibes;font-style:normal;font-weight:400}.watercolor-invitation .timeline{border-left:1px solid #c7d5d066;margin-left:14px;padding-left:42px}.watercolor-invitation .timeline article{max-width:520px;padding:8px 0 40px;position:relative}.watercolor-invitation .timeline article:before{content:"";background:#dba5a4;border-radius:50%;width:13px;height:13px;position:absolute;top:12px;left:-49px;box-shadow:0 0 0 8px #213d43,0 0 0 9px #c7d5d066}.watercolor-invitation .timeline b{color:#ffffff0c;font:62px Cormorant Garamond;position:absolute;right:0}.watercolor-invitation .timeline span{letter-spacing:.2em;color:#b8ceca;font:10px Montserrat}.watercolor-invitation .timeline h3{margin:8px 0;font-size:30px}.watercolor-invitation .timeline p{color:#cedad7;font-size:17px;line-height:1.5}.watercolor-invitation .details{background:#f1e4dc}.watercolor-invitation .event-list article{border-top:1px solid #213d4326;grid-template-columns:42px 1fr auto;align-items:center;gap:12px;padding:10px 0;display:grid}.watercolor-invitation .event-list article>span{color:var(--wine);font:10px Montserrat}.watercolor-invitation .event-list h3{margin:0;font-size:22px}.watercolor-invitation .event-list p{color:#5f6d6c;margin:2px 0}.watercolor-invitation .event-list time{font:600 11px Montserrat}.watercolor-invitation .venue{background:var(--paper);text-align:center;margin-top:24px;padding:20px;box-shadow:0 15px 40px #7458431c}.watercolor-invitation .venue h3{color:var(--wine);margin:8px;font:36px Great Vibes}.watercolor-invitation .venue p{font-size:18px;line-height:1.5}.watercolor-invitation .venue a{color:var(--wine);text-transform:uppercase;letter-spacing:.15em;margin-top:10px;font:600 10px Montserrat;display:inline-block}.watercolor-invitation .rsvp{text-align:center;background:radial-gradient(circle,#fffaf2,#eee1d4);align-items:center}.watercolor-invitation .rsvp h2{z-index:1}.watercolor-invitation .rsvp-actions{flex-wrap:wrap;justify-content:center;gap:12px;display:flex}.watercolor-invitation .rsvp .secondary{color:var(--wine);border:1px solid var(--wine);background:0 0}.watercolor-invitation .thanks span{color:var(--wine);font-size:55px}.watercolor-invitation .thanks h3{margin:5px;font:48px Great Vibes}.watercolor-invitation .closing{margin-top:80px;font-size:17px}.watercolor-invitation .closing strong{color:var(--wine);font:42px Great Vibes}.watercolor-invitation .music{z-index:20;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);color:#fff;text-transform:uppercase;letter-spacing:.12em;background:#213d43d9;border:1px solid #fff5;border-radius:30px;padding:10px 14px;font:9px Montserrat;position:fixed;top:18px;right:18px}.watercolor-invitation .music span{background:#d5a09c;border-radius:50%;place-items:center;width:20px;height:20px;margin-right:7px;display:inline-grid}.watercolor-invitation .music.playing span{animation:1s infinite pulse}@keyframes pulse{50%{transform:scale(1.18)}}.watercolor-invitation .reveal{opacity:0;transition:opacity 1s,transform 1s;transform:translateY(28px)}.watercolor-invitation .reveal.in{opacity:1;transform:none}.watercolor-invitation .portrait-label.reveal{transform:translate(35px)}.watercolor-invitation .bride .portrait-label.reveal{transform:translate(-35px)}.watercolor-invitation .portrait-label.reveal.in{transform:none}@media (max-width:600px){.watercolor-invitation .panel{padding:75px 25px}.watercolor-invitation .portrait-panel{min-height:72svh}.watercolor-invitation .portrait-panel img{object-position:center}.watercolor-invitation .portrait-panel:before,.watercolor-invitation .bride:before{background:linear-gradient(#0000 35%,#f7f1e7f2)}.watercolor-invitation .portrait-label,.watercolor-invitation .bride .portrait-label{text-align:center;width:100%;margin:auto 0 0;padding:35px}.watercolor-invitation .portrait-label h2{font-size:64px}.watercolor-invitation .event-list article{grid-template-columns:28px 1fr}.watercolor-invitation .event-list time{grid-column:2}.watercolor-invitation .hero h1{margin-top:50px}.watercolor-invitation .scratch-section h2,.watercolor-invitation .story h2,.watercolor-invitation .details h2,.watercolor-invitation .rsvp h2{margin-bottom:40px}.watercolor-invitation .corner{width:210px;height:210px}.watercolor-invitation .monogram:before,.watercolor-invitation .monogram:after{width:35px}.watercolor-invitation .timeline{padding-left:30px}.watercolor-invitation .timeline article:before{left:-37px}}@media (prefers-reduced-motion:reduce){.watercolor-invitation *{scroll-behavior:auto!important;animation:none!important}.watercolor-invitation .reveal{opacity:1;transition:none;transform:none}}
