@import url('https://fonts.googleapis.com/css2?family=Cormorant+Garamond:ital,wght@0,400;0,500;1,400&display=swap');
:root{color-scheme:light;--ink:#782c4a;--muted:#826573;--paper:#fffdfb;--env-width:min(76vw,850px,calc(110svh - 180px))}
*{box-sizing:border-box}body{margin:0;color:var(--ink);background:radial-gradient(ellipse at 50% 35%,#fffdfa 0,#faf3f1 60%,#f1e6e6 100%);font-family:Georgia,'Times New Roman',serif}button{font:inherit;color:inherit}button:focus-visible{outline:3px solid #782c4a;outline-offset:7px}button[hidden],[hidden]{display:none!important}
.reveal{min-height:100svh;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:28px 0 16px;overflow:hidden}.eyebrow{text-transform:uppercase;letter-spacing:.24em;font:11px/1.8 Arial,sans-serif;text-align:center;color:var(--muted);margin:0 20px 16px}.envelope-stage{width:var(--env-width);padding-top:calc(var(--env-width)*.27);padding-bottom:calc(var(--env-width)*.04);transition:none}.envelope{position:relative;width:100%;aspect-ratio:1.75;perspective:1800px;isolation:isolate;filter:none}
.envelope-back{position:absolute;inset:0;border-radius:5px;background:#dcb4ac url('/images/save-the-date/floral-lining.png') center/cover;border:1px solid #d4a29b;z-index:1}.flap{position:absolute;inset:0 0 auto;height:64%;transform-origin:50% 0;transform-style:preserve-3d;transition:none;z-index:5}.flap-outside,.flap-lining{position:absolute;inset:0;clip-path:polygon(0 0,100% 0,50% 100%);backface-visibility:hidden}.flap-outside{background:linear-gradient(170deg,#f4d8d0,#ddb2a9);filter:none}.flap-lining{background:#f1d7cf url('/images/save-the-date/floral-lining.png') center/cover;transform:rotateY(180deg);border-top:5px solid #dab0a7}
.pocket{position:absolute;inset:0;z-index:4;overflow:hidden;border-radius:4px;pointer-events:none}.fold-left,.fold-right,.fold-bottom{position:absolute;inset:0}.fold-left{background:linear-gradient(125deg,#eac8c0,#e1b5ac);clip-path:polygon(0 0,62% 61%,0 100%)}.fold-right{background:linear-gradient(235deg,#e9c5bc,#dba99f);clip-path:polygon(100% 0,38% 61%,100% 100%)}.fold-bottom{background:linear-gradient(0deg,#f0d1c8,#e6bdb3);clip-path:polygon(0 100%,50% 44%,100% 100%)}.fold-bottom:after{content:'';position:absolute;inset:0;background:#ba887e;clip-path:polygon(0 100%,50% 43.7%,100% 100%,50% 44.2%)}
.seal{position:absolute;left:50%;top:57%;z-index:6;transform:translate(-50%,-50%);width:clamp(64px,8vw,88px);aspect-ratio:1;border-radius:46% 51% 47% 49%;border:1px solid #bb9171;background:radial-gradient(circle at 35% 25%,#ead1a9,#c8a17b 65%,#a77b5c);box-shadow:inset 0 0 0 5px #dabc95,inset 0 0 0 6px #b68b67,0 5px 10px #784c4055;cursor:pointer;transition:none}.seal span{display:grid;place-content:center;border:1px solid #b38969;border-radius:50%;height:74%;font-size:20px;text-shadow:0 1px #f3dfc1}.seal i{font-size:12px;line-height:.7}.seal:hover{transform:translate(-50%,-50%) scale(1.06)}
.card{position:absolute;top:4%;left:6%;width:88%;height:92%;z-index:2;margin:0;padding:12px;background:var(--paper);border:1px solid #e2c9bf;box-shadow:0 3px 18px #784c4026;transition:none;overflow:hidden}.card-border{height:100%;border:1px solid #d5b498;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:12px 20px;text-align:center}.card-eyebrow{font:clamp(11px,1.45vw,17px)/1.2 Arial,sans-serif;text-transform:uppercase;letter-spacing:.25em;margin:0 0 2%}.names{width:76%;height:auto;max-height:26%;object-fit:contain;margin:1% 0 2%}.card-saturday{font:10px/1.4 Arial,sans-serif;letter-spacing:.2em;text-transform:uppercase;margin:1% 0}.card-date{font-family:'Cormorant Garamond',Georgia,serif;font-size:clamp(26px,4vw,48px);font-style:italic;line-height:1.1;margin:0 0 2%}.card-rule{height:1px;width:36px;background:#c9a681;margin:2% 0}.card-place{font-size:clamp(14px,1.7vw,20px);line-height:1.4;margin:1% 0}.card-place span{font-size:.8em;color:var(--muted)}.card-footer{font:9px/1.4 Arial,sans-serif;letter-spacing:.17em;text-transform:uppercase;margin:3% 0 0}
.reveal-controls{min-height:64px;text-align:center;z-index:7;margin-top:16px}.open-text,.replay{border:0;background:none;cursor:pointer;padding:10px 16px;color:var(--muted);font-size:14px;font-style:italic}.replay{text-decoration:underline;text-underline-offset:5px}.reveal-status{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}

.letter{max-width:1080px;margin:0 auto;padding:32px 40px 96px;display:grid;grid-template-columns:1fr .85fr;align-items:center;gap:70px}.letter-copy{text-align:center;font-size:17px;line-height:1.9;color:#6c5964}.letter-copy .eyebrow{margin:0 0 26px}.mail-note{font-size:14px;color:var(--muted)}.with-love{font-style:italic;margin-bottom:8px}.signature{max-width:75%;height:auto}.couple{width:100%;height:auto;padding:12px;background:#fffdfb;box-shadow:0 14px 40px #75405219;transform:rotate(2deg)}.no-script{text-align:center;padding:60px 20px}
@media(max-width:600px){:root{--env-width:90vw}.reveal{padding-top:28px}.envelope{aspect-ratio:1.28}.envelope-stage{padding-top:calc(var(--env-width)*.30)}.card{padding:9px;height:94%}.card-border{padding:14px 12px}.card-eyebrow{font-size:11px}.names{width:92%;max-height:26%;margin:5% 0}.card-saturday{font-size:9px}.card-date{font-size:clamp(27px,7.6vw,40px)}.card-place{font-size:17px}.card-footer{font-size:8px;letter-spacing:.12em}.eyebrow{font-size:10px;letter-spacing:.2em}.letter{grid-template-columns:1fr;padding:24px 28px 64px;gap:28px;max-width:500px}.letter-copy{font-size:16px}.couple{max-width:350px;justify-self:center}.reveal-controls{margin-top:20px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{transition:none!important;animation:none!important}.couple{content:url('/images/invitation-couple.png')}}
/* Give the lettering room and lift the complete card above the pocket. */
.card-border{gap:7px;padding:12px 16px}.card-border>p,.card-border>.names,.card-rule{margin:0;flex-shrink:0}.names{height:22%;max-height:22%;width:76%;flex-shrink:1!important}.card-date{font-size:clamp(26px,3.2vw,42px)}.card-place{line-height:1.3}.card-eyebrow{font-size:clamp(11px,1.2vw,15px)}
@media(max-width:600px){.card-border{gap:8px;padding:12px}.names{width:92%;height:22%;max-height:22%}.card-date{font-size:clamp(27px,7.6vw,40px)}.card-place{font-size:16px}}

/* Reserve the same space throughout each cycle to avoid page jumps. */
.reveal{--card-lift:-80%}.reveal .envelope-stage{padding-top:calc(var(--env-width)*.49)}.replay:disabled{cursor:wait;text-decoration:none}.seal:disabled{cursor:default}.seal:disabled:hover{transform:translate(-50%,-50%)}
@media(max-width:600px){.reveal{--card-lift:-88%}.reveal .envelope-stage{padding-top:calc(var(--env-width)*.72)}}

/* Keep shadows static; promote only the moving paper to compositor layers. */
.envelope::before{content:'';position:absolute;inset:0;border-radius:5px;box-shadow:0 24px 36px #7f3f4b26;z-index:0;pointer-events:none}.flap,.card{will-change:transform}.seal{will-change:opacity}html{scrollbar-gutter:stable}
/* The complete message lives on one piece of invitation stationery. */
.full-invitation{width:min(850px,90vw);margin:20px auto 12px;padding:50px 46px 28px;background:#fffdfb;border:1px solid #e0c9b6;outline:1px solid #d5b498;outline-offset:-12px;box-shadow:0 18px 50px #7f3f4b1c;will-change:opacity;text-align:center}.invitation-heading{display:flex;flex-direction:column;align-items:center;gap:12px}.invitation-heading>p{margin:0}.invitation-heading .card-eyebrow{font:12px/1.5 Arial,sans-serif;letter-spacing:.27em}.invitation-heading .names{width:min(420px,80%);height:auto;max-height:none;margin:4px 0 8px}.invitation-heading .card-date{font-size:48px}.invitation-heading .card-place{font-size:20px}.invitation-heading .card-rule{margin:4px 0}.full-invitation .letter{margin:34px 0 0;padding:30px 0 24px;gap:36px;grid-template-columns:1fr .8fr;border-top:1px solid #e7d7c9;align-items:center}.full-invitation .letter-copy{font-size:15px;line-height:1.85}.full-invitation .letter-copy .eyebrow{font-size:9px;letter-spacing:.16em;margin:0 0 16px}.full-invitation .couple{transform:none;padding:8px;box-shadow:0 5px 20px #75405215}.full-invitation .signature{width:220px;max-width:90%}.invitation-footer{border-top:1px solid #e7d7c9;padding:22px 0 0;margin:4px 0 0;font:10px/1.5 Arial,sans-serif;letter-spacing:.2em;text-transform:uppercase;color:#826573}.reveal:has(.full-invitation:not([hidden])){justify-content:flex-start;padding-top:28px}.full-invitation:focus{outline:1px solid #d5b498}
@media(max-width:600px){.full-invitation{padding:36px 26px 24px;width:92vw;outline-offset:-8px}.invitation-heading{gap:10px}.invitation-heading .names{width:100%;max-width:350px}.invitation-heading .card-date{font-size:38px}.invitation-heading .card-place{font-size:19px}.full-invitation .letter{grid-template-columns:1fr;padding-top:24px;margin-top:26px;gap:24px}.full-invitation .letter-copy{font-size:15px}.full-invitation .couple{max-width:310px}.invitation-footer{font-size:9px;letter-spacing:.15em}}
/* Chosen botanical C&G seal, with its original hand-poured wax edge. */
.seal{width:clamp(100px,11vw,126px);padding:0;border:0;border-radius:50%;background:none;box-shadow:none;line-height:0}.seal img{display:block;width:100%;height:auto;pointer-events:none;filter:drop-shadow(0 4px 4px #70483d38)}@media(max-width:600px){.seal{width:100px}}
