:root{color-scheme:light;--brown:#3d1700;--cream:#f2ede4;--gold:#ccb081;--ink:#573425;--script:"YAGL3qRU9qw_0",cursive;--serif:"YADK4HPrVfg_0",Georgia,serif}
*{box-sizing:border-box}html{scroll-behavior:auto}body{margin:0;background:var(--brown);color:var(--cream);font-family:var(--serif);font-size:20px}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit}a{color:inherit}button,a{touch-action:manipulation}button:focus-visible,a:focus-visible{outline:3px solid #eabf6f;outline-offset:5px}main{width:100%;outline:none;min-height:100svh}.loading,.load-error,.no-script{text-align:center;padding:20vh 24px}.skip-link{position:fixed;top:-80px;left:20px;z-index:20;padding:12px;background:var(--cream);color:var(--brown)}.skip-link:focus{top:12px}.visually-hidden{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.desktop-scenes{position:relative}.scene-section{position:relative;overflow:hidden;width:100%;scroll-margin-top:12px}.artboard{position:absolute;transform-origin:0 0}.scene-element{position:absolute;display:block;transform-origin:center;margin:0;padding:0;border:0;background:transparent;color:inherit;text-decoration:none}.scene-image,.scene-shape{overflow:hidden}.scene-image{position:absolute;max-width:none;transform-origin:center;pointer-events:none}.scene-background{position:absolute;inset:0;overflow:hidden}.scene-group-inner,.scene-text-inner{position:relative;transform-origin:0 0}.scene-text-inner p{margin:0;padding:0;white-space:pre-wrap;overflow-wrap:normal}.scene-text-inner p:empty::before{content:'\00a0'}.scene-text-inner a{text-decoration:underline;text-underline-offset:.08em}.scene-text-inner span{white-space:pre-wrap}.scene-shape svg{width:100%;height:100%;display:block}.scene-element[href],button.scene-element{cursor:pointer}.scene-element[href]:hover{filter:brightness(1.06)}.envelope-opener{position:absolute;inset:0;z-index:2;display:block}.envelope-opener:focus-visible{outline-offset:-14px}.desktop-back{position:fixed;bottom:18px;left:18px;background:var(--brown);color:var(--cream);border:1px solid #ccb08180;border-radius:3px;font-family:Georgia,serif;font-size:14px;padding:10px 16px;text-decoration:none;z-index:3}.mobile-content,.mobile-nav{display:none}
.countdown{display:flex;justify-content:center;align-items:center;gap:36px;width:100%;height:100%;color:var(--cream);font-family:Georgia,serif}.countdown-unit{display:flex;flex-direction:column;align-items:center;min-width:120px}.countdown-value{font-size:82px;font-variant-numeric:tabular-nums;font-weight:400;line-height:1.1}.countdown-label{text-transform:uppercase;letter-spacing:.18em;font-size:16px;margin-top:12px}
dialog{position:fixed;inset:0;width:100%;height:100%;max-width:none;max-height:none;margin:0;padding:50px 76px;border:0;background:#1c0b04f7;color:var(--cream);overflow:hidden}dialog::backdrop{background:#1c0b04}dialog[open]{display:flex;align-items:center;justify-content:center}dialog figure{margin:0;max-width:100%;text-align:center}#dialog-image{display:block;max-width:100%;max-height:calc(100svh - 120px);object-fit:contain;margin:auto}dialog figcaption{padding-top:12px;font:14px Georgia,serif;letter-spacing:.12em}dialog button{position:absolute;background:none;border:0;color:var(--cream);cursor:pointer;min-width:48px;min-height:48px;font:48px Georgia,serif}.dialog-close{right:12px;top:8px}.dialog-prev{left:12px;top:45%}.dialog-next{right:12px;top:45%}body.dialog-open{overflow:hidden}
@media(max-width:700px){
 body{font-size:19px}.desktop-scenes{display:none}body[data-page="envelope"] .desktop-scenes{display:block}.mobile-content{display:block}.mobile-nav:not([hidden]){position:sticky;top:0;display:flex;align-items:center;justify-content:space-between;gap:10px;z-index:5;background:var(--cream);color:var(--brown);height:64px;padding:0 18px;border-bottom:1px solid #57342525;font-family:Georgia,serif;font-size:13px}.mobile-nav a{text-decoration:none;min-height:44px;display:flex;align-items:center;gap:3px}.mobile-nav a:first-child{font-family:var(--script);font-size:22px}.mobile-nav a:first-child span{font-size:13px}.mobile-nav a[aria-current]{text-decoration:underline;text-underline-offset:5px}.mobile-nav a:last-child{font-size:12px;font-weight:bold}.desktop-back{display:none}
 .mobile-content{padding:38px 22px 30px;text-align:center}.mobile-invitation{padding:0;background:var(--cream);color:var(--ink)}.invitation-intro{padding:40px 22px 32px}.eyebrow{font-family:"YAFvLQ6Sm90_0",Georgia,serif;font-size:15px;text-transform:uppercase;letter-spacing:.12em;margin:0 0 16px}.small-copy{font-size:20px;margin:8px 0 24px}.script-title{font-family:var(--script);font-weight:400;line-height:1.25;font-size:clamp(38px,10vw,58px);margin:12px 0 28px}.serif-title{font-family:var(--serif);font-size:28px;line-height:1.3;font-weight:400}.couple-names{font-family:var(--script);font-weight:400;font-size:clamp(32px,8.7vw,48px);line-height:1.4;margin:24px 0}.couple-names span{display:block}.couple-names .ampersand{font-size:32px;line-height:1.1}.portrait-frame{width:min(70vw,280px);aspect-ratio:3/4;margin:auto;border:9px double #b89042;border-radius:50%;padding:5px;box-shadow:0 3px 12px #57342522}.couple-portrait{width:100%;height:100%;object-fit:cover;border-radius:50%;object-position:48% 38%}.wedding-date{font-family:"YAEu9voQp0E_0",cursive;font-size:27px;letter-spacing:.05em}.action-link{display:inline-block;border-bottom:1px solid currentColor;padding:10px 3px;text-decoration:none;min-height:44px;font-size:23px}.invitation-cards{padding:10px 22px 40px;display:grid;grid-template-columns:1fr 1fr;gap:14px}.invitation-cards a{display:flex;align-items:center;justify-content:center;min-height:110px;padding:20px 10px;border:1px solid var(--gold);background:#b28c74;color:#fff;border-radius:36% 12%;font-family:var(--script);font-size:28px;text-decoration:none;line-height:1.25}.invitation-cards a:nth-child(2),.invitation-cards a:nth-child(3){background:var(--brown)}.mobile-countdown{background:var(--brown);color:var(--cream);padding:38px 20px 45px}.mobile-countdown .serif-title{font-size:26px}.countdown{gap:12px}.countdown-unit{min-width:0;flex:1}.countdown-value{font-size:42px}.countdown-label{font-size:10px;letter-spacing:.08em;margin-top:9px}.body-copy{font-size:23px;line-height:1.65;white-space:pre-line;margin:20px auto;max-width:560px}.mobile-section{padding:48px 0;border-bottom:1px solid #ccb08144;scroll-margin-top:80px}.details-intro{position:relative;padding-top:190px}.details-cover{position:absolute;top:-38px;left:-22px;width:calc(100% + 44px);height:210px;object-fit:cover;object-position:center 40%;mask-image:linear-gradient(#000 70%,transparent)}.entourage-group{margin:34px 0}.role-title{font-family:"YAFvLQ6Sm90_0",Georgia,serif;letter-spacing:.08em;font-size:17px;font-weight:400;color:#e3d3ba;margin-bottom:18px}.entourage ul{padding:0;margin:0;list-style:none;font-family:Georgia,serif;font-size:16px;line-height:1.9}.entourage li{margin:7px 0}.hashtag{font-size:27px;overflow-wrap:anywhere}.swatches{display:flex;justify-content:center;flex-wrap:wrap;gap:12px;margin:30px auto}.swatches span{width:38px;height:38px;border:1px solid #f2ede440;border-radius:50%}.attire-image{display:inline-block;max-width:43%;max-height:200px;object-fit:contain;vertical-align:middle;margin:20px 1%}.back-link{display:inline-block;min-height:44px;padding:18px 4px;margin-top:22px;font-size:17px;text-transform:uppercase;letter-spacing:.08em;text-underline-offset:5px}.mobile-gallery .serif-title{font-size:26px}.mobile-gallery .body-copy{font-size:20px;margin-bottom:34px}.photo-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.photo-button{border:0;background:none;padding:0;cursor:pointer;width:100%;aspect-ratio:3/4}.photo-button img{width:100%;height:100%;object-fit:cover;display:block}.photo-button:nth-child(5n+1){grid-column:span 2;aspect-ratio:3/2}.hotel-card{margin:36px 0 48px}.hotel-card>img{display:block;width:100%;aspect-ratio:3/2;object-fit:cover}.hotel-card h2{font-size:28px;text-transform:capitalize}.hotel-links{display:flex;gap:22px;justify-content:center;font-size:18px}.hotel-links a{display:flex;align-items:center;min-height:44px;text-underline-offset:5px}dialog{padding:60px 38px}dialog button{font-size:40px}.dialog-prev{left:0}.dialog-next{right:0}
}
.scene-text-inner p,.scene-text-inner span{white-space:pre}.scene-text-inner a{white-space:pre}
.scene-element[hidden]{display:none}
.desktop-entourage,.desktop-attire{padding:70px 8%;text-align:center;scroll-margin-top:20px}
.desktop-entourage .script-title,.desktop-attire .script-title{font:400 76px/1.3 var(--script);margin:12px 0 36px}
.desktop-entourage .eyebrow,.desktop-attire .eyebrow{font-family:Georgia,serif;letter-spacing:.1em;text-transform:uppercase}
.entourage-grid{display:grid;grid-template-columns:1fr 1fr;gap:36px 70px;max-width:1200px;margin:auto}
.desktop-entourage .role-title{font:400 23px/1.4 var(--serif);color:var(--gold)}
.desktop-entourage ul{list-style:none;padding:0;margin:0;font:20px/1.7 var(--serif)}
.desktop-entourage .large-group{grid-column:1/-1}.desktop-entourage .large-group ul{columns:2;column-gap:60px}.desktop-entourage li{break-inside:avoid;margin:8px 0}
.attire-cards{display:flex;justify-content:center;flex-wrap:wrap;gap:30px}.attire-card{margin:20px 0}.desktop-attire .attire-image{height:330px;width:340px;object-fit:contain}.desktop-attire .swatches{display:flex;justify-content:center;gap:20px;flex-wrap:wrap;margin:30px}.desktop-attire .swatches span{display:block;width:50px;height:50px;border-radius:50%;border:1px solid #fff4}
.desktop-gallery{max-width:1300px;margin:auto;padding:70px 45px;text-align:center}.desktop-gallery .script-title{font:400 76px/1.3 var(--script);margin:15px 0 30px}.desktop-gallery .serif-title{font:400 32px/1.4 var(--serif)}.desktop-gallery .body-copy{font:24px/1.6 var(--serif);margin-bottom:45px}.desktop-gallery .photo-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px}.desktop-gallery .photo-button{border:0;background:none;padding:0;aspect-ratio:3/4;cursor:pointer}.desktop-gallery .photo-button img{display:block;width:100%;height:100%;object-fit:cover}.desktop-gallery .wedding-date{font:30px/1.4 var(--serif);margin:45px 0}
@media(max-width:700px){.attire-cards{gap:10px}.attire-card{max-width:46%;margin:15px 0}.attire-card .attire-image{max-width:100%;max-height:220px;margin:0 0 15px}.attire-card figcaption{font-size:11px;line-height:1.5;letter-spacing:.03em}.mobile-countdown .serif-title{text-transform:none}}
@media(max-width:700px){body:not([data-page="envelope"]) .desktop-heading{display:none}.back-link.desktop-back{display:none}}
@media(prefers-reduced-motion:no-preference){.envelope-opener:hover{background:#ffffff04}.photo-button img{transition:filter .2s}.photo-button:hover img{filter:brightness(1.08)}}

body[data-page="rsvp"] .desktop-scenes{display:block}.rsvp-demo{max-width:760px;margin:auto;padding:65px 24px 100px;text-align:center}.rsvp-demo .script-title{font:400 66px/1.3 var(--script);margin:16px 0}.rsvp-demo .serif-title{font:400 34px/1.3 var(--serif)}.rsvp-demo-note{font:15px/1.6 Georgia,serif;opacity:.8}.rsvp-intro{font-size:26px}.rsvp-tabs{display:flex;justify-content:center;gap:12px;margin:28px 0}.rsvp-button{border:1px solid var(--gold);border-radius:4px;background:var(--gold);color:var(--brown);padding:14px 24px;cursor:pointer;min-height:48px;font:18px Georgia,serif}.rsvp-tabs button[aria-pressed="false"]{background:transparent;color:var(--cream)}.rsvp-card{background:var(--cream);color:var(--ink);padding:32px;border:1px solid var(--gold);border-radius:8px;box-shadow:0 12px 50px #0003}.rsvp-field{display:block;text-align:left;margin:22px 0;font:18px/1.6 Georgia,serif}.rsvp-field span{display:block;margin-bottom:8px}.rsvp-field input,.rsvp-field select{width:100%;padding:14px;border:1px solid #b28c74;border-radius:3px;background:#fffdf8;color:var(--ink);font:17px Georgia,serif;min-height:50px}.rsvp-text-button{border:0;background:none;color:inherit;cursor:pointer;text-decoration:underline;padding:14px;font:16px Georgia,serif}.rsvp-card form>.rsvp-button{display:block;width:100%;margin-top:18px}.rsvp-check{font-size:44px;color:#54704c}.rsvp-receipt{text-align:left;background:#e5d9c6;padding:22px;margin:24px 0;font:17px/1.6 Georgia,serif;overflow-wrap:anywhere}.rsvp-notification-example{margin-top:36px;text-align:left;border-top:1px solid #ccb08166;padding-top:24px}.rsvp-notification-example summary{cursor:pointer;padding:12px 0;font-size:23px}.rsvp-notification-example img{display:block;width:100%;max-width:430px;height:auto;margin:20px auto;border-radius:12px}.rsvp-search-results button{display:block;margin:14px auto}.rsvp-samples{display:flex;flex-wrap:wrap;justify-content:center}@media(max-width:700px){.rsvp-demo{padding:30px 18px 90px}.rsvp-demo .script-title{font-size:44px}.rsvp-card{padding:24px 18px}}
