/* Épaisseurs construites dans le repère des battants, pas d'image de tranche flottante. */
.cover-panel{--clasp-size:clamp(100px,15vw,160px)}.cover-front{transform:translateZ(7px)}.cover-back{transform:rotateY(180deg) translateZ(7px)}.cover-edge{width:14px}.cover-left .cover-edge{right:-7px}.cover-right .cover-edge{left:-7px}.cover-seam{display:none}.cover-rail{position:absolute;top:1%;bottom:1%;width:12px;transform-style:preserve-3d;transform:translateZ(10px);pointer-events:none}.cover-left .cover-rail{right:1px}.cover-right .cover-rail{left:1px}.rail-facet{position:absolute;top:0;bottom:0;left:4.4px;width:3.3px;backface-visibility:hidden;background:repeating-linear-gradient(25deg,#a88754 0,#e8d4ad 1px,#fff0d0 2px,#bda173 3px,#d7be90 4px);border-left:.3px solid #f5e8cb88;box-shadow:inset .5px 0 #765c3b55}.rail-pearl{position:absolute;left:3px;width:6px;height:6px;border-radius:50%;background:radial-gradient(circle at 27% 22%,#fffef6,#e9d6b3 55%,#9c8055);box-shadow:1px 1px 2px #20071377;transform:translateZ(7px);transition:transform var(--opening-duration) cubic-bezier(.5,.04,.17,1)}.opening-active .cover-left .rail-pearl{transform:translateZ(7px) rotateY(112deg)}.opening-active .cover-right .rail-pearl{transform:translateZ(7px) rotateY(-112deg)}.opening.resetting .rail-pearl{transition:none!important}
.cover-clasp.clasp-volume{width:var(--clasp-size);height:auto!important;aspect-ratio:1.5;transform:translate(-50%,-50%) translateZ(21px);transform-style:preserve-3d;backface-visibility:visible;pointer-events:none}.clasp-face{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;transform:translateZ(9px);backface-visibility:hidden;filter:drop-shadow(0 2px 1px #19030b77)}.clasp-base,.clasp-reverse{position:absolute;left:21%;top:12%;width:58%;height:76%;border-radius:50%;border:2px solid #c6a268;background:radial-gradient(ellipse at 35% 25%,#fff6d8,#e0c697 65%,#aa7d45);backface-visibility:hidden}.clasp-base{transform:translateZ(7px)}.clasp-reverse{transform:translateZ(-7px) rotateY(180deg);background:repeating-radial-gradient(ellipse at 50% 50%,#ba955d 0 2px,#e5ce9e 3px,#c7a574 4px);box-shadow:inset 0 0 0 3px #a5804e}.clasp-wall{position:absolute;height:14px;background:linear-gradient(0deg,#806039,#e6ce9e 22%,#f8e2b2 46%,#b68b52 72%,#8a663b);backface-visibility:hidden}
.date-stage{aspect-ratio:1.3;height:auto;min-height:270px;max-width:860px;overflow:clip;perspective:800px}.date-arch{position:absolute;top:0;left:0;width:100%;height:auto;max-width:none;z-index:1;transform-origin:50% 90%;transform:rotate(var(--arch-turn,0deg));pointer-events:none}.date-section .embroidered-date,.date-section.revealing .embroidered-date{inset:22% 14% 28%;z-index:2;display:flex;align-items:center;justify-content:center;opacity:var(--date-opacity,0);clip-path:inset(0 var(--date-right,100%) 0 0);font-size:clamp(29px,5.5vw,59px)}.falling-leaves{position:absolute;inset:0;z-index:3;pointer-events:none}.falling-leaf{position:absolute;top:32%;width:20%;height:auto;transform:translate(var(--leaf-x,0px),var(--leaf-y,0px)) rotate(calc(var(--leaf-start) + var(--leaf-turn,0deg)));transform-origin:50% 10%;opacity:var(--leaf-opacity,1)}.date-trigger{bottom:0;z-index:4}.date-section.date-complete .falling-leaves{visibility:hidden}.date-section .event-hour{margin-top:10px}
.story-section{max-width:1100px;padding-left:40px;padding-right:40px}.story-section .section-heading{display:block;min-height:0;padding-top:0}.story-section .story-photo{max-width:850px;margin-inline:auto}.story-columns{text-align:left}
/* Les lèvres se rejoignent sur les diagonales du rabat ; aucune carte avant le geste. */
.envelope-v2 .envelope-pocket{clip-path:polygon(0 18%,50% 79%,100% 18%,100% 100%,0 100%)}.envelope-v2 .letter{visibility:hidden;opacity:0;transition:transform 1.6s cubic-bezier(.25,.7,.2,1) 1s,opacity .15s linear 1s}.envelope-v2.open .letter{visibility:visible;opacity:1}.envelope-v2 .envelope-hit{position:absolute;inset:16% 3% 3%;z-index:10;border:0;background:transparent;border-radius:2px}.envelope-v2.open .envelope-hit{display:none}.envelope-v2 .letter-copy{visibility:inherit}.envelope-v2 .envelope-flap{z-index:7}.envelope-v2 .envelope-flap:before{content:'';position:absolute;top:16%;left:6%;right:6%;height:2px;background:#e8ddc6;transform:translateZ(1px);backface-visibility:hidden}.envelope-v2:not(.open) .envelope-back:after{content:'';position:absolute;inset:18.2% 4% 5%;background:#eee3cd;clip-path:polygon(0 0,50% 82%,100% 0,100% 100%,0 100%);z-index:0;pointer-events:none}.envelope-v2 .envelope-back{position:absolute;inset:0}.envelope-v2 .envelope-back>img{position:relative;z-index:1}
@media(max-width:760px){.cover-panel{--clasp-size:115px}.date-stage{aspect-ratio:1.25;min-height:260px;margin-top:15px}.date-section .embroidered-date,.date-section.revealing .embroidered-date{inset:22% 14% 28%;font-size:34px}.story-section{padding:45px 30px}.story-columns{text-align:center}.story-section .section-heading h2{font-size:35px}}
@media(max-width:355px){.date-stage{min-height:235px}.date-section .embroidered-date{font-size:29px}.story-section{padding-inline:25px}.cover-panel{--clasp-size:105px}}
@media(prefers-reduced-motion:reduce){.rail-pearl{transition:none}.envelope-v2 .letter{transition:none!important}}
.date-section .embroidered-date,.date-section.revealing .embroidered-date{inset:20% 21% 28%;flex-direction:column;gap:2px;line-height:1.25;white-space:normal}.date-weekday{display:block;font-size:.78em}.date-main{display:block;white-space:nowrap}.envelope-v2:not(.open) .envelope-back:after{inset:18.5% 4% auto;height:23%;clip-path:none;background:#e8ddc9 url(assets/49-rabat-soie.webp) center 25%/150% auto;z-index:2}
.date-section .embroidered-date,.date-section.revealing .embroidered-date{left:25%;right:25%}.date-weekday{font-size:.9em}
