:root{--ivory:#f8f5ed;--cream:#f3eee3;--ink:#344e5b;--blue:#486c7f;--faded:#7b8f91;--gold:#b99b72;--line:#d9d5c9;--serif:'Cormorant Garamond',Georgia,serif;--sans:'DM Sans',Arial,sans-serif;--script:'Great Vibes',cursive}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--ivory);color:var(--ink);font-family:var(--sans);-webkit-font-smoothing:antialiased}button,input,select,textarea{font:inherit}button{cursor:pointer}a{color:inherit}.site{overflow:hidden}.hero{height:min(920px,100svh);min-height:660px;position:relative;isolation:isolate;display:flex;justify-content:center;align-items:center;text-align:center;background:#f8f5ed}.hero-bg{position:absolute;inset:0;z-index:-1;background-image:linear-gradient(180deg,rgba(248,245,237,.50) 0%,rgba(248,245,237,.14) 53%,rgba(248,245,237,.05) 100%),url('/assets/palms.webp');background-size:cover;background-position:center center;animation:heroFloat 22s ease-in-out infinite alternate}.hero-content{padding:34px 20px 95px;animation:appear 1.7s ease both}.lotus-mark{font-family:var(--serif);font-size:56px;color:#788c8b;line-height:1;transform:rotate(-20deg)}.blessing{font-family:Georgia,serif;font-size:20px;margin:10px 0 22px;letter-spacing:.025em;color:#526a7a}.fine-rule{height:25px;display:flex;justify-content:center;align-items:center;color:var(--gold);font-size:13px}.fine-rule:before,.fine-rule:after{content:'';display:block;width:52px;height:1px;background:var(--gold);opacity:.6;margin:0 14px}.eyebrow{font-size:10px;letter-spacing:.35em;text-transform:uppercase;font-weight:600;color:#667f83}.hero-intro{margin:28px 0 10px}.hero h1{font-family:var(--serif);font-size:clamp(80px,12vw,166px);font-weight:300;letter-spacing:-.055em;line-height:.8;margin:29px 0 28px;color:#3f667c}.hero h1 span{display:block}.hero h1 em{display:block;font-family:var(--script);font-weight:400;font-size:.55em;line-height:.95;letter-spacing:0;color:var(--gold);margin:7px 0 1px}.hero-copy{font-family:var(--serif);font-size:clamp(21px,2vw,27px);font-style:italic;margin:32px 0 36px}.hero-date{font-size:15px;font-weight:600;letter-spacing:.23em;text-transform:uppercase;margin:0 0 9px}.hero-place{font-size:12px;text-transform:uppercase;letter-spacing:.32em;margin:0}.scroll-hint{position:absolute;bottom:25px;text-decoration:none;display:flex;align-items:center;flex-direction:column;gap:14px;font-size:9px;letter-spacing:.27em;font-weight:700;color:#536f7b}.scroll-line{height:38px;width:1px;background:#66808a;animation:hint 2s ease-in-out infinite}.section-pad{padding:120px 24px}.section-inner{max-width:1050px;margin:auto}.narrow{max-width:710px;text-align:center}.invitation{background:var(--ivory);text-align:center}.little-star{font-size:37px;color:var(--gold);font-family:var(--serif)}h2{font-family:var(--serif);font-size:clamp(59px,8vw,105px);line-height:.88;letter-spacing:-.045em;font-weight:400;margin:21px 0;color:#466d7e}h2 i{font-weight:300;color:#a89072}.small-divider{height:1px;width:84px;background:#c3b69f;margin:44px auto}.invitation-text{font-family:var(--serif);font-size:clamp(21px,2.8vw,29px);line-height:1.55;margin:0 auto;max-width:650px}.family-name{font-family:var(--serif);text-transform:uppercase;letter-spacing:.13em;color:#486a7d;font-size:clamp(46px,8vw,79px);margin:22px 0}.script-join{font-family:var(--script);font-size:48px;color:var(--gold);margin:-11px 0}.closing-poem{font-family:var(--serif);font-size:clamp(23px,3vw,30px);font-style:italic;line-height:1.5;max-width:630px;margin:0 auto;color:#64767d}.interlude{height:clamp(300px,45vw,520px);background:url('/assets/shoreline.webp') center 63%/cover no-repeat;display:flex;align-items:center;justify-content:center;position:relative}.interlude:before{content:'';position:absolute;inset:0;background:rgba(245,243,232,.35)}.interlude-overlay{z-index:1;text-align:center;padding:22px}.interlude-overlay p{font-family:var(--serif);font-style:italic;font-size:clamp(35px,5vw,64px);line-height:1.05;color:#355c70;margin:22px 0 0}.schedule{background:#f3f0e9}.schedule .section-inner{text-align:center}.section-subtitle{font-family:var(--serif);font-style:italic;font-size:26px;color:#839093}.days{margin-top:75px}.day{display:grid;grid-template-columns:170px 1fr;gap:55px;text-align:left;border-top:1px solid #d8d6ce;padding:47px 0}.day:last-child{border-bottom:1px solid #d8d6ce}.day-date{text-align:center;color:#667e83;padding-top:5px}.day-date .number{font-family:var(--serif);font-size:88px;line-height:.8;display:block;font-weight:300;color:#497081}.day-date .month{display:block;margin-top:10px;letter-spacing:.37em;font-size:13px;font-weight:600}.day-date .weekday{display:block;margin-top:10px;font-family:var(--serif);font-style:italic;font-size:19px}.day-content .day-label{color:#ab9373;letter-spacing:.25em;font-size:10px;font-weight:700;text-transform:uppercase}.day-content h3{font-family:var(--serif);font-weight:400;line-height:1;font-size:49px;color:#4b697a;margin:12px 0 26px}.event{padding:19px 0 22px;border-top:1px solid #dfded7}.event h4{font-family:var(--serif);font-size:30px;font-weight:500;margin:0 0 5px}.event .subtitle{font-family:var(--serif);font-style:italic;font-size:22px;margin:0 0 9px;color:#8e7a65}.event .meta{font-size:11px;font-weight:700;letter-spacing:.13em;text-transform:uppercase;color:#9c835f;margin:9px 0}.event .desc{font-family:var(--serif);font-size:22px;line-height:1.3;margin:10px 0 0;color:#667880}.quote-panel{text-align:center;background:linear-gradient(180deg,rgba(252,246,232,.75),rgba(249,246,238,.8)),url('/assets/shoreline.webp') center bottom/cover}.quote-panel p{font-family:var(--serif);font-style:italic;font-size:clamp(39px,6vw,69px);line-height:1.1;margin:30px auto;color:#476d80}.quote-flourish{display:inline-block;margin-top:12px;font-family:var(--serif);font-size:21px;letter-spacing:.4em}.quote-flourish span{font-family:var(--script);font-size:29px;color:var(--gold)}.rsvp{background:#edf0ed}.rsvp-layout{display:grid;grid-template-columns:1fr 1fr;gap:95px;align-items:center}.rsvp-intro h2{font-size:clamp(63px,6vw,88px);margin:28px 0}.rsvp-intro>p:not(.eyebrow){font-family:var(--serif);font-size:25px;line-height:1.5;color:#617982}.rsvp-intro .venue-line{font-size:20px!important;margin-top:46px}.shell-mark{font-size:80px;color:#b8a483;margin-top:45px}.rsvp-form-wrap{background:#faf9f5;padding:48px 45px;box-shadow:0 20px 60px rgba(50,64,65,.065)}.rsvp-form-wrap h3{font-family:var(--serif);font-weight:400;font-size:49px;margin:0}.form-note{font-family:var(--serif);font-style:italic;font-size:20px;color:#7a8887;margin:7px 0 29px}.rsvp form>label,.rsvp label:not(.choice):not(.event-choice){display:block;font-size:11px;letter-spacing:.1em;font-weight:700;text-transform:uppercase;margin:23px 0 9px}label>span,legend>span{color:#9e706c}.optional{color:#9a9e96!important;text-transform:none;font-weight:400;letter-spacing:0}input:not([type=radio]):not([type=checkbox]),select,textarea{width:100%;border:1px solid #d8ded9;background:transparent;color:#344e5b;border-radius:0;padding:15px 14px;font-size:13px;outline-offset:2px}input:focus,select:focus,textarea:focus{outline:2px solid #799aa1;outline-offset:1px}input::placeholder,textarea::placeholder{color:#a4adaa}fieldset{border:0;padding:0;margin:25px 0 0}legend{font-size:11px;letter-spacing:.1em;font-weight:700;text-transform:uppercase;margin-bottom:11px}.choice{display:inline-flex;align-items:center;gap:8px;font-family:var(--serif);font-size:19px;margin:6px 19px 6px 0;cursor:pointer}.choice input,.event-choice input{accent-color:#456c7e}.event-choice{display:flex;align-items:center;gap:11px;font-family:var(--serif);font-size:18px;line-height:1.35;padding:9px 0;cursor:pointer}.help-text{font-size:11px;color:#84918e;margin:7px 0 0}.rsvp button{display:flex;justify-content:space-between;align-items:center;width:100%;border:1px solid #466b7c;background:#466b7c;color:#fff;margin-top:27px;padding:17px 20px;text-transform:uppercase;letter-spacing:.18em;font-weight:700;font-size:11px;transition:background .2s,transform .2s}.rsvp button:hover:not(:disabled){background:#2e5365;transform:translateY(-2px)}.rsvp button:disabled{opacity:.6;cursor:wait}.form-footnote{font-size:10px;color:#8c9895;line-height:1.5;margin:16px 0 0}.form-error{color:#ab4242;font-size:12px;line-height:1.5;margin:14px 0}.success{text-align:center;padding:45px 0}.success-symbol{font-size:66px;color:#b99b72}.success h3{font-family:var(--serif);font-size:56px}.success p{font-family:var(--serif);font-size:23px}footer{text-align:center;padding:65px 20px;background:#486c7c;color:#eef1eb}footer .footer-names{font-family:var(--serif);font-size:36px}footer i{font-family:var(--script);font-size:30px;color:#d2bfa5}footer p{font-family:var(--serif);font-style:italic;font-size:19px;margin:12px 0 26px}footer>span{font-size:10px;letter-spacing:.3em}.reveal{opacity:0;transform:translateY(26px);transition:opacity .9s ease,transform .9s ease}.reveal.visible{opacity:1;transform:translateY(0)}[hidden]{display:none!important}@keyframes heroFloat{from{transform:scale(1)}to{transform:scale(1.055)}}@keyframes appear{from{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes hint{0%,100%{opacity:.3;transform:scaleY(.65)}50%{opacity:1;transform:scaleY(1)}}@media(max-width:760px){.hero{height:95svh;min-height:650px}.hero-bg{background-position:center bottom}.hero-content{padding-bottom:70px}.hero h1{font-size:clamp(68px,16vw,112px);margin:34px 0}.hero-intro{margin-top:19px}.hero-date{letter-spacing:.12em;font-size:12px}.hero-place{font-size:11px}.hero-copy{font-size:21px;max-width:300px;margin:28px auto}.section-pad{padding:85px 22px}h2{font-size:clamp(62px,13vw,91px)}.small-divider{margin:33px auto}.invitation-text{font-size:22px}.family-name{font-size:clamp(47px,12vw,78px)}.interlude{height:355px;background-position:center bottom}.day{grid-template-columns:1fr;gap:20px;padding:42px 0}.day-date{text-align:left;display:flex;align-items:center;gap:12px}.day-date .number{font-size:66px}.day-date .month,.day-date .weekday{margin:0}.day-date .weekday{margin-left:auto}.day-content h3{font-size:43px;margin-top:12px}.rsvp-layout{grid-template-columns:1fr;gap:35px}.rsvp-intro{text-align:center}.rsvp-intro h2{font-size:80px}.rsvp-intro .venue-line{margin-top:25px}.shell-mark{display:none}.rsvp-form-wrap{padding:35px 24px}.choice{font-size:18px;margin-right:10px}.quote-panel p{font-size:45px}}@media(max-width:380px){.hero h1{font-size:62px}.blessing{font-size:18px}.rsvp-form-wrap{padding:30px 18px}.choice{display:flex}.rsvp-intro h2{font-size:64px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.hero-bg,.hero-content,.scroll-line{animation:none}.reveal{opacity:1;transform:none;transition:none}}
