:root{--cream:#fff9e9;--sage:#b8cfa8;--butter:#f5dc78;--pink:#f2a8b8;--peach:#f5b38c;--lav:#c9b7e5;--green:#284b36;--ink:#24372b}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;color:var(--ink);background:var(--cream);font:16px/1.6 "DM Sans",sans-serif}a,button{color:inherit;font:inherit}a{text-decoration:none}button{border:0;cursor:pointer}img{display:block;width:100%;height:100%;object-fit:cover}.demo-bar{display:flex;justify-content:space-between;padding:9px 3vw;color:#fff;background:var(--green);font-size:10px;letter-spacing:.13em;text-transform:uppercase}.site-header{position:sticky;z-index:20;top:0;display:flex;align-items:center;justify-content:space-between;padding:17px 3vw;border-bottom:1px solid rgba(40,75,54,.2);background:rgba(255,249,233,.94);backdrop-filter:blur(14px)}.logo{font:30px "Fraunces";letter-spacing:.05em}.logo i{color:#e76984}.site-header nav{display:flex;gap:25px;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.1em}.nav-button{display:none;background:none}.invitation{display:grid;grid-template-columns:1.02fr .98fr;min-height:850px;background:linear-gradient(140deg,var(--cream),#fdf0c9)}.invitation-copy{position:relative;display:flex;overflow:hidden;flex-direction:column;align-items:center;justify-content:center;padding:95px 6vw;text-align:center}.invitation-copy:before,.invitation-copy:after{position:absolute;width:260px;height:260px;border-radius:50%;content:"";filter:blur(2px)}.invitation-copy:before{top:-80px;left:-70px;background:rgba(242,168,184,.55)}.invitation-copy:after{right:-90px;bottom:-70px;background:rgba(201,183,229,.55)}.script,.section h2 i,.venue h2 i,.external-rsvp h2 i{font-family:"Oooh Baby",cursive;font-weight:400}.invitation .script{position:relative;margin:0;font-size:clamp(42px,6vw,78px);transform:rotate(-3deg)}.invitation h1{position:relative;margin:0;font:clamp(65px,8.4vw,125px)/.78 "Fraunces";letter-spacing:-.07em}.names{position:relative;display:flex;align-items:center;gap:15px;margin:32px 0 15px;font:clamp(20px,2.6vw,35px) "Fraunces"}.names b{font:45px "Oooh Baby";color:#d85f7c}.invite-actions{position:relative;display:flex;gap:10px;margin-top:28px}.invite-actions a,.day-links a,.venue-copy>a,.external-rsvp a{padding:13px 18px;border:1px solid;border-radius:99px;font-size:11px;font-weight:700;text-transform:uppercase}.invite-actions a:last-child,.external-rsvp a{color:white;background:var(--green)}.countdown{position:relative;display:flex;gap:34px;margin-top:45px}.countdown span{font-size:9px;letter-spacing:.12em;text-transform:uppercase}.countdown b{display:block;font:32px "Fraunces"}.invitation-photo{position:relative;min-height:700px;margin:0}.invitation-photo:after{position:absolute;inset:0;content:"";background:linear-gradient(180deg,transparent 68%,rgba(20,40,27,.55))}.invitation-photo figcaption{position:absolute;z-index:1;right:35px;bottom:30px;left:35px;color:white;font:28px "Oooh Baby";text-align:center}.section{padding:115px max(5vw,22px)}.section>header{display:grid;grid-template-columns:1fr 2fr;gap:5vw;margin-bottom:65px}.section header>p,.dress>div>p:first-child,.venue-copy>p:first-child,.external-rsvp>div>p:first-child{font-size:11px;font-weight:700;letter-spacing:.12em;text-transform:uppercase}.section h2,.dress h2,.venue h2,.external-rsvp h2{margin:0;font:clamp(48px,6.5vw,95px)/.93 "Fraunces";letter-spacing:-.055em}.section h2 i,.dress h2,.venue h2 i,.external-rsvp h2 i{color:#d5607b}.story{background:var(--sage)}.story-moments{display:grid;gap:20px;max-width:1180px;margin:auto}.story-moments article{display:grid;grid-template-columns:minmax(220px,.72fr) 1fr;min-height:340px;overflow:hidden;border-radius:28px;background:var(--cream);box-shadow:0 18px 50px rgba(40,75,54,.12)}.story-moments article:nth-child(even){grid-template-columns:1fr minmax(220px,.72fr)}.story-moments article:nth-child(even) img{grid-column:2;grid-row:1}.story-moments article:nth-child(even) div{grid-column:1;grid-row:1}.story-moments div{display:flex;flex-direction:column;justify-content:center;padding:45px}.story-moments span{font-size:10px;font-weight:700;letter-spacing:.12em}.story-moments h3{margin:8px 0;font:clamp(32px,4vw,55px)/1 "Fraunces"}.story-moments p{max-width:550px}.day-cards{display:grid;grid-template-columns:repeat(4,1fr);gap:15px}.day-cards article{min-height:350px;padding:30px;border:1px solid;border-radius:150px 150px 18px 18px;text-align:center}.day-cards article:nth-child(2){background:var(--butter)}.day-cards article:nth-child(3){background:var(--pink)}.day-cards article:nth-child(4){background:var(--lav)}.day-cards span{font:50px "Fraunces"}.day-cards h3{margin-top:85px;font:29px/1 "Fraunces"}.day-links{display:flex;justify-content:center;gap:12px;margin-top:45px}.dress{display:grid;grid-template-columns:1fr 1fr;background:var(--lav)}.dress-photo{min-height:700px}.dress>div{display:flex;flex-direction:column;justify-content:center;padding:8vw}.dress h2{font-family:"Fraunces";color:var(--green)}.dress>div>p:not(:first-child){max-width:520px;font-size:19px}.color-dots{display:flex;gap:10px;margin-top:30px}.color-dots i{width:50px;height:50px;border-radius:50%;background:var(--butter)}.color-dots i:nth-child(2){background:var(--pink)}.color-dots i:nth-child(3){background:var(--peach)}.color-dots i:nth-child(4){background:var(--lav)}.color-dots i:nth-child(5){background:var(--green)}.venue{display:grid;grid-template-columns:1.1fr .9fr;padding:0;background:var(--butter)}.venue-photo{min-height:760px}.venue-copy{display:flex;flex-direction:column;justify-content:center;padding:7vw}.venue h2{font-family:"Fraunces";color:var(--green)}.venue-copy p,.venue-copy address{max-width:520px}.venue-copy address{margin:20px 0;font-style:normal;font-weight:700}.venue-copy>a{align-self:flex-start}.registry{background:var(--cream)}.registry-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}.registry-grid a{min-height:330px;padding:38px;border:1px solid;border-radius:100px 24px 100px 24px;background:rgba(255,255,255,.55)}.registry-grid a:nth-child(2){background:var(--sage)}.registry-grid span{font-size:11px;font-weight:700}.registry-grid h3{margin:85px 0 8px;font:36px "Fraunces"}.registry-grid strong{display:block;margin-top:25px;font-size:11px;text-transform:uppercase}.external-rsvp{display:grid;grid-template-columns:1fr 1fr;gap:6vw;color:white;background:var(--green)}.external-rsvp h2{font-family:"Fraunces";color:white}.external-rsvp>div:last-child{align-self:center}.external-rsvp a{display:inline-flex;margin-top:18px;color:var(--green);background:var(--butter)}footer{display:flex;justify-content:space-between;padding:35px 4vw;color:white;background:var(--green);font-size:11px;font-weight:700}
@media(max-width:800px){.site-header nav{position:fixed;inset:96px 0 auto;display:none;flex-direction:column;align-items:center;padding:35px;background:var(--cream)}.site-header.open nav{display:flex}.nav-button{display:block}.invitation{grid-template-columns:1fr}.invitation-copy{min-height:710px;padding:90px 20px 55px}.invitation-photo{min-height:520px}.names{flex-direction:column;gap:0}.countdown{gap:20px}.section{padding:85px 20px}.section>header{display:block}.story-moments article,.story-moments article:nth-child(even){grid-template-columns:1fr;min-height:0}.story-moments article img,.story-moments article:nth-child(even) img{grid-column:1;grid-row:1;height:360px}.story-moments article div,.story-moments article:nth-child(even) div{grid-column:1;grid-row:2;padding:28px}.day-cards{grid-template-columns:1fr 1fr}.day-cards article{min-height:300px}.dress,.venue,.external-rsvp{grid-template-columns:1fr}.dress-photo,.venue-photo{min-height:58vh}.dress>div,.venue-copy{padding:75px 22px}.registry-grid{grid-template-columns:1fr}footer{gap:20px;flex-direction:column}}
@media(max-width:520px){.day-cards{grid-template-columns:1fr}.day-links,.invite-actions{align-items:stretch;flex-direction:column}.invitation h1{font-size:58px}.demo-bar span{display:none}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
