@font-face{font-family:Forum;src:url('assets/Forum-Regular.woff2?v=28bb01a127b1') format('woff2'),url('assets/Forum-Regular.woff?v=28bb01a127b1') format('woff'),url('assets/Forum-Regular.ttf?v=28bb01a127b1') format('truetype');font-display:swap}
@font-face{font-family:Cormorant;src:url('assets/CormorantGaramond-Variable.woff2?v=28bb01a127b1') format('woff2'),url('assets/CormorantGaramond-Variable.woff?v=28bb01a127b1') format('woff'),url('assets/CormorantGaramond-Variable.ttf?v=28bb01a127b1') format('truetype');font-display:swap;font-weight:300 700}
:root{--paper:#f3efe5;--ink:#35443a;--muted:#777c6d;--gold:#a88b4e;--line:#c9bb9a;--envelope:#d9d6c3;--envelope-dark:#bcbca6;--envelope-light:#e9e4d3;--p:0;--flap:0deg;--flap-z:6;--card-y:0px;--card-scale:1;--card-z:3;--shell-alpha:1;--heading-alpha:1;--seal-alpha:1;--card-angle:-4deg;--card-x:0px;--letter-alpha:1;color-scheme:light}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:90px}body{margin:0;background:var(--paper);color:var(--ink);font-family:Forum,Georgia,serif;transition:background .65s,color .65s}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;color:inherit}a{color:inherit}button:focus-visible,a:focus-visible{outline:2px solid var(--gold);outline-offset:7px}button{cursor:pointer}button:disabled{cursor:default}.skip{position:fixed;top:-90px;left:20px;z-index:100;background:var(--paper);padding:15px}.skip:focus{top:10px}.grain{pointer-events:none;position:fixed;inset:0;z-index:30;opacity:.17;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='.85' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Cpath fill='%23808080' opacity='.23' filter='url(%23n)' d='M0 0h180v180H0z'/%3E%3C/svg%3E")}.reading-progress{height:2px;position:fixed;top:0;left:0;right:0;z-index:50}.reading-progress i{display:block;width:100%;height:100%;background:var(--gold);transform-origin:left;transform:scaleX(0)}.masthead{position:absolute;top:0;left:0;right:0;z-index:35;height:100px;padding:28px 5vw;display:flex;align-items:center;justify-content:space-between;gap:20px}.wordmark{text-decoration:none;font-family:Cormorant,Georgia,serif;font-size:30px;letter-spacing:-1.1px;display:inline-flex;align-items:center;gap:16px}.wordmark>span{font-family:Forum,serif;font-size:9px;letter-spacing:3px;border-left:1px solid var(--line);padding-left:15px;line-height:1.6}.demo-label{font-size:9px;letter-spacing:2.8px;color:var(--muted)}.text-button{display:inline-flex;align-items:center;justify-content:center;gap:12px;padding:9px 0;border:0;background:none;text-decoration:none;font-size:13px}.theme-dot{width:10px;height:10px;border-radius:50%;background:var(--ink);box-shadow:0 0 0 3px var(--paper),0 0 0 4px var(--line)}.eyebrow{font-size:11px;letter-spacing:3.6px;line-height:1.6;font-weight:400}.opening{height:270svh;position:relative}.opening-stage{height:100svh;min-height:620px;position:sticky;top:0;overflow:hidden;perspective:1700px;background:radial-gradient(ellipse at 7% 60%,#afb7a239,transparent 40%),radial-gradient(ellipse at 91% 18%,#d2bd8a20,transparent 45%)}.opening-heading{position:absolute;top:15%;left:10%;z-index:10;opacity:var(--heading-alpha);transform:translateY(calc(var(--p)*-60px));pointer-events:none}.opening-heading .eyebrow{color:var(--gold);margin:0 0 25px}.opening-heading h1{font-family:Cormorant,Georgia,serif;font-size:clamp(66px,7.4vw,116px);font-weight:400;letter-spacing:-3.8px;line-height:.91;margin:0}.opening-heading h1 em{font-weight:400;color:var(--gold)}.opening-subtitle{font-size:17px;color:var(--muted);margin-top:26px;letter-spacing:.3px}.botanical{position:absolute;pointer-events:none;object-fit:contain;opacity:.6;max-width:45vw;max-height:72%;filter:saturate(.7);will-change:transform}.botanical-left{left:-8%;bottom:-24%;width:470px;transform:rotate(12deg) translateY(calc(var(--p)*-100px))}.botanical-right{right:-9%;top:-18%;width:440px;transform:rotate(175deg) translateY(calc(var(--p)*90px))}.envelope-scene{position:absolute;width:min(560px,44vw);aspect-ratio:1.49;left:65%;top:57%;transform:translate(-50%,-50%) rotate(calc(-7deg + var(--p)*7deg));isolation:isolate}.envelope-shadow{position:absolute;inset:22% 7% -7%;border-radius:50%;background:#343f2b35;filter:blur(22px);transform:translateY(28px);opacity:var(--shell-alpha)}.envelope-back,.envelope-front,.envelope-flap,.envelope-lining{position:absolute;inset:0;border-radius:5px;opacity:var(--shell-alpha);will-change:transform,opacity}.envelope-back{background:linear-gradient(145deg,var(--envelope-dark),var(--envelope));box-shadow:inset 0 0 0 1px #60664625,0 18px 45px #343d2720;z-index:1}.envelope-lining{background:repeating-linear-gradient(45deg,#8791770d 0 1px,transparent 1px 9px),linear-gradient(125deg,#a9af91,#d0d2b6);clip-path:polygon(0 0,100% 0,50% 78%);z-index:2}.envelope-front{background:linear-gradient(155deg,var(--envelope-light),var(--envelope));clip-path:polygon(0 0,50% 52%,100% 0,100% 100%,0 100%);z-index:5}.envelope-front:before,.envelope-front:after{content:"";position:absolute;inset:0;background:linear-gradient(45deg,#c4c5ae90,transparent 55%);clip-path:polygon(0 0,55% 55%,0 100%)}.envelope-front:after{transform:scaleX(-1)}.envelope-fold{position:absolute;inset:0;background:linear-gradient(170deg,var(--envelope-light),var(--envelope));clip-path:polygon(0 100%,50% 42%,100% 100%);filter:drop-shadow(0 -1px 1px #6c705b40)}.envelope-flap{background:linear-gradient(170deg,var(--envelope-light),var(--envelope-dark));clip-path:polygon(0 0,100% 0,50% 56%);transform-origin:50% 0;transform:rotateX(var(--flap));backface-visibility:visible;z-index:var(--flap-z);filter:drop-shadow(0 4px 2px #61684a25);border-radius:5px 5px 0 0}.recipient{position:absolute;bottom:12%;left:15%;right:15%;text-align:center;z-index:2}.recipient>span{font-size:8px;letter-spacing:3px;color:#6d745e}.recipient p{font:italic 28px Cormorant,serif;margin:8px 0 0;color:#4f5b45}.seal{position:absolute;left:50%;top:46%;width:88px;height:88px;border:none;border-radius:44% 48% 45% 49%;transform:translate(-50%,-50%) rotate(-9deg) scale(calc(1 + var(--p)*.2));background:radial-gradient(ellipse at 28% 20%,#e9d0a0,#c2a065 40%,#a18448 76%,#d3b67a);box-shadow:2px 5px 9px #4e482648,inset 0 2px 3px #f2ddb1,inset 0 -3px 4px #80632f;z-index:8;opacity:var(--seal-alpha);overflow:hidden}.seal-ring{position:absolute;inset:8px;border-radius:50%;border:1px solid #8e6c3655;box-shadow:inset 0 1px 2px #7e5f2e55,0 1px 1px #f1d9aa99}.seal img{position:absolute;inset:12px;width:64px;height:64px;object-fit:contain;mix-blend-mode:multiply;filter:sepia(.6) contrast(1.4)}.seal-shine{position:absolute;inset:0;background:linear-gradient(110deg,transparent 25%,#fff5 50%,transparent 75%);transform:translateX(-110%);animation:shine 7s ease-in-out infinite}.letter{position:absolute;z-index:var(--card-z);margin:0;left:13%;top:8%;width:74%;aspect-ratio:5/7;background:#fffdf7;transform:translate(var(--card-x),var(--card-y)) rotate(var(--card-angle)) scale(var(--card-scale));transform-origin:center;box-shadow:0 10px 35px #343b282b;will-change:transform;opacity:var(--letter-alpha);border:1px solid #c4b48b44}.letter>img{width:100%;height:100%;object-fit:contain;display:block}.letter-glint{position:absolute;inset:0;pointer-events:none;background:linear-gradient(120deg,#fff1,transparent 50%,#9e8c6110)}.scroll-cue{position:absolute;left:10%;bottom:10%;display:flex;align-items:center;gap:20px;opacity:var(--heading-alpha)}.scroll-cue>span:first-child{font-size:9px;letter-spacing:3px;color:var(--muted)}.scroll-line{width:64px;height:1px;background:var(--line);position:relative}.scroll-line:after{content:"";width:6px;height:6px;position:absolute;right:0;top:-3px;border-bottom:1px solid var(--gold);border-right:1px solid var(--gold);transform:rotate(-45deg);animation:arrow 2.5s ease-in-out infinite}.edition{position:absolute;right:5vw;bottom:6%;font-size:9px;letter-spacing:3px;color:var(--muted)}.motes{position:absolute;inset:0;pointer-events:none;opacity:var(--heading-alpha)}.motes i{position:absolute;left:18%;top:58%;width:3px;height:3px;background:var(--gold);border-radius:50%;opacity:.35;animation:drift 9s ease-in-out infinite}.motes i:nth-child(2){left:86%;top:34%;animation-delay:-3s}.motes i:nth-child(3){left:44%;top:18%;animation-delay:-5s;width:2px;height:2px}.motes i:nth-child(4){left:76%;top:80%;animation-delay:-7s}.motes i:nth-child(5){left:54%;top:71%;animation-delay:-2s}.motes i:nth-child(6){left:31%;top:32%;animation-delay:-4s;width:2px;height:2px}.our-day{text-align:center;padding:95px 24px 135px;position:relative}.section-ornament{display:flex;gap:22px;justify-content:center;align-items:center;color:var(--gold);margin:0 0 58px}.section-ornament>span{height:1px;width:65px;background:var(--line)}.our-day>.eyebrow{color:var(--gold)}.couple{font:400 clamp(60px,9vw,125px)/1.07 Cormorant,serif;letter-spacing:-3px;display:flex;align-items:center;justify-content:center;gap:24px;margin:30px auto;max-width:1100px;overflow-wrap:anywhere}.couple>span{min-width:0}.couple em{font-size:.48em;color:var(--gold);font-weight:300}.invitation-quote{font:400 24px/1.65 Cormorant,serif;color:var(--muted);margin:35px auto 55px;max-width:650px}.day-details{display:flex;align-items:center;justify-content:center;gap:65px;margin:0 0 38px}.day-details .eyebrow{font-size:9px;color:var(--muted)}.day-details p{font:400 27px Cormorant,serif;margin:12px 0}.details-star{color:var(--gold)}.button{display:inline-flex;align-items:center;justify-content:center;gap:28px;min-height:51px;padding:14px 27px;text-decoration:none;font-size:14px;border-radius:2px;border:1px solid var(--line);transition:background .25s,transform .25s}.button:hover{transform:translateY(-3px);background:#a88b4e12}.button-gold{background:#ad9057;color:#fff9e9;border-color:#ad9057}.button-gold:hover{background:#907540}.paper-section{background:linear-gradient(120deg,#b4bca222,#b5a47e1c);padding:105px max(7vw,24px);display:grid;grid-template-columns:1fr 1fr;align-items:center;gap:10vw;position:relative;overflow:hidden}.paper-intro{justify-self:center;max-width:430px}.paper-intro>.eyebrow{font-size:9px;color:var(--gold)}.paper-intro h2,.closing h2{font:400 clamp(46px,5vw,75px)/1.03 Cormorant,serif;letter-spacing:-1.8px;margin:30px 0}.paper-intro>p:last-child{color:var(--muted);font-size:17px;line-height:1.8}.paper-preview{width:min(100%,390px);justify-self:center;padding:0;background:none;border:none;transform:rotate(4deg);position:relative}.paper-preview>img{display:block;width:100%;box-shadow:0 18px 60px #323c2b25;transition:transform .5s}.paper-preview:hover>img{transform:rotate(-2deg) translateY(-6px)}.paper-preview>span{display:block;font:10px Forum,serif;letter-spacing:3px;margin-top:27px;color:var(--muted)}.closing{text-align:center;padding:95px 24px 110px}.closing-logo{width:175px;margin:0 auto 38px}.closing-logo img{width:100%;display:block}.countdown{margin:32px auto 40px;display:flex;flex-direction:column;align-items:center;gap:10px}.countdown>span{font:300 clamp(80px,12vw,150px)/.9 Cormorant,serif;color:var(--gold);letter-spacing:-5px}.countdown em{font:italic 21px Cormorant,serif;color:var(--muted)}.closing .eyebrow{font-size:9px}.closing-actions{display:flex;align-items:center;justify-content:center;gap:30px;margin-top:40px}.closing-actions .text-button{font-size:12px}footer{border-top:1px solid var(--line);margin:0 5vw;min-height:115px;display:flex;justify-content:space-between;align-items:center;gap:24px;color:var(--muted)}footer .wordmark{font-size:25px}footer p,footer>a{font-size:11px}footer .wordmark>span{font-size:7px;max-width:90px;letter-spacing:2px}.reveal{transition:opacity .8s ease,transform .8s cubic-bezier(.2,.7,.2,1)}.js-motion .reveal:not(.visible){opacity:0;transform:translateY(25px)}dialog{border:0;padding:25px;background:var(--paper);color:var(--ink);max-width:min(92vw,610px);max-height:94svh;box-shadow:0 30px 100px #0004}dialog::backdrop{background:#19271dcc;backdrop-filter:blur(8px)}dialog>img{display:block;max-width:100%;max-height:77svh;object-fit:contain;margin:0 auto 20px}dialog>a{font-size:15px}dialog form{position:absolute;top:12px;right:12px;z-index:1}.dialog-close{height:40px;width:40px;border:1px solid var(--line);background:var(--paper);border-radius:50%;font-size:26px;line-height:1}
body[data-theme="noche"]{--paper:#26392e;--ink:#eee7d6;--muted:#c0c6b7;--gold:#d0b77b;--line:#67705c;color-scheme:dark}body[data-theme="noche"] .opening-stage{background:radial-gradient(ellipse at 85% 45%,#8ca17519,transparent 60%)}body[data-theme="noche"] .closing-logo{background:#eeeadc;border-radius:50%;padding:7px}body[data-theme="noche"] .botanical{opacity:.45}body[data-theme="noche"] .paper-section{background:#15291e55}
@keyframes shine{0%,65%{transform:translateX(-110%)}85%,100%{transform:translateX(110%)}}@keyframes arrow{0%,100%{translate:0}50%{translate:7px}}@keyframes drift{0%,100%{translate:0}50%{translate:10px -25px;opacity:.1}}
.letter{clip-path:inset(0 0 var(--card-clip,45%) 0)}
/* Las anclas y el foco son inmediatos. Sólo la apertura/repetición animan su
   desplazamiento: evita mover un control mientras se intenta pulsarlo. */
html{scroll-behavior:auto}
@media(min-width:1600px){.opening-heading{left:13%;top:24%}.envelope-scene{width:620px;left:67%}.opening-heading h1{font-size:130px}}
@media(max-width:850px){.masthead{height:80px;padding:20px 6vw}.wordmark{font-size:26px}.demo-label{display:none}.opening-stage{min-height:590px}.opening-heading{top:15%;left:6%;right:6%;text-align:center}.opening-heading h1{font-size:clamp(65px,11vw,88px);letter-spacing:-2.5px}.opening-heading .eyebrow{font-size:9px;margin-bottom:18px}.opening-subtitle{font-size:15px;margin-top:19px}.envelope-scene{width:min(520px,79vw);left:50%;top:66%}.botanical-left{left:-27%;bottom:-19%;max-width:75vw;opacity:.45}.botanical-right{right:-29%;top:-20%;max-width:75vw;opacity:.45}.scroll-cue{left:50%;bottom:6%;transform:translateX(-50%);white-space:nowrap}.edition{display:none}.paper-section{gap:7vw;padding-top:75px;padding-bottom:75px}.couple{font-size:83px}.day-details{gap:30px}.day-details p{font-size:23px}}
@media(max-width:560px){.masthead .wordmark>span{font-size:7px;letter-spacing:2px;padding-left:10px}.masthead .wordmark{gap:10px}.text-button{font-size:11px}.opening-heading{top:16%}.opening-heading h1{font-size:68px}.opening-heading .eyebrow{font-size:8px;letter-spacing:2.6px}.opening-subtitle{font-size:14px}.opening-stage{min-height:580px}.envelope-scene{top:65%;width:84vw}.seal{width:66px;height:66px}.seal img{inset:10px;width:46px;height:46px}.seal-ring{inset:6px}.recipient p{font-size:23px}.recipient>span{font-size:7px;letter-spacing:2px}.scroll-cue{bottom:8%;gap:16px}.scroll-cue>span:first-child{font-size:8px}.scroll-line{width:36px}.our-day{padding:65px 20px 90px}.section-ornament{margin-bottom:40px}.couple{font-size:65px;gap:14px;letter-spacing:-2px;flex-wrap:wrap}.invitation-quote{font-size:22px;margin:28px auto 40px}.day-details{flex-direction:column;gap:15px}.details-star{font-size:15px}.day-details p{font-size:25px;margin-top:6px}.day-details .eyebrow{font-size:8px}.paper-section{grid-template-columns:1fr;gap:45px;text-align:center;padding:70px 35px}.paper-intro h2{font-size:51px}.paper-intro>p:last-child{font-size:16px}.paper-preview{width:min(80%,330px)}.closing{padding:70px 20px 85px}.closing-logo{width:145px}.closing h2{font-size:55px}.closing-actions{flex-direction:column;gap:18px}.countdown>span{font-size:115px}footer{padding:30px 0;flex-wrap:wrap;justify-content:center;gap:16px}footer p{width:100%;text-align:center;order:3;margin:0}footer .wordmark>span{display:none}}
@media(max-height:700px) and (min-width:851px){.opening-heading{top:19%}.opening-heading h1{font-size:78px}.envelope-scene{width:min(440px,42vw);top:60%}.opening-stage{min-height:540px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition:none!important}.opening{height:100svh;min-height:640px}.opening-stage{position:relative}.envelope-flap{transform:none}.reveal{opacity:1!important;transform:none!important}.letter{display:none}.scroll-cue>span:first-child{font-size:0}.scroll-cue>span:first-child:after{content:'↓';font-size:18px}}

/* Intrinsic dimensions reserve space without stretching the reading preview. */
.paper-preview .invitation-image{height:auto}
