@font-face{font-family:Editorial;src:url('assets/fonts/editorial.woff') format('woff');font-display:swap}@font-face{font-family:Editorial;src:url('assets/fonts/editorial-italic.woff') format('woff');font-style:italic;font-display:swap}@font-face{font-family:Quiet;src:url('assets/fonts/quiet.woff') format('woff');font-display:swap}
:root{--ivory:#f2e3d0;--paper:#f8f1e8;--sand:#ddc19c;--terra:#b4613f;--sage:#7b7752;--olive:#585134;--ink:#4f4933;--serif:Editorial,Georgia,serif;--sans:Quiet,Arial,sans-serif}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:80px}body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--serif);-webkit-font-smoothing:antialiased}body.is-locked{overflow:hidden}button,a,input,textarea{-webkit-tap-highlight-color:transparent}button,input,textarea{font:inherit}button,a{touch-action:manipulation}button{cursor:pointer}a{color:inherit;text-decoration:none}button{color:inherit}button:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible{outline:2px solid var(--terra);outline-offset:6px}h1,h2,h3,p{margin:0}h1,h2,h3{font-weight:400}svg{display:block}i,em{font-weight:400}.svg-defs{position:absolute;width:0;height:0;overflow:hidden}#ambience{position:fixed;inset:0;width:100%;height:100%;z-index:15;pointer-events:none}.eyebrow{font:10px var(--sans);letter-spacing:.26em;line-height:1.8}.section-inner{max-width:1060px;margin:auto;padding:0 28px}.section-space{padding:115px 0}.reveal{opacity:0;transform:translateY(26px);transition:opacity 1.1s ease,transform 1.1s cubic-bezier(.16,1,.3,1)}.reveal.visible{opacity:1;transform:none}h2{font-size:clamp(40px,4.6vw,65px);line-height:1.08;letter-spacing:-.035em}h2 i{color:var(--sage)}.body-copy{font-size:20px;line-height:1.7;color:#78715a}.monogram{position:relative;width:80px;height:82px;margin:auto;font-size:75px;line-height:1;font-family:var(--serif)}.monogram>span:first-child{position:absolute;left:3px;top:0}.monogram>span:last-child{position:absolute;left:31px;top:25px;font-size:66px}
/* Sobre: pliegues en CSS, sello volumétrico, papel y apertura tridimensional. */
.gate{position:fixed;inset:0;z-index:50;display:flex;align-items:center;justify-content:center;flex-direction:column;overflow:hidden;background:radial-gradient(ellipse at 50% 40%,#fffaf0 0,#f2e3d0 60%,#ded0b8 100%);transition:opacity 1.25s ease,visibility 1.25s}.gate:before{content:'';position:absolute;inset:0;opacity:.17;pointer-events:none;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.55' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' opacity='.22' filter='url(%23n)'/%3E%3C/svg%3E")}.gate.is-dismissed{opacity:0;visibility:hidden;pointer-events:none}.gate-kicker{position:relative;font:9px var(--sans);letter-spacing:.36em;margin-bottom:35px}.envelope-wrap{width:min(370px,76vw);height:min(470px,55vh);min-height:310px;position:relative;perspective:1500px}.envelope{width:100%;height:100%;position:relative;transform-style:preserve-3d;filter:drop-shadow(0 22px 24px #58513432);transition:transform 2.8s cubic-bezier(.2,.8,.2,1);animation:envelopeArrive 1.5s both}.envelope-back{position:absolute;inset:0;background:#48452e;border-radius:4px}.envelope-back:after{content:'';position:absolute;inset:15px;border:1px solid #ddc19c3b}.envelope-side{position:absolute;inset:0;z-index:4;overflow:hidden;background:linear-gradient(110deg,#777450,#555035);transition:transform 2s .65s cubic-bezier(.2,.75,.2,1)}.side-left{clip-path:polygon(0 0,61% 50%,0 100%);transform-origin:left center}.side-right{clip-path:polygon(100% 0,39% 50%,100% 100%);background:linear-gradient(240deg,#797555,#524d34);transform-origin:right center}.envelope-side svg{position:absolute;width:65%;height:65%;color:#ddc19c5b;bottom:16px;left:-15px;transform:rotate(-18deg)}.side-right svg{left:auto;right:-8px;transform:scaleX(-1) rotate(-18deg)}.envelope-side:after{content:'';position:absolute;inset:0;background:linear-gradient(45deg,transparent 49.6%,#ddc19c77 50%,transparent 50.3%)}.side-right:after{background:linear-gradient(-45deg,transparent 49.6%,#ddc19c66 50%,transparent 50.3%)}.envelope-bottom{position:absolute;inset:0;z-index:5;clip-path:polygon(0 100%,50% 42%,100% 100%);background:linear-gradient(180deg,#736f4e,#625c3d);transform-origin:bottom;transition:transform 1.9s .6s}.envelope-bottom:after{content:'';position:absolute;inset:19px;border:1px solid #ddc19c47}.envelope-flap{position:absolute;inset:0;z-index:7;clip-path:polygon(0 0,100% 0,50% 53%);background:linear-gradient(150deg,#7f7b55 0,#666143 60%,#534e32 100%);transform-origin:top;backface-visibility:hidden;transition:transform 1.9s .35s cubic-bezier(.22,.7,.2,1);filter:drop-shadow(0 6px 5px #0003)}.envelope-flap:after{content:'';position:absolute;inset:16px;clip-path:polygon(0 0,100% 0,50% 49.5%);background:linear-gradient(140deg,transparent 49.5%,#ddc19c3b 50%,transparent 50.5%)}.wax-seal{position:absolute;z-index:10;left:50%;top:48%;width:90px;height:90px;transform:translate(-50%,-50%);border:0;border-radius:45% 50% 46% 49% / 49% 45% 51% 46%;background:radial-gradient(circle at 36% 24%,#efd7b2,#ddc19c 45%,#bd9869 72%,#e2c89f 76%,#9d784f 80%,#ddc19c 91%);box-shadow:2px 7px 9px #231e1a66,inset 1px 2px 2px #fff9;transition:transform .8s,opacity .65s;animation:sealBreath 3s 2s infinite}.wax-seal:hover{filter:brightness(1.06)}.seal-ring{position:absolute;inset:11px;border:1px solid #ac895b;border-radius:50%;box-shadow:inset 1px 1px 2px #a58059,1px 1px 1px #fff7}.seal-monogram{font-family:var(--serif);font-size:40px;position:absolute;inset:15px;color:#9b774e;text-shadow:0 1px #fff8}.seal-monogram>span{position:absolute;top:15px;left:24px}.envelope-date{position:absolute;bottom:28px;left:0;right:0;z-index:6;text-align:center;font:9px var(--sans);letter-spacing:.3em;color:#e9d3b0;transition:opacity .4s}.letter{position:absolute;z-index:2;background:var(--paper);inset:14px 15px 10px;text-align:center;padding:45px 10px;border:1px solid var(--sand);transition:transform 2.4s .5s cubic-bezier(.2,.7,.2,1)}.letter p{font-size:20px;font-style:italic;margin:33px 0 17px}.letter>span{font:10px var(--sans);letter-spacing:.2em}.opening-light{position:absolute;left:50%;top:50%;width:8px;height:8px;background:#fff9db;border-radius:50%;transform:translate(-50%,-50%);opacity:0;z-index:11;pointer-events:none;box-shadow:0 0 40px 25px #ffe6a7,0 0 100px 60px #ffdfa880;mix-blend-mode:screen}.gate-caption{position:relative;text-align:center;margin-top:30px;transition:opacity .5s}.gate-caption p{font-size:25px;letter-spacing:-.025em}.gate-caption p i{font-size:20px;color:var(--terra);margin:0 6px}.gate-caption>span{display:block;font:8px var(--sans);letter-spacing:.18em;margin-top:17px}.gate-caption .sound-note{font-size:10px;letter-spacing:.02em;opacity:.6;margin-top:10px}.skip-intro{border:0;background:none;font:11px var(--sans);text-decoration:underline;text-underline-offset:4px;margin-top:22px;opacity:.65;position:relative}.gate.opening .wax-seal{animation:none;transform:translate(-50%,70%) rotate(22deg) scale(.75);opacity:0}.gate.opening .envelope-flap{transform:rotateX(165deg)}.gate.opening .side-left{transform:rotateY(-120deg)}.gate.opening .side-right{transform:rotateY(120deg)}.gate.opening .envelope-bottom{transform:rotateX(-110deg)}.gate.opening .envelope-date,.gate.opening .gate-caption,.gate.opening .skip-intro{opacity:0;pointer-events:none}.gate.opening .letter{transform:translateY(-60px) translateZ(85px) scale(1.15)}.gate.opening .opening-light{animation:lightBloom 2.7s .12s both}.gate.opening .envelope{transform:scale(1.03) translateY(25px)}
#invitation{opacity:0;visibility:hidden;transition:opacity 1.4s}body.has-opened #invitation{opacity:1;visibility:visible}.topbar{position:absolute;left:0;right:0;top:0;z-index:10;display:flex;justify-content:space-between;align-items:center;padding:23px 6%;border-bottom:1px solid #5851341a}.nav-mark{position:relative;display:block;font-size:34px;line-height:1;width:36px;height:38px}.nav-mark span{position:absolute;left:14px;top:13px;font-size:29px}.topbar nav{display:flex;gap:32px;font:10px var(--sans);letter-spacing:.08em}.nav-date{font:10px var(--sans);letter-spacing:.17em}.hero{position:relative;min-height:890px;min-height:100svh;overflow:hidden;background:var(--paper);display:flex;align-items:center;flex-direction:column}.hero-content{text-align:center;z-index:2;position:relative;padding-top:150px;width:100%}.hero h1{font-size:clamp(61px,7.5vw,108px);line-height:.97;letter-spacing:-.055em;margin-top:22px}.hero h1>span{display:block}.hero h1>i{display:block;font-size:.42em;line-height:1.45;color:var(--terra);margin:0}.hero-date{margin-top:27px;display:flex;align-items:center;flex-direction:column;gap:9px}.hero-date>span{font:9px var(--sans);letter-spacing:.24em}.hero-date b{font-size:26px;letter-spacing:.12em;font-weight:400}.hero-date b em{color:var(--terra);font-size:18px;margin:0 4px}.hero-landscape{width:100%;position:relative;height:clamp(300px,40vw,490px);margin-top:-20px;overflow:hidden;flex-shrink:0;mask-image:linear-gradient(to bottom,transparent,#000 12%,#000 91%,transparent);-webkit-mask-image:linear-gradient(to bottom,transparent,#000 12%,#000 91%,transparent)}.hero-landscape>img{width:100%;height:100%;object-fit:cover;object-position:50% 60%;transform:scale(1.045);animation:landscapeDrift 18s ease-in-out infinite alternate}.landscape-mist{position:absolute;inset:0;background:radial-gradient(ellipse at 15% 70%,#f8f1e895,transparent 50%);animation:mist 17s infinite alternate ease-in-out;pointer-events:none}.mist-two{background:radial-gradient(ellipse at 85% 85%,#f8f1e894,transparent 40%);animation-delay:-9s}.scroll-cue{position:relative;z-index:2;margin:-8px 0 22px;display:flex;align-items:center;flex-direction:column;gap:13px}.scroll-cue>span:first-child{font:8px var(--sans);letter-spacing:.23em}.scroll-line{height:29px;width:1px;background:var(--sage);transform-origin:top;animation:scrollHint 2.4s infinite}.hero-reveal{opacity:0;transform:translateY(20px)}.has-opened .hero-reveal{animation:heroReveal 1.6s .35s both}.has-opened h1.hero-reveal{animation-delay:.55s}.has-opened .hero-date{animation-delay:.85s}
.story{position:relative;overflow:hidden;text-align:center;padding-bottom:110px}.story h2{margin-top:24px}.story .body-copy{margin-top:29px}.botanical{position:absolute;width:200px;height:400px;color:var(--sage);opacity:.32;pointer-events:none}.botanical-left{left:clamp(-85px,2vw,45px);top:80px;transform:rotate(-15deg)}.botanical-right{right:clamp(-85px,2vw,45px);top:115px;transform:scaleX(-1) rotate(-15deg)}.couple-fullnames{display:flex;align-items:center;justify-content:center;gap:35px;margin-top:37px;font-size:26px;line-height:1.25}.couple-fullnames p span{font-size:17px;color:#80765d}.small-amp{font-style:italic;font-size:33px;color:var(--terra)}.little-heart{font-size:11px;color:var(--terra);margin-top:35px}.countdown-section{position:relative;text-align:center;padding:85px 0;background:var(--olive);color:var(--ivory);overflow:hidden}.countdown-section:before{content:'';position:absolute;inset:18px;border:1px solid #ddc19c3f;pointer-events:none}.countdown-section h2{margin:24px 0 40px;font-size:clamp(37px,4vw,54px)}.countdown-section h2 i{color:var(--sand)}.countdown{display:flex;justify-content:center;align-items:flex-start;gap:32px;margin-bottom:33px}.countdown>div{width:95px}.countdown>div>span{font-size:65px;line-height:1;font-variant-numeric:tabular-nums}.countdown>div>small{display:block;margin-top:15px;font:8px var(--sans);letter-spacing:.22em}.countdown>i{font-size:35px;color:var(--sand);opacity:.5;margin-top:6px}.text-button{display:inline-flex;align-items:center;gap:26px;border:0;border-bottom:1px solid #7b77524a;padding:13px 0;background:transparent;font:9px var(--sans);letter-spacing:.17em;line-height:1.5;transition:gap .3s,color .3s}.text-button svg{width:24px;height:24px}.text-button:hover{gap:34px;color:var(--terra)}.text-button.light{color:var(--ivory);border-color:#ddc19c65}.text-button.light:hover{color:var(--sand)}.countdown-date{font-size:14px;margin-top:15px;opacity:.75}.celebration .section-heading{text-align:center}.section-heading h2{margin-top:23px}.event-layout{margin-top:70px;display:grid;grid-template-columns:1fr 50px 1fr}.event{position:relative;text-align:center;padding:0 20px}.event-number{font:9px var(--sans);color:var(--terra);letter-spacing:.2em;margin-bottom:19px}.event-icon{width:69px;height:69px;margin:0 auto 23px;color:var(--sage)}.event h3{font-size:34px;line-height:1.12;margin-top:18px;letter-spacing:-.025em;min-height:77px}.event-address{font-size:18px;color:#80765d;line-height:1.4;min-height:53px;margin-top:15px}.event-time{display:flex;align-items:baseline;justify-content:center;gap:9px;margin:18px 0 12px}.event-time span{font-size:47px}.event-time i{font-size:19px;color:var(--sage)}.event-divider{position:relative;display:flex;justify-content:center;align-items:center}.event-divider:before{content:'';position:absolute;top:0;bottom:0;width:1px;background:#7b775234}.event-divider span{z-index:1;font-size:10px;color:var(--terra);background:var(--paper);padding:16px}.map-note{text-align:center;font:10px var(--sans);color:#837e6d;margin-top:48px;line-height:1.6}.chapel-interlude{display:grid;grid-template-columns:1fr 1fr;align-items:center;max-width:1060px;margin:auto;padding:25px 50px 65px;gap:75px}.chapel-arch{height:450px;border-radius:220px 220px 2px 2px;overflow:hidden;border:1px solid var(--sand);padding:8px;position:relative}.chapel-arch img{width:100%;height:100%;object-fit:cover;object-position:50% 60%;border-radius:inherit}.interlude-copy h2{font-size:clamp(38px,4vw,56px);margin-top:24px}.interlude-copy>p:last-child{margin-top:28px;font-size:22px;color:#80765d;line-height:1.4}.rsvp{position:relative;text-align:center;overflow:hidden;border-top:1px solid #7b775220;margin-top:40px}.rsvp h2{margin-top:25px}.rsvp .body-copy{margin-top:26px}.primary-button{display:inline-flex;align-items:center;justify-content:center;gap:26px;background:var(--olive);border:1px solid var(--olive);color:var(--paper);font:9px var(--sans);letter-spacing:.13em;min-height:56px;padding:14px 27px;transition:background .3s,transform .3s}.primary-button:hover{background:#706a47;transform:translateY(-2px)}.primary-button svg{width:23px;height:23px;flex-shrink:0}.rsvp .primary-button{margin-top:31px}.rsvp-caption{font-size:14px;color:#837e6d;margin-top:16px}footer{text-align:center;background:#efe4d4;padding:47px 20px 38px}footer .monogram{transform:scale(.7);height:65px}footer>p{font-size:22px;margin-top:13px}footer>span{display:block;font:9px var(--sans);letter-spacing:.23em;margin-top:14px}.replay{display:block;margin:23px auto 0;border:0;background:none;font:10px var(--sans);opacity:.6;padding:8px}.floating-tools{position:fixed;bottom:23px;right:23px;z-index:20}.floating-tools>button{display:flex;align-items:center;gap:9px;border:1px solid #ddc19c88;border-radius:50px;padding:12px 17px;background:var(--paper);box-shadow:0 4px 20px #58513416;font:10px var(--sans)}.floating-tools svg{width:21px;height:21px}.music-bars{display:flex;gap:2px;align-items:center;height:14px}.music-bars i{display:block;width:2px;height:3px;background:var(--sage)}.is-playing .music-bars i{animation:equalizer .8s infinite alternate}.is-playing .music-bars i:nth-child(2){animation-delay:.25s}.is-playing .music-bars i:nth-child(3){animation-delay:.5s}
dialog{width:min(500px,calc(100% - 32px));max-height:90svh;overflow-y:auto;padding:43px;border:1px solid var(--sand);background:var(--paper);color:var(--ink);box-shadow:0 20px 80px #25271933}dialog::backdrop{background:#3838259e;backdrop-filter:blur(8px)}.dialog-close{position:absolute;right:15px;top:10px;font-size:32px;background:none;border:0;padding:5px 8px}dialog h2{font-size:42px;margin-top:13px}dialog>p:not(.eyebrow){font-size:17px;line-height:1.5;color:#80765d;margin:18px 0 24px}form>label,legend{display:block;font:11px var(--sans);margin:18px 0 10px;line-height:1.4}form>label>span{opacity:.5}input[type=text],input:not([type]),textarea{width:100%;border:1px solid #7b775257;background:#fffbf6;border-radius:0;color:var(--ink);padding:13px 12px;font:16px var(--serif)}textarea{resize:vertical}fieldset{padding:0;border:0;margin:10px 0 22px}.radio-option{display:flex;align-items:center;gap:8px;font-size:17px;padding:8px 0}.radio-option input{accent-color:var(--olive)}form .primary-button{width:100%;margin-top:18px}.copy-button{margin:4px auto;display:flex;justify-content:center}.form-status{font:12px var(--sans);line-height:1.6;color:var(--sage);margin-top:13px}.toast{position:fixed;bottom:85px;left:50%;transform:translate(-50%,15px);z-index:100;max-width:calc(100% - 40px);padding:15px 21px;background:var(--olive);color:var(--paper);font:12px var(--sans);line-height:1.5;box-shadow:0 5px 20px #0002;opacity:0;pointer-events:none;transition:.3s}.toast.shown{opacity:1;transform:translate(-50%,0)}.noscript-notice{padding:12px;font-size:14px;text-align:center}
@keyframes envelopeArrive{from{opacity:0;transform:translateY(20px) rotateX(8deg)}to{opacity:1;transform:none}}@keyframes sealBreath{0%,100%{box-shadow:2px 7px 9px #231e1a66,inset 1px 2px 2px #fff9,0 0 0 0 #ddc19c20}50%{box-shadow:2px 7px 9px #231e1a66,inset 1px 2px 2px #fff9,0 0 0 13px #ddc19c00}}@keyframes lightBloom{0%{opacity:0;transform:translate(-50%,-50%) scale(.1)}30%{opacity:1;transform:translate(-50%,-50%) scale(2)}60%{opacity:.85;transform:translate(-50%,-50%) scale(10)}100%{opacity:0;transform:translate(-50%,-50%) scale(27)}}@keyframes heroReveal{to{opacity:1;transform:none}}@keyframes landscapeDrift{to{transform:scale(1.085) translateY(-5px)}}@keyframes mist{to{transform:translateX(9%);opacity:.5}}@keyframes scrollHint{0%,100%{transform:scaleY(.6);opacity:.3}50%{transform:scaleY(1);opacity:.8}}@keyframes equalizer{to{height:13px}}
@media(min-width:1400px){.hero-content{padding-top:155px}.hero-landscape{height:540px}}@media(max-width:700px){.topbar{padding:19px 23px}.topbar nav{gap:18px;font-size:9px}.nav-date{display:none}.hero{min-height:100svh}.hero-content{padding-top:125px}.hero h1{font-size:clamp(51px,12vw,80px);margin-top:25px}.hero-date{margin-top:27px}.hero-landscape{height:310px;margin-top:2px;width:140%;max-width:none}.hero-landscape>img{object-position:50% 64%}.hero-date b{font-size:24px}.scroll-cue{margin-top:-15px;margin-bottom:25px}.section-space{padding:80px 0}.section-inner{padding:0 25px}.body-copy{font-size:18px}.story h2{font-size:39px}.botanical{width:120px;height:290px;opacity:.22}.botanical-left{left:-69px}.botanical-right{right:-69px}.couple-fullnames{gap:21px;font-size:22px;margin-top:30px}.couple-fullnames p span{font-size:14px}.small-amp{font-size:26px}.desktop-break{display:none}.countdown-section{padding:67px 0}.countdown-section:before{inset:12px}.countdown-section h2{font-size:38px;margin-bottom:32px}.countdown{gap:9px}.countdown>div{width:60px}.countdown>div>span{font-size:45px}.countdown>div>small{font-size:7px;letter-spacing:.13em}.countdown>i{font-size:24px}.event-layout{display:block;margin-top:47px}.event{padding:0 15px}.event-divider{height:80px;max-width:70%;margin:12px auto 24px}.event-divider:before{height:1px;width:100%;top:50%}.event-divider span{padding:13px}.event h3{font-size:33px;min-height:0}.event-address{min-height:0}.event-time{margin-top:20px}.event-icon{width:60px;height:60px}.map-note{font-size:9px;margin-top:40px}.chapel-interlude{grid-template-columns:1fr;gap:35px;padding:0 37px 35px;text-align:center}.chapel-arch{height:380px;max-width:350px;width:100%;margin:auto}.interlude-copy h2{font-size:46px}.interlude-copy>p:last-child{font-size:20px}.rsvp{margin-top:35px}.rsvp h2{font-size:41px}.rsvp-caption{font-size:13px;max-width:250px;margin:17px auto 0}.floating-tools{bottom:16px;right:14px}.floating-tools>button{padding:11px 13px}.floating-tools>button>span:not(.music-bars){display:none}.gate-kicker{margin-bottom:28px;font-size:8px}.gate-caption p{font-size:23px}.gate-caption>span{font-size:7px;letter-spacing:.12em}.gate-caption{margin-top:24px}.wax-seal{width:83px;height:83px}.seal-monogram{font-size:36px}.seal-monogram>span{left:22px}.skip-intro{margin-top:18px}dialog{padding:34px 25px}dialog h2{font-size:37px}.primary-button{font-size:8px;gap:20px}footer{padding-bottom:65px}}
@media(max-height:740px){.envelope-wrap{height:48vh;min-height:250px;width:min(310px,72vw)}.gate-kicker{margin-bottom:21px}.gate-caption{margin-top:20px}.skip-intro{margin-top:12px}.letter{padding-top:26px}.letter p{margin-top:25px}.hero-content{padding-top:105px}.hero-landscape{height:260px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition:none!important}.hero-reveal,.reveal{opacity:1;transform:none}.landscape-mist,#ambience{display:none}.gate.opening .envelope{transform:none}}
/* EDICIÓN 2 · Apertura a pantalla completa y coreografía floral */
:root{--gold:#ddc19c;--deep-olive:#343321}.gate{background:#343321;display:block}.gate:before{opacity:.3;z-index:2}.envelope-wrap{width:100%;height:100%;min-height:0;perspective:2000px}.envelope{width:100%;height:100%;filter:none;animation:coverIn 1.2s both}.envelope-back{border-radius:0;background:radial-gradient(ellipse at center,#6c6744,#2f301f 80%)}.envelope-back:after{inset:22px;border-color:#ddc19c42}.envelope-side{background:linear-gradient(125deg,#6b6644 0,#44412d 54%,#242619 100%);filter:drop-shadow(0 0 8px #171b0b);transition:transform 2.9s .45s cubic-bezier(.24,.6,.1,1),opacity 1.5s 1.8s}.side-left{clip-path:polygon(0 0,50% 53%,0 100%)}.side-right{clip-path:polygon(100% 0,50% 53%,100% 100%);background:linear-gradient(-125deg,#6b6644,#44412d 54%,#242619 100%)}.envelope-side:after{display:none}.envelope-side svg{width:34%;height:54%;color:#ddc19c63;bottom:11%;left:2%;transform:rotate(-9deg)}.side-right svg{right:2%;left:auto;transform:scaleX(-1) rotate(-9deg)}.engraved-flowers{position:absolute;width:75%;height:auto;left:-18%;top:22%;filter:grayscale(1) sepia(1) saturate(.5) brightness(.58) contrast(1.45) drop-shadow(1px 1px 0 #ddc19c8a);mix-blend-mode:screen;opacity:.7;transform:rotate(-66deg)}.side-right .engraved-flowers{left:auto;right:-18%;transform:scaleX(-1) rotate(-66deg)}.envelope-bottom{clip-path:polygon(0 100%,50% 53%,100% 100%);background:linear-gradient(180deg,#3b3b27 35%,#575237 100%);transition:transform 2.8s .65s,opacity 1.5s 2s}.envelope-bottom:after{inset:22px;border:1px solid #ddc19c36}.engraved-bottom{position:absolute;width:40%;height:auto;left:30%;bottom:-5%;filter:grayscale(1) sepia(1) saturate(.5) brightness(.62) contrast(1.3) drop-shadow(1px 1px 0 #ddc19c99);mix-blend-mode:screen;opacity:.63;transform:rotate(175deg)}.envelope-flap{clip-path:polygon(0 0,100% 0,50% 53%);background:linear-gradient(150deg,#817a51,#5f593c 54%,#3c3a24);transition:transform 2.7s .18s cubic-bezier(.2,.65,.1,1),opacity 1s 1.7s;filter:drop-shadow(0 5px 10px #1117)}.envelope-flap:after{display:none}.gold-seams{position:absolute;inset:0;width:100%;height:100%;z-index:8;pointer-events:none;transition:opacity .9s .15s}.gold-seams path{stroke:#ddc19c;stroke-width:.14;fill:none;filter:drop-shadow(0 0 1px #f2e3d09c)}.cover-heading{position:absolute;z-index:8;top:10%;left:0;right:0;text-align:center;color:var(--ivory);transition:opacity .5s}.cover-heading>span{font:9px var(--sans);letter-spacing:.3em;opacity:.8;display:block}.cover-heading p{font-size:clamp(28px,4vw,49px);line-height:1.15;letter-spacing:-.015em;margin:18px 20px}.cover-heading p i{color:var(--gold);font-size:.7em}.wax-seal{top:53%;width:134px;height:134px;box-shadow:3px 12px 18px #17170899,inset 3px 4px 6px #fff9,0 0 70px #ddc19c1a;background:radial-gradient(circle at 30% 21%,#f8e5c8 0,#ddc19c 36%,#c5a16f 70%,#ead2aa 76%,#a8875c 82%,#ddc19c 91%);border-radius:47% 45% 49% 44%/45% 51% 46% 49%;animation:sealBreath 3s 1.5s infinite;overflow:hidden;transition:transform 1.1s .05s,opacity 1.1s .1s,filter .5s}.wax-seal:hover{transform:translate(-50%,-50%) scale(1.045);filter:brightness(1.07)}.wax-seal .seal-ring{inset:15px;border-width:1.5px;box-shadow:inset 2px 3px 5px #a17d5078,2px 2px 2px #fff8}.wax-seal .seal-monogram{font-size:65px;inset:20px;color:#a68458;text-shadow:1px 2px 1px #fae8c9;line-height:1}.wax-seal .seal-monogram>span{left:41px;top:21px;font-size:59px}.seal-shimmer{position:absolute;inset:-50%;background:linear-gradient(110deg,transparent 35%,#fff5 46%,transparent 58%);transform:translateX(-60%) rotate(-10deg);animation:sealGlint 6s 2s infinite;pointer-events:none}.cover-instruction{position:absolute;z-index:8;text-align:center;top:calc(53% + 96px);left:0;right:0;color:var(--ivory);transition:opacity .6s}.cover-instruction>span{display:block;font:9px var(--sans);letter-spacing:.2em}.cover-instruction .sound-note{font-family:var(--serif);font-size:16px;font-style:italic;letter-spacing:.01em;opacity:.62;margin-top:14px}.skip-intro{position:absolute;z-index:8;bottom:25px;left:50%;transform:translateX(-50%);white-space:nowrap;color:var(--ivory);font-size:10px;opacity:.55;margin:0}.letter{inset:7% 15%;padding:7vh 20px;overflow:hidden;border:1px solid var(--gold);background:var(--paper);z-index:2;transition:transform 3.5s .3s cubic-bezier(.16,.75,.1,1)}.letter img{position:absolute;width:100%;height:55%;object-fit:cover;left:0;bottom:0}.letter .monogram{transform:scale(1.1);margin-top:10px}.letter p{font-size:26px;margin-top:42px}.opening-light{top:53%;box-shadow:0 0 70px 40px #fff5c4,0 0 160px 95px #ffe09e,0 0 230px 125px #cf9d514d;z-index:12}.golden-flash{position:fixed;inset:0;z-index:13;opacity:0;pointer-events:none;background:radial-gradient(ellipse at 50% 53%,#fffdf0 0,#fff8dc 20%,#efd297 52%,#d6a95500 90%);mix-blend-mode:screen}.golden-rays{position:fixed;z-index:12;left:50%;top:53%;width:150vmax;height:150vmax;opacity:0;transform:translate(-50%,-50%) scale(.1);pointer-events:none;background:repeating-conic-gradient(from 10deg,#f8dfad00 0deg,#ffe8b047 2deg,#ffeabc00 4deg,#e8ba7300 10deg);mask-image:radial-gradient(circle,#000 0,transparent 64%);mix-blend-mode:screen}.gate.opening .wax-seal{transform:translate(-50%,-85%) scale(1.35) rotate(-7deg);filter:brightness(1.9);opacity:0}.gate.opening .envelope-flap{transform:rotateX(175deg);opacity:0}.gate.opening .side-left{transform:rotateY(-108deg);opacity:0}.gate.opening .side-right{transform:rotateY(108deg);opacity:0}.gate.opening .envelope-bottom{transform:rotateX(-110deg);opacity:0}.gate.opening .cover-heading,.gate.opening .cover-instruction,.gate.opening .gold-seams{opacity:0}.gate.opening .letter{transform:translateZ(320px) scale(1.1);border-color:transparent}.gate.opening .envelope{transform:none}.gate.opening .opening-light{animation:epicBloom 4.2s .2s both}.gate.opening .golden-flash{animation:epicFlash 4.5s .1s both}.gate.opening .golden-rays{animation:epicRays 4s .2s both}.gate.is-dismissed{transition:opacity 1.4s,visibility 1.4s}.topbar{border:0}.hero{isolation:isolate}.hero-content{padding-top:146px}.hero h1{font-size:clamp(64px,8.5vw,120px);margin-top:29px}.hero-date{margin-top:31px}.hero-landscape{height:clamp(360px,42vw,560px);margin-top:-26px;z-index:-1}.hero-floral{position:absolute;width:clamp(190px,30vw,430px);height:auto;z-index:3;pointer-events:none;opacity:0;filter:drop-shadow(0 12px 10px #58513412);will-change:transform}.hero-floral-left{left:-9%;top:43%;transform:rotate(-20deg)}.hero-floral-right{right:-11%;bottom:-4%;transform:scaleX(-1) rotate(-25deg)}.has-opened .hero-floral-left{animation:floralLeftReveal 2.6s .3s both}.has-opened .hero-floral-right{animation:floralRightReveal 2.6s .8s both}.hero-aura{position:absolute;left:50%;top:30%;width:60%;height:50%;background:radial-gradient(ellipse,#fff9e5,transparent 70%);transform:translateX(-50%);opacity:.6;pointer-events:none;z-index:-2}.has-opened .hero-reveal{animation-duration:2.2s;animation-delay:.25s}.has-opened h1.hero-reveal{animation-delay:.5s}.has-opened .hero-date{animation-delay:.9s}.story{padding-top:135px}.reveal{transform:translateY(35px) scale(.98);transition:opacity 1.3s,transform 1.8s cubic-bezier(.16,1,.3,1);filter:none}.reveal.visible{transform:translateY(0) scale(1)}.countdown-section{background:radial-gradient(ellipse at top,#7b7752,var(--olive) 75%)}.celebration .body-copy{font-size:18px;margin-top:22px}.schedule{position:relative;max-width:820px;margin:70px auto 0;padding:35px 0 110px}.schedule-event{display:grid;grid-template-columns:1fr 1.5fr;gap:140px;padding:20px 0 75px;position:relative}.schedule-event:last-of-type{padding-bottom:20px}.schedule-time{padding-top:65px;text-align:right}.schedule-time>span{font-size:60px;line-height:1;display:block;letter-spacing:-.04em}.schedule-time>i{display:block;font-size:22px;margin-top:8px;color:var(--terra)}.schedule-details{position:relative;padding-right:15px}.schedule-details .event-icon{margin:0 0 23px;width:57px;height:57px}.schedule-details h3{font-size:38px;margin-top:17px;line-height:1.1;letter-spacing:-.025em}.schedule-details .event-address{font-size:18px;min-height:0;margin:20px 0 11px}.timeline-track{position:absolute;left:calc(40% - 15px);top:20px;bottom:120px;width:1px;z-index:4}.timeline-line{position:absolute;inset:0;width:1px;background:#7b77524f}.timeline-progress{position:absolute;top:0;width:2px;background:linear-gradient(var(--terra),var(--sand));height:0;box-shadow:0 0 13px #b4613f3b;will-change:height}.timeline-dot{position:absolute;left:0;width:7px;height:7px;transform:translate(-50%,-50%) rotate(45deg);background:var(--sand);border:1px solid #7b775280}.dot-one{top:18%}.dot-two{top:78%}.rose-traveller{position:absolute;left:0;top:0;width:100px;height:160px;transform:translate(-50%,0);transform-origin:50% 35%;will-change:transform;filter:drop-shadow(0 9px 4px #58513422)}.rose-traveller img{width:100%;height:100%;object-fit:contain}.schedule-floral{position:absolute;width:235px;left:-95px;bottom:-30px;opacity:.7;transform:rotate(-17deg);pointer-events:none}.map-note{margin-top:17px;font-family:var(--serif);font-size:14px;font-style:italic;opacity:.8}.chapel-interlude{padding-top:70px}.chapel-arch{box-shadow:0 15px 60px #7b775218;transition:opacity 1.4s,transform 1.8s}.chapel-arch:after{content:'';position:absolute;inset:8px;border:1px solid #ddc19c91;border-radius:inherit;pointer-events:none}.rsvp{padding-top:110px;padding-bottom:115px;background:radial-gradient(ellipse at center,#fffbf3,#f5e9d8);border-top:0}.rsvp-floral{position:absolute;width:clamp(240px,36vw,470px);bottom:-55px;right:-125px;transform:scaleX(-1) rotate(25deg);opacity:.8;pointer-events:none}.rsvp-seal-wrap{position:relative;width:190px;height:190px;margin:28px auto 12px;display:flex;align-items:center;justify-content:center}.rsvp-seal{position:relative;width:132px;height:132px;border:0;border-radius:45% 49% 47% 50%/50% 45% 49% 46%;overflow:hidden;color:#edd8b8;background:radial-gradient(circle at 30% 22%,#cc9370 0,#b4613f 38%,#88462e 68%,#c9855e 74%,#8e4b31 82%,#b9704d 92%);box-shadow:4px 10px 14px #58513429,inset 3px 3px 4px #f6dab19c;transition:transform .5s,filter .5s;animation:rsvpPulse 4s infinite}.rsvp-seal:hover{transform:rotate(-7deg) scale(1.05);filter:brightness(1.1)}.rsvp-seal .seal-ring{inset:15px;border-color:#e0bb96;box-shadow:inset 1px 2px 3px #7d3b2c,1px 2px 1px #efcfa694}.rsvp-seal-label{font-size:30px;letter-spacing:.03em;text-shadow:1px 2px #75402e;position:relative;z-index:1}.rsvp-seal-heart{display:block;font-size:12px;margin-top:8px;color:#e8c49d;text-shadow:1px 1px #753d2a}.seal-orbit{position:absolute;inset:0;border:1px solid #b4613f29;border-radius:50%;animation:orbitBreathe 4s infinite;pointer-events:none}.seal-orbit:before,.seal-orbit:after{content:'';position:absolute;inset:10px;border:1px solid #b4613f18;border-radius:50%}.seal-orbit:after{inset:-10px}.rsvp-touch{font:8px var(--sans);letter-spacing:.2em}.rsvp-caption{font-size:15px;position:relative}.rsvp-seal.activated{animation:sealActivate .65s both}dialog{padding-top:53px;overflow-x:hidden;isolation:isolate;border:1px solid var(--sand);border-radius:3px}dialog[open]{animation:dialogReveal .75s cubic-bezier(.16,1,.3,1) both}dialog::backdrop{background:#2c2e21b3;backdrop-filter:blur(13px)}.dialog-floral{position:absolute;right:-55px;top:-85px;width:190px;opacity:.22;z-index:-1;transform:rotate(65deg)}input[type=text],input[type=email],input[type=number]{width:100%;border:1px solid #7b775257;background:#fffbf6;border-radius:0;color:var(--ink);padding:13px 12px;font:16px var(--serif)}#guestCountGroup>label{display:block;font:11px var(--sans);margin:0 0 10px}#guestCountGroup input{max-width:110px}.honey-field{position:absolute!important;left:-9999px!important;opacity:0!important;width:1px;height:1px;overflow:hidden;pointer-events:none}.email-fallback[hidden]{display:none}.email-fallback .text-button{width:100%;justify-content:center}.primary-button:disabled{opacity:.55;cursor:wait;transform:none}footer{position:relative}.floating-tools>button{background:#f8f1e8e8;backdrop-filter:blur(12px)}
@keyframes coverIn{from{opacity:0;filter:brightness(.5)}to{opacity:1;filter:brightness(1)}}@keyframes epicBloom{0%{opacity:0;transform:translate(-50%,-50%) scale(.05)}25%{opacity:1;transform:translate(-50%,-50%) scale(2)}60%{opacity:1;transform:translate(-50%,-50%) scale(8)}100%{opacity:0;transform:translate(-50%,-50%) scale(20)}}@keyframes epicFlash{0%,12%{opacity:0}32%{opacity:.78}60%{opacity:.94}100%{opacity:0}}@keyframes epicRays{0%{opacity:0;transform:translate(-50%,-50%) scale(.1) rotate(-15deg)}25%{opacity:.9}65%{opacity:1}100%{opacity:0;transform:translate(-50%,-50%) scale(1.5) rotate(15deg)}}@keyframes sealGlint{0%,65%,100%{transform:translateX(-70%) rotate(-10deg)}85%{transform:translateX(70%) rotate(-10deg)}}@keyframes floralLeftReveal{from{opacity:0;transform:translate(-55px,75px) rotate(-35deg)}to{opacity:.95;transform:translate(0,0) rotate(-20deg)}}@keyframes floralRightReveal{from{opacity:0;transform:translate(50px,90px) scaleX(-1) rotate(-35deg)}to{opacity:.96;transform:translate(0,0) scaleX(-1) rotate(-25deg)}}@keyframes rsvpPulse{0%,100%{box-shadow:4px 10px 14px #58513429,inset 3px 3px 4px #f6dab19c,0 0 0 0 #b4613f14}50%{box-shadow:4px 10px 14px #58513429,inset 3px 3px 4px #f6dab19c,0 0 0 12px #b4613f00}}@keyframes orbitBreathe{0%,100%{transform:scale(.94);opacity:.5}50%{transform:scale(1.05);opacity:1}}@keyframes sealActivate{50%{transform:scale(.9) rotate(-10deg)}100%{transform:scale(1.07) rotate(2deg)}}@keyframes dialogReveal{from{opacity:0;transform:translateY(65px) scale(.92)}to{opacity:1;transform:none}}
@media(min-width:1400px){.hero-content{padding-top:145px}.hero-landscape{height:560px}}@media(max-width:700px){.envelope-wrap{height:100%;width:100%;min-height:0}.wax-seal{width:112px;height:112px}.wax-seal .seal-monogram{font-size:51px;inset:18px}.wax-seal .seal-monogram>span{left:32px;top:17px;font-size:47px}.wax-seal .seal-ring{inset:13px}.cover-heading{top:10%}.cover-heading p{font-size:31px;line-height:1.3;max-width:270px;margin:17px auto}.cover-heading>span{font-size:8px}.cover-instruction{top:calc(53% + 84px)}.cover-instruction>span{font-size:8px}.envelope-side svg{width:67%;height:57%;left:-3%;bottom:8%}.side-right svg{right:-3%;left:auto}.engraved-flowers{width:138%;left:-40%;top:29%;transform:rotate(-73deg)}.side-right .engraved-flowers{right:-40%;transform:scaleX(-1) rotate(-73deg)}.engraved-bottom{width:94%;left:3%;bottom:-3%}.letter{inset:5% 6%;padding-top:10vh}.gold-seams path{stroke-width:.2}.hero-content{padding-top:135px}.hero h1{font-size:clamp(55px,13vw,82px)}.hero-landscape{height:375px;width:160%;margin-top:-15px}.hero-floral{width:220px}.hero-floral-left{left:-115px;top:40%}.hero-floral-right{right:-115px;bottom:-11px}.story{padding-top:100px}.schedule{margin-top:43px;padding:15px 0 80px}.schedule-event{grid-template-columns:95px 1fr;gap:45px;padding:20px 0 65px}.schedule-time{padding-top:58px}.schedule-time>span{font-size:36px}.schedule-time>i{font-size:18px;margin-top:8px}.schedule-details{padding-right:0}.schedule-details h3{font-size:28px;line-height:1.16}.schedule-details .event-address{font-size:16px}.schedule-details .event-icon{width:48px;height:48px;margin-bottom:19px}.schedule-details .eyebrow{font-size:8px;letter-spacing:.15em}.schedule-details .text-button{font-size:8px;gap:10px}.schedule-details .text-button svg{width:20px}.timeline-track{left:116px;top:20px;bottom:90px}.rose-traveller{width:70px;height:115px}.schedule-floral{width:160px;left:-95px;bottom:-26px}.map-note{font-size:12px;margin-top:26px}.chapel-interlude{padding-top:35px}.rsvp{padding-top:80px;padding-bottom:105px}.rsvp-floral{width:240px;right:-135px;bottom:-13px}.rsvp .body-copy{position:relative}.rsvp-caption{max-width:280px;line-height:1.5}.rsvp-seal-wrap{margin-top:25px}.rsvp-touch{font-size:7px;letter-spacing:.14em}dialog{padding-top:40px}.dialog-floral{width:160px;top:-55px}.hero .scroll-cue{margin-top:-12px}}
@media(max-width:360px){.schedule-event{grid-template-columns:78px 1fr;gap:35px}.timeline-track{left:92px}.schedule-details h3{font-size:25px}.cover-heading p{font-size:27px}.hero h1{font-size:50px}}
@media(prefers-reduced-motion:reduce){.hero-floral{opacity:.9}.hero-floral-left{transform:rotate(-20deg)}.hero-floral-right{transform:scaleX(-1) rotate(-25deg)}.golden-rays,.golden-flash,.opening-light{display:none}.seal-shimmer{display:none}.rose-traveller{will-change:auto}.reveal{opacity:1;transform:none}}
/* EDICIÓN 3 · Apertura estable y lectura con máscaras y entradas escalonadas */
html.intro-active,html.intro-active body{overflow:hidden!important;overscroll-behavior:none;overflow-anchor:none;scroll-behavior:auto!important}#invitation{overflow-anchor:none}#inicio:focus{outline:none}.reveal.staged-reveal{opacity:1;transform:none;transition:none;filter:none}.staged-reveal .motion-item{opacity:0;transform:translate3d(0,24px,0);filter:blur(3px);transition:opacity .9s cubic-bezier(.2,.7,.2,1),transform 1.25s cubic-bezier(.16,1,.3,1),filter .95s ease;transition-delay:var(--motion-delay,0s)}.staged-reveal.visible .motion-item{opacity:1;transform:translate3d(0,0,0);filter:blur(0)}.staged-reveal .motion-heading{opacity:1;transform:none;filter:none;transition:none}.word-mask{display:inline-block;overflow:clip;vertical-align:baseline;white-space:nowrap;padding:.1em .04em .15em;margin:-.1em -.04em -.15em}.word-content{display:inline-block;opacity:0;transform:translate3d(0,112%,0);filter:blur(2px);transition:transform 1.15s cubic-bezier(.16,1,.3,1),opacity .6s ease,filter .8s ease;transition-delay:calc(var(--motion-delay,0s) + var(--word-delay,0s))}.staged-reveal.visible .word-content{opacity:1;transform:translate3d(0,0,0);filter:blur(0)}.calendar-hint{font:10px var(--sans);letter-spacing:.03em;opacity:.65;margin-top:10px}.calendar-backup{display:inline-block;padding:8px;margin-top:8px;font:12px var(--serif);font-style:italic;color:var(--ivory);opacity:.65;border:0;background:none;text-decoration:underline;text-underline-offset:4px}.calendar-backup:hover{opacity:1}.staged-reveal .countdown{transition-duration:1.45s}.staged-reveal .schedule-time{transition-duration:1.45s}.reveal.staged-reveal .rsvp-seal-wrap{transition-duration:1.6s}
@media(prefers-reduced-motion:reduce){.staged-reveal .motion-item,.word-content{opacity:1!important;transform:none!important;filter:none!important;transition:none!important}}

/* VESTUARIO · Acuarela, composición editorial y capas de movimiento discretas. */
.dress-code{position:relative;isolation:isolate;overflow:hidden;text-align:center;background:radial-gradient(ellipse at 50% 38%,#fffaf4b3,transparent 68%),linear-gradient(180deg,var(--paper),#f0e3d2 52%,var(--paper));padding-top:100px;padding-bottom:100px}.dress-code:before{content:'';position:absolute;left:15%;right:15%;top:0;height:1px;background:linear-gradient(90deg,transparent,#7b775246,transparent)}.dress-heading{max-width:700px;margin:auto}.dress-heading h2{margin:23px 0 27px}.dress-heading .body-copy{font-size:18px;line-height:1.7;max-width:650px;margin:auto}.dress-runway{position:relative;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;max-width:930px;margin:48px auto 26px}.dress-look{margin:0;min-width:0;height:clamp(320px,38vw,465px);position:relative}.dress-look.reveal{transition:opacity 1.2s ease,transform 1.55s cubic-bezier(.16,1,.3,1);transition-delay:var(--look-delay,0s)}.dress-parallax{width:100%;height:100%;transform:translate3d(0,var(--dress-shift,0px),0)}.dress-runway.in-motion .dress-parallax{will-change:transform}.dress-parallax img{display:block;width:100%;height:100%;object-fit:cover;object-position:center;pointer-events:none;user-select:none}.dress-guidance{display:flex;align-items:center;justify-content:center;gap:38px;margin:10px auto 34px;font-size:21px;font-style:italic}.dress-guidance p>span{display:block;font:8px var(--sans);letter-spacing:.23em;margin-bottom:9px;font-style:normal;color:var(--sage)}.dress-guidance-separator{width:1px;height:42px;background:#7b77523d}.dress-warm{display:flex;align-items:center;justify-content:center;gap:16px;max-width:560px;margin:0 auto;line-height:1.65;font-size:17px;color:#78715a}.dress-warm>svg{width:31px;height:35px;flex-shrink:0;color:var(--sage)}.dress-colours{max-width:510px;margin:44px auto 0;padding-top:29px;border-top:1px solid #7b775233}.dress-colours>.eyebrow{display:block;font-size:9px;letter-spacing:.25em}.dress-palette{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:20px;padding:0;margin:25px 0 0;list-style:none}.dress-palette li{display:flex;align-items:center;flex-direction:column;gap:13px;font-size:18px;font-style:italic;line-height:1.25}.dress-swatch{display:block;position:relative;width:51px;height:51px;border:1px solid #7b775265;border-radius:50%;background:var(--swatch)}.dress-swatch:after{content:'';position:absolute;top:50%;left:-14%;width:128%;height:1px;background:#585134a6;transform:rotate(-46deg);box-shadow:0 1px 0 #f8f1e865}.swatch-white{--swatch:#faf7f1}.swatch-beige{--swatch:#c6b498}.swatch-olive{--swatch:#585134}.swatch-red{--swatch:#8e3434}.dress-comfort{display:flex;flex-direction:column;align-items:center;gap:17px;margin:43px auto 0;max-width:360px;font-size:17px;font-style:italic;line-height:1.5;color:#78715a}.dress-comfort:before{content:'';height:1px;width:55px;background:#7b77524d;margin-bottom:8px}.dress-comfort>svg{width:31px;height:28px;color:var(--sage)}.dress-branch{position:absolute;width:170px;height:350px;color:var(--sage);opacity:.15;z-index:-1;pointer-events:none}.dress-branch-left{left:-30px;bottom:120px;transform:rotate(-21deg)}.dress-branch-right{right:-35px;top:145px;transform:scaleX(-1) rotate(-15deg)}
@media(max-width:700px){.dress-code{padding-top:78px;padding-bottom:80px}.dress-heading .body-copy{font-size:17px;max-width:370px}.dress-heading h2{margin-bottom:24px}.dress-runway{grid-template-columns:repeat(2,minmax(0,1fr));column-gap:12px;row-gap:18px;max-width:430px;margin:33px auto 26px}.dress-look{height:clamp(280px,80vw,350px)}.dress-guidance{gap:25px;font-size:19px;margin-bottom:29px}.dress-guidance p>span{font-size:7px}.dress-warm{max-width:320px;font-size:16px;gap:13px;text-align:left}.dress-warm>svg{width:29px;height:33px}.dress-colours{margin-top:34px;padding-top:25px}.dress-palette{gap:10px;margin-top:23px}.dress-palette li{font-size:16px;gap:12px}.dress-swatch{width:44px;height:44px}.dress-comfort{font-size:16px;margin-top:35px}.dress-branch{width:125px;height:280px;opacity:.13}.dress-branch-left{left:-64px;bottom:110px}.dress-branch-right{right:-70px;top:100px}}
@media(max-width:360px){.dress-palette{gap:6px}.dress-palette li{font-size:14px}.dress-swatch{width:39px;height:39px}.dress-guidance{gap:20px;font-size:18px}.dress-runway{gap:10px}.dress-look{height:275px}}
@media(prefers-reduced-motion:reduce){.dress-parallax{transform:none!important;will-change:auto!important}.dress-look.reveal{opacity:1;transform:none;transition:none;transition-delay:0s}}


/* TARJETA 2.0 · Marfil cálido, oliva profundo y acuarelas sutiles. */
:root{--paper:#f8f5ef;--ivory:#f2eadf;--sand:#d8c5a7;--olive:#585134;--sage:#717552;--ink:#4f503b}
.brand-mark{display:block;width:100%;height:100%;background-color:currentColor;-webkit-mask:url('assets/images/monograma-cd.svg') center/contain no-repeat;mask:url('assets/images/monograma-cd.svg') center/contain no-repeat}
.monogram>span.brand-mark{position:relative;left:auto;top:auto;width:100%;height:100%;font-size:0}.monogram{width:88px;height:84px;color:var(--olive)}
.nav-mark{width:44px;height:42px;color:var(--olive)}.nav-mark>.brand-mark{position:relative;left:auto;top:auto;width:100%;height:100%;font-size:0}.topbar nav{font-size:11px}.topbar nav a{display:flex;min-height:40px;align-items:center}
.gate{background:radial-gradient(ellipse at 50% 42%,#fffdf7 0,#f3ede3 65%,#e2d8c7 100%)}.gate:before{opacity:.1}.cover-heading{top:8%;color:#f2eadf}.cover-heading>.cover-brand{position:relative;width:76px;height:72px;margin:0 auto 19px;letter-spacing:0;color:#e7d5b5}.cover-heading>span:not(.cover-brand){font-size:10px;letter-spacing:.24em}.cover-heading p{font-size:clamp(31px,3.3vw,46px);margin:17px 0 15px}.cover-instruction{top:calc(53% + 91px)}.cover-instruction>span{font-size:9px;letter-spacing:.17em}.cover-instruction .sound-note{font-size:12px;letter-spacing:0;opacity:.78;margin-top:13px}.seal-brand{position:absolute;inset:23%;width:auto;height:auto;color:#916f47}.wax-seal{animation:none}.wax-seal:hover{filter:brightness(1.04)}.skip-intro{bottom:5%;opacity:1;color:#f2eadf;font:12px var(--sans);letter-spacing:.02em;padding:10px 14px;min-height:40px;text-underline-offset:5px;white-space:nowrap}.gate.opening .opening-light{animation:epicBloom 3.2s .12s both}.gate.opening .golden-flash{animation:epicFlash 3.2s .12s both}.gate.opening .golden-rays{animation:epicRays 3.2s .12s both}.golden-rays{filter:blur(2px)}.letter .monogram{width:84px;height:80px}
.hero{background:var(--paper)}.hero-date>span{font-size:10px}.hero h1>i{color:var(--sage)}.hero-aura{opacity:.4}.hero-landscape>img{animation-duration:24s}.section-space{padding:120px 0}.body-copy{font-size:21px;line-height:1.8;color:#6f6e5b}.story .body-copy{max-width:620px;margin:29px auto 0}.story h2{margin-top:24px}.story .botanical{opacity:.18}.couple-fullnames{margin-top:37px}.countdown-section{background:radial-gradient(ellipse at top,#747854,var(--olive) 78%)}.countdown>div>small{font-size:9px}.countdown-section .eyebrow{color:#eee3d1}.countdown-date{font-size:15px}.calendar-hint{opacity:.83}.calendar-backup{opacity:.8}
.celebration .section-heading .body-copy{max-width:590px;margin:25px auto 0;font-size:20px;line-height:1.75}.schedule-details .eyebrow{color:var(--sage)}.schedule-time>i{color:var(--sage)}.schedule-floral{opacity:.36}.map-note{font-size:16px;line-height:1.65;max-width:480px;margin:20px auto 0;color:#6f6e5b;opacity:1}.text-button#ceremonyMap,.text-button#receptionMap{min-height:47px;padding:11px 14px;gap:12px;background:var(--olive);border:1px solid var(--olive);border-radius:2px;color:var(--paper);font-size:9px;letter-spacing:.13em;transition:background .3s,border-color .3s}.text-button#ceremonyMap:hover,.text-button#receptionMap:hover{background:#717552;border-color:#717552;gap:12px}.text-button#ceremonyMap svg,.text-button#receptionMap svg{width:21px;height:21px;flex-shrink:0}
.dress-code{background:radial-gradient(ellipse at 50% 38%,#fffdf8cc,transparent 68%),linear-gradient(180deg,var(--paper),#f0e8dc 52%,var(--paper))}.dress-heading .body-copy{color:#6f6e5b}.dress-warm,.dress-comfort{color:#6f6e5b}.dress-branch{opacity:.11}.dress-guidance p>span{font-size:9px}.dress-colours>.eyebrow{font-size:10px}.dress-colours{border-color:#7b775233}.swatch-white{--swatch:#fffdfa}.dress-palette li{font-size:18px}
.chapel-interlude{background:var(--paper)}.chapel-arch{box-shadow:0 12px 40px #5851340d}.interlude-copy h2 i{color:var(--sage)}.rsvp{background:linear-gradient(180deg,var(--paper),#f0e8dc)}.rsvp-floral{opacity:.2}.rsvp .body-copy{max-width:610px;margin-left:auto;margin-right:auto;font-size:20px}.rsvp-seal{animation:none;background:radial-gradient(circle at 32% 23%,#95906b,#686447 43%,#4b4c35 73%,#898360 80%,#55543b 90%);box-shadow:3px 8px 13px #58513425,inset 2px 2px 3px #eadac178}.rsvp-seal:hover{transform:translateY(-3px);filter:brightness(1.06)}.rsvp-seal .seal-ring{border-color:#dfc9a3;box-shadow:inset 1px 1px 2px #3e402b,1px 1px 1px #e7d5b54d}.rsvp-brand{position:absolute;left:50%;top:25px;width:62px;height:58px;transform:translateX(-50%);color:#eee3cc}.rsvp-seal-label{position:absolute;left:0;right:0;bottom:24px;font:11px var(--sans);letter-spacing:.16em;color:#eee3cc;text-shadow:none}.seal-orbit{animation:none;border-color:#71755230}.seal-orbit:before,.seal-orbit:after{border-color:#71755218}.rsvp-touch{font-size:9px;letter-spacing:.16em}.rsvp-caption{font-size:16px;color:#6f6e5b}.dialog-floral{opacity:.12}.primary-button{background:var(--olive)}.dialog-close{min-width:40px;min-height:40px}.closing-signature{position:relative;display:flex;align-items:center;justify-content:center;width:fit-content;margin:0 auto 24px;gap:8px}.closing-signature .footer-monogram{width:86px;height:82px;margin:0}.closing-hummingbird{display:block;width:119px;height:80px;object-fit:contain;pointer-events:none}footer{background:var(--paper);padding:65px 25px 49px}footer>p{font-size:22px}.replay{font-size:12px;opacity:.7}.floating-tools>button{background:#f8f5eff0}.staged-reveal .motion-item{filter:none;transform:translate3d(0,18px,0)}.staged-reveal.visible .motion-item{transform:translate3d(0,0,0);filter:none}.word-content{filter:none;transition-duration:1.05s,.6s,.8s}.staged-reveal.visible .word-content{filter:none}
@keyframes epicFlash{0%,12%{opacity:0}32%{opacity:.48}60%{opacity:.68}100%{opacity:0}}@keyframes epicRays{0%{opacity:0;transform:translate(-50%,-50%) scale(.1) rotate(-15deg)}25%{opacity:.5}65%{opacity:.6}100%{opacity:0;transform:translate(-50%,-50%) scale(1.5) rotate(15deg)}}
@keyframes floralLeftReveal{from{opacity:0;transform:translate(-30px,45px) rotate(-26deg)}to{opacity:.52;transform:translate(0,0) rotate(-20deg)}}@keyframes floralRightReveal{from{opacity:0;transform:translate(30px,50px) scaleX(-1) rotate(-30deg)}to{opacity:.48;transform:translate(0,0) scaleX(-1) rotate(-25deg)}}
@media(max-width:700px){.section-space{padding:88px 0}.topbar{padding:18px 6%}.topbar nav{gap:18px;font-size:10px}.nav-date{display:none}.cover-heading{top:7%}.cover-heading>.cover-brand{width:65px;height:61px;margin-bottom:17px}.cover-heading>span:not(.cover-brand){font-size:8px}.cover-heading p{font-size:30px;max-width:290px;margin:14px auto 13px;line-height:1.25}.cover-instruction{top:calc(53% + 80px)}.cover-instruction>span{font-size:8px}.cover-instruction .sound-note{font-size:11px;max-width:250px;margin-left:auto;margin-right:auto}.skip-intro{bottom:5%;font-size:12px}.seal-brand{inset:23%}.hero-content{padding-top:126px}.hero-date>span{font-size:9px}.body-copy{font-size:19px;line-height:1.75}.story .body-copy{max-width:360px}.celebration .section-heading .body-copy{font-size:18px;line-height:1.7;max-width:350px}.map-note{font-size:14px;line-height:1.65;max-width:310px}.text-button#ceremonyMap,.text-button#receptionMap{font-size:8px;padding:10px 11px;gap:8px;min-height:45px}.text-button#ceremonyMap:hover,.text-button#receptionMap:hover{gap:8px}.text-button#ceremonyMap svg,.text-button#receptionMap svg{width:19px;height:19px}.dress-heading .body-copy{font-size:17px}.dress-guidance p>span{font-size:8px}.dress-palette li{font-size:16px}.rsvp .body-copy{font-size:18px;max-width:340px}.rsvp-touch{font-size:8px}.rsvp-caption{font-size:15px}.closing-signature .footer-monogram{width:74px;height:70px}.closing-hummingbird{width:104px;height:70px}.closing-signature{gap:5px}footer{padding-top:55px;padding-bottom:40px}footer>p{font-size:20px}}
@media(max-height:650px){.cover-heading{top:5%}.cover-heading>.cover-brand{width:49px;height:46px;margin-bottom:11px}.cover-heading p{font-size:26px;margin:11px auto}.wax-seal{width:90px;height:90px}.cover-instruction{top:calc(53% + 64px)}.skip-intro{bottom:3%}}
@media(prefers-reduced-motion:reduce){.hero-floral{opacity:.45}.rsvp-seal,.seal-orbit{animation:none}.staged-reveal .motion-item,.word-content{transform:none!important;filter:none!important}}

/* Portada: entrada sin música visible hasta que la invitación se abre. */
.gate:not(.is-dismissed) .skip-intro{position:fixed;z-index:30;bottom:max(16px,env(safe-area-inset-bottom));left:50%;transform:translateX(-50%);margin:0;opacity:1;visibility:visible;pointer-events:auto;min-height:44px;max-width:calc(100vw - 32px);padding:12px 18px;color:#f8f5ef;background:#343321e8;border:1px solid #ddc19c66;border-radius:2px;font-size:12px}
.skip-intro:focus-visible{outline:2px solid #ddc19c;outline-offset:4px}
