@font-face{font-family:GreatVibes;src:url('assets/great-vibes.ttf') format('truetype');font-display:swap} :root{--wine:#b8657b;--deep:#955567;--rose:#b46b80;--pink:#edbdc7;--cream:#fffefa;--ink:#76585d;--muted:#8a7374;--line:#ead1d5;--gold:#c2ad85}body{background:#eab0bb;background-image:radial-gradient(ellipse at 50% 0,#f6cbd3,transparent 60%);font-family:Georgia,'Times New Roman',serif}#invitation{max-width:520px;margin:38px auto;background:#fffefa;box-shadow:0 22px 85px #65334735;border-left:6px solid #f0dfd0;border-right:6px solid #f0dfd0;overflow:hidden}.eyebrow{font-family:Georgia,serif;font-size:11px;letter-spacing:.16em;line-height:1.8}h2{font-family:GreatVibes,Georgia,serif;color:var(--rose);font-size:43px;letter-spacing:0;line-height:1.25;margin:10px 0 20px}h3{font-size:19px;letter-spacing:.02em;color:#967077;font-weight:400;line-height:1.6}section{position:relative;padding:50px 58px;text-align:center;scroll-margin-top:20px}section p{font-size:14px;line-height:1.85;max-width:340px;color:var(--muted);position:relative;z-index:1}section>*{position:relative;z-index:1}.floral-left:before,.floral-right:before{content:'';position:absolute;width:155px;height:155px;background:url('assets/flores.png') left bottom/contain no-repeat;pointer-events:none;z-index:0}.floral-left:before{left:-10px;bottom:0}.floral-right:before{right:-13px;top:15px;transform:rotate(180deg)}.button{border-radius:3px;min-height:42px;padding:13px 24px;text-transform:none;letter-spacing:.04em;font-family:Georgia,serif;font-size:12px;border-color:#dd9eac}.button.primary{background:#d38a9b;border-color:#d38a9b;color:#fff}.button:hover,.button.primary:hover{background:#bd7589;color:#fff}.cover-photo{display:block;width:100%;height:600px;object-fit:cover;object-position:50% 65%}.cover-title{text-align:center;position:relative;padding:40px 38px 32px}.cover-title h1{font-family:GreatVibes,Georgia,serif;font-size:82px;line-height:.95;font-weight:400;color:#b46b80;margin:25px 0 15px}.cover-title h1 span{font-size:60px}.surname{font-size:11px;letter-spacing:.16em;margin-top:20px}.little-rule{display:flex;justify-content:center;align-items:center;gap:17px;color:#c0aa87;margin:25px auto;font-size:21px}.little-rule:before,.little-rule:after{content:'';height:1px;width:38px;background:#dccab1}.first-quote{font-size:15px;line-height:1.8;color:#8d7074}.tiny-link{font-size:10px;letter-spacing:.09em;text-decoration:none;color:#ba7d8c;display:inline-block;margin-top:15px}.intro{padding-top:15px;padding-bottom:45px}.round-photo{height:272px;width:232px;border-radius:50%;padding:6px;border:1px solid #dba5b3;overflow:hidden;margin:0 auto 35px}.round-photo img{width:100%;height:100%;object-fit:cover;object-position:50% 35%;border-radius:50%;transform:scale(1.45);transform-origin:50% 40%}.music{margin:0 auto 30px;color:#c47c91;max-width:240px}.music .eyebrow{font-size:10px}.music-line{height:1px;background:#dfc0c7;margin:15px 0}.player{display:flex;align-items:center;justify-content:center;gap:26px;font-size:17px}.player button{width:39px;height:39px;background:#d4869d;border-radius:50%;border:0;color:white;display:grid;place-items:center}.player svg{width:21px;height:21px;fill:currentColor}.music-time{font-size:11px;min-width:28px}.music small{font-size:9px;display:block;margin-top:14px;color:#a78b8d}.xv-title{font-family:GreatVibes,Georgia,serif;color:#bf8293;font-size:54px;margin:18px 0}.script-signature{font-family:GreatVibes,Georgia,serif!important;font-size:30px!important;color:#b97e8e!important}.calendar-section{padding:20px 0 0;background:#fffefa}.calendar-arch{border-radius:250px 250px 0 0;background:#d98a9d;color:#fffaf7;padding:70px 48px 40px}.calendar-arch .eyebrow{font-size:14px;letter-spacing:.22em}.calendar-heading{display:flex;justify-content:center;align-items:center;gap:18px;margin:15px 0 20px}.calendar-heading span{font-size:12px;font-style:italic;border-bottom:1px solid #ffffff6b;padding-bottom:7px}.calendar-heading strong{font:68px Georgia}.calendar-arch h2{color:#fff7f5;font-size:45px;margin-bottom:12px}.calendar-arch p{color:#fff8f5;font-size:13px;line-height:1.8}.month-grid{display:grid;grid-template-columns:repeat(7,1fr);align-items:center;gap:3px 0;margin:29px auto 20px;font-size:13px;max-width:320px}.month-grid>span{height:36px;position:relative;display:grid;place-items:center}.month-grid .weekday{font-size:10px;opacity:.85;height:25px}.month-grid .heart-date{isolation:isolate}.heart-date svg{position:absolute;width:44px;height:44px;fill:#fffaf7;stroke:#fffaf7;z-index:-1;top:-3px}.heart-date b{color:#c1768d;font-weight:400;padding-top:1px}.calendar-caption{font-style:italic;margin-bottom:0!important;font-size:12px!important}.venue{padding-top:62px;padding-bottom:60px}.venue h2{font-size:46px}.venue h3{font-size:19px;margin:15px 0}.venue-hour{font:italic 23px Georgia;color:#b27687}.venue .line-icon{margin-bottom:12px}.line-icon{width:42px;height:42px;color:#c78198}.venue .button{margin-top:10px}.photo-break{padding:0 12px;background:#fffefa}.photo-break .photo{width:100%}.photo-break img{width:100%;height:570px;object-fit:cover;object-position:50% 50%;display:block;box-shadow:none}.count-section{padding-top:48px;padding-bottom:42px}.count-section h2{font-size:43px;margin-bottom:8px}.countdown{border:1px solid #cbb3bb;border-radius:6px;margin:15px auto;max-width:335px;padding:14px 3px}.countdown div{border-right:1px solid #e7d9de;width:25%}.countdown strong{font:28px Georgia;color:#9d858c}.countdown span{font-size:8px;letter-spacing:.06em;margin-top:8px;color:#b48c97}.count-section p{font-size:12px;font-style:italic;margin:14px auto 0}.dress{padding-top:38px;padding-bottom:50px}.dress h2{font-size:41px;margin-bottom:12px}.dress .eyebrow{font-size:15px;letter-spacing:.12em}.outfit-icon{width:85px;height:64px;color:#a99197;display:block;margin:20px auto}.dress .small-copy{font-size:11px;line-height:1.6;max-width:220px}.gifts{padding-top:50px;padding-bottom:52px}.gifts h2{font-size:43px}.gifts h3{font-size:16px;letter-spacing:.08em;text-transform:uppercase;margin:15px 0}.gifts p{font-size:13px}.little-heart{font-size:25px;color:#c48095;margin:20px auto}.rsvp{background:#fffefa;color:var(--ink);padding:50px 46px 45px}.rsvp:after{display:none}.rsvp h2{font-size:48px}.rsvp p{font-size:13px;color:#93777e}.rsvp form{margin-top:22px;max-width:100%}.rsvp label{font-family:Georgia,serif;font-size:11px;color:#a47584;letter-spacing:.01em;margin:18px 0 7px}.rsvp label small{color:#b8a1a5}.rsvp input,.rsvp select,.rsvp textarea{background:#fdf9f8;border:1px solid #e9d4da;border-radius:3px;padding:12px;color:#80676f;font-family:Georgia,serif;font-size:12px;min-height:42px}.rsvp textarea{min-height:80px}.rsvp .button{background:#d38a9b;color:#fff;border-color:#d38a9b}.rsvp .button:hover{background:#bf778d}.rsvp .notice{font-size:9px;color:#aa8b94;line-height:1.7}.rsvp .status{color:#a36d7e;font-size:11px}.closing{background:#fffefa;position:relative;padding:35px 40px 45px}.closing .farewell{font:14px/1.9 Georgia;color:#9a7b82;margin:16px auto}.closing h2{font-size:48px;margin-bottom:8px}.closing-name{font:38px GreatVibes,Georgia,serif;color:#bc8293;margin:15px 0}.closing .eyebrow{font-size:9px}.closing .button{font-size:10px;margin-top:20px;border:0;text-decoration:underline;text-underline-offset:5px;color:#bc8293}.back-photo{position:relative}.back-photo img{display:block;width:100%;height:auto}.last-quote{position:absolute;bottom:0;left:0;right:0;padding:65px 20px 30px;background:linear-gradient(transparent,#482b3bba);font:30px/1.4 GreatVibes,Georgia,serif;color:#fff8f5;text-align:center}.gate{background:#edb7c3}.gate:before{background:radial-gradient(ellipse at 50% 30%,#f8e0e6,#d993a7);opacity:1}.gate-inner{max-width:520px;color:#a65f76}.gate-inner:before,.gate-inner:after{content:'';position:absolute;width:200px;height:200px;background:url('assets/flores.png') left bottom/contain no-repeat;pointer-events:none;opacity:.8}.gate-inner:before{left:0;bottom:0}.gate-inner:after{right:0;top:0;transform:rotate(180deg)}.gate h1{font:76px GreatVibes,Georgia,serif;letter-spacing:0;margin-bottom:20px}.gate h1 span{font:49px GreatVibes,Georgia,serif;letter-spacing:0;margin-top:0}.gate .eyebrow{color:#a56b7c;font-size:10px}.gate .teaser{color:#a36d7d;font-size:14px}.gate .date{color:#a56b7c}.open-button{color:#a15b72;border-color:#c28096;font-family:Georgia,serif;font-size:10px}.envelope{background:#dfb4c0;border-color:#f5e3e8;box-shadow:0 24px 50px #b36e8540}.envelope .front{background:linear-gradient(32deg,#dba5b7 49.5%,transparent 50%) bottom left/51% 100% no-repeat,linear-gradient(-32deg,#e5bdc9 49.5%,transparent 50%) bottom right/51% 100% no-repeat}.envelope .flap{background:linear-gradient(#f7e4eb,#d79eaf)}.gate .ornament{color:#ba929e}.magic-dust{opacity:.7}.lightbox::backdrop{background:#6d3f50e8}.lightbox .close{color:white}@media(max-width:560px){#invitation{margin:0 auto;border-left:4px solid #f0dfd0;border-right:4px solid #f0dfd0;max-width:100%}.cover-photo{height:490px;object-position:50% 65%}.cover-title{padding:35px 28px 27px}.cover-title h1{font-size:76px}.cover-title h1 span{font-size:54px}section{padding-left:45px;padding-right:45px}.floral-left:before,.floral-right:before{width:125px;height:125px}.intro{padding-top:10px}.round-photo{width:213px;height:250px}.calendar-arch{padding:60px 35px 35px}.calendar-arch h2{font-size:43px}.photo-break{padding:0 10px}.photo-break img{height:490px}.rsvp{padding-left:35px;padding-right:35px}.last-quote{font-size:28px}.gate-inner:before,.gate-inner:after{width:160px;height:160px}.gate h1{font-size:70px}.gate h1 span{font-size:46px}.envelope{margin-top:25px;margin-bottom:20px}.month-grid>span{height:33px}.heart-date svg{height:40px;width:40px;top:-3px}}@media(prefers-reduced-motion:reduce){.magic-dust{display:none}}
/* Portada editorial con fotografía fundida en el papel. */
.cover-visual{position:relative;background:var(--cream);isolation:isolate}
.cover-visual:after{content:'';position:absolute;inset:0;pointer-events:none;z-index:1;background:linear-gradient(to top,var(--cream) 0%,#fffefaed 3%,#fffefa80 11%,transparent 25%),linear-gradient(to right,#fffefa 0%,#fffefa00 5%,#fffefa00 95%,#fffefa 100%)}
.cover-kicker{position:absolute;top:35px;left:20px;right:20px;display:flex;align-items:baseline;justify-content:center;gap:13px;z-index:2;color:#fff9f5;text-shadow:0 2px 16px #482c3e77;line-height:1}
.cover-kicker span,.cover-kicker em{font:49px GreatVibes,Georgia,serif;font-weight:400}
.cover-kicker strong{font:80px Georgia,'Times New Roman',serif;font-weight:400;letter-spacing:-.065em}
.cover-title{padding-top:12px}
@media(max-width:560px){.cover-kicker{top:27px;gap:11px}.cover-kicker span,.cover-kicker em{font-size:43px}.cover-kicker strong{font-size:69px}.cover-title{padding-top:10px}}
.rose-photo{position:relative;padding:0 10px;background:var(--cream)}.rose-photo .photo{width:100%}.rose-photo img{display:block;width:100%;height:auto;box-shadow:none;mask-image:linear-gradient(to bottom,transparent,#000 7%,#000 88%,transparent);-webkit-mask-image:linear-gradient(to bottom,transparent,#000 7%,#000 88%,transparent)}
.cover-kicker.cover-kicker-words{display:block;top:45px;left:16px;right:16px;font:48px/1.3 GreatVibes,Georgia,serif;letter-spacing:0;text-align:center;text-shadow:0 1px 12px #482c3e66}
@media(max-width:560px){.cover-kicker.cover-kicker-words{top:35px;font-size:42px}}
@font-face{font-family:InvitationSans;src:url('assets/open-sans-light.ttf') format('truetype');font-weight:300;font-display:swap}
.cover-kicker.cover-kicker-modern{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:7px;top:29px;left:18px;right:18px;color:#fffdfa;text-shadow:0 1px 10px #302d3540}
.cover-kicker-modern span,.cover-kicker-modern em{font:300 10px/1.3 InvitationSans,Arial,sans-serif;font-style:normal;letter-spacing:.38em;padding-left:.38em}
.cover-kicker-modern strong{font:300 63px/1 InvitationSans,Arial,sans-serif;letter-spacing:.13em;padding-left:.13em}
@media(max-width:560px){.cover-kicker.cover-kicker-modern{top:24px;gap:6px}.cover-kicker-modern strong{font-size:55px}.cover-kicker-modern span,.cover-kicker-modern em{font-size:9px}}
.cover-kicker.cover-kicker-modern{top:auto;bottom:5px;flex-direction:row;align-items:baseline;gap:12px;color:#b7758b;text-shadow:none}
.cover-kicker-modern strong{font-size:50px;letter-spacing:.1em;padding-left:.1em}
.cover-kicker-modern span,.cover-kicker-modern em{font-size:10px;letter-spacing:.24em;padding-left:.24em}
@media(max-width:560px){.cover-kicker.cover-kicker-modern{top:auto;bottom:3px;gap:10px}.cover-kicker-modern strong{font-size:44px}.cover-kicker-modern span,.cover-kicker-modern em{font-size:9px}}
/* Mayor contraste y lectura del título, dentro de la fotografía. */
.cover-kicker.cover-kicker-modern{bottom:22px;gap:14px;color:#302a2e;text-shadow:0 1px 8px #fffefa66}
.cover-kicker-modern strong{font-size:64px;letter-spacing:.08em;padding-left:.08em}
.cover-kicker-modern span,.cover-kicker-modern em{font-size:16px;letter-spacing:.15em;padding-left:.15em}
@media(max-width:560px){.cover-kicker.cover-kicker-modern{bottom:20px;gap:12px}.cover-kicker-modern strong{font-size:58px}.cover-kicker-modern span,.cover-kicker-modern em{font-size:14px}}
@font-face{font-family:InvitationBodoni;src:url('assets/bodoni-moda.ttf') format('truetype');font-weight:500;font-display:swap}
.cover-title h1{font-family:InvitationBodoni,Georgia,serif;font-size:58px;font-weight:500;font-style:normal;letter-spacing:.035em;line-height:1.18;text-transform:uppercase;color:#852543;margin:24px 0 15px}
.cover-title h1 span{font-family:inherit;font-size:45px;letter-spacing:.065em}
.closing-name{font-family:InvitationBodoni,Georgia,serif;font-size:33px;font-weight:500;color:#852543;letter-spacing:.025em}
.gate h1{font-family:InvitationBodoni,Georgia,serif;font-size:61px;font-weight:500;font-style:normal;letter-spacing:.035em;line-height:1.2;color:#852543}
.gate h1 span{font-family:InvitationBodoni,Georgia,serif;font-size:41px;font-weight:500;letter-spacing:.065em}
@media(max-width:560px){.cover-title h1{font-size:49px}.cover-title h1 span{font-size:39px}.closing-name{font-size:29px}.gate h1{font-size:53px}.gate h1 span{font-size:36px}}
/* La foto conserva sus laterales naturales; se funde únicamente abajo. */
.cover-visual:after{background:linear-gradient(to top,var(--cream) 0%,#fffefaed 3%,#fffefa80 11%,transparent 25%)}
@font-face{font-family:InvitationAllura;src:url('assets/allura.ttf') format('truetype');font-weight:400;font-display:swap}
.cover-title h1{font-family:InvitationAllura,Georgia,serif;font-size:85px;font-weight:400;font-style:normal;text-transform:none;letter-spacing:0;line-height:.92;color:#852543;margin:25px 0 22px}
.cover-title h1 span{font-family:InvitationAllura,Georgia,serif;font-size:70px;letter-spacing:0}
.closing-name{font-family:InvitationAllura,Georgia,serif;font-size:44px;font-weight:400;letter-spacing:0}
.gate h1{font-family:InvitationAllura,Georgia,serif;font-size:83px;font-weight:400;letter-spacing:0;line-height:1}
.gate h1 span{font-family:InvitationAllura,Georgia,serif;font-size:64px;font-weight:400;letter-spacing:0}
.round-photo img{object-position:50% 47%;transform:scale(1.3);transform-origin:50% 48%}
.photo-break img{object-position:50% 68%}
@media(max-width:560px){.cover-title h1{font-size:77px}.cover-title h1 span{font-size:63px}.closing-name{font-size:40px}.gate h1{font-size:76px}.gate h1 span{font-size:57px}}

/* Transiciones de papel rasgado, sin blanquear los laterales. */
.round-photo:before{content:'';position:absolute;left:-1px;right:-1px;top:-1px;height:60px;background:var(--cream);z-index:1;pointer-events:none;clip-path:polygon(0% 0%,100% 0%,100% 51.8%,99% 46.4%,98% 49.1%,97% 50.3%,96% 49.8%,95% 47.5%,94% 48.3%,93% 51.6%,92% 49.1%,91% 46.5%,90% 47.9%,89% 50.2%,88% 55.0%,87% 54.3%,86% 56.3%,85% 53.1%,84% 54.0%,83% 56.3%,82% 47.9%,81% 46.9%,80% 55.3%,79% 49.2%,78% 48.1%,77% 43.3%,76% 49.7%,75% 47.7%,74% 37.7%,73% 38.7%,72% 41.9%,71% 42.5%,70% 40.5%,69% 34.9%,68% 35.4%,67% 31.1%,66% 34.5%,65% 37.8%,64% 39.2%,63% 31.4%,62% 36.0%,61% 36.0%,60% 43.0%,59% 38.6%,58% 45.4%,57% 42.0%,56% 43.2%,55% 46.3%,54% 54.2%,53% 48.4%,52% 53.5%,51% 54.2%,50% 57.4%,49% 61.7%,48% 59.2%,47% 56.0%,46% 57.5%,45% 58.0%,44% 66.2%,43% 62.5%,42% 60.4%,41% 64.5%,40% 63.8%,39% 65.8%,38% 57.6%,37% 56.7%,36% 54.8%,35% 63.5%,34% 58.4%,33% 63.0%,32% 61.4%,31% 56.6%,30% 59.0%,29% 62.0%,28% 58.8%,27% 57.2%,26% 60.1%,25% 56.2%,24% 60.7%,23% 62.3%,22% 61.5%,21% 65.8%,20% 71.5%,19% 66.0%,18% 73.3%,17% 75.5%,16% 76.8%,15% 71.7%,14% 73.2%,13% 74.2%,12% 79.1%,11% 75.8%,10% 75.0%,9% 82.5%,8% 80.6%,7% 78.2%,6% 79.3%,5% 69.5%,4% 77.8%,3% 68.0%,2% 72.1%,1% 63.0%,0% 70.7%)}
.round-photo:after{content:'';position:absolute;left:-1px;right:-1px;top:auto;bottom:-1px;height:76px;background:var(--cream);z-index:1;pointer-events:none;clip-path:polygon(0% 71.1%,1% 73.0%,2% 73.8%,3% 65.8%,4% 73.0%,5% 70.2%,6% 70.8%,7% 72.2%,8% 68.2%,9% 68.8%,10% 75.4%,11% 67.9%,12% 72.5%,13% 68.8%,14% 63.4%,15% 61.7%,16% 62.6%,17% 61.5%,18% 55.8%,19% 50.8%,20% 49.9%,21% 54.7%,22% 51.4%,23% 43.4%,24% 49.1%,25% 45.0%,26% 41.4%,27% 46.0%,28% 37.6%,29% 36.8%,30% 39.0%,31% 43.0%,32% 41.3%,33% 41.1%,34% 45.9%,35% 41.5%,36% 46.3%,37% 39.4%,38% 48.1%,39% 42.8%,40% 48.7%,41% 51.3%,42% 50.2%,43% 50.1%,44% 50.2%,45% 52.5%,46% 48.7%,47% 47.3%,48% 50.2%,49% 49.4%,50% 44.7%,51% 48.0%,52% 46.5%,53% 42.4%,54% 46.9%,55% 46.6%,56% 41.1%,57% 45.4%,58% 45.8%,59% 41.8%,60% 38.7%,61% 36.9%,62% 35.3%,63% 36.8%,64% 44.4%,65% 35.6%,66% 45.0%,67% 43.9%,68% 46.1%,69% 40.8%,70% 47.9%,71% 45.4%,72% 52.1%,73% 55.4%,74% 56.7%,75% 57.0%,76% 62.6%,77% 58.0%,78% 59.2%,79% 68.0%,80% 61.4%,81% 66.4%,82% 67.5%,83% 73.0%,84% 68.6%,85% 70.9%,86% 70.4%,87% 70.1%,88% 69.7%,89% 69.2%,90% 69.9%,91% 67.5%,92% 66.5%,93% 70.7%,94% 70.3%,95% 62.1%,96% 68.3%,97% 58.4%,98% 60.9%,99% 66.1%,100% 58.6%,100% 100%,0% 100%)}
.round-photo{position:relative;padding:0;background:var(--cream)}
.round-photo img{mask-image:none;-webkit-mask-image:none}

@media(max-width:560px){.round-photo:before{height:49px}.round-photo:after{height:62px}}

/* Segunda fotografía: formato abierto con papel rasgado, sin óvalo. */
.intro .round-photo{position:relative;width:calc(100% + 116px);height:auto;margin:0 -58px 35px;padding:0;border:0;border-radius:0;overflow:hidden;background:var(--cream)}
.intro .round-photo img{display:block;width:100%;height:auto;border-radius:0;transform:none;object-fit:initial;object-position:initial;mask-image:none;-webkit-mask-image:none}
@media(max-width:560px){.intro .round-photo{width:calc(100% + 90px);margin-left:-45px;margin-right:-45px}}
/* Dorado del título de quince años en la portada. */
.cover-kicker.cover-kicker-modern{color:#ac813a}
/* Apariciones suaves al recorrer la invitación. */
@media(prefers-reduced-motion:no-preference){
.motion-ready .scroll-reveal{opacity:0;transform:translate3d(0,22px,0);transition:opacity .95s ease var(--motion-delay,0ms),transform 1.05s cubic-bezier(.2,.65,.25,1) var(--motion-delay,0ms)}
.motion-ready .scroll-reveal.is-revealed{opacity:1;transform:translate3d(0,0,0)}
.motion-ready .flower-motion:before{opacity:0;transition:opacity 1.5s ease .15s}
.motion-ready .flower-motion.is-revealed:before{opacity:1}
.motion-ready .calendar-motion{opacity:0;transform:translate3d(0,24px,0);transition:opacity 1s ease,transform 1.15s cubic-bezier(.2,.65,.25,1)}
.motion-ready .calendar-motion.is-revealed{opacity:1;transform:none}
.motion-ready .calendar-motion .calendar-piece{opacity:0;transform:translate3d(0,12px,0);transition:opacity .8s ease var(--motion-delay,0ms),transform .9s ease var(--motion-delay,0ms)}
.motion-ready .calendar-motion.is-revealed .calendar-piece{opacity:1;transform:none}
.motion-ready .calendar-motion.is-revealed .heart-date svg{animation:heart-arrives .75s cubic-bezier(.2,.65,.3,1) .85s both}
@keyframes heart-arrives{from{opacity:0;transform:scale(.65) rotate(-9deg)}70%{opacity:1;transform:scale(1.08) rotate(0deg)}to{opacity:1;transform:scale(1) rotate(0deg)}}
}
@media(prefers-reduced-motion:reduce){.scroll-reveal,.calendar-motion,.calendar-piece{opacity:1!important;transform:none!important;transition:none!important}.flower-motion:before{opacity:1!important}.heart-date svg{animation:none!important}}
/* L'apparition reste contrôlée par la page, avec activation explicite disponible. */
[data-motion-pending]{opacity:0}
.motion-control{display:block;border:1px solid #d7b0be;border-radius:3px;background:#fff9f5;color:#a6647a;margin:18px auto 0;padding:10px 13px;font:11px Georgia,serif;cursor:pointer;min-height:39px}
.motion-replay{margin:19px auto 25px;background:#fff9f5;color:#a6647a;font-size:12px}
/* Le contour conserve la déchirure, mais avec une transition douce. */
.round-photo:before{background:url('assets/torn-soft-before.svg') center/100% 100% no-repeat;clip-path:none;left:-3px;right:-3px}
.round-photo:after{background:url('assets/torn-soft-after.svg') center/100% 100% no-repeat;clip-path:none;left:-3px;right:-3px}
.hand-photo{margin:0;position:relative;background:var(--cream)}
.hand-photo img{display:block;width:100%;height:auto}
.burst{display:block!important;background:radial-gradient(circle,#fff1fb 0%,#ffcef0 13%,#ff32bbcf 30%,#f000a88c 47%,#df00934d 58%,transparent 73%)}
.round-photo:before{background-image:linear-gradient(to bottom,var(--cream) 0%,var(--cream) 12%,transparent 30%),url('assets/torn-soft-before.svg');background-size:100% 100%,100% 100%;background-repeat:no-repeat}
.round-photo:after{background-image:linear-gradient(to top,var(--cream) 0%,var(--cream) 12%,transparent 30%),url('assets/torn-soft-after.svg');background-size:100% 100%,100% 100%;background-repeat:no-repeat}
@font-face{font-family:InvitationSans;src:url('assets/open-sans-semibold.ttf') format('truetype');font-weight:600;font-display:swap}
.cover-kicker.cover-kicker-modern{color:#fff;text-shadow:0 2px 9px #432736a6}
.cover-kicker-modern strong{font-weight:600;font-size:72px}
.cover-kicker-modern span,.cover-kicker-modern em{font-weight:600;font-size:18px}
@media(max-width:560px){.cover-kicker-modern strong{font-size:65px}.cover-kicker-modern span,.cover-kicker-modern em{font-size:16px}}
/* Lumière blanche et fines étincelles à l'ouverture du sceau. */
.burst{background:radial-gradient(circle,#fff 0%,#fffffff0 13%,#ffffffb3 30%,#ffffff66 47%,#ffffff26 60%,transparent 74%)}
.opening-sparkles{position:fixed;inset:0;width:100vw;height:100vh;pointer-events:none;z-index:32}
