@font-face{font-family:Parisienne;src:url('fonts/Parisienne-Regular.woff2') format('woff2');font-display:block}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:25px}body{margin:0;background:#f3ead9 url('assets/04b-fond-ivoire.webp') center top/700px auto;color:#625039;font:clamp(18px,1.6vw,22px)/1.65 Georgia,serif}body.opening-pending{overflow:hidden}[hidden]{display:none!important}button,a,input,select{touch-action:manipulation}button,a{color:inherit}button{font:inherit;cursor:pointer}button{border:0;background:none}a{text-underline-offset:5px}img{display:block;max-width:100%}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible{outline:2px solid #6d7e89;outline-offset:6px}h1,h2,h3,p,figure{margin:0}h2{font-size:clamp(32px,4.5vw,55px);line-height:1.2;font-weight:400;margin:18px 0 28px;text-wrap:balance}h3{font-size:clamp(25px,3vw,34px);line-height:1.3;font-weight:400;margin:20px 0 15px}p+p{margin-top:18px}p{overflow-wrap:anywhere}.chapter{padding:70px clamp(24px,6vw,75px);position:relative}.reading{max-width:930px;margin:auto;text-align:center}.eyebrow{font:11px/1.7 Arial,sans-serif;letter-spacing:2.5px;text-transform:uppercase;color:#8d795b}.small{font:13px/1.7 Arial,sans-serif;color:#82745d}.lead{font-style:italic;font-size:clamp(20px,2.1vw,27px)}.button{display:inline-block;padding:14px 24px;border:1px solid #b8a17b;background:#f9f4e8;border-radius:30px;font:13px/1.5 Arial,sans-serif;min-height:44px;box-shadow:0 3px 12px #66523413}.text-button{display:inline-block;border:0;border-bottom:1px solid #b9a47d;border-radius:0;padding:7px 0;font:12px/1.5 Arial,sans-serif;text-decoration:none;letter-spacing:.4px;min-height:36px}.skip-link{position:fixed;top:-100px;left:10px;z-index:100;background:#fff;padding:10px}.skip-link:focus{top:10px}.separator{max-width:650px;width:82%;margin:10px auto 20px}.separator img{width:100%;height:65px;object-fit:contain}.hero{position:relative;text-align:center;padding:150px 28px 85px;isolation:isolate}.sky{position:absolute;z-index:-1;inset:0 0 auto;height:230px;background:url('assets/06-ciel-etoile.webp') center top/cover;mask-image:linear-gradient(#000 20%,transparent 100%);opacity:.93}.hero .eyebrow{color:#836f53;margin-top:5px}.welcome{font-style:italic;max-width:470px;margin:16px auto 40px;font-size:clamp(19px,2vw,25px)}.navigation{position:absolute;right:clamp(20px,5vw,65px);top:32px;z-index:20}#menu-button{width:44px;height:44px;display:grid;place-items:center;color:#f4e6ca}#menu{position:absolute;right:0;top:55px;min-width:210px;background:#f9f4e9;box-shadow:0 6px 25px #372c2522;padding:20px;text-align:left;border:1px solid #d1bd98}#menu a{display:block;font:14px/1.5 Arial;padding:9px;text-decoration:none}.names{width:min(480px,100%);margin:22px auto;color:#9a7a4c}.names>span{display:flex;align-items:center;justify-content:center;height:clamp(80px,12vw,128px);font:clamp(62px,10vw,108px)/1 Parisienne,serif;min-width:0}.names>em{display:flex;justify-content:center;align-items:center;height:45px;font:40px/1 Parisienne;color:#b99c60}.name-thread{width:100%;height:100%;overflow:visible}.names>em .name-thread{max-width:75px}.names:not(.handwritten-group){visibility:hidden}.portrait{position:relative;width:min(340px,77vw);aspect-ratio:.66;margin:35px auto 15px}.photo{position:absolute;inset:2%;width:96%;height:96%;object-fit:cover;border-radius:50% 50% 3% 3%/34% 34% 2% 2%}.photo-border{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}.hero-dunes{position:absolute;bottom:-15px;left:0;width:100%;height:120px;object-fit:fill;pointer-events:none}.intro{padding-top:75px;padding-bottom:45px}.date-embroidery{width:100%;height:85px;display:flex;align-items:center;justify-content:center}.date-embroidery>span{display:block;width:100%;height:75px}.date-embroidery .name-thread{width:100%;height:100%}#date-stage{position:relative;display:grid;place-items:center;min-height:210px;margin:35px -8px 0;isolation:isolate;overflow:clip}.date-veil{position:absolute;inset:0;width:100%;height:100%;object-fit:fill;z-index:2;transform-origin:0 0;filter:drop-shadow(0 5px 6px #6a56352a)}#date-trigger{position:absolute;z-index:3;bottom:15px}.date-actions{display:flex;justify-content:center;gap:25px;flex-wrap:wrap;margin:20px 0 0}#event-time{font-size:25px;margin-top:10px}.countdown-before{margin-top:70px;font-size:10px;letter-spacing:2px}.countdown-after{margin-top:14px;font-style:italic;font-size:18px}.countdown-frame{position:relative;width:min(620px,100%);aspect-ratio:2.35;margin:15px auto 0;display:grid;place-items:center}.countdown-frame>img{position:absolute;width:100%;height:100%;object-fit:fill}#countdown{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));width:82%;gap:6px;position:relative;text-align:center}#countdown strong{font:clamp(24px,4vw,45px)/1.2 Georgia;color:#697b88}#countdown span{display:block;font:8px/1.6 Arial;letter-spacing:.7px;text-transform:uppercase;margin-top:8px}#story-album{max-width:1030px;margin:40px auto 0}.story-item{display:grid;grid-template-columns:1fr 1fr;gap:65px;align-items:center;margin:65px 0}.story-item .portrait{width:min(300px,100%);margin:auto}.story-item:nth-child(even) .portrait{order:2}.story-copy{text-align:left}.story-copy p{font-size:20px}.venue-grid{display:grid;grid-template-columns:1fr 1fr;gap:42px;margin:65px -5px 0}.venue-grid img{width:100%;height:200px;object-fit:contain;margin:0 auto 20px}.venue-grid p:not(.eyebrow){font-size:19px}.timeline{position:relative;max-width:700px;margin:45px auto 0}.timeline ol{list-style:none;margin:0;padding:0}.timeline li{display:grid;grid-template-columns:150px 1fr;gap:45px;position:relative;min-height:200px;padding:22px 16px}.timeline li>img{width:135px;height:145px;object-fit:contain}.timeline li>div{align-self:center}.timeline time{font:11px Arial;letter-spacing:2px;color:#9b7a4f}.timeline h3{margin:10px 0}.timeline p{font-size:19px}.timeline-thread{position:absolute;left:175px;top:20px;bottom:20px;width:2px;background:repeating-linear-gradient(#bca477 0 3px,transparent 3px 6px)}#timeline-pearl{position:absolute;top:0;left:50%;width:12px;height:12px;border-radius:50%;background:radial-gradient(circle at 30% 25%,white,#dccca8 60%,#a78b5c);box-shadow:1px 2px 3px #77603e4a;transform:translateX(-50%)}.oasis{width:100%;max-width:1350px;margin:0 auto}.oasis img{width:100%;max-height:260px;object-fit:contain}#dance-stage{position:relative;width:110%;margin:38px 0 25px -5%;aspect-ratio:2.65}#dance-stage img{position:absolute;width:100%;height:100%;object-fit:contain;opacity:0;transition:opacity .3s}#dance-stage .active{opacity:1}#palette{display:flex;justify-content:center;gap:clamp(15px,4vw,40px);margin:25px auto 20px}#palette figure{font:10px Arial}#palette i{display:block;width:26px;height:26px;border-radius:50%;margin:0 auto 8px;border:1px solid #6b5c3544}#practical-list{text-align:left;margin-top:40px}details{padding:24px 0;border-bottom:1px dashed #b9a68377}summary{cursor:pointer;list-style:none;font-size:clamp(22px,3vw,29px);position:relative;padding-right:30px;line-height:1.4}summary::-webkit-details-marker{display:none}summary::after{content:'+';position:absolute;right:2px;top:15px;font:24px Arial}details[open] summary::after{content:'−'}summary .eyebrow{display:block;font-size:10px;margin-bottom:8px}details p{margin:20px 0;font-size:19px}details a{font:12px Arial;display:inline-block;padding:8px 0}#envelope{position:relative;width:min(520px,100%);aspect-ratio:1.22;margin:55px auto 0;perspective:1100px}#envelope img{position:absolute;width:100%;pointer-events:none}.envelope-back{height:75%;bottom:0;object-fit:fill;z-index:0}.envelope-pocket{height:43%;bottom:0;object-fit:fill;z-index:4}.envelope-flap{position:absolute;left:0;top:25%;width:100%;height:44%;transform-origin:50% 0;transform-style:preserve-3d;z-index:5;transition:transform 1.8s cubic-bezier(.4,0,.2,1)}.envelope-flap img{height:100%;object-fit:fill;backface-visibility:hidden}.flap-back{transform:rotateX(180deg)}#envelope-open{position:absolute;inset:25% 0 0;z-index:8}#rsvp-card-open{position:absolute;left:15%;top:35%;width:70%;height:52%;background:#f9f4e8 url('assets/21-carte-rsvp.webp') center/100% 100%;z-index:2;border-radius:8px;padding:20px 10px;opacity:0;transition:transform 1.7s .65s,opacity .3s .5s;box-shadow:0 4px 15px #69553824}#rsvp-card-open span{display:block;font:clamp(24px,3.3vw,39px)/1.1 Parisienne}#rsvp-card-open small{display:block;font:11px Arial;margin-top:18px}#envelope[data-state=open] .envelope-flap{transform:rotateX(-175deg);z-index:1}#envelope[data-state=open] #rsvp-card-open{transform:translateY(-64%);opacity:1}#envelope[data-state=open] #envelope-open{display:none}#envelope-hint{margin-top:20px}.closing{padding-bottom:120px}.closing .names{width:min(410px,100%)}.closing .portrait{width:min(285px,72vw)}.closing>p:not(.eyebrow){margin:30px auto 20px}.closing-dunes{width:100%;height:100px;object-fit:fill;margin-top:55px}dialog{border:0;padding:0;background:transparent;color:#625039;width:min(650px,calc(100% - 24px));max-height:calc(100dvh - 30px);overflow-y:auto;overscroll-behavior:contain}dialog::backdrop{background:#2d251fcc;backdrop-filter:blur(4px)}.dialog-close{position:sticky;float:right;top:12px;right:15px;z-index:2;width:42px;height:42px;border-radius:50%;background:#f8f1e6;font:30px/1 Arial;margin:14px 14px -56px 0}.rsvp-paper{background:#f9f4e8;padding:65px clamp(28px,7vw,65px) 45px;border:15px solid #e0d1b5;border-image:url('assets/21-carte-rsvp.webp') 80 fill/25px stretch;min-height:500px}.rsvp-paper h2{font:48px Parisienne;text-align:center;margin:0 0 25px}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:20px}label{display:block;font:13px/1.7 Arial;margin-bottom:20px;min-width:0}input:not([type=radio]),select{width:100%;display:block;min-width:0;font:16px Arial;color:#5c4c35;line-height:1.5;padding:11px 8px;border:1px solid #c6b38f;background:#fffaf0;border-radius:3px;margin-top:6px}fieldset{border:0;padding:0;margin:10px 0 20px;font:14px Arial}legend{margin-bottom:18px}.choice{display:flex;align-items:center;gap:10px}.choice input{accent-color:#8c704b}.guest-person{border-top:1px dashed #c6b38f;padding-top:18px}.guest-person h4{font:14px Arial}.error{color:#853e32}#rsvp-result{font:14px/1.6 Arial;margin-top:22px;overflow-wrap:anywhere}#rsvp-result button{display:block;margin-top:15px}#opening{position:fixed;inset:0;z-index:80;isolation:isolate;background:#f3ead9 url('assets/04b-fond-ivoire.webp') center/700px;overflow:hidden}#curtain-canvas{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}.curtain-fallback{position:absolute;top:0;height:100%;width:50.8%;max-width:none;object-fit:fill}.curtain-fallback.left{left:0}.curtain-fallback.right{right:0;transform:scaleX(-1)}.webgl-ready .curtain-fallback{visibility:hidden}#crescent-anchor{position:absolute;left:50%;top:49%;width:clamp(65px,12vw,110px);aspect-ratio:.8;transform:translate(-50%,-50%);perspective:650px;pointer-events:none}.crescent-volume{position:absolute;inset:0;transform-style:preserve-3d}.crescent-volume img{position:absolute;width:100%;height:100%;object-fit:contain;filter:drop-shadow(1px 3px 2px #6b502826)}#open-invitation{position:absolute;inset:0;width:100%;height:100%;z-index:2}#opening-calligraphy{position:absolute;z-index:3;bottom:13%;left:50%;transform:translateX(-50%);width:max-content;max-width:92%;padding:10px 0;font:clamp(33px,6vw,60px)/1.3 Parisienne;white-space:nowrap;color:#917447;text-shadow:.6px 1px #72563255,-.5px -.5px #fff8d4;visibility:hidden}.fonts-ready #opening-calligraphy{visibility:visible}#skip-opening{position:absolute;bottom:max(22px,env(safe-area-inset-bottom));right:25px;z-index:4;background:#777d64;color:#fff8e7;border:1px solid #cfc6a4;border-radius:50%;width:43px;height:43px;font:22px Arial;box-shadow:0 2px 6px #4b3c2525}.dismiss-controls #opening-calligraphy,.dismiss-controls #skip-opening,.dismiss-controls #open-invitation{visibility:hidden;pointer-events:none}#opening-error{position:absolute;bottom:10%;left:5%;width:90%;z-index:6;background:#fff9ed;font:14px Arial;padding:15px}body.opening-pending #hero-names{visibility:hidden}
@media(max-width:650px){.chapter{padding:52px 25px}.hero{padding-top:135px;padding-bottom:80px}.names{width:min(350px,100%)}.names>span{height:95px}.names>em{height:38px}.hero .eyebrow{font-size:9px;letter-spacing:1.5px}.welcome{font-size:20px;max-width:300px}.hero-dunes{height:80px}.portrait{width:min(290px,77vw)}.story-item{display:flex;flex-direction:column;gap:27px;margin:35px 0 65px}.story-item:nth-child(even) .portrait{order:0}.story-item .portrait{width:min(255px,75vw)}.story-copy{text-align:center}.story-copy p{font-size:19px}.venue-grid{grid-template-columns:1fr;gap:45px;margin-top:45px}.venue-grid img{height:170px}.timeline li{grid-template-columns:100px 1fr;gap:30px;min-height:190px;padding:17px 0}.timeline li>img{width:95px;height:115px}.timeline-thread{left:112px}.timeline h3{font-size:25px}.timeline p{font-size:17px}.timeline time{font-size:10px}.countdown-frame{aspect-ratio:2.1}#countdown{gap:4px}#countdown strong{font-size:28px}#countdown span{font-size:7px;letter-spacing:0}.countdown-before{margin-top:50px}#date-stage{min-height:170px}.date-embroidery>span{height:65px}#date-trigger{bottom:3px}#dance-stage{width:100%;margin-left:0;aspect-ratio:2.45}.separator img{height:45px}.oasis img{max-height:150px}.envelope-flap{top:25%}#rsvp-card-open{padding:15px 10px}#rsvp-card-open small{font-size:10px;margin-top:12px}.form-row{gap:12px}.rsvp-paper{padding:65px 24px 35px;border-width:10px}.closing{padding-bottom:65px}#opening-calligraphy{bottom:14%;font-size:clamp(32px,8vw,46px)}}@media(max-width:360px){.chapter{padding-left:22px;padding-right:22px}.names>span{height:85px}.form-row{grid-template-columns:1fr}.timeline li{grid-template-columns:80px 1fr;gap:25px}.timeline li>img{width:75px}.timeline-thread{left:89px}.eyebrow{letter-spacing:1.8px}#countdown strong{font-size:24px}}@media(max-height:500px) and (orientation:landscape){#opening-calligraphy{bottom:8%;font-size:34px}#crescent-anchor{width:60px;top:44%}.hero{padding-top:140px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation:none!important;transition:none!important}}

body{background-image:linear-gradient(#f5edddaa,#f5edddaa),url('assets/04b-fond-ivoire.webp')}
