:root{--ivory:#f6f1e8;--paper:#fbf8f1;--champagne:#e8dcc8;--gold:#ae8b5c;--ink:#302d29;--olive:#505044;--serif:"Cormorant Garamond",Georgia,serif;--sans:"Montserrat",Arial,sans-serif}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--sans);font-size:14px;font-weight:300;line-height:1.8}body.no-scroll{overflow:hidden}.loader{position:fixed;inset:0;z-index:1000;display:grid;place-items:center;background:var(--ivory);transition:opacity .8s,visibility .8s}.loader span{font:500 28px var(--serif);letter-spacing:.3em;animation:pulse 1.3s infinite}.loader i{color:var(--gold);font-weight:400}.loader.done{opacity:0;visibility:hidden}@keyframes pulse{50%{opacity:.35}}.hero{position:relative;min-height:100svh;color:#fff;display:flex;align-items:flex-end;overflow:hidden}.hero-photo{position:absolute;inset:0;background:url("images/hacienda-editorial.png") center 39%/cover;animation:heroZoom 9s ease-out both}@keyframes heroZoom{from{transform:scale(1.08)}to{transform:scale(1)}}.hero-shade{position:absolute;inset:0;background:linear-gradient(180deg,rgba(21,18,13,.2),rgba(21,18,13,.05) 40%,rgba(21,18,13,.74))}.nav{position:absolute;z-index:2;top:0;left:0;right:0;padding:max(24px,env(safe-area-inset-top)) 24px 0;display:flex;justify-content:space-between;align-items:center}.monogram{font:500 22px var(--serif);letter-spacing:.15em}.nav a{color:inherit;text-decoration:none}.nav-rsvp{font-size:10px;text-transform:uppercase;letter-spacing:.18em;border-bottom:1px solid rgba(255,255,255,.7)}.hero-content{position:relative;z-index:1;width:100%;text-align:center;padding:0 20px max(42px,env(safe-area-inset-bottom))}.eyebrow{text-transform:uppercase;letter-spacing:.28em;font-size:10px;font-weight:500;color:var(--gold);margin:0 0 18px}.eyebrow.light{color:#eee2cd}.hero h1,.section h2{font-family:var(--serif);font-weight:400;line-height:.9;margin:0}.hero h1{font-size:clamp(58px,18vw,104px);letter-spacing:-.04em;text-shadow:0 2px 30px rgba(0,0,0,.2)}.hero h1 span{display:block}.hero h1 i,.section h2 i{font-weight:400}.hero h1 i{display:block;font-size:.7em;color:#e6d2b2;margin:-.04em 0}.hero-date{font-size:11px;letter-spacing:.36em;margin:28px 0 40px}.scroll-cue{display:inline-flex;flex-direction:column;align-items:center;gap:8px;color:#fff;text-decoration:none;text-transform:uppercase;letter-spacing:.2em;font-size:8px}.scroll-cue span{display:block;width:1px;height:30px;background:#fff;animation:scroll 1.8s infinite}@keyframes scroll{0%{transform:scaleY(0);transform-origin:top}50%{transform:scaleY(1);transform-origin:top}51%{transform-origin:bottom}100%{transform:scaleY(0);transform-origin:bottom}}.section{padding:95px 24px;text-align:center}.section h2{font-size:clamp(44px,13vw,70px);letter-spacing:-.025em}.intro{max-width:760px;margin:auto}.body-copy{max-width:520px;margin:32px auto 0;color:#656058}.ornament{color:var(--gold);font-size:13px;margin:40px 0 20px}.parents{text-transform:uppercase;font-size:9px;letter-spacing:.2em}.champagne{background:var(--champagne)}.timer{display:flex;justify-content:center;align-items:flex-start;gap:9px}.timer div{min-width:54px}.timer strong{display:block;font:400 clamp(34px,10vw,58px) var(--serif);line-height:1}.timer span{font-size:7px;text-transform:uppercase;letter-spacing:.16em}.timer b{font:400 28px var(--serif);color:var(--gold)}.timer-finished{font:italic 32px var(--serif)}.events{max-width:1040px;margin:auto}.event-grid{display:grid;gap:18px;margin-top:45px}.event-card{position:relative;border:1px solid #d9d0c1;padding:45px 25px;background:rgba(255,255,255,.25)}.event-number{position:absolute;top:14px;right:18px;font:italic 18px var(--serif);color:#c2b092}.event-card h3,.success h3,dialog h3{font:400 31px/1.05 var(--serif);margin:10px auto 18px;max-width:300px}.event-card p:not(.eyebrow){color:#716a60;min-height:76px}.button{display:inline-flex;justify-content:center;align-items:center;gap:12px;min-height:48px;padding:0 22px;border:1px solid var(--ink);border-radius:0;background:transparent;color:var(--ink);font:500 9px var(--sans);text-transform:uppercase;letter-spacing:.16em;text-decoration:none;cursor:pointer;transition:.25s}.button:hover{background:var(--ink);color:var(--paper)}.button-row{display:flex;justify-content:center;gap:8px}.button-row .button{padding:0 13px}.solid{background:var(--ink);color:var(--paper)}.solid:hover{background:var(--gold);border-color:var(--gold)}.dark{background:var(--olive);color:var(--paper);position:relative}.dress-inner{border:1px solid rgba(255,255,255,.25);padding:50px 20px}.dress h2{font-size:72px}.dress-line{width:42px;height:1px;background:var(--gold);margin:25px auto}.dress p:not(.eyebrow){font:400 21px/1.65 var(--serif)}.dress small{display:block;margin-top:25px;color:#d6d1c7;font-size:9px;letter-spacing:.06em}.gallery{overflow:hidden}.gallery-grid{display:grid;grid-template-columns:1fr 1fr;grid-template-rows:290px 200px;gap:9px;margin:45px auto 0;max-width:860px}.photo{margin:0;overflow:hidden}.photo img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .7s}.photo:hover img{transform:scale(1.03)}.photo-main{grid-column:1/-1}.photo-detail img{object-position:80% 75%;transform:scale(1.25)}.gallery blockquote{margin:0;background:var(--champagne);padding:25px 16px;display:grid;place-items:center;font:italic 21px/1.25 var(--serif)}.gift-actions{display:flex;flex-direction:column;align-items:center;gap:15px;margin-top:34px}.text-button{border:0;border-bottom:1px solid var(--ink);min-height:34px;padding:0}.rsvp{max-width:700px;margin:auto}.rsvp-form{text-align:left;margin-top:45px}.rsvp-form>label,.rsvp-form fieldset{display:block;border:0;padding:0;margin:0 0 28px;font-size:9px;text-transform:uppercase;letter-spacing:.14em;font-weight:500}.rsvp-form label span{font-weight:300;color:#90897f}.rsvp-form input[type=text],.rsvp-form select,.rsvp-form textarea{width:100%;border:0;border-bottom:1px solid #bdb3a4;background:transparent;border-radius:0;padding:12px 0;color:var(--ink);font:400 17px var(--serif);outline:none}.rsvp-form input:focus,.rsvp-form select:focus,.rsvp-form textarea:focus{border-color:var(--gold)}.choice-row{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:10px}.choice-row input{position:absolute;opacity:0}.choice-row span{display:grid;place-items:center;text-align:center;min-height:52px;border:1px solid #cfc5b7;cursor:pointer}.choice-row input:checked+span{background:var(--ink);color:var(--paper)}.submit{width:100%}.form-note{text-align:center;font-size:9px;color:#8f887e}.success{margin-top:40px;background:var(--ivory);padding:42px 25px}.success>span{display:grid;place-items:center;width:48px;height:48px;border:1px solid var(--gold);border-radius:50%;margin:auto;color:var(--gold)}footer{background:#282822;color:#e7dfd2;text-align:center;padding:55px 20px calc(55px + env(safe-area-inset-bottom))}footer p{margin:0 0 8px;font-size:10px;letter-spacing:.2em}footer .monogram{font-size:27px}footer small{color:#9f988c;font-size:8px;text-transform:uppercase;letter-spacing:.2em}dialog{width:min(90%,430px);border:0;padding:45px 30px;background:var(--paper);color:var(--ink);text-align:center;box-shadow:0 20px 70px rgba(0,0,0,.3)}dialog::backdrop{background:rgba(34,31,27,.7);backdrop-filter:blur(4px)}.dialog-close{position:absolute;right:15px;top:10px;border:0;background:none;font:300 28px var(--serif);cursor:pointer}dialog dl{display:grid;grid-template-columns:1fr 2fr;text-align:left;border-top:1px solid #ddd3c5;margin:25px 0}dialog dt,dialog dd{margin:0;padding:10px 3px;border-bottom:1px solid #ddd3c5}dialog dt{font-size:8px;text-transform:uppercase;letter-spacing:.12em}dialog dd{font:400 15px var(--serif)}dialog small{display:block;margin-top:15px}.reveal{opacity:0;transform:translateY(25px);transition:opacity .9s ease,transform .9s ease}.reveal.visible{opacity:1;transform:none}@media(min-width:700px){.section{padding:130px 40px}.hero h1 span{display:inline}.hero h1 i{display:inline;margin:0 .1em}.event-grid{grid-template-columns:1fr 1fr}.event-card{padding:60px 35px}.gallery-grid{grid-template-columns:1.4fr .6fr;grid-template-rows:250px 250px}.photo-main{grid-column:1;grid-row:1/3}.gift-actions{flex-direction:row;justify-content:center}.dress-inner{max-width:760px;margin:auto}.rsvp-form{padding:0 30px}}@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;animation:none!important;transition:none!important}.reveal{opacity:1;transform:none}}
