@font-face{font-family:Chardon;src:url('assets/cormorant.ttf') format('truetype');font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:Chardon;src:url('assets/cormorant-italic.ttf') format('truetype');font-weight:400;font-style:italic;font-display:swap}
:root{--paper:#f5f1e9;--ink:#3c4842;--gold:#786447;--line:#d3c9b8;--serif:Chardon,Baskerville,Georgia,serif;--sans:Arial,Helvetica,sans-serif}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:35px}body{margin:0;background:var(--paper);color:var(--ink);font:14px/1.8 var(--sans)}body.sealed{overflow:hidden}button,input,select,textarea{font:inherit;color:inherit}button{cursor:pointer}button,a{-webkit-tap-highlight-color:transparent}a{color:inherit;text-underline-offset:6px}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid var(--gold);outline-offset:5px}img{display:block;max-width:100%}h1,h2,h3,p,figure{margin:0}h1,h2,h3{font:400 1em/1.04 var(--serif)}p+p{margin-top:20px}h2{font-size:clamp(44px,4.7vw,72px);letter-spacing:-1.7px}h2 em,h1 em{color:var(--gold);font-weight:400}.eyebrow{font-size:9px;letter-spacing:2.3px;line-height:1.8}.section{padding:110px 6vw;text-align:center}.section h2{margin:25px 0 28px}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}.skip{position:fixed;top:12px;left:12px;z-index:500;transform:translateY(-170%);background:var(--paper);padding:12px 20px}.skip:focus{transform:none}main{outline:0}.js body.sealed main{visibility:hidden}
/* One photograph, registered into its physical flap and body. No synthetic wax. */
.cover{display:none}.js .cover{position:fixed;inset:0;z-index:100;display:flex;flex-direction:column;background:#f1ece2;overflow:auto;transition:opacity .9s,visibility .9s}.cover-header,.cover-footer{display:flex;justify-content:space-between;align-items:center;padding:30px 4.5vw;position:relative;z-index:10}.brand{font-size:12px;letter-spacing:3.5px;line-height:1.5}.brand small{display:block;font-size:7px;letter-spacing:3.3px;margin-top:7px}.edition{text-align:right;font-size:8px;letter-spacing:1.6px;line-height:1.9}.cover-layout{width:min(1300px,92%);margin:auto;display:grid;grid-template-columns:.85fr 1.3fr;align-items:center;gap:2vw;flex:1;padding:20px 0 40px}.cover-copy{padding-left:3vw}.cover-copy h1{font-size:clamp(75px,7.2vw,112px);letter-spacing:-3px;margin:28px 0;line-height:.91}.cover-copy h1 em{display:block}.cover-note{font:23px/1.4 var(--serif);color:#6a7068}.cover-names{font:italic 29px/1.3 var(--serif);margin-top:32px;color:var(--gold)}.cover-names i{font-size:.7em}.letter-wrap{width:100%;max-width:680px;justify-self:center;perspective:1600px}.letter{position:relative;aspect-ratio:1200/896;isolation:isolate;transition:transform 2.3s cubic-bezier(.3,0,.2,1)}.envelope-back{position:absolute;inset:13.8% 14.5% 14%;background:#ede9dd url('assets/papier.webp') center/cover;box-shadow:0 4px 10px #49391d14}.envelope-front,.envelope-flap,.wax{background-image:url('assets/enveloppe.webp');background-size:100% 100%;position:absolute;inset:0}.envelope-front{z-index:4;background-image:url('assets/enveloppe-sans-sceau.webp');clip-path:polygon(0 0,14.5% 0,14.5% 13.5%,50% 61%,85.7% 13.5%,85.7% 0,100% 0,100% 100%,0 100%);transition:opacity .8s 1.8s,transform 1.3s 1.5s}.envelope-flap{z-index:5;clip-path:polygon(14.5% 13.5%,85.7% 13.5%,56% 56%,56% 68.5%,44% 68.5%,44% 56%);transform-origin:50% 13.8%;transition:transform 1.2s cubic-bezier(.4,0,.3,1) .2s,filter 1.2s .2s,opacity .6s 1.5s;backface-visibility:hidden}.wax{inset:auto;left:43.6%;top:52.7%;width:12.7%;height:16.3%;background-size:787.4% 613.5%;background-position:50% 63%;z-index:7;border:0;background-color:transparent;opacity:0;transition:opacity .3s;cursor:pointer}.wax:focus-visible{opacity:1;outline-offset:7px;border-radius:50%;background:none;outline:2px solid #786447}.wax:hover{opacity:1;background:none;border-radius:50%;box-shadow:0 0 0 7px #ffffff35}.letter-inner{position:absolute;z-index:3;top:16%;left:19%;width:62%;height:69%;padding:6%;background:#f9f5ec;box-shadow:0 8px 30px #473b241a;display:flex;align-items:center;flex-direction:column;justify-content:center;opacity:0;transform:translateY(9%) scale(.96);transition:transform 1.7s cubic-bezier(.3,0,.2,1) .7s,opacity .5s .5s;overflow:hidden}.letter-inner img{height:50%;width:77%;object-fit:cover;object-position:center 42%;margin-bottom:7%}.letter-inner small{font-size:5px;letter-spacing:1.3px}.letter-inner>span{font:italic clamp(24px,2.6vw,40px)/1.2 var(--serif);margin:8px 0;color:var(--gold);white-space:nowrap}.letter-inner i{font-size:.7em}.letter-inner b{font-size:5px;letter-spacing:1.2px;font-weight:400}.letter-hint{text-align:center;font-size:8px;letter-spacing:2px;margin-top:0;transition:opacity .3s}.letter-hint span{display:block;font:italic 19px/1.5 var(--serif);letter-spacing:0;color:var(--gold);margin-top:7px}.cover-footer{font-size:7px;letter-spacing:1.4px;padding-top:18px;padding-bottom:25px}.text-button{border:0;border-bottom:1px solid #b8a98d;background:none;font-size:9px;letter-spacing:.6px;min-height:44px;padding:7px 0}.text-button span{margin-left:12px}.opening .wax{pointer-events:none;opacity:0}.opening .envelope-flap{transform:rotateX(175deg);filter:brightness(.97);opacity:0}.opening .letter-inner{opacity:1;transform:translateY(-35%) scale(1.05)}.opening .envelope-front{opacity:0;transform:translateY(12%)}.opening .envelope-back{opacity:0;transition:opacity .8s 1.7s}.opening .letter-hint{opacity:0}.opening .letter{transform:translateY(5%) scale(1.06)}.cover.dismissed{opacity:0;visibility:hidden;pointer-events:none}
.nav{height:80px;display:flex;justify-content:space-between;align-items:center;padding:0 4vw;border-bottom:1px solid var(--line)}.nav>div{display:flex;gap:32px}.nav a{font-size:10px;text-decoration:none;display:inline-flex;min-height:44px;align-items:center}.nav .monogram{font:italic 34px var(--serif);letter-spacing:-2px}.monogram i{font-size:20px;margin:0 4px}.nav-rsvp span{margin-left:18px}.nav-rsvp{border-bottom:1px solid var(--gold)}.hero{height:calc(100svh - 80px);min-height:620px;max-height:1050px;position:relative;overflow:hidden;background:#7d897c;color:#fffaf0;text-align:center}.hero-image,.hero-film,.hero-shade{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:50% 66%}.hero-film{opacity:0;transition:opacity 1s}.hero-film.playing{opacity:1}.hero-shade{background:linear-gradient(#182e2840,#23382a12 37%,transparent 67%,#22352f75)}.hero-content{position:absolute;top:8%;left:0;width:100%;padding:30px}.hero-content .eyebrow{font-size:9px;letter-spacing:3px}.hero-content h1{font-size:clamp(80px,10vw,154px);letter-spacing:-3px;margin:12px 0 8px;color:#fffcef}.hero-content h1 i{font-size:.7em;margin:0 .07em;color:#f4dfb6}.hero-script{font:italic 29px/1.3 var(--serif)}.hero-location{font-size:8px;letter-spacing:2.7px;line-height:2;margin-top:24px}.hero-scroll{position:absolute;left:50%;bottom:28px;transform:translateX(-50%);font-size:8px;letter-spacing:2px;text-decoration:none}.hero-scroll span{display:block;font-size:25px;line-height:1.4}.film-toggle{position:absolute;bottom:33px;right:4vw;min-height:44px;padding:10px 16px;border:1px solid #fff8;border-radius:30px;background:#21372f60;color:#fff9ec;font-size:9px;z-index:2}.film-toggle span{margin-left:10px}.hero-coordinate{position:absolute;bottom:45px;left:4vw;font-size:8px;letter-spacing:2px}.intro{display:grid;grid-template-columns:1fr 1fr;align-items:center;gap:10vw;max-width:1400px;margin:auto;padding-top:130px;padding-bottom:130px;text-align:left}.intro-picture{position:relative;padding:0 0 30px}.intro-picture img{width:100%;height:auto;aspect-ratio:4/5;object-fit:cover;object-position:center}.intro-picture span{display:block;font-size:7px;letter-spacing:2px;margin-top:20px}.intro-copy{max-width:460px}.intro h2{margin:25px 0 32px}.intro-copy>p:not(.eyebrow):not(.signature){font:22px/1.55 var(--serif);color:#647066}.signature{font:italic 34px/1.3 var(--serif);color:var(--gold);margin-top:33px}.date-section{background:#eae6db;padding-top:90px;padding-bottom:100px;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.scratch-instruction{font:21px/1.6 var(--serif);color:#657066}.scratch-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px;max-width:520px;margin:40px auto 0}.scratch-card{aspect-ratio:1/1.16;border:1px solid #c5b18b;position:relative;display:flex;align-items:center;justify-content:center;background:#faf7ef;overflow:hidden;box-shadow:0 8px 20px #6c573009}.scratch-card:after{content:'';position:absolute;inset:6px;border:1px solid #b59d7045;pointer-events:none}.scratch-card canvas{position:absolute;inset:0;width:100%;height:100%;touch-action:none;cursor:crosshair;transition:opacity .7s}.date-number,.date-month{font:70px/1 var(--serif);color:var(--gold)}.date-month{font-size:53px;font-style:italic}.date-number.year{font-size:46px}.scratch-label{display:block;font-size:8px;letter-spacing:2px;margin-top:17px}.scratch-reveal{min-height:44px;border:0;background:none;font:15px var(--serif);text-decoration:underline;text-underline-offset:4px;padding:8px}.scratch-item.revealed canvas{opacity:0;pointer-events:none}.scratch-item.revealed .scratch-reveal{visibility:hidden}.date-result{min-height:36px;font:23px/1.4 var(--serif);color:var(--gold);margin:15px 0 9px}.line-link{display:inline-block;font-size:10px;letter-spacing:.6px;text-decoration:none;border-bottom:1px solid #ad9871;padding:8px 0;min-height:44px}.line-link span{margin-left:24px}.interlude{height:620px;max-height:85svh;position:relative;overflow:hidden;background:#8a8674}.interlude img{width:100%;height:100%;object-fit:cover;object-position:center}.interlude:after{content:'';position:absolute;inset:0;background:linear-gradient(transparent,#1e2c2460)}.interlude figcaption{position:absolute;z-index:1;left:7vw;bottom:65px;font:64px/1.04 var(--serif);color:#fff9e9;letter-spacing:-1px}.countdown-section{padding-top:85px;padding-bottom:85px;background:#e1e5dc}.countdown-section h2{font-size:56px}.countdown{display:flex;justify-content:center;align-items:flex-start;gap:25px;margin:40px 0 25px}.countdown>div{min-width:95px}.countdown span{font:74px/1 var(--serif);font-variant-numeric:tabular-nums;display:block}.countdown small{display:block;font-size:7px;letter-spacing:2px;margin-top:15px}.countdown b{font:36px/1.4 var(--serif);color:#929987}.countdown-note{font-size:10px;color:#606c61}.programme{padding-top:120px;padding-bottom:120px}.timeline{display:grid;grid-template-columns:repeat(4,1fr);max-width:1200px;margin:65px auto 0;gap:35px;text-align:left}.timeline-item{border-top:1px solid #bcb09b;padding-top:22px}.timeline time{font-size:10px;letter-spacing:1px;color:var(--gold)}.timeline h3{font-size:31px;margin:24px 0 15px}.timeline p{font:20px/1.5 var(--serif);color:#637063}.venue{display:grid;grid-template-columns:1.1fr 1fr;background:#eae5da;min-height:620px}.venue-picture{position:relative;overflow:hidden;min-height:500px}.venue-picture img{position:absolute;width:100%;height:100%;object-fit:cover;object-position:50% center}.venue-picture:after{content:'';position:absolute;inset:0;background:linear-gradient(transparent 60%,#20372a50)}.venue-picture>span{position:absolute;bottom:25px;left:35px;z-index:1;color:#fffbed;font-size:8px;letter-spacing:2px}.venue-copy{padding:80px 6vw;display:flex;flex-direction:column;justify-content:center}.venue-copy h2{margin:25px 0 32px}.venue-copy>p:not(.eyebrow){font:22px/1.6 var(--serif);color:#647064}.venue-copy>p.venue-small{font:10px/1.9 var(--sans);margin-top:25px;max-width:350px}.detail-grid{display:grid;grid-template-columns:repeat(3,1fr);max-width:1100px;margin:60px auto 0;gap:60px;text-align:left}.detail-grid article{border-top:1px solid var(--line);padding-top:20px}.detail-no{font:italic 22px var(--serif);color:var(--gold)}.detail-grid h3{font-size:32px;margin:18px 0}.detail-grid p{font:21px/1.55 var(--serif);color:#647064}.swatches{display:flex;gap:10px;margin-top:20px}.swatches span{width:23px;height:23px;border-radius:50%;background:var(--swatch)}.rsvp{border-top:1px solid var(--line);padding-top:85px;padding-bottom:100px}.rsvp-ornament{display:block;font:italic 45px var(--serif);color:#a28a64;margin-bottom:36px}.rsvp-ornament i{font-size:.6em}.rsvp>p:not(.eyebrow):not(.demo-note){font:23px/1.5 var(--serif);color:#647064}.button{background:#42554a;color:#fffaf0;border:1px solid #42554a;padding:17px 25px;min-height:52px;font-size:10px;letter-spacing:1px;transition:background .2s}.button:hover{background:#304337}.button span{margin-left:30px}.rsvp .button{margin-top:30px}.demo-note{font-size:9px;color:#697166;margin-top:23px}.footer{text-align:center;background:#e4e3d7;padding:65px 5vw 30px}.footer-names{font:italic 48px var(--serif);text-decoration:none;color:#67735d}.footer>p{font-size:8px;letter-spacing:2px;margin:15px 0 50px}.footer>div{display:flex;justify-content:space-between;gap:20px;border-top:1px solid #bec3b3;padding-top:25px;font-size:7px;letter-spacing:1.5px}.footer strong{font-weight:400}.footer .text-button{margin-top:25px}dialog{border:1px solid var(--line);background:var(--paper);color:var(--ink);padding:45px;width:calc(100% - 32px);max-width:530px;max-height:90svh;overflow-y:auto;box-shadow:0 20px 100px #19231333}dialog::backdrop{background:#14291e80;backdrop-filter:blur(5px)}dialog h2{font-size:50px;margin:20px 0}.dialog-close{position:absolute;top:8px;right:12px;width:44px;height:44px;border:0;background:none;font-size:29px}.dialog-note{font-size:11px;line-height:1.7;color:#63705f;margin-bottom:23px}form{text-align:left}form label{display:block;font-size:10px;margin:17px 0 6px}input,textarea,select{width:100%;border:1px solid var(--line);border-radius:0;background:#fffcf5;padding:12px;font-size:16px;min-height:46px}textarea{resize:vertical}form .button{margin-top:25px;width:100%}#rsvp-status{font-size:11px;margin-top:14px}.noscript{text-align:center;padding:15px}.reveal-section{opacity:0;transform:translateY(20px);transition:opacity .8s,transform .8s}.reveal-section.in-view{opacity:1;transform:none}
.hero-shade{background:linear-gradient(180deg,#122d2199 0,#1832228c 40%,#1d30281a 65%,#1f302c70 100%)}
.hero-content{text-shadow:0 1px 20px #14281a30}
.letter:after{content:'';position:absolute;inset:0;background:url('assets/enveloppe.webp') center/100% 100%;clip-path:polygon(0 0,100% 0,100% 13.8%,0 13.8%);z-index:1;pointer-events:none;transition:opacity .8s 1.8s}.opening .letter:after{opacity:0}
@media(min-width:761px){.cover-layout{min-height:0;padding:10px 0 20px}.letter-wrap{max-width:min(680px,calc((100svh - 280px)*1.34))}}
@media(max-width:1000px) and (min-width:761px){.timeline{grid-template-columns:1fr 1fr}.intro{gap:6vw}.cover-copy h1{font-size:80px}.letter-wrap{width:110%}.hero-content h1{font-size:100px}}
@media(max-width:760px){.cover-header{padding:25px 24px}.brand{font-size:10px;letter-spacing:2.6px}.brand small{font-size:6px;letter-spacing:2.5px}.edition{font-size:6px;letter-spacing:1.1px}.cover-layout{display:flex;flex-direction:column;justify-content:center;width:100%;gap:20px;padding:12px 0 30px}.cover-copy{text-align:center;padding:0}.cover-copy .eyebrow{font-size:7px;letter-spacing:2px}.cover-copy h1{font-size:65px;letter-spacing:-1.8px;line-height:.9;margin:18px 0 0}.cover-copy h1 br{display:none}.cover-copy h1 em{display:block}.cover-note,.cover-names{display:none}.letter-wrap{width:100%;max-width:540px}.letter-hint{margin-top:13px;font-size:7px;letter-spacing:1.6px}.letter-hint span{font-size:19px}.letter-inner>span{font-size:25px}.letter-inner small,.letter-inner b{font-size:4px}.cover-footer{padding:13px 24px 20px;font-size:6px;letter-spacing:1px}.cover-footer>span{max-width:130px}.cover-footer .text-button{font-size:8px;letter-spacing:0}.nav{height:67px;padding:0 24px}.nav>div{gap:17px}.nav>div a:first-child,.nav>div a:last-child{display:none}.nav a{font-size:9px}.nav .monogram{font-size:28px}.nav-rsvp span{margin-left:10px}.hero{height:calc(100svh - 67px);min-height:630px;max-height:950px}.hero-image,.hero-film{object-position:50% 70%}.hero-content{top:6%;padding:25px 18px}.hero-content .eyebrow{font-size:7px;letter-spacing:2px}.hero-content h1{font-size:clamp(48px,15vw,69px);letter-spacing:-1.8px;margin:16px 0 11px;white-space:nowrap}.hero-content h1 i{font-size:.6em;margin:0}.hero-script{font-size:24px}.hero-location{font-size:7px;letter-spacing:2px;line-height:1.9;margin-top:20px}.hero-coordinate{display:none}.hero-scroll{left:24px;bottom:25px;transform:none;font-size:7px;text-align:left;letter-spacing:1px}.hero-scroll span{font-size:23px}.film-toggle{right:22px;bottom:28px;font-size:8px;padding:9px 12px}.section{padding:75px 25px}.section h2{font-size:45px;letter-spacing:-1px;margin:22px 0 26px}.eyebrow{font-size:8px;letter-spacing:1.7px}.intro{display:flex;flex-direction:column;gap:44px;text-align:center;padding-top:75px;padding-bottom:75px}.intro-picture{width:90%;max-width:390px;padding:0}.intro-picture span{font-size:6px;letter-spacing:1.4px;margin-top:16px}.intro-copy{max-width:420px}.intro-copy>p:not(.eyebrow):not(.signature){font-size:21px;line-height:1.55}.signature{font-size:32px;margin-top:29px}.date-section{padding-top:65px;padding-bottom:65px}.scratch-instruction{font-size:19px}.scratch-grid{gap:12px;max-width:400px;margin-top:30px}.date-number{font-size:60px}.date-month{font-size:43px}.date-number.year{font-size:35px}.scratch-label{font-size:8px;letter-spacing:1.4px;margin-top:15px}.scratch-reveal{font-size:14px}.date-result{font-size:20px;min-height:30px}.line-link{font-size:9px}.line-link span{margin-left:15px}.interlude{height:490px;max-height:75svh}.interlude img{object-position:50% center}.interlude figcaption{left:26px;bottom:42px;font-size:43px;letter-spacing:-.7px}.countdown-section{padding:65px 18px}.countdown{gap:9px;margin:34px 0 24px}.countdown>div{min-width:56px}.countdown span{font-size:54px}.countdown small{font-size:7px;letter-spacing:.7px;margin-top:13px}.countdown b{font-size:26px}.countdown-note{font-size:9px;max-width:280px;margin:auto}.programme{padding-top:75px;padding-bottom:75px}.timeline{display:block;max-width:420px;margin:40px auto 0}.timeline-item{display:grid;grid-template-columns:68px 1fr;gap:15px;padding-top:24px;margin-top:24px}.timeline time{font-size:9px;padding-top:6px}.timeline h3{font-size:31px;margin:0 0 13px}.timeline p{font-size:20px}.venue{display:block;min-height:0}.venue-picture{height:420px;min-height:0}.venue-copy{padding:58px 30px 65px}.venue-copy h2{font-size:50px;letter-spacing:-1px}.venue-copy>p:not(.eyebrow){font-size:22px}.venue-picture>span{left:25px;font-size:7px}.detail-grid{display:block;margin-top:40px}.detail-grid article{padding-top:18px;margin-top:32px}.detail-grid h3{font-size:32px;margin:12px 0 16px}.detail-grid p{font-size:21px}.detail-no{font-size:20px}.rsvp{padding-top:60px;padding-bottom:75px}.rsvp-ornament{font-size:38px;margin-bottom:29px}.rsvp>p:not(.eyebrow):not(.demo-note){font-size:21px}.demo-note{font-size:8px;max-width:280px;margin:24px auto 0;line-height:1.8}.footer{padding:50px 25px 25px}.footer-names{font-size:41px}.footer>p{font-size:7px;letter-spacing:1.5px;margin-bottom:35px}.footer>div{flex-direction:column;font-size:6px;gap:10px;letter-spacing:1.1px}.footer .text-button{font-size:8px}dialog{padding:38px 25px 28px}dialog h2{font-size:43px}}
@media(max-height:710px) and (max-width:760px){.cover-header{padding-top:18px;padding-bottom:18px}.cover-layout{padding:0 0 20px;gap:0}.cover-copy h1{font-size:50px;margin-top:14px}.letter-wrap{max-width:390px}.cover-footer{padding-top:0;padding-bottom:13px}.cover-copy .eyebrow{font-size:6px}}
@media(max-width:370px){.cover-copy h1{font-size:57px}.hero-content h1{font-size:15vw}.hero-script{font-size:22px}.countdown>div{min-width:48px}.countdown{gap:7px}.countdown span{font-size:47px}.date-number.year{font-size:30px}.date-month{font-size:37px}.scratch-grid{gap:9px}.line-link{font-size:8px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition:none!important}.reveal-section{opacity:1;transform:none}}
