:root{--paper:#faf7f0;--ivory:#fffcf7;--cream:#eee7de;--burgundy:#4e0317;--wine:#43071c;--forest:#626a2d;--sage:#a7a946;--olive:#8b8e23;--lime:#a7a946;--rose:#88263f;--dusty-rose:#9a606f;--blush:#efe1e2;--ink:#39222a;--sub:#65565a;--hair:rgba(78,3,23,.19);--serif:'Cormorant Garamond',Baskerville,Georgia,serif;--sans:'DM Sans',Arial,sans-serif}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--sans);-webkit-font-smoothing:antialiased}a{text-decoration:none;color:inherit}button,input,textarea,select{font:inherit}::selection{background:#a5ad93;color:#24131a}
body:before{content:"";position:fixed;inset:0;opacity:.10;pointer-events:none;z-index:100;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='.79' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.14'/%3E%3C/svg%3E")}
img{max-width:100%;display:block}h1,h2,h3,p{margin-top:0}h1,h2,h3{font-family:var(--serif);font-weight:400}.container{width:min(1220px,calc(100% - 52px));margin:auto}

.site-shell{padding:0 0 0}
.hero{position:relative;min-height:94svh;background-image:linear-gradient(180deg,rgba(12,10,10,.34) 0%,rgba(20,16,16,.18) 28%,rgba(22,18,18,.16) 54%,rgba(20,17,16,.36) 100%),url('assets/hero.webp');background-size:cover;background-position:center 58%;color:#fff;display:flex;flex-direction:column;justify-content:space-between;overflow:hidden}
.hero:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(0,0,0,.18) 0%,rgba(0,0,0,0) 24%,rgba(0,0,0,0) 76%,rgba(0,0,0,.16) 100%),linear-gradient(180deg,rgba(0,0,0,.22) 0%, transparent 22%, transparent 70%, rgba(0,0,0,.26) 100%);pointer-events:none}
.site-header{position:relative;z-index:2;display:flex;align-items:center;justify-content:space-between;padding:28px clamp(24px,5vw,60px) 0;gap:20px}
.brand{font-family:var(--serif);font-size:clamp(30px,3.5vw,46px);letter-spacing:-.03em;color:#fff}
.desktop-nav{display:flex;align-items:center;gap:clamp(16px,2.3vw,34px)}
.desktop-nav a{font-size:12px;letter-spacing:.16em;text-transform:uppercase;color:rgba(255,255,255,.92);font-weight:500}
.desktop-nav a:hover{opacity:.7}
.desktop-nav .nav-rsvp{padding:15px 28px;border:1px solid rgba(255,255,255,.9)}
.mobile-toggle{display:none;border:0;background:transparent;color:#fff;font-size:12px;text-transform:uppercase;letter-spacing:.12em;cursor:pointer}
.hero-inner{position:relative;z-index:2;padding:40px 0 84px;display:flex;justify-content:center;align-items:center;flex:1}
.hero-card{text-align:center;padding:40px 30px 20px;max-width:880px}
.hero-kicker{font-size:12px;letter-spacing:.24em;text-transform:uppercase;color:rgba(255,255,255,.88);margin-bottom:28px}
.hero h1{font-size:clamp(76px,10vw,128px);line-height:.88;letter-spacing:-.045em;margin:0 0 18px;color:#fff;text-shadow:0 2px 18px rgba(0,0,0,.12)}
.hero-sub{font-family:var(--serif);font-size:clamp(26px,3vw,38px);margin:0 0 26px;color:rgba(255,255,255,.96)}
.hero-meta{display:flex;align-items:center;justify-content:center;gap:14px;flex-wrap:wrap;font-size:13px;letter-spacing:.19em;text-transform:uppercase;color:rgba(255,255,255,.88)}
.hero-meta .divider{width:32px;height:1px;background:rgba(255,255,255,.55)}
.hero-actions{margin-top:34px;display:flex;justify-content:center;gap:16px;flex-wrap:wrap}
.hero-btn{padding:16px 30px;border:1px solid rgba(255,255,255,.9);font-size:11px;letter-spacing:.18em;text-transform:uppercase;font-weight:600;transition:.22s}
.hero-btn.fill{background:#fff;color:var(--burgundy)}
.hero-btn:not(.fill):hover{background:rgba(255,255,255,.12)}
.hero-btn.fill:hover{background:#f4efe7}
.hero-bottom-note{position:relative;z-index:2;display:flex;justify-content:space-between;align-items:end;padding:0 clamp(24px,5vw,60px) 32px;gap:20px;color:rgba(255,255,255,.84)}
.bottom-left{font-size:12px;letter-spacing:.18em;text-transform:uppercase}
.bottom-right{font-family:var(--serif);font-size:24px}
.eyebrow{display:flex;align-items:center;gap:17px;font-size:10px;letter-spacing:.27em;text-transform:uppercase;font-weight:600}
.eyebrow:before{content:"";display:block;width:33px;height:1px;background:currentColor;opacity:.55}.eyebrow.center{justify-content:center}.eyebrow.center:after{content:"";width:33px;height:1px;background:currentColor;opacity:.55}
.sec-head{text-align:center}.sec-head h2{font-size:clamp(56px,7vw,92px);letter-spacing:-.048em;line-height:.9;margin:15px 0 21px;font-weight:400}.sec-head .eyebrow{color:var(--forest)}.sec-head .lead{font-family:var(--serif);font-size:25px;line-height:1.25;color:var(--sub)}

.welcome{position:relative;background:var(--forest);color:var(--paper);text-align:center;padding:104px 24px 72px;overflow:hidden}
.welcome:before,.welcome:after{content:"";width:350px;height:350px;position:absolute;border:1px solid rgba(255,255,255,.14);border-radius:50%;transform:scaleX(.5)}.welcome:before{top:-220px;left:-140px}.welcome:after{bottom:-250px;right:-130px}
.welcome-inner{max-width:700px;margin:auto;position:relative;z-index:1}.welcome .eyebrow{justify-content:center;color:#d4d9c8}.welcome .eyebrow:after{content:"";width:33px;height:1px;background:currentColor;opacity:.5}
.welcome p{font-family:var(--serif);font-size:28px;line-height:1.35;max-width:560px;margin:10px auto 0;color:#f0eee6}
.moments{background:var(--forest);padding:0 0 96px}
.moment-grid{width:min(1160px, calc(100% - 42px)); margin:0 auto; display:grid; grid-template-columns:repeat(3,1fr); gap:22px; align-items:start}
.moment{position:relative;overflow:hidden;background:#dcd6c8}
.moment img{width:100%;height:100%;object-fit:cover}
.moment.large,.moment.medium,.moment.small{height:420px}.moment img{filter:grayscale(1) contrast(1.02)}

.day{padding:125px 0 139px;background:var(--paper)}.day .sec-head{margin-bottom:86px}.facts{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid var(--hair);border-bottom:1px solid var(--hair)}.fact{text-align:center;padding:46px 42px 44px;border-right:1px solid var(--hair)}.fact:last-child{border-right:0}.fact-icon{display:flex;align-items:center;justify-content:center;gap:10px;margin-bottom:16px;color:var(--forest)}.fact-icon:before,.fact-icon:after{content:'';width:24px;height:1px;background:currentColor;opacity:.45}.fact-icon i{display:block;width:11px;height:11px;border:1px solid currentColor;transform:rotate(45deg);opacity:.8}.fact h3{font-size:41px;line-height:.95;color:var(--burgundy);margin:0 0 12px}.big-data{font-family:var(--serif);font-size:46px;letter-spacing:-.03em;color:var(--ink);margin-bottom:12px}.fact p{font-size:13px;line-height:1.8;color:var(--sub);margin:0 auto;max-width:280px}.fact small{display:block;margin-top:12px;font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:#857977}

.timeline{background:var(--wine);color:var(--paper);padding:126px 0 145px;position:relative;overflow:hidden}.timeline .sec-head{position:relative;margin-bottom:84px}.timeline .eyebrow{color:#c6cbb4}.timeline .sec-head h2{color:#fff8ee}.timeline .sec-head .lead{color:#e7d6d4}.timeline-layout{width:min(975px,100%);margin:0 auto;position:relative}.date-tag{display:flex;align-items:center;gap:21px;color:#c7d0b8;letter-spacing:.2em;text-transform:uppercase;font-size:11px;font-weight:600;margin-bottom:22px}.date-tag span{height:1px;background:rgba(236,231,219,.23);flex:1}.timeline-list{position:relative}.timeline-list:before{content:"";position:absolute;left:27.5%;top:0;bottom:0;width:1px;background:linear-gradient(180deg,transparent,#b3bba5 8%,#b3bba5 91%,transparent)}.event{display:grid;grid-template-columns:27.5% 72.5%;min-height:155px;align-items:start}.event-time{font-family:var(--serif);font-size:40px;text-align:right;padding:15px 50px 0 0;line-height:1;color:#e1e4d5}.event-copy{position:relative;padding:13px 0 33px 65px;border-bottom:1px solid rgba(255,255,255,.115)}.event-copy:before{content:"";display:block;position:absolute;left:0;top:27px;width:10px;height:10px;background:#bcc6ae;border:4px solid var(--wine);box-shadow:0 0 0 1px #bcc6ae;border-radius:50%;transform:translateX(-50%)}.event-kicker{font-size:10px;letter-spacing:.22em;color:#b9c5b0;text-transform:uppercase;margin-bottom:8px;font-weight:600}.event-title{font-size:clamp(32px,3.3vw,47px);letter-spacing:-.02em;color:#fffaf1;line-height:1;margin:0 0 6px}.event-desc{font-size:12px;color:#d8c8c7;line-height:1.75;max-width:520px;margin:0}.event:last-child .event-copy{border-bottom:0}.timeline .sunday{margin-top:45px}.timeline .timelinenote{text-align:center;margin:42px 0 0;font-family:var(--serif);font-style:italic;color:#c9d1bf;font-size:23px}

.travel{background:#f8f6ee;padding:135px 0}.travel .sec-head{margin-bottom:83px}.routes{border-top:1px solid var(--hair)}.route{display:grid;grid-template-columns:minmax(200px,300px) 1fr;column-gap:27px;align-items:center;padding:34px 0;border-bottom:1px solid var(--hair)}.route h3{font-size:34px;line-height:1.05;letter-spacing:-.03em;color:var(--burgundy);margin:0}.route p{font-size:13px;line-height:1.9;max-width:520px;color:var(--sub);margin:0}.travel-note{margin:45px auto 0;max-width:750px;text-align:center;font-family:var(--serif);font-size:26px;font-style:italic;color:var(--forest)}
.stay{background:#e6e9de;padding:112px 0 128px}.stay .sec-head{margin-bottom:70px}.stay-icon{display:flex;justify-content:center;align-items:center;margin:0 auto 16px;width:52px;height:52px;border:1px solid rgba(69,82,63,.36);border-radius:50%;color:var(--forest)}.stay-icon svg{width:22px;height:22px;display:block}.stay .sec-head .lead{color:#5d6958}.hotels{display:grid;grid-template-columns:1fr 1fr;column-gap:60px}.hotel{padding:26px 0;display:flex;align-items:baseline;justify-content:space-between;gap:20px;border-top:1px solid rgba(69,82,63,.25)}.hotel:nth-last-child(-n+2){border-bottom:1px solid rgba(69,82,63,.25)}.hotel h3{font-family:var(--serif);color:var(--forest);font-size:33px;line-height:1;margin:0}.hotel span{font-size:9px;text-transform:uppercase;letter-spacing:.2em;color:#62705b;white-space:nowrap}.stay-bottom{text-align:center;margin-top:45px;font-size:12px;line-height:1.9;color:#5f6a5d}
.rsvp{background:var(--burgundy);padding:130px 0 135px;overflow:hidden}.rsvp-layout{display:grid;grid-template-columns:40% 60%;align-items:center}.rsvp-intro{padding:45px 65px 45px 0;color:var(--paper)}.rsvp-intro .eyebrow{color:#bfc6a9}.rsvp-intro h2{font-size:clamp(78px,8vw,129px);letter-spacing:-.06em;line-height:.8;margin:37px 0 28px}.rsvp-intro p{font-family:var(--serif);font-size:27px;line-height:1.24;color:#e4d8d4;max-width:330px}.rsvp-panel{background:var(--paper);padding:clamp(38px,5vw,71px);box-shadow:14px 14px 0 rgba(20,9,13,.17)}.panel-top{display:flex;align-items:center;gap:17px;color:var(--forest);font-size:10px;letter-spacing:.22em;text-transform:uppercase;margin-bottom:35px}.panel-top:after{content:"";height:1px;flex:1;background:var(--hair)}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:23px}.field{min-width:0}.field.wide{grid-column:1/-1}.field label{display:block;font-size:10px;text-transform:uppercase;letter-spacing:.16em;color:var(--burgundy);margin-bottom:9px;font-weight:600}.field input,.field select,.field textarea{width:100%;background:#f9f7f2;border:1px solid #ded8cd;padding:15px 16px;color:var(--ink)}.field textarea{resize:vertical;min-height:100px}.field input::placeholder,.field textarea::placeholder{color:#a59b95}.rsvp-submit-button{width:100%;background:var(--forest);color:#fff;border:0;padding:19px;text-transform:uppercase;letter-spacing:.21em;font-size:11px;font-weight:600;margin-top:28px;transition:background .2s}.rsvp-submit-button:hover{background:#354130}.form-notice{display:none;font-size:12px;line-height:1.6;color:var(--forest);margin:12px 0 0;text-align:center}.form-notice.visible{display:block}
.footer{background:#260914;color:#e5d7cf;padding:62px clamp(30px,7vw,100px) 44px;text-align:center}.footer .end-script{font-family:var(--serif);font-size:54px;letter-spacing:-.03em;margin-bottom:17px}.footer .footer-meta{font-size:10px;letter-spacing:.24em;text-transform:uppercase;color:#c5bbad}.footer .footer-line{height:1px;background:rgba(255,255,255,.15);margin:43px 0 25px}.footer .footer-small{font-size:10px;color:#b9a8a9;letter-spacing:.08em}

@media(max-width:1100px){.hero{min-height:88svh}.hero h1{font-size:clamp(68px,9vw,108px)}.moment-grid{grid-template-columns:1fr 1fr;}.moment.small{grid-column:1/-1;height:360px}.route{grid-template-columns:220px 1fr}}
@media(max-width:800px){.site-header{padding:20px 20px 0}.brand{font-size:30px}.desktop-nav{display:none;position:absolute;top:70px;left:0;right:0;flex-direction:column;background:rgba(33,18,22,.78);backdrop-filter:blur(12px);gap:0;padding:16px 24px 28px}.desktop-nav.open{display:flex}.desktop-nav a{width:100%;text-align:center;padding:15px}.mobile-toggle{display:block}.hero{min-height:82svh;background-position:center center}.hero-inner{padding:28px 0 58px}.hero-card{padding:34px 20px 18px}.hero h1{font-size:clamp(58px,14vw,84px)}.hero-sub{font-size:25px}.hero-meta{font-size:10px;gap:10px}.hero-meta .divider{width:18px}.hero-actions{gap:12px}.hero-btn{width:100%;max-width:240px}.hero-bottom-note{padding:0 20px 20px;flex-direction:column;align-items:flex-start;gap:8px}.container{width:calc(100% - 36px)}.welcome{padding:82px 22px 60px}.welcome h2{font-size:72px}.welcome p{font-size:23px}.moments{padding-bottom:74px}.moment-grid{grid-template-columns:1fr;gap:16px;width:calc(100% - 30px)}.moment.large,.moment.medium,.moment.small{height:320px}.day,.travel{padding:95px 0}.day .sec-head,.travel .sec-head{margin-bottom:65px}.facts{grid-template-columns:1fr}.fact{border-right:0;border-bottom:1px solid var(--hair)}.fact:last-child{border-bottom:0}.timeline{padding:96px 0 112px}.timeline:before{font-size:280px;top:-.10em;right:-.05em}.timeline .sec-head{margin-bottom:58px}.timeline-list:before{left:0}.event{grid-template-columns:1fr;gap:14px;min-height:0;padding-left:25px}.event-time{text-align:left;padding:0 0 0 18px;font-size:32px}.event-copy{padding:0 0 30px 18px}.event-copy:before{left:0;top:8px}.date-tag{margin-bottom:18px}.timeline .sunday{margin-top:26px}.route{grid-template-columns:1fr;gap:12px}.route h3{font-size:30px}.hotels{grid-template-columns:1fr}.hotel:nth-last-child(-n+2){border-bottom:0}.hotel:last-child{border-bottom:1px solid rgba(69,82,63,.25)}.rsvp{padding:92px 0}.rsvp-layout{grid-template-columns:1fr}.rsvp-intro{padding:0 0 36px}.rsvp-intro p{max-width:none}.form-grid{grid-template-columns:1fr}}

/* === V5: sticky invitation rail, stronger date, bespoke sections === */
html { scroll-padding-top: 92px; }
#top, section[id] { scroll-margin-top: 92px; }
.site-header {
  position:sticky; top:0; z-index:90;
  min-height:80px; padding:9px clamp(24px,5vw,74px);
  background:#411020; color:#f7f4ec;
  border-top:3px solid #9ca78e;
  border-bottom:1px solid rgba(245,239,225,.22);
  box-shadow:0 7px 24px rgba(32,16,22,.16);
  isolation:isolate;
}
.site-header:after {content:"";height:1px;position:absolute;bottom:5px;left:clamp(24px,5vw,74px);right:clamp(24px,5vw,74px);background:rgba(247,244,236,.10);pointer-events:none}
.brand { color:#f9f4e9; font-size:clamp(27px,2.55vw,37px); letter-spacing:-.03em; white-space:nowrap; }
.desktop-nav { gap:clamp(16px,2.3vw,36px); }
.desktop-nav a {color:#f5efe8; font-size:10px; letter-spacing:.16em; transition:color .2s ease, opacity .2s ease;}
.desktop-nav a:not(.nav-rsvp):hover {color:#d4dcc6;opacity:1}
.desktop-nav .nav-rsvp {background:#aeb89c;border:1px solid #aeb89c;color:#291521;padding:13px 29px;}
.desktop-nav .nav-rsvp:hover {background:#f7f4ec;border-color:#f7f4ec;color:#37121f;opacity:1}
.mobile-toggle { color:#fff7ed; }
.hero { min-height:calc(96svh - 80px); background-position:center 54%; }
.hero h1 {font-size:clamp(78px,9vw,124px);margin:0 0 28px;line-height:.9;}
.hero-card {padding:42px 20px 40px; max-width:1100px;}
.hero-date {display:flex;align-items:baseline;justify-content:center;gap:clamp(8px,1.6vw,23px);margin:0 auto 13px;color:#fff;text-shadow:0 3px 21px rgba(0,0,0,.3);}
.hero-date-day {font-family:var(--serif);font-size:clamp(85px,9vw,134px);font-weight:500;line-height:.8;letter-spacing:-.03em}
.hero-date-month {font-family:var(--serif);font-size:clamp(47px,5.7vw,79px);font-weight:400;line-height:.9;letter-spacing:-.045em}
.hero-date-year {font-family:var(--serif);font-size:clamp(35px,4.5vw,64px);font-weight:400;line-height:.85;letter-spacing:-.01em}
.hero-date-ornament {display:block;width:34px;height:1px;background:rgba(255,255,255,.8);align-self:center}
.hero-meta {letter-spacing:.24em; font-size:11px;color:#fff;font-weight:600;text-shadow:0 2px 10px rgba(0,0,0,.4)}
.hero-actions {margin-top:37px}
.hero-btn {background:rgba(39,21,24,.10);backdrop-filter:blur(3px)}
.hero-btn.fill {background:#f8f4e9;color:#3b1121}
.hero:after {background:linear-gradient(180deg,rgba(0,0,0,.08) 0%,transparent 35%,rgba(0,0,0,.22) 100%)}
.moment { margin:0; }
.timeline:before {content:none !important;display:none !important}
.travel-icon {display:flex;justify-content:center;align-items:center;margin:0 auto 16px;width:52px;height:52px;border:1px solid rgba(69,82,63,.36);border-radius:50%;color:var(--forest)}
.travel-icon svg {width:22px;height:22px;display:block}
.personal-note {display:grid;grid-template-columns:48% 52%;background:#e8e8dd;min-height:535px;overflow:hidden}
.personal-photo {margin:0;position:relative;min-height:535px;}
.personal-photo img {width:100%;height:100%;position:absolute;inset:0;object-fit:cover;object-position:center 21%;}
.personal-text {display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:60px 8%;color:#4a1222;}
.personal-mark {font-family:var(--serif);font-size:clamp(43px,5vw,72px);letter-spacing:-.06em;}
.personal-divider {width:64px;height:1px;background:rgba(74,18,34,.36);margin:26px 0 37px}
.personal-text p {font-family:var(--serif);font-size:clamp(35px,4vw,55px);line-height:1.05;max-width:420px;margin:0 0 31px;}
.personal-text>span {font-size:10px;letter-spacing:.2em;text-transform:uppercase;color:#586449;font-weight:600;line-height:2}
.footer-contact-title {font-family:var(--serif);font-size:24px;margin:29px 0 17px;color:#eae0d4;}
.footer-contacts {display:flex;align-items:center;justify-content:center;gap:35px;flex-wrap:wrap;margin-bottom:43px}
.footer-contacts a {display:flex;gap:11px;align-items:center;font-family:var(--serif);font-size:23px;line-height:1.3;transition:color .2s}
.footer-contacts a:hover {color:#bdc8ac}
.footer-contacts a span:first-child {color:#c1cbad;font-style:italic}
.footer-contact-divider {width:1px;height:25px;background:rgba(255,255,255,.28)}
.footer-small {text-transform:none;letter-spacing:.13em;font-size:11px}
@media (max-width:1100px) {
 .site-header {min-height:76px;padding:8px 24px;}
 .desktop-nav {gap:19px}
 .desktop-nav a {font-size:9px;letter-spacing:.1em}
 .brand {font-size:28px}
 .hero {min-height:calc(90svh - 76px)}
}
@media (max-width:800px) {
 html {scroll-padding-top:76px}
 #top,section[id] {scroll-margin-top:76px}
 .site-header {min-height:76px;padding:13px 21px;}
 .site-header:after {left:21px;right:21px}
 .brand {font-size:29px}
 .desktop-nav {display:none;position:absolute;top:calc(100% + 1px);left:0;right:0;background:#411020;box-shadow:0 15px 30px rgba(0,0,0,.24);backdrop-filter:none;padding:11px 24px 23px;gap:0}
 .desktop-nav.open {display:flex}
 .desktop-nav a {font-size:12px;letter-spacing:.12em;color:white}
 .desktop-nav .nav-rsvp {text-align:center;margin:11px auto 0;max-width:250px;}
 .mobile-toggle {display:block}
 .hero {min-height:calc(83svh - 76px);background-position:50% center}
 .hero-inner {padding:48px 10px 35px}
 .hero-card {padding:22px 8px 40px}
 .hero h1 {font-size:clamp(52px,10vw,82px);line-height:.95;margin-bottom:22px}
 .hero-date {gap:9px;margin-bottom:16px}
 .hero-date-day {font-size:clamp(62px,13vw,90px)}
 .hero-date-month {font-size:clamp(35px,8.4vw,57px)}
 .hero-date-year {font-size:clamp(29px,6vw,45px)}
 .hero-date-ornament {width:14px;}
 .hero-meta {font-size:10px;letter-spacing:.12em;gap:12px;}
 .hero-actions {margin-top:28px;gap:12px}
 .hero-btn {max-width:240px}
 .personal-note {grid-template-columns:1fr;}
 .personal-photo {min-height:510px;} .personal-photo img {object-position:center 27%;}
 .personal-text {padding:62px 26px 72px;}
 .personal-text p {font-size:45px}
 .footer-contact-title {margin-top:28px}
 .footer-contacts {gap:17px;flex-direction:column;margin-bottom:37px}
 .footer-contacts a {font-size:23px;gap:13px}
 .footer-contact-divider {width:50px;height:1px;}
}
@media(max-width:420px) {
 .brand {font-size:25px}
 .hero h1 {font-size:clamp(48px,10.5vw,64px)}
 .hero-date-day {font-size:66px}
 .hero-date-month {font-size:39px}
 .hero-date-year {font-size:32px}
 .hero-meta {font-size:9px}
 .personal-photo {min-height:440px}
}
@media(prefers-reduced-motion:reduce) {html {scroll-behavior:auto} .desktop-nav a,.hero-btn,.footer-contacts a {transition:none}}


/* V6 — simplified contact footer and finished RSVP presentation */
.footer{padding:58px clamp(26px,7vw,100px) 43px}
.footer-contacts{margin:0 auto 29px;gap:28px}
.footer .footer-line{max-width:560px;margin:0 auto 25px;background:rgba(255,255,255,.19)}
.footer .footer-meta{font-size:11px;letter-spacing:.2em;color:#d1c7c0}
.travel-icon svg{width:24px;height:24px}
@media(max-width:580px){
 .footer{padding:46px 20px 37px}
 .footer-contacts{gap:13px;margin-bottom:25px}
 .footer-contacts a{font-size:19px;gap:6px}
 .footer-contact-divider{height:20px}
 .footer .footer-meta{font-size:10px;letter-spacing:.1em;line-height:1.6}
}

/* V7 — photo-first mobile refinements. Desktop layout intentionally unchanged. */
@media (max-width:800px) {
  /* Larger bottom breathing room shifts the invitation/CTAs up without
     overlapping the sticky rail on small-height mobile viewports. */
  .hero-inner { padding:24px 10px 190px; }
  .hero-card { padding:22px 8px 20px; }
  /* Show the entire portrait photograph in the central gallery position. */
  .moment.medium { height:auto; overflow:visible; }
  .moment.medium img { width:100%; height:auto; object-fit:contain; object-position:center; }
}
@media (max-width:420px) {
  .hero-inner { padding:24px 10px 148px; }
}

/* V8 · colours sampled from the couple's botanical wedding moodboard.
   Oxblood #4e0317 · wine #88263f · chartreuse #a7a946
   olive #8b8e23 · dusty rose #9a606f · ivory #faf7f0 */
:root {color-scheme:light}
::selection {background:#a7a946;color:#35071a}
.site-header {background:#4e0317;border-top:3px solid #a7a946;border-bottom:1px solid rgba(255,252,247,.25);box-shadow:0 8px 22px rgba(55,6,24,.19)}
.site-header:after {background:rgba(250,247,240,.16)}
.brand,.desktop-nav a {color:#fff9f3}
.desktop-nav a:not(.nav-rsvp):hover {color:#e4e2a4}
.desktop-nav .nav-rsvp {background:#a7a946;border-color:#a7a946;color:#380818}
.desktop-nav .nav-rsvp:hover {background:#e4dfa9;border-color:#e4dfa9;color:#380818}
.hero-btn.fill {background:#faf7f0;color:#4e0317}
.hero-btn.fill:hover {background:#e5e4b2}
.welcome {background:#626a2d;color:#faf7f0}
.welcome .eyebrow {color:#e3e5b6}
.welcome p {color:#fffcf5}
.moments {background:#626a2d}
.day {background:#faf7f0}
.day .sec-head .eyebrow,.fact-icon {color:#777b23}
.fact h3 {color:#750d2d}
.fact small {color:#75636a}
.timeline {background:#4e0317}
.timeline .sec-head .lead {color:#e6cdd1}
.timeline .date-tag,.timeline .event-kicker {color:#d9d78d}
.timeline .timeline-list:before {background:linear-gradient(180deg,transparent,#b3b455 8%,#b3b455 91%,transparent)}
.event-time {color:#ece6bf}
.event-copy:before {background:#b5b656;border-color:#4e0317;box-shadow:0 0 0 1px #d8d78b}
.event-desc {color:#eddadd}
.timeline .timelinenote {color:#dedb9e}
.travel {background:#fbf8f3}
.travel-icon {color:#7e1735;border-color:rgba(126,23,53,.35)}
.travel .sec-head h2,.travel .route h3 {color:#650c29}
.travel-note {color:#626a2d}
.stay {background:#efe1e2}
.stay-icon {color:#7b1837;border-color:rgba(123,24,55,.38)}
.stay .sec-head h2,.hotel h3 {color:#6c0d2e}
.stay .sec-head .lead,.stay-bottom,.hotel span {color:#624c57}
.hotel {border-color:rgba(111,32,58,.2)}
.personal-note {background:#a7a946}
.personal-text {color:#4e0317}
.personal-mark,.personal-text p {color:#4e0317}
.personal-divider {background:rgba(78,3,23,.5)}
.personal-text>span {color:#482a21}
.rsvp {background:#88263f}
.rsvp-intro .eyebrow {color:#e8e0aa}
.rsvp-intro p {color:#f5e7e5}
.rsvp-panel {background:#fffcf7;box-shadow:14px 14px 0 rgba(67,7,28,.2)}
.panel-top {color:#626a2d}
.field label {color:#5f0823}
.field input,.field select,.field textarea {background:#fffcf7;border-color:#d9c8c6}
.field input:focus,.field select:focus,.field textarea:focus {outline:2px solid #888f35;outline-offset:2px}
.rsvp-submit-button,.rsvp-preview-button {background:#626a2d;color:#fffdf7}
.rsvp-submit-button:hover,.rsvp-preview-button:hover {background:#4d5622}
.footer {background:#390819;color:#f4e5dd}
.footer-contacts a span:first-child {color:#dedb9e}
.footer-contacts a:hover {color:#e4e5ad}
.footer .footer-meta {color:#f0ddd9}
@media(max-width:800px) {
  .desktop-nav {background:#4e0317}
  .desktop-nav .nav-rsvp {color:#380818}
}


/* V9 · brighter lime refinement and unified RSVP CTA treatment */
:root{--pf-lime:#b2b53d;--pf-lime-soft:#dfe3a2;--pf-lime-deep:#7f8425;--pf-burgundy:#4e0317;}
::selection{background:var(--pf-lime);color:#35071a}
.site-header{border-top-color:var(--pf-lime)}
.desktop-nav a:not(.nav-rsvp):hover{color:var(--pf-lime-soft)}
.desktop-nav .nav-rsvp{background:var(--pf-lime);border-color:var(--pf-lime);color:#380818}
.desktop-nav .nav-rsvp:hover{background:var(--pf-lime-soft);border-color:var(--pf-lime-soft);color:#380818}
.welcome{background:var(--pf-lime-deep)}
.welcome .eyebrow{color:var(--pf-lime-soft)}
.moments{background:var(--pf-lime-deep)}
.day .sec-head .eyebrow,.fact-icon{color:var(--pf-lime-deep)}
.timeline .date-tag,.timeline .event-kicker,.timeline .timelinenote{color:var(--pf-lime-soft)}
.timeline .timeline-list:before{background:linear-gradient(180deg,transparent,var(--pf-lime) 8%,var(--pf-lime) 91%,transparent)}
.event-copy:before{background:var(--pf-lime);border-color:var(--pf-burgundy);box-shadow:0 0 0 1px var(--pf-lime-soft)}
.travel-note{color:var(--pf-lime-deep)}
.personal-note{background:var(--pf-lime)}
.rsvp-intro .eyebrow{color:var(--pf-lime-soft)}
/* All RSVP CTAs in matching lime */
.hero-btn.fill, .desktop-nav .nav-rsvp, .rsvp-submit-button, .rsvp-preview-button{background:var(--pf-lime);border-color:var(--pf-lime);color:#3b1121}
.hero-btn.fill:hover, .desktop-nav .nav-rsvp:hover, .rsvp-submit-button:hover, .rsvp-preview-button:hover{background:var(--pf-lime-soft);border-color:var(--pf-lime-soft);color:#3b1121}
/* ensure outline CTA remains distinct */
.hero-btn:not(.fill){background:rgba(39,21,24,.10);color:#fff}
.footer-contacts a span:first-child,.footer-contacts a:hover{color:var(--pf-lime-soft)}
@media(max-width:800px){
  .desktop-nav{background:#4e0317}
  /* Mobile gallery order: city, forest, then dressed-up portrait with full face visibility */
  .city-photo{order:1}
  .forest-photo{order:2}
  .dressed-photo{order:3}
  .moment-grid{display:flex;flex-direction:column}
  .moment.medium{height:auto;overflow:visible}
  .moment.medium img{width:100%;height:auto;object-fit:contain;object-position:center top}
}
