@import url('https://fonts.googleapis.com/css2?family=Cormorant+Garamond:ital,wght@0,400;0,500;0,600;1,400;1,500&family=DM+Sans:wght@400;500;600&display=swap');

:root{--cream:#f4efe5;--ink:#45372b;--line:rgba(83,61,38,.25);--serif:'Cormorant Garamond',Georgia,serif;--sans:'DM Sans',Arial,sans-serif;color-scheme:light;font-family:var(--sans);color:var(--ink);background:var(--cream);font-synthesis:none}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:34px}body{margin:0}a{color:inherit;text-decoration:none}a,summary{-webkit-tap-highlight-color:transparent}a:focus-visible,summary:focus-visible{outline:2px solid currentColor;outline-offset:7px}::selection{background:#b89a68;color:#fff}h1,h2,p{margin:0}h1,h2{font-family:var(--serif);font-weight:400}h2{font-size:clamp(48px,6.1vw,88px);line-height:1.02;letter-spacing:-.035em}h2 em{font-weight:400}p{line-height:1.8}.eyebrow,.section-index,.hero-topline,.hero-bottom,.full-names,.date-year,footer,.rsvp-status{font-size:10px;letter-spacing:.17em;text-transform:uppercase}.eyebrow{font-weight:500;line-height:1.8}.skip-link{position:fixed;top:-100px;left:16px;padding:16px;background:var(--ink);color:var(--cream);z-index:20}.skip-link:focus{top:12px}.site-header{height:100px;display:flex;align-items:center;justify-content:space-between;margin:0 5.5%;border-bottom:1px solid var(--line)}.monogram{display:inline-flex;align-items:center;font-family:var(--serif);font-size:31px;letter-spacing:-.08em;position:relative}.monogram>span{font-style:italic;font-size:22px;margin:0 3px}.monogram .monogram-star{font-size:14px;position:absolute;top:-7px;right:-12px}nav{display:flex;align-items:center;gap:38px;font-size:11px}nav a{padding:12px 0}nav a:hover,.text-link:hover{opacity:.65}.nav-reply{border-bottom:1px solid var(--ink)}.nav-reply span{margin-left:18px}.hero{min-height:760px;height:calc(100svh - 100px);max-height:1000px;position:relative;display:flex;align-items:center;justify-content:center;overflow:hidden}.hero-topline,.hero-bottom{position:absolute;left:5.5%;right:5.5%;display:flex;justify-content:space-between;align-items:center;z-index:2}.hero-topline{top:29px;font-size:9px}.hero-bottom{bottom:29px;font-size:9px}.hero-bottom a{display:flex;gap:26px;align-items:center;padding:12px 0}.hero-bottom a span{font-size:20px}.hero-art{position:absolute;inset:35px 0 20px;display:flex;justify-content:center;color:#a38c63;opacity:.66;pointer-events:none}.hero-art svg{height:100%;width:min(1100px,100%)}.hero-copy{position:relative;text-align:center;padding:48px 20px 65px}.hero h1{font-size:clamp(80px,11.8vw,170px);letter-spacing:-.065em;line-height:1.25;margin:18px 0 2px}.ampersand{font-style:italic;font-size:.75em;display:inline-block;margin:0 .06em;color:#967648}.full-names{font-size:10px;letter-spacing:.2em}.full-names span{margin:0 16px}.invitation{font-family:var(--serif);font-size:24px;line-height:1.35;margin:35px 0 28px}.text-link{font-size:11px;display:inline-flex;gap:32px;border-bottom:1px solid var(--line);padding:10px 0}.section-pad{padding:45px 9% 90px}.section-index{display:flex;align-items:center;justify-content:space-between;padding-bottom:24px;border-bottom:1px solid var(--line);font-size:9px}.section-index>span:nth-child(2){font-size:11px}.together{background:#ede4d5}.intro-layout{display:grid;grid-template-columns:1fr 1.6fr;gap:60px;padding:95px 0 80px}.intro-layout>.eyebrow{max-width:180px;padding-top:12px}.body-copy{font-size:13px;line-height:1.9;max-width:360px;margin-top:28px}.signature{font-family:var(--serif);font-style:italic;font-size:26px;margin-top:27px}.editorial-rule{display:flex;justify-content:space-between;align-items:center;border-top:1px solid var(--line);padding-top:25px;font-size:9px;letter-spacing:.18em;text-transform:uppercase}.editorial-rule span:nth-child(even){font-size:20px;color:#967648}.celebration{background:#d8c1a1;padding-bottom:110px}.celebration-layout{display:grid;grid-template-columns:1.4fr 1fr;gap:80px;align-items:center;padding-top:75px}.celebration h2{margin-top:24px}.date-block{text-align:center;border-left:1px solid var(--line);padding:10px 30px}.date-numerals{font-family:var(--serif);font-size:155px;line-height:1;letter-spacing:-.06em;margin-top:14px}.date-numerals span{display:block;font-style:italic;font-size:42px;letter-spacing:-.02em;margin-top:-6px}.date-year{display:block;margin-top:22px}.date-footnote{margin-top:40px;line-height:1.8;font-size:11px}.date-footnote span{font-size:10px;opacity:.8}.eclipse-section{position:relative;text-align:center;background:linear-gradient(#d8c1a1 0%,#a58a6e 24%,#715642 48%,#3c2c24 76%,#251d19 100%);color:#f5ead8;overflow:hidden;padding:55px 20px 115px}.eclipse-orbit{position:relative;width:360px;height:330px;margin:0 auto 25px;--eclipse-shift:18px}.eclipse-orbit:before{content:'';position:absolute;width:290px;height:290px;border:1px solid #e8d5ae38;border-radius:50%;left:35px;top:20px;transform:rotate(-25deg) scaleX(1.2)}.eclipse-sun,.eclipse-moon{position:absolute;width:176px;height:176px;border-radius:50%;top:78px;left:92px}.eclipse-sun{background:#f5d9a2;box-shadow:0 0 25px #f9d7988c,0 0 90px #f9d7984d}.eclipse-moon{background:#49382d;transform:translate(var(--eclipse-shift),-7px);box-shadow:inset -4px -3px 12px #604732}.orbit-star{position:absolute;color:#f0d8aa}.star-one{top:55px;left:35px;font-size:18px}.star-two{bottom:45px;right:18px;font-size:28px}.star-three{right:50px;top:40px;font-size:34px}.eclipse-section h2{margin-top:22px;font-size:clamp(52px,6vw,80px)}.eclipse-section>p:last-child{font-family:var(--serif);font-size:23px;font-style:italic;margin-top:18px;color:#ddc9af}.night{background:#251d19;color:#eee2ce;--line:rgba(234,211,175,.22)}.details{padding-top:30px}.details-layout{display:grid;grid-template-columns:1fr 1.2fr;gap:90px;padding-top:80px}.details h2{margin-top:25px}.night .body-copy{color:#cbbba7}.faq-list{padding-top:5px}details{border-bottom:1px solid var(--line)}summary{list-style:none;display:flex;align-items:center;justify-content:space-between;gap:20px;padding:25px 0;font-family:var(--serif);font-size:25px;cursor:pointer}summary::-webkit-details-marker{display:none}summary span{font-family:var(--sans);font-size:20px;font-weight:400;color:#c5a472}details[open] summary span{transform:rotate(45deg)}details p{color:#cbbba7;font-size:12px;line-height:1.9;padding:0 30px 26px 0;max-width:430px}.rsvp{text-align:center;padding-top:60px;padding-bottom:110px;background:radial-gradient(ellipse at 50% 90%,#59402a40,transparent 65%)}.small-moon{display:block;font-size:43px;color:#c5a472;margin-bottom:35px}.rsvp h2{font-size:clamp(65px,8vw,112px);margin:23px 0}.rsvp>p:not(.eyebrow){font-size:13px;color:#cbbba7}.rsvp-status{display:inline-block;margin:34px 0 16px;padding:20px 40px;border:1px solid #a68b66;color:#ead9bb;font-size:10px}.rsvp .rsvp-note{font-size:10px!important}footer{display:flex;justify-content:space-between;align-items:center;margin:0 5.5%;padding:30px 0;border-top:1px solid var(--line);font-size:9px}footer>span:last-child span{margin-left:15px;color:#c5a472}
@media(min-width:1500px){.section-pad{padding-left:max(9%,calc((100% - 1200px)/2));padding-right:max(9%,calc((100% - 1200px)/2))}}
@media(max-width:760px){.site-header{height:80px;margin:0 6%}.monogram{font-size:27px}nav{gap:20px;font-size:10px}nav a:first-child{display:none}.nav-reply span{margin-left:7px}.hero{min-height:690px;height:calc(92svh - 80px)}.hero-topline{left:6%;right:6%;font-size:8px;letter-spacing:.1em;top:24px}.hero-art{inset:75px -130px 30px}.hero-art svg{min-width:640px;width:100%}.hero-copy{padding:30px 15px 70px}.hero-copy>.eyebrow{font-size:8px}.hero h1{font-size:clamp(67px,13vw,100px);margin-top:30px}.full-names{font-size:8px;letter-spacing:.12em}.full-names span{margin:0 9px}.invitation{font-size:24px;margin-top:32px}.hero-bottom{left:6%;right:6%;font-size:8px;letter-spacing:.1em;bottom:22px}.hero-bottom>span:last-child{display:none}.hero-bottom a{gap:10px}.section-pad{padding:30px 7% 60px}.intro-layout{grid-template-columns:1fr;gap:27px;padding:55px 0}.intro-layout>.eyebrow{max-width:100%;padding:0;font-size:9px}.body-copy{font-size:13px;margin-top:22px}.editorial-rule{font-size:7px;letter-spacing:.09em;gap:10px}.editorial-rule span:nth-child(even){font-size:15px}.celebration-layout{grid-template-columns:1fr;gap:40px;padding-top:50px}.celebration h2{margin-top:20px}.date-block{border-left:0;border-top:1px solid var(--line);padding-top:35px}.date-numerals{font-size:125px}.date-numerals span{font-size:38px}.date-footnote{margin-top:26px}.eclipse-section{padding:20px 15px 90px}.eclipse-orbit{width:300px;height:300px;transform:scale(.87);transform-origin:center;margin-bottom:0}.eclipse-sun,.eclipse-moon{left:62px}.eclipse-orbit:before{left:5px}.eclipse-section h2{font-size:50px}.eclipse-section>.eyebrow{font-size:8px}.details-layout{grid-template-columns:1fr;gap:35px;padding-top:45px}.details h2 br{display:none}summary{font-size:24px;padding:23px 0}.rsvp{padding-top:25px;padding-bottom:75px}.rsvp h2{font-size:70px}.rsvp .eyebrow{font-size:8px}footer{flex-wrap:wrap;gap:24px;padding:25px 0;font-size:8px}footer>span:last-child{width:100%;text-align:center;padding-top:5px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.eclipse-moon{transform:translate(12px,-7px)}}

/* Shared endpoints make daylight gradually warm into the eclipse sky,
   without visible color seams between sections at any screen height. */
:root {
  --daylight-sand: #eee6d9;
  --daylight-gold: #e6d5bc;
  --eclipse-daylight: #d8c1a1;
}
.hero {
  background: linear-gradient(to bottom, var(--cream) 35%, var(--daylight-sand));
}
.together {
  background: linear-gradient(to bottom, var(--daylight-sand), var(--daylight-gold));
}
.celebration {
  background: linear-gradient(to bottom, var(--daylight-gold), var(--eclipse-daylight) 90%);
}

/* Keep the invitation and its circular frame in one coordinate system.
   The SVG behind it now contains only the botanical illustration. */
.hero { --invitation-diameter: clamp(460px, 48vw, 600px); }
.hero-copy {
  width: 100%; max-width: 1100px; min-height: var(--invitation-diameter);
  padding: 0 16px; display: flex; flex-direction: column;
  justify-content: center; align-items: center; isolation: isolate;
}
.hero-copy::before, .hero-copy::after {
  content: ''; position: absolute; left: 50%; top: 50%;
  width: var(--invitation-diameter); height: var(--invitation-diameter);
  border-radius: 50%; transform: translate(-50%, -50%);
  pointer-events: none; z-index: -1;
}
.hero-copy::before {
  border: 1px solid #a38c6366;
  background: radial-gradient(circle, #dcc5a02b, #dcc5a00a 65%, transparent 72%);
}
.hero-copy::after {
  width: calc(var(--invitation-diameter) + 24px);
  height: calc(var(--invitation-diameter) + 24px);
  border: 1px dotted #a38c6347;
}
.hero-copy .text-link {
  position: relative; display: block; padding: 12px 28px;
  line-height: 1.4; min-height: 44px; text-align: center;
}
.hero-copy .text-link span {
  position: absolute; right: 5px; top: 50%; transform: translateY(-50%);
}
@media (max-width: 760px) {
  .hero { --invitation-diameter: clamp(348px, 92vw, 440px); }
  .hero-copy { padding: 0 10px; }
  .hero h1 { font-size: clamp(58px, 12vw, 92px); line-height: 1.1; margin: 18px 0 10px; }
  .hero .invitation { font-size: 22px; line-height: 1.35; margin: 22px 0 18px; }
  .hero-copy .text-link { font-size: 10px; }
}
