:root{--wine:#801525;--ink:#40382d;--gold:#ac824b;--paper:#f3e5ce;--line:#c8a67a}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:64px}body{margin:0;background:#e9ddca;color:var(--ink);font-family:Georgia,'Times New Roman',serif;-webkit-font-smoothing:antialiased}button,input,textarea{font:inherit}button,a{-webkit-tap-highlight-color:transparent}a{color:var(--wine)}[hidden]{display:none!important}.topbar{position:sticky;top:0;z-index:10;display:flex;justify-content:space-between;align-items:center;height:58px;padding:0 25px;max-width:640px;margin:0 auto;background:#f3e5cef5;border-bottom:1px solid #b99a6a55;backdrop-filter:blur(10px)}.monogram{font-size:23px;letter-spacing:3px;text-decoration:none}.monogram i{color:var(--gold);font-size:20px}.language-switch{display:flex;align-items:center;gap:8px;color:var(--gold);font-size:13px}.language-switch button{background:transparent;border:0;cursor:pointer;min-width:44px;min-height:44px;color:#76654c;font:12px Arial,sans-serif;letter-spacing:.08em}.language-switch button[aria-pressed=true]{color:var(--wine);font-weight:700;text-decoration:underline;text-underline-offset:6px}.invitation-scroll{max-width:640px;margin:0 auto;background:var(--paper) url('assets/parchment.jpg') repeat;box-shadow:0 0 30px #65401717;overflow:hidden}.first-half,.second-half{width:100%;display:block}.hero{position:relative;line-height:0}.archway{display:block;width:100%;height:auto}.hero-overline{position:absolute;top:12.8%;left:35.5%;width:41%;min-height:3.1%;margin:0;display:flex;align-items:center;justify-content:center;background:linear-gradient(90deg,#e7e1d800,#e7e1d8 10%,#e7e1d8 90%,#e7e1d800);color:#3f3a35;font-size:clamp(10px,2.6vw,18px);letter-spacing:.19em;text-transform:uppercase;line-height:1.3;white-space:nowrap}.hero-overline:lang(en){font-size:clamp(8px,2.15vw,14px);letter-spacing:.10em}.padded{padding-left:7%;padding-right:7%}.welcome{text-align:center;padding-top:6px}.section-label{text-align:center;text-transform:uppercase;font-size:clamp(18px,4vw,25px);line-height:1.25;font-weight:400;color:var(--wine);margin:0}.section-label.large{font-size:clamp(22px,4.8vw,30px)}.welcome p{font-size:clamp(17px,3.6vw,23px);line-height:1.28;margin:14px auto;max-width:510px}.welcome .calligraphy{margin:22px -12px 10px}.calligraphy{font-family:'Apple Chancery','URW Chancery L','Brush Script MT',Georgia,serif;font-style:italic;color:var(--wine);font-size:clamp(25px,5.5vw,36px);font-weight:400;line-height:1.2;text-align:center}.calligraphy.gold{color:var(--gold);font-size:clamp(35px,7vw,49px);margin:8px 0 18px}.ornament{display:flex;align-items:center;gap:10px;width:76%;margin:9px auto;color:var(--gold);height:18px;line-height:1}.ornament:before,.ornament:after{content:'';height:1px;background:var(--line);flex:1}.ornament span{font-size:30px;transform:rotate(180deg);display:block;line-height:1}.ornament.wide{width:100%;margin-top:18px;margin-bottom:16px}.date-section{padding-top:1px}.date-section .section-label{margin:10px 0 8px}.calendar{display:grid;grid-template-columns:repeat(7,1fr);align-items:center;justify-items:center;row-gap:12px;max-width:510px;margin:12px auto 20px}.calendar>span{display:grid;place-items:center;position:relative;min-height:28px;font-size:18px;font-weight:400}.calendar .weekday{font-size:13px;min-height:20px}.calendar .wedding-day{color:var(--wine)}.wedding-day svg{position:absolute;width:55px;height:49px;top:50%;left:50%;transform:translate(-50%,-50%);fill:none;stroke:var(--wine);stroke-width:2}.wedding-day b{font-weight:400}.venue{text-align:center;padding-top:5px;padding-bottom:48px}.ruled-title{display:flex;align-items:center;gap:14px;max-width:340px;margin:0 auto 4px;font-size:23px;font-weight:400;text-transform:uppercase;color:var(--wine)}.ruled-title:before,.ruled-title:after{content:'';height:1px;flex:1;background:var(--line)}.venue .venue-name{font-size:30px;text-transform:uppercase;color:var(--wine);margin:4px 0 0}.venue p{font-size:21px;margin:0}.button{display:inline-flex;align-items:center;justify-content:center;gap:22px;min-height:48px;border:1px solid var(--wine);border-radius:5px;background:var(--wine);color:#fff4dc;padding:12px 24px;font:14px/1.4 Georgia,serif;text-decoration:none;cursor:pointer}.button:hover{background:#65111e}.map-button{font-size:21px;text-transform:uppercase;margin-top:12px;box-shadow:0 3px 6px #5e2d271f}.map-button svg{fill:none;stroke:currentColor;stroke-width:1.5}.second-half{border-top:1px solid var(--line);padding-top:29px}.program .ornament{margin-top:8px;margin-bottom:17px}.timeline{list-style:none;padding:0 0 0 9%;margin:0;position:relative}.timeline:before{content:'';position:absolute;top:0;bottom:12px;left:1%;width:1px;background:var(--gold)}.timeline li{position:relative;display:grid;grid-template-columns:84px 1fr;align-items:center;gap:24px;min-height:92px;padding-bottom:14px}.timeline li:before{content:'';position:absolute;left:-9%;top:35px;width:8px;height:8px;background:var(--gold);border-radius:50%;transform:translateX(-50%)}.timeline img{width:84px;height:84px;object-fit:cover;border-radius:50%;display:block}.timeline time,.timeline h3{font-size:22px;line-height:1.15;color:var(--wine);font-weight:400;margin:0}.timeline h3{text-transform:uppercase}.timeline p{font-size:19px;margin:2px 0;line-height:1.2}.timeline .tentative{font-size:18px}.dress-code .ornament{margin-top:8px}.dancing{display:block;width:100%;height:auto;margin-top:0}.palette{list-style:none;display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:6px;padding:0 5%;margin:12px 0 18px;text-align:center}.palette li>span{display:block;width:56px;max-width:85%;aspect-ratio:1;border-radius:50%;background:var(--swatch);margin:0 auto 10px}.palette small{font-size:11px;line-height:1.2;text-transform:uppercase;display:block;overflow-wrap:normal;hyphens:auto}.recommendations,.guest-info{padding-bottom:4px}.recommendations .section-label,.guest-info .section-label{font-size:23px;margin-bottom:14px}.info-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));text-align:center;gap:0;margin:12px 0 0}.info-grid>div{padding:0 12px 8px}.info-grid>div+div{border-left:1px solid var(--line)}.info-icon{display:block;width:64px;height:64px;object-fit:cover;border-radius:50%;margin:0 auto 8px}.info-grid h3{color:var(--wine);font-size:17px;line-height:1.15;text-transform:uppercase;font-weight:400;margin:0 0 6px}.info-grid p{font-size:16px;line-height:1.15;margin:0}.info-grid .hashtag{color:var(--wine);font-size:14px;margin-top:3px;overflow-wrap:anywhere}.eyebrow{font:10px/1.5 Arial,sans-serif;text-transform:uppercase;letter-spacing:.15em;color:var(--gold)}.flourish{font-size:22px;color:var(--gold);margin-top:14px}footer{text-align:center;padding:0 20px 30px;color:var(--wine)}footer>span{color:var(--gold);font-size:30px}footer p{font-size:25px;margin:8px 0}footer i{color:var(--gold)}footer small{font:10px Arial,sans-serif;letter-spacing:.2em}.skip-link{position:fixed;top:-100px;left:10px;z-index:20;background:var(--paper);padding:12px}.skip-link:focus{top:5px}a:focus-visible,button:focus-visible{outline:2px solid var(--gold);outline-offset:4px}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
@media(max-width:480px){.topbar{padding:0 17px;height:54px}.padded{padding-left:6%;padding-right:6%}.welcome p{font-size:18px;line-height:1.3}.welcome .calligraphy{font-size:27px;margin:20px -10px 8px}.calendar{row-gap:9px}.calendar>span{font-size:16px}.calendar .weekday{font-size:11px}.wedding-day svg{width:47px;height:43px}.venue .venue-name{font-size:26px}.venue p{font-size:18px}.venue{padding-bottom:32px}.second-half{padding-top:24px}.timeline{padding-left:8%}.timeline li{grid-template-columns:66px 1fr;gap:17px;min-height:84px}.timeline img{width:66px;height:66px}.timeline time,.timeline h3{font-size:18px}.timeline p,.timeline .tentative{font-size:16px}.timeline:before{left:0}.timeline li:before{left:-8.7%;top:31px;width:6px;height:6px}.palette{gap:4px;padding:0 4%}.palette li>span{width:45px;margin-bottom:8px}.palette small{font-size:9px;letter-spacing:-.02em}.recommendations .section-label,.guest-info .section-label{font-size:20px}.info-grid>div{padding:0 6px 8px}.info-grid h3{font-size:14px}.info-grid p{font-size:14px;line-height:1.2}.info-grid .hashtag{font-size:12px}.info-icon{width:54px;height:54px}.calligraphy.gold{margin-bottom:13px}.ornament.wide{margin-top:14px;margin-bottom:12px}}
@media(max-width:350px){.welcome p{font-size:16px}.info-grid{grid-template-columns:1fr;gap:18px}.info-grid>div+div{border-left:0;border-top:1px solid var(--line);padding-top:14px}.info-grid p{max-width:230px;margin:auto}.palette small{font-size:8px}.timeline li{grid-template-columns:56px 1fr;gap:12px}.timeline img{width:56px;height:56px}.timeline time,.timeline h3{font-size:16px}.timeline p,.timeline .tentative{font-size:14px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
.rsvp{padding:42px 26px 48px;border-top:1px solid var(--line,#c7a779);scroll-margin-top:64px}.rsvp-heading{text-align:center}.rsvp-heading h2{font-size:clamp(30px,6vw,43px);font-weight:400;color:var(--wine,#781426);line-height:1.15;margin:14px 0}.rsvp-heading>p{font-size:15px;line-height:1.5}.form-card{max-width:560px;margin:24px auto 0;padding:26px 24px;background:#fff9efc9;border:1px solid var(--line,#c7a779);border-radius:4px}.preview-label{font:11px/1.55 Arial,sans-serif;padding:10px 12px;background:#f1e2c8;color:#70542d;margin:0 0 22px;border-radius:2px}.step-header{display:flex;justify-content:space-between;gap:10px;font:10px/1.5 Arial,sans-serif;letter-spacing:.1em;text-transform:uppercase;color:#76685d}.progress{background:#e5d5ba;height:2px;margin:10px 0 24px}.progress>span{display:block;width:25%;height:2px;background:var(--wine,#781426);transition:width .2s}.form-step h3{font-size:25px;font-weight:400;line-height:1.3;color:var(--wine,#781426);margin:0 0 12px}.form-step>p{font-size:15px;color:#64584d;line-height:1.5;margin:0 0 20px}.form-card label:not(.choice){display:block;font-family:Arial,sans-serif;font-size:12px;margin:18px 0 8px}.form-card input:not([type=radio]),.form-card textarea{display:block;width:100%;font:16px/1.4 Georgia,serif;background:#fffdf8;color:#372d28;border:1px solid #c9bba5;border-radius:3px;padding:12px;box-sizing:border-box}.form-card textarea{resize:vertical}.form-card input:focus,.form-card textarea:focus{outline:2px solid #a7804b;outline-offset:3px}.form-card fieldset{border:0;padding:0;margin:0}.form-card .choice{display:flex;align-items:center;gap:12px;border:1px solid var(--line,#c7a779);padding:13px;margin:10px 0;cursor:pointer;border-radius:3px;font-size:16px;line-height:1.5}.form-card .choice:has(input:checked){border-color:var(--wine,#781426);background:#f8eeed}.form-card input[type=radio]{accent-color:var(--wine,#781426);width:18px;height:18px;flex-shrink:0}.form-card .hint,.form-card .privacy{font:12px/1.6 Arial,sans-serif;color:#76685d;margin-top:10px}.form-actions{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-top:26px}.form-actions>.button{margin-left:auto;min-height:48px}.form-actions>.back{border:none;background:none;color:#76685d;font:12px Arial,sans-serif;cursor:pointer;padding:12px 0;min-height:44px}.form-card dl{margin:20px 0}.form-card dt{font:10px/1.4 Arial,sans-serif;text-transform:uppercase;letter-spacing:.1em;color:#a7804b;margin-top:18px}.form-card dd{margin:5px 0;white-space:pre-line;overflow-wrap:anywhere;font-size:16px;line-height:1.5}.form-card .demo-message{padding:14px;border:1px solid #a7804b;background:#faf1de;font-size:14px!important;line-height:1.6}#tally-container{max-width:620px;margin:auto}#tally-container iframe{width:100%;border:0;min-height:720px}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}@media(max-width:480px){.rsvp{padding:32px 17px 38px}.form-card{padding:23px 17px}.rsvp-heading>p{font-size:14px}}@media(prefers-reduced-motion:reduce){.progress>span{transition:none}}
@media(max-width:480px){.info-grid h3:lang(en){font-size:11px;line-height:1.25}.info-grid .hashtag{font-size:10px;letter-spacing:-.02em}.palette small{overflow-wrap:anywhere}}
