:root{--ink:#49453f;--muted:#777169;--ivory:#fcfaf5;--warm-white:#fffdf9;--blush:#f3e7e5;--blush-deep:#c7a09e;--sage:#a8b3a3;--sage-deep:#697669;--gold:#a58a58;--line:#a58a5861;--shadow:0 24px 70px #52483d14;font-synthesis:none;text-rendering:optimizelegibility}*{box-sizing:border-box}html{scroll-behavior:smooth}body{min-width:320px;color:var(--ink);background:var(--ivory);-webkit-font-smoothing:antialiased;margin:0;font-family:Georgia,Times New Roman,serif;font-size:17px;line-height:1.7}::selection{color:#fff;background:var(--blush-deep)}button,input,select,textarea{font:inherit}a{color:inherit}h1,h2,h3,p{overflow-wrap:anywhere}.section{padding:126px 28px;position:relative;overflow:hidden}.section__inner{width:min(1080px,100%);margin:0 auto}.section__inner--narrow{text-align:center;width:min(720px,100%)}.section-number,.eyebrow{color:var(--gold);letter-spacing:.28em;text-transform:uppercase;margin:0 0 22px;font-family:Arial,Helvetica,sans-serif;font-size:10px;font-weight:600}.section-number:before,.section-number:after{content:"";opacity:.7;background:currentColor;width:32px;height:1px;margin:0 12px 3px;display:inline-block}h2{color:#514b44;letter-spacing:-.035em;margin:0;font-size:clamp(44px,6.5vw,78px);font-weight:400;line-height:1.05}.lead{color:var(--muted);margin:38px auto 0;font-size:clamp(19px,2vw,24px);line-height:1.7}.flourish{width:min(300px,65vw);color:var(--gold);justify-content:center;align-items:center;gap:18px;margin:25px auto;display:flex}.flourish span{opacity:.55;background:currentColor;width:100%;height:1px}.flourish i{font-size:10px;font-style:normal}.flourish--compact{width:160px}.hero{background:radial-gradient(circle at 18% 12%, #f4e1e0b8, transparent 29%), radial-gradient(circle at 86% 88%, #d5ddd0a6, transparent 32%), var(--ivory);text-align:center;place-content:center;min-height:100svh;padding:84px clamp(28px,7vw,100px) 108px;display:grid}.hero:before,.hero:after{pointer-events:none;content:"";position:absolute}.hero:before{border:1px solid var(--line);inset:24px}.hero:after{border:1px solid #a58a582b;inset:34px}.hero>*{z-index:1;position:relative}.hero__botanical{z-index:0;color:var(--sage);opacity:.32;font-size:clamp(120px,18vw,230px);line-height:1;position:absolute}.hero__botanical--left{bottom:-8px;left:-8px;transform:rotate(-24deg)}.hero__botanical--right{top:-8px;right:-8px;transform:rotate(154deg)}.monogram{border:1px solid var(--gold);width:78px;height:78px;color:var(--gold);letter-spacing:.08em;border-radius:50%;place-items:center;margin:0 auto 30px;font-size:17px;font-style:italic;display:grid}.hero .eyebrow{color:var(--ink)}.hero__names{color:#4c4842;letter-spacing:-.055em;justify-content:center;align-items:center;gap:clamp(12px,3vw,36px);margin:34px 0 36px;font-size:clamp(62px,9vw,116px);font-weight:400;line-height:.95;display:flex}.hero__names span{color:var(--gold);letter-spacing:0;font-family:Brush Script MT,Segoe Script,cursive;font-size:.6em;font-weight:400}.hero__date{color:var(--gold);letter-spacing:.18em;margin:0;font-size:clamp(20px,3vw,28px)}.hero__place{color:var(--muted);letter-spacing:.28em;text-transform:uppercase;margin:10px 0 0;font-family:Arial,Helvetica,sans-serif;font-size:10px}.hero .scroll-hint{color:var(--muted);letter-spacing:.2em;text-transform:uppercase;align-items:center;gap:10px;font-family:Arial,Helvetica,sans-serif;font-size:9px;text-decoration:none;display:flex;position:absolute;bottom:48px;left:50%;transform:translate(-50%)}.scroll-hint i{font-size:15px;font-style:normal;animation:1.8s ease-in-out infinite bob}.invitation{background:var(--warm-white)}.invitation:before{color:#a8b3a361;content:"❧";font-size:72px;position:absolute;top:45px;left:50%;transform:translate(-50%)}.calendar-card{border:1px solid var(--line);width:min(590px,100%);box-shadow:var(--shadow);background:linear-gradient(145deg,#f3e7e580,#fffdf9f5);margin:68px auto 0;padding:clamp(28px,5vw,48px)}.calendar-card__heading{border-bottom:1px solid var(--line);grid-template-columns:1fr auto 1fr;align-items:center;padding-bottom:24px;display:grid}.calendar-card__heading span,.calendar-card__heading strong,.calendar-card>p{letter-spacing:.17em;text-transform:uppercase;font-family:Arial,Helvetica,sans-serif;font-size:9px;font-weight:600}.calendar-card__heading span{color:var(--muted);justify-self:start}.calendar-card__heading strong{color:var(--gold);justify-self:end;font-weight:600}.calendar-card__heading h3{color:var(--ink);letter-spacing:-.025em;margin:0;font-size:clamp(34px,5vw,48px);font-weight:400}.calendar-card__weekdays,.calendar-card__days{grid-template-columns:repeat(7,1fr);display:grid}.calendar-card__weekdays{color:var(--gold);letter-spacing:.1em;margin:26px 0 10px;font-family:Arial,Helvetica,sans-serif;font-size:8px;font-weight:600}.calendar-card__days:before{content:"";grid-column:span 5}.calendar-card__days>span{aspect-ratio:1;place-items:center;display:grid;position:relative}.calendar-card__days b{z-index:1;font-size:clamp(13px,2vw,17px);font-weight:400;position:relative}.calendar-card__wedding-day svg{z-index:0;width:60px;height:auto;fill:var(--blush-deep);position:absolute;top:calc(50% + 3px);left:50%;transform:translate(-50%,-50%)}.calendar-card__wedding-day b{color:#fff;font-weight:700}.calendar-card>p{color:var(--sage-deep);margin:22px 0 0}.program{background:var(--blush);text-align:center}.program:before,.program:after{color:#fffc;content:"❦";font-size:190px;line-height:1;position:absolute}.program:before{top:-30px;left:-30px;transform:rotate(-25deg)}.program:after{bottom:-30px;right:-30px;transform:rotate(155deg)}.timeline{z-index:1;grid-template-columns:repeat(3,1fr);gap:20px;margin-top:65px;display:grid;position:relative}.timeline__item{min-height:380px;box-shadow:var(--shadow);background:#fffdf9c7;border:1px solid #a58a5857;flex-direction:column;align-items:center;padding:42px 28px;display:flex;position:relative}.timeline__marker{aspect-ratio:1;border:1px solid var(--gold);width:34px;color:var(--gold);border-radius:50%;place-items:center;font-family:Arial,Helvetica,sans-serif;font-size:9px;display:grid}.timeline__time{color:var(--gold);margin:24px 0 18px;font-size:42px;line-height:1}.timeline__content{flex-direction:column;flex:1;align-items:center;display:flex}.timeline__content h3{margin:0 0 24px;font-size:25px;font-weight:400;line-height:1.25}.timeline__content p{color:var(--ink);margin:auto 0 2px;font-size:16px}.timeline__content span{color:var(--muted);font-size:14px}.locations{background:var(--ivory);text-align:center}.location-grid{text-align:left;grid-template-columns:1fr 1fr;gap:26px;margin-top:62px;display:grid}.location-card{border:1px solid var(--line);background:var(--warm-white);min-height:440px;box-shadow:var(--shadow);padding:clamp(34px,5vw,58px);position:relative}.location-card:before{color:var(--sage);content:"❧";opacity:.55;font-size:40px;position:absolute;top:22px;right:26px}.location-card--accent{background:#f7eeee}.location-card__type{color:var(--gold);letter-spacing:.19em;text-transform:uppercase;font-family:Arial,Helvetica,sans-serif;font-size:9px;font-weight:600}.location-card h3{letter-spacing:-.035em;margin:62px 0 28px;font-size:clamp(38px,4vw,54px);font-weight:400;line-height:1.05}.location-card p{color:var(--muted);margin:0 0 54px}.location-card a{border-bottom:1px solid var(--line);letter-spacing:.15em;text-transform:uppercase;justify-content:space-between;width:100%;padding-bottom:10px;font-family:Arial,Helvetica,sans-serif;font-size:9px;font-weight:600;text-decoration:none;display:inline-flex}.details{background:var(--warm-white)}.no-dress-code{color:var(--gold);justify-content:center;align-items:baseline;gap:14px;margin-top:52px;display:flex}.no-dress-code span{letter-spacing:.22em;text-transform:uppercase;font-family:Arial,Helvetica,sans-serif;font-size:10px;font-weight:600}.no-dress-code strong{font-family:Brush Script MT,Segoe Script,cursive;font-size:clamp(72px,12vw,122px);font-weight:400;line-height:1}.countdown{text-align:center;background:#dfe5dc}.countdown:before{content:"";border:1px solid #6976694d;position:absolute;inset:24px}.countdown .section__inner{position:relative}.countdown__grid{grid-template-columns:repeat(4,1fr);width:min(850px,100%);margin:62px auto 0;display:grid}.countdown__unit{padding:22px 12px}.countdown__unit+.countdown__unit{border-left:1px solid #6976695c}.countdown__unit strong{color:var(--sage-deep);font-size:clamp(42px,7vw,76px);font-weight:400;line-height:1;display:block}.countdown__unit span{letter-spacing:.18em;text-transform:uppercase;margin-top:12px;font-family:Arial,Helvetica,sans-serif;font-size:9px;font-weight:600;display:block}.rsvp{background:var(--ivory)}.rsvp__layout{grid-template-columns:.9fr 1.1fr;gap:clamp(60px,9vw,120px);display:grid}.rsvp__intro{align-self:start;position:sticky;top:40px}.rsvp__intro p:last-child{max-width:410px;color:var(--muted);margin-top:38px}.rsvp-form{border:1px solid var(--line);background:var(--warm-white);box-shadow:var(--shadow);gap:28px;padding:clamp(30px,5vw,54px);display:grid}.rsvp-form>label,.rsvp-form fieldset{border:0;gap:10px;margin:0;padding:0;display:grid}.rsvp-form>label>span,.rsvp-form legend{letter-spacing:.14em;text-transform:uppercase;margin-bottom:6px;font-family:Arial,Helvetica,sans-serif;font-size:9px;font-weight:600}.rsvp-form input[type=text],.rsvp-form input[type=tel],.rsvp-form select,.rsvp-form textarea{border:0;border-bottom:1px solid var(--line);width:100%;color:var(--ink);background:0 0;border-radius:0;outline:none;padding:13px 0}.rsvp-form input[type=text]:focus,.rsvp-form input[type=tel]:focus,.rsvp-form select:focus,.rsvp-form textarea:focus{border-color:var(--gold);box-shadow:0 1px 0 var(--gold)}.rsvp-form textarea{resize:vertical}.choice{cursor:pointer;border-bottom:1px solid #a58a5838;align-items:center;gap:13px;padding:13px 0;display:flex}.choice input{width:17px;height:17px;accent-color:var(--sage-deep);margin:0}.rsvp-form__honeypot{width:1px;height:1px;position:absolute;left:-10000px;overflow:hidden}.rsvp-form button{border:1px solid var(--sage-deep);color:#fff;background:var(--sage-deep);letter-spacing:.16em;text-transform:uppercase;cursor:pointer;justify-content:space-between;align-items:center;padding:18px 21px;font-family:Arial,Helvetica,sans-serif;font-size:9px;font-weight:600;transition:background .18s,color .18s;display:flex}.rsvp-form button:hover{color:var(--sage-deep);background:0 0}.rsvp-form button:disabled{cursor:wait;opacity:.65}.form-message{min-height:24px;color:var(--muted);margin:-12px 0 0;font-size:13px}.form-message--success{color:#426b49}.form-message--error{color:#a33f35}.footer{color:#f8f5ed;background:var(--sage-deep);text-align:center;padding:90px 28px}.footer .flourish{color:#d9c59e}.footer p,.footer strong,.footer>span,.footer>a{display:block}.footer p{color:#ffffffb8;margin:25px 0 0}.footer strong{letter-spacing:-.035em;margin:4px 0 25px;font-size:clamp(36px,6vw,58px);font-weight:400}.footer>span,.footer>a{color:#ffffffad;letter-spacing:.16em;text-transform:uppercase;font-family:Arial,Helvetica,sans-serif;font-size:9px}.footer>a{margin-top:45px;text-decoration:none}.powered-footer{color:#fff;letter-spacing:.12em;background:#171816;place-items:center;min-height:54px;margin:60px -28px -90px;padding:14px 20px;font-family:Arial,Helvetica,sans-serif;font-size:11px;font-weight:500;display:grid}.reveal{animation:.8s both reveal}.reveal--delay{animation-delay:.12s}.reveal--delay-2{animation-delay:.26s}@keyframes reveal{0%{opacity:0;transform:translateY(18px)}}@keyframes bob{50%{transform:translateY(5px)}}@media (max-width:760px){.section{padding:92px 20px}.section-number:before,.section-number:after{width:20px;margin-inline:8px}.hero{padding:80px 30px 110px}.hero:before{inset:13px}.hero:after{inset:20px}.monogram{width:65px;height:65px;margin-bottom:24px;font-size:14px}.hero__names{flex-direction:column;gap:0;margin-block:24px 30px;font-size:clamp(58px,19vw,82px);line-height:.88}.hero__names span{margin-block:7px;font-size:.52em}.hero__botanical{font-size:120px}.hero .scroll-hint{bottom:36px}.calendar-card{margin-top:50px;padding:24px 16px}.calendar-card__heading{grid-template-columns:1fr auto;gap:6px}.calendar-card__heading span{grid-column:1/-1;justify-self:center}.calendar-card__heading h3{justify-self:start}.calendar-card__heading strong{justify-self:end}.timeline{grid-template-columns:1fr;margin-top:50px}.timeline__item{min-height:320px;padding:35px 24px}.timeline__time{font-size:38px}.location-grid,.rsvp__layout{grid-template-columns:1fr}.location-card{min-height:390px}.countdown:before{inset:12px}.countdown__grid{grid-template-columns:repeat(2,1fr)}.countdown__unit:nth-child(3){border-top:1px solid #6976695c;border-left:0}.countdown__unit:nth-child(4){border-top:1px solid #6976695c}.rsvp__intro{text-align:center;position:static}.rsvp__intro p:last-child{margin-inline:auto}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}.reveal,.scroll-hint i{animation:none}.rsvp-form button{transition:none}}
