@charset "UTF-8";
@font-face{font-family:"Invitation Serif";src:url("assets/fonts/P052-Roman.otf") format("opentype");font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:"Invitation Serif";src:url("assets/fonts/P052-Italic.otf") format("opentype");font-weight:400;font-style:italic;font-display:swap}
@font-face{font-family:"Invitation Script";src:url("assets/fonts/Z003-MediumItalic.otf") format("opentype");font-weight:400;font-style:normal;font-display:swap}
:root{color-scheme:light;--wine:#671d36;--wine-deep:#461225;--wine-mid:#802e49;--ivory:#faf5eb;--paper:#f1e8db;--ink:#443338;--muted:#77646b;--line:#cdb4b4;--serif:"Invitation Serif",Palatino,Georgia,serif;--script:"Invitation Script","URW Chancery L",cursive;--sans:Arial,Helvetica,sans-serif}
*{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:110px}
body{margin:0;background:var(--ivory);color:var(--ink);font:1rem/1.75 var(--sans);-webkit-font-smoothing:antialiased}
a{color:inherit;text-underline-offset:.3em}button,input{font:inherit}a,button{touch-action:manipulation}button{cursor:pointer}a,button,input{-webkit-tap-highlight-color:transparent}
::selection{background:var(--wine);color:var(--ivory)}:focus-visible{outline:3px solid #bd805a;outline-offset:5px}[hidden]{display:none!important}
.skip-link{position:fixed;z-index:100;top:-8rem;left:1rem;padding:.8rem 1.25rem;background:var(--ivory);color:var(--wine)}.skip-link:focus{top:1rem}
.site-header{position:relative;z-index:20;min-height:88px;padding:.9rem max(5%,calc((100vw - 1280px)/2));display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap;background:var(--wine-deep);color:var(--ivory);border-bottom:1px solid #cfaebd55}
.monogram{display:flex;align-items:center;justify-content:center;width:56px;height:56px;border:1px solid #d4b5bd;border-radius:50%;font:1.4rem var(--serif);text-decoration:none;flex-shrink:0}
.monogram span{font:italic 1.05rem var(--serif);color:#dab8c0;margin:0 .12em}
.header-date{font-size:.8125rem;letter-spacing:.2em;font-weight:400}.header-date span{color:#c393a3;padding:0 .3rem}
.header-link{display:flex;align-items:center;gap:1.1rem;font-size:.875rem;color:var(--ivory);text-decoration:none;border-bottom:1px solid #d3b0bd8c;padding:.6rem 0;transition:border-color .2s}
.header-link:hover{border-color:var(--ivory)}
.eyebrow{font-size:.8125rem;letter-spacing:.19em;line-height:1.8;text-transform:uppercase;color:var(--wine);font-weight:400;margin:0 0 1.25rem}
.hero{position:relative;isolation:isolate;max-width:1540px;margin:0 auto;padding:5.5rem 7% 5.75rem;display:grid;grid-template-columns:1.05fr 1fr;gap:7%;align-items:center;overflow:clip}
.hero:before{content:"";position:absolute;inset:0;z-index:-2;background:url("assets/botanical-corners.png") center/cover no-repeat;opacity:.3}
.hero:after{content:"";position:absolute;inset:24px;z-index:-1;border:1px solid #ab737c55;outline:1px solid #ab737c33;outline-offset:6px;pointer-events:none}
.hero-copy{min-width:0;text-align:center;padding:1.6rem 0;background:radial-gradient(ellipse at center,#faf5ebe6 25%,#faf5eb00 72%)}
.hero-eyebrow{max-width:360px;margin:0 auto 1.3rem;font-size:.8125rem;letter-spacing:.15em}
.hero h1{font:400 clamp(5.5rem,9.4vw,9.7rem)/1.02 var(--script);color:var(--wine);margin:0 auto 1.6rem;letter-spacing:-.025em;width:fit-content;max-width:100%;text-align:left}
.hero h1>span{display:block}.hero h1 .second-name{margin-left:1.4rem;white-space:nowrap}
.hero h1 i{display:inline-block;font:italic .52em var(--serif);color:#a56579;vertical-align:.16em;letter-spacing:0;margin-right:.04em}
.hero-rule{position:relative;height:1px;background:var(--line);width:118px;margin:1.6rem auto 1.5rem}
.hero-rule:after{content:"";position:absolute;left:calc(50% - 3px);top:-3px;width:6px;height:6px;transform:rotate(45deg);background:var(--wine);box-shadow:0 0 0 6px var(--ivory)}
.hero-message{font:italic 1.18rem/1.75 var(--serif);color:var(--muted);max-width:410px;margin:0 auto 1.8rem}
.wedding-date{display:flex;justify-content:center;align-items:center;gap:1rem;width:fit-content;max-width:100%;margin:0 auto;padding:.8rem 1rem;border-top:1px solid var(--line);border-bottom:1px solid var(--line);color:var(--wine)}
.date-day{font-size:.8125rem;letter-spacing:.12em}.date-number{font:3.6rem/1 var(--serif);padding:0 1rem;border-right:1px solid var(--line);border-left:1px solid var(--line)}.date-month{text-align:left;font-size:.8125rem;letter-spacing:.09em;line-height:1.55}.date-month>span{letter-spacing:.22em}
.hero-location{font:italic 1.3rem var(--serif);color:var(--wine);margin:1rem 0 1.8rem}
.button{display:inline-flex;min-height:54px;align-items:center;justify-content:center;gap:1.75rem;padding:.95rem 1.5rem;border:1px solid transparent;border-radius:3px;text-decoration:none;font-size:.9375rem;line-height:1.5;font-weight:400;transition:background .2s,box-shadow .2s,transform .2s}
.button-wine{background:var(--wine);color:var(--ivory);box-shadow:0 5px 18px #671d361b;border-color:var(--wine)}
.button-wine:hover{background:var(--wine-deep);box-shadow:0 8px 22px #46122524;transform:translateY(-2px)}.button:active{transform:translateY(0)}
.details-link{display:flex;align-items:center;justify-content:center;gap:1rem;font-size:.8125rem;line-height:1.5;text-decoration:none;color:var(--muted);width:fit-content;min-height:44px;margin:.6rem auto 0;padding:.4rem}.details-link:hover{text-decoration:underline}
.hero-portrait{position:relative;min-width:0;margin:0;padding:0 .6rem}
.portrait-frame{position:relative;border:1px solid #a77380;border-radius:46% 46% 3px 3px;padding:11px;background:#eee1d2;box-shadow:14px 17px 0 -3px #cfb7b429,0 20px 50px #46122513}
.portrait-frame:before{content:"";position:absolute;inset:-9px;border:1px solid #a7738066;border-radius:inherit;pointer-events:none}
.portrait-frame img{display:block;width:100%;height:auto;aspect-ratio:2/3;object-fit:cover;border-radius:46% 46% 0 0}
.portrait-emblem{position:absolute;left:-1.2rem;bottom:.35rem;width:112px;aspect-ratio:1;border-radius:50%;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:.2rem;background:var(--wine);color:var(--ivory);box-shadow:0 0 0 5px var(--ivory),0 0 0 6px #bb949f}
.portrait-emblem:before{content:"";position:absolute;inset:7px;border:1px solid #c793a266;border-radius:50%}
.portrait-emblem>span{font:1.5rem var(--serif);padding-top:.2rem}.portrait-emblem i{font:italic 1.2rem var(--serif)}.portrait-emblem small{font-size:.75rem;letter-spacing:.02em}
.hero-portrait figcaption{font:italic 1.05rem/1.5 var(--serif);text-align:right;color:var(--muted);margin:1.2rem .3rem 0 100px;min-height:32px}
.ornament{display:flex;justify-content:center;align-items:center;gap:.85rem;max-width:165px;margin:0 auto 1.25rem;color:var(--wine)}
.ornament:before,.ornament:after{content:"";height:1px;flex:1;background:currentColor;opacity:.45}.ornament span{font-size:1rem;line-height:1}
.ornament-light{color:#ddbcc8}
.countdown{position:relative;background:var(--wine-deep);color:var(--ivory);text-align:center;padding:3.3rem 6% 3.6rem;border-top:8px solid #f1e7d8;border-bottom:8px solid #f1e7d8}
.countdown:after{content:"";position:absolute;inset:14px;border:1px solid #d2a9ba33;pointer-events:none}
.countdown .eyebrow{color:#d5b5c1;margin-bottom:.6rem}
.countdown h2{font:400 clamp(2.4rem,4vw,3.8rem)/1.2 var(--script);letter-spacing:0;margin:0 0 1.6rem}
.countdown-clock{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1rem;max-width:650px;margin:0 auto 1.5rem}
.countdown-clock>div{min-width:0;display:flex;flex-direction:column-reverse;align-items:center;justify-content:center;border:1px solid #d3abb64d;padding:1.35rem .65rem 1.05rem;background:#ffffff06;border-radius:38px 38px 3px 3px}
.countdown-clock dd{font:400 clamp(2.6rem,5vw,4.5rem)/1.05 var(--serif);font-variant-numeric:tabular-nums;color:var(--ivory);margin:0;letter-spacing:-.03em}
.countdown-clock dt{font-size:.875rem;color:#d9bdc4;line-height:1.6;margin-top:.6rem}
.countdown-note{color:#dbc2cc;font-size:.9375rem;line-height:1.7;margin:0}.countdown-note time{display:inline-block}.countdown-note>span{display:block;font-size:.8125rem;color:#c9a2b0;margin-top:.2rem}
.invitation-letter{padding:5.5rem 6%;background:var(--paper);text-align:center}
.letter-card{position:relative;isolation:isolate;max-width:1100px;margin:auto;padding:4.1rem 5%;border:1px solid #b9929b;background:var(--ivory);box-shadow:0 16px 38px #46122509}
.letter-card:before{content:"";position:absolute;inset:0;z-index:-2;background:url("assets/botanical-corners.png") center/cover no-repeat;opacity:.16}
.letter-card:after{content:"";position:absolute;inset:10px;border:1px solid #b9929b55;z-index:-1;pointer-events:none}
.letter-ampersand{display:flex;width:72px;height:72px;align-items:center;justify-content:center;border:1px solid var(--line);border-radius:50%;font:italic 3rem var(--serif);color:#98586e;margin:0 auto 1.5rem}
.letter-card>.eyebrow{margin-bottom:1.7rem}
.letter-card>h2{font:400 clamp(1.8rem,3.4vw,3rem)/1.3 var(--serif);color:var(--wine);margin:0 auto 1.8rem;letter-spacing:-.035em}
.names-join{display:block;font:400 2rem/1.5 var(--script);color:#a36c7f}
.letter-card>p:not(.eyebrow){color:var(--muted);font-size:1rem;line-height:1.9;margin:.6rem 0}
.letter-card>.letter-ending{font:italic 1.35rem/1.6 var(--serif)!important;color:var(--wine)!important}
.family-section{max-width:910px;margin:2.8rem auto 0;padding-top:2rem;border-top:1px solid var(--line)}
.family-title{font:400 2.7rem/1.3 var(--script);color:var(--wine);margin:0 0 1.6rem}
.family-grid{display:grid;grid-template-columns:1fr 1fr;gap:2rem}
.family-group{padding:.4rem 1rem}.family-group+.family-group{border-left:1px solid #cdb4b480}
.family-group h4{font-size:.8125rem;letter-spacing:.12em;text-transform:uppercase;font-weight:400;color:var(--wine);margin:0 0 1rem;line-height:1.7}
.family-group p{font:400 clamp(1.15rem,1.8vw,1.5rem)/1.65 var(--serif);color:var(--ink);margin:.2rem 0}
.godparents{margin:2.5rem auto 0;padding-top:2rem;border-top:1px solid var(--line)}
.godparents-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:2rem}
.godparents-group{min-width:0;padding:0 1rem}
.godparents-group h4{font-size:.875rem;letter-spacing:.09em;text-transform:uppercase;font-weight:400;color:var(--wine);margin:0 0 1rem;line-height:1.7}
.godparents-group p{font:400 clamp(1.15rem,1.8vw,1.5rem)/1.6 var(--serif);color:var(--ink);margin:0;overflow-wrap:break-word;text-wrap:balance}
.godparents-join{display:block;font:italic 1.05rem/1.5 var(--serif);color:var(--wine);margin:.2rem 0}
.celebration{padding:4.5rem 6% 4rem;text-align:center;background:var(--wine);color:var(--ivory)}
.section-heading{max-width:960px;margin:0 auto;text-align:center}
.section-heading .eyebrow{margin-bottom:.8rem}
.section-heading h2{font:400 clamp(2.6rem,4.8vw,4rem)/1.2 var(--script);color:var(--wine);margin:0 0 2.5rem}
.celebration .section-heading .eyebrow{color:#e0c4ce}.celebration .section-heading h2{color:var(--ivory)}.celebration .ornament{color:#ddb9c8}
.event-grid{display:grid;grid-template-columns:1fr 1fr;gap:2.5rem;max-width:1030px;margin:auto}
.event{position:relative;min-width:0;padding:3.2rem 2rem 2.6rem;border:1px solid #bc8a9a;border-radius:150px 150px 4px 4px;background:var(--ivory);color:var(--wine);box-shadow:0 12px 30px #2d061226}
.event:before{content:"";position:absolute;inset:10px;border:1px solid #bd95a066;border-radius:inherit;pointer-events:none}
.event-marker{display:flex;align-items:center;justify-content:center;width:44px;height:44px;margin:0 auto 1.2rem;border:1px solid var(--line);border-radius:50%;font:1.05rem var(--serif);color:#99657a}
.event-kind{font:400 2.15rem/1.3 var(--script);margin:0 0 .75rem;color:var(--wine)}
.event-time{font:400 3.6rem/1.2 var(--serif);margin:0 0 1rem;letter-spacing:-.04em}.event-time span{font-size:1.2rem;letter-spacing:0}
.event h3{font:400 clamp(1.8rem,2.8vw,2.5rem)/1.3 var(--serif);color:var(--wine);margin:0 0 .5rem;letter-spacing:-.025em}
.event-type,.event-place{font-size:1rem;color:var(--muted);margin:0}.event-place{margin-top:.1rem}
.map-link{position:relative;display:inline-flex;align-items:center;justify-content:center;gap:1rem;margin:1.5rem 0 0;padding:.75rem 1.15rem;min-height:48px;border:1px solid #b78597;border-radius:2px;color:var(--wine);font-size:.875rem;text-decoration:none;transition:background .2s,color .2s}
.map-link:hover{background:var(--wine);color:var(--ivory)}
.dress-note{max-width:650px;margin:2.2rem auto 0;color:#e2cad2;font:italic 1.12rem/1.7 var(--serif);padding-top:.5rem}
.itinerary{position:relative;padding:5.4rem 6% 4rem;background:var(--paper)}
.itinerary .section-heading h2{margin-bottom:.8rem}
.itinerary-location{font:italic 1.3rem/1.5 var(--serif);color:var(--muted);margin:0 0 3rem}
.timeline{position:relative;list-style:none;margin:0 auto;padding:0;max-width:1050px}
.timeline:before{content:"";position:absolute;top:15px;bottom:40px;left:50%;width:1px;background:#b588994f}
.timeline li{position:relative;display:grid;grid-template-columns:minmax(0,1fr) 84px minmax(0,1fr);gap:0;align-items:start;padding-bottom:2.2rem}
.timeline li:last-child{padding-bottom:0}
.timeline time{position:relative;z-index:2;display:flex;flex-direction:column;align-items:center;justify-content:center;grid-column:2;grid-row:1;width:84px;height:84px;color:var(--ivory);background:var(--wine);border:6px solid var(--paper);border-radius:50%;font:400 1.4rem/1.05 var(--serif);font-variant-numeric:tabular-nums;white-space:nowrap;box-shadow:0 0 0 1px #b8889866;margin-top:.7rem}
.timeline time>span{display:block;font:400 .8125rem/1.6 var(--sans);margin-top:.2rem}
.timeline li>div{position:relative;grid-column:3;grid-row:1;min-width:0;padding:1.4rem 1.6rem 1.6rem;margin-left:1.4rem;background:var(--ivory);border:1px solid #cbb1b280;box-shadow:0 8px 16px #46122505}
.timeline li:nth-child(even)>div{grid-column:1;margin-left:0;margin-right:1.4rem;text-align:right}
.timeline-order{display:block;color:#aa7b8b;letter-spacing:.13em;font-size:.75rem;line-height:1.4;margin-bottom:.65rem}
.timeline h3{font:400 1.7rem/1.3 var(--serif);letter-spacing:-.015em;color:var(--wine);margin:0 0 .5rem}
.timeline p{font-size:1rem;line-height:1.8;color:var(--muted);margin:0}
.photo-moment{padding:1rem 6% 4.5rem;background:linear-gradient(to bottom,var(--paper) 0%,var(--paper) 55%,var(--wine-deep) 55%,var(--wine-deep) 100%)}
.photo-moment-frame{position:relative;isolation:isolate;max-width:650px;aspect-ratio:2/3;margin:auto;overflow:hidden;background:#191718;border:12px solid var(--ivory);outline:1px solid #bf9ea8;box-shadow:0 20px 60px #210b1933}
.photo-moment-frame:after{content:"";position:absolute;inset:12px;z-index:3;border:1px solid #f5e5df66;pointer-events:none}
.photo-moment-image{display:block;position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center top;z-index:0}
.photo-moment-shade{position:absolute;inset:0;background:linear-gradient(to bottom,transparent 45%,rgba(23,9,16,.16) 62%,rgba(23,9,16,.9) 100%);z-index:1}
.photo-moment-copy{position:absolute;z-index:2;bottom:0;left:0;width:100%;text-align:center;padding:2.6rem 1.7rem 3rem;color:var(--ivory);text-shadow:0 2px 8px #0005}
.photo-moment-copy .eyebrow{color:#ead8e1;font-size:.8125rem;letter-spacing:.18em;margin:0 0 .8rem}
.photo-moment-copy h2{font:400 clamp(1.9rem,3.7vw,3.3rem)/1.23 var(--serif);letter-spacing:-.03em;margin:0}
.photo-moment-copy>p:last-child{font-size:.8125rem;letter-spacing:.2em;margin:1.25rem 0 0;color:#e2c6d2}
.rsvp{position:relative;background:var(--wine-deep);color:var(--ivory);padding:1rem max(7%,calc((100vw - 1210px)/2)) 5.3rem;display:grid;grid-template-columns:1fr 1fr;gap:9%;align-items:center}
.rsvp-intro .eyebrow{color:#d5b2c2;margin-bottom:1.3rem}
.rsvp-intro h2{font:400 clamp(3rem,4.5vw,4.6rem)/1.06 var(--serif);letter-spacing:-.045em;margin:0 0 1.5rem}
.rsvp-intro h2 em{font:400 1.32em/1.1 var(--script);letter-spacing:0;color:#dcafc1}
.rsvp-intro>p:not(.eyebrow):not(.rsvp-signature){color:#e4cdd7;font-size:1rem;line-height:1.85;max-width:390px}
.rsvp-intro strong{font-weight:400;color:var(--ivory);text-decoration:underline;text-decoration-color:#b28196;text-underline-offset:.2em}
.rsvp-signature{font:400 2.2rem var(--script);margin:1.5rem 0 0;color:#dbafc1}
.guest-card{padding:1rem 0 1rem 1.1rem;border-left:1px solid #bd8c9f;margin:1.7rem 0;color:#efdde5}
.guest-card>span{font-size:.875rem}.guest-card p{font:1.65rem/1.4 var(--serif);margin:.3rem 0;overflow-wrap:anywhere}
.rsvp-form{position:relative;min-width:0;background:var(--ivory);color:var(--ink);padding:2.25rem 2.5rem 2.5rem;border:1px solid #ba8f9f;box-shadow:0 12px 25px #28071333;border-radius:3px}
.rsvp-form:before{content:"";position:absolute;inset:8px;border:1px solid #c8a5b266;pointer-events:none}
.form-ornament{width:fit-content;margin:0 auto 1rem;padding:0 1.5rem .65rem;border-bottom:1px solid var(--line);font:1.55rem var(--serif);color:var(--wine)}.form-ornament i{font-style:italic;color:#ac758c}
.form-title{text-align:center;font:400 2.5rem/1.25 var(--script);color:var(--wine);margin:0 0 1.7rem}
.field{margin-bottom:1.3rem}
.field>label,.attendance legend{display:block;font-size:.875rem;line-height:1.6;margin:0 0 .6rem;color:var(--wine)}
.field>input{display:block;width:100%;border:1px solid #cbb0b6;background:#fffcf7;padding:.8rem .9rem;min-height:50px;border-radius:3px;color:var(--ink);font-size:1rem;outline-offset:2px}
.field>input::placeholder{color:#8c7c82}.field>input:focus{border-color:var(--wine)}
.attendance{border:0;padding:0;margin:0 0 1.3rem;min-width:0}
.attendance-options{display:flex;gap:.6rem}.attendance-options>label{flex:1;min-width:0;position:relative;cursor:pointer}
.attendance-options input{position:absolute;inset:0;width:100%;height:100%;margin:0;opacity:0;cursor:pointer}
.attendance-options span{display:flex;align-items:center;justify-content:center;text-align:center;border:1px solid #cbb0b6;border-radius:3px;min-height:50px;padding:.6rem .45rem;line-height:1.5;font-size:.875rem;color:var(--wine);background:#fffcf7}
.attendance-options input:checked+span{border-color:var(--wine);background:#ebdce1;box-shadow:inset 0 0 0 1px var(--wine)}
.attendance-options input:focus-visible+span{outline:3px solid #bd805a;outline-offset:3px}
.party-field input{max-width:100px}.field-help{color:var(--muted);font-size:.8125rem;line-height:1.6;margin:.55rem 0 0}
.submit-button{width:100%;margin:.25rem 0 0;justify-content:space-between;font-size:.9375rem;gap:.75rem}
.whatsapp-note{text-align:center;color:var(--muted);font-size:.8125rem;line-height:1.65;margin:1rem 0 0}
.form-feedback{font-size:.875rem;line-height:1.7;padding:1rem;border-left:2px solid var(--wine);background:#eee1e0;margin:1.25rem 0 0}.form-feedback a{font-weight:600;color:var(--wine)}
.rsvp-form noscript p{font-size:.875rem}
.site-footer{position:relative;text-align:center;padding:2.8rem 1rem 2.5rem;background:var(--ivory);border-top:6px solid #dfc4ce}
.footer-names{font:400 2.9rem/1.2 var(--script);color:var(--wine);text-decoration:none}.footer-names i{font:italic .65em var(--serif);color:#a37687}
.site-footer p{font-size:.8125rem;color:var(--muted);margin:.8rem 0 0}.site-footer p>span{padding:0 .4rem}
.site-footer .footer-last{font:italic 1.05rem/1.6 var(--serif);margin-top:1rem}
.reveal-ready{transition:opacity .75s ease,transform .75s cubic-bezier(.2,.65,.3,1)}
.reveal-pending{opacity:0;transform:translateY(24px)}
@media(min-width:1540px){.hero{padding-left:130px;padding-right:130px}}
@media(max-width:1050px){
 .hero{padding:4.5rem 6%;gap:6%}.hero h1{font-size:clamp(5rem,10vw,7rem)}.hero-eyebrow{font-size:.75rem;letter-spacing:.12em}
 .hero-message{font-size:1.05rem}.desktop-break{display:none}.date-day,.date-month{font-size:.75rem}.date-number{padding:0 .7rem}
 .wedding-date{gap:.6rem;padding:.8rem .5rem}.portrait-emblem{width:94px;left:-.6rem}.portrait-emblem>span{font-size:1.25rem}
 .hero-portrait figcaption{font-size:1rem;margin-left:80px}
 .letter-card{padding:3.5rem 4%}.family-grid{gap:1rem}.family-group{padding:0 .5rem}
 .event-grid{gap:1.5rem}.event{padding-left:1.4rem;padding-right:1.4rem}
 .timeline li>div{padding:1.25rem;margin-left:1rem}.timeline li:nth-child(even)>div{margin-right:1rem}
 .rsvp{padding-left:6%;padding-right:6%;gap:6%}.rsvp-form{padding:2.1rem 1.6rem}
}
@media(max-width:760px){
 html{scroll-padding-top:100px}
 .site-header{position:sticky;top:0;min-height:76px;padding:.7rem 5%;gap:.6rem;box-shadow:0 3px 12px #4612250d}
 .monogram{width:46px;height:46px;font-size:1.2rem}.monogram span{font-size:.95rem}
 .header-date{font-size:.75rem;letter-spacing:.1em}.header-date span{padding:0 .05rem}.header-link{font-size:.8125rem;gap:.5rem}.header-link>span{display:none}
 .hero{display:grid;grid-template-columns:minmax(0,1fr);gap:0;padding:2.8rem 8% 3rem;overflow:clip}
 .hero:before{background-size:100% auto;background-position:center top;opacity:.32;mix-blend-mode:multiply}
 .hero:after{inset:14px;outline-offset:5px}
 .hero-copy{display:contents}
 .hero-eyebrow{grid-row:1;max-width:300px;font-size:.75rem;text-align:center;letter-spacing:.14em;margin:0 auto 1.1rem}
 .hero h1{grid-row:2;font-size:clamp(5rem,20vw,7rem);line-height:1.02;margin:0 auto 1.9rem;letter-spacing:0}
 .hero h1 .second-name{margin-left:1.5rem}.hero h1 i{font-size:.48em;vertical-align:.2em}
 .hero-portrait{grid-row:3;width:100%;max-width:390px;justify-self:center;padding:0 .2rem;margin:0 0 1.9rem}
 .portrait-frame{padding:8px;box-shadow:9px 12px 0 -3px #cfb7b432,0 12px 24px #46122512}
 .portrait-frame:before{inset:-6px}
 .portrait-emblem{width:90px;left:-.4rem;bottom:.05rem;box-shadow:0 0 0 4px var(--ivory),0 0 0 5px #bb949f}
 .portrait-emblem>span{font-size:1.25rem}.portrait-emblem small{font-size:.75rem}
 .hero-portrait figcaption{font-size:1rem;margin:1rem 0 0 95px;min-height:40px;display:flex;align-items:center;justify-content:flex-end}
 .hero-rule{display:none}.hero-message{grid-row:4;text-align:center;font-size:1.15rem;line-height:1.75;max-width:340px;margin:0 auto 1.35rem}
 .wedding-date{grid-row:5;gap:1rem;padding:.9rem .6rem;margin:0 auto}.date-day,.date-month{font-size:.8125rem}.date-number{font-size:3.6rem;padding:0 .85rem}
 .hero-location{grid-row:6;text-align:center;margin:1rem 0 1.5rem;font-size:1.3rem}
 .hero .button{grid-row:7;width:min(100%,335px);justify-self:center;min-height:54px}
 .details-link{grid-row:8;margin:.6rem auto 0;min-height:44px}
 .countdown{padding:2.8rem 7% 3rem}.countdown:after{inset:11px}
 .countdown .eyebrow{font-size:.75rem}.countdown h2{font-size:2.8rem;margin-bottom:1.4rem}
 .countdown-clock{gap:.45rem;margin-bottom:1.2rem}.countdown-clock>div{padding:1.15rem .1rem .85rem;border-radius:23px 23px 3px 3px}
 .countdown-clock dd{font-size:clamp(2rem,8.4vw,3.5rem)}.countdown-clock dt{font-size:.875rem;margin-top:.55rem}
 .countdown-note{font-size:.875rem;max-width:340px;margin:auto}.countdown-note>span{font-size:.75rem}
 .invitation-letter{padding:3.3rem 5%}.letter-card{padding:2.7rem 7%;border-color:#b78d99}
 .letter-card:after{inset:7px}.letter-card:before{background-size:auto 100%;opacity:.17}
 .letter-ampersand{width:60px;height:60px;font-size:2.5rem;margin-bottom:1.3rem}
 .letter-card>.eyebrow{font-size:.75rem;margin-bottom:1.4rem}
 .letter-card>h2{font-size:clamp(1.65rem,6.6vw,2.2rem);line-height:1.35;letter-spacing:-.02em}
 .names-join{font-size:1.8rem;line-height:1.5}
 .letter-card>p:not(.eyebrow){font-size:1rem;line-height:1.85}.letter-card>.letter-ending{font-size:1.25rem!important}
 .family-section{margin-top:2.3rem;padding-top:1.7rem}.family-title{font-size:2.4rem;margin-bottom:1.25rem}
 .family-grid{grid-template-columns:1fr;gap:1.6rem}.family-group{padding:0}.family-group+.family-group{border-left:0}
 .family-group h4{font-size:.75rem;margin-bottom:.6rem;letter-spacing:.1em}.family-group p{font-size:clamp(1.08rem,4.7vw,1.4rem);line-height:1.65}
 .godparents{margin-top:2rem;padding-top:1.7rem}.godparents-grid{grid-template-columns:1fr;gap:1.7rem}
 .godparents-group{padding:0}.godparents-group h4{font-size:.875rem;letter-spacing:.07em;margin-bottom:.7rem}
 .godparents-group p{font-size:clamp(1.08rem,4.7vw,1.4rem)}
 .celebration{padding:3.2rem 7% 3rem}
 .section-heading h2{font-size:2.9rem;line-height:1.15;margin-bottom:2rem}.section-heading .eyebrow{font-size:.75rem;letter-spacing:.12em}
 .event-grid{grid-template-columns:1fr;gap:1.9rem;max-width:430px}
 .event{border-radius:135px 135px 4px 4px;padding:2.6rem 1.25rem 2.1rem}
 .event-marker{margin-bottom:.85rem;width:40px;height:40px}
 .event-kind{font-size:2.25rem;margin-bottom:.5rem}.event-time{font-size:3.5rem}
 .event h3{font-size:2.1rem}.event-type,.event-place{font-size:1rem}
 .map-link{font-size:.875rem;padding:.7rem 1rem;gap:.7rem}
 .dress-note{font-size:1.12rem;max-width:320px;margin-top:1.8rem}
 .itinerary{padding:3.7rem 5% 2.8rem}.itinerary .section-heading h2{font-size:2.8rem;max-width:400px;margin-left:auto;margin-right:auto}
 .itinerary .eyebrow{font-size:.75rem;letter-spacing:.09em}.itinerary-location{font-size:1.2rem;margin-bottom:2.3rem}
 .timeline{max-width:550px}.timeline:before{left:34px;top:15px;bottom:45px}
 .timeline li{grid-template-columns:68px minmax(0,1fr);padding-bottom:1.3rem}
 .timeline time{grid-column:1;width:68px;height:68px;border-width:4px;font-size:1.22rem;margin-top:1rem}
 .timeline time>span{font-size:.75rem;margin-top:.1rem}
 .timeline li>div,.timeline li:nth-child(even)>div{grid-column:2;margin:0 0 0 .7rem;text-align:left;padding:1.1rem .95rem 1.2rem}
 .timeline h3{font-size:1.5rem;line-height:1.3;margin-bottom:.45rem}.timeline p{font-size:1rem;line-height:1.7}.timeline-order{font-size:.75rem;margin-bottom:.5rem}
 .photo-moment{padding:.5rem 6% 3.1rem}
 .photo-moment-frame{border-width:6px;max-width:440px}.photo-moment-frame:after{inset:8px}
 .photo-moment-copy{padding:1.65rem 1rem 2rem}
 .photo-moment-copy .eyebrow{font-size:.75rem;margin-bottom:.7rem;letter-spacing:.13em}
 .photo-moment-copy h2{font-size:clamp(1.5rem,6.6vw,2.5rem);line-height:1.25;letter-spacing:-.025em}
 .photo-moment-copy>p:last-child{font-size:.75rem;margin-top:.8rem}
 .rsvp{grid-template-columns:1fr;gap:2rem;padding:0 6% 3.5rem}
 .rsvp-intro{text-align:center}.rsvp-intro .eyebrow{font-size:.75rem;margin-bottom:1.1rem}
 .rsvp-intro h2{font-size:3.2rem;line-height:1.1;margin-bottom:1.25rem}
 .rsvp-intro h2 br:nth-of-type(2){display:none}.rsvp-intro h2 em:before{content:" "}
 .rsvp-intro h2 em{font-size:1.27em}
 .rsvp-intro>p:not(.eyebrow):not(.rsvp-signature){max-width:355px;margin-left:auto;margin-right:auto;font-size:1rem}
 .rsvp-signature{font-size:2.1rem;margin-top:1.2rem}
 .guest-card{text-align:left;max-width:340px;margin-left:auto;margin-right:auto}
 .rsvp-form{padding:1.8rem 1.45rem 2rem;width:100%;max-width:440px;margin:auto}
 .form-title{font-size:2.45rem;margin-bottom:1.4rem}.form-ornament{font-size:1.4rem}
 .site-footer{padding:2.4rem 1rem 2.2rem}.footer-names{font-size:2.7rem}
}
@media(max-width:360px){
 .header-date{display:none}.header-link{font-size:.875rem}
 .hero{padding-left:8%;padding-right:8%}.hero h1{font-size:4.75rem}.hero-eyebrow{font-size:.75rem;letter-spacing:.08em}
 .wedding-date{gap:.55rem;padding-left:.3rem;padding-right:.3rem}.date-day,.date-month{font-size:.75rem;letter-spacing:.04em}.date-number{padding:0 .65rem;font-size:3.2rem}
 .portrait-emblem{width:82px}.portrait-emblem>span{font-size:1.1rem}
 .countdown-clock{gap:.3rem}.countdown-clock dt{font-size:.875rem}.countdown-clock dd{font-size:2rem}
 .letter-card{padding-left:6%;padding-right:6%}.letter-card>h2{font-size:1.55rem}
 .timeline li{grid-template-columns:60px minmax(0,1fr)}.timeline time{width:60px;height:60px;font-size:1.1rem}.timeline:before{left:30px}
 .timeline li>div,.timeline li:nth-child(even)>div{margin-left:.6rem;padding:.95rem .8rem 1.1rem}.timeline h3{font-size:1.35rem}
 .rsvp-form{padding:1.6rem 1.15rem}.attendance-options{flex-direction:column}
}
@media(prefers-reduced-motion:reduce){
 html{scroll-behavior:auto}
 *,*:before,*:after{animation:none!important;transition:none!important}
 .reveal-pending{opacity:1!important;transform:none!important}
}
@media print{
 .site-header,.details-link,.skip-link,.rsvp-form,.button{display:none}
 body{background:white;color:#222}
 .reveal-pending{opacity:1;transform:none}
 .hero,.invitation-letter,.celebration,.countdown,.itinerary,.photo-moment,.rsvp,.site-footer{break-inside:avoid}
}
