@font-face{font-family:Cormorant;src:url('assets/cormorant.ttf')}@font-face{font-family:Comforter;src:url('assets/comforter.ttf')}
:root{--paper:#fff8e7;--ink:#392d2b;--wine:#b34c4e;--deep:#392d2b;--muted:#75665e;--line:#c8b9a0;--serif:Cormorant,Georgia,serif;--script:Comforter,cursive;--coral:#ef9c91;--pink:#f0d1d6;--butter:#f3dc8f}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:30px}body{margin:0;color:var(--ink);background:var(--paper);font:17px/1.75 Georgia,serif}img{display:block;max-width:100%}button,input,textarea,select{font:inherit}button,a,input,select,textarea{-webkit-tap-highlight-color:transparent}button,a{touch-action:manipulation}a{color:inherit;text-decoration-thickness:1px;text-underline-offset:4px}[hidden]{display:none!important}button{cursor:pointer}a:focus-visible,button:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible{outline:3px solid #b34c4e;outline-offset:5px}h1,h2,h3,p,figure{margin:0}h1,h2,h3{font-weight:400}p+ p{margin-top:17px}main{overflow:hidden}section{position:relative}section[hidden]{display:none!important}.section-inner,.venue-inner{max-width:1160px;margin:auto;padding:85px 40px;min-width:0}.script-heading{font:500 clamp(38px,4.4vw,62px)/1.05 var(--serif);letter-spacing:-.03em;margin:12px 0 27px;text-wrap:balance}.eyebrow,.edition,.edition-footer,.insert-number,.palette-label{font:11px/1.5 'Courier New',monospace;letter-spacing:.1em;text-transform:uppercase}.section-intro{max-width:650px;margin:0 auto 32px}.signature{font:38px/1.2 var(--script);color:var(--wine)}.small-print{font:14px/1.7 Georgia;color:var(--muted);margin-top:20px}.button{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:49px;max-width:100%;padding:14px 26px;background:var(--ink);color:var(--paper);border:1.5px solid var(--ink);border-radius:7px;text-decoration:none;font:13px/1.5 'Courier New',monospace;text-align:center;white-space:normal;overflow-wrap:anywhere;box-shadow:3px 3px 0 #392d2b33;transition:background .2s,transform .2s}.button:hover{background:var(--wine);transform:translateY(-2px)}.contact-action[aria-disabled=true]{opacity:.55;pointer-events:none;box-shadow:none}.skip-link{position:fixed;top:-150px;z-index:999;padding:14px;background:var(--paper)}.skip-link:focus{top:12px}.masthead{max-width:1240px;margin:auto;padding:24px 40px;display:flex;align-items:center;justify-content:space-between;gap:25px;border-bottom:1px dashed var(--line)}.monogram{font:34px var(--script);text-decoration:none}.masthead nav{display:flex;gap:25px;font:12px 'Courier New',monospace}.masthead-date{font:12px 'Courier New',monospace}.hero{max-width:1240px;margin:30px auto 70px;padding:35px 40px 20px;background:#fffdf5;border:2px solid var(--ink);border-radius:10px;box-shadow:10px 10px 0 var(--butter)}.hero-inner{display:grid;grid-template-columns:1fr 1fr;align-items:center;gap:55px}.brand{font:bold clamp(54px,7vw,100px)/1 Georgia,serif;letter-spacing:-.075em;font-style:italic;white-space:nowrap}.brand span{color:var(--wine)}.hero-copy .brand{margin:36px 0 30px}.edition{display:flex;justify-content:space-between}.edition span{color:var(--wine)}#names{display:flex;flex-wrap:wrap;align-items:baseline;column-gap:14px;font:500 clamp(45px,5vw,68px)/1.1 var(--serif);margin:12px 0 26px}#names i{font:40px var(--script);color:var(--wine)}.love-definition{font:24px/1.4 var(--serif);max-width:350px}.date-pill{display:inline-block;border-bottom:2px solid var(--coral);padding:16px 0 7px;font:13px/1.7 'Courier New',monospace;margin-top:16px}.hero-collection{position:relative;padding:10px 20px 30px;isolation:isolate}.hero-illustration{background:#f8e8b8;border:1.5px solid var(--ink);padding:5px 18px 17px;border-radius:5px;transform:rotate(3deg);margin-bottom:20px}.hero-illustration img{width:88%;margin:auto}.insert-number{display:block;text-align:right}.cover-photo{width:68%;margin:-65px auto 0!important;transform:rotate(-5deg);position:relative;z-index:2}.portraits{display:flex;gap:15px;width:66%;margin:0 auto;padding-top:18px}.portraits .insert-photo{flex:1;min-width:0;padding:6px}.portraits .photo-window{aspect-ratio:1}.portraits figcaption{font-size:18px}.insert-photo{background:#fffdf6;border:1px solid var(--ink);padding:11px 11px 17px;border-radius:3px;box-shadow:3px 5px 0 #392d2b15;min-width:0}.photo-window{position:relative;overflow:hidden;aspect-ratio:1.15;background:#f0e5d4;isolation:isolate}.photo-window>img{width:100%;height:100%;object-fit:contain;display:block}.photo-window.has-photo>img{object-fit:cover}.photo-hint{position:absolute;bottom:8px;left:10px;right:10px;text-align:center;font:10px/1.3 'Courier New',monospace;color:#665047}.has-photo .photo-hint{display:none}figcaption{font:26px/1.2 var(--script);text-align:center;margin-top:12px;color:var(--wine);overflow-wrap:anywhere}.edition-footer{display:flex;justify-content:space-between;gap:25px;border-top:1px dashed var(--line);padding-top:15px;margin-top:25px}.letter-grid{display:grid;grid-template-columns:1.2fr .8fr;gap:90px;align-items:center}.letter{position:relative}.letter .signature{margin-top:28px}.calendar-note{padding:30px 24px 38px;background:#f2cfd2;border:1.5px solid var(--ink);border-radius:4px;transform:rotate(3deg);position:relative;box-shadow:6px 6px 0 #e5b8be}.calendar-note h3{font:36px var(--serif);margin:14px 0}.calendar-note h3 span{font-size:20px}.calendar{width:100%;table-layout:fixed;border-collapse:collapse;text-align:center;font:16px/2.1 Georgia}.calendar th{font:11px/2 'Courier New',monospace}.calendar td{height:36px}.wedding-day{background:var(--ink);border-radius:50%;color:#fff}.calendar-label{text-align:center;font:26px var(--script);margin-top:15px}.calendar-heart{position:absolute;right:-15px;top:-35px;color:var(--wine);font-size:70px;transform:rotate(-16deg)}.story{background:#f7e1d5;border-block:1px solid #ddc7b7}.story-grid{display:grid;grid-template-columns:.9fr 1.1fr;gap:65px;align-items:center}.story-photos{display:grid;grid-template-columns:1fr 1fr;gap:16px;position:relative;padding-bottom:100px}.story-photos .insert-photo:first-child{transform:rotate(-5deg);margin-top:25px}.story-photos .insert-photo:nth-child(2){transform:rotate(5deg)}.story-drawing{position:absolute;bottom:-15px;right:10%;width:160px;background:var(--paper);border:1px solid var(--ink);border-radius:50%;padding:10px}.story-copy .signature{margin-top:28px}.venue{text-align:center}.venue-card{display:grid;grid-template-columns:.85fr 1.15fr;border:2px solid var(--ink);border-radius:8px;background:#fffcf3;margin-top:40px;box-shadow:8px 8px 0 var(--butter);overflow:hidden}.venue-art{background:#f3dc8f;display:flex;align-items:center;padding:25px;border-right:2px dashed var(--ink)}.venue-copy{padding:45px 35px}.venue-copy h3{font:58px/1.05 var(--serif);margin:15px 0 20px;overflow-wrap:anywhere}.venue-copy address{font-style:normal;font-size:21px;line-height:1.5;overflow-wrap:anywhere}.venue-time{font:12px/1.8 'Courier New',monospace;margin:22px 0}.venue-note{font:30px var(--script);margin:35px auto 0;max-width:650px}.schedule{background:#98b2a4;border-block:1px solid var(--ink)}.schedule .eyebrow,.schedule .script-heading{text-align:center}.timeline{list-style:none;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px;margin:40px 0 25px;padding:0}.timeline li{display:grid;grid-template-columns:70px 1fr;gap:12px 24px;background:var(--paper);border:1.5px solid var(--ink);padding:28px;position:relative;box-shadow:4px 4px 0 #392d2b22;min-width:0}.timeline time{grid-column:1;font:30px var(--serif)}.timeline-detail{grid-column:2;grid-row:1 / span 2}.timeline h3{font:28px/1.15 var(--serif);margin-bottom:12px}.timeline p{font-size:15px;line-height:1.7}.program-number{grid-column:1;grid-row:2;font:12px 'Courier New',monospace;color:var(--wine)}.event-heart{position:absolute;right:12px;bottom:5px;color:var(--wine);opacity:.35}.schedule-timezone{text-align:center;font:11px/1.7 'Courier New',monospace}.wishes{text-align:center}.wish-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:25px;margin:45px 0}.wish-note{border:1px solid var(--ink);padding:25px 22px 30px;background:#fffdf5;border-radius:50% 50% 5px 5px / 60px 60px 5px 5px}.wish-note:nth-child(2){background:#f4e1a1}.wish-note:nth-child(3){background:#f2d4da}.wish-symbol{font:55px/1.5 Georgia;color:var(--wine)}.wish-note h3{font:30px/1.1 var(--serif);margin:0 0 17px}.wish-note p{font-size:15px;line-height:1.8}.moments{background:#f3d6dc;text-align:center;border-block:1px solid #c8b9a0}.moment-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:22px;padding:20px 0}.moment-grid .insert-photo:nth-child(odd){transform:rotate(-3deg)}.moment-grid .insert-photo:nth-child(even){transform:rotate(3deg);margin-top:24px}.moment-grid .photo-window{aspect-ratio:.9}.palette-panel{display:grid;grid-template-columns:1fr 1fr;gap:70px;align-items:center}.palette-panel .section-intro{margin:0}.palette-sheet{border:1px solid var(--ink);border-radius:7px;padding:32px 25px;text-align:center;background:#fffdf5;box-shadow:5px 5px 0 #eadfcb}.dress-palette{list-style:none;display:flex;justify-content:center;flex-wrap:wrap;gap:18px 12px;margin:30px 0;padding:0}.dress-palette li{width:66px;text-align:center;font:10px/1.5 'Courier New',monospace;overflow-wrap:anywhere}.swatch{display:block;width:60px;height:76px;border:1px solid var(--ink);border-radius:50% 50% 45% 45%;transform:rotate(-8deg);margin-bottom:13px}.palette-sheet .signature{font-size:30px}.rsvp{background:#f0dfad;border-block:1px solid #c8b9a0}.rsvp-layout{display:grid;grid-template-columns:.8fr 1.2fr;gap:70px;align-items:start}.rsvp .section-heading{position:sticky;top:35px}.rsvp .section-heading>img{max-width:310px;margin-top:35px}.guest-form{background:#fffdf5;padding:32px;border:1.5px solid var(--ink);border-radius:7px;box-shadow:7px 7px 0 #392d2b22}.guest-form fieldset{padding:24px 0;margin:0;border:0;border-bottom:1px dashed var(--line);min-width:0}.guest-form legend{font:25px/1.25 var(--serif);padding:0;max-width:100%;overflow-wrap:anywhere}.guest-form input:not([type=checkbox]):not([type=radio]),.guest-form textarea,.guest-form select{width:100%;background:var(--paper);border:1px solid var(--line);border-radius:4px;min-height:46px;padding:10px 12px;color:var(--ink);font:16px/1.5 Arial,sans-serif}.guest-form textarea{min-height:90px;resize:vertical}.choice-row{display:flex;flex-wrap:wrap;gap:12px 20px}.choice{display:flex;align-items:center;gap:10px;min-height:42px;font:15px/1.5 Arial,sans-serif}.choice input{accent-color:var(--wine);width:18px;height:18px;flex-shrink:0}.guest-form small,.form-privacy{font:12px/1.7 Arial,sans-serif;display:block;margin-top:10px;color:var(--muted)}.question-age-list label{display:block;margin-top:18px}.form-trap{position:absolute!important;left:-10000px!important;width:1px;height:1px;overflow:hidden}.guest-consent{margin:25px 0;font:12px/1.6 Arial,sans-serif}.consent-choice{display:flex;align-items:flex-start;gap:9px}.consent-choice input{accent-color:var(--wine);margin:4px 0 0;flex-shrink:0}.privacy-policy{display:block;margin:10px 0 0 22px}.guest-form .button{width:100%;margin-top:20px}.form-status,#guest-status{font:14px/1.7 Arial,sans-serif;margin-top:16px}.is-error{color:#a52e3e}.text-button{background:none;border:0;text-decoration:underline;color:var(--wine);padding:12px 0}.correspondence{display:grid;grid-template-columns:65px 1fr auto;gap:32px;align-items:center;padding-block:48px}.correspondence .script-heading{font-size:39px;margin:0 0 15px}.correspondence .eyebrow{margin-bottom:10px}.correspondence .section-intro{font-size:15px;margin:0;max-width:600px}.correspondence-icon{font-size:55px;line-height:1;color:var(--wine)}.contact-name{font:28px var(--script);color:var(--wine);margin-top:15px}.contacts .section-inner{border-top:1px dashed var(--line)}.closing{padding:75px 25px;text-align:center;background:#ed9b91;border-top:2px solid var(--ink)}.closing .brand{margin:55px 0 30px}.closing .signature{color:var(--ink);margin:20px 0}.closing-date{font:12px 'Courier New',monospace;margin-bottom:20px}.closing>a{font:12px 'Courier New',monospace}.closing .edition-footer{display:block;max-width:1100px;margin:40px auto 0;border-color:#392d2b55}.countdown{display:flex;justify-content:center;gap:40px;margin:30px 0 20px}.countdown span{font:66px/1 var(--serif)}.countdown small{display:block;font:10px 'Courier New',monospace;margin-top:9px}.countdown-target{font:12px/1.7 'Courier New',monospace}.welcome-screen{position:fixed;inset:0;z-index:100;background:#f0d5d9;display:grid;place-items:center;overflow-y:auto;padding:24px;background-image:radial-gradient(#b34c4e22 1px,transparent 1px);background-size:16px 16px}.welcome-paper{width:min(550px,100%);background:#fffaf0;border:2px solid var(--ink);border-radius:8px;padding:28px;text-align:center;box-shadow:7px 7px 0 #392d2b20;margin:auto}.welcome-paper .brand{font-size:62px}.welcome-portrait{width:100%;max-width:310px;aspect-ratio:1.6;margin:20px auto;background:#f6e7ba;border:1px solid var(--ink);border-radius:4px}.welcome-portrait>img{object-fit:contain}.welcome-names{font:40px/1.1 var(--serif)}.welcome-paper h2{font:24px/1.25 var(--serif);margin:16px 0}.welcome-date{font:12px/1.5 'Courier New',monospace;margin:15px 0 25px}.welcome-active,.welcome-active body{overflow:hidden}.welcome-active #invitation-site{visibility:hidden}.welcome-opened{animation:welcome-away .35s ease forwards}@keyframes welcome-away{to{opacity:0;transform:translateY(-20px)}}.mobile-theatre-header{position:fixed;right:18px;bottom:18px;z-index:60}.music-toggle{display:flex;justify-content:center;align-items:center;gap:5px;width:52px;height:52px;border:1.5px solid var(--ink);border-radius:50%;background:var(--paper);color:var(--wine);box-shadow:3px 3px 0 #392d2b22}.music-heart{font-size:21px}.music-symbol{font-size:18px}.music-hint,#music-hint{max-width:170px;position:absolute;bottom:58px;right:0;background:var(--paper);padding:10px;border:1px solid var(--ink);font:11px/1.5 Arial,sans-serif}.preview-banner{padding:10px 20px;background:#392d2b;color:var(--paper);text-align:center;font:12px/1.5 Arial,sans-serif}.reveal-target{transition:opacity .6s ease,transform .6s ease}.reveal-target:not(.is-visible){opacity:0;transform:translateY(18px)}.motion-disabled .reveal-target{opacity:1!important;transform:none!important}.welcome-focus-target:focus{outline:none}.inline-text-link{color:inherit}
@media(max-width:1180px){.masthead{padding:22px 28px}.hero{margin:24px 28px 50px}.hero-inner{gap:25px}.hero-collection{padding-inline:8px}.section-inner,.venue-inner{padding-inline:32px}.letter-grid,.story-grid,.palette-panel,.rsvp-layout{gap:38px}.moment-grid{grid-template-columns:repeat(2,minmax(0,1fr));max-width:700px;margin:auto}.correspondence{grid-template-columns:45px 1fr;gap:20px}.correspondence>.button{grid-column:2;justify-self:start}.hero-copy .brand{font-size:70px}.masthead-date{display:none}}
@media(max-width:760px){body{font-size:16px}.section-inner,.venue-inner{padding:55px 24px}.masthead{padding:18px 24px}.masthead nav{gap:15px;font-size:11px}.hero{margin:16px 18px 40px;padding:25px 20px 18px;box-shadow:5px 5px 0 var(--butter)}.hero-inner{grid-template-columns:1fr;gap:20px}.hero-copy{text-align:center}.edition{font-size:9px}.hero-copy .brand{font-size:72px;margin:27px 0}.hero-copy .eyebrow{font-size:10px}#names{justify-content:center;font-size:46px;gap:8px}.love-definition{margin:auto;font-size:24px}.date-pill{font-size:12px}.hero-collection{max-width:470px;width:100%;margin:auto;padding:10px 15px 25px}.hero-illustration{margin:0 15% 20px 0;padding:5px 12px 10px}.hero-illustration img{width:90%}.cover-photo{width:70%;margin:-80px 0 0 auto!important}.portraits{width:70%;margin-left:0;padding-top:10px}.portraits figcaption{font-size:22px}.edition-footer{font-size:8px;gap:10px}.letter-grid,.story-grid,.palette-panel,.rsvp-layout{grid-template-columns:1fr;gap:40px}.calendar-note{width:min(100%,370px);justify-self:center;transform:rotate(2deg)}.script-heading{font-size:43px}.signature{font-size:34px}.story-photos{max-width:500px;margin:auto;width:100%}.venue-card{grid-template-columns:1fr;box-shadow:5px 5px 0 var(--butter)}.venue-art{border-right:0;border-bottom:1px dashed var(--ink);padding:10px}.venue-art img{max-height:170px;margin:auto}.venue-copy{padding:30px 22px}.venue-copy h3{font-size:50px}.venue-copy address{font-size:20px}.venue-note{font-size:29px}.timeline{grid-template-columns:1fr;gap:17px;margin-top:30px}.timeline li{padding:25px 20px;gap:10px 17px;grid-template-columns:58px 1fr}.timeline h3{font-size:27px}.timeline time{font-size:27px}.wish-grid{grid-template-columns:1fr;max-width:430px;margin:30px auto}.wish-note{padding:23px 27px 30px;border-radius:7px;display:grid;grid-template-columns:45px 1fr;gap:10px 15px;text-align:left}.wish-symbol{grid-row:1 / span 2;font-size:42px}.wish-note h3{margin:0}.wish-note p{grid-column:2}.moment-grid{gap:16px;padding:12px 3px}.moment-grid .insert-photo{padding:7px 7px 13px}.moment-grid figcaption{font-size:23px}.moment-grid .insert-photo:nth-child(n){transform:rotate(0);margin-top:0}.moment-grid .photo-window{aspect-ratio:.85}.palette-sheet{padding:25px 18px}.dress-palette{gap:18px 13px}.rsvp .section-heading{position:static;text-align:center}.rsvp .section-heading>img{max-width:190px;margin:20px auto 0}.guest-form{padding:24px 19px;box-shadow:4px 4px 0 #392d2b22}.guest-form legend{font-size:25px}.correspondence{padding-block:35px;grid-template-columns:35px 1fr;gap:16px}.correspondence .script-heading{font-size:35px}.correspondence-icon{font-size:38px}.correspondence>.button{grid-column:2}.closing{padding:55px 24px}.countdown{gap:22px}.countdown span{font-size:48px}.closing .brand{font-size:70px;margin:40px 0 25px}.welcome-screen{padding:18px}.welcome-paper{padding:24px 20px}.welcome-paper .brand{font-size:56px}.welcome-names{font-size:35px}.welcome-portrait{max-width:260px;margin-block:15px}.welcome-paper h2{font-size:23px}.welcome-date{margin:12px 0 20px}}
@media(max-width:360px){.hero{margin-inline:12px;padding-inline:16px}.section-inner,.venue-inner{padding-inline:19px}.script-heading{font-size:37px}.masthead{padding-inline:18px}.masthead nav{gap:10px}.hero-copy .brand{font-size:62px}#names{font-size:40px}.countdown{gap:16px}.countdown span{font-size:40px}.correspondence{grid-template-columns:1fr}.correspondence-icon{display:none}.correspondence>.button{grid-column:1}.moment-grid{gap:10px}.moment-grid figcaption{font-size:21px}}
@media(max-height:650px) and (min-width:761px){.welcome-paper{display:grid;grid-template-columns:1fr 1fr;width:min(850px,95%);gap:12px 25px;align-items:center;padding:25px}.welcome-paper .brand{grid-column:1;grid-row:1}.welcome-portrait{grid-column:1;grid-row:2 / span 4;max-width:330px;aspect-ratio:1.2;margin:0}.welcome-paper>.welcome-names,.welcome-paper>h2,.welcome-paper>.welcome-date,.welcome-paper>.button{grid-column:2;margin:0}.welcome-paper .welcome-names{grid-row:1 / span 2}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition:none!important}.reveal-target{opacity:1!important;transform:none!important}}

.hero-copy .love-definition{display:block;text-decoration:none}.hero-copy .love-definition:hover{text-decoration:underline;text-decoration-color:var(--coral)}
