:root{--olive:#4b5947;--olive2:#687260;--terra:#ad6c4d;--cream:#f5eee4;--paper:#fbf7ef;--ink:#453b33;--gold:#b99b72}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:#ddd4c8;color:var(--ink);font-family:'Lora',Georgia,serif}.invite{width:min(100%,520px);margin:auto;background:var(--paper);box-shadow:0 0 42px #493c3225;overflow:hidden}
section{position:relative;min-height:650px;display:flex;align-items:center;justify-content:center;padding:68px 32px;text-align:center;isolation:isolate}.photo-section{background-size:cover;background-position:center;background-attachment:scroll}.photo-section:after{content:"";position:absolute;inset:-1px;z-index:-1;pointer-events:none;background:linear-gradient(to bottom,rgba(246,239,229,.38) 0%,rgba(246,239,229,.10) 16%,rgba(246,239,229,.08) 82%,rgba(246,239,229,.42) 100%)}
.photo-section[data-photo="molle1"]{background-image:url('../assets/images/molle1.png')}.photo-section[data-photo="algarrobo1"]{background-image:url('../assets/images/algarrobo1.png')}.photo-section[data-photo="chanar1"]{background-image:url('../assets/images/chanar1.png')}.photo-section[data-photo="chanar2"]{background-image:url('../assets/images/chanar2.png')}.photo-section[data-photo="tala1"]{background-image:url('../assets/images/tala1.png')}.camera-photo{background-image:url('../assets/images/camara1.png');background-position:63% center}
.shade{position:absolute;inset:0;z-index:-2}.shade-soft{background:linear-gradient(#fff4,#f8f1e6a2)}.shade-warm{background:linear-gradient(#4f422b20,#54463355)}.shade-green{background:linear-gradient(#34433370,#2f392f99)}.shade-dark{background:linear-gradient(#27282055,#282a25a6)}.shade-brown{background:linear-gradient(#4d382d55,#493b32a6)}.shade-camera{background:linear-gradient(90deg,#211a17aa,#211a1720 72%)}.shade-closing{background:linear-gradient(#332a2455,#332a24b5)}
.section-content,.hero-content{position:relative;z-index:1;width:100%;max-width:420px}.welcome,.countdown,.party,.adults,.lodging,.closing,.memories{color:#fff;text-shadow:0 2px 15px #0008}.hero{min-height:820px;background-position:center}.hero-content{color:#3f4439;text-shadow:0 1px 10px #fff8}.eyebrow{font-family:'Lora',Georgia,serif;font-size:.72rem;letter-spacing:.2em;text-transform:uppercase;font-weight:500}.names-logo{font-family:'Allura','Segoe Script',cursive;font-weight:400;line-height:.86;color:#465243;margin:14px 0 10px;text-shadow:0 2px 18px #fff9}.names-logo span{color:var(--terra)}.main-logo{font-size:5.1rem}.entry-names{font-size:4.1rem}.nickname{font-style:italic;font-size:.95rem}.date{font-size:1rem;letter-spacing:.16em;margin:14px 0}.hero-quote{font-size:1.08rem;line-height:1.65}.small-mark{font-family:'Allura','Segoe Script',cursive;font-size:2.3rem}.section-content h2,.split-copy h2,.rsvp-head h2{font-size:2.35rem;font-weight:400;line-height:1.12;margin:10px 0 18px}.section-content h3{font-size:.88rem;letter-spacing:.08em;line-height:1.55}.section-content p{font-size:1.03rem;line-height:1.65}.emphasis{font-style:italic}.ornament{width:120px;display:flex;gap:10px;align-items:center;margin:20px auto}.ornament span{height:1px;background:currentColor;flex:1;opacity:.55}.ornament b{color:var(--terra)}
.primary-btn,.outline-btn,.cream-btn{display:inline-block;text-decoration:none;border-radius:999px;padding:13px 23px;transition:transform .25s ease,background .25s ease;color:inherit}.primary-btn{background:#fff9;border:1px solid #5b6658;color:#465243;backdrop-filter:blur(8px)}.outline-btn{border:1px solid currentColor}.cream-btn{background:#fff2;color:#fff;border:1px solid #fff8}.primary-btn:hover,.outline-btn:hover,.cream-btn:hover{transform:translateY(-2px)}
.count-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:7px;margin:28px 0}.count-grid>div{background:#fff9;color:#403a33;padding:16px 4px;border:1px solid #ffffffaa;backdrop-filter:blur(7px)}.count-grid strong{display:block;font-size:1.9rem;font-weight:400}.count-grid span{font-size:.58rem;letter-spacing:.09em;text-transform:uppercase}.tiny{font-size:.85rem}.paper-section{min-height:540px;background:linear-gradient(180deg,#f8f2e9,#f2e8dc)}.time{font-size:2rem;margin:18px}.line-icon{font-size:2rem}.warm-paper{background:linear-gradient(180deg,#eadfce,#f7f0e7)}.big-value{font-size:2.8rem;color:var(--terra);margin:18px}.copy-pill{border:1px solid #b9aa99;border-radius:999px;background:#fff8;padding:12px 18px;font:inherit;color:inherit;cursor:pointer}
.split-section{display:grid;grid-template-columns:1fr 1fr;min-height:520px;padding:0;background:var(--paper)}.split-photo{min-height:520px}.dress-photo{background:url('../assets/images/dress-code.png') center/cover no-repeat}.split-copy{display:flex;flex-direction:column;justify-content:center;padding:35px 24px}.split-copy h2{font-size:2.3rem}
.rsvp-section{min-height:auto;padding:76px 28px;background:linear-gradient(180deg,#e7ddd0,#f5eee5);color:var(--ink)}.rsvp-head{text-align:center;max-width:430px}.deadline{display:inline-block;border-bottom:1px solid #b78b72;padding:8px 4px;font-size:.76rem;letter-spacing:.09em;text-transform:uppercase}.rsvp-card{width:100%;max-width:430px;margin:25px auto 0;background:#fffaf3d9;border:1px solid #d8cabb;padding:27px;text-align:left;box-shadow:0 12px 32px #604a3820;backdrop-filter:blur(9px)}.rsvp-card label,.rsvp-card legend{font-size:.86rem}.rsvp-card input[type=text],.rsvp-card textarea{width:100%;border:0;border-bottom:1px solid #b9aa99;background:transparent;padding:10px 4px;margin:4px 0 15px;font:inherit;color:inherit}.rsvp-card textarea{resize:vertical}.rsvp-card fieldset{border:0;padding:0;margin:0 0 16px}.choice-row{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:8px}.choice{border:1px solid #d8cabb;padding:10px;background:#fff8;display:flex;align-items:center;gap:7px}.send-btn{width:100%;border:0;border-radius:999px;padding:14px;background:var(--terra);color:#fff;font:inherit;font-weight:500;cursor:pointer}.form-status{font-size:.85rem;min-height:20px}.align-left{text-align:left}.social-tags{font-weight:500}.closing-name{font-family:'Allura','Segoe Script',cursive;font-size:4rem}.memories{background-position:65% center}
.float-rsvp{position:fixed;left:50%;bottom:16px;transform:translate(-50%,24px);z-index:30;opacity:0;pointer-events:none;min-width:240px;text-align:center;padding:13px 20px;border-radius:999px;background:#4b5947f2;color:#fff;text-decoration:none;font-size:.84rem;box-shadow:0 12px 28px #0004;transition:.3s ease}.float-rsvp.visible{opacity:1;pointer-events:auto;transform:translate(-50%,0)}.music-toggle{position:fixed;right:18px;top:18px;z-index:40;width:44px;height:44px;border-radius:50%;border:1px solid #fff8;background:#4b5947dd;color:#fff;font-size:1.2rem;cursor:pointer}
.entry-gate{position:fixed;inset:0;z-index:100;background:linear-gradient(#fffaf0aa,#f3e7d8aa),url('../assets/images/minufondo.png') center/cover no-repeat;display:flex;align-items:center;justify-content:center;padding:28px;transition:opacity .7s ease,visibility .7s ease}.entry-gate.hidden{opacity:0;visibility:hidden}.entry-inner{text-align:center;max-width:430px}.entry-inner p{letter-spacing:.18em}.entry-inner button{margin-top:18px;border:1px solid #65705c;border-radius:999px;padding:14px 23px;background:#fff8;color:#465243;font:inherit;cursor:pointer}.entry-inner small{display:block;margin-top:12px;color:#75665c}
.reveal{opacity:0;transform:translateY(18px);filter:blur(3px);transition:opacity .9s ease,transform .9s ease,filter .9s ease}.reveal.is-visible{opacity:1;transform:none;filter:none}
@media(max-width:520px){.main-logo{font-size:4.4rem}.entry-names{font-size:3.6rem}.split-section{grid-template-columns:1fr 1fr;min-height:520px}.split-photo{min-height:520px}.split-copy{min-height:520px;padding:28px 12px}.split-copy .eyebrow{font-size:.58rem;letter-spacing:.18em}.split-copy h2{font-size:2rem;line-height:1.08;margin:12px 0 28px}.split-copy p{font-size:.9rem;line-height:1.45}.section-content h2,.rsvp-head h2{font-size:2.1rem}section:not(.split-section){padding-left:24px;padding-right:24px}.choice-row{grid-template-columns:1fr}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.reveal,.float-rsvp,.entry-gate{transition:none}}

/* V12 refinements */
.welcome .emphasis{margin-top:32px;padding-top:22px;border-top:1px solid rgba(255,255,255,.45);font-family:'Allura','Segoe Script',cursive;font-size:1.65rem;line-height:1.25}
.art-icon svg{width:72px;height:54px;fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round;opacity:.85}
.minor-title{font-size:1.45rem!important;letter-spacing:.02em}.venue-title{font-size:1.18rem!important;letter-spacing:.05em!important;line-height:1.45!important}.reception-venue{display:block;font-size:1.25rem!important;line-height:1.45;margin:18px auto 8px}
.value{background:linear-gradient(90deg,rgba(251,247,239,.91),rgba(245,232,214,.82)),url('../assets/images/tala1.png') center/cover no-repeat}.value .big-value{font-size:2rem;line-height:1.3}.alias-row{display:inline-flex;align-items:center;gap:10px;border:1px solid #b9aa99;border-radius:999px;background:#fff9;padding:10px 12px 10px 18px}.copy-icon{width:34px;height:34px;border:0;border-radius:50%;background:var(--terra);color:white;font-size:1.1rem;cursor:pointer}.social-tags a{color:inherit;text-decoration:underline;text-underline-offset:4px}
.rsvp-section{display:block}.rsvp-head{margin:0 auto}.rsvp-card{display:block}
.entry-gate .entry-inner{background:transparent;backdrop-filter:none;padding:38px 28px;border:0;box-shadow:none;text-shadow:0 1px 14px rgba(255,255,255,.78)}


/* V13 refinements */
.names-logo,.small-mark,.closing-name,.welcome .emphasis{font-family:'Allura','Segoe Script',cursive;font-weight:400}
.names-logo{letter-spacing:.01em}.main-logo{font-size:5.35rem;line-height:.82}.entry-names{font-size:4.35rem}.small-mark{font-size:2.7rem}.closing-name{font-size:4.2rem}
.welcome .emphasis{margin-top:40px;padding-top:25px;font-size:1.9rem;line-height:1.25}
.art-icon svg{width:78px;height:60px;stroke-width:1.65;opacity:.92}.church-icon svg{width:70px}.quill-icon svg{width:82px}
.copy-icon{background:transparent;color:var(--terra);border:1px solid #c8ad9c;transition:color .22s ease,border-color .22s ease,background .22s ease}.copy-icon.copied{color:var(--olive);border-color:var(--olive);background:#eef1e9}
.gifts .alias-row{margin-top:8px}
@media(max-width:520px){.main-logo{font-size:4.7rem}.entry-names{font-size:3.9rem}}


/* V14 refinements */
.classic-amp{font-family:Garamond,'EB Garamond','Times New Roman',serif!important;font-style:normal;font-weight:400;display:inline-block;line-height:.8;vertical-align:.08em;letter-spacing:0!important}
.names-logo .classic-amp{font-size:.58em;color:var(--terra);margin:0 .06em}
.small-mark .classic-amp{font-size:.52em;color:inherit;margin:0 .05em;vertical-align:.16em}
.small-mark .pm-letter{font-size:1.1em}
.closing-name .classic-amp{font-size:.56em;color:inherit;margin:0 .08em}
.welcome h2{line-height:1.08}
.welcome .section-content>p:not(.emphasis){margin:0 0 13px}
.welcome .emphasis{white-space:normal}
.gifts .section-content>p{margin:0 0 15px}
.closing .section-content>p{margin:0 0 14px}


/* V15 refinements */
.entry-gate{background:linear-gradient(rgba(255,250,240,.18),rgba(243,231,216,.18)),url('../assets/images/minufondo.png') center/cover no-repeat}
.small-mark{display:inline-flex;align-items:baseline;justify-content:center;gap:.18em}
.small-mark .pm-letter,.small-mark .pm-amp{margin:0!important}
.small-mark .pm-amp{font-size:.52em;min-width:.72em;text-align:center}
.deadline strong{font-weight:700;color:inherit}

/* V17: three-line couple name lockup */
.names-logo .name-line,.names-logo .amp-line{display:block;}
.names-logo .amp-line{margin:.05em 0 .08em!important;line-height:.62;}
.entry-names,.main-logo{line-height:.78;}

/* V18: preserve approved name lockup colors */
.names-logo .classic-amp{color:inherit!important;}

/* V19: restore V15 couple-name palette and improve three-line spacing */
.names-logo .name-line{color:#465243!important;}
.names-logo .classic-amp.amp-line{color:var(--terra)!important;}
.names-logo .amp-line{margin:.08em 0 .18em!important;line-height:.68;}

/* V20: increase vertical breathing room below ampersand on entry + hero only */
.entry-names .amp-line,.main-logo .amp-line{margin:.08em 0 .32em!important;line-height:.68;}
.entry-gate .entry-inner>p{margin-top:1.15rem;}
.hero .nickname{margin-top:.9rem;}

/* V23: prevent entry text from painting before Minufondo and webfonts are ready. */
body.gate-active:not(.entry-ready) .entry-gate{background:#f5eee4!important}
body.gate-active:not(.entry-ready) .entry-gate .entry-inner{opacity:0!important;visibility:hidden!important}
body.gate-active.entry-ready .entry-gate .entry-inner{opacity:1;visibility:visible;transition:opacity .22s ease}
