@font-face{font-family:Editorial;src:url('../fonts/editorial.16d59d8e.woff') format('woff');font-display:swap;font-weight:400}
@font-face{font-family:Editorial;src:url('../fonts/editorial-italic.5886c750.woff') format('woff');font-display:swap;font-weight:400;font-style:italic}
@font-face{font-family:Caligraphie;src:url('../fonts/caligraphie.874941fd.woff') format('woff');font-display:swap}
@font-face{font-family:Pratique;src:url('../fonts/pratique.619ed592.woff') format('woff');font-display:swap}
:root{--ivory:#f7f1e8;--champagne:#e5d6c5;--rose:#d7b5ae;--sage:#a7ad96;--gold:#c5a46e;--ink:#50463f;--green:#59634e;--line:rgba(149,120,76,.35)}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:12px}body{margin:0;background:var(--ivory);color:var(--ink);font-family:Pratique,Arial,sans-serif;font-size:16px;line-height:1.6;-webkit-font-smoothing:antialiased;background-image:url('../images/backgrounds/papel-artesanal.b7c90e75.webp');background-size:560px}body.opening-active{overflow:hidden}body.opening-active main{visibility:hidden}body::after{content:'';position:fixed;inset:0;pointer-events:none;z-index:20;box-shadow:inset 0 0 100px #9a795009;}
img{max-width:100%;height:auto;display:block}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit}a{color:inherit}button:focus-visible,a:focus-visible{outline:2px solid var(--green);outline-offset:6px}h1,h2,h3,p{margin:0}h1,h2,h3{font-weight:400}h2{font:400 clamp(33px,4vw,52px)/1.23 Editorial,Georgia,serif;letter-spacing:-.04em}h2 em{font-style:italic;color:#7b8068}h3{font:400 36px/1.2 Editorial,Georgia,serif}em{font-weight:400}main:focus{outline:0}.section{position:relative;isolation:isolate;overflow:hidden}.eyebrow,.section-number,.small-caps{text-transform:uppercase;letter-spacing:.2em;font-size:10px;line-height:1.6}.eyebrow{color:#766046}.section-number{color:#777258;display:block;margin-bottom:32px}.script{font-family:Caligraphie,cursive;font-weight:400;line-height:1.15}.body-copy{font-size:14px;line-height:1.95;max-width:360px;margin:0 auto}.small-note{font-size:11px;line-height:1.8;color:#746c60}.button{min-height:50px;display:inline-flex;align-items:center;justify-content:center;gap:30px;padding:15px 28px;border:1px solid #9b8054;background:#6a7059;color:var(--ivory);font-size:11px;letter-spacing:.1em;text-decoration:none;border-radius:2px;cursor:pointer;transition:background .25s,transform .25s}.button:hover:not(:disabled){background:#535d46;transform:translateY(-2px)}.button:disabled{cursor:default;background:#72775f;color:#fff9ef;opacity:1}.button-outline:disabled{background:transparent;color:#74674e;border-color:#ad9872}.gold-divider{width:180px;height:37px;object-fit:contain;margin:20px auto}.top-filigree{width:180px;height:70px;object-fit:contain;margin:0 auto 25px}.skip{position:fixed;top:-100px;left:15px;z-index:200;background:var(--ivory);padding:15px}.skip:focus{top:15px}.botanical{animation:sway 12s ease-in-out infinite alternate;transform-origin:50% 90%;will-change:transform}.botanical:nth-of-type(2n){animation-duration:15s;animation-delay:-4s}.botanical:nth-of-type(3n){animation-duration:17s;animation-delay:-7s}
/* The envelope is a short prologue; document content exists without JavaScript. */
.opening{position:relative;z-index:40;min-height:100svh;height:auto;display:flex;align-items:center;flex-direction:column;text-align:center;padding:55px 20px 20px;overflow:hidden;isolation:isolate;background:var(--ivory) url('../images/backgrounds/papel-artesanal.b7c90e75.webp') center/560px}.opening[hidden]{display:none}.opening-border{position:absolute;inset:19px;border:1px solid var(--line);z-index:-1}.opening-border::after{content:'';position:absolute;inset:5px;border:1px solid #c5a46e22}.opening-floral{position:absolute;z-index:-1;width:clamp(180px,31vw,380px);pointer-events:none}.opening-floral-left{left:-45px;top:-36px}.opening-floral-right{right:-55px;bottom:-30px}.opening-kicker{margin-bottom:22px;font-size:9px}.opening-title{font:400 clamp(34px,5vw,49px)/1.15 Editorial,serif;letter-spacing:-.035em}.opening-title em{color:#7c8269}.envelope-stage{width:min(76vw,385px);height:240px;margin:40px auto 18px;display:grid;place-items:center;perspective:1000px}.envelope{position:relative;width:100%;height:190px;transform-style:preserve-3d;filter:drop-shadow(0 12px 15px #71624a20)}.envelope-back{position:absolute;width:100%;height:100%;object-fit:fill;inset:0;z-index:1}.envelope-front{position:absolute;inset:10% 0 0;background:linear-gradient(147deg,#f5eadd,#eee1ce 55%,#e9d7bf);clip-path:polygon(0 0,50% 51%,100% 0,100% 100%,0 100%);z-index:4;box-shadow:inset 0 0 20px #b8a48422}.flap{position:absolute;top:-2%;left:0;width:100%;height:65%;object-fit:fill;z-index:5;transform-origin:50% 0;backface-visibility:hidden;transition:transform .8s ease .3s}.seal{position:absolute;z-index:6;width:64px;height:64px;object-fit:contain;left:calc(50% - 32px);top:42%;transition:transform .4s,opacity .4s}.ribbon{position:absolute;z-index:4;left:3%;top:52%;width:94%;height:53px;object-fit:fill;opacity:.65}.letter{position:absolute;z-index:2;width:82%;left:9%;height:180px;top:8px;background:#fcf6ed;border:1px solid #c7b28a77;display:flex;flex-direction:column;justify-content:center;align-items:center;transition:transform 1s cubic-bezier(.2,.6,.2,1) .7s}.letter>img{position:absolute;inset:8%;width:84%;height:84%;object-fit:contain;opacity:.5}.letter>span{font:40px Caligraphie,cursive}.letter>small{font-size:8px;letter-spacing:.2em;text-transform:uppercase}.opening-note{font:italic 15px Editorial,serif;margin:18px 0 24px}.demo-label{font-size:8px;letter-spacing:.12em;color:#756b5a;margin-top:auto;padding-top:15px}.is-opening .seal{transform:translateY(-15px) scale(1.12);opacity:0}.is-opening .flap{transform:rotateX(-175deg)}.is-opening .letter{transform:translateY(-125px)}.is-opening{animation:openFade .65s ease 1.3s both}.is-opening .open-button{opacity:0;pointer-events:none;transition:opacity .3s}
/* A spacious botanical frontispiece. */
.hero{min-height:850px;height:100svh;max-height:1050px;display:flex;align-items:center;justify-content:center;text-align:center;padding:70px 22px 100px}.hero-frame{position:absolute;inset:28px;border:1px solid var(--line);z-index:-1}.hero-frame::after{content:'';position:absolute;inset:6px;border:1px solid #b59a7133}.corner{position:absolute;width:clamp(180px,31vw,405px);z-index:-1;pointer-events:none}.tl{top:-18px;left:-18px}.tr{top:-18px;right:-18px}.bl{bottom:-18px;left:-18px}.br{bottom:-18px;right:-18px}.hero-copy{position:relative;z-index:2;max-width:700px}.crest{width:93px;height:83px;object-fit:contain;margin:0 auto 18px}.names{font:400 clamp(75px,9vw,116px)/.98 Caligraphie,cursive;margin:30px 0 26px;color:#5a604c;display:flex;flex-direction:column;gap:0;letter-spacing:-.03em}.names .amp{font:italic 36px/.9 Editorial,serif;color:#a38c61;margin:5px 0 10px}.hero-line{font:italic 18px Editorial,serif}.civil{margin-top:18px;font-size:9px}.hero-date{font:18px Editorial,serif;margin-top:10px}.scroll-cue{position:absolute;bottom:38px;left:50%;transform:translateX(-50%);font-size:8px;letter-spacing:.15em;text-decoration:none;text-transform:uppercase;white-space:nowrap}.scroll-cue span{display:block;font-size:20px;margin-top:6px;color:#8a805d}.invitation-open .hero-copy{animation:heroReveal 1.3s ease both}.invitation-open .hero .corner{animation:floralReveal 1.6s ease both,sway 14s ease-in-out 1.6s infinite alternate}
.story{padding:115px 25px 95px;text-align:center}.story-inner{position:relative;z-index:2;max-width:680px;margin:auto}.story .couple-inline{font-size:45px;color:#777e62;margin:30px 0 19px}.floral-divider{width:235px;height:110px;object-fit:contain;margin:25px auto 20px}.story .small-caps{font-size:9px}.story-sprig{position:absolute;width:210px;height:400px;object-fit:contain;left:-85px;top:80px;opacity:.6;z-index:-1}.story-rose{position:absolute;width:190px;right:-85px;bottom:100px;opacity:.5;z-index:-1}
.day{background:#e7e8dc;background-image:linear-gradient(#e7e8dcdd,#e7e8dcdd),url('../images/backgrounds/papel-artesanal.b7c90e75.webp');background-size:560px;text-align:center;padding:90px 20px 110px}.day-garland{width:min(65vw,600px);height:100px;object-fit:contain;margin:-30px auto 30px}.day-content{position:relative;z-index:2}.day .section-number{margin-bottom:24px}.day h2{font-size:42px}.date-editorial{display:flex;flex-direction:column;align-items:center;margin:42px auto 45px;line-height:1.2}.date-editorial span{font-size:10px;letter-spacing:.22em;text-transform:uppercase}.date-editorial strong{font:400 118px/1.15 Editorial,serif;letter-spacing:-.07em;color:#59634e;margin:8px 0}.countdown-caption{font-size:8px;letter-spacing:.14em}.countdown{display:flex;justify-content:center;align-items:center;gap:16px;margin-top:22px}.countdown>div{display:flex;flex-direction:column;min-width:43px}.countdown strong{font:400 34px/1.2 Editorial,serif;font-variant-numeric:tabular-nums;color:#59634e}.countdown span{font-size:7px;text-transform:uppercase;letter-spacing:.15em;margin-top:8px}.countdown i{color:#a58d65;font-style:normal}.day-bud{position:absolute;bottom:-25px;right:3%;width:145px;opacity:.3;z-index:-1}
.garden-interlude{position:relative;height:530px;overflow:hidden;isolation:isolate;background:#8e9a7c}.garden-photo{width:100%;height:calc(100% + 60px);object-fit:cover;position:absolute;top:-30px;transform:translateY(var(--parallax,0));z-index:-2}.garden-shade{position:absolute;inset:0;background:linear-gradient(#2538220c,#22321e55,#22321e60);z-index:-1}.garden-quote{height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:30px;text-align:center;color:#fffaf0;text-shadow:0 2px 15px #2c3d2055}.garden-quote>.eyebrow{color:#fff4df;margin-bottom:24px;font-size:9px}.garden-quote p{font:400 clamp(34px,4vw,55px)/1.25 Editorial,serif;letter-spacing:-.03em}
.moments{padding:105px 25px 50px;text-align:center}.moments-heading{margin-bottom:65px}.event-grid{display:grid;grid-template-columns:1fr;gap:50px;max-width:950px;margin:auto}.event{max-width:390px;margin:auto;width:100%}.event-art{position:relative;height:150px;width:170px;margin:0 auto 30px}.oval-frame{width:100%;height:100%;object-fit:contain}.event-numeral{position:absolute;inset:0;display:grid;place-items:center;font:400 37px Editorial,serif;color:#a38c61}.event-flower{position:absolute;bottom:-15px;left:-27px;width:115px;height:100px;object-fit:contain}.reception-flower{left:auto;right:-26px;width:100px}.event>.eyebrow{font-size:8px;margin-bottom:14px}.event h3{margin-bottom:20px;font-size:33px}.event-time{font:400 25px Editorial,serif;margin-bottom:10px}.event-place{font-size:14px;margin-bottom:4px}.event .button{margin-top:22px;min-height:46px;font-size:9px;padding:13px 22px}.event-line{height:45px;width:1px;background:var(--line);margin:auto}.moments-garland{width:min(80vw,700px);height:130px;object-fit:contain;margin:50px auto 0}
.rsvp{padding:100px 32px 110px;text-align:center;background:#eee5d8}.rsvp-inner{position:relative;z-index:2;max-width:600px;margin:auto}.rsvp h2{font-size:38px}.rsvp .body-copy{margin:25px auto 30px;max-width:335px}.rsvp .small-note{margin-top:22px;font-size:10px}.rsvp-left,.rsvp-right{position:absolute;width:210px;z-index:-1;opacity:.7}.rsvp-left{left:-110px;bottom:-15px}.rsvp-right{right:-105px;top:-25px}
.closing{text-align:center;padding:80px 26px 85px}.closing-bouquet{width:210px;height:265px;object-fit:contain;margin:0 auto 35px}.closing .eyebrow{font-size:8px;margin-bottom:25px}.closing h2{font-size:37px}.closing-thanks{font-size:12px;margin-top:28px}.closing-names{font-size:43px;color:#697358;margin:29px 0 0}footer{border-top:1px solid var(--line);text-align:center;padding:35px 25px 58px;background:#f1eadf}footer>p:first-child{font-size:9px;letter-spacing:.03em}footer strong{font-weight:400;text-transform:uppercase;letter-spacing:.13em;font-size:9px;white-space:nowrap}footer .small-note{margin-top:12px;font-size:9px}footer>a{display:inline-block;font-size:9px;margin-top:20px;text-decoration:none;border-bottom:1px solid var(--line)}
.dust{position:fixed;inset:0;z-index:45;pointer-events:none;overflow:hidden}.dust>span{position:absolute;width:var(--size);height:var(--size);border-radius:50%;background:#c5a46e;box-shadow:0 0 4px #c5a46e88;opacity:0;animation:dustFloat var(--duration) linear var(--delay) infinite}.floating-petal{position:absolute;top:-50px;width:19px;height:25px;object-fit:contain;opacity:0;animation:petalFall var(--duration) linear var(--delay) infinite}.motion-control{position:fixed;bottom:12px;right:12px;z-index:60;background:#f7f1e8ed;border:1px solid #b09b7666;border-radius:2px;min-height:32px;padding:6px 10px;font-size:8px;letter-spacing:.04em;color:#655c4a;cursor:pointer}.will-reveal{opacity:0;transform:translateY(23px);transition:opacity 1s ease,transform 1s ease}.will-reveal.visible{opacity:1;transform:none}.motion-paused *, .motion-paused *::after{animation-play-state:paused!important}.motion-paused .will-reveal{opacity:1;transform:none;transition:none}.motion-paused .garden-photo{transform:none}
@keyframes sway{from{transform:rotate(-.55deg) translateY(0)}to{transform:rotate(.55deg) translateY(-3px)}}
@keyframes dustFloat{0%,100%{opacity:0;transform:translate3d(0,12px,0)}25%,70%{opacity:.5}95%{transform:translate3d(15px,-65px,0)}}
@keyframes petalFall{0%,68%{opacity:0;transform:translate3d(-20px,-30px,0) rotate(0)}72%{opacity:.7}94%{opacity:.5}100%{opacity:0;transform:translate3d(80px,110vh,0) rotate(300deg)}}
@keyframes openFade{to{opacity:0;transform:scale(1.035)}}
@keyframes heroReveal{from{opacity:0;transform:translateY(18px)}to{opacity:1;transform:none}}
@keyframes floralReveal{from{opacity:0;translate:0 10px}to{opacity:1;translate:0 0}}
@media(min-width:760px){.opening{padding-top:45px}.opening-title br{display:none}.opening-title em{margin-left:.15em}.opening-title{margin-top:8px}.envelope-stage{margin-top:75px;margin-bottom:45px}.opening-note{margin-bottom:25px}.opening-floral-left{width:340px}.opening-floral-right{width:340px}.hero{min-height:850px}.hero-frame{inset:40px}.hero .corner{width:35vw;max-width:440px}.hero-copy{padding-top:8px}.crest{width:105px;height:90px}.names{margin:28px 0;font-size:113px}.hero-line{font-size:22px}.hero .civil{margin-top:25px}.story{padding:140px 40px 130px}.story-sprig{left:-50px;width:300px;height:500px;opacity:.6}.story-rose{right:-40px;width:280px;opacity:.6}.story .couple-inline{font-size:52px}.day{padding-bottom:115px}.day-bud{right:7%;width:230px;opacity:.4}.countdown{gap:28px}.countdown strong{font-size:44px}.countdown span{font-size:8px}.day h2{font-size:52px}.garden-interlude{height:590px}.moments{padding:120px 50px 40px}.moments-heading{margin-bottom:80px}.event-grid{grid-template-columns:1fr 1px 1fr;align-items:center;gap:45px}.event-line{height:260px;width:1px}.moments-garland{height:175px;margin-top:70px}.rsvp{padding:120px 40px}.rsvp h2{font-size:50px}.rsvp-left,.rsvp-right{width:350px;opacity:.9}.rsvp-left{left:-90px}.rsvp-right{right:-85px}.closing{padding:95px 30px 100px}.closing h2{font-size:48px}.closing-bouquet{width:260px;height:310px}.closing-names{font-size:54px}.motion-control{font-size:9px}}
@media(max-width:400px){.hero{min-height:760px;padding-top:95px}.hero-frame{inset:17px}.hero .corner{width:175px}.names{font-size:79px;margin:25px 0}.crest{width:75px;height:65px}.hero-line{font-size:16px}.hero .gold-divider{margin:15px auto}.hero .civil{margin-top:12px}.hero-date{font-size:16px}.scroll-cue{bottom:28px}.opening{padding-top:48px}.envelope-stage{height:210px;margin-top:35px}.envelope{height:165px}.opening-note{font-size:14px}.countdown{gap:10px}.countdown strong{font-size:31px}.rsvp h2{font-size:33px}.story h2{font-size:30px}.story .couple-inline{font-size:42px}}
@media(max-height:720px) and (min-width:600px){.opening{padding-top:35px}.envelope-stage{margin-top:40px;margin-bottom:25px;height:200px}.opening-note{margin:10px 0}.opening-kicker{margin-bottom:12px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation:none!important;transition:none!important}.will-reveal{opacity:1;transform:none}.dust{display:none}.garden-photo{transform:none}.is-opening{opacity:1}}
/* Soft generated light overlay; never intercepts the invitation. */
.opening::after,.hero::after{content:'';position:absolute;inset:0;background:url('../images/backgrounds/luz-ambiental.5705c422.webp') top left/cover no-repeat;opacity:.13;pointer-events:none;z-index:-1}
@media(max-width:759px){.opening-floral{width:260px}.opening-floral-left{left:-55px;top:-45px}.opening-floral-right{right:-65px;bottom:-35px}}
/* A brief metallic gleam confined to the wax seal. */
.seal{animation:sealGleam 11s ease-in-out infinite}
@keyframes sealGleam{0%,78%,100%{filter:brightness(1)}82%{filter:brightness(1.13)}86%{filter:brightness(1)}}
@media(prefers-reduced-motion:reduce){.seal{animation:none}}
.letter{height:85%;top:8%}.demo-label{padding-bottom:26px}
.hero-monogram{position:relative;width:105px;margin:0 auto 18px}.hero-monogram .crest{margin:0 auto}.hero-monogram>span{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;padding-bottom:7px;font:22px Caligraphie,cursive;color:#8b744e}

body,.opening{background-image:linear-gradient(#f7f1e870,#f7f1e870),url('../images/backgrounds/papel-artesanal.b7c90e75.webp')}
@media(max-width:759px){.story-sprig{top:-20px;height:240px;width:150px;left:-60px;opacity:.5}.day-bud{right:-65px;bottom:-70px;width:120px;opacity:.25}}
.motion-control{display:none;min-height:44px;font-size:9px}.script-ready .motion-control{display:block}
