:root{--maroon:#290713;--maroon-light:#431022;--maroon-deep:#1d0610;--ivory:#fbf7ef;--cream:#f4eddf;--gold:#c4a373;--ink:#332c2b;--muted:#706560}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:88px}body{margin:0;background:var(--ivory);color:var(--ink);font:15px/1.8 'DM Sans',sans-serif}a{color:inherit}button{font:inherit}h1,h2,h3,p{margin-top:0}h1,h2,h3{font-family:'Cormorant Garamond',Georgia,serif;font-weight:500;line-height:1.08}h2{font-size:clamp(43px,5vw,70px);margin-bottom:22px}h3{font-size:34px;margin-bottom:13px}.skip{position:absolute;top:-100px;left:10px;background:white;padding:8px;z-index:40}.skip:focus{top:10px}.header{position:sticky;top:0;z-index:30;display:flex;align-items:center;justify-content:space-between;gap:22px;min-height:78px;padding:12px clamp(20px,5vw,90px);background:rgba(251,247,239,.97);border-bottom:1px solid #e7dacb;backdrop-filter:blur(12px)}.brand{text-decoration:none;font:500 32px 'Cormorant Garamond',serif;white-space:nowrap;color:var(--maroon)}.brand span{font-size:12px;vertical-align:middle;color:#a68151}.header nav{display:flex;gap:clamp(11px,1.8vw,28px);align-items:center}.header nav a{text-decoration:none;text-transform:uppercase;font-size:10px;letter-spacing:.12em;font-weight:700;white-space:nowrap}.header nav a:hover,.header nav a:focus-visible{color:#9a633f}.header .nav-rsvp{border:1px solid var(--maroon);padding:8px 14px}.lang{display:flex;gap:8px;align-items:center;font-size:12px;color:var(--muted)}.lang button{background:none;border:0;padding:5px;cursor:pointer;color:var(--muted);font-weight:700}.lang button.selected{color:var(--maroon);text-decoration:underline;text-underline-offset:6px}.menu-button{display:none;border:0;background:none;color:var(--maroon);font-size:24px;cursor:pointer}.hero{background:radial-gradient(ellipse at 50% 35%,#511629 0%,var(--maroon) 55%,var(--maroon-deep) 100%);min-height:min(820px,calc(100svh - 78px));display:flex;flex-direction:column;justify-content:center;align-items:center;position:relative;color:#f9eee3;text-align:center;overflow:hidden;padding:95px 20px 85px}.hero:before,.hero:after{content:'';position:absolute;inset:25px;border:1px solid rgba(196,163,115,.32);pointer-events:none}.hero:after{inset:37px;border-color:rgba(196,163,115,.13)}.hero-inner{z-index:1;max-width:980px}.eyebrow{font-size:11px;letter-spacing:.26em;font-weight:700;color:#805a4a;text-transform:uppercase}.eyebrow.light{color:#ddc7a4}.gold-text{color:var(--gold)}.hero-rule{font-size:22px;color:var(--gold);margin:20px}.hero h1{font-size:clamp(78px,11vw,156px);letter-spacing:-.04em;margin:4px 0 18px}.hero h1 em{font-weight:400;color:var(--gold)}.hero-sub{letter-spacing:.22em;font-size:11px;font-weight:700}.hero-divider{height:1px;width:130px;background:var(--gold);margin:30px auto}.hero-date{font:500 clamp(21px,3vw,32px) 'Cormorant Garamond',serif;letter-spacing:.13em;margin-bottom:8px}.hero-place{font-size:13px;letter-spacing:.08em}.hero-place span{color:var(--gold);padding:0 7px}.outline-button{display:inline-flex;gap:18px;align-items:center;text-decoration:none;border:1px solid var(--gold);padding:12px 24px;color:#f6e8d3;margin-top:30px;font-size:12px;letter-spacing:.06em}.outline-button:hover{background:rgba(255,255,255,.1)}.hero-bottom{position:absolute;bottom:57px;color:var(--gold);font:20px 'Cormorant Garamond',serif}.section{padding:clamp(80px,10vw,140px) 24px}.section-wrap{max-width:1140px;margin:0 auto}.narrow{max-width:730px}.center{text-align:center}.ornament{color:#9b734f;font-size:30px;margin:10px 0 25px}.lead,.section-lead{font-size:17px;line-height:2;color:#655953}.script{font:italic 30px 'Cormorant Garamond',serif;color:#7b3041;margin-top:36px}.quote-band{background:var(--cream);text-align:center;padding:70px 20px;color:var(--maroon)}.quote-band p{font:italic 42px 'Cormorant Garamond',serif;margin-bottom:5px}.quote-band span{font-size:11px;letter-spacing:.2em;text-transform:uppercase}.split{display:grid;grid-template-columns:1fr 1fr;gap:clamp(40px,7vw,110px);align-items:center}.image-frame{border:1px solid #c7a677;padding:15px;position:relative;min-height:550px}.photo-placeholder{height:520px;background:linear-gradient(145deg,#eee0cb,#a47e77 48%,#39111f);display:flex;align-items:center;justify-content:center;flex-direction:column;color:#f8eee3;text-align:center}.photo-placeholder span{font:500 110px 'Cormorant Garamond',serif}.photo-placeholder i{font-size:65px;color:#e4c18c}.photo-placeholder small{font-size:12px;max-width:200px;line-height:1.7;letter-spacing:.06em}.frame-corner{position:absolute;right:-12px;bottom:-22px;font-size:48px;color:#ae8a58}.story-copy p:not(.eyebrow){color:#625752}.story-copy .note{font-style:italic;color:#926c58!important}.tiny-rule{width:60px;height:1px;background:#b49367;margin:24px 0}.details{background:#f1e8db}.section-lead{max-width:650px;margin:0 auto 55px}.event-grid{display:grid;grid-template-columns:1fr 1fr;gap:25px;max-width:900px;margin:0 auto}.event{background:var(--ivory);border:1px solid #d9c7b0;padding:50px 24px 42px;min-height:390px}.event-symbol{font:35px 'Cormorant Garamond',serif;color:#a78152;margin-bottom:15px}.event .eyebrow{font-size:10px}.event-venue{font-weight:700;color:var(--maroon);margin:15px 0 0}.event-time{font-style:italic;color:#75635b;margin:25px 0}.event a,.info-grid a{color:#702b3b;text-underline-offset:5px;font-size:13px}.event-note{color:#75635b;font-style:italic}.dress-note{font-size:12px;margin:35px auto 0;color:#74655c}.countdown{background:var(--maroon);color:white;padding-top:85px;padding-bottom:85px}.countdown-grid{display:flex;justify-content:center;gap:clamp(20px,6vw,85px);margin-top:22px}.countdown-grid div{display:flex;flex-direction:column}.countdown-grid strong{font:500 clamp(48px,7vw,86px) 'Cormorant Garamond',serif}.countdown-grid span{font-size:10px;letter-spacing:.2em;color:#ddc6b5}.travel .info-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:40px;text-align:left;margin-top:50px}.info-grid article{border-top:1px solid #c9b39a;padding-top:20px}.info-icon{color:#a47d52;font-size:27px}.info-grid h3{font-size:30px;margin:12px 0}.info-grid p{color:#6c6059}.faq{background:var(--cream)}.faq h2{margin-bottom:45px}.faq details{border-bottom:1px solid #d9cbbb;padding:18px 4px}.faq summary{cursor:pointer;font-weight:600;color:var(--maroon);list-style:none;display:flex;justify-content:space-between;gap:10px}.faq summary:after{content:'+';font-size:22px;line-height:1}.faq details[open] summary:after{content:'−'}.faq details p{color:#6c6059;margin:12px 28px 0 0}.registry{background:linear-gradient(130deg,#250711,#481324);color:#f8efe7}.registry h2{color:#f8efe7}.registry .lead{color:#e2d0c6}.light-ornament{color:var(--gold)}.rsvp-tag{display:inline-block;margin-top:22px;padding:14px 25px;border:1px solid #c4a373;color:var(--maroon);font-size:12px;letter-spacing:.1em;text-transform:uppercase}.small-note{font-size:12px;color:#82766e;margin-top:16px}footer{background:#1d0610;color:#eadbd1;text-align:center;padding:70px 20px}footer .footer-monogram{font:58px 'Cormorant Garamond',serif}footer .footer-monogram span{color:var(--gold)}footer p{font-size:11px;letter-spacing:.16em}footer .footer-love{font:italic 24px 'Cormorant Garamond',serif;letter-spacing:0;color:#cbb7ac}footer a{color:var(--gold);font-size:12px;text-underline-offset:5px}@media(max-width:930px){.header{flex-wrap:wrap;gap:10px}.menu-button{display:block;margin-left:auto}.header nav{display:none;order:5;width:100%;flex-direction:column;align-items:stretch;padding:12px 0}.header nav.open{display:flex}.header nav a{padding:8px}.lang{margin-left:6px}.split{grid-template-columns:1fr}.image-frame{max-width:550px;width:100%;margin:auto}.story-copy{max-width:650px;margin:auto}}@media(max-width:600px){.header{min-height:68px}.hero{min-height:660px;padding:80px 45px}.hero:before{inset:12px}.hero:after{inset:20px}.hero h1{font-size:clamp(58px,15vw,90px)}.hero-sub{font-size:9px}.hero-date{font-size:22px}.hero-place{font-size:12px}.hero-bottom{bottom:35px}.section{padding:78px 22px}h2{font-size:48px}.event-grid,.travel .info-grid{grid-template-columns:1fr}.event{min-height:auto}.image-frame{min-height:auto}.photo-placeholder{height:400px}.countdown-grid{gap:17px}.countdown-grid strong{font-size:48px}.countdown-grid span{font-size:8px}.quote-band p{font-size:33px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}

.calendar-link{margin:32px auto 0}.calendar-link a{display:inline-block;border:1px solid var(--maroon);padding:12px 20px;text-decoration:none;font-size:12px;letter-spacing:.06em;color:var(--maroon)}.calendar-link a:hover,.calendar-link a:focus-visible{background:var(--maroon);color:var(--ivory)}.reception-location{font-size:12px;color:#74655c;margin:12px 0}.event a{display:inline-block;margin-top:8px}.event a:focus-visible,.header a:focus-visible,.lang button:focus-visible,.menu-button:focus-visible{outline:3px solid var(--gold);outline-offset:4px}#countdown[hidden]{display:none}

/* Cross-platform icons: avoid emoji rendering on iOS. */
.event-symbol{height:55px;display:flex;align-items:center;justify-content:center;color:#a78152}
.event-svg{display:block;width:28px;height:39px;fill:currentColor}
.event-symbol.floral{font-family:Georgia,serif;font-variant-emoji:text}
.event a[href^="https://"],.info-grid a[href^="https://"],.outline-button{position:relative}
.event a[href^="https://"]::after,.info-grid a[href^="https://"]::after,.outline-button::after{content:"";display:inline-block;width:8px;height:8px;margin-left:9px;border-top:1.5px solid currentColor;border-right:1.5px solid currentColor;transform:rotate(45deg);vertical-align:2px}
/* Keep anchor destinations clear of the sticky mobile navigation. */
html{scroll-padding-top:115px}
section[id]{scroll-margin-top:115px}
@media(max-width:930px){.header{position:sticky;top:0}html{scroll-padding-top:120px}section[id]{scroll-margin-top:120px}}
@media(max-width:600px){.event-symbol{height:55px}.event-svg{width:26px;height:37px}.event{padding:44px 22px 38px}}

/* Fixed vector icons: never allow iOS to substitute color emoji. */
.info-icon{display:inline-flex;align-items:center;justify-content:flex-start;width:32px;height:36px;color:#a47d52;line-height:1}
.info-icon svg{width:29px;height:29px;display:block;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linejoin:round;stroke-linecap:round}
.info-icon svg path[d^="M27"]{fill:currentColor;stroke:none}
.floral-svg{display:block;width:32px;height:39px;margin:0 auto}
