:root{--wine:#5a1826;--deep:#300a13;--paper:#efe6df;--ink:#482a2e;--muted:#927773;--line:#cbb6ae;--gold:#c6aaa0}html{scroll-padding-top:90px}body{background:var(--paper);font-size:22px}main>section{isolation:isolate;overflow:clip}.paper-section{background:var(--paper)}.section-inner{max-width:1180px;padding-inline:48px}h2.script-heading,.story-copy h2{font:400 clamp(40px,5vw,68px)/1.05 var(--serif);text-transform:uppercase;letter-spacing:.065em}.eyebrow{font:10px/1.8 Arial,sans-serif;letter-spacing:2.5px}.section-heading{margin-bottom:50px}.section-heading h2{margin-top:20px}.section-intro{max-width:630px;margin:26px auto 0}.masthead{position:absolute;inset:0 0 auto;z-index:10;background:transparent;color:var(--paper);border:0;height:90px;padding-inline:6vw}.masthead nav{font:11px Arial,sans-serif;text-transform:uppercase;letter-spacing:1.4px;gap:26px}.monogram span{color:inherit}.masthead-date{font:10px Arial;letter-spacing:2px}.velvet-menu{display:none}.hero{padding:130px 24px 100px;background:var(--deep);min-height:100svh;display:grid;place-items:center}.velvet-scene{position:absolute;inset:0;z-index:-2;display:block}.velvet-scene img{width:100%;height:100%;object-fit:cover}.hero:before,.venue:before,.closing:before{content:'';position:absolute;inset:0;z-index:-1;background:linear-gradient(#24030d33,#24030d08 40%,#24030d88)}.hero:after,.venue:after{display:none}.hero-inner{display:block;min-height:0;max-width:100%;width:100%}.hero-copy{padding:0}.hero h1{font:400 clamp(60px,8vw,118px)/.98 var(--serif);letter-spacing:.08em;text-transform:uppercase;text-shadow:none;margin:55px 0 32px;overflow-wrap:anywhere}.hero h1 .ampersand{font:400 clamp(72px,10vw,135px)/.6 var(--script);text-transform:none;color:#dac2b7;margin:26px 0}.hero-rule{display:none}.hero-date{font:18px var(--serif);text-transform:uppercase;letter-spacing:4px;margin-top:42px}.hero-city{color:#ddc8c0}.hero-next{position:relative;bottom:auto;left:auto;transform:none;margin:45px auto 0;text-align:center;max-width:240px;font:12px/2 var(--serif);text-transform:uppercase;letter-spacing:3px;color:var(--paper)}.invitation{padding:120px 0}.invitation-grid{gap:90px}.letter{text-align:center}.letter .script-heading{font:44px/1.1 var(--script);text-transform:none;letter-spacing:0}.letter>p:not(.eyebrow):not(.signature){font-size:22px}.signature{font:36px/1.3 var(--script)}.calendar-note{background:transparent;box-shadow:none;transform:none;border:0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:35px 10px}.calendar-note h3{font:35px var(--serif);letter-spacing:2px}.calendar-caption{font-size:30px}.wedding-day span:after{background:var(--paper)}.story{padding:50px 0 110px}.story-grid{display:grid;grid-template-columns:1fr 1fr;gap:55px}.velvet-portrait{grid-row:1/3;align-self:start}.velvet-portrait .photo-window{aspect-ratio:3/4}.story-copy{grid-column:2;grid-row:1}.story-copy h2{margin:20px 0 28px}.story-copy p{font-size:22px}.story-postscript{font:32px/1.2 var(--script)!important;margin-top:25px}.memory-pair{grid-column:2;grid-row:2;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;height:auto;min-height:0}.memory-card{position:relative!important;inset:auto!important;width:100%!important;transform:none!important;padding:0!important;background:transparent;box-shadow:none;border:0}.memory-card .photo-window{aspect-ratio:4/5}.memory-card figcaption,.velvet-portrait figcaption{font:18px var(--serif);margin-top:10px;text-align:center}.photo-window{background:#e1d2c7;box-shadow:none}.photo-window:before{display:none}.venue{padding:110px 24px;background:var(--deep);color:var(--paper)}.venue-inner{max-width:1000px;margin:auto}.venue h2{color:var(--paper);max-width:660px;margin:20px auto 55px}.venue-card{max-width:430px;margin:auto;padding:45px 36px;background:#efe6dff5;border:1px solid #e6d8ce;box-shadow:none;transform:none;border-radius:0;color:var(--ink)}.venue-flourish,.ornament-line,.wish-symbol,.contact-ornament,.dress-code-ornament{display:none}.venue-card h3{font:48px var(--serif);letter-spacing:3px}.venue-card address{margin:24px 0}.venue-note{font:34px/1.3 var(--script);margin-top:40px}.button{background:transparent;color:var(--wine);border:1px solid #8a6469;border-radius:50px;box-shadow:none;font:10px/1.5 Arial,sans-serif;letter-spacing:1.7px;text-transform:uppercase;padding:17px 25px;min-height:48px;transition:background .25s,color .25s,transform .25s}.button:hover{background:var(--wine);color:var(--paper);transform:translateY(-2px)}.schedule{padding:110px 0 0}.schedule .section-inner{max-width:860px}.timeline{display:block;border:0;max-width:650px;margin:45px auto}.timeline li{display:grid;grid-template-columns:90px 1fr;gap:25px;padding:0 0 36px 25px;border:0;border-left:1px solid #a18480;position:relative;margin-left:12px}.timeline li:before{content:'';position:absolute;width:7px;height:7px;left:-4px;top:10px;background:var(--wine);border-radius:50%}.timeline-time{display:block}.timeline-time time{font:25px var(--serif);color:var(--wine)}.timeline-time span,.timeline-mark{display:none}.timeline-detail{padding:0;border:0}.timeline-detail h3{font:21px var(--serif);text-transform:uppercase;letter-spacing:1px}.timeline-detail p{font-size:18px;line-height:1.5;margin-top:8px}.velvet-interlude{display:block;position:relative;z-index:0;height:clamp(300px,55vw,650px);margin-top:65px;order:2;mask-image:linear-gradient(transparent,#000 17%)}.velvet-interlude img{width:100%;height:100%;object-fit:cover;object-position:50% 65%}.schedule{display:flex;flex-direction:column}.wishes{padding:100px 0}.wish-notes{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:35px}.wish-note{background:none;transform:none!important;padding:25px 0;box-shadow:none;border:0;border-top:1px solid var(--line);border-radius:0}.wish-number{font:13px var(--serif);color:var(--wine)}.wish-note h3{font:27px var(--serif);margin:18px 0}.wish-note p{font-size:19px}.wishes-footer{font:32px var(--script)}.dress-code{padding:80px 0;background:#e4d6cd}.dress-code-letter{background:none;border:0;box-shadow:none;transform:none;padding:0}.dress-palette{display:flex;justify-content:center;flex-wrap:wrap;gap:24px}.swatch{border-radius:50%;width:52px;height:52px;box-shadow:none}.dress-code-note{font-size:20px}.rsvp{padding:110px 0;background:var(--deep);color:var(--paper)}.rsvp h2,.rsvp .eyebrow{color:var(--paper)}.guest-form{background:var(--paper);color:var(--ink);border:0;border-radius:0;box-shadow:none;padding:40px;max-width:740px;margin:45px auto 0}.guest-form input,.guest-form textarea,.guest-form select{background:#faf5f1;border-color:#c7b0a9;border-radius:0;accent-color:var(--wine);font-size:16px}.guest-form input[type=checkbox],.guest-form input[type=radio]{accent-color:var(--wine)}.telegram,.contact-section{padding:75px 0}.contact-note,.telegram-note{background:none;border:0;box-shadow:none;transform:none}.closing{padding:110px 24px 90px;background:var(--deep);color:var(--paper);text-align:center}.closing h2{color:var(--paper);max-width:800px;margin:45px auto;font-size:clamp(32px,5vw,56px)}.closing .eyebrow,.closing .text-link{color:var(--paper)}.countdown{margin:30px auto;color:var(--paper);max-width:560px;justify-content:center;gap:18px}.countdown>div{background:none;border:0;box-shadow:none;padding:0;min-width:55px}.countdown span{font:clamp(32px,5vw,55px) var(--serif)}.countdown small{font:9px Arial;letter-spacing:2px}.closing-names{font:40px var(--script)}footer{background:var(--deep);color:#d0b5ae;font:10px Arial;letter-spacing:2px;padding:25px;text-align:center}.welcome-screen{background:linear-gradient(#300a1344,#300a1377),image-set(url('assets/velvet-800.webp') 1x,url('assets/velvet-1280.webp') 2x) center/cover;position:fixed;inset:0;z-index:100;height:100dvh;padding:35px;display:grid;place-items:center}.welcome-paper{background:transparent!important;border:0!important;box-shadow:none!important;transform:none!important;padding:0!important;color:var(--paper);display:block!important;width:min(100%,500px)!important}.welcome-portrait-wrap{display:none}.welcome-copy{padding:0!important}.welcome-copy h2{font:36px/1.2 var(--serif)!important;color:var(--paper);text-transform:uppercase;letter-spacing:3px}.welcome-names{font:40px var(--script);color:#e4cdc4}.welcome-date,.welcome-hint{color:var(--paper)}.welcome-ornament,.welcome-flourish{display:none}.welcome-hint{margin-top:50px;border:1px solid #d6b9af;border-radius:40px;padding:16px 25px;font:10px Arial;letter-spacing:2px;text-transform:uppercase}.welcome-active{overflow:hidden}.welcome-active #invitation-site{visibility:hidden}.mobile-theatre-header{position:fixed;z-index:20;bottom:22px;right:22px;top:auto;left:auto;width:auto;pointer-events:none}.music-toggle{pointer-events:auto;background:var(--wine);border:1px solid #ccb5ad;border-radius:50%;width:48px;height:48px;color:var(--paper);position:relative;inset:auto}.music-hint{position:absolute;bottom:55px;right:0;width:180px}.reveal-target{transition:opacity 1s ease,transform 1s cubic-bezier(.22,1,.36,1);transform:translateY(25px)}[hidden]{display:none!important}:focus-visible{outline:2px solid #b18c81;outline-offset:5px}
@media(max-width:760px){.section-inner{padding-inline:27px}.masthead{height:80px;padding-inline:27px}.masthead-date{display:none}.velvet-menu{display:grid;gap:6px;padding:12px;background:transparent;border:0;color:inherit;z-index:2;min-height:44px;align-content:center}.velvet-menu span{display:block;width:24px;height:1px;background:currentColor}.masthead nav{display:none;position:absolute;top:72px;left:18px;right:18px;background:#efe6dffb;color:var(--wine);padding:20px;box-shadow:0 12px 30px #20040b30;font-size:12px}.masthead nav.is-open{display:grid;gap:0}.masthead nav a{padding:16px;border-bottom:1px solid #ccb6ad}.hero{min-height:100svh;padding:125px 24px 80px}.hero h1{font-size:clamp(48px,12vw,85px);letter-spacing:.055em;margin-top:50px}.hero h1 .ampersand{font-size:100px}.hero-date{font-size:18px}.hero-next{font-size:10px;position:relative!important;left:auto!important;bottom:auto!important;transform:none!important}.invitation{padding:80px 0}.invitation-grid{display:grid;grid-template-columns:1fr;gap:55px}.letter>p:not(.eyebrow):not(.signature){font-size:21px}.calendar-note{max-width:370px;width:100%;margin:auto}.story{padding:0 0 75px}.story-grid{display:flex;flex-direction:column;gap:35px}.story-copy{order:-1}.story-copy h2{font-size:43px}.velvet-portrait{width:calc(100% + 54px);max-width:none;margin-inline:-27px}.velvet-portrait .photo-window{aspect-ratio:4/5}.memory-pair{width:100%;gap:14px}.venue{padding:80px 24px}.venue h2{font-size:40px}.venue-card{padding:32px 22px}.schedule{padding-top:75px}.timeline li{grid-template-columns:64px 1fr;gap:15px;padding-left:20px}.timeline-time time{font-size:22px}.timeline-detail h3{font-size:18px}.timeline-detail p{font-size:17px}.wish-notes{grid-template-columns:1fr;gap:12px}.wish-note{max-width:none;width:100%}.wishes{padding:70px 0}.section-heading{margin-bottom:30px}.dress-code{padding:65px 0}.dress-palette{gap:16px}.dress-palette li{min-width:65px;font-size:13px}.swatch{width:44px;height:44px}.rsvp{padding:75px 0}.guest-form{padding:25px 20px}.rsvp .section-inner{padding-inline:18px}.guest-form .choice-group{flex-wrap:wrap}.closing{padding:80px 22px}.closing h2{font-size:35px}.countdown{gap:8px}.countdown>div{min-width:44px}.countdown span{font-size:34px}.countdown small{font-size:8px}.closing-names{font-size:35px}}
@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}}.motion-disabled .reveal-target{opacity:1!important;transform:none!important}
.calendar-note,.memory-card,.moment-card{animation:none;rotate:none;will-change:auto}.reveal-target{translate:none;transform:translateY(25px)}.reveal-target.is-visible{transform:none;animation:none}.reveal-target.is-visible>*{animation:none!important}.moments{background:#e7d9d0;padding:85px 0}.moments:before,.photo-tape{display:none}.moment-card{transform:none!important;background:transparent;border:0;padding:0;box-shadow:none;margin:0!important}.moment-card figcaption{font:20px var(--serif);min-height:0;padding:14px 0}.moments-gallery{gap:24px}.contact-action{display:inline-flex;align-items:center;justify-content:center;min-height:48px;border:1px solid var(--line);border-radius:40px;padding:12px 24px}.contact-action[aria-disabled=true]{opacity:.55;pointer-events:none}.content-loading #invitation-site,.content-loading #welcome{visibility:hidden!important}.section-inner{width:100%}.mobile-theatre-header{height:auto;overflow:visible}.masthead{display:flex!important}.welcome-copy:before,.welcome-copy:after{display:none}.welcome-screen .welcome-copy{position:relative}.guest-form input:not([type=radio]):not([type=checkbox]),.guest-form textarea,.guest-form select{background:#fffaf6;border-color:#c7b0a9;border-radius:0;font-size:18px}.welcome-screen:not([hidden]){display:grid!important}.welcome-screen .welcome-paper{height:auto!important;min-height:0!important;max-height:90dvh!important;margin:auto!important}.welcome-copy h2{color:var(--paper)!important}.preview-banner{z-index:101}
.memory-card:has([data-photo=groom]:not(.has-photo)),.memory-card:has([data-photo=bride]:not(.has-photo)){display:none}.desktop-notice{display:none}@media(min-width:1181px){html:not(.desktop-enabled) .desktop-notice{display:grid;position:fixed;inset:0;z-index:9999;place-items:center;text-align:center;background:linear-gradient(#300a1366,#300a1399),url('assets/velvet-1280.webp') center/cover;padding:35px}.desktop-notice>div{max-width:620px;background:var(--paper);padding:55px;border:1px solid var(--line)}.desktop-notice img{display:none}.desktop-notice h1{font:48px/1.1 var(--serif);margin:25px 0}.desktop-notice p{font-size:23px}.desktop-notice span,.desktop-notice small{font:10px/2 Arial;letter-spacing:2px}.desktop-notice small{display:block;margin-top:25px}html:not(.desktop-enabled) #invitation-site{display:none!important}}
.velvet-welcome-photo{width:140px;height:175px;aspect-ratio:auto;border-radius:50% 50% 0 0;margin:0 auto 28px;background:transparent}.velvet-welcome-photo:not(.has-photo){display:none}.welcome-paper:before{display:none}.welcome-active .welcome-paper{animation:none}.welcome-editor .welcome-screen{display:grid!important;position:relative;inset:auto;min-height:100svh}.welcome-open:focus-visible{outline:2px solid #e3cbc1;outline-offset:-12px}.welcome-names{color:#e4cdc4}.hero h1>span{max-width:100%}.guest-form .choice:has(input:checked){background:#ead9d3;border-color:#8a5862}

/* Photographic chapter transitions, attached to their editable section. */
main>section:has(>.velvet-divider){padding-bottom:0}.velvet-divider{position:relative;display:block;width:100%;height:clamp(320px,43vw,700px);margin:clamp(45px,6vw,90px) 0 0;overflow:hidden;isolation:isolate}.velvet-divider img{display:block;width:100%;height:100%;object-fit:cover;object-position:center}.velvet-divider:after{content:'';position:absolute;inset:0;background:linear-gradient(180deg,#300a1308,transparent 25%,transparent 75%,#300a1314);pointer-events:none}.venue>.velvet-divider{width:calc(100% + 48px);margin-left:-24px}.velvet-interlude{width:100%}.velvet-divider img{transition:opacity .5s ease}.velvet-divider img:hover{opacity:.97}
@media(max-width:760px){.velvet-divider{height:auto;aspect-ratio:4/5;max-height:680px;margin-top:50px}.velvet-divider img{height:100%;position:absolute;inset:0}.venue>.velvet-divider{width:calc(100% + 48px)}.velvet-interlude{height:420px}}
@media(prefers-reduced-motion:reduce){.velvet-divider img{transition:none}}
