/* V2 : matière de la fresque finale, volets articulés, vrais supports photo. */
body{background-image:repeating-linear-gradient(0deg,#ad936503 0px,#ad936503 1px,transparent 1px,transparent 3px),repeating-linear-gradient(90deg,#fff8df15 0px,#fff8df15 1px,transparent 1px,transparent 3px)}.site-header{justify-content:flex-end}.hero{gap:48px}.hero-copy{z-index:1}.hero-portrait{transform:none;max-width:430px}.photo-mount{padding:0!important;border:0!important;box-shadow:none!important;position:relative;isolation:isolate;background:none!important}.portrait-mount{aspect-ratio:.8004268943}.landscape-mount{aspect-ratio:1.4991181658}.photo-mount .mount-frame{position:absolute!important;inset:0!important;width:100%!important;height:100%!important;max-width:none;aspect-ratio:auto;object-fit:fill;z-index:2;pointer-events:none}.photo-mount>.photo{position:absolute!important;aspect-ratio:auto!important;object-fit:cover;border-radius:10px;z-index:1;box-shadow:none}.portrait-mount>.photo{left:9.733333%;top:9.098399%;width:79.6%;height:82.230096%}.landscape-mount>.photo{left:7.129412%;top:13.180247%;width:85.505882%;height:74.874074%}.story-photo{transform:none}.closing-photo{width:min(660px,100%);margin:30px auto 42px;transform:none}.closing-photo>.photo{object-position:50% 45%}.story-columns{margin-top:30px}.photo-mount img{image-rendering:auto}
.opening-pearl{background:#f1e7d4;perspective:1550px;perspective-origin:50% 50%}.cover-panel{position:absolute;top:0;bottom:0;width:50.3%;transform-style:preserve-3d;transition:transform var(--opening-duration) cubic-bezier(.5,.04,.17,1);will-change:transform}.cover-left{left:0;transform-origin:0 50%;z-index:2}.cover-right{right:0;transform-origin:100% 50%;z-index:1}.cover-front,.cover-back{position:absolute;inset:0;backface-visibility:hidden;transform-style:preserve-3d;background:#f1e7d5;box-shadow:0 0 14px #72552f22}.cover-front{transform:translateZ(5px)}.cover-back{transform:rotateY(180deg) translateZ(5px)}.cover-front>img:not(.cover-clasp),.cover-back>img{width:100%;height:100%;object-fit:cover;object-position:left bottom}.cover-right .cover-front>img,.cover-right .cover-back>img{transform:scaleX(-1)}.cover-back>img{object-position:center top;opacity:.92}.cover-edge{position:absolute;top:0;bottom:0;width:10px;background:repeating-linear-gradient(0deg,#d6c4a0 0,#f5ebd5 1px,#e3d4b7 3px);box-shadow:0 0 2px #7d674e55;transform:rotateY(90deg);backface-visibility:visible}.cover-left .cover-edge{right:-5px}.cover-right .cover-edge{left:-5px}.cover-front:after{content:'';position:absolute;inset:0;background:linear-gradient(90deg,#52382233,transparent 22%,#fff9e511 65%,#593b1d22);opacity:.35;pointer-events:none}.cover-left .cover-front{border-right:1px solid #c8b595}.cover-right .cover-front{border-left:1px solid #c8b595}.cover-clasp{position:absolute!important;left:100%;top:45%;width:clamp(90px,13vw,140px);height:auto!important;max-width:none;transform:translate(-50%,-50%) translateZ(8px);z-index:5;backface-visibility:hidden}.opening-active .cover-left{transform:rotateY(-112deg)}.opening-active .cover-right{transform:rotateY(112deg)}.opening-active .cover-front:after{animation:cover-light var(--opening-duration) ease both}@keyframes cover-light{0%{opacity:.25}45%{opacity:.8}100%{opacity:.2}}.opening-pearl .open-action{color:#6c2436}.opening-pearl #opening-title{text-shadow:.5px 1px #80634444,-.5px -.5px #fff6df;font-size:clamp(36px,7.5vw,68px)}.opening-pearl .skip-opening{background:#f9f2e2b3;color:#6c2436;border-color:#bba477}.opening-pearl .opening-status{color:#6c2436}.opening-pearl .opening-intro{letter-spacing:2.6px}.opening-pearl .touch-hint{font-weight:400}
.date-stage{height:240px;margin:12px auto 0;overflow:clip}.date-section .embroidered-date,.date-section.revealing .embroidered-date{clip-path:inset(0 var(--date-right,100%) 0 0);transition:none;inset:0 0 25px;z-index:1}.date-carrier{position:absolute;top:calc(50% - 12px);left:var(--carrier-x,0%);width:clamp(60px,10vw,95px);height:auto;max-width:none;transform:translate(-50%,calc(-50% + var(--carrier-y,0px))) rotate(var(--carrier-turn,0deg));z-index:2;pointer-events:none;opacity:0}.date-trigger{top:auto;bottom:6px;background:#faf3e4}.date-section .event-hour{margin-top:0}.date-section.date-complete .date-trigger{display:none}.date-links{margin-top:9px}.countdown-wrap{margin-top:45px}.countdown-medallion{position:relative;width:min(650px,100%);aspect-ratio:1.5;margin:12px auto 6px}.countdown-medallion>img{width:100%;height:100%;object-fit:contain}.countdown-v2{position:absolute;left:18%;right:18%;top:17%;bottom:27%;display:block!important;padding:0!important;border:0!important;margin:0!important;max-width:none;container-type:inline-size}.countdown-v2 .count-days{height:58%}.countdown-v2 .count-days strong{font:400 clamp(36px,18cqw,70px)/1 Cormorant;letter-spacing:0}.countdown-v2 span{margin-top:3px;font-size:9px;letter-spacing:1.5px}.count-smaller{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-top:10px}.countdown-v2 .count-smaller strong{font:400 clamp(20px,10cqw,36px)/1 Cormorant}.countdown-v2 .count-smaller span{font-size:8px;letter-spacing:.7px}.countdown-after{margin-top:0}
.venue-layout{display:flex;flex-direction:column;gap:20px;text-align:center;margin-top:10px}.venue-panorama{width:min(760px,100%);max-height:260px;object-fit:contain;margin:0 auto}.venue-main{max-width:850px}.venue-details{gap:50px;text-align:left}.venue-main>h3{font-size:42px}.dress-section{padding-top:55px}.dress-section>h2{margin-top:14px}.dance-stage{width:min(1000px,100%);aspect-ratio:1.5;position:relative;isolation:isolate;margin:25px auto 0}.dance-pose{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;opacity:0;transition:opacity .16s linear}.dance-pose.active{opacity:1}.dress-section #dance-replay{margin:0 auto 12px}.palette{margin-top:20px}
.envelope-v2{width:min(650px,100%);aspect-ratio:1.5;margin-top:150px;margin-bottom:15px}.envelope-v2 .envelope-back>img,.envelope-v2 .envelope-pocket>img{object-fit:contain}.envelope-v2 .envelope-pocket{clip-path:polygon(0 39%,50% 68.2%,100% 39%,100% 100%,0 100%);z-index:5}.envelope-v2 .envelope-flap{left:3.8%;right:auto;top:-4.4%;width:92.4%;height:auto;aspect-ratio:2;transform-origin:50% 14.1%;transform-style:preserve-3d;z-index:6;transition:transform 1.8s cubic-bezier(.38,.08,.2,1)}.envelope-v2 .envelope-flap:after{content:none}.envelope-v2 .envelope-flap>img{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;backface-visibility:hidden}.envelope-v2 .flap-front{transform:translateZ(.6px)}.envelope-v2 .flap-back{transform:rotateY(180deg) translateZ(.6px)}.envelope-v2.open .envelope-flap{z-index:6;transform:rotateX(180deg)}.envelope-v2.open.flap-behind .envelope-flap{z-index:1}.envelope-v2 .letter{left:16%;width:68%;top:12%;height:82%;border-radius:3px;background:#f8f1e6 url(assets/27-couverture-nacree.webp) center top/150% auto;box-shadow:0 2px 0 #d8cbb2,0 5px 8px #542e1622;border:1px solid #d0bf9d;transition:transform 1.6s cubic-bezier(.25,.7,.2,1) 1s;z-index:2}.envelope-v2 .letter:before{content:'';position:absolute;inset:8px;border:1px dashed #b9a88499;pointer-events:none}.envelope-v2 .letter-copy{inset:14% 10% 20%}.envelope-v2 .letter-copy>p{font-size:clamp(28px,4vw,40px);line-height:1.15}.envelope-v2 .letter-copy .text-button{font-size:11px;min-height:44px;margin-top:12px}.envelope-v2.open .letter{transform:translateY(-38%)}.envelope-v2 .envelope-seal{top:77%;left:50%;width:clamp(60px,13vw,85px);height:clamp(50px,11vw,70px);padding:5px;border:1px solid #c5b18d;border-radius:50%;background:radial-gradient(circle at 30% 25%,#fff9eb,#e0d1b4 75%,#b39a71);box-shadow:1px 2px 4px #63492930;transform:translate(-50%,-50%) translateZ(2px);backface-visibility:hidden;opacity:1}.envelope-v2 .envelope-seal img{width:100%;height:100%;object-fit:contain}.envelope-v2.open .envelope-seal{opacity:1;transform:translate(-50%,-50%) translateZ(2px);pointer-events:none}.envelope-v2.open .letter-copy{z-index:2}.envelope-v2:not(.open) .letter-copy{visibility:hidden}
@media(max-width:760px){.hero{gap:26px;padding-top:110px}.hero-portrait{max-width:345px;width:100%}.hero-line{margin-top:16px}.story-columns{margin-top:22px}.date-stage{height:215px}.date-carrier{width:74px}.countdown-wrap{margin-top:38px}.countdown-v2 span{font-size:8px}.countdown-v2 .count-smaller span{font-size:7px;letter-spacing:.2px}.count-smaller{gap:5px;margin-top:6px}.venue-panorama{max-height:150px}.venue-details{gap:25px}.venue-main>h3{font-size:36px}.dance-stage{width:calc(100% + 24px);max-width:none;margin-left:-12px;margin-top:18px}.dress-section{padding-top:40px}.envelope-v2{margin-top:110px}.envelope-v2 .letter-copy>p{font-size:28px}.envelope-v2 .letter-copy .text-button{font-size:9px;margin-top:8px}.envelope-v2 .letter:before{inset:6px}.cover-clasp{top:46%;width:105px}.closing-photo{margin-top:25px;margin-bottom:28px}.countdown-after{font-size:22px}}
@media(max-width:355px){.countdown-v2 .count-days strong{font-size:34px}.countdown-v2 .count-smaller strong{font-size:19px}.countdown-v2 span{font-size:7px}.countdown-v2 .count-smaller span{font-size:6px}.envelope-v2 .letter-copy>p{font-size:25px}.envelope-v2 .letter-copy .text-button{font-size:8px;margin-top:4px}}
@media(prefers-reduced-motion:reduce){.cover-panel,.dance-pose,.envelope-v2 .envelope-flap,.envelope-v2 .letter{transition:none!important}.opening-active .cover-front:after{animation:none!important}}
.countdown-v2 .count-days strong{font-size:clamp(44px,22cqw,80px)}.countdown-v2 .count-smaller strong{font-size:clamp(23px,12cqw,38px)}.countdown-v2 .count-days span{font-size:10px}.countdown-v2 .count-smaller span{font-size:8px}.envelope-v2 .letter{background-image:linear-gradient(#fff9edaa,#fff9edaa),url(assets/27-couverture-nacree.webp);background-size:100% auto}@media(max-width:355px){.countdown-v2 .count-days strong{font-size:40px}.countdown-v2 .count-smaller strong{font-size:21px}.countdown-v2 .count-smaller span{font-size:7px}}

.cover-seam{position:absolute;top:12%;bottom:14%;width:1px;background:repeating-linear-gradient(to bottom,#beaa8466 0 2px,transparent 2px 5px);z-index:3;transform-style:preserve-3d}.cover-left .cover-seam{right:6px}.cover-right .cover-seam{left:6px}.cover-seam span{position:absolute;left:calc(var(--pearl-size) / -2);width:var(--pearl-size);height:var(--pearl-size);border-radius:50%;background:radial-gradient(circle at 28% 22%,#fffdf5,#f0e4cc 46%,#c3ad84 90%);box-shadow:.4px .8px 1px #70583655;transform:translateZ(3px);transition:transform var(--opening-duration) cubic-bezier(.5,.04,.17,1)}.opening-active .cover-left .cover-seam span{transform:translateZ(3px) rotateY(112deg)}.opening-active .cover-right .cover-seam span{transform:translateZ(3px) rotateY(-112deg)}.opening.resetting .cover-panel,.opening.resetting .cover-seam span{transition:none!important}
