:root{--paper:#f5f1e8;--ink:#424a3b;--sage:#7e896e;--muted:#77786b;--gold:#aa9068;--ease:cubic-bezier(.22,1,.36,1)}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:90px}body{margin:0;background:var(--paper);color:var(--ink);font-family:'Montserrat',sans-serif;font-size:13px;-webkit-font-smoothing:antialiased}body.sealed{overflow:hidden}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;color:inherit;cursor:pointer}a{color:inherit;text-decoration:none}button:focus-visible,a:focus-visible,[tabindex]:focus-visible{outline:2px solid var(--sage);outline-offset:7px}h1,h2,h3,p,figure{margin:0}h1,h2,h3{font-family:'Cormorant Garamond',Georgia,serif;font-weight:400}h2{font-size:clamp(42px,4.5vw,70px);line-height:1.08;letter-spacing:-.035em}i{font-weight:400;color:var(--sage)}.script{font-family:'Great Vibes',cursive;font-weight:400}.eyebrow{font-size:9px;line-height:1.8;letter-spacing:.23em;font-weight:500}.svg-library{position:absolute;width:0;height:0;overflow:hidden}.paper{background-color:#e9dfcc;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='.8' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Cpath fill='%23000' opacity='.045' filter='url(%23n)' d='M0 0h180v180H0z'/%3E%3C/svg%3E")}
/* One physical envelope, with the letter clipped inside its pocket until the flap clears. */
#opening{position:fixed;inset:0;z-index:20;display:flex;flex-direction:column;align-items:center;justify-content:center;background:#f3efe5;isolation:isolate;transition:opacity 1.1s ease,visibility 1.1s;overflow:hidden;min-height:320px}.opening-atmosphere{position:absolute;inset:0;z-index:-1;background:radial-gradient(ellipse at 25% 5%,#fffcf3 0,transparent 60%),radial-gradient(ellipse at 95% 80%,#d5d5bd80 0,transparent 55%)}.opening-copy{text-align:center;position:relative;z-index:1;transition:opacity .6s,transform 1s var(--ease)}.opening-copy h1{font-size:clamp(33px,4.4vw,60px);line-height:1.04;margin-top:16px;letter-spacing:-.035em}.envelope-stage{width:min(520px,78vw);margin:62px 0 32px;position:relative;perspective:1500px}.envelope{position:relative;width:100%;aspect-ratio:1.55;filter:drop-shadow(0 24px 22px #5f553b25);transform:rotate(-3deg);transition:transform 1.6s var(--ease),opacity .9s ease;isolation:isolate}.envelope-back{position:absolute;inset:0;border-radius:4px;box-shadow:inset 0 0 0 1px #bba98b40}.letter-pocket{position:absolute;inset:0;overflow:hidden;z-index:1;border-radius:3px}.little-letter{position:absolute;left:6%;width:88%;height:92%;top:8%;display:flex;align-items:center;flex-direction:column;padding:6% 4%;background-color:#fcf9f1;box-shadow:0 0 10px #7b6e4520;transition:transform 1.5s var(--ease)}.little-letter>svg{width:32px;height:48px;color:var(--sage);margin-bottom:8px}.little-letter .script{font-size:clamp(28px,5vw,52px)}.little-letter p{font-size:7px;letter-spacing:.18em;margin:10px 0}.little-date{font:22px 'Cormorant Garamond',serif}.envelope-front{position:absolute;inset:0;z-index:4;clip-path:polygon(0 100%,0 36%,50% 72%,100% 36%,100% 100%);background-color:#e9dfce}.envelope-left,.envelope-right{position:absolute;inset:0;z-index:3;background:linear-gradient(130deg,#e0d4bf,#efe5d3);clip-path:polygon(0 0,54% 55%,0 100%)}.envelope-right{clip-path:polygon(100% 0,46% 55%,100% 100%);background:linear-gradient(230deg,#ddd0b8,#eee4d3)}.flap{position:absolute;inset:0 0 42%;transform-origin:top center;transform-style:preserve-3d;z-index:5;transition:transform 1.25s cubic-bezier(.4,0,.2,1)}.flap-outside,.flap-inside{position:absolute;inset:0;clip-path:polygon(0 0,100% 0,50% 100%);backface-visibility:hidden;background-color:#ede4d3}.flap-outside{background-image:linear-gradient(175deg,#f0e8d9,#e3d7c1);filter:drop-shadow(0 2px 1px #786c4d30)}.flap-inside{transform:rotateX(180deg);background-color:#dcd0b9}.seal{position:absolute;left:50%;top:55%;width:86px;height:86px;transform:translate(-50%,-50%);z-index:6;border:0;background:none;padding:0;filter:drop-shadow(0 4px 3px #3e453947);transition:opacity .6s .12s;touch-action:manipulation}.seal-half{position:absolute;inset:0;transition:transform .85s var(--ease)}.seal-left{clip-path:polygon(0 0,53% 0,48% 22%,55% 39%,47% 61%,52% 80%,48% 100%,0 100%)}.seal-right{clip-path:polygon(53% 0,100% 0,100% 100%,48% 100%,52% 80%,47% 61%,55% 39%,48% 22%)}.wax{position:absolute;inset:1px;display:grid;place-items:center;border-radius:46% 50% 44% 48%;background:radial-gradient(circle at 28% 20%,#9aa486,#758263 55%,#586448);box-shadow:inset 1px 2px 2px #d6ddbc90,inset -2px -3px 3px #384a3a60}.wax-ring{position:absolute;inset:9px;border:1px solid #c3caa04d;border-radius:50%;box-shadow:0 1px 1px #354b3555,inset 0 1px 2px #354b3555}.monogram{font:34px 'Great Vibes',cursive;color:#dbe0bd;text-shadow:0 1px 1px #3d4b33;transform:rotate(-9deg);padding:8px 0 0}.monogram span{font-size:23px;margin:0 -3px}.seal:hover .wax{filter:brightness(1.07)}.loose-sprig{position:absolute;right:-17%;bottom:-5%;width:29%;height:85%;color:#869174;transform:rotate(24deg);z-index:-1;opacity:.65}.open-hint{text-align:center;font-size:8px;letter-spacing:.23em;transition:opacity .5s}.open-hint span{display:block;font:italic 19px 'Cormorant Garamond',serif;letter-spacing:0;margin-top:12px;color:var(--muted)}.opening-bottom{position:absolute;bottom:24px;font-size:7px;letter-spacing:.24em;color:var(--muted)}body.breaking .seal-left{transform:translate(-17px,8px) rotate(-22deg)}body.breaking .seal-right{transform:translate(19px,12px) rotate(24deg)}body.breaking .seal{opacity:0;pointer-events:none}body.breaking .open-hint{opacity:0}body.flap-open .flap{transform:rotateX(-180deg)}body.letter-out .flap{z-index:0}body.letter-out .letter-pocket{overflow:visible}body.letter-out .little-letter{transform:translateY(-50%)}body.letter-out .opening-copy{opacity:0;transform:translateY(-25px)}body.letter-out .envelope{transform:rotate(0) translateY(30px)}body.revealing #opening{opacity:0;visibility:hidden;pointer-events:none}body.revealing .envelope{transform:translateY(90px) scale(1.08)}#invitation{visibility:hidden;opacity:0;transform:translateY(35px);transition:opacity 1.3s ease,transform 1.6s var(--ease)}body.revealing #invitation{visibility:visible;opacity:1;transform:none}
/* Invitation */
.invite-nav{height:100px;margin:0 6%;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #7e896e28;gap:16px}.nav-monogram{font-size:36px}.invite-nav>span{font-size:8px;letter-spacing:.24em}.invite-nav>a:last-child{font-size:8px;letter-spacing:.13em}.hero{position:relative;max-width:1440px;margin:auto;padding:80px 8% 100px;display:grid;grid-template-columns:1.1fr 1fr;gap:7%;align-items:center}.hero-copy>.eyebrow{margin-bottom:18px}.couple-names{font-size:clamp(42px,4.4vw,66px);line-height:1.3;margin-bottom:24px;color:var(--sage)}.hero h2{font-size:clamp(36px,3.6vw,58px)}.hero-note{font-size:11px;line-height:2;margin-top:24px;color:var(--muted)}.hero-date{display:flex;align-items:center;gap:20px;margin:34px 0 10px}.hero-date>span{font-size:8px;line-height:1.7;letter-spacing:.18em}.hero-date strong{font:60px/.9 'Cormorant Garamond',serif;padding:0 23px;border-left:1px solid #b9b6a5;border-right:1px solid #b9b6a5;font-weight:400}.tentative{font:italic 14px 'Cormorant Garamond',serif;color:var(--muted)}.text-link{display:inline-flex;gap:28px;align-items:center;border:0;border-bottom:1px solid #9b9f8f;background:none;padding:12px 0;font-size:9px;letter-spacing:.06em}.hero .text-link{margin-top:30px}.hero-photo{position:relative;aspect-ratio:3/4;transform:rotate(2deg);padding:12px 12px 52px;background:#fffdf7;box-shadow:0 18px 50px #605c3e12}.hero-photo img{width:100%;height:100%;object-fit:cover;object-position:50% 40%;display:block}.hero-photo figcaption{position:absolute;bottom:14px;left:0;width:100%;text-align:center;font-size:31px;color:var(--sage)}.photo-index{position:absolute;right:-20px;bottom:80px;writing-mode:vertical-rl;font-size:7px;letter-spacing:.13em}.hero-sprig{position:absolute;right:1%;bottom:8%;width:95px;height:160px;color:var(--sage);transform:rotate(16deg);pointer-events:none}.love-note{text-align:center;padding:95px 24px 100px;background:#ebece2;position:relative}.love-note h2{margin:22px 0}.love-note>p{max-width:430px;margin:auto;font-size:12px;line-height:2;color:#686f60}.note-sprig{width:38px;height:57px;margin-top:26px;color:var(--sage)}.moments{max-width:1440px;margin:auto;padding:105px 8% 95px;overflow:hidden}.section-heading{display:flex;align-items:end;justify-content:space-between;gap:20px;margin-bottom:35px}.section-heading h2{margin-top:15px}.gallery-controls{display:flex;align-items:center;gap:12px;padding-bottom:8px}.gallery-controls>span{font-size:9px;letter-spacing:.12em;margin-right:15px}.gallery-controls button{border:1px solid #b9beac;border-radius:50%;background:none;width:40px;height:40px;font-size:18px;transition:background .2s}.gallery-controls button:hover{background:#e5e7dc}.gallery-controls button:disabled{opacity:.3;cursor:default}.photo-track{display:flex;gap:26px;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:thin;scrollbar-color:#adb39c transparent;padding:4px 3px 20px;overscroll-behavior-x:contain}.photo-track figure{flex:0 0 41%;scroll-snap-align:start}.photo-track img{width:100%;aspect-ratio:4/5;object-fit:cover;display:block;background:#e4e1d7}.photo-track figure:nth-child(2) img{object-position:50% 35%}.photo-track figcaption{padding:18px 0 0;font:italic 21px 'Cormorant Garamond',serif}.photo-track figcaption span{font:8px 'Montserrat',sans-serif;letter-spacing:.1em;margin-right:17px;color:var(--muted)}.placeholder-note{font-size:9px;color:var(--muted);margin-top:16px;line-height:1.8}.destination{display:grid;grid-template-columns:1fr 1fr;background:#e7e7dc}.destination-photo{min-height:500px;overflow:hidden}.destination-photo img{width:100%;height:100%;object-fit:cover;display:block}.destination-copy{align-self:center;padding:70px 12%}.destination-copy h2{font-size:clamp(32px,3.2vw,52px);margin:22px 0}.destination-copy p:not(.eyebrow){line-height:1.9;font-size:11px;color:var(--muted)}.mountain-art{width:100%;height:80px;margin-top:30px;color:#8d957d}.details{max-width:1320px;text-align:center;margin:auto;padding:110px 7%}.details>h2{margin:18px 0 55px}.detail-grid{display:grid;grid-template-columns:1fr 1fr 1fr}.detail-grid>div{padding:12px 28px}.detail-grid>div+div{border-left:1px solid #bdc1b0}.detail-number{font-size:8px;letter-spacing:.18em;color:var(--muted)}.detail-grid h3{font-size:30px;margin:22px 0 14px}.detail-grid p{font-size:10px;line-height:1.9;color:var(--muted)}.invite-footer{background:#dfe3d6;text-align:center;padding:60px 20px 45px;display:flex;align-items:center;flex-direction:column}.invite-footer svg{width:45px;height:65px;color:var(--sage);margin-bottom:22px}.invite-footer .script{font-size:clamp(35px,5vw,54px);margin-bottom:18px}.invite-footer .text-link{margin-top:35px;font-size:8px}.reveal{opacity:0;transform:translateY(26px);transition:opacity 1s ease,transform 1.2s var(--ease)}.reveal.visible{opacity:1;transform:none}
@media(min-width:1500px){.hero{padding-left:90px;padding-right:90px}.moments{padding-left:90px;padding-right:90px}}
@media(max-width:700px){.opening-copy h1{font-size:39px}.opening-copy .eyebrow{font-size:7px}.envelope-stage{width:78vw;margin:64px 0 35px}.seal{width:65px;height:65px}.monogram{font-size:28px}.monogram span{font-size:18px}.wax-ring{inset:7px}.little-letter p{font-size:5px}.little-letter>svg{width:24px;height:35px;margin-bottom:0}.little-letter .script{font-size:31px}.little-date{font-size:18px}.invite-nav{height:78px;margin:0 6%}.nav-monogram{font-size:30px}.invite-nav>span{display:none}.hero{padding:42px 7% 65px;grid-template-columns:1fr;gap:45px}.hero-copy{text-align:center}.couple-names{font-size:51px;margin-bottom:21px}.hero h2{font-size:43px}.hero-copy>.eyebrow{font-size:8px}.hero-note{margin-top:20px}.hero-date{justify-content:center;margin-top:27px}.hero .text-link{margin-top:24px}.hero-photo{width:89%;margin:auto;max-width:400px;padding:10px 10px 48px}.hero-photo figcaption{font-size:28px}.hero-sprig{width:65px;height:120px;bottom:25px;right:2%}.love-note{padding:65px 25px}.love-note h2{font-size:41px}.love-note>p{font-size:11px}.moments{padding:65px 7%}.section-heading{align-items:center;gap:10px}.section-heading .eyebrow{font-size:7px}.section-heading h2{font-size:40px}.gallery-controls{gap:7px;flex-wrap:wrap;justify-content:flex-end;max-width:90px}.gallery-controls>span{width:100%;text-align:right;margin-right:5px;margin-bottom:3px;font-size:8px}.gallery-controls button{width:32px;height:32px;font-size:15px}.photo-track{gap:17px;margin-right:-8%;padding-right:8%}.photo-track figure{flex-basis:82%}.photo-track figcaption{font-size:20px}.destination{grid-template-columns:1fr}.destination-photo{min-height:0;aspect-ratio:4/3}.destination-copy{padding:50px 8%}.destination-copy h2{font-size:42px}.details{padding:70px 7%}.details>h2{margin-bottom:30px}.detail-grid{grid-template-columns:1fr}.detail-grid>div{padding:28px 10px}.detail-grid>div+div{border-left:0;border-top:1px solid #bdc1b0}.detail-grid h3{margin-top:15px}.invite-footer{padding-top:45px}}
@media(max-height:650px){.opening-copy h1{font-size:32px}.envelope-stage{width:min(370px,64vw);margin:45px 0 24px}.opening-bottom{bottom:12px}.open-hint span{margin-top:6px}.opening-copy .eyebrow{font-size:7px}}
@media(max-height:450px) and (min-width:600px){.opening-copy{display:none}.envelope-stage{width:300px;margin:45px 0 20px}.opening-bottom{display:none}.seal{width:62px;height:62px}.monogram{font-size:28px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{transition-duration:.01ms!important;animation-duration:.01ms!important}.reveal{transform:none}.envelope{transform:none}}
/* Keep the folded paper fully covered; clip decorative edges without affecting the gallery. */
html{overflow-x:clip}.envelope-front{clip-path:polygon(0 100%,0 36%,50% 54%,100% 36%,100% 100%)}
.hero{overflow:clip}
/* Bilingual controls and a quiet closing scripture; existing design remains intact. */
.language-switch{position:fixed;top:16px;right:20px;z-index:40;display:flex;align-items:center;gap:10px;padding:8px 12px;border:1px solid #7e896e30;border-radius:30px;background:#f5f1e8f2;color:#59644d;box-shadow:0 2px 12px #424a3b08;font:10px 'Montserrat',sans-serif}.language-switch button{width:auto;padding:5px 2px;background:none;border:0;border-radius:0;font:inherit;color:inherit;letter-spacing:0;text-transform:none;cursor:pointer;opacity:.65}.language-switch button[aria-pressed=true]{opacity:1;border-bottom:1px solid currentColor}.language-switch button:focus-visible{outline:2px solid #7e896e;outline-offset:3px}.language-switch>span{opacity:.4}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
@media(max-width:700px){.language-switch{top:12px;right:12px;font-size:10px}}
/* Password page must remain usable with long translated text, zoom, and short screens. */
body:has(.card){overflow:auto;padding:80px 18px 30px;min-height:100svh}.card{max-width:100%;flex-shrink:0}input[name=password]{letter-spacing:.03em}@media(max-width:420px){.card{padding:2.5rem 1.5rem}}
.invite-nav{padding-top:28px;height:120px}.scripture{text-align:center;padding:65px 24px 80px;max-width:880px;margin:0 auto}.scripture blockquote{font:italic 30px/1.55 'Cormorant Garamond',Georgia,serif;color:var(--ink);margin:25px auto;max-width:720px}.scripture-reference{font-size:10px;letter-spacing:.12em;color:var(--sage)}.scripture-credit{font-size:8px;line-height:1.8;color:var(--muted);max-width:560px;margin:25px auto 0}html[lang=es] .hero h2{font-size:clamp(34px,3.35vw,54px)}html[lang=es] .little-letter .script{font-size:clamp(28px,4vw,46px)}
@media(max-width:700px){.invite-nav{height:112px;padding-top:35px}.scripture{padding:35px 7% 65px}.scripture blockquote{font-size:26px}html[lang=es] .hero h2{font-size:36px}html[lang=es] .hero-date{gap:12px}html[lang=es] .hero-date strong{padding:0 15px}html[lang=es] .hero-photo figcaption{font-size:25px}html[lang=es] .section-heading .eyebrow{letter-spacing:.13em}}
@media(max-width:360px){html[lang=es] .opening-copy h1{font-size:34px}html[lang=es] .hero h2{font-size:32px}html[lang=es] .hero-photo figcaption{font-size:22px}}
.household-welcome{text-align:center;margin:40px auto 0;padding:28px 22px;max-width:760px;background:#ebece280;border-top:1px solid #bfc5b150;border-bottom:1px solid #bfc5b150;overflow-wrap:anywhere}.household-welcome h2{font-size:clamp(30px,4vw,45px);margin:12px 0 15px}.household-welcome p:not(.eyebrow){font-size:11px;line-height:1.9;color:var(--muted)}.household-welcome .household-names{color:var(--ink)!important;margin-bottom:10px}.household-extra{margin-top:8px;font-style:italic}html[lang=en] [data-house-lang=es],html[lang=es] [data-house-lang=en]{display:none}@media(max-width:700px){.household-welcome{margin:25px 7% 0;padding:24px 18px}}
.guest-guide-links{display:flex;justify-content:center;gap:32px;flex-wrap:wrap;margin:-35px 7% 40px;padding:25px;border-top:1px solid #cbd0be;border-bottom:1px solid #cbd0be}.guest-guide-links a{font-size:10px;letter-spacing:.04em;padding:8px 0;border-bottom:1px solid #aab497}@media(max-width:700px){.guest-guide-links{margin-top:-15px;gap:15px 25px}}

/* Real engagement photographs: preserve the carefully composed crops without another cover crop. */
.hero-photo{aspect-ratio:auto}.hero-photo img{height:auto;aspect-ratio:5/6;object-position:center}.photo-track img,.photo-track figure:nth-child(2) img{height:auto;aspect-ratio:4/5;object-position:center}
