/* V1: detalles de autoría local; no altera el PNG de la invitación. */
.letter-viewport{position:absolute;inset:0;z-index:var(--card-z);clip-path:polygon(-200% -600%,300% -600%,300% calc(100% - 7px + var(--shell-drop,0px)),-200% calc(100% - 7px + var(--shell-drop,0px)));pointer-events:none}
.letter{clip-path:none;overflow:hidden;box-shadow:0 2px 2px #343b2814,0 12px 40px #343b2835,0 1px 0 1px #fff8}
.envelope-back,.envelope-front,.envelope-lining{transform:translateY(var(--shell-drop,0px))}
.envelope-flap{transform:translateY(var(--shell-drop,0px)) rotateX(var(--flap));background:linear-gradient(140deg,#eee8d1,#d9d6c3 50%,#b9bca4)}
.envelope-back:after{content:'';position:absolute;inset:12px;border:1px solid #fff4;border-radius:3px}
.envelope-front{background-image:repeating-linear-gradient(0deg,#b4af9708 0 1px,transparent 1px 3px),linear-gradient(155deg,var(--envelope-light),var(--envelope));box-shadow:inset 0 -1px 0 #fff8}
.envelope-fold{background:repeating-linear-gradient(90deg,#a4a48a08 0 1px,transparent 1px 4px),linear-gradient(170deg,#eee9d6,var(--envelope))}
.envelope-fold:after{content:'';position:absolute;bottom:10px;left:10px;right:10px;height:1px;background:linear-gradient(90deg,transparent,#b39e6c66,transparent)}
.envelope-lining{background:repeating-linear-gradient(45deg,#a69c6f35 0 1px,transparent 1px 7px),repeating-linear-gradient(-45deg,#a69c6f35 0 1px,transparent 1px 7px),linear-gradient(120deg,#81937b,#c2c5a5)}
.envelope-shadow{transform:translateY(calc(28px + var(--shell-drop,0px)))}
.recipient p:after{content:'';display:block;width:55px;height:1px;margin:11px auto 0;background:linear-gradient(90deg,transparent,#b19b66,transparent)}
.seal{transform:translate(-50%,calc(-50% + var(--seal-lift,0px))) rotate(calc(-9deg - var(--p)*30deg)) scale(calc(1 + var(--p)*.3));border-radius:47% 45% 49% 44%;outline:1px solid #b0955466;outline-offset:-3px}
.seal-engraving{position:absolute;inset:0;width:100%;height:100%;fill:none;stroke:#82663170;stroke-width:.8;filter:drop-shadow(0 1px 0 #f3d6a999)}
.seal img{inset:17%;width:66%;height:66%;opacity:.88;filter:sepia(.8) contrast(1.45)}
.letter-glint{background:linear-gradient(105deg,transparent 30%,#fff5 48%,#fff2 52%,transparent 70%);transform:translateX(var(--glint-x,-120%))}
.opening-stage:after{content:'';position:absolute;inset:15px;border:1px solid #a88b4e18;pointer-events:none;z-index:0}
.opening-heading:before{content:'';position:absolute;width:38px;height:1px;background:var(--gold);top:-28px;left:0;opacity:.6}
.closing{background:radial-gradient(ellipse at 50% 40%,#b99b5612,transparent 65%);padding-bottom:135px}
.closing-logo{position:relative}.closing-logo:before{content:'';position:absolute;inset:-15px;border:1px solid var(--line);border-radius:50%;opacity:.4}.closing-logo:after{content:'✧';position:absolute;left:50%;top:-24px;transform:translateX(-50%);font-size:16px;color:var(--gold);background:var(--paper);padding:0 10px}
.countdown{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));width:min(780px,100%);gap:20px;margin:45px auto 25px}
.time-unit{display:flex;flex-direction:column;gap:20px;align-items:center;position:relative;min-width:0}
.time-unit:not(:last-child):after{content:'·';position:absolute;right:-16px;top:16%;font:35px Cormorant,serif;color:var(--line)}
.counter-number{font:300 clamp(56px,7vw,105px)/1 Cormorant,serif;color:var(--gold);letter-spacing:-2px;font-variant-numeric:lining-nums tabular-nums}
.counter-label{font-size:9px;letter-spacing:3px;color:var(--muted)}
.clock-note{font-size:11px;color:var(--muted);letter-spacing:.5px;margin:25px auto 50px;line-height:1.7;max-width:440px}
.view-switch{position:fixed;bottom:20px;left:50%;transform:translateX(-50%);z-index:40;display:flex;gap:4px;padding:5px;border:1px solid #c7b78870;border-radius:50px;background:#f3efe5ed;box-shadow:0 7px 28px #26392e16;backdrop-filter:blur(12px)}
.view-switch button{display:flex;align-items:center;gap:9px;justify-content:center;border:0;border-radius:30px;padding:10px 17px;background:transparent;color:#69705f;font:13px Forum,serif;white-space:nowrap;min-height:40px}
.view-switch button.active{background:#35443a;color:#fff9e9;box-shadow:0 2px 5px #26392e20}.view-switch svg{width:17px;height:17px;fill:none;stroke:currentColor;stroke-width:1}
#card-dialog>.dialog-close{position:sticky;top:0;float:right;z-index:2;width:44px;height:44px;padding:0;background:var(--paper);touch-action:manipulation}
body[data-theme=noche] .view-switch{background:#203528ed;border-color:#c7b78855}body[data-theme=noche] .view-switch button{color:#ccc9b9}body[data-theme=noche] .view-switch button.active{background:#d0b77b;color:#26392e}
footer{padding-bottom:85px}footer .demo-footer{font-size:9px;letter-spacing:2px;flex-basis:100%;text-align:center;margin:0}.dialog-actions{display:flex;align-items:center;justify-content:space-between;gap:20px}.dialog-actions a{font-size:13px}dialog>.eyebrow{margin:0 50px 18px 0;color:var(--gold)}dialog>img{max-height:70svh}
@media(max-width:850px){.opening-heading:before{left:calc(50% - 19px);top:-23px}.counter-number{font-size:80px}.countdown{gap:13px;width:min(680px,100%)}.time-unit{gap:18px}.counter-label{font-size:8px;letter-spacing:2px}.time-unit:not(:last-child):after{right:-10px}}
@media(max-width:560px){.opening-stage:after{inset:8px}.counter-number{font-size:55px;letter-spacing:-1.5px}.countdown{gap:12px;margin-top:34px}.counter-label{font-size:7px;letter-spacing:1.8px}.time-unit{gap:14px}.time-unit:not(:last-child):after{right:-9px;top:14%;font-size:24px}.clock-note{font-size:10px;margin-bottom:35px}.view-switch{bottom:16px}.view-switch button{font-size:12px;padding:9px 16px;min-height:39px}.opening-heading:before{top:-19px}.scroll-cue{bottom:13%}.closing{padding-bottom:120px}footer{padding-bottom:105px}}
@media(prefers-reduced-motion:reduce){.letter-viewport{display:none}.seal{transform:translate(-50%,-50%) rotate(-9deg)}}

/* Tarjeta rígida con canto perlado; el PNG original no se recorta ni modifica. */
.envelope-scene{perspective:1400px}
.letter{overflow:hidden;background:#fffdf7;border:1px solid #b79e6899;border-radius:3px;box-shadow:0 0 0 5px #fffaf1,0 0 0 6px #bda46d99,0 24px 65px #26392e38;transform:translate(var(--card-x),var(--card-y)) rotate(var(--card-angle)) rotateX(var(--card-tilt-x,0deg)) rotateY(var(--card-tilt-y,0deg)) scale(var(--card-scale))}
.letter>img{position:relative;z-index:1;opacity:1;box-shadow:none}
.letter-glint{overflow:hidden;z-index:2;opacity:.3;transform:none;background:linear-gradient(120deg,#fff2,transparent 55%,#8d7a4412)}
.paper-preview>img,dialog>.invitation-image{border:1px solid #b79e6899;outline:5px solid #fffaf1;outline-offset:0;box-shadow:0 0 0 6px #bda46d99,0 20px 55px #26392e2e;border-radius:2px}
.seal{box-shadow:2px 7px 14px #4e482648,inset 0 2px 3px #f8e6bc,inset 0 -3px 4px #80632f;transform:translate(-50%,calc(-50% + var(--seal-lift,0px))) rotate(calc(-9deg - var(--p)*150deg)) rotateY(calc(var(--p)*70deg)) scale(calc(1 + var(--p)*.65))}
/* Reloj de tarjetas partidas: conservamos cifras y disposición aprobadas. */
.counter-number{display:flex;align-items:center;justify-content:center;width:100%;min-height:122px;padding:14px 10px;border:1px solid #c4b08070;border-radius:14px;background:linear-gradient(180deg,#fffaf1 0 49.7%,#b3a68235 49.8% 50.2%,#f5efdf 50.3%);box-shadow:0 6px 0 #c8bea333,0 14px 28px #594b2c0d,inset 0 1px 0 #fff;position:relative;transform-origin:center;letter-spacing:-2px}
.counter-number:before,.counter-number:after{content:'';position:absolute;top:calc(50% - 4px);width:3px;height:8px;border-radius:2px;background:#b7a16d;box-shadow:0 1px 2px #4b3e2825}
.counter-number:before{left:-2px}.counter-number:after{right:-2px}
.time-unit{gap:20px}.time-unit:not(:last-child):after{display:none}.countdown{gap:24px;width:min(820px,100%)}
body[data-theme=noche] .counter-number{border-color:#8e82574d;background:linear-gradient(180deg,#2f4538 0 49.7%,#101e163d 49.8% 50.2%,#283e31 50.3%);box-shadow:0 6px 0 #152b1d77,0 14px 30px #0002,inset 0 1px 0 #d0b77b16}
@media(max-width:850px){.counter-number{min-height:108px;font-size:75px}.countdown{gap:18px}}
@media(max-width:560px){.counter-number{min-height:85px;font-size:clamp(35px,12vw,50px);padding:12px 3px;border-radius:10px;letter-spacing:-1px;box-shadow:0 4px 0 #c8bea333,0 8px 18px #594b2c09}.countdown{gap:12px}.time-unit{gap:17px}}
.opening-stage:before{content:'';position:absolute;inset:0;pointer-events:none;background:radial-gradient(ellipse at 54% 52%,#9bad96b0 0%,#b8c4a96b 46%,#a9ba9f22 75%,transparent 100%);opacity:var(--atmosphere,.45)}
.botanical-branch-left{width:370px;max-width:34vw;left:-6%;top:15%;opacity:.76;transform:rotate(32deg) translateY(calc(var(--p)*-45px))}
.botanical-branch-right{width:360px;max-width:34vw;right:-5%;bottom:-16%;opacity:.8;transform:rotate(-22deg) translateY(calc(var(--p)*50px))}
.our-day{background:radial-gradient(ellipse at 2% 70%,#a5b89a25,transparent 45%),radial-gradient(ellipse at 99% 25%,#b7c4a827,transparent 42%);overflow:hidden}
.botanical-page-left,.botanical-page-right{position:absolute;pointer-events:none;width:230px;max-width:24vw;opacity:.45;object-fit:contain;z-index:0}
.botanical-page-left{left:-7%;bottom:2%;transform:rotate(17deg)}.botanical-page-right{right:-7%;top:8%;transform:rotate(190deg)}
.our-day>*:not(img){position:relative;z-index:1}.paper-section{background:linear-gradient(120deg,#a6b49d40,#b8c2a72e)}
body[data-theme=noche] .opening-stage:before{background:radial-gradient(ellipse at 52% 52%,#71876855,transparent 75%)}
@media(max-width:850px){.botanical-branch-left{left:-22%;top:23%;max-width:57vw;opacity:.6}.botanical-branch-right{right:-22%;bottom:-5%;max-width:58vw;opacity:.65}}
@media(max-width:560px){.botanical-page-left,.botanical-page-right{max-width:34vw;opacity:.35}.botanical-page-left{left:-17%}.botanical-page-right{right:-17%}}

/* Rodillos recortados por cifra, sin destellos, cambios de luz o giro del bloque. */
.clock-digits{display:inline-flex;align-items:center;justify-content:center;line-height:1;letter-spacing:0;max-width:100%}
.clock-digit{position:relative;display:block;width:.5em;height:1.05em;overflow:hidden;flex:0 0 .5em;contain:paint}
.clock-value{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;line-height:1;font-variant-numeric:lining-nums tabular-nums;will-change:transform}
.counter-number{font-size:clamp(60px,7.7vw,114px)}
.counter-label{font-size:10px;letter-spacing:3px}
/* Fibra de papel y canto iluminado: capa visual independiente del archivo PNG. */
.letter:after{content:'';position:absolute;inset:0;z-index:3;pointer-events:none;opacity:.11;mix-blend-mode:multiply;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 160 160'%3E%3Cfilter id='f'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.45 .025' numOctaves='3' seed='7' stitchTiles='stitch'/%3E%3C/filter%3E%3Cpath d='M0 0h160v160H0z' filter='url(%23f)' fill='%238c806a' opacity='.38'/%3E%3C/svg%3E");background-size:160px 160px;box-shadow:inset 0 0 16px #9d855915,inset 0 1px 0 #fff9}
.letter{box-shadow:0 0 0 5px #fffaf1,0 0 0 6px #bda46d99,0 3px 0 6px #dfd3bfb3,0 25px 65px #26392e38}
.opening-subtitle{font-size:20px;line-height:1.65}.invitation-quote{font-size:28px}.day-details p{font-size:31px}.paper-intro>p:last-child{font-size:20px}.button{font-size:16px}.text-button{font-size:15px}.clock-note{font-size:13px;max-width:560px;line-height:1.8}
.reveal{transition-duration:1s;transition-timing-function:cubic-bezier(.2,.72,.2,1)}
.js-motion .reveal:not(.visible){transform:translateY(48px) scale(.97)}
.js-motion .paper-preview.reveal:not(.visible){transform:translateY(65px) rotate(8deg) scale(.96)}
.paper-section:after{content:'';position:absolute;inset:20px;border:1px solid #a88b4e26;pointer-events:none}
@media(max-width:850px){.counter-number{font-size:80px}.opening-subtitle{font-size:18px}.invitation-quote{font-size:27px}.day-details p{font-size:28px}}
@media(max-width:560px){.counter-number{font-size:clamp(35px,12vw,51px)}.counter-label{font-size:8px;letter-spacing:1.5px}.opening-subtitle{font-size:16px}.invitation-quote{font-size:25px}.paper-intro>p:last-child{font-size:18px}.clock-note{font-size:11px}.view-switch button{font-size:14px;min-height:42px}.closing-actions .text-button{font-size:14px}.day-details p{font-size:27px}.paper-section:after{inset:12px}}
@media(prefers-reduced-motion:reduce){.js-motion .reveal:not(.visible),.js-motion .paper-preview.reveal:not(.visible){transform:none}.clock-value{will-change:auto}}

/* 0.4: eucalipto vivo, tinta firme y papel liso, sin tramas decorativas.
   Sólo presentación web: los archivos aprobados y sus descargas no se retocan. */
:root{
  --paper:#faf4e7;
  --ink:#183e2c;
  --muted:#465c49;
  --gold:#895a17;
  --line:#b39a61;
  --envelope:#91ad86;
  --envelope-dark:#446b4c;
  --envelope-light:#c5d3af;
}
.grain{display:none}
.opening-stage:before{background:radial-gradient(ellipse at 64% 50%,#7ca47785,transparent 63%),radial-gradient(ellipse at 6% 95%,#d5b56538,transparent 58%)}
.opening-stage:after,.paper-section:after{display:none}
.botanical,.botanical-page-left,.botanical-page-right{filter:saturate(1.45) contrast(1.08)}
.botanical-left,.botanical-right{opacity:.83}
.botanical-branch-left,.botanical-branch-right{opacity:.86}
.botanical-page-left,.botanical-page-right{opacity:.65}
.opening-heading h1,.opening-heading h1 em,.paper-intro h2,.closing h2{font-weight:500}
.couple{font-weight:550}.couple em{font-weight:500}
.opening-subtitle,.invitation-quote,.paper-intro>p:last-child{color:var(--ink)}
.invitation-quote,.day-details p{font-weight:500}
.eyebrow,.counter-label,.scroll-cue>span:first-child,.text-button,.button,.clock-note,.paper-preview>span{-webkit-text-stroke:.12px currentColor}
.opening-heading .eyebrow,.our-day>.eyebrow,.paper-intro>.eyebrow{color:var(--gold)}
.day-details .eyebrow,.paper-preview>span{color:var(--muted)}
.button-gold{background:#956321;border-color:#956321;color:#fff9e9}
.button-gold:hover{background:#714710}
.counter-number{color:var(--gold);font-weight:500}
.envelope-back{background:#63835f;box-shadow:0 3px 0 #66845f,0 22px 48px #163a2b40}
.envelope-back:after{display:none}
.envelope-lining{background:#335c40}
.envelope-front{background:#a5bf98;box-shadow:none}
.envelope-front:before{background:#91ad85}.envelope-front:after{background:#9cb78f}
.envelope-fold{background:#b7cba8;filter:drop-shadow(0 -1px 1px #294f3030)}
.envelope-fold:after{display:none}
.envelope-flap{background:#94b18a;filter:drop-shadow(0 2px 2px #12392540)}
.recipient{bottom:11%}.recipient>span{font-size:9px;color:#28492e;letter-spacing:2.8px;-webkit-text-stroke:.18px currentColor}
.recipient p{font-size:32px;font-weight:600;color:#173c29;text-shadow:0 1px 0 #e5edd377}
.recipient p:after{display:none}
/* Lacre mate: borde derramado y reborde prensado, no círculos metálicos. */
.seal{width:96px;height:94px;isolation:isolate;border-radius:43% 49% 42% 47% / 45% 41% 51% 46%;background:radial-gradient(ellipse at 28% 20%,#e6ba76,#c29150 52%,#b17e41 90%);outline:none;box-shadow:1px 2px 0 #97632c,2px 6px 9px #16382355,inset 1px 2px 3px #f1cc90,inset -2px -3px 3px #9c6934}
.seal:before{content:'';position:absolute;inset:5px 7px 7px 5px;border-radius:47% 44% 49% 43%;box-shadow:inset 0 2px 3px #97683080,inset 0 -1px 2px #f2ce9580;pointer-events:none}
.seal-ring{inset:12px;border:0;border-radius:49% 47% 46% 48%;background:#c39456;box-shadow:inset 0 2px 3px #9b713d70,0 1px 2px #efc88c80}
.seal img{inset:15%;width:70%;height:70%;opacity:.95;filter:sepia(1) brightness(.65) contrast(1.45) drop-shadow(0 1px 0 #f0cb91);z-index:1}
.seal-shine{display:none}
.letter{border-color:#e2d8c0;box-shadow:0 0 0 5px #fff8e7,0 3px 0 5px #dfd3b7,0 26px 58px #163e2d55}
/* Acabado óptico idéntico en las tres vistas, sin modificar el original. */
.invitation-image{filter:contrast(1.16) saturate(1.22)}
.letter-glint,.letter:after{display:none}
.paper-preview>img,dialog>.invitation-image{border-color:#e2d8c0;box-shadow:0 0 0 5px #fff8e7,0 24px 55px #163e2d40}
.paper-section{background:linear-gradient(125deg,#a9c09665,#d2d6b052)}
.our-day{background:radial-gradient(ellipse at 2% 70%,#82aa7130,transparent 45%),radial-gradient(ellipse at 99% 25%,#bfc78c30,transparent 42%)}
body[data-theme=noche]{--paper:#193c2b;--ink:#fff4d8;--muted:#dbdfc7;--gold:#f0ca79;--line:#8fa875}
body[data-theme=noche] .opening-stage:before{background:radial-gradient(ellipse at 55% 55%,#81a66a60,transparent 75%)}
body[data-theme=noche] .botanical{opacity:.72}
body[data-theme=noche] .button-gold{background:#e7bf6d;border-color:#e7bf6d;color:#193c2b}
@media(max-width:850px){.botanical-left,.botanical-right{opacity:.7}.botanical-branch-left,.botanical-branch-right{opacity:.74}}
@media(max-width:560px){.seal{width:76px;height:74px}.seal-ring{inset:9px}.recipient p{font-size:27px}.recipient>span{font-size:8px}.botanical-page-left,.botanical-page-right{opacity:.5}.opening-heading .eyebrow{font-size:9px;letter-spacing:2.2px}}

/* 0.4.2: cuatro pliegues y sello comparten un solo punto de encuentro.
   Lacre sobre el cuerpo: no acompaña el giro de la solapa. */
.envelope-scene{--fold-center:50%}
.envelope-front{clip-path:polygon(0 0,var(--fold-center) var(--fold-center),100% 0,100% 100%,0 100%)}
.envelope-front:before,.envelope-front:after{clip-path:polygon(0 0,var(--fold-center) var(--fold-center),0 100%);background:#9ab48e}
.envelope-fold{clip-path:polygon(0 100%,var(--fold-center) var(--fold-center),100% 100%)}
.envelope-lining{clip-path:polygon(0 0,100% 0,var(--fold-center) var(--fold-center))}
.envelope-flap{background:none;clip-path:none;filter:none;transform-style:preserve-3d;overflow:visible}
.envelope-flap-face{position:absolute;inset:0;background:#94b18a;clip-path:polygon(0 0,100% 0,var(--fold-center) var(--fold-center));border-radius:5px 5px 0 0;filter:drop-shadow(0 2px 2px #12392540);pointer-events:none}
.envelope-scene>.seal{left:var(--fold-center);top:var(--fold-center);z-index:6;opacity:var(--shell-alpha);transform:translate(-50%,calc(-50% + var(--shell-drop,0px))) rotate(-9deg);backface-visibility:hidden;will-change:transform}
/* Reflejos fijos y grano microscópico sólo en el lacre, nunca en el papel. */
.seal{background:radial-gradient(ellipse at 24% 16%,#ffe4a0 0,#ebbb65 22%,#c69243 56%,#a86a26 88%,#d7a252);box-shadow:1px 3px 0 #8e541d,3px 7px 12px #16382355,inset 1px 2px 2px #fff0bd,inset -2px -3px 3px #91571f}
.seal:before{inset:4px 6px 6px 4px;box-shadow:inset 0 2px 2px #a56d2d99,inset 0 -2px 2px #ffe4a8bb,0 1px 1px #80501f55}
.seal:after{content:'';position:absolute;inset:0;border-radius:inherit;opacity:.11;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100'%3E%3Cfilter id='wax'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.65' numOctaves='2' seed='16' stitchTiles='stitch'/%3E%3C/filter%3E%3Cpath d='M0 0h100v100H0z' filter='url(%23wax)' fill='%238a531c' opacity='.35'/%3E%3C/svg%3E");background-size:100% 100%;mix-blend-mode:soft-light;pointer-events:none;z-index:3}
.seal-ring{background:radial-gradient(ellipse at 35% 25%,#dbac61,#c08a3d 75%);box-shadow:inset 0 2px 3px #8d5a2e99,inset 0 -1px 1px #f9d997,0 1px 2px #ffdda199}
.seal img{opacity:1;filter:sepia(1) brightness(.65) contrast(1.45) drop-shadow(0 1px 0 #ffe5ae);z-index:2}
.seal-shine{display:block;inset:8% 17% 52% 12%;border-radius:55% 48% 50% 30%;background:linear-gradient(145deg,#fff8d69c,#fff1b71a 50%,transparent 70%);transform:rotate(-18deg);animation:none;pointer-events:none;z-index:3}
.seal:focus-visible{outline:2px solid #70470c;outline-offset:5px}
.opening-stage{min-height:0}
@media(max-height:640px) and (max-width:850px){.opening-heading{top:13%}.opening-heading h1{font-size:44px;letter-spacing:-1.5px}.opening-heading .eyebrow{margin-bottom:12px;font-size:8px}.opening-subtitle{font-size:14px;margin-top:13px}.envelope-scene{width:min(290px,68vw);top:64%}.envelope-scene>.seal{width:76px;height:74px}.recipient p{font-size:27px}.scroll-cue{bottom:16%;left:7%;transform:none}.scroll-cue>span:first-child{font-size:7px;letter-spacing:2px}.scroll-line{width:26px}}
@media(prefers-reduced-motion:reduce){.envelope-flap{transform:none}}

/* 0.5.1: ráfagas visibles, independientes de la colocación y del scroll. */
.botanical,.botanical-page-left,.botanical-page-right,.botanical-closing-left,.botanical-closing-right{
  --breeze-turn:5.8deg;--breeze-rise:24px;--breeze-sway:14px;
  animation:botanical-breeze 7.5s cubic-bezier(.45,0,.35,1) infinite;
  animation-play-state:paused;
  transform-origin:50% 50%;
  pointer-events:none;
}
@keyframes botanical-breeze{
  0%,100%{rotate:calc(var(--breeze-turn)*-.75);translate:calc(var(--breeze-sway)*-.5) 0}
  22%{rotate:calc(var(--breeze-turn)*-.2);translate:calc(var(--breeze-sway)*.3) calc(var(--breeze-rise)*-.35)}
  50%{rotate:var(--breeze-turn);translate:var(--breeze-sway) calc(var(--breeze-rise)*-1)}
  74%{rotate:calc(var(--breeze-turn)*.15);translate:calc(var(--breeze-sway)*-.2) calc(var(--breeze-rise)*-.3)}
}
.botanical-left{animation-duration:6.4s;animation-delay:-1.8s}
.botanical-right{--breeze-turn:5.2deg;--breeze-rise:27px;animation-duration:8.3s;animation-delay:-4.7s}
.botanical-branch-left{--breeze-turn:7deg;--breeze-rise:30px;--breeze-sway:19px;animation-duration:5.5s;animation-delay:-3s}
.botanical-branch-right{--breeze-turn:6.4deg;--breeze-rise:26px;animation-duration:7.2s;animation-delay:-5.2s}
.botanical-page-left{animation-duration:8s;animation-delay:-2.2s;transform:rotate(17deg) translateY(var(--garden-drift,0px))}
.botanical-page-right{animation-duration:9.5s;animation-delay:-5.5s;transform:rotate(190deg) translateY(calc(var(--garden-drift,0px)*-1))}
.closing{position:relative;overflow:hidden}
.botanical-closing-left,.botanical-closing-right{position:absolute;width:300px;max-width:26vw;opacity:.65;object-fit:contain;filter:saturate(1.45) contrast(1.08);z-index:0}
.botanical-closing-left{left:-9%;bottom:8%;animation-duration:8s;animation-delay:-3.5s;transform:rotate(15deg) translateY(var(--garden-drift,0px))}
.botanical-closing-right{right:-9%;top:7%;animation-duration:6.8s;animation-delay:-.7s;transform:rotate(190deg) translateY(calc(var(--garden-drift,0px)*-1))}
.closing>*:not(img){position:relative;z-index:1}
[data-garden-active=true] .botanical,[data-garden-active=true] .botanical-page-left,[data-garden-active=true] .botanical-page-right,[data-garden-active=true] .botanical-closing-left,[data-garden-active=true] .botanical-closing-right{animation-play-state:running}
html[data-garden-paused=true] .botanical,html[data-garden-paused=true] [class^=botanical-],html[data-page-visible=false] .botanical,html[data-page-visible=false] [class^=botanical-]{animation-play-state:paused}
.view-switch #garden-motion-toggle{width:42px;padding:9px;border-left:1px solid #ac986e55;border-radius:50%;flex-shrink:0}
#garden-motion-toggle svg{width:19px;height:19px;stroke-width:1.6}
.garden-play-icon{display:none}
#garden-motion-toggle[aria-pressed=true] .garden-pause-icon{display:none}
#garden-motion-toggle[aria-pressed=true] .garden-play-icon{display:block}
#garden-motion-toggle:disabled{display:none}
@media(max-width:560px){.botanical,.botanical-page-left,.botanical-page-right,.botanical-closing-left,.botanical-closing-right{--breeze-turn:4.2deg;--breeze-rise:17px;--breeze-sway:9px}.botanical-closing-left,.botanical-closing-right{max-width:36vw;opacity:.45}.botanical-closing-left{left:-19%}.botanical-closing-right{right:-19%}.view-switch{max-width:calc(100vw - 20px)}.view-switch button{padding-inline:11px;gap:6px}}
@media(prefers-reduced-motion:reduce){.botanical,.botanical-page-left,.botanical-page-right,.botanical-closing-left,.botanical-closing-right{animation:none!important;rotate:none;translate:none}}

/* 0.6: el emblema de la boda preside la cuenta atrás, sin tocar su PNG. */
html{scroll-padding-top:28px}
.closing{padding-top:38px}
.countdown-scene{display:flex;flex-direction:column;align-items:center;width:min(100%,1000px);margin:0 auto}
.countdown-scene .closing-logo{position:relative;width:clamp(300px,min(42vw,50svh),440px);max-width:84vw;aspect-ratio:1;margin:0 auto;isolation:isolate}
.closing-logo:before,.closing-logo:after{display:none}
.wedding-logo-float{position:relative;z-index:1;animation:wedding-logo-float 6s ease-in-out infinite;animation-play-state:paused}
.closing-logo img{display:block;width:100%;height:auto;object-fit:contain;filter:drop-shadow(0 9px 12px #34512c22)}
.wedding-logo-aura{position:absolute;inset:-10%;z-index:0;border-radius:50%;background:radial-gradient(ellipse at 40% 43%,#d9b65855,transparent 61%),radial-gradient(ellipse at 65% 60%,#91b78640,transparent 66%);filter:blur(13px);animation:wedding-logo-aura 7s ease-in-out infinite;animation-play-state:paused;pointer-events:none}
.countdown-scene>.eyebrow{margin:16px 0 22px;font-size:15px;letter-spacing:3.5px;color:var(--gold)}
.countdown-scene .countdown{margin:0 auto 0}
.countdown-scene .clock-note{margin:20px auto 14px;font-size:16px}
.js-motion .closing-logo.reveal:not(.visible){transform:translateY(35px) scale(.86)}
.closing-logo.reveal{transition-duration:1.25s;transition-delay:0ms!important}
@keyframes wedding-logo-float{0%,100%{translate:0 0}50%{translate:0 -7px}}
@keyframes wedding-logo-aura{0%,100%{scale:.96;opacity:.55}50%{scale:1.08;opacity:.9}}
[data-garden-active=true] .wedding-logo-float,[data-garden-active=true] .wedding-logo-aura{animation-play-state:running}
html[data-garden-paused=true] .wedding-logo-float,html[data-garden-paused=true] .wedding-logo-aura,html[data-page-visible=false] .wedding-logo-float,html[data-page-visible=false] .wedding-logo-aura{animation-play-state:paused}
body[data-theme=noche] .closing-logo{background:none;border-radius:0;padding:0}
body[data-theme=noche] .wedding-logo-aura{background:radial-gradient(ellipse,#fff4d9c4,transparent 68%);filter:blur(18px)}
@media(max-width:560px){.closing{padding-top:34px}.countdown-scene .closing-logo{width:clamp(260px,82vw,350px)}.countdown-scene>.eyebrow{font-size:12px;letter-spacing:2.5px;margin-top:16px;margin-bottom:24px}.countdown-scene .clock-note{margin-top:22px;font-size:14px}}
@media(max-height:640px){.countdown-scene .closing-logo{width:clamp(230px,44svh,290px)}.countdown-scene>.eyebrow{margin-top:12px;margin-bottom:18px}}
@media(prefers-reduced-motion:reduce){.wedding-logo-float,.wedding-logo-aura{animation:none!important;translate:none;scale:none}.js-motion .closing-logo.reveal:not(.visible){transform:none}}
.rsvp-access{margin:24px auto 0}
.rsvp-access[hidden]{display:none}
.rsvp-access .button{max-width:100%}
@media(max-width:560px){.rsvp-access .button{width:min(100%,340px)}}

/* 0.6.1: mismo lacre de 96/560 del ancho del sobre en todas las pantallas. */
.envelope-scene{container-type:inline-size}
.envelope-scene>.seal{width:17.142857%;height:auto;aspect-ratio:48/47}
.envelope-scene>.seal .seal-ring{inset:12.5%}
.envelope-scene>.seal:before{inset:4.166667% 6.25% 6.25% 4.166667%}
@media(max-width:560px),(max-height:640px) and (max-width:850px){
  .envelope-scene .recipient{top:calc(50% + 8.392857cqw + 7px);bottom:5.5%;left:8%;right:8%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px}
  .envelope-scene .recipient>span{display:block;font-size:clamp(7px,2.4cqw,9px);line-height:1.2;letter-spacing:1.6px;flex-shrink:0}
  .envelope-scene .recipient p{width:100%;margin:0;font-size:clamp(16px,6cqw,22px);line-height:1.08;letter-spacing:0;overflow-wrap:anywhere;text-wrap:balance}
}
@media(max-width:560px){
  .envelope-scene{width:min(84vw,360px)}
  .opening-heading h1{font-size:clamp(44px,min(17.4vw,8.1svh),68px)}
  .view-switch{width:max-content;max-width:calc(100vw - 20px)}
  .view-switch button [data-copy]{white-space:nowrap!important}
}

/* 0.6.2: jerarquía de lectura: nombres, fecha y lugar por delante del adorno. */
.our-day>.eyebrow{font-size:13px}
.our-day .couple{font-size:clamp(76px,10vw,138px);gap:clamp(18px,2vw,30px);line-height:1.06}
.day-details{gap:clamp(32px,5vw,76px)}
.day-details>div{min-width:0;max-width:100%}
.day-details .eyebrow{font-size:12px;letter-spacing:2.8px}
.day-details p{font-size:clamp(34px,3.4vw,42px);line-height:1.22;margin:14px 0 0;overflow-wrap:anywhere;text-wrap:balance}
.countdown-scene .counter-label{font-size:12px;letter-spacing:2px}
@media(min-width:851px) and (max-height:760px){
  .countdown-scene>.eyebrow{margin-top:6px;margin-bottom:10px}
  .countdown-scene .counter-number{padding-block:3px}
  .countdown-scene .time-unit{gap:10px}
  .countdown-scene .clock-note{margin-top:8px;line-height:1.5}
}
@media(max-width:560px){
  .our-day .couple{font-size:clamp(66px,18.5vw,78px);gap:16px;letter-spacing:-1.5px}
  .day-details{gap:20px}
  .day-details .eyebrow{font-size:11px;letter-spacing:2.4px}
  .day-details p{font-size:clamp(30px,8.2vw,34px);margin-top:10px}
  .countdown-scene .counter-label{font-size:10px;letter-spacing:1px}
}
