@font-face{font-family:Cormorant;src:url('assets/cormorant.ttf')}@font-face{font-family:Comforter;src:url('assets/comforter.ttf')}
:root{--paper:#f3ecdf;--ink:#40392f;--muted:#70685c;--wine:#62694e;--gold:#ab8c54;--line:#c6bba6;--deep:#3e4535;--serif:Cormorant,Georgia,serif;--script:Comforter,cursive;--grain:repeating-linear-gradient(91deg,#fff1 0 1px,transparent 1px 4px),repeating-linear-gradient(0deg,#392d1810 0 1px,transparent 1px 3px)}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--grain),#d8cfbc;color:var(--ink);font:18px/1.65 var(--serif);overflow-x:clip}h1,h2,h3,p,figure{margin:0}a{color:inherit}button,input,select,textarea{font:inherit}button,a,input,textarea,select{-webkit-tap-highlight-color:transparent}img{max-width:100%;display:block}[hidden]{display:none!important}button,a{touch-action:manipulation}button{cursor:pointer}a:focus-visible,button:focus-visible{outline:3px solid #ab684e;outline-offset:5px}section{scroll-margin-top:32px}#invitation-site{max-width:1600px;margin:auto;box-shadow:0 0 80px #392d1820}.skip-link{position:fixed;top:-100px;background:white;z-index:100;padding:12px}.skip-link:focus{top:10px}
.masthead{display:flex;align-items:center;justify-content:space-between;padding:20px 6%;background:var(--deep);color:var(--paper);border-bottom:1px dashed #e8dfc83a}.monogram{font:32px var(--script);text-decoration:none}.masthead nav{display:flex;gap:30px;font:12px/1.4 'Courier New',monospace}.masthead nav a{text-decoration:none}.masthead-date,.archive-label,.eyebrow,.chapter-tab{font:11px/1.8 'Courier New',monospace;letter-spacing:.15em;text-transform:uppercase}.archive-label{display:inline-block;border-block:1px solid currentColor;padding:8px 0}.hero{padding:75px 6% 35px;background:var(--grain),var(--deep);color:var(--paper);position:relative}.hero:before{content:'';position:absolute;inset:18px;border:1px dashed #d6c5a84a;pointer-events:none}.hero-inner{display:grid;grid-template-columns:.85fr 1.15fr;gap:55px;align-items:center;max-width:1280px;margin:auto}.hero-copy{position:relative;padding:20px 0 50px}.hero-copy>.eyebrow{margin:30px 0 20px;max-width:300px}.hero h1{font:400 clamp(64px,7vw,110px)/.92 var(--serif);letter-spacing:-.035em}.hero h1>span{display:block;overflow-wrap:anywhere}.hero h1 .ampersand{font:58px/1 var(--script);color:#c7ae7e;margin:12px 0 6px 25%}.hero-date{font:italic 30px var(--serif);margin-top:28px}.hero-city{font:12px 'Courier New',monospace;letter-spacing:.15em;margin-top:15px}.hero-rule{display:none}.hero-next{display:block;text-align:center;font:12px 'Courier New',monospace;text-decoration:none;padding:35px 0 20px}
.photo-composition{min-width:0;position:relative;background:none center/cover;padding:55px 38px 50px;box-shadow:0 18px 30px #0003;transform:rotate(1deg)}.hero-photo-deck{display:grid;grid-template-columns:1fr 1fr;gap:15px;position:relative}.photo-card{background:#fffaf0;padding:10px 10px 0;box-shadow:2px 7px 12px #352e242b;color:var(--ink);min-width:0}.main-photo{grid-column:1/-1;width:75%;justify-self:center;transform:rotate(-5deg);z-index:1}.back-left{width:82%;justify-self:center;transform:rotate(5deg);margin-top:-28px;z-index:2}.back-right{width:82%;justify-self:center;transform:rotate(-7deg);margin-top:-25px;z-index:2}.photo-window{position:relative;display:flex;align-items:center;justify-content:center;flex-direction:column;width:100%;aspect-ratio:1;overflow:hidden;background:var(--grain),#e1d7c4;color:#797b62}.photo-window>img{position:absolute;width:100%;height:100%;object-fit:cover;inset:0}.photo-window.has-photo>*:not(img){display:none}.photo-initial{font:70px var(--script)}.photo-kicker,.photo-hint,.photo-small{font:10px/1.5 'Courier New',monospace;text-align:center;padding:8px}.photo-small{margin-top:12px}.back-left .photo-window,.back-right .photo-window{aspect-ratio:1.2}.photo-card figcaption{font:25px/1.2 var(--script);text-align:center;padding:12px 2px 15px;overflow-wrap:anywhere}.album-stamp{position:absolute;right:-15px;top:3px;border:3px double #8c4536;border-radius:50%;width:90px;height:90px;display:grid;place-content:center;text-align:center;font:13px/1.3 'Courier New',monospace;text-transform:uppercase;color:#8c4536;transform:rotate(14deg);z-index:4}
.paper-section,.moments{position:relative;padding:95px 6%;background:var(--grain),var(--paper)}.section-inner{max-width:1160px;margin:auto;position:relative;min-width:0}.script-heading{font:400 clamp(42px,5vw,66px)/1.05 var(--serif);letter-spacing:-.025em;margin:18px 0 25px}.eyebrow{color:var(--wine)}.section-heading{text-align:center;max-width:680px;margin:0 auto 50px}.section-intro{font:18px/1.8 var(--serif);max-width:650px;margin:auto}.invitation{background:#e6dcc8;padding-top:100px}.chapter-tab{position:absolute;top:0;left:6%;background:#62694e;color:#fff7e6;padding:9px 24px;transform:rotate(-2deg)}.invitation-grid{display:grid;grid-template-columns:1.3fr .8fr;gap:70px;align-items:center}.letter{background:var(--grain),#fff9eb;padding:50px 45px;box-shadow:8px 12px 0 #c4b59a55,0 20px 30px #3c322016;position:relative;transform:rotate(-1deg)}.letter:before{content:'';position:absolute;width:110px;height:30px;background:#9a9c7377;top:-13px;left:calc(50% - 55px);transform:rotate(4deg);border-inline:2px dotted #fff8}.letter>p:not(.eyebrow){margin-top:20px;font-size:21px}.letter .signature{font:34px/1.3 var(--script)!important}.calendar-note{padding:38px 25px 25px;background:repeating-linear-gradient(#fffaf0 0 31px,#b2b2a433 32px),#fffaf0;box-shadow:5px 12px 20px #3c322022;transform:rotate(4deg);position:relative}.calendar-note:before{content:'';position:absolute;left:15px;right:15px;top:8px;height:8px;background:radial-gradient(circle,#9d9075 2px,transparent 3px) 0 0/24px 8px}.calendar-note h3{font:38px var(--serif);margin:10px 0 20px}.calendar{width:100%;border-collapse:collapse;text-align:center;font:17px/2 var(--serif);table-layout:fixed}.calendar th{font:11px 'Courier New',monospace;padding-bottom:12px}.calendar td{height:36px}.wedding-day{background:#62694e;color:#fff;border-radius:50%}.date-heart{display:none}.calendar-caption{font:27px var(--script);text-align:center;margin-top:20px}.story{background:var(--grain),#c7c9b6;padding-top:105px}.story-grid{display:grid;grid-template-columns:1.15fr 1fr;gap:65px;align-items:center}.story-grid>.chapter-tab{top:-65px;left:auto;right:0;background:#eee5d2;color:var(--ink)}.memory-pair{display:grid;grid-template-columns:1fr 1fr;gap:14px;align-items:start;padding:20px 8px}.memory-card{padding:10px 10px 0;background:#fffaf0;box-shadow:5px 12px 15px #31372129;transform:rotate(-6deg);position:relative}.memory-two{transform:rotate(7deg);margin-top:75px}.memory-card:before{content:'';position:absolute;width:65px;height:22px;background:#d1b98690;left:30%;top:-10px;z-index:2}.memory-card .photo-window{aspect-ratio:.75}.memory-card figcaption{font:26px/1.3 var(--script);padding:16px 0;text-align:center}.story-copy h2{font:49px/1.07 var(--serif);margin:18px 0 22px}.story-copy>p:not(.eyebrow){font-size:20px;margin-top:20px}.story-postscript{font-style:italic}.venue{padding:95px 6%;background:var(--grain),#b99677;text-align:center;position:relative}.venue-inner{max-width:850px;margin:auto;background:var(--grain),#f7efdf;padding:55px 65px;outline:1px solid #fff8;outline-offset:10px;box-shadow:0 15px 30px #45352127;transform:rotate(-1deg)}.venue-card{border-block:1px dashed #aa9b81;padding:30px 0;margin:30px 0 20px}.venue-card h3{font:64px/1.1 var(--serif);letter-spacing:.04em;overflow-wrap:anywhere}.venue-card address{font:24px/1.6 var(--serif);margin:22px auto;max-width:500px}.venue-time{font:12px/1.7 'Courier New',monospace;margin:22px 0}.venue-flourish,.ornament-line{display:none}.venue-note{font:30px/1.4 var(--script)}.button,.contact-action,.contact-phone{display:inline-flex;align-items:center;justify-content:center;gap:0;max-width:100%;min-height:48px;padding:15px 28px;border:1px solid #62694e;background:#62694e;color:#fff9e9;text-decoration:none;font:12px/1.5 'Courier New',monospace;text-align:center;letter-spacing:.07em;white-space:normal;overflow-wrap:anywhere}.button:hover,.contact-action:hover{background:#444b35}.contact-action[aria-disabled=true]{opacity:.55;pointer-events:none}
.schedule{background:var(--grain),#f3ecdf}.timeline{list-style:none;padding:0;display:grid;grid-template-columns:1fr 1fr;gap:28px;max-width:1000px;margin:auto}.timeline li{position:relative;padding:30px;background:#fff9ed;box-shadow:3px 7px 10px #44382215;border-top:5px solid #b1b59a;display:grid;grid-template-columns:95px 1fr;gap:20px}.timeline li:nth-child(2){transform:rotate(2deg)}.timeline li:nth-child(3){transform:rotate(-2deg)}.timeline-time time{font:35px var(--serif);display:block}.timeline-time>span{display:block;color:#888b6b;font:12px 'Courier New',monospace;margin-top:8px}.timeline-detail h3{font:27px/1.2 var(--serif);margin-bottom:12px}.timeline-detail p{font:16px/1.6 var(--serif)}.timeline-mark{display:none}.schedule-timezone{text-align:center;font:11px 'Courier New',monospace;margin-top:35px}.wishes{background:var(--grain),#e1d3bb}.wish-notes{display:grid;grid-template-columns:repeat(3,1fr);gap:30px}.wish-note{padding:35px 27px;background:#fff9e9;box-shadow:4px 8px 16px #44382222;position:relative;border:1px solid #b9ab8a}.wish-note:nth-child(2){background:#e5e6d5;transform:rotate(-2deg)}.wish-number{font:11px 'Courier New',monospace;color:#867b65}.wish-symbol{display:block;font:42px var(--script);margin:12px 0;color:#8f5b45}.wish-note h3{font:30px/1.1 var(--serif);margin-bottom:20px}.wish-note p{font:17px/1.75 var(--serif)}.wishes-signature{text-align:center;font:32px var(--script);margin-top:40px}.moments{background:var(--grain),#4d5340;color:#f9f2df}.moments .eyebrow{color:#d1c6a9}.moments-gallery{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:28px;padding:20px 10px}.moment-card{padding:11px 11px 0;background:#fff9ec;color:#40392f;transform:rotate(-3deg);box-shadow:7px 15px 25px #0003;position:relative}.moment-card:nth-child(even){transform:rotate(4deg);margin-top:30px}.moment-card .photo-window{aspect-ratio:.8}.moment-card figcaption{text-align:center;font:25px/1.3 var(--script);padding:18px 0;overflow-wrap:anywhere}.photo-tape{position:absolute;width:65px;height:24px;background:#c5b28e88;left:calc(50% - 32px);top:-10px;z-index:2;transform:rotate(-5deg)}.dress-code{background:var(--grain),#ded6c6}.dress-code-letter{text-align:center;padding:45px;background:var(--grain),#f8f1e4;border:1px dashed #b5a78e;outline:9px solid #f8f1e4;box-shadow:0 16px 35px #45352116}.dress-code-ornament{display:none}.dress-palette{list-style:none;display:flex;justify-content:center;gap:22px;flex-wrap:wrap;padding:30px 0;margin:0}.dress-palette li{width:110px;font:12px/1.5 'Courier New',monospace;overflow-wrap:anywhere}.swatch{display:block;width:100%;height:130px;margin-bottom:14px;box-shadow:3px 5px 8px #44382222;background-image:var(--grain)!important;clip-path:polygon(0 0,100% 0,100% 94%,95% 100%,90% 94%,85% 100%,80% 94%,75% 100%,70% 94%,65% 100%,60% 94%,55% 100%,50% 94%,45% 100%,40% 94%,35% 100%,30% 94%,25% 100%,20% 94%,15% 100%,10% 94%,5% 100%,0 94%)}.dress-code-note{font:italic 19px/1.6 var(--serif)}
.rsvp{background:var(--grain),#d4d7c6}.rsvp>.section-inner{display:grid;grid-template-columns:.85fr 1.15fr;gap:65px;align-items:start}.rsvp .section-heading{text-align:left;position:sticky;top:35px}.guest-form{background:repeating-linear-gradient(#fffbf1 0 32px,#c9bc9d26 33px);padding:38px;box-shadow:5px 12px 25px #3c322022;border-top:8px solid #8a7352;min-width:0}.guest-form fieldset{border:0;border-bottom:1px solid #c6bba6;padding:20px 0;margin:0;min-width:0}.guest-form legend{font:25px/1.3 var(--serif);padding-top:15px}.guest-form label{font:15px/1.6 var(--serif)}.guest-form input:not([type=radio]):not([type=checkbox]),.guest-form select,.guest-form textarea{display:block;box-sizing:border-box;width:100%;max-width:100%;min-height:46px;padding:10px;border:1px solid #b7ad95;background:#fffdf7;border-radius:0;font:16px var(--serif);color:var(--ink)}.guest-form textarea{min-height:95px}.choice-row{display:flex;flex-wrap:wrap;gap:12px 20px}.choice,.consent-choice{display:flex;align-items:start;gap:9px}.choice{min-height:35px}.choice input,.consent-choice input{margin-top:5px;accent-color:#62694e;flex-shrink:0}.guest-consent{margin:24px 0}.privacy-policy{display:block;font:12px/1.6 Arial,sans-serif;margin:10px 0}.form-trap{position:absolute!important;left:-9999px!important;width:1px;height:1px;overflow:hidden}.guest-form .button{width:100%}.form-status{font-size:16px;margin-top:16px}.question-age-list{display:flex;flex-wrap:wrap;gap:10px}.question-age-list label{width:110px}.telegram{padding-bottom:40px}.telegram-note{background:#e5dbc8;border:1px dashed #b4a68a;padding:45px;max-width:850px;text-align:center;position:relative}.telegram-note:before{content:'✉';position:absolute;right:25px;top:15px;font:48px var(--serif);color:#9c8564;transform:rotate(15deg)}.telegram .button{margin-top:25px}.contact-section{padding-top:20px}.contact-note{text-align:center;max-width:850px;margin:auto;padding:30px 40px 45px;border-bottom:1px solid #b7aa92}.contact-ornament{font-size:32px}.contact-description{font-size:20px}.contact-name{font:30px var(--script);margin:12px}.contact-phone{margin-top:23px}.closing{background:none center/cover;padding:110px 15% 100px;text-align:center}.closing>p,.closing>h2{position:relative}.closing .script-heading{font-size:clamp(36px,4.4vw,60px)}.countdown{display:flex;justify-content:center;gap:18px;margin:25px 0}.countdown>div{min-width:65px}.countdown span{font:50px/1 var(--serif);font-variant-numeric:tabular-nums}.countdown small{font:10px 'Courier New',monospace;display:block;margin-top:10px}.countdown i{font:25px var(--serif)}.countdown-target,.closing-date{font:11px/1.6 'Courier New',monospace}.closing-names{font:38px var(--script);margin:20px 0}.text-link{display:inline-block;font:12px 'Courier New',monospace;margin-top:25px}footer{background:var(--deep);color:var(--paper);padding:25px;text-align:center;font:11px/1.5 'Courier New',monospace}
.welcome-screen{position:fixed;inset:0;z-index:1000;overflow:auto;background:var(--grain),var(--deep);display:grid;place-items:center;padding:24px;min-height:100dvh}.welcome-paper{width:min(680px,100%);padding:45px;background:none center/cover;box-shadow:0 25px 80px #0005;display:grid;grid-template-columns:.7fr 1fr;gap:35px;align-items:center;position:relative}.welcome-portrait{aspect-ratio:.8;background:#eee4d0;border:8px solid #fff9ed;transform:rotate(-5deg);box-shadow:0 9px 15px #40392f33}.welcome-initials{font:45px var(--script)}.welcome-portrait-note{font:10px 'Courier New',monospace;text-align:center}.welcome-copy{text-align:center}.welcome-names{font:37px/1.15 var(--serif)}.welcome-copy h2{font:24px/1.2 var(--serif);margin:22px 0}.welcome-date{font:12px 'Courier New',monospace}.welcome-hint{font:11px/1.6 'Courier New',monospace;margin-top:25px}.welcome-ornament{margin:12px;color:#7a4938}.welcome-flourish{display:none}.welcome-open{position:absolute;inset:0;border:0;background:transparent;width:100%;height:100%;z-index:2}.welcome-active body{overflow:hidden}.welcome-active #invitation-site{visibility:hidden}.mobile-theatre-header{position:fixed;right:18px;bottom:18px;z-index:60}.welcome-pelmet{position:relative}.music-toggle{width:48px;height:48px;border-radius:50%;border:1px solid #c8bd9f;background:#4d5340;color:#fff7e8;display:grid;place-items:center;box-shadow:0 3px 12px #0003}.music-toggle svg{display:none}.music-heart{font-size:20px}#music-decoration{display:none}.music-hint{position:absolute;bottom:55px;right:0;width:180px;padding:10px;background:#fff9ec;color:#40392f;font:12px Arial}.preview-banner{background:#fff6d1;color:#40392f;padding:12px;text-align:center;font:12px Arial}.reveal-target{opacity:0;transform:translateY(18px);transition:opacity .7s,transform .7s}.reveal-target.is-visible,.motion-disabled .reveal-target{opacity:1;transform:none}
@media(min-width:1181px){.welcome-screen,.mobile-theatre-header{display:none}}
@media(max-width:1000px){.hero-inner{gap:30px}.hero h1{font-size:74px}.photo-composition{padding:40px 22px}.invitation-grid,.story-grid{gap:35px}.letter{padding:35px 28px}.timeline{gap:18px}.timeline li{padding:24px;grid-template-columns:75px 1fr;gap:12px}.wish-notes{gap:18px}.wish-note{padding:27px 20px}.moments-gallery{grid-template-columns:repeat(2,minmax(0,1fr));gap:35px;max-width:700px;margin:auto}.rsvp>.section-inner{gap:30px}.guest-form{padding:25px}}
@media(max-width:700px){body{font-size:17px}.masthead{padding:16px 6%}.masthead nav{gap:18px}.masthead-date{display:none}.hero{padding:45px 7% 20px}.hero-inner{display:flex;flex-direction:column;gap:10px}.hero-copy{text-align:center;padding-bottom:30px;width:100%}.hero-copy>.eyebrow{margin:25px auto 20px}.hero h1{font-size:clamp(56px,15vw,88px)}.hero h1 .ampersand{margin:10px 0;font-size:44px}.hero-date{font-size:25px}.photo-composition{width:min(100%,440px);padding:42px 25px 30px}.album-stamp{width:70px;height:70px;font-size:10px;right:-6px}.hero-next{font-size:10px}.paper-section,.moments{padding:65px 7%}.invitation-grid,.story-grid,.rsvp>.section-inner{grid-template-columns:1fr;gap:45px}.letter{padding:32px 25px}.letter>p:not(.eyebrow){font-size:19px}.script-heading{font-size:43px}.calendar-note{width:min(360px,94%);margin:auto}.story-grid>.chapter-tab{top:-48px}.story-copy{grid-row:1}.story-copy h2{font-size:42px}.memory-pair{max-width:440px;margin:auto}.memory-two{margin-top:40px}.memory-card figcaption{font-size:24px}.venue{padding:60px 8%}.venue-inner{padding:32px 22px;outline-offset:6px;transform:none}.venue-card h3{font-size:48px}.venue-card address{font-size:23px;overflow-wrap:anywhere}.venue-note{font-size:27px}.venue .script-heading{font-size:39px}.timeline{grid-template-columns:1fr;gap:20px}.timeline li{grid-template-columns:75px 1fr;padding:25px 20px;transform:none!important}.timeline time{font-size:31px}.timeline-detail h3{font-size:25px}.timeline-detail p{font-size:17px}.wish-notes{grid-template-columns:1fr;gap:26px}.wish-note{padding:30px}.wish-note:nth-child(2){transform:rotate(-1deg)}.wish-symbol{float:right;margin:0 0 5px 10px}.wish-note h3{margin-top:15px}.moments-gallery{gap:22px;padding:12px 0}.moment-card{padding:7px 7px 0}.moment-card figcaption{font-size:23px;padding:12px 1px}.photo-hint{font-size:8px}.moment-card .photo-initial{font-size:44px}.dress-code-letter{padding:30px 18px}.dress-palette{gap:18px}.dress-palette li{width:74px;font-size:10px}.swatch{height:95px}.rsvp .section-heading{position:static;text-align:center;margin-bottom:0}.guest-form{padding:23px}.telegram{padding-bottom:25px}.telegram-note{padding:38px 24px}.telegram-note:before{display:none}.contact-section{padding-top:0}.contact-note{padding:25px 10px 35px}.closing{padding:80px 10%;background-position:center}.countdown{gap:9px}.countdown>div{min-width:44px}.countdown span{font-size:37px}.countdown small{font-size:8px}.countdown i{font-size:19px}.closing .script-heading{font-size:36px}.welcome-screen{padding:20px}.welcome-paper{grid-template-columns:1fr;gap:20px;padding:35px 32px}.welcome-portrait-wrap{width:105px;margin:auto}.welcome-portrait{aspect-ratio:1}.welcome-portrait-note{display:none}.welcome-initials{font-size:35px}.welcome-copy h2{font-size:26px;margin:15px 0}.welcome-names{font-size:35px}.welcome-hint{margin-top:20px}.welcome-ornament{margin:8px}.chapter-tab,.archive-label{font-size:10px}}
@media(max-height:650px) and (max-width:1180px){.welcome-paper{grid-template-columns:110px minmax(0,1fr);padding:24px;gap:24px}.welcome-portrait-wrap{width:110px}.welcome-copy h2{font-size:22px;margin:12px 0}.welcome-names{font-size:30px}.welcome-hint{margin-top:12px}.welcome-ornament{display:none}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition:none!important}.reveal-target{opacity:1;transform:none}}

.hero .eyebrow{color:#d4c8ab}

.welcome-focus-target:focus{outline:none}.photo-initial{line-height:1;flex-shrink:0}.photo-initial.couple{white-space:nowrap}.photo-initial.couple i{font-size:.7em}
@media(max-width:700px){.photo-card .photo-initial{font-size:38px}.photo-card .photo-kicker,.photo-card .photo-small{display:none}.photo-card .photo-hint{padding:5px;font-size:8px}.back-left .photo-hint,.back-right .photo-hint{display:none}}
.welcome-paper{border:12px solid transparent;background-image:linear-gradient(#f7efdf,#f7efdf),none;background-origin:padding-box,border-box;background-clip:padding-box,border-box;background-size:auto,cover;padding:30px}
