:root{color-scheme:light;--paper:#f9f8f6;--ink:#363632;--olive:#858773;--muted:#666461;--serif:'Cormorant Garamond',Georgia,serif;--sans:'Lato',Arial,sans-serif;--script:'Great Vibes',cursive}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:110px}body{margin:0;background:var(--paper);color:var(--ink);font:20px/1.55 var(--sans)}a{color:inherit;text-decoration:none}button,input,textarea{font:inherit}button,a,input,textarea{ -webkit-tap-highlight-color:transparent}a:focus-visible,button:focus-visible,input:focus-visible,textarea:focus-visible{outline:2px solid var(--olive);outline-offset:5px}.skip{position:fixed;top:-100px;z-index:30;background:white;padding:12px}.skip:focus{top:0}.header{height:106px;position:fixed;inset:0 0 auto;z-index:20;display:flex;align-items:center;justify-content:space-between;padding:0 32px;color:white;transition:background .25s,color .25s,box-shadow .25s}.header.scrolled,.header.menu-open{background:rgba(255,255,255,.98);color:var(--ink);box-shadow:0 4px 18px #00000012}.monogram{font:48px/1 var(--script);padding-top:10px}.scrolled .monogram,.menu-open .monogram{color:var(--olive)}nav{display:flex;gap:48px}nav a,.nav-osa{font-size:16px;letter-spacing:3px;text-transform:uppercase}nav a{position:relative;padding:12px 0}nav a:after{content:'';position:absolute;bottom:4px;left:25%;right:25%;height:2px;background:var(--olive);transform:scaleX(0);transition:transform .2s}nav a:hover:after,nav a.active:after{transform:scaleX(1)}.nav-osa{border:1px solid currentColor;padding:9px 26px}.scrolled .nav-osa{color:var(--olive)}.menu-toggle{display:none}.hero{min-height:780px;height:100svh;position:relative;display:grid;place-items:center;text-align:center;color:white;background:linear-gradient(#282c2545,#35382866),url('assets/visby-ruin.webp') center 46%/cover}.hero-content{padding:115px 24px 95px}.eyebrow{font-size:19px;letter-spacing:2px;text-transform:uppercase;font-weight:400}.hero .eyebrow{letter-spacing:6px;margin:0 0 18px}.hero h1{font:clamp(80px,9.8vw,166px)/1.25 var(--script);font-weight:400;margin:0 0 35px;text-shadow:0 2px 20px #0002}.hero-details{font:500 33px/1.5 var(--serif);display:flex;justify-content:center;gap:25px;margin:0}.divider{font-weight:400;opacity:.75}.hero-button{display:inline-block;border:2px solid #ffffffbb;border-radius:40px;padding:12px 40px;margin-top:62px;text-transform:uppercase;letter-spacing:1px;font-size:20px;transition:background .2s}.hero-button:hover{background:#ffffff25}.scroll-cue{position:absolute;bottom:30px;font:44px/1 Arial;padding:10px}.countdown-section{text-align:center;padding:110px 24px 145px}.countdown-section .eyebrow{color:var(--muted);margin:0 0 16px}h2,h3,h4{font-family:var(--serif);font-weight:500}h2{font-size:64px;line-height:1.15;margin:0}#date-title{font-size:48px}.countdown{display:flex;justify-content:center;gap:40px;margin-top:60px}.countdown span{display:grid;place-items:center;width:130px;height:130px;background:white;border-radius:12px;box-shadow:0 1px 3px #00000008;color:var(--olive);font:48px var(--serif);font-variant-numeric:tabular-nums}.countdown p{text-transform:uppercase;color:var(--muted);font-size:18px;margin:10px 0 0}.section{max-width:1600px;margin:auto;padding:0 55px 110px}.sprig{height:70px;width:290px;margin:0 auto 95px;background:center/contain no-repeat url('assets/sprig.svg')}.section>h2{text-align:center;margin-bottom:64px}.story-grid{display:grid;grid-template-columns:1fr 1fr;gap:60px;align-items:center}.story-copy{color:var(--muted);font-size:20px;line-height:1.55}.story-copy p{margin:0 0 32px}.story-copy p:last-child{margin-bottom:0}.emphasis{font-weight:600;color:var(--ink)}.story-image{display:block;width:100%;height:650px;object-fit:cover;object-position:center 65%;border-radius:4px;box-shadow:0 6px 18px #0001}.journey{text-align:center;margin-top:90px}h3{font-size:40px;margin:0 0 30px}.milestones{display:grid;grid-template-columns:repeat(5,1fr);gap:40px;margin:85px auto 0;max-width:1240px}.milestones h4{font-size:30px;color:var(--olive);margin:0 0 10px}.milestones p{margin:0 0 9px;color:var(--muted)}.milestones small{display:block;font-size:17px;color:var(--muted);line-height:1.35}.practical{display:grid;grid-template-columns:repeat(3,1fr);gap:55px;padding-top:45px;border-top:1px solid #85877325}.practical h3{font-size:34px}.practical p{font-size:19px;color:var(--muted)}.practical>div{scroll-margin-top:130px}.rsvp{padding-top:30px}.rsvp>h2{margin-bottom:20px}.intro{text-align:center;font-size:23px;color:var(--muted);margin:0}.rsvp-date{text-align:center;color:var(--olive);font:italic 25px var(--serif);margin:24px 0 60px}form{max-width:900px;margin:auto}form label,legend{color:#747661;font-weight:500}form>label{display:block;margin:35px 0}.form-note{font-size:16px;color:var(--muted);border-left:2px solid #b6b7a7;padding-left:15px;margin-bottom:30px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:40px 32px}input:not([type=radio]),textarea{display:block;width:100%;border:1px solid #d5d4d0;border-radius:7px;background:white;color:var(--ink);padding:12px 16px;margin-top:10px;box-shadow:inset 0 1px 2px #00000005}input:not([type=radio]){height:54px}textarea{resize:vertical}fieldset{border:0;margin:42px 0;padding:0}legend{margin-bottom:10px}fieldset label{display:inline-flex;align-items:center;gap:8px;margin-right:25px}input[type=radio]{accent-color:var(--olive);width:20px;height:20px;margin:0}.submit{display:block;margin:40px auto 0;border:1px solid var(--olive);background:var(--olive);color:white;padding:13px 42px;font-size:16px;letter-spacing:2px;text-transform:uppercase;border-radius:2px}.submit:disabled{opacity:.65;cursor:not-allowed}footer{text-align:center;padding:50px 20px;background:#efeee9;color:var(--olive)}footer p{font-size:16px;margin:15px 0 0}footer p:last-child{font:italic 23px var(--serif)}
@media(min-width:1800px){.hero{background-position:center 43%}}@media(max-width:1000px){nav{gap:24px}nav a{font-size:13px;letter-spacing:2px}.header{padding:0 24px;height:90px}.section{padding-left:32px;padding-right:32px}.story-grid{gap:35px}.story-copy{font-size:20px}.story-image{height:570px}.milestones{gap:20px}.milestones h4{font-size:25px}.practical{gap:25px}.hero{min-height:700px}.hero h1{font-size:110px}}@media(max-width:700px){html{scroll-padding-top:80px}.header{height:78px;padding:0 20px}.monogram{font-size:38px}.nav-osa{font-size:12px;padding:8px 16px;letter-spacing:2px}.menu-toggle{display:block;background:none;border:0;color:inherit;margin-left:auto;margin-right:20px;font-size:15px;padding:10px 0}.menu-toggle span{margin-left:7px}nav{display:none;position:absolute;top:78px;left:0;right:0;background:white;padding:20px 28px 28px;box-shadow:0 12px 15px #0001;color:var(--ink)}.menu-open nav{display:flex;flex-direction:column;gap:8px}nav a{align-self:flex-start;font-size:14px}.hero{min-height:650px;height:100svh;background-position:center 48%}.hero-content{padding:100px 20px 70px;width:100%}.hero .eyebrow{font-size:12px;letter-spacing:3px;margin-bottom:30px}.hero h1{font-size:clamp(60px,14vw,100px);line-height:1.4;margin-bottom:24px}.hero-details{font-size:25px;flex-direction:column;gap:0}.divider{display:none}.hero-button{margin-top:36px;font-size:15px;padding:11px 32px}.countdown-section{padding:75px 16px 90px}.eyebrow{font-size:13px;letter-spacing:1.5px}#date-title{font-size:38px}.countdown{gap:12px;margin-top:36px}.countdown span{width:70px;height:78px;font-size:34px;border-radius:8px}.countdown p{font-size:12px}.section{padding:0 24px 75px}.sprig{width:210px;height:55px;margin-bottom:50px}h2{font-size:48px}.section>h2{margin-bottom:38px}.story-grid{grid-template-columns:1fr;gap:35px}.story-copy{font-size:17px}.story-copy p{margin-bottom:24px}.story-image{height:auto;aspect-ratio:4/5}.journey{margin-top:60px}h3{font-size:32px}.milestones{grid-template-columns:1fr 1fr;margin-top:40px;gap:35px 20px}.milestones h4{font-size:25px}.milestones p{font-size:17px}.milestones small{font-size:15px}.practical{grid-template-columns:1fr;padding-top:45px;gap:25px}.practical h3{margin-bottom:12px}.rsvp{padding-top:20px}.intro{font-size:19px}.rsvp-date{font-size:22px;margin-bottom:40px}.form-grid{grid-template-columns:1fr;gap:24px}form{font-size:18px}fieldset label{display:flex;margin-bottom:14px}.form-note{font-size:15px}.scroll-cue{bottom:18px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important}}

/* Full-width section backgrounds keep a quiet rhythm between the chapters. */
.countdown-section{background:#eeece5}
.story.section,.rsvp.section,.directions.section,.accommodation.section,.gifts.section,.schedule.section,.good-to-know.section{max-width:none;padding:100px max(55px,calc((100vw - 1490px)/2)) 110px}
.story.section{background:#faf9f7}
.rsvp.section{background:#fff}
.directions.section{background:#eeece5;color:var(--ink);text-align:center}
.accommodation.section{background:#7d8068;color:#fff;text-align:center}
.accommodation.section>h2{margin-bottom:25px}
.accommodation p{margin:0 auto;max-width:710px;font-size:clamp(19px,2vw,23px)}
.directions .eyebrow{margin:0 0 18px;color:var(--muted)}
.directions.section>h2{margin-bottom:25px}
.directions-intro{max-width:710px;margin:0 auto 18px;font-size:20px;line-height:1.6}
.venue-note{font-size:18px;margin:0 auto 44px;color:var(--muted)}
.map-frame{max-width:1200px;margin:0 auto;background:#eeece5;border:1px solid #85877340;border-radius:4px;overflow:hidden}
.map-frame iframe{display:block;width:100%;height:460px;border:0}
.map-link{display:inline-flex;align-items:center;gap:15px;margin-top:32px;padding:12px 24px;border:1px solid var(--olive);font-size:17px;letter-spacing:.5px}
.map-link:hover{background:#85877315}
.directions a:focus-visible{outline-color:var(--olive)}
@media(max-width:1000px){.story.section,.rsvp.section,.directions.section,.accommodation.section,.gifts.section,.schedule.section,.good-to-know.section{padding:80px 32px}}
@media(max-width:700px){.story.section,.rsvp.section,.directions.section,.accommodation.section,.gifts.section,.schedule.section,.good-to-know.section{padding:65px 24px 75px}.directions-intro{font-size:17px}.venue-note{font-size:16px;margin-bottom:30px}.map-frame iframe{height:340px}.map-link{font-size:15px;padding:12px 16px}}

.gifts.section{background:#7d8068;color:#fff;text-align:center}
.gifts.section>h2{margin-bottom:25px}
.gifts p{margin:0 auto;font-size:20px;color:inherit}
@media(max-width:700px){.gifts p{font-size:17px}}

.schedule.section{background:#fff;text-align:center}
.good-to-know.section{background:#faf9f7}
.schedule .eyebrow{margin:0 0 18px;color:var(--muted)}
.schedule.section>h2,.good-to-know.section>h2{margin-bottom:28px}
.section-lead,.weekend-note{font-size:20px;color:var(--muted);margin:0 auto;max-width:720px}
.schedule-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:32px;list-style:none;padding:0;margin:60px auto;max-width:1200px}
.schedule-grid li{border-top:1px solid #85877355;padding-top:28px}
.schedule-time{font-size:13px;text-transform:uppercase;letter-spacing:2px;color:var(--muted)}
.schedule-grid h3{font-size:36px;margin:14px 0}
.schedule-grid p,.info-grid p{font-size:20px;color:var(--muted);margin:0}
.weekend-note{font-size:17px}
.info-grid{display:grid;grid-template-columns:1fr 1fr;gap:44px 65px;max-width:1100px;margin:55px auto 0}
.info-grid h3{font-size:34px;margin:0 0 15px}
@media(max-width:700px){.schedule-grid{grid-template-columns:1fr 1fr;gap:28px 20px;margin:40px auto}.schedule-grid h3{font-size:30px}.section-lead,.schedule-grid p,.info-grid p{font-size:17px}.weekend-note{font-size:16px}.info-grid{grid-template-columns:1fr;gap:30px;margin-top:35px}.info-grid h3{font-size:30px}}

/* Soften only the image behind the invitation, with a gradual edge. */
.hero::before{
  content:"";
  position:absolute;
  inset:0;
  pointer-events:none;
  backdrop-filter:blur(1.5px);
  -webkit-backdrop-filter:blur(1.5px);
  mask-image:radial-gradient(ellipse 65% 55% at 50% 50%,#000 15%,#000b 48%,transparent 100%);
  -webkit-mask-image:radial-gradient(ellipse 65% 55% at 50% 50%,#000 15%,#000b 48%,transparent 100%);
}
.hero-content,.scroll-cue{z-index:1}
.hero-content{position:relative}

/* Updated invitation and practical details from the couple. */
.hero h1{margin-bottom:12px}
.save-the-date{display:table;margin:0 auto 30px;padding:8px 22px;border:1px solid #e9d6ac80;border-radius:2px;background:#25291fc9;color:#f5e1b8;font-size:18px;line-height:1.5;font-weight:700;letter-spacing:5px;text-transform:uppercase}
.schedule-grid .schedule-place{margin:0 0 10px;color:var(--ink);font-weight:700;font-size:18px}
.accommodation .accommodation-intro{font-size:20px;max-width:760px}
.accommodation .hotel-offer{font-size:18px;max-width:730px;margin:22px auto 0}
.hotel-grid{display:grid;grid-template-columns:repeat(3,1fr);list-style:none;padding:0;margin:55px auto 0;gap:40px;max-width:1200px}
.hotel-grid li{border-top:1px solid #ffffff60;padding-top:28px}
.hotel-grid h3{font-size:34px;margin:0 0 14px}
.accommodation .hotel-grid p{font-size:18px;max-width:260px}
.venues{display:grid;grid-template-columns:1fr 1fr;gap:50px;margin:45px auto;max-width:950px}
.venues h3{font-size:34px;margin:0 0 15px}
.venues p,.venues address{font-size:20px;margin:0;font-style:normal}
.venues>div>p:first-of-type{font-weight:700;margin-bottom:8px}
.venues .venue-detail{font-size:17px;margin:16px auto 0;color:var(--muted);max-width:400px}
.venue-link{display:inline-block;font-size:16px;text-decoration:underline;text-underline-offset:4px;margin-top:20px}
.gifts p{max-width:770px}
@media(max-width:1100px) and (min-width:701px){nav{gap:16px}nav a{font-size:12px;letter-spacing:1px}}
@media(max-width:700px){.save-the-date{font-size:14px;letter-spacing:3px;padding:7px 16px;margin-bottom:22px}.accommodation .accommodation-intro,.accommodation .hotel-offer,.accommodation .hotel-grid p,.venues p,.venues address{font-size:17px}.hotel-grid,.venues{grid-template-columns:1fr;gap:32px;margin-top:35px}.hotel-grid h3,.venues h3{font-size:30px}.schedule-grid .schedule-place{font-size:16px}.venues .venue-detail{font-size:16px}}
