@import url('https://fonts.googleapis.com/css2?family=Cormorant+Garamond:ital,wght@0,400;0,500;1,400&family=Jost:wght@400;500&display=swap');
/* Finishing pass: each invitation retains its own art direction. */
body[data-collection]{-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;overflow-x:clip}
body[data-collection] h1,body[data-collection] h2,body[data-collection] h3{font-family:'Cormorant Garamond',Georgia,serif;font-weight:400;text-wrap:balance}
body[data-collection] p{text-wrap:pretty}
body[data-collection] button,body[data-collection] a{touch-action:manipulation}
body[data-collection] main button,body[data-collection] main .button,body[data-collection] main .action{transition:background-color .3s,color .3s,box-shadow .3s,transform 160ms cubic-bezier(.23,1,.32,1)}
body[data-collection] main button:active,body[data-collection] main .button:active{box-shadow:inset 0 0 0 1px currentColor;transform:scale(.97)}
body[data-collection] .entry button,body[data-collection] .gate-open,body[data-collection] .open-invitation{transition:transform 160ms cubic-bezier(.23,1,.32,1)}
body[data-collection] .entry button:active,body[data-collection] .gate-open:active,body[data-collection] .open-invitation:active{transform:scale(.96)}
@media(hover:hover) and (pointer:fine){
body[data-collection] main button:hover,body[data-collection] main .button:hover,body[data-collection] .entry button:hover,body[data-collection] .gate-open:hover,body[data-collection] .open-invitation:hover{filter:brightness(1.08)}
}
body[data-collection] .entry button:after{animation:none;display:none}
body[data-collection] .hero .down{animation:refined-cue 4s ease-in-out infinite}
body[data-collection] .music[aria-pressed=true] svg{animation:none}
body[data-collection] .photo{box-shadow:0 12px 28px #3423190c}
body[data-collection] .photo img,body[data-collection] .story-photo img{transform:none!important}
body[data-collection] .entry .names{letter-spacing:-1.3px}
body[data-collection] .entry button{font-size:11px;letter-spacing:1.2px;min-height:48px}
body[data-collection] .entry small{letter-spacing:.6px;line-height:1.5}
/* Laura & Miguel. Limestone, olive ink, champagne metal. */
[data-collection=laura] .letter-entry.invitation-entry{background:radial-gradient(ellipse at 50% 15%,#fff9f1,#eee1d6);color:#5e2032;gap:22px}
[data-collection=laura] .letter-intro .entry-kicker{font:10px Jost,Arial;letter-spacing:3px;color:#765e61}
[data-collection=laura] .letter-intro>p:last-child{font:italic 18px 'Cormorant Garamond',Georgia;color:#765e61}
[data-collection=laura] .envelope-scene{width:min(285px,100%);height:300px;filter:drop-shadow(0 16px 18px #36101822)}
[data-collection=laura] .envelope-back{background:#673344;border-color:#925c6b}
[data-collection=laura] .envelope-front{background:linear-gradient(145deg,#864b5c,#592536);border-radius:1px}
[data-collection=laura] .envelope-flap{background:linear-gradient(175deg,#8b5061,#602b3e);transition:transform .65s cubic-bezier(.4,0,.2,1)}
[data-collection=laura] .letter-paper{background:#fffdf6;border-color:#dfc9ba;box-shadow:0 3px 12px #36101815;padding:25px 14px;transition:transform .9s .35s cubic-bezier(.25,.7,.2,1)}
[data-collection=laura] .letter-paper:before{inset:11px;border-color:#c99b5860}
[data-collection=laura] .letter-paper h2{font:43px/.92 'Cormorant Garamond',Georgia;color:#5e2032;letter-spacing:-.8px;margin:18px 0 10px}
[data-collection=laura] .letter-paper h2 em{font:italic 25px 'Cormorant Garamond';margin:8px 0;color:#a18452}
[data-collection=laura] .letter-paper p{font:10px/1.6 Jost,Arial;letter-spacing:1.2px}
[data-collection=laura] .envelope-monogram{left:calc(50% - 28px);right:auto;bottom:49px;width:56px;height:56px;display:grid;place-content:center;border-radius:50%;border:1px solid #b09a65;background:radial-gradient(circle at 35% 25%,#f0e4bc,#c4ae72 65%,#a58c55);box-shadow:0 3px 5px #4b452b25,inset 0 0 0 3px #decc9b,inset 0 0 0 4px #aa915955;color:#69552e;font:19px 'Cormorant Garamond';letter-spacing:1px}
[data-collection=laura] .envelope-monogram i{display:none}
[data-collection=laura] .letter-action{width:min(235px,100%)}
[data-collection=laura] .letter-open.open-invitation{border-radius:1px;background:#5e2032;border-color:#5e2032;color:#fffdf4;box-shadow:0 4px 10px #42101d18;font:400 12px Jost,Arial;letter-spacing:1.2px;min-height:49px}
[data-collection=laura] .letter-action small{font:10px Jost,Arial;color:#765e61;margin-top:12px}
[data-collection=laura] .hero-copy h1{font-size:clamp(56px,15vw,88px);line-height:.95}
[data-collection=laura] .date-badge{background:#2b1018d9;color:#fff8ee;box-shadow:0 8px 24px #0003;border:1px solid #c99b5880;border-radius:0}
[data-collection=laura] .story-photo img{border:7px solid #fffdf7;box-shadow:0 12px 30px #42101d14}
[data-collection=laura] .story-photo figcaption{color:#765e61;font:italic 18px/1.5 'Cormorant Garamond'}
[data-collection=laura] .keepsake-detail{height:115px;margin:20px auto}
[data-collection=laura] .floral-arrangement img{animation-duration:12s}
[data-collection=laura] .date-badge span{color:#fff8ee}[data-collection=laura] .date-badge small{color:#f4d6a5}
/* Valentina & Daniel. Warm candlelight, bone and deep cacao. */
body[data-collection=valentina]{--sand:#eee7d9;--ivory:#fcf8ef;--ink:#302820;--muted:#716659;--blue:#42382c;--blue2:#28231d;--gold:#b99a65;--line:#d9cdb8;background:#eee7d9}
[data-collection=valentina] .candle-gate{background:#211e18}
[data-collection=valentina] .candle-backdrop{background-image:linear-gradient(#1c211b55,#201b1590 50%,#1b1917d0),url('/momentos/assets/valentina-daniel-preboda-tulum-candles-optimized.webp');filter:saturate(.65)}
[data-collection=valentina] .candle-gate h2{font-size:clamp(52px,15vw,74px);letter-spacing:-1px;line-height:1}
[data-collection=valentina] .candle-gate .entry-copy{padding:35px 26px;text-shadow:0 2px 18px #0004}
[data-collection=valentina] .candle-gate .gate-open{background:#efe5cd;color:#3e3528;border-color:#c4ac78;border-radius:0;font:11px Jost;letter-spacing:1.5px;padding:16px 25px}
[data-collection=valentina] .candle-gate.is-open .candle-backdrop{transform:scale(1.035);transition:transform 1.6s ease-out,opacity 1.6s}
[data-collection=valentina] .candle-glow{opacity:.55;animation-duration:6s}
[data-collection=valentina] .cover-shade{background:linear-gradient(180deg,#151b1510 20%,#201b1550 55%,#201b15c9)}
[data-collection=valentina] .audio-fab{background:#302820eb;border-color:#ac946666;box-shadow:0 5px 16px #0002;font:10px Jost;letter-spacing:.6px}
/* Inés & Álvaro. Botanical paper and quieter embossed seal. */
body[data-collection=ines]{--paper:#f8eddb;--ink:#1f2c4d;--gold:#b9603f}
[data-collection=ines] .cover-copy{inset:19% 14% 12%;gap:2px}
[data-collection=ines] .cover-copy h1{font-size:clamp(42px,13vw,58px);line-height:1.02;letter-spacing:-1px}
[data-collection=ines] .leaf{filter:saturate(.8);transition-timing-function:cubic-bezier(.45,0,.15,1)}
[data-collection=ines] .cover-copy>p{font:10px Jost;letter-spacing:2px}
[data-collection=ines] .cover-copy small{font:10px Jost;letter-spacing:1px}
[data-collection=ines] .keepsake-detail img{animation-duration:12s}
/* Lucía & Andrés. Ink blue porcelain, fine line frame. */
body[data-collection=lucia]{--paper:#f6f5ef;--ink:#344d66;--gold:#9c8a65}
[data-collection=lucia] .entry{border-width:9px;border-color:#dfe5e7;background:#f6f5ef}
[data-collection=lucia] .entry:after{inset:12px;border-color:#69809355}
[data-collection=lucia] .botanical{color:#597389;opacity:.6;animation-duration:13s}
[data-collection=lucia] .entry h2{font-size:clamp(44px,13vw,62px);letter-spacing:-1px}
[data-collection=lucia] .entry .open{box-shadow:none;background:#344d66;color:#fffdf7;border-radius:0;font-size:11px;letter-spacing:1.2px}
/* Camila & Sebastián. Bronze on charcoal, fewer competing highlights. */
body[data-collection=camila]{--paper:#202321;--ink:#f0e7d2;--gold:#bba06b}
[data-collection=camila] .entry{background:#202321}
[data-collection=camila] .entry-copy{background:#202321;border-color:#bba06b80;box-shadow:0 0 0 6px #202321,0 0 0 7px #bba06b33;padding:38px 24px}
[data-collection=camila] .entry:before,[data-collection=camila] .entry:after{background:repeating-linear-gradient(90deg,#1c201e 0 30px,#bba06b28 31px,#1c201e 32px 62px);border-color:#bba06b40}
[data-collection=camila] .entry h2{font-size:clamp(43px,12vw,61px);letter-spacing:-.5px}
[data-collection=camila] .entry .open{background:#c0a675;color:#202321;border-color:#c0a675;box-shadow:none}
/* Cartagena. Patinated wood, softly moving palms. */
body[data-collection=isabela]{--ink:#304c43;--paper:#f8f2e6;--accent:#99764b;--line:#304c432b}
[data-collection=isabela] .panel{background:repeating-linear-gradient(0deg,#1e3d34 0 19px,#2d4b40 20px 33px,#1b352d 35px 37px);border-color:#2a493d;box-shadow:inset 0 0 0 1px #b5a17a55,5px 0 20px #0003}
[data-collection=isabela] .entry-copy{text-shadow:0 2px 12px #14291c}
[data-collection=isabela] .entry .names{font-size:clamp(49px,14vw,68px)}
[data-collection=isabela] .palm{opacity:.25;animation-duration:14s}
[data-collection=isabela] .hero{background:radial-gradient(ellipse at top,#e9ddc3,transparent 65%),#f8f2e6}
[data-collection=isabela] .arch-photo{border-width:4px!important;box-shadow:0 0 0 1px #b5a17a77!important}
/* Buenos Aires. Plum velvet and old gold. */
body[data-collection=julieta]{--ink:#452f38;--paper:#f7f0e4;--accent:#967749;--line:#452f3828}
[data-collection=julieta] .panel{background:repeating-linear-gradient(90deg,#281a23 0%,#5f3547 7%,#3e2330 13%,#251821 18%);box-shadow:inset -10px 0 28px #0003}
[data-collection=julieta] .panel:after{border-color:#b79c6660;border-bottom-width:2px}
[data-collection=julieta] .entry-copy{color:#f6ecd6;text-shadow:0 2px 12px #0005}
[data-collection=julieta] .chandelier{animation:refined-chandelier 12s ease-in-out infinite alternate;opacity:.85}
[data-collection=julieta] .hero,[data-collection=julieta] .quote{background:#38232f}
[data-collection=julieta] .hero .hero-photo{border:3px solid #c9b68b;box-shadow:0 0 0 1px #a38c5c}
/* Casablanca. Chalk paper, sage and copper. */
body[data-collection=antonia]{--ink:#4b5543;--paper:#f5f2e8;--accent:#8e6d51;--line:#4b55432b}
[data-collection=antonia] .panel{background-color:#f5f2e8;border-color:#b8bca755;box-shadow:0 4px 25px #43492b12}
[data-collection=antonia] .entry .names{font-size:clamp(45px,13vw,66px)}
[data-collection=antonia] .hero{background:#f5f2e8}
[data-collection=antonia] .vineyard{stroke:#829078;stroke-width:.65}
[data-collection=antonia] .photo{box-shadow:none;margin:0 auto}
[data-collection=antonia] .quote{background:#e5e8da}
[data-collection=antonia] .closing{background:#44503d}
/* Lima. Editorial typography, burgundy ink rather than bright red. */
body[data-collection=mariana]{--ink:#302b28;--paper:#faf6ef;--accent:#793d44;--line:#302b282a}
[data-collection=mariana] .magazine-leaf{background:#faf6ef;border-color:#ede8dd;color:#793d44;box-shadow:inset -12px 0 28px #34281d0a}
[data-collection=mariana] .magazine-leaf:before{border-color:#793d4466;border-top-width:3px;border-bottom-width:3px}
[data-collection=mariana] .entry .names{font-size:clamp(45px,13vw,63px)}
[data-collection=mariana] .edition,[data-collection=mariana] .hero .date,[data-collection=mariana] .section-number{color:#793d44}
[data-collection=mariana] .entry button,[data-collection=mariana] .quote,[data-collection=mariana] .section .button{background:#793d44;border-color:#793d44}
[data-collection=mariana] #historia>p:not(.kicker):first-letter{color:#793d44}
[data-collection=mariana] .closing{border-color:#793d4470}
/* Uruguay. An archival postcard, not a boarding pass. */
body[data-collection=florencia]{--ink:#344c54;--paper:#f4f0e5;--accent:#9b775b;--line:#344c5428}
[data-collection=florencia] .entry,[data-collection=florencia] .hero,[data-collection=florencia] .closing{background:#344c54}
[data-collection=florencia] .ticket-shell{background:#f4f0e5;border-radius:2px;box-shadow:0 10px 30px #17252b25}
[data-collection=florencia] .ticket-shell:after{border-color:#9b775b55}
[data-collection=florencia] .destination-stamp{color:#99785b;border-color:#99785b90;rotate:-7deg;animation:none;font-size:9px}
[data-collection=florencia] .entry .names{font-size:clamp(43px,12vw,60px)}
[data-collection=florencia] .entry button{background:#344c54}
[data-collection=florencia] .photo{rotate:-.65deg;box-shadow:0 10px 25px #173c4c0c}
[data-collection=florencia] .photo:nth-of-type(even){rotate:.65deg}
[data-collection=florencia] .quote{background:#e7dfcd}
[data-collection=florencia] .section-number{rotate:0;border:0;border-bottom:1px solid #9b775b66;padding:5px 0}
/* Costa Rica. Dark botanical ink with champagne light. */
body[data-collection=elena]{--paper:#182f29;--ink:#eee7d5;--accent:#c6b78c;--line:#d9cfb333}
[data-collection=elena] .entry,[data-collection=elena] .garden-veil{background:radial-gradient(ellipse at 50% 30%,#355043,#142c25 85%)}
[data-collection=elena] .hero{background:radial-gradient(ellipse at 50% 35%,#355043,#182f29 75%)}
[data-collection=elena] .garden-art{stroke:#aeb68c77;animation-duration:14s}
[data-collection=elena] .garden-art .bloom{stroke:#d7cba3a0;fill:#d7cba312}
[data-collection=elena] .fireflies i{width:2px;height:2px;box-shadow:0 0 6px 1px #e9d59433;animation-duration:8s}
[data-collection=elena] .photo{border-color:#c6b78c55;background:#203c31;padding:6px;box-shadow:0 12px 30px #0002}
[data-collection=elena] .quote{background:#e9e0c9}
[data-collection=elena] .entry button,[data-collection=elena] .section .button,[data-collection=elena] form button{background:#ded1ac;color:#243e31;border-color:#ded1ac}
@keyframes refined-cue{0%,70%,100%{translate:0 0}35%{translate:0 4px}}
@keyframes refined-chandelier{from{transform:rotate(-.4deg)}to{transform:rotate(.4deg)}}
@media(max-height:600px){[data-collection=laura] .letter-entry.invitation-entry{gap:15px;padding:20px}[data-collection=laura] .envelope-scene{height:255px;width:260px}[data-collection=laura] .letter-paper h2{font-size:35px;margin:12px 0 8px}[data-collection=laura] .letter-paper{padding:17px 12px}[data-collection=laura] .envelope-monogram{bottom:35px;width:48px;height:48px;left:calc(50% - 24px)}body[data-collection] .entry .names{font-size:46px}}
@media(max-width:360px){body[data-collection] .entry .names{font-size:44px}[data-collection=laura] .envelope-scene{width:255px}[data-collection=laura] .letter-paper h2{font-size:37px}}
@media(prefers-reduced-motion:reduce){body[data-collection] *,body[data-collection] *:before,body[data-collection] *:after{animation:none!important;transition:none!important}}

/* Keep seal lettering independent of button padding and narrow phone widths. */
[data-collection=ines] .cover #open{display:flex;align-items:center;justify-content:center;width:64px;height:64px;min-width:64px;padding:0;letter-spacing:0;line-height:1}
[data-collection=ines] #open .seal-initials{display:block;width:64px;height:64px;flex:none;overflow:visible}
[data-collection=ines] .seal-initials text{font:22px Georgia,serif;fill:#fff5df;letter-spacing:0}
[data-collection=ines] .seal-initials text.amp{font-size:12px}
[data-collection] .gate-open,[data-collection] .entry button.open,[data-collection] .entry #open{white-space:nowrap;max-width:100%;box-sizing:border-box}
[data-collection=valentina] .candle-gate .gate-open{white-space:nowrap;letter-spacing:1px;padding:16px 20px}
