@font-face{font-family:Parisienne;src:url('fonts/Parisienne-Regular.woff2') format('woff2');font-display:block}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;color:#315d79;background:#f7f2e8 url('assets/31-fond-soie.webp') repeat center top/700px;font:19px/1.8 Georgia,serif}body.opening-pending{overflow:hidden}button,input,select{font:inherit}button,a{color:inherit}button{cursor:pointer;border:0;background:none}button:disabled{cursor:wait}img{max-width:100%}[hidden]{display:none!important}a{text-underline-offset:6px}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline:2px solid #537e9a;outline-offset:4px}.skip-link{position:fixed;top:-100px;left:12px;z-index:999;background:#fff5e7}.skip-link:focus{top:12px}p{margin:0 0 22px}h2{font:400 clamp(34px,4vw,47px)/1.25 Georgia;margin:10px 0 27px;text-shadow:.4px 1px #fffaf0}h3{font:400 28px/1.35 Georgia;margin:8px 0 20px}.eyebrow{font:10px/1.8 Arial,sans-serif;text-transform:uppercase;letter-spacing:.22em;color:#52748a;margin:0 0 22px}.small{font:11px/1.8 Arial,sans-serif;letter-spacing:.03em}.lead{font-size:22px;line-height:1.9}.chapter{padding:44px 32px;scroll-margin-top:20px}.reading{max-width:780px;margin:auto;text-align:center}.hero{position:relative;overflow:clip;isolation:isolate;min-height:1120px;padding:65px 30px 160px;text-align:center}.hero>.eyebrow{margin:0 auto 24px}.navigation{position:absolute;top:24px;right:24px;z-index:5;font-family:Arial}.navigation>button{width:42px;height:42px;display:grid;place-items:center;background:#fbf5e7bd;border-radius:50%}#menu{position:absolute;right:0;top:50px;min-width:190px;padding:18px 23px;background:#fff9eef5;border:1px solid #cdbd9d70;box-shadow:0 5px 20px #315d7910;text-align:left}#menu a{display:block;font:13px/1.5 Arial;text-decoration:none;padding:9px 0}.names{font-family:Parisienne;display:flex;flex-direction:column;width:min(440px,100%);margin:auto;filter:drop-shadow(.3px .6px .4px #315d791c)}.names:not(.handwritten-group){visibility:hidden}.names>span{display:block;height:112px;font:100px Parisienne}.names>em{display:block;height:60px;font:58px Parisienne;font-style:normal}.name-thread{display:block;width:100%;height:100%;overflow:visible}.welcome{font-size:22px;font-style:italic;line-height:1.65;max-width:450px;margin:26px auto 40px}.portrait{position:relative;width:min(340px,100%);aspect-ratio:2/3;margin:0 auto}.portrait .photo{position:absolute;left:6%;top:6%;width:88%;height:87%;object-fit:cover;object-position:center 35%;border-radius:50%}.photo-border{position:absolute;inset:0;width:100%;height:100%;object-fit:fill;pointer-events:none}.hero-shore,.closing-shore{position:absolute;bottom:0;left:0;width:100%;height:115px;object-fit:fill;pointer-events:none}.separator{width:min(450px,75%);height:60px;margin:10px auto 15px;display:flex;align-items:center;justify-content:center}.separator img{width:100%;height:100%;object-fit:contain}.button{display:inline-block;min-height:44px;padding:13px 22px;border-radius:26px;background:#315d79;color:#fff8eb;border:1px solid #315d79;font:12px/1.5 Arial;letter-spacing:.05em}.button.light{background:#fcf7eb;color:#315d79;border-color:#baa57e}.text-button,.date-links a{font:11px/1.5 Arial;padding:9px 0;border-bottom:1px solid #c3ae85;text-decoration:none;letter-spacing:.03em;min-height:36px}.date-reveal{height:220px;position:relative;display:flex;align-items:center;justify-content:center;overflow:clip;margin:25px -15px 10px;isolation:isolate}#date-full{font:42px/1.6 Parisienne;white-space:nowrap;margin:0;position:relative;z-index:1}.date-curtain{position:absolute;z-index:2;left:0;top:0;width:100%;height:100%;pointer-events:none;will-change:transform;background:#f7f2e8 url('assets/31-fond-soie.webp') center/700px;clip-path:polygon(0 0,55% 0,55% 100%,0 100%)}.date-curtain.right{clip-path:polygon(45% 0,100% 0,100% 100%,45% 100%)}.date-curtain img{position:absolute;top:40%;left:0;width:100%;height:45%;object-fit:fill}.date-curtain.right img{top:30%;left:3%}#date-trigger{position:absolute;bottom:0;left:50%;transform:translateX(-50%);z-index:3;white-space:nowrap}#event-time{font-size:25px}.date-links{display:flex;justify-content:center;gap:24px;margin:15px auto 38px;align-items:center}.countdown-intro{font-size:9px;margin:0}.countdown-medal{position:relative;width:min(490px,100%);aspect-ratio:1.5;margin:16px auto 12px}.countdown-medal>img{position:absolute;inset:0;width:100%;height:100%;object-fit:fill}#countdown{position:absolute;inset:24% 18% 26%;display:grid;grid-template-columns:repeat(3,1fr);gap:10px;align-content:center}#countdown>div:first-child{grid-column:1/-1}#countdown strong{font:italic 25px/1.2 Georgia;display:block}#countdown>div:first-child strong{font-size:49px}#countdown span{font:8px/1 Arial;letter-spacing:.09em;text-transform:uppercase}.countdown-outro{font-size:21px}.story-item{display:grid;grid-template-columns:1fr 1fr;gap:65px;align-items:center;max-width:980px;margin:45px auto 65px}.story-item:nth-child(even) .portrait{order:2}.story-item:nth-child(even) .story-copy{text-align:right}.story-copy p{font-size:21px;line-height:1.8}.interlude{height:90px;text-align:center;margin:0 auto}.interlude img{height:85px;width:95px;object-fit:contain}.venue-scene{display:block;width:min(420px,90%);height:175px;object-fit:contain;margin:40px auto 35px}#lieux .eyebrow:not(:first-child){margin-top:35px}.timeline{position:relative;max-width:650px;margin:30px auto}.timeline ol{list-style:none;padding:0;margin:0}.timeline li{display:grid;grid-template-columns:150px 1fr;gap:30px;align-items:center;min-height:185px;position:relative;padding:15px 0}.timeline img{width:105px;height:115px;object-fit:contain;justify-self:center}.timeline time{font:11px/1.5 Arial;letter-spacing:.15em;color:#7c7f6d}.timeline h3{font-size:26px;margin:7px 0 14px}.timeline p{font-size:19px;line-height:1.6}.timeline-thread{position:absolute;top:60px;bottom:80px;left:75px;border-left:2px dotted #c1ac85;z-index:-1}#timeline-pearl{position:absolute;left:0;top:0;display:block;width:14px;height:14px;border-radius:50%;background:radial-gradient(circle at 30% 30%,#fffdf4,#e4d8c0 58%,#af9670);box-shadow:1px 2px 3px #574c4138}.dance{position:relative;width:110%;margin:30px 0 20px -5%;aspect-ratio:1.5}.pose{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;opacity:0}.pose.active{opacity:1}#palette{display:flex;justify-content:center;gap:25px;flex-wrap:wrap;margin:25px auto}#palette figure{margin:0;font:10px/1.6 Arial}#palette i{display:block;width:28px;height:28px;border-radius:50%;box-shadow:inset 1px 1px 2px #fff8,1px 2px 3px #315d7925;margin:0 auto 8px}#practical-list{max-width:780px;margin:25px auto}.practical-item{border-bottom:1px dashed #bea98450;padding:25px 0}.practical-item summary{position:relative;cursor:pointer;list-style:none;font:25px/1.4 Georgia;padding-right:32px}.practical-item summary::-webkit-details-marker{display:none}.practical-item summary .eyebrow{display:block;margin-bottom:7px}.practical-item summary:after{content:'+';position:absolute;right:0;top:12px;font-size:24px;color:#9c8a69}.practical-item[open] summary:after{content:'−'}.practical-item>p{margin-top:22px;line-height:1.9}.practical-item a{font:12px/1.7 Arial}.envelope{position:relative;width:min(600px,100%);height:360px;margin:95px auto 0;perspective:1200px}.envelope-back,.envelope-pocket{position:absolute;bottom:0;left:0;width:100%;height:80%;object-fit:fill}.envelope-pocket{z-index:4;pointer-events:none}.envelope-back{z-index:0}.envelope-flap{position:absolute;top:20%;left:0;width:100%;height:62%;transform-origin:50% 0;transform-style:preserve-3d;z-index:6;transition:transform 1.8s ease}.envelope-flap img{position:absolute;inset:0;width:100%;height:100%;object-fit:fill;backface-visibility:hidden}.flap-face{transform:translateZ(1px)}.flap-back{transform:rotateY(180deg) translateZ(1px)}.rsvp-card{position:absolute;bottom:4%;left:22%;width:56%;height:80%;z-index:2;background:url('assets/30-carte-rsvp.webp') center/100% 100%;padding:33px 13px 60px;display:flex;flex-direction:column;align-items:center;transition:transform 1.8s ease .8s}.rsvp-card span{font:33px/1.15 Parisienne;margin-top:10px}.rsvp-card small{font:11px/1.5 Arial;margin-top:24px;border-bottom:1px solid #c9b387;padding:8px 0}#envelope-open{position:absolute;inset:15% 0 0;z-index:10}#envelope[data-state=open] .envelope-flap{transform:rotateX(174deg);z-index:0}#envelope[data-state=open] .rsvp-card{transform:translateY(-43%)}#envelope[data-state=open] #envelope-open{display:none}.closing{position:relative;padding-bottom:155px;overflow:clip;max-width:none}.closing .portrait{width:280px;margin:25px auto}.closing>p:not(.eyebrow){max-width:500px;margin:25px auto}.closing-shore{height:115px}dialog{border:0;background:transparent;color:#315d79;width:min(640px,calc(100% - 20px));padding:0;max-height:94dvh;overflow:auto}dialog::backdrop{background:#183d52a0;backdrop-filter:blur(4px)}.rsvp-paper{position:relative;background:#fcf7ec url('assets/31-fond-soie.webp') center/700px;padding:55px 42px 35px;box-shadow:inset 0 0 0 9px #f7f0df,inset 0 0 0 11px #b9a27a66,inset 0 0 0 14px #fff9ec}.rsvp-paper:before{content:'';position:absolute;inset:19px;border:2px dotted #c5ae82;pointer-events:none}.rsvp-paper h2{text-align:center;font:42px Parisienne;margin:0 0 30px}.dialog-close{position:sticky;float:right;top:10px;margin:10px 10px -50px 0;z-index:10;width:35px;height:35px;border-radius:50%;background:#fff7e9e6;font:25px Arial}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:16px}form label{display:block;font:12px/1.7 Arial;margin:0 0 19px;min-width:0}input:not([type=radio]),select{display:block;width:100%;min-height:44px;min-width:0;padding:12px;margin-top:7px;border:1px solid #b9a984;border-radius:3px;background:#fffaf1c9;color:#315d79}fieldset{border:0;border-top:1px solid #bea98455;padding:18px 0;margin:5px 0;min-width:0}legend{font:19px Georgia;padding-right:10px}.choice{display:flex;gap:8px;align-items:center;font-size:13px}.guest-person{border-top:1px dashed #bea98455;padding-top:15px}.guest-person h4{font:17px Georgia}#rsvp-submit{width:100%;margin-top:10px}#rsvp-result{font:14px/1.7 Arial;margin-top:20px;overflow-wrap:anywhere}#rsvp-result.error{color:#9f3947}.rsvp-personal-link{font-size:10px;display:block;margin:12px 0}
/* Le couvercle partage un seul pivot ; les faces et couches suivent ce repère. */
#opening{position:fixed;inset:0;background:#f7f2e8 url('assets/31-fond-soie.webp') center/700px;z-index:100;isolation:isolate;overflow:hidden}.opening-camera{position:absolute;left:50%;top:44%;transform:translate(-50%,-50%);width:min(580px,92vw);aspect-ratio:1;perspective:1400px;transform-style:preserve-3d}#shell-rig{position:absolute;inset:0;transform-origin:50% 78%;transform-style:preserve-3d;will-change:transform}.shell-base{position:absolute;top:46%;left:0;width:100%;height:66.7%;object-fit:fill;transform:translateZ(0)}.shell-shadow{position:absolute;left:12%;top:85%;width:76%;height:11%;border-radius:50%;background:#a38c6440;filter:blur(17px);transform:translateZ(-4px)}#lid-hinge{position:absolute;top:49%;left:0;width:100%;height:100%;transform-origin:50% 4%;transform-style:preserve-3d;transform:rotateX(58deg);will-change:transform}.lid-volume{position:absolute;inset:0;transform-style:preserve-3d}.lid-volume>img{position:absolute;inset:0;width:100%;height:100%;object-fit:fill;backface-visibility:hidden}.lid-layer{filter:brightness(.88);backface-visibility:visible!important}.depth-0{transform:translateZ(0)}.depth-1{transform:translateZ(1px)}.depth-2{transform:translateZ(2px)}.depth-3{transform:translateZ(3px)}.depth-4{transform:translateZ(4px)}.depth-5{transform:translateZ(5px)}.depth-6{transform:translateZ(6px)}.lid-face{transform:translateZ(7px)}.lid-back{transform:rotateY(180deg) translateZ(1px);clip-path:inset(8% 0 0 0)}.shell-hinge{position:absolute;width:22%;height:8%;left:39%;top:48%;object-fit:fill;transform:translateZ(7px)}.shell-pearl{position:absolute;top:75%;left:43%;width:14%;aspect-ratio:1;transform:translateZ(8px);opacity:0}.shell-pearl img{width:100%;height:100%;object-fit:contain}#open-invitation{position:absolute;left:12%;top:25%;width:76%;height:46%;z-index:6}#opening-calligraphy{position:absolute;left:50%;bottom:12%;transform:translateX(-50%);font:clamp(32px,5vw,54px)/1.3 Parisienne;white-space:nowrap;width:88%;z-index:7;text-shadow:.4px 1px #fff9eb}#skip-opening{position:absolute;bottom:max(24px,env(safe-area-inset-bottom));right:24px;width:38px;height:38px;border:1px solid #b4b6a1;border-radius:50%;background:#e4edf0;color:#315d79;z-index:7;font:18px Arial}.opening-wave{position:absolute;bottom:2%;left:5%;width:90%;height:7%;object-fit:fill;pointer-events:none}.opening-dismiss #opening-calligraphy,.opening-dismiss #skip-opening{visibility:hidden;pointer-events:none}
@media(max-width:700px){body{font-size:20px}.hero{padding:75px 28px 115px;min-height:980px}.hero>.eyebrow{font-size:9px;letter-spacing:.21em}.hero .names{width:330px;max-width:100%}.names>span{height:98px}.names>em{height:53px}.welcome{font-size:20px;margin:24px auto 32px}.hero .portrait{width:300px}.hero-shore{height:90px}.chapter{padding:34px 28px}.lead{font-size:21px}h2{font-size:35px}.separator{height:48px;margin:8px auto}.date-reveal{height:195px}#date-full{font-size:31px}.date-links{gap:20px}.date-links a,.date-links button{font-size:10px}.countdown-medal{width:350px;max-width:100%}#countdown>div:first-child strong{font-size:37px}#countdown strong{font-size:21px}#countdown span{font-size:6.5px}.story-item{display:flex;flex-direction:column;gap:23px;margin:32px auto 55px}.story-item:nth-child(even) .portrait{order:0}.story-copy,.story-item:nth-child(even) .story-copy{text-align:center}.portrait{width:290px}.story-copy p{font-size:20px}.venue-scene{height:135px;margin:30px auto}.timeline li{grid-template-columns:100px 1fr;gap:16px;min-height:180px}.timeline img{width:80px;height:95px}.timeline-thread{left:50px}.timeline h3{font-size:24px}.timeline p{font-size:18px}.dance{width:calc(100% + 34px);margin-left:-17px}.envelope{height:275px;margin-top:90px}.rsvp-card{padding:28px 8px 50px}.rsvp-card span{font-size:26px}.rsvp-card small{font-size:9px;margin-top:20px}.rsvp-paper{padding:55px 28px 30px}.rsvp-paper h2{font-size:38px}.closing{padding-bottom:130px}.closing .portrait{width:270px}.closing-shore{height:90px}.opening-camera{top:39%;width:94vw;perspective:1100px}#opening-calligraphy{bottom:15%;font-size:41px}.shell-hinge{height:7%}}
@media(max-width:360px){.chapter{padding-left:23px;padding-right:23px}.hero{padding-left:25px;padding-right:25px}.hero .portrait{width:270px}.names>span{height:88px}.names>em{height:45px}.hero{min-height:940px}.form-row{grid-template-columns:1fr}.rsvp-card span{font-size:23px}.rsvp-card small{font-size:8px}.envelope{height:250px}.timeline li{grid-template-columns:82px 1fr;gap:13px}.timeline-thread{left:41px}.timeline img{width:70px}#opening-calligraphy{font-size:34px}}
@media(max-height:500px) and (orientation:landscape){.opening-camera{width:330px;top:30%;perspective:1100px}#opening-calligraphy{bottom:9%;width:350px;font-size:32px}.opening-wave{height:5%;bottom:1%}#open-invitation{top:10%;height:65%}.shell-hinge{height:7%}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition:none!important}}
.portrait .photo{left:12%;top:14%;width:76%;height:70%;border-radius:50%}.story-item{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.story-copy{min-width:0}#dresscode{overflow:clip}
.shell-base{top:41%;height:72%}.shell-pearl{top:72.5%}@media(max-width:700px){.opening-camera{width:88vw}}
