:root{--cream:#fbf5ea;--paper:#fffaf1;--maroon:#782d36;--maroon-dark:#5d222c;--gold:#be9b53;--ink:#4a3733;--muted:#86756e;--sage:#e9eddf;--border:#e9d9bf;--serif:"Cormorant Garamond",Georgia,serif;--script:"Great Vibes","Segoe Script",cursive;--sans:"DM Sans",Arial,sans-serif}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--cream);color:var(--ink);font-family:var(--sans);font-size:15px;line-height:1.65}button,input,textarea,select{font:inherit}button,a{-webkit-tap-highlight-color:transparent}a{color:inherit}button{cursor:pointer}img{max-width:100%;display:block}section{position:relative;overflow:hidden}.site-header{position:absolute;z-index:10;top:0;left:0;right:0;height:78px;display:flex;align-items:center;justify-content:space-between;padding:0 clamp(20px,5vw,84px);background:linear-gradient(#fbf5eaf0,#fbf5ea9c 75%,transparent)}.brand{text-decoration:none;font-family:var(--serif);font-size:25px;font-weight:700;color:var(--maroon);white-space:nowrap}.brand-icon{color:var(--gold);margin-right:9px}.site-header nav{display:flex;gap:clamp(12px,2vw,32px)}.site-header nav a,.header-rsvp{text-decoration:none;font-size:11px;letter-spacing:.14em;text-transform:uppercase;font-weight:700}.site-header nav a:hover,.text-link:hover,.share-actions button:hover{color:var(--maroon)}.header-rsvp{padding:10px 20px;border:1px solid var(--maroon);color:var(--maroon);border-radius:3px;white-space:nowrap}.hero{min-height:760px;height:100svh;max-height:1050px;display:grid;place-items:center;text-align:center;background:#faf4e7}.hero-art{position:absolute;inset:0;background-image:linear-gradient(to bottom,rgba(251,245,234,.12),rgba(251,245,234,.38) 30%,rgba(251,245,234,.18) 64%,rgba(251,245,234,.03)),url("../assets/temple-watercolor.webp");background-size:cover;background-position:center bottom;transform:scale(1.025);animation:hero-zoom 16s ease-out both}.hero::after{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(to bottom,transparent 20%,rgba(251,245,234,.35) 48%,transparent 79%)}.hero-content{position:relative;z-index:2;margin-top:-80px;padding:34px 20px 48px;max-width:720px;text-shadow:0 1px 5px #fbf5ead9;animation:rise .9s .2s both}.blessing-mark{font-family:Georgia,serif;color:#b87822;font-size:34px;line-height:1}.eyebrow,.small-label{text-transform:uppercase;letter-spacing:.23em;font-size:10px;font-weight:700;color:var(--maroon)}.gold-divider{display:flex;align-items:center;justify-content:center;gap:12px;color:var(--gold);font-size:20px;margin:10px auto}.gold-divider:before,.gold-divider:after{content:"";display:block;width:48px;height:1px;background:var(--gold)}.hero-kicker{font-family:var(--serif);font-size:20px;line-height:1.3;margin:16px 0 0}.hero h1{font-family:var(--script);font-size:clamp(76px,10vw,150px);font-weight:400;line-height:.9;color:var(--maroon);margin:22px 0 10px;display:flex;align-items:center;justify-content:center;gap:12px}.ampersand{font-family:var(--serif);font-style:italic;font-size:.45em;color:var(--gold);align-self:center}.hero-subtitle{font-family:var(--serif);font-style:italic;font-size:25px;margin:12px 0 21px}.hero-date{display:flex;align-items:center;justify-content:center;gap:14px;color:var(--maroon);font-size:11px;text-transform:uppercase;letter-spacing:.2em;font-weight:700}.hero-date i{height:20px;width:1px;background:var(--gold)}.button{border:0;display:inline-flex;align-items:center;justify-content:center;gap:20px;min-height:48px;padding:12px 29px;text-decoration:none;text-transform:uppercase;letter-spacing:.14em;font-size:10px;font-weight:700;border-radius:3px;transition:transform .2s,background .2s,box-shadow .2s}.button:hover{transform:translateY(-2px);box-shadow:0 10px 22px #6a263326}.button-primary{background:var(--maroon);color:#fff}.button-primary:hover{background:var(--maroon-dark)}.hero .button{margin-top:30px}.garland{height:73px;position:absolute;z-index:4;top:0;left:0;right:0;background-image:url("../assets/garland.svg");background-repeat:repeat-x;background-size:245px 73px}.scroll-cue{position:absolute;z-index:3;bottom:17px;color:#fff;text-shadow:0 1px 5px #3c3a2e;font-size:10px;text-transform:uppercase;letter-spacing:.22em}.scroll-cue span{display:block;font-size:22px;line-height:1.1}.section-pad{padding:100px 24px}.invitation{text-align:center;background:var(--paper)}.script-heading{font-family:var(--script);font-size:clamp(45px,5.7vw,74px);line-height:1.25;font-weight:400;color:var(--maroon);margin:12px 0}.invitation-copy{max-width:610px;margin:22px auto 35px;color:var(--muted);font-family:var(--serif);font-size:24px;line-height:1.5}.procession{max-width:min(740px,90%);max-height:270px;object-fit:contain;margin:32px auto 0;filter:drop-shadow(0 12px 12px #6b33311a)}.section-ornament{color:var(--gold);margin-top:40px;font-size:21px}.section-heading{text-align:center;max-width:650px;margin:0 auto 50px}.section-heading p:last-child{color:var(--muted);font-family:var(--serif);font-style:italic;font-size:22px;margin:0}.story{background:radial-gradient(circle at 8% 20%,#eaf0df 0,transparent 28%),radial-gradient(circle at 90% 85%,#e8eddd 0,transparent 25%),var(--cream)}.couple-grid{display:grid;grid-template-columns:1fr 75px 1fr;align-items:center;max-width:900px;margin:auto;gap:28px}.person-card{text-align:center}.portrait-placeholder{height:300px;max-width:310px;margin:0 auto 22px;border:9px solid #fff;outline:1px solid var(--border);box-shadow:0 18px 30px #5c56311a;background:radial-gradient(circle at 50% 34%,#f5dec7 0 17%,transparent 17%),radial-gradient(circle at 50% 130%,#86947c 0 56%,transparent 56%),#e2d8c1;display:flex;flex-direction:column;align-items:center;justify-content:center;color:#fff;position:relative}.portrait-bride{background:radial-gradient(circle at 50% 34%,#f5dec7 0 17%,transparent 17%),radial-gradient(circle at 50% 130%,#b77d83 0 56%,transparent 56%),#e8d9cf}.portrait-placeholder:after{content:"";position:absolute;inset:13px;border:1px solid #ffffffb8}.portrait-placeholder span{font-family:var(--script);font-size:110px;text-shadow:0 2px 6px #6b392f55;line-height:1}.portrait-placeholder small{position:absolute;bottom:18px;text-transform:uppercase;font-size:9px;letter-spacing:.2em;font-weight:700;background:#ffffffbb;color:var(--maroon);padding:4px 10px}.person-card h3{font-family:var(--serif);font-size:38px;color:var(--maroon);margin:3px 0}.person-card>p:last-child{font-family:var(--serif);font-style:italic;font-size:20px;color:var(--muted);max-width:260px;margin:0 auto}.between-couple{font-family:var(--script);font-size:80px;color:var(--gold);margin-top:-80px}.events{background:var(--paper)}.event-grid{max-width:1070px;margin:auto;display:grid;grid-template-columns:repeat(3,1fr);gap:20px}.event-card{background:#fffdf8;border:1px solid var(--border);text-align:center;padding:36px 24px 30px;box-shadow:0 12px 35px #6e503810;position:relative}.event-card:before{content:"";position:absolute;inset:8px;border:1px solid #eadbc2;pointer-events:none}.event-icon{font-size:34px;color:var(--gold);height:60px}.event-card h3{font-family:var(--serif);font-size:38px;color:var(--maroon);margin:2px 0 7px}.event-card p{margin:4px 0;color:var(--muted);font-family:var(--serif);font-size:20px}.event-date{color:var(--ink)!important;font-weight:700}.event-card a{display:inline-block;margin-top:18px;color:var(--maroon);text-transform:uppercase;text-decoration:none;font-size:10px;letter-spacing:.17em;font-weight:700;border-bottom:1px solid var(--gold);padding-bottom:4px}.countdown{text-align:center;background:radial-gradient(circle at center,#fffaf1 0,#fbf5ea 70%)}.countdown:before,.countdown:after{content:"✺";position:absolute;color:#ddc98f35;font-size:240px;top:10px;line-height:1}.countdown:before{left:-40px}.countdown:after{right:-40px}.countdown-grid{display:flex;justify-content:center;align-items:center;gap:12px;margin:32px auto 0}.countdown-grid div{width:112px;height:114px;background:#fffdf8;border:1px solid var(--border);display:flex;flex-direction:column;align-items:center;justify-content:center;box-shadow:0 8px 20px #745b4010}.countdown-grid strong{font-family:var(--serif);color:var(--maroon);font-size:54px;line-height:1}.countdown-grid span{text-transform:uppercase;letter-spacing:.18em;font-size:9px;margin-top:8px}.countdown-grid b{font-family:var(--serif);font-size:30px;color:var(--gold);font-weight:400}.countdown-note{font-family:var(--serif);font-style:italic;font-size:21px;color:var(--muted);margin:30px 0 0}.gallery{background:var(--paper)}.gallery-grid{max-width:1050px;margin:auto;display:grid;grid-template-columns:1.2fr 1fr 1fr;gap:18px;height:360px}.photo-slot{border:8px solid #fff;box-shadow:0 12px 26px #5c513c20;display:flex;flex-direction:column;align-items:center;justify-content:center;color:#fff;text-align:center;background-size:cover;background-position:center}.photo-one{background:linear-gradient(135deg,#888d78,#d0b3a3)}.photo-two{background:linear-gradient(135deg,#b98d8d,#e2c6b0)}.photo-three{background:linear-gradient(135deg,#a3a88d,#ddc49f)}.photo-slot span{font-family:var(--serif);font-size:65px;text-shadow:0 2px 4px #3338}.photo-slot p{font-family:var(--serif);font-size:23px;font-style:italic;text-shadow:0 2px 4px #3338}.gallery-note{text-align:center;color:var(--muted);font-size:12px;margin:23px 0 0}.venue{background:var(--sage)}.venue-panel{max-width:910px;margin:auto;display:flex;align-items:center;gap:42px;background:#fffdf7;box-shadow:0 15px 40px #4b47321a;padding:52px 64px;position:relative;overflow:hidden}.venue-symbol{width:105px;height:105px;flex:0 0 105px;border:1px solid var(--gold);border-radius:50%;display:grid;place-items:center;font-family:var(--serif);font-size:66px;color:var(--gold)}.venue-panel h3{font-family:var(--serif);color:var(--maroon);font-size:37px;margin:3px 0}.venue-panel p{margin:4px 0}.text-link{display:inline-block;margin-top:22px;color:var(--maroon);text-decoration:none;font-size:11px;text-transform:uppercase;letter-spacing:.14em;font-weight:700;border-bottom:1px solid var(--gold);padding-bottom:4px}.venue-pattern{position:absolute;right:-35px;bottom:-80px;font-size:270px;line-height:1;color:#e7d6aa60}.rsvp{background:var(--paper)}.rsvp-form{max-width:650px;margin:auto;padding:40px;background:#fffdf8;border:1px solid var(--border);box-shadow:0 10px 30px #745b4012}.rsvp-form label,.rsvp-form legend{display:block;color:var(--maroon);text-transform:uppercase;letter-spacing:.13em;font-size:10px;font-weight:700;margin-bottom:17px}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:15px}.rsvp-form input:not([type=radio]),.rsvp-form textarea,.rsvp-form select{display:block;width:100%;margin-top:8px;background:#fff;border:1px solid #dfd0bc;border-radius:2px;padding:11px 12px;color:var(--ink);font-size:14px;letter-spacing:0;text-transform:none;outline:none}.rsvp-form input:focus,.rsvp-form textarea:focus,.rsvp-form select:focus{border-color:var(--maroon);box-shadow:0 0 0 3px #782d3618}.rsvp-form fieldset{border:0;padding:0;margin:6px 0 20px}.rsvp-form legend{margin-bottom:8px}.radio-option{display:inline-flex!important;align-items:center;gap:8px;margin-right:18px!important;color:var(--ink)!important;letter-spacing:0!important;text-transform:none!important;font-size:13px!important}.radio-option input{accent-color:var(--maroon)}.optional{color:var(--muted);text-transform:none;letter-spacing:0;font-weight:400}.rsvp-form .button{width:100%;margin-top:10px}.form-status{color:var(--maroon);font-size:13px;text-align:center;margin:15px 0 0}.form-status:empty{display:none}.form-note{color:var(--muted);font-size:11px;text-align:center;margin:14px 0 0}.footer{text-align:center;background:#702934;color:#fff6e9;padding:55px 20px 35px}.footer-garland{color:#e6bd62;font-size:25px}.footer h2{font-family:var(--script);font-size:62px;font-weight:400;margin:8px 0 0}.footer p{font-family:var(--serif);font-size:20px;margin:0}.share-actions{display:flex;justify-content:center;gap:18px;margin:28px 0 34px;flex-wrap:wrap}.share-actions button{border:1px solid #e4bea0;background:transparent;color:#fff9ef;padding:9px 14px;font-size:10px;text-transform:uppercase;letter-spacing:.12em}.share-actions button:hover{background:#fff9ef}.footer .copyright{font-size:13px;color:#e4cbb8}.petal-layer{position:fixed;pointer-events:none;inset:0;z-index:30;overflow:hidden}.petal{position:absolute;top:-30px;width:9px;height:15px;background:#c65b5b88;border-radius:80% 0 80% 0;animation:fall linear forwards}@keyframes fall{to{transform:translate3d(90px,110vh,0) rotate(720deg);opacity:0}}@keyframes hero-zoom{from{transform:scale(1.07)}to{transform:scale(1.025)}}@keyframes rise{from{transform:translateY(22px);opacity:0}to{transform:translateY(0);opacity:1}}@media(max-width:800px){.site-header nav{display:none}.hero{min-height:700px}.hero-art{background-position:center bottom}.hero-content{margin-top:-40px}.hero h1{font-size:clamp(68px,12vw,105px)}.event-grid{grid-template-columns:1fr;max-width:500px}.gallery-grid{height:300px}.venue-panel{padding:35px}.venue-pattern{opacity:.5}}@media(max-width:600px){.site-header{height:68px;padding:0 16px}.brand{font-size:21px}.header-rsvp{padding:8px 12px}.garland{height:52px;background-size:185px 55px}.hero{height:850px;min-height:650px;max-height:none}.hero-art{background-position:50% bottom;background-size:auto 100%}.hero::after{background:linear-gradient(to bottom,#fbf5eac9 8%,#fbf5eab3 38%,#fbf5ea30 70%)}.hero-content{margin-top:-120px}.hero-kicker{font-size:18px}.hero h1{flex-direction:column;gap:0;font-size:75px;margin:18px 0}.hero h1 .ampersand{font-size:37px;line-height:.75}.hero-subtitle{font-size:21px}.hero-date{font-size:9px;letter-spacing:.12em;gap:8px}.scroll-cue{bottom:10px}.section-pad{padding:72px 18px}.script-heading{font-size:53px}.invitation-copy{font-size:21px}.procession{max-width:100%}.couple-grid{grid-template-columns:1fr;gap:4px}.between-couple{margin:0;font-size:58px;line-height:1}.portrait-placeholder{height:255px;max-width:270px}.person-card{margin-bottom:15px}.event-card{padding:27px 20px}.countdown:before,.countdown:after{font-size:120px}.countdown-grid{gap:4px}.countdown-grid div{width:70px;height:80px}.countdown-grid strong{font-size:38px}.countdown-grid b{font-size:18px}.countdown-grid span{font-size:7px;letter-spacing:.1em}.gallery-grid{height:auto;grid-template-columns:1fr 1fr;gap:10px}.photo-slot{height:200px}.photo-one{grid-column:1 / -1;height:250px}.venue-panel{display:block;text-align:center}.venue-symbol{margin:0 auto 15px}.venue-panel h3{font-size:32px}.form-row{grid-template-columns:1fr;gap:0}.rsvp-form{padding:25px 18px}.radio-option{display:flex!important}.footer h2{font-size:55px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;animation-duration:.01ms!important;transition-duration:.01ms!important}}
