/* A letter designed to be held in the hand. */
html{overflow-x:hidden}body{overflow-x:hidden}.cover-content{max-width:440px}.cover h1{margin-bottom:46px}.cover{padding:24px 22px}.cover-note{margin-top:40px}.envelope{aspect-ratio:4/3;filter:drop-shadow(0 12px 15px #62594420)}
.envelope-back,.envelope-front,.flap,.letter{background-image:url('papier-coton.webp');background-size:430px 430px;background-color:#f2eadd}
.envelope-back{border-color:#d3c5ac;border-radius:5px;box-shadow:inset 0 0 18px #b9a98c35}
.envelope-front{clip-path:polygon(0 0,50% 67%,100% 0,100% 100%,0 100%);box-shadow:inset 0 -2px 3px #b4a48a40}
.flap{inset:0 0 32%;filter:drop-shadow(0 2px 2px #8b795938)}
.envelope-photo{position:absolute;inset:-4%;width:108%;max-width:none;height:108%;object-fit:contain;z-index:6;pointer-events:none;transition:opacity .3s .15s}
.seal{top:65%;width:110px}.opening .envelope-photo{opacity:0}.opening .letter{transform:translateY(-38%)}.opening .flap{filter:brightness(.96)}
.site-header{max-width:520px;padding:0 22px;height:65px}.site-header nav{gap:20px}.site-header nav a{font-size:12px}.header-mark{width:37px;height:45px}
.keepsake{max-width:480px;margin:0 auto;padding:10px 16px 12px;text-align:center;outline:none}.keepsake-art{width:100%;height:auto;box-shadow:0 6px 25px #53657808}.keepsake-link{display:inline-block;margin:23px 0 18px;font-style:italic;font-size:17px;text-decoration:none}.keepsake-link span{display:block;line-height:1.2;margin-top:4px;font-style:normal}
.film-section{max-width:520px;margin:0 auto;padding:20px 20px 60px}.film-section::before,.film-section::after{display:none}.names{max-width:340px;height:66px}.film-section .eyebrow{font-size:9px;margin-bottom:22px}.film-frame{border-radius:2px;padding:4px;max-width:100%}.film-frame video{border-radius:0;max-width:100%;width:auto;height:min(72svh,670px)}
.film-start{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:min(250px,85%);padding:14px 18px;border:1px solid #71899b80;background:#fcf9f2f5;color:var(--ink);line-height:1.35;font-family:inherit;font-size:17px;box-shadow:0 4px 20px #34495915}.film-start::before{content:'▷';display:block;font-size:28px;margin-bottom:6px}.film-start[hidden]{display:none}.sound-toggle{display:block;margin:15px auto 0;border:0;background:transparent;color:var(--blue);font-size:14px;padding:5px 8px}.sound-toggle:hover{text-decoration:underline;text-underline-offset:4px}
.day{max-width:520px;padding:60px 28px 65px}.section-intro h2{font-size:38px}.section-intro .subtitle{font-size:20px}.schedule{grid-template-columns:1fr;gap:43px;margin-top:45px}.schedule .time{font-size:38px;margin-bottom:18px}.schedule .time.after{font-size:28px;padding-top:0;margin-bottom:20px}.program-footer{margin-top:40px}
.dress{padding:60px 26px}.dress-inner{max-width:430px}.dress h2{font-size:38px}.palette{grid-template-columns:1fr;gap:30px;margin-top:42px}.palette article{display:grid;grid-template-columns:64px 1fr;text-align:left;column-gap:22px;align-items:center;max-width:350px;margin:auto;width:100%}.swatch{width:60px;height:60px;grid-row:1/4;margin:0}.palette h3{font-size:24px;margin:0 0 5px}.palette p{max-width:none;margin:0;font-size:15px}.palette .short{display:none}
.closing{max-width:520px;margin:0 auto;padding-top:50px}.closing-people{height:245px}.closing p{font-size:23px}
@media(max-width:380px){.cover{padding:22px 18px}.cover h1{font-size:31px;margin-bottom:38px}.seal{width:91px}.site-header{padding:0 18px}.keepsake{padding-left:12px;padding-right:12px}.section-intro h2,.dress h2{font-size:34px}.film-section{padding-left:16px;padding-right:16px}.film-frame video{height:min(70svh,650px)}.palette article{column-gap:16px}}
@media(max-height:600px) and (orientation:landscape){.cover-content{max-width:320px}.cover h1{font-size:28px;margin-bottom:24px}.cover .eyebrow{font-size:9px;margin-bottom:5px}.cover-note{margin-top:22px}.seal{width:85px}}

.rsvp{width:100%;margin:36px auto 46px;max-width:420px;text-align:center}.rsvp h2{font-size:27px;font-weight:400;margin-bottom:12px}.closing .rsvp p{font-size:16px;line-height:1.6}.rsvp summary,.rsvp-send{display:block;border:1px solid #71899b;background:#71899b;color:#fffaf0;padding:17px 20px;font:inherit;font-size:16px;letter-spacing:.04em;cursor:pointer;list-style:none;border-radius:3px}.rsvp summary::-webkit-details-marker{display:none}.rsvp details[open] summary{background:transparent;color:#526e83}.rsvp form{margin-top:24px;text-align:left}.rsvp form>label{display:block;font-size:17px}.rsvp form>label span{display:block;font-size:14px;margin:5px 0 10px}.rsvp input:not([type=radio]){width:100%;border:1px solid #9baab2;border-radius:3px;padding:12px;background:#fffdf7;color:#283b50;font:inherit;font-size:17px;box-sizing:border-box}.rsvp fieldset{margin:24px 0;padding:18px;border:1px solid #b9c4c9;text-align:left}.rsvp legend{padding:0 8px;font-size:20px}.rsvp fieldset label{display:block;font-size:16px;line-height:1.5;margin:12px 0}.rsvp input[type=radio]{accent-color:#607f95;width:18px;height:18px;vertical-align:middle;margin-right:8px}.rsvp .rsvp-count{font-size:14px;margin-top:20px}.rsvp-count input{margin-top:8px;max-width:110px}.rsvp [hidden]{display:none!important}.rsvp-send{width:100%}.rsvp-send:disabled{opacity:.6;cursor:wait}.closing .rsvp .rsvp-note{font-size:12px;line-height:1.6;opacity:.75}.closing .rsvp #rsvp-status{font-size:16px}.rsvp :focus-visible{outline:2px solid #283b50;outline-offset:4px}.organiser-link{display:block;margin:25px auto 0;font-size:11px;opacity:.65;color:inherit}
