@import url('https://fonts.googleapis.com/css2?family=Cormorant+Garamond:wght@300;400;500;600&family=Great+Vibes&display=swap');
:root{--wine:#3b0710;--wine2:#4a0b15;--ink:#4b0d16;--paper:#fffdfa;--pink:#c78f97;--serif:'Cormorant Garamond',Georgia,serif;--script:'Great Vibes','Segoe Script','Brush Script MT',cursive}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--wine);color:#fff;font-family:var(--serif);font-weight:400}main{overflow:hidden}.wine{background:radial-gradient(ellipse at 18% 46%,rgba(147,55,65,.19),transparent 35%),radial-gradient(ellipse at 84% 12%,rgba(132,42,54,.15),transparent 30%),var(--wine);color:#fff}.paper{background:var(--paper);color:var(--ink)}h1,h2,h3,p{margin-top:0}h2{font-size:calc(2 * clamp(1.2rem,2.4vw,2.4rem));font-weight:400;line-height:.9;letter-spacing:-.035em}h3{font-size:calc(2 * 0.66rem);font-weight:500}.script{font-family:var(--script);font-weight:400}.eyebrow{font-size:calc(2 * clamp(1.08rem,1.98vw,2.1rem));line-height:.85;margin-bottom:.15em;color:inherit}.hero{min-height:700px;height:95vh;max-height:1050px;position:relative;text-align:center;display:flex;align-items:center;justify-content:center;flex-direction:column;padding:3rem 1rem 8rem}.hero-meta{position:absolute;top:2rem;left:4%;right:4%;display:flex;justify-content:space-between;font-size:calc(2 * 0.42rem);opacity:.55}.names{font-size:calc(2 * clamp(1.5rem,3.6vw,3rem));line-height:.8;margin:0 0 3rem}.hero-title{position:absolute;bottom:-.12em;white-space:nowrap;font-size:calc(2 * clamp(1.8rem,6vw,5.4rem));line-height:.95;color:#d6a4a5;text-shadow:0 1px 10px #220309;z-index:2}
.torn-top,.torn-bottom{position:relative}.torn-top:before,.torn-bottom:after{content:"";position:absolute;left:-1%;width:102%;height:22px;background:var(--paper);z-index:3;clip-path:polygon(0 42%,2% 35%,4% 48%,7% 28%,10% 43%,13% 23%,16% 42%,19% 30%,22% 49%,25% 26%,28% 42%,31% 32%,34% 46%,37% 23%,40% 38%,43% 30%,46% 45%,49% 27%,52% 43%,55% 29%,58% 48%,61% 30%,64% 44%,67% 24%,70% 39%,73% 31%,76% 46%,79% 25%,82% 42%,85% 30%,88% 45%,91% 24%,94% 42%,97% 29%,100% 43%,100% 100%,0 100%)}.torn-top:before{top:-1px;transform:rotate(180deg)}.torn-bottom:after{bottom:-1px}
.intro{display:grid;grid-template-columns:1fr 1fr;min-height:480px;align-items:stretch}.intro-copy{padding:5rem clamp(2rem,7vw,8rem);align-self:center}.intro-copy h2{font-size:calc(2 * clamp(1.2rem,2.04vw,2.16rem));margin-bottom:1.3rem}.intro-copy p:not(.eyebrow){font-size:calc(2 * clamp(0.54rem,0.72vw,0.66rem));line-height:1.45;max-width:480px}.intro-photo{width:100%;height:100%;max-height:660px;min-height:420px;object-fit:cover;object-position:50% 42%}.grayscale{filter:grayscale(1)}
.story{padding:8rem 5vw 7rem;display:grid;grid-template-columns:.85fr 1.15fr;gap:5vw;align-items:center}.story-photo-wrap{display:grid;grid-template-columns:1fr 1fr;align-items:center}.story-photo-wrap h2{font-size:calc(2 * clamp(1.44rem,2.4vw,2.88rem))}.story-photo-wrap img{width:100%;aspect-ratio:1;object-fit:cover}.story-copy{font-size:calc(2 * clamp(0.492rem,0.6vw,0.6rem));line-height:1.45;max-width:690px}.story-copy p{margin-bottom:1rem}
.calendar{text-align:center;padding:4rem 1rem 5rem}.calendar h2{font-size:calc(2 * clamp(1.08rem,1.8vw,1.8rem));margin-bottom:.15em}.calendar .eyebrow{margin-bottom:0}.date-line{font-size:calc(2 * 0.66rem);margin:0 auto 1.25rem;border-bottom:1px solid rgba(255,255,255,.5);max-width:360px}.calendar-grid{display:grid;grid-template-columns:repeat(7,34px);justify-content:center;gap:7px;font-size:calc(2 * 0.45rem);line-height:30px}.calendar-grid span{opacity:.5;font-size:calc(2 * 0.378rem)}.calendar-grid b{font-weight:400}.calendar-grid .selected{background:#fff;color:var(--wine);border-radius:50%;font-weight:600}
.venue{display:grid;grid-template-columns:1fr 1fr;gap:4rem;padding:5rem 8vw;min-height:380px;align-items:center}.venue .eyebrow{margin-bottom:0}.venue h2{font-size:calc(2 * clamp(1.2rem,2.04vw,2.04rem));margin:0 0 1rem}.time{font-size:calc(2 * 1.5rem);margin:0}.address{font-size:calc(2 * 0.6rem);line-height:1.1;font-weight:600;max-width:430px;margin:.5rem 0}.coords{font-size:calc(2 * 0.48rem)}.map-link{color:var(--ink);font-size:calc(2 * 0.54rem)}.map-art span{position:absolute;top:1.2rem;right:1rem;font-size:calc(2 * 0.36rem);letter-spacing:.12em}.map-art i{font-size:calc(2 * 1.8rem);font-style:normal}
.schedule{text-align:center;padding:5rem 1rem 6rem}.schedule .eyebrow{margin-bottom:0}.schedule h2{margin:0 0 2.3rem}.events{max-width:540px;margin:auto}.events article{margin:0 auto 1.25rem;max-width:360px}.events time{display:block;font-size:calc(2 * 0.66rem)}.events h3{margin:.1rem 0;font-size:calc(2 * 0.6rem)}.events p{font-size:calc(2 * 0.498rem);line-height:1.25;margin:0;opacity:.87}
.dress{padding:5rem 8vw 6rem;display:grid;grid-template-columns:1fr 1fr;align-items:center;gap:4rem}.dress .eyebrow{margin:0}.dress h2{margin:0;font-size:calc(2 * clamp(1.62rem,3vw,3rem))}.swatches{display:grid;grid-template-columns:repeat(2,1fr);gap:3px;margin:0 auto 1rem;max-width:520px}.swatches i{height:clamp(55px,6vw,92px);background:#c99498}.swatches i:nth-child(2){background:#944c59}.swatches i:nth-child(3){background:#829aaa}.swatches i:nth-child(4){background:#364859}.swatches i:nth-child(5){background:#b3a69e}.swatches i:nth-child(6){background:#77716e}.dress-side p{font-size:calc(2 * 0.51rem);max-width:520px;line-height:1.3}
.rsvp{padding:5rem 7vw 5rem;display:grid;grid-template-columns:1fr 1fr;gap:8vw;align-items:center}.rsvp .eyebrow{margin-bottom:0}.rsvp h2{font-size:calc(2 * clamp(1.32rem,2.4vw,2.4rem));margin-bottom:1rem}.rsvp-form{max-width:540px}.field-label,.rsvp fieldset{display:block;border:0;padding:0;margin:0 0 1rem;font-size:calc(2 * 0.492rem)}.field-label input,.field-label textarea{display:block;width:100%;margin-top:.35rem;border:1px solid #ddcfd0;background:white;padding:.6rem;font:inherit;color:var(--ink)}.rsvp fieldset legend{font-size:calc(2 * 0.522rem);font-weight:600;margin-bottom:.35rem}.rsvp fieldset label{display:block;font-size:calc(2 * 0.468rem);line-height:1.6}.rsvp input[type=radio],.rsvp input[type=checkbox]{accent-color:var(--wine);margin-right:.35rem}.checks{display:grid;grid-template-columns:1fr 1fr;gap:0 .5rem}.rsvp button{width:100%;border:0;background:var(--wine);color:white;padding:.8rem;font:inherit;cursor:pointer}.form-note{font-size:calc(2 * 0.48rem);min-height:1em}.countdown{text-align:center}.countdown .eyebrow{margin-bottom:1rem}.count-grid{display:flex;justify-content:center;gap:1rem}.count-grid div{display:flex;flex-direction:column}.count-grid strong{font-size:calc(2 * clamp(1.8rem,3.6vw,3.6rem));line-height:.9;font-weight:300}.count-grid span{font-size:calc(2 * 0.42rem)}.to-day{font-size:calc(2 * clamp(1.32rem,3vw,2.7rem));line-height:.8;margin:.7rem 0 0}.countdown-script{font-size:calc(2 * clamp(1.5rem,3vw,2.7rem));margin:0}
.wishes{padding:6rem 7vw 7rem;display:grid;grid-template-columns:1fr .92fr;gap:8vw;align-items:start}.wishes .eyebrow{margin:0}.wishes h2{font-size:calc(2 * clamp(1.26rem,2.4vw,2.4rem));margin:0 0 1.3rem}.wish-copy p:not(.eyebrow){font-size:calc(2 * 0.57rem);line-height:1.35}.wish-copy .thanks{font-weight:600}.group-card{margin-top:1.4rem;background:rgba(20,0,5,.5);padding:2rem}.group-card .eyebrow{font-size:calc(2 * 1.2rem)}.group-card h3{font-family:var(--serif);font-size:calc(2 * 0.78rem)}.group-card p{font-size:calc(2 * 0.54rem);line-height:1.4}.group-card a{display:block;text-align:center;background:#fff;color:var(--wine);padding:.8rem;text-decoration:none;font-weight:600}
.closing{text-align:center;padding:2rem 0 0}.closing h2{font-size:calc(2 * clamp(0.96rem,2.04vw,2.22rem));line-height:.9;margin:0 auto 1rem;max-width:1000px}.closing-photo{display:block;width:100%;height:min(95vw,950px);object-fit:cover;object-position:50% 35%}.footer{text-align:center;padding:2rem 1rem 1rem}.footer-names{font-size:calc(2 * clamp(1.92rem,4.8vw,4.2rem));color:#cc969b;margin:0;line-height:.9}.footer small{opacity:.5;font-size:calc(2 * 0.42rem)}
@media(max-width:700px){.hero{min-height:590px;height:90vh}.hero-title{font-size:calc(2 * clamp(1.86rem,7.2vw,3rem))}.intro{grid-template-columns:1fr}.intro-copy{padding:4.5rem 2rem 2.5rem}.intro-photo{min-height:280px;height:72vw}.story{grid-template-columns:1fr;gap:2rem;padding:5rem 1.5rem}.story-photo-wrap{max-width:520px;margin:auto;width:100%}.story-copy{columns:1}.venue{grid-template-columns:1fr;gap:2rem;padding:4rem 2rem}.dress{grid-template-columns:1fr;gap:1.5rem;padding:4rem 2rem}.rsvp{grid-template-columns:1fr;gap:3rem;padding:4rem 1.5rem}.wishes{grid-template-columns:1fr;gap:2rem;padding:4rem 1.5rem}.calendar{padding:3rem 1rem 4rem}.calendar-grid{gap:4px;grid-template-columns:repeat(7,31px)}.closing-photo{height:120vw;max-height:680px}}
@media(min-width:1000px){.story,.dress,.wishes,.venue,.rsvp{padding-left:max(8vw,calc((100vw - 1200px)/2));padding-right:max(8vw,calc((100vw - 1200px)/2))}}


body{font-size:120%}




/* User refinements */
.hero-meta span:first-child{position:absolute;left:50%;transform:translateX(-50%);font-size:.63rem}
.hero-meta span:last-child{margin-left:auto}
.story-photo-wrap{overflow:visible}
.story-photo-wrap img{position:relative;z-index:2;width:130%;max-width:none;transform:translateY(-18px) rotate(30deg);transform-origin:center;box-shadow:0 12px 30px rgba(0,0,0,.28)}
.venue{grid-template-columns:1fr;text-align:center}
.venue-copy{width:100%;margin-inline:auto;text-align:center}
.venue .address{margin-inline:auto}
.venue .coords{margin-inline:auto}

.events time{font-size:1.1rem;font-weight:600;letter-spacing:.04em}
.events h3{font-size:1.15rem}
.events p{font-size:1rem;line-height:1.35}
.dress-side p{font-size:1rem;line-height:1.45}
.count-grid strong{font-size:clamp(3rem,6vw,6rem);font-weight:500;letter-spacing:.035em;font-variant-numeric:tabular-nums;line-height:1}
.count-grid span{font-size:.75rem;margin-top:.3rem;letter-spacing:.025em}
.wish-copy p:not(.eyebrow){font-size:1rem;line-height:1.5}
.intro-photo{mask-image:linear-gradient(to right,transparent 0%,rgba(0,0,0,.3) 10%,#000 32%);-webkit-mask-image:linear-gradient(to right,transparent 0%,rgba(0,0,0,.3) 10%,#000 32%)}
.intro-copy p:not(.eyebrow){font-size:1rem;line-height:1.5}
[data-preference]:disabled{opacity:.42;cursor:not-allowed}
[data-preference]:disabled *{cursor:not-allowed}
@media(max-width:700px){.story-photo-wrap img{width:112%;transform:translateY(-12px) rotate(30deg)}.intro-photo{mask-image:linear-gradient(to bottom,transparent 0%,#000 24%);-webkit-mask-image:linear-gradient(to bottom,transparent 0%,#000 24%)}.venue{grid-template-columns:1fr}.events p{font-size:1rem}}


/* Readability pass: enlarge small copy while preserving display headings */
.hero-meta{font-size:1rem}
.story-copy{font-size:1.2rem;line-height:1.55}
.intro-copy p:not(.eyebrow){font-size:1.2rem;line-height:1.55}
.calendar-grid{grid-template-columns:repeat(7,42px);gap:8px;font-size:1.1rem;line-height:38px}
.calendar-grid span{font-size:.95rem;opacity:.72}
.venue .address{font-size:1.1rem;line-height:1.3}
.venue .coords,.map-link{font-size:1rem;line-height:1.45}
.events time{font-size:1.3rem}
.events h3{font-size:1.3rem}
.events p{font-size:1.15rem;line-height:1.45}
.dress-side p{font-size:1.15rem;line-height:1.55}
.field-label,.rsvp fieldset label{font-size:1rem;line-height:1.6}
.rsvp fieldset legend{font-size:1.05rem}
.field-label input,.field-label textarea{font-size:1rem;padding:.75rem}
.rsvp button{font-size:1.05rem;padding:.9rem}
.form-note{font-size:.95rem;line-height:1.4}
.count-grid span{font-size:.95rem}
.wish-copy p:not(.eyebrow){font-size:1.15rem;line-height:1.55}
.group-card p{font-size:1.1rem;line-height:1.55}
.group-card a{font-size:1rem}
.footer small{font-size:.85rem}
@media(max-width:700px){.story-copy,.intro-copy p:not(.eyebrow),.events p,.dress-side p,.wish-copy p:not(.eyebrow){font-size:1.05rem}.calendar-grid{grid-template-columns:repeat(7,38px);gap:5px;font-size:1rem;line-height:35px}.calendar-grid span{font-size:.88rem}.field-label,.rsvp fieldset label{font-size:.95rem}.rsvp fieldset legend{font-size:1rem}}

/* Second readability pass: body copy */
.story-copy{font-size:1.45rem;line-height:1.6}
.intro-copy p:not(.eyebrow){font-size:1.45rem;line-height:1.6}
.calendar-grid{grid-template-columns:repeat(7,48px);gap:8px;font-size:1.3rem;line-height:44px}
.calendar-grid span{font-size:1.05rem}
.venue .address{font-size:1.3rem;line-height:1.4}
.venue .coords,.map-link{font-size:1.15rem;line-height:1.5}
.events time{font-size:1.45rem}
.events h3{font-size:1.45rem}
.events p{font-size:1.35rem;line-height:1.5}
.dress-side p{font-size:1.35rem;line-height:1.6}
.field-label,.rsvp fieldset label{font-size:1.2rem;line-height:1.7}
.rsvp fieldset legend{font-size:1.25rem}
.field-label input,.field-label textarea{font-size:1.2rem;padding:.9rem}
.rsvp button{font-size:1.2rem;padding:1rem}
.form-note{font-size:1.1rem;line-height:1.5}
.count-grid span{font-size:1.05rem}
.wish-copy p:not(.eyebrow){font-size:1.35rem;line-height:1.6}
.group-card p{font-size:1.3rem;line-height:1.6}
.group-card a{font-size:1.15rem;padding:1rem}
.footer small{font-size:1rem}
@media(max-width:700px){.story-copy,.intro-copy p:not(.eyebrow),.events p,.dress-side p,.wish-copy p:not(.eyebrow){font-size:1.2rem;line-height:1.55}.calendar-grid{grid-template-columns:repeat(7,40px);gap:5px;font-size:1.1rem;line-height:36px}.calendar-grid span{font-size:.95rem}.venue .address{font-size:1.15rem}.venue .coords,.map-link{font-size:1rem}.events time,.events h3{font-size:1.25rem}.field-label,.rsvp fieldset label{font-size:1.05rem}.rsvp fieldset legend{font-size:1.1rem}.field-label input,.field-label textarea{font-size:1.05rem}.group-card p{font-size:1.1rem}}

/* Improve body-copy contrast without changing display headings */
.story-copy,.intro-copy p:not(.eyebrow),.events p,.dress-side p,.wish-copy p:not(.eyebrow),.group-card p,.venue .address,.venue .coords,.map-link{font-weight:500}
.calendar-grid{font-weight:500}
.calendar-grid b{font-weight:500}
.field-label,.rsvp fieldset label,.rsvp fieldset legend,.form-note{font-weight:500}
.field-label input,.field-label textarea{font-weight:500}
@media(max-width:700px){.story-copy,.intro-copy p:not(.eyebrow),.events p,.dress-side p,.wish-copy p:not(.eyebrow),.group-card p{font-weight:500}}

/* Latest requested details */
.hero-meta span:first-child{font-size:1.5rem;font-weight:700;letter-spacing:.06em;color:#fff;opacity:1}
.story-photo-wrap img{transform:translateY(-55px) rotate(-90deg)}
.wish-copy>p:not(.eyebrow){position:relative;padding-left:1.8em}
.wish-copy>p:not(.eyebrow)::before{content:'♥';position:absolute;left:0;top:.06em;color:#d99aa2;font-size:1.05em;line-height:1}
@media(max-width:700px){.story-photo-wrap img{transform:translateY(-40px) rotate(-90deg)}.hero-meta span:first-child{font-size:1.2rem}}

/* Turn the story photograph clockwise as requested */
.story-photo-wrap img{transform:translateY(-55px) rotate(60deg)}
@media(max-width:700px){.story-photo-wrap img{transform:translateY(-40px) rotate(60deg)}}
