@font-face{font-family:WeddingSerif;src:url('assets/Serif.otf') format('opentype');font-display:swap}@font-face{font-family:WeddingSerif;src:url('assets/SerifItalic.otf') format('opentype');font-style:italic;font-display:swap}@font-face{font-family:WeddingSans;src:url('assets/Sans.otf') format('opentype');font-display:swap}
:root{--sage:#87a96b;--green:#556e43;--ink:#40523b;--gold:#8c713d;--gold-line:#b89b63;--paper:#faf7f0;--muted:#66705f;--line:#dedccd;--serif:WeddingSerif,Georgia,serif;--sans:WeddingSans,Arial,sans-serif}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:30px}body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--sans);font-size:16px;-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}button,a,summary{-webkit-tap-highlight-color:transparent}a:focus-visible,summary:focus-visible{outline:2px solid var(--gold);outline-offset:6px}img{max-width:100%;display:block}p{line-height:1.75}h1,h2,p{margin-top:0}.skip{position:fixed;left:12px;top:-100px;padding:12px;background:var(--green);color:white;z-index:9}.skip:focus{top:10px}.site-header{height:106px;display:flex;align-items:center;justify-content:space-between;margin:0 6.2%;border-bottom:1px solid var(--line)}.brand{font:38px var(--serif);letter-spacing:-4px;padding-right:5px}.brand span{font-style:italic;font-size:24px;color:var(--gold);padding:0 5px}nav{display:flex;gap:36px;align-items:center;font-size:13px}nav a{padding:10px 0}nav a:hover,.text-link:hover{color:var(--gold)}nav .nav-date span{padding-left:12px}.hero{position:relative;display:grid;grid-template-columns:1fr 1fr;gap:6%;padding:64px 6.2% 0}.hero-copy{padding:27px 0 65px}.eyebrow{font-size:10px;letter-spacing:2.4px;line-height:1.6;font-weight:400}.tiny-line{display:inline-block;width:30px;height:1px;background:var(--gold-line);vertical-align:middle;margin-right:12px}.hero-copy>.eyebrow{text-transform:uppercase;margin-bottom:30px}h1{font:clamp(68px,7.25vw,116px)/1.06 var(--serif);font-weight:400;letter-spacing:-4px;margin-bottom:24px}.name-second{display:block;padding-left:52px}h1 i{color:var(--gold);font-size:.8em;font-weight:400;margin-right:12px}.intro{font-size:15px;color:var(--muted);margin-bottom:27px}.hero-date{font:29px var(--serif);display:flex;align-items:center;gap:16px}.hero-date b{font:15px var(--serif);color:var(--gold)}.hero-day{font-size:9px;letter-spacing:1.8px;margin:10px 0 27px}.button{display:inline-flex;justify-content:center;align-items:center;gap:20px;padding:17px 23px;font-size:12px;border:1px solid var(--green);transition:background .2s,color .2s,transform .2s}.button:hover{transform:translateY(-2px);background:#52664b}.dark{color:var(--paper);background:var(--green)}.button svg{width:20px;height:20px;stroke:currentColor;stroke-width:1;fill:none}.hero-art{isolation:isolate;position:relative;min-height:590px;background:#edf1e6;display:flex;justify-content:center;align-items:center;overflow:hidden;padding:38px 38px 65px}.hero-art:after{content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;opacity:.24;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 160 160' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.88' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Cpath fill='%23000' opacity='.22' filter='url(%23n)' d='M0 0h160v160H0z'/%3E%3C/svg%3E")}.art-ring{position:absolute;border:1px solid #aebba6;border-radius:50%;width:720px;height:720px;z-index:-1}.ring-one{left:100px;top:120px}.ring-two{left:120px;top:140px}.paper-card{position:relative;width:310px;transform:rotate(5deg);box-shadow:1px 14px 28px #263d3326;transition:transform .5s}.paper-card:hover{transform:rotate(1deg) translateY(-4px)}.paper-card img{width:100%;height:auto}.paper-back{position:absolute;background:#f5f1e6;width:300px;aspect-ratio:5/7;transform:rotate(-7deg);box-shadow:0 4px 14px #263d331a}.branch{position:absolute;width:130px;opacity:.62;z-index:-1}.branch-left{left:3%;bottom:24px;transform:rotate(-26deg)}.branch-right{right:0;top:20px;transform:rotate(152deg)}.art-caption{position:absolute;bottom:20px;left:10px;right:10px;text-align:center;font-size:8px;letter-spacing:2.4px}.hero-bottom{grid-column:1/-1;display:flex;align-items:center;justify-content:space-between;padding:30px 0;border-bottom:1px solid var(--line);font-size:9px;letter-spacing:1.5px}.hero-bottom a{font-size:11px;letter-spacing:.1px}.hero-bottom a span{padding-left:14px}.section-pad{padding:105px 10%}.celebration{display:grid;grid-template-columns:.9fr 1.1fr;align-items:center;gap:10%;padding-top:95px;padding-bottom:95px}.chapter-mark{padding:28px 35px;border-right:1px solid var(--line)}.chapter-mark img{width:100%;height:auto}.chapter-copy h2,h2{font:clamp(36px,4vw,58px)/1.15 var(--serif);font-weight:400;letter-spacing:-1.4px;margin-bottom:24px}h2 i{font-weight:400;color:var(--gold)}.chapter-copy>p:not(.eyebrow){max-width:460px;color:var(--muted);font-size:15px}.signature{display:block;font:22px var(--serif);font-style:italic;margin-top:25px}.date-section{background:var(--green);color:var(--paper);display:grid;grid-template-columns:1fr 1fr;gap:12%;align-items:center}.date-section .eyebrow{color:#f8f2df}.date-section h2{max-width:350px;font-size:60px}.date-section h2 i{color:#f0e3be}.date-heading>p:last-child{font-size:14px;color:#f4f1e6}.date-display{text-align:center;width:290px;justify-self:center}.date-display>.eyebrow{letter-spacing:4px;margin:0}.date-numeral{font:145px/.98 var(--serif);margin:20px 0 25px;letter-spacing:-8px}.date-rule{border-top:1px solid #ffffff40;border-bottom:1px solid #ffffff40;display:flex;justify-content:space-between;padding:15px 8px;font-size:10px;letter-spacing:2.5px}.countdown{font:19px var(--serif);font-style:italic;color:#f8f2df;min-height:30px;margin:22px 0 17px}.text-link{display:inline-block;font-size:12px;padding-bottom:8px;border-bottom:1px solid currentColor}.text-link span{padding-left:25px}.stationery{display:grid;grid-template-columns:1fr 1fr;gap:15%;align-items:center;background:#f0f2e8}.stationery-preview{padding:40px 45px;background:#e4ebd9}.stationery-preview img{height:auto;width:100%;transform:rotate(-4deg);box-shadow:2px 14px 26px #24443824}.stationery-copy p:not(.eyebrow){font-size:15px;color:var(--muted)}.download-links{display:flex;align-items:flex-start;flex-direction:column;gap:23px;margin:30px 0}.small-note{font:16px var(--serif);font-style:italic;color:var(--muted)}.details{display:grid;grid-template-columns:1fr 1.2fr;gap:12%}.details>div>p:not(.eyebrow){font-size:14px;color:var(--muted)}.faq{padding-top:10px}.faq details{border-bottom:1px solid var(--line);padding:23px 0}.faq details:first-child{border-top:1px solid var(--line)}summary{list-style:none;cursor:pointer;display:flex;justify-content:space-between;gap:20px;font:22px var(--serif)}summary::-webkit-details-marker{display:none}summary span{color:var(--gold);font:23px var(--sans);transition:transform .2s}details[open] summary span{transform:rotate(45deg)}details p{color:var(--muted);font-size:14px;margin:16px 28px 0 0}details p a{text-decoration:underline;text-underline-offset:4px}.closing{text-align:center;padding:15px 20px 85px}.closing>p:first-child{font:20px var(--serif);font-style:italic;color:var(--muted)}.closing>span{font:52px var(--serif);letter-spacing:-1.5px}.closing i{color:var(--gold)}.closing>.eyebrow{margin-top:20px}footer{display:flex;align-items:center;justify-content:space-between;border-top:1px solid var(--line);margin:0 6.2%;padding:28px 0}footer p,footer>span{font-size:9px;letter-spacing:2px;margin:0}footer .brand{font-size:29px}footer .brand span{font-size:20px}
@media(min-width:1600px){.site-header,footer{max-width:1400px;margin-left:auto;margin-right:auto}.hero{max-width:1600px;margin:auto}.section-pad{padding-left:max(10%,calc((100vw - 1250px)/2));padding-right:max(10%,calc((100vw - 1250px)/2))}}
@media(max-width:1000px){.hero{gap:4%;padding-top:35px}.hero-art{min-height:530px;padding:28px 30px 60px}.paper-card{width:270px}.paper-back{width:255px}h1{font-size:78px}.name-second{padding-left:20px}.hero-copy{padding-bottom:40px}.section-pad{padding:80px 7%}.celebration{gap:7%}.chapter-mark{padding:20px 22px}.date-section h2{font-size:50px}.stationery{gap:8%}.stationery-preview{padding:35px}.details{gap:7%}}
@media(max-width:700px){.site-header{height:82px;margin:0 6%}.brand{font-size:33px}nav{gap:21px;font-size:11px}nav a:first-child{display:none}.hero{display:flex;flex-direction:column;padding:34px 6% 0;gap:0}.hero-copy{text-align:center;padding:12px 0 39px}.hero-copy>.eyebrow{margin-bottom:21px}h1{font-size:76px;line-height:1.02;letter-spacing:-3px;margin-bottom:23px}.name-second{padding-left:0}.intro{font-size:14px;line-height:1.7;margin-bottom:23px}.hero-date{justify-content:center;font-size:26px}.hero-day{font-size:8px;letter-spacing:1.5px;margin-bottom:24px}.button{font-size:12px;padding:15px 21px}.hero-art{min-height:490px;padding:35px 50px 58px;margin:0 3%}.paper-card{width:265px}.paper-back{width:255px}.hero-bottom{padding:25px 0;justify-content:center}.hero-bottom>span{display:none}.hero-bottom a{font-size:10px}.section-pad{padding:64px 8%}.celebration,.date-section,.stationery,.details{grid-template-columns:1fr;gap:35px}.chapter-mark{border-right:0;border-bottom:1px solid var(--line);padding:0 40px 32px;max-width:360px;margin:0 auto}.chapter-copy{text-align:center}.eyebrow{font-size:9px;letter-spacing:2px}.chapter-copy h2,h2{font-size:40px;letter-spacing:-1px}.chapter-copy>p:not(.eyebrow){font-size:14px}.signature{font-size:21px}.date-heading{text-align:center}.date-section h2{font-size:46px;max-width:none}.date-display{width:260px}.date-numeral{font-size:130px}.stationery-preview{max-width:320px;margin:auto;padding:30px 32px}.stationery-copy{text-align:center}.download-links{align-items:center}.details{gap:14px}.details>div:first-child{text-align:center}.faq{padding-top:3px}summary{font-size:21px}.closing{padding:0 20px 56px}.closing>span{font-size:39px}.closing>p:first-child{font-size:18px}footer{margin:0 6%}footer p{font-size:8px;letter-spacing:1px}footer>span{font-size:8px;letter-spacing:1px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{transition:none!important;animation:none!important}}

/* Standalone pages share the wedding identity and navigation. */
nav a[aria-current="page"]{color:var(--green);border-bottom:1px solid var(--gold-line)}
.hero .marshin-title{font-size:clamp(65px,6.4vw,98px);line-height:1.08;letter-spacing:-3px;margin-bottom:22px}
.hero .marshin-title i{font-size:1em;margin:0}
.hero .intro{max-width:435px;margin-bottom:15px;line-height:1.75}
.hero-signature{font:21px var(--serif);font-style:italic;margin:0 0 29px;color:var(--green)}
.page-home .hero-bottom{border-bottom:0}
.page-intro{text-align:center;padding:72px 8% 61px}
.page-intro h1{font-size:clamp(50px,6vw,76px);font-weight:400;line-height:1.12;letter-spacing:-2.2px;margin:15px 0 22px}
.page-intro h1 i{font-size:1em;color:var(--gold);margin:0}
.page-intro>p:last-child{color:var(--muted);font-size:15px;margin-bottom:0}
.next-details{text-align:center;padding:75px 8% 90px}
.next-details>p:not(.eyebrow){font-size:15px;color:var(--muted);margin:0 0 27px}
.hotel-section{display:grid;grid-template-columns:.8fr 1.2fr;gap:10%;align-items:center;background:#edf1e6;padding-top:70px;padding-bottom:70px}
.hotel-illustration{position:relative;min-height:290px;display:flex;align-items:center;justify-content:center;border:1px solid #a5b098;border-radius:150px 150px 0 0;max-width:300px;width:100%;justify-self:center;overflow:hidden}
.hotel-illustration>span{font:66px var(--serif);color:var(--green);position:relative;z-index:1}
.hotel-illustration i{font-size:43px;color:var(--gold)}
.hotel-illustration img{position:absolute;width:130px;bottom:-22px;left:-28px;opacity:.65;transform:rotate(-22deg)}
.hotel-copy>p:not(.eyebrow){font-size:15px;line-height:1.75;max-width:440px;color:var(--muted)}
.hotel-copy .button{margin:8px 0 5px}
.hotel-copy .booking-note{font-size:11px!important;line-height:1.7;max-width:380px!important;margin-top:16px}
.page-save-the-date .stationery{padding-top:70px;padding-bottom:85px}
@media(max-width:1000px){nav{gap:25px}.hero .marshin-title{font-size:76px}.hero .intro{font-size:14px}.hero-signature{font-size:19px}}
@media(max-width:700px){nav{gap:16px;font-size:10px}.hero .marshin-title{font-size:65px;letter-spacing:-2.3px}.hero .intro{margin-left:auto;margin-right:auto;max-width:335px}.hero-signature{margin-bottom:27px}.page-intro{padding:49px 7% 42px}.page-intro h1{font-size:48px;letter-spacing:-1.6px}.page-intro>p:last-child{font-size:14px}.hotel-section{grid-template-columns:1fr;gap:35px;padding-top:40px;padding-bottom:45px}.hotel-illustration{min-height:210px;max-width:220px}.hotel-illustration>span{font-size:55px}.hotel-copy{text-align:center}.hotel-copy>p:not(.eyebrow){margin-left:auto;margin-right:auto}.hotel-copy .booking-note{max-width:300px!important}.next-details{padding:55px 8% 65px}.next-details>p:not(.eyebrow){font-size:14px}.page-save-the-date .stationery{padding-top:45px;padding-bottom:55px}}

/* Home combines the introduction, wedding date, and personal details. */
.handmade{display:grid;grid-template-columns:1.05fr 1fr;gap:12%;align-items:center;padding-top:85px;padding-bottom:78px;background:#f1f0e6}
.centerpiece-figure{margin:0;min-width:0}
.centerpiece-frame{position:relative;aspect-ratio:1.04;overflow:hidden;background:#e4ebd9;outline:1px solid #b5a076;outline-offset:9px}
.centerpiece-frame img{position:absolute;top:0;left:0;width:201.6%;height:auto;max-width:none}
.centerpiece-figure figcaption{font-size:10px;letter-spacing:.65px;color:var(--muted);margin-top:24px;text-align:center}
.handmade-copy>p:not(.eyebrow){font-size:15px;color:var(--muted);max-width:440px}
.handmade-signature{display:block;font:21px var(--serif);font-style:italic;color:var(--green);margin-top:26px}
.page-home .next-details{padding-top:75px}
@media(max-width:700px){nav a:first-child{display:block}.handmade{grid-template-columns:1fr;gap:37px;padding:58px 9% 48px}.centerpiece-figure{max-width:420px;justify-self:center;width:100%}.handmade-copy{text-align:center}.handmade-copy>p:not(.eyebrow){font-size:14px;margin-left:auto;margin-right:auto}.handmade-signature{font-size:20px;margin-top:23px}.page-home .next-details{padding-top:50px}}

/* Approved S & J identity: exact chosen raster artwork, flat sage and champagne accents. */
.brand{display:inline-flex;align-items:center;justify-content:center;padding:0;line-height:0;letter-spacing:normal;flex-shrink:0}
.brand-logo{display:block;width:92px;height:auto;max-height:76px;object-fit:contain}
footer .brand-logo{width:83px;max-height:64px}
.hotel-illustration{border-color:var(--gold-line);background:var(--paper);min-height:255px}
.hotel-illustration .hotel-logo{position:static;width:225px;height:auto;max-width:90%;opacity:1;transform:none;object-fit:contain}
.hero-art .art-ring{border-color:#c7c8b0}
.hero-art:after{opacity:.13}
@media(max-width:700px){.brand-logo{width:76px;max-height:58px}footer .brand-logo{width:70px;max-height:53px}.hotel-illustration{min-height:205px}.hotel-illustration .hotel-logo{width:190px}nav{gap:20px;font-size:11px}}

/* Mobile navigation is a disclosure; desktop links keep their existing layout. */
.nav-toggle{display:none}
@media(max-width:700px){
  .site-header{position:relative;z-index:5}
  .navigation-ready .nav-toggle{display:inline-flex;align-items:center;justify-content:center;gap:12px;min-width:90px;min-height:44px;padding:10px 0 10px 12px;border:0;background:transparent;color:var(--ink);font:12px var(--sans);cursor:pointer}
  .nav-toggle:focus-visible{outline:2px solid var(--gold);outline-offset:4px}
  .nav-toggle-icon{display:flex;flex-direction:column;justify-content:space-between;width:22px;height:16px}
  .nav-toggle-icon span{display:block;width:22px;height:1px;background:currentColor;transition:transform .2s,opacity .2s}
  .nav-toggle[aria-expanded="true"] .nav-toggle-icon span:first-child{transform:translateY(7.5px) rotate(45deg)}
  .nav-toggle[aria-expanded="true"] .nav-toggle-icon span:nth-child(2){opacity:0}
  .nav-toggle[aria-expanded="true"] .nav-toggle-icon span:last-child{transform:translateY(-7.5px) rotate(-45deg)}
  .navigation-ready #wedding-navigation{display:none;position:absolute;top:100%;left:0;right:0;align-items:stretch;flex-direction:column;gap:4px;padding:16px 24px 20px;background:var(--paper);border:1px solid var(--line);border-top:1px solid var(--gold-line);box-shadow:0 12px 20px #40523b12;font-size:15px}
  .navigation-ready #wedding-navigation.is-open{display:flex}
  #wedding-navigation a{display:flex;align-items:center;min-height:44px;align-self:flex-start;padding:12px 0}
}

.family-login{display:inline-block;font-size:10px;letter-spacing:0;text-transform:none;margin-top:9px;color:var(--muted);text-decoration:underline;text-underline-offset:3px}
