@font-face{font-family:'Wedding Serif';src:url('assets/fonts/serif-5.woff2') format('woff2');font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:'Wedding Sans';src:url('assets/fonts/sans-5.woff2') format('woff2');font-weight:400 500;font-style:normal;font-display:swap}
:root{--p-bg:#f8f8f8;--p-surface:#f2e9e4;--p-ink:#454545;--p-muted:#625b57;--p-accent:#dbaf96;--p-accent-ink:#454545;--p-action:#dbaf96;--p-action-ink:#454545;--font-display:'Wedding Serif',Georgia,serif;--font-text:'Wedding Sans',Arial,sans-serif;--display-weight:400;--display-tracking:-.035em;--t-h2:clamp(38px,4.2vw,60px);--nav:80px;--hgap:64px;--r-btn:8px;--btn-h:48px}
body{background:var(--p-bg);color:var(--p-ink);font-weight:400}
.wedding-nav{background:#f8f8f8;border-color:#e7dfdb}
.wedding-nav .nav__bar{justify-content:space-between;gap:24px}
.identity{display:flex;align-items:center;gap:12px;min-height:44px;font-size:16px}
.identity img{width:36px;height:36px;flex:none}
.wedding-links{display:flex;align-items:center;gap:32px;font-size:14px}
.wedding-links a{display:flex;align-items:center;min-height:44px}
.skip{position:absolute;width:1px;height:1px;clip-path:inset(50%);overflow:hidden}
.skip:focus{width:auto;height:auto;clip-path:none;padding:12px;background:var(--p-bg);z-index:100}
/* Content determines height on every viewport; no screen-sized sections. */
main>section.hero.wedding-hero,main>section.details-section,footer.closing.wedding-close{height:auto;min-height:0;display:block}
main>section.hero.wedding-hero{padding:calc(var(--nav) + 64px) 0 96px}
main>section.details-section,footer.closing.wedding-close{padding:112px 0}
main>section.hero.wedding-hero>.wrap,main>section.details-section>.wrap,footer.closing.wedding-close>.wrap{height:auto;min-height:0;flex:none}
main>section.hero.wedding-hero>.wrap{display:block}
.wedding-hero>.wrap>.hero-text.invitation-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:64px;height:auto;align-items:center}
.invitation-copy{display:flex;flex-direction:column;align-items:flex-start;min-width:0}
.eyebrow{font-size:14px;color:var(--p-muted);line-height:1.6}
.wedding-hero h1{font-size:clamp(56px,6.2vw,92px);font-family:var(--font-display);font-weight:400;line-height:1.02;letter-spacing:-.045em;text-wrap:initial;max-width:100%;margin:32px 0}
.ampersand{display:block;font-size:.55em;line-height:1.35}
.invitation-note{font-size:18px;line-height:1.8}
.hero-date{display:block;font-family:var(--font-display);font-size:clamp(30px,3vw,42px);line-height:1.2;letter-spacing:.035em;margin-top:48px;padding:8px 16px;background:#f2e9e4;border-radius:8px;box-shadow:inset 0 -3px #dbaf96}
.invitation-copy .btn-row{margin-top:32px}
.invitation-copy .btn{color:#454545;background:#dbaf96;min-height:48px}
.invitation-photo{width:100%;height:auto;aspect-ratio:3/4;overflow:hidden;border-radius:20px;background:#f2e9e4}
.invitation-photo img{display:block;width:100%;height:auto;aspect-ratio:3/4;object-fit:contain}
main>section.details-section{background:#f2e9e4}
.details-section h2{margin-bottom:64px}
.details-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:64px;align-items:start}
.details-copy{display:flex;flex-direction:column;align-items:flex-start;gap:40px;min-width:0}
.detail-block{display:grid;gap:12px}
.detail-title,.details-section h3{font-family:var(--font-display);font-size:clamp(28px,3vw,44px);font-weight:400;line-height:1.2;letter-spacing:-.025em}
.detail-block>p:not(.eyebrow):not(.detail-title){font-size:16px;line-height:1.7}
.mini-calendar{width:min(100%,360px)}
.calendar-month{font-family:var(--font-display);font-size:24px;line-height:1.3;margin-bottom:24px}
.calendar-week,.calendar-dates{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:8px;text-align:center}
.calendar-week{font-size:13px;color:var(--p-muted);margin-bottom:12px}
.calendar-dates span{display:grid;place-items:center;aspect-ratio:1;min-height:36px;font-size:16px}
.calendar-dates .faded{color:var(--p-muted)}
.calendar-dates .selected{background:#dbaf96;color:#454545;border-radius:50%;font-weight:500}
.venue{margin-top:8px}
.editable-note{color:var(--p-muted)}
.table-photo{width:100%;aspect-ratio:4/5;overflow:hidden;border-radius:20px}
.table-photo img{display:block;width:100%;height:100%;object-fit:cover}
.wedding-close{background:#f8f8f8;color:#454545}
footer.closing.wedding-close>.wrap{display:flex;flex-direction:column;gap:96px}
.wedding-close .closing__cta{display:flex;flex-direction:column;gap:64px}
.wedding-close .closing__cta h2{max-width:none}
.day-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:64px}
.closing-message{font-family:var(--font-display);font-size:clamp(34px,3.9vw,56px);line-height:1.2;letter-spacing:-.03em;max-width:19ch}
.day-notes{display:grid;align-content:start;gap:40px;max-width:440px}
.day-notes h3{font-family:var(--font-text);font-size:18px;font-weight:500;line-height:1.5;letter-spacing:0;margin-bottom:12px}
.day-notes p{font-size:16px;line-height:1.8}
.signature{font-family:var(--font-display);font-size:clamp(38px,7.5vw,108px);font-weight:400;line-height:1.15;letter-spacing:-.04em;margin-top:16px}
.closing-bottom{display:flex;justify-content:space-between;align-items:center;gap:24px;font-size:14px;color:var(--p-muted)}
.closing-bottom a{min-height:44px;display:inline-flex;align-items:center}
@media(min-width:640px) and (max-width:1023px){.wedding-hero>.wrap>.hero-text.invitation-grid,.details-grid,.day-grid{gap:32px}.wedding-hero h1{font-size:clamp(44px,6.5vw,64px)}.invitation-note{font-size:16px}.hero-date{margin-top:32px}.details-copy{gap:32px}.calendar-week,.calendar-dates{gap:4px}.calendar-dates span{min-height:28px}.details-section h2{margin-bottom:48px}.table-photo{aspect-ratio:3/4}.signature{font-size:clamp(48px,7.5vw,76px)}}
@media(max-width:639px){:root{--nav:64px}.wedding-nav .nav__bar{gap:16px}.identity span{display:none}.identity img{width:32px;height:32px}.wedding-links{gap:24px;font-size:14px}main>section.hero.wedding-hero{padding:calc(var(--nav) + 40px) 0 64px}main>section.details-section,footer.closing.wedding-close{padding:72px 0}.wedding-hero>.wrap>.hero-text.invitation-grid{display:flex;flex-direction:column;align-items:stretch;gap:40px}.invitation-copy{width:100%}.wedding-hero h1{font-size:clamp(44px,12vw,64px);margin:24px 0;line-height:1.03}.ampersand{line-height:1.2}.invitation-note{font-size:16px;line-height:1.7}.hero-date{font-size:30px;margin-top:32px}.invitation-copy .btn-row{margin-top:24px;width:100%}.invitation-copy .btn{width:100%;white-space:normal}.invitation-photo{border-radius:16px;flex:none}.details-section h2{margin-bottom:40px}.details-grid,.day-grid{display:grid;grid-template-columns:minmax(0,1fr);gap:40px}.details-copy{gap:32px}.detail-title,.details-section h3{font-size:30px}.mini-calendar{width:min(100%,342px)}.calendar-dates span{min-height:32px}.venue{margin-top:8px}.table-photo{border-radius:16px;aspect-ratio:4/5}.wedding-close .closing__cta{gap:40px}.closing-message{font-size:36px;max-width:20ch}.day-notes{gap:32px}.signature{font-size:clamp(36px,10vw,56px);margin-top:8px}.closing-bottom{flex-direction:column;align-items:flex-start;gap:16px}footer.closing.wedding-close>.wrap{gap:64px}}
