@import "https://fonts.googleapis.com/css2?family=Cormorant+Garamond:ital,wght@0,400;0,500;0,600;1,400&family=Montserrat:wght@400;500;600&family=Poiret+One&display=swap";:root{--forest:#073f3a;--gold:#d9b96b;--ivory:#f5efe4;--ink:#123f39}*{box-sizing:border-box}html,body{min-height:100%}body{color:var(--ink);background:#f1e9dc;margin:0;font-family:Montserrat,sans-serif}button,a{font:inherit}.experience{background:#f1e9dc;min-height:100svh;position:relative;overflow:hidden}.intro-sequence,.final-stage{place-items:center;min-height:100svh;display:grid;position:absolute;inset:0}.intro-sequence{z-index:5;background:radial-gradient(circle at 50% 36%,#ffffffdb,#0000 45%),#efe5d6;overflow:hidden}.closed-envelope-image{object-fit:cover;object-position:center;width:100%;height:100%;position:absolute;inset:0}.message{z-index:4;text-align:center;pointer-events:none;place-items:center;padding:24px;display:grid;position:absolute;inset:0}.message p{max-width:920px;color:var(--forest);text-wrap:balance;text-shadow:0 2px 24px #ffffffe6;text-transform:uppercase;margin:0}.message-one{opacity:0}.message-one p{letter-spacing:.09em;font:400 clamp(46px,8vw,112px)/.96 Poiret One,sans-serif}.message-two{opacity:0}.message-two p{letter-spacing:.065em;font:400 clamp(32px,5.3vw,74px)/1.12 Poiret One,sans-serif}.message-two em{color:#9a7430;font-style:normal;font-weight:400}.confetti{z-index:8;pointer-events:none;width:1px;height:1px;position:absolute;top:53%;left:50%}.confetti i{opacity:0;border-radius:2px;width:9px;height:18px;position:absolute;top:0;left:0;box-shadow:0 2px 4px #312a1e26}.skip-button,.replay-final{color:var(--forest);text-transform:uppercase;letter-spacing:.16em;cursor:pointer;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#ffffffad;border:1px solid #073f3a38;border-radius:999px;align-items:center;gap:8px;font-size:10px;transition:transform .2s,background .2s,color .2s;display:inline-flex}.skip-button{z-index:10;padding:11px 16px;position:absolute;top:24px;right:26px}.skip-button:hover,.replay-final:hover{color:#fff;background:var(--forest);transform:translateY(-1px)}.skip-button:focus-visible,.replay-final:focus-visible,.rsvp-button:focus-visible{outline:2px solid var(--gold);outline-offset:4px}.final-stage{z-index:1;opacity:0;background:#f3ebdf}.invitation-image{object-fit:contain;object-position:center;filter:drop-shadow(0 28px 36px #261f172e);width:100%;height:100svh;transform:scale(.975)}.final-controls{z-index:4;position:absolute;top:22px;right:24px}.replay-final{padding:10px 15px}.replay-final span{font-size:17px;line-height:0}.rsvp-button{z-index:5;color:#f8edcf;text-align:center;text-transform:uppercase;letter-spacing:.2em;opacity:0;background:#053732f0;border:1px solid #e8cd8be0;border-radius:999px;min-width:190px;padding:16px 26px;font-size:11px;font-weight:600;text-decoration:none;transition:transform .2s,box-shadow .2s,background .2s;position:absolute;bottom:clamp(20px,5.5vh,58px);left:50%;transform:translate(-50%,18px);box-shadow:0 14px 32px #072c2847,inset 0 0 0 1px #ffffff0f}.is-ready .intro-sequence{animation:1s 7.2s forwards introFade}.is-ready .closed-envelope-image{animation:1.15s cubic-bezier(.2,.75,.2,1) .15s both envelopeArrive,.8s 1.6s forwards envelopeDim,.9s 5.15s forwards envelopeReturn}.is-ready .message-one{animation:2.1s 1.45s both messageOne}.is-ready .message-two{animation:2.65s 3.45s both messageTwo}.is-ready .confetti i{animation:confettiBurst 1.25s calc(5.72s + var(--confetti-delay)) cubic-bezier(.18,.65,.32,1) both}.is-ready .skip-button{animation:.5s 6.45s forwards skipFade}.is-ready .final-stage{animation:1.25s cubic-bezier(.2,.7,.2,1) 6.55s forwards finalReveal}.is-ready .invitation-image{animation:1.6s cubic-bezier(.2,.75,.2,1) 6.55s forwards imageSettle}.is-ready .rsvp-button{animation:.8s cubic-bezier(.2,.8,.2,1) 7.35s forwards buttonIn}.rsvp-button:hover{background:#0a4c45;transform:translate(-50%,-2px);box-shadow:0 18px 38px #072c2861,inset 0 0 0 1px #ffffff14}.is-skipped .intro-sequence{display:none}.is-skipped .final-stage{opacity:1;animation:none}.is-skipped .invitation-image{animation:none;transform:none}.is-skipped .rsvp-button{opacity:1;animation:none;transform:translate(-50%)}.rsvp-page{background:radial-gradient(circle at 50% 0,#ffffffe6,#0000 45%),linear-gradient(145deg,#f6f0e6,#e7ddcf);place-items:center;min-height:100svh;padding:28px;display:grid}.rsvp-card{color:#e9ce93;text-align:center;background:linear-gradient(150deg,#0c514a,#04332f);border:1px solid #c29d5285;border-radius:4px;width:min(100%,640px);padding:clamp(38px,7vw,76px);box-shadow:0 28px 70px #212e2938}.rsvp-monogram{letter-spacing:.16em;margin:0 0 28px;font:600 22px Cormorant Garamond,serif}.rsvp-eyebrow{text-transform:uppercase;letter-spacing:.25em;margin:0 0 16px;font-size:10px}.rsvp-card h1{color:#f4deb1;margin:0 0 22px;font:500 clamp(46px,9vw,72px)/.95 Cormorant Garamond,serif}.rsvp-card>p:not(.rsvp-monogram):not(.rsvp-eyebrow){color:#f7e8c6d1;max-width:440px;margin:0 auto;font:400 20px/1.45 Cormorant Garamond,serif}.rsvp-details{text-transform:uppercase;letter-spacing:.14em;border-block:1px solid #e9ce9347;gap:7px;margin:34px 0;padding:26px 0;font-size:10px;display:grid}.back-link{color:#f3dfb6;text-underline-offset:5px;text-transform:uppercase;letter-spacing:.15em;font-size:10px;text-decoration-thickness:1px;display:inline-block}@keyframes envelopeArrive{0%{opacity:0;transform:scale(.93)translateY(24px)}to{opacity:1;transform:scale(1)translateY(0)}}@keyframes envelopeDim{to{opacity:.3;filter:blur(2px);transform:scale(1.03)}}@keyframes envelopeReturn{0%{opacity:.3;filter:blur(2px)}to{opacity:.7;filter:blur();transform:scale(1.015)}}@keyframes messageOne{0%,to{opacity:0;transform:translateY(16px)}18%,76%{opacity:1;transform:none}}@keyframes messageTwo{0%,to{opacity:0;transform:translateY(18px)}18%,78%{opacity:1;transform:none}}@keyframes confettiBurst{0%{opacity:0;transform:translate(0)rotate(0)scale(.2)}10%{opacity:1}72%{opacity:1}to{opacity:0;transform:translate(var(--confetti-x), var(--confetti-y)) rotate(var(--confetti-r)) scale(1)}}@keyframes introFade{to{opacity:0;visibility:hidden}}@keyframes skipFade{to{opacity:0;visibility:hidden}}@keyframes finalReveal{0%{opacity:0}to{opacity:1}}@keyframes imageSettle{0%{transform:scale(.975)}to{transform:scale(1)}}@keyframes buttonIn{to{opacity:1;transform:translate(-50%)}}@media (width<=720px){.closed-envelope-image{object-fit:cover}.message-one p{letter-spacing:.055em;font-size:clamp(42px,13vw,68px)}.message-two p{letter-spacing:.04em;font-size:clamp(29px,8.4vw,47px);line-height:1.15}.final-stage{align-items:center}.invitation-image{object-fit:cover;object-position:center;width:100%;height:min(70svh,120vw);min-height:450px;max-height:620px}.rsvp-button{bottom:max(18px, env(safe-area-inset-bottom));min-width:174px;padding:14px 20px}.final-controls,.skip-button{top:max(14px, env(safe-area-inset-top));right:14px}}@media (prefers-reduced-motion:reduce) and (width>=721px){.is-ready .intro-sequence{display:none}.is-ready .final-stage{opacity:1;animation:none}.is-ready .invitation-image{animation:none;transform:none}.is-ready .rsvp-button{opacity:1;animation:none;transform:translate(-50%)}}
