/* V22: subtle motion, theme-aware details and accessible fallbacks. */
.cover-loading[hidden],.memory-nav[hidden],.memory-dialog-controls[hidden],#effectToggle[hidden]{display:none!important}
.cover-loading{position:absolute;inset:0;z-index:2;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:25px;background:var(--page-color);color:var(--page-text);pointer-events:none;text-align:center;padding:24px}
.cover-monogram{display:grid;place-items:center;width:136px;min-height:136px;border:1px solid var(--accent-color);outline:1px solid var(--accent-color);outline-offset:8px;border-radius:50%;font:italic 44px/1.2 Georgia,serif;color:var(--accent-color);overflow-wrap:anywhere;padding:14px}
.cover-loading>span:nth-child(2){font:11px/1.7 Arial,sans-serif;letter-spacing:2px;text-transform:uppercase;max-width:220px}
.cover-loading i{width:80px;height:1px;background:var(--accent-color);animation:loading-line 1.6s ease-in-out infinite}
@keyframes loading-line{50%{transform:scaleX(.25);opacity:.35}}
.envelope{perspective:1000px}.envelope.opening[data-animation=envelope]{animation:cover-away .9s ease-in forwards}
.envelope.opening[data-animation=none]{animation:none}
.envelope .opening-piece{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;pointer-events:none;z-index:4;backface-visibility:hidden}
.opening-pieces>img:not(.opening-piece){opacity:0}.opening-pieces>.shade,.opening-pieces>button{opacity:0;transition:opacity .18s;pointer-events:none}
.opening-flap{clip-path:polygon(0 0,100% 0,100% 38%,50% 72%,0 38%);transform-origin:center top;animation:open-flap .85s cubic-bezier(.3,.1,.2,1) forwards}
.opening-body{clip-path:polygon(0 38%,50% 72%,100% 38%,100% 100%,0 100%);animation:open-body .9s cubic-bezier(.3,.1,.2,1) forwards}
@keyframes open-flap{to{transform:rotateX(100deg) translateY(-10%);opacity:0}}
@keyframes open-body{to{transform:translateY(35%);opacity:0}}
@keyframes cover-away{75%{opacity:1}100%{opacity:0}}
.cover-failed:after{content:'Tu invitación está lista. Toca para abrir.';position:absolute;inset:28% 25px auto;text-align:center;color:var(--page-text);font:24px/1.4 Georgia;pointer-events:none}
#content:focus{outline:none}.floating button{border-color:var(--accent-color);background:var(--count-color);color:var(--count-text)}#effectToggle.paused{opacity:.65}
#petals.effects-paused i,#petals.effects-paused i:before,#petals.effects-paused i:after{animation-play-state:paused!important}
#petals[data-effect=none]{display:none}
#petals[data-effect=sparkles] i{height:var(--size);border-radius:0;clip-path:polygon(50% 0,62% 38%,100% 50%,62% 62%,50% 100%,38% 62%,0 50%,38% 38%);background:var(--petal-color);box-shadow:none}
#petals[data-effect=lights] i{width:calc(var(--size)*.65);height:calc(var(--size)*.85);border-radius:45% 45% 30% 30%;background:var(--petal-color);box-shadow:0 0 12px 4px var(--petal-color);animation-name:light-rise;opacity:.6}
@keyframes light-rise{0%{transform:translate3d(0,106vh,0);opacity:0}20%{opacity:.55}80%{opacity:.5}100%{transform:translate3d(var(--drift),-8vh,0);opacity:0}}
#petals[data-effect=butterflies] i{width:var(--size);height:calc(var(--size)*.9);background:none;box-shadow:none;border-radius:0}
#petals[data-effect=butterflies] i:before,#petals[data-effect=butterflies] i:after{content:'';position:absolute;width:60%;height:100%;top:0;background:var(--petal-color);box-shadow:inset 0 0 3px #fff8;animation:butterfly-wing 2s ease-in-out infinite alternate}
#petals[data-effect=butterflies] i:before{left:0;border-radius:85% 35% 65% 35%;transform-origin:right center}
#petals[data-effect=butterflies] i:after{right:-15%;border-radius:35% 85% 35% 65%;transform-origin:left center}
@keyframes butterfly-wing{to{transform:scaleX(.35)}}
.memory-gallery{padding:46px 0 34px;text-align:center;background:var(--page-color);color:var(--page-text);overflow:hidden}
.memory-kicker{font:10px/1.6 Arial,sans-serif;letter-spacing:2.5px;color:var(--accent-color)}
.memory-gallery h2{font:italic 32px/1.15 Georgia,serif;margin:12px 24px;overflow-wrap:anywhere}.memory-gallery>p{font:12px/1.7 Arial,sans-serif;margin:10px 24px 25px;opacity:.8}
.memory-track{display:flex;gap:20px;overflow-x:auto;scroll-snap-type:x mandatory;padding:12px 24px 22px;position:relative;scrollbar-width:thin;scrollbar-color:var(--accent-color) transparent;overscroll-behavior-x:contain}
.memory-card{flex:0 0 84%;min-width:0;position:relative;scroll-snap-align:center;padding:10px;border:1px solid var(--accent-color);border-radius:100px 100px 12px 12px;color:var(--accent-color);box-shadow:0 12px 28px #0003;background:#ffffff08}
.memory-card img{display:block;width:100%;height:auto;aspect-ratio:3/4;object-fit:contain;border-radius:90px 90px 6px 6px;background:#0002}
.memory-card:after{content:'✧';position:absolute;left:calc(50% - 15px);bottom:-13px;width:30px;background:var(--page-color);color:var(--accent-color);font-size:22px}.memory-card-number{position:absolute;bottom:23px;right:21px;background:#0008;color:#fff;padding:5px 8px;border-radius:99px;font:10px Arial}
.memory-gallery[data-frame=minimal] .memory-card,.memory-gallery[data-frame=minimal] .memory-card img{border-radius:12px}.memory-gallery[data-frame=minimal] .memory-card:after{display:none}
.memory-nav{display:flex;align-items:center;justify-content:center;gap:23px;margin:10px 0 0;font:12px Arial;letter-spacing:2px}.memory-nav button{width:44px;height:44px;border:1px solid var(--accent-color);border-radius:50%;background:none;color:var(--page-text);font-size:20px;cursor:pointer}.memory-nav button:disabled{opacity:.3}
.memory-modal-open{overflow:hidden}.memory-dialog{box-sizing:border-box;width:min(96vw,850px);max-height:94svh;padding:12px;background:#161319;color:#fff;border:1px solid var(--accent-color);border-radius:18px;overscroll-behavior:contain}.memory-dialog::backdrop{background:#09050deb;backdrop-filter:blur(7px)}
.memory-dialog-bar{display:flex;align-items:center;justify-content:space-between;gap:12px;font:12px Arial;padding:0 3px 10px}.memory-dialog button{min-width:44px;min-height:44px;background:#ffffff12;color:white;border:1px solid #fff4;border-radius:12px;font:14px Arial;cursor:pointer}.memory-dialog-bar button{font-size:26px}.memory-dialog-controls{display:flex;justify-content:space-between;gap:12px;margin-top:12px}.memory-dialog-controls button{padding:10px 17px}.memory-dialog button:disabled{opacity:.35}.memory-large{display:block;width:100%;height:65svh;object-fit:contain;touch-action:pan-y pinch-zoom}
.rsvp-thanks{max-width:430px;margin:auto}.thanks-seal{display:grid;place-items:center;width:68px;height:68px;border:1px solid var(--accent-color);border-radius:50%;margin:6px auto 24px;color:var(--confirm-text);font:32px Georgia}.rsvp-thanks h2{margin:14px 0;font:italic 32px/1.2 Georgia;overflow-wrap:anywhere}.rsvp-thanks p{font:15px/1.7 Georgia}.thanks-guests{display:block;font:12px/1.6 Arial;letter-spacing:.8px;margin:20px 0}
.thanks-whatsapp{display:flex;justify-content:center;align-items:center;gap:16px;min-height:52px;padding:14px 16px;border-radius:999px;background:var(--whatsapp-color);color:var(--button-text);font:600 14px/1.4 Arial;text-decoration:none;margin:24px 0 15px}.rsvp-thanks small{display:block;font:11px/1.7 Arial;opacity:.8}.thanks-edit{display:inline-block;color:var(--confirm-text);font:12px/1.5 Arial;padding:18px 10px}
.studio-brand{padding:10px 24px 42px}.studio-brand__identity{padding:18px 22px;border:1px solid var(--accent-color);border-radius:24px;background:linear-gradient(140deg,#ffffff0c,transparent);box-shadow:0 10px 30px #0002}.studio-brand__tagline{font-size:12px;margin-top:20px}.studio-brand__cta{min-height:48px;letter-spacing:.3px}
.memory-gallery a:focus-visible,.memory-gallery button:focus-visible,.memory-dialog button:focus-visible,.thanks-whatsapp:focus-visible{outline:2px solid var(--accent-color);outline-offset:4px}
@media(prefers-reduced-motion:reduce){.cover-loading i,.envelope.opening,.envelope .opening-piece{animation:none!important}.envelope button{animation:none!important}html{scroll-behavior:auto!important}}
