:root{--cream:#fff9ed;--pink:#f9d6dc;--rose:#ecc0c7;--red:#8c2434;--ink:#592c33;--muted:#80565a;--serif:'Cormorant Garamond',Georgia,serif;--sans:'DM Sans',Arial,sans-serif;--hand:'Caveat',cursive}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:2rem}body{margin:0;background:var(--pink);color:var(--ink);font-family:var(--sans);font-size:16px;line-height:1.6}a{color:inherit}button,a{-webkit-tap-highlight-color:transparent}button:focus-visible,a:focus-visible{outline:3px solid var(--red);outline-offset:6px}::selection{background:var(--pink);color:var(--red)}.skip-link{position:absolute;left:1rem;top:-6rem;z-index:20;background:var(--cream);padding:.8rem}.skip-link:focus{top:1rem}.site-shell{max-width:1600px;margin:0 auto;background:var(--cream);border-inline:14px solid var(--pink);min-height:100vh}.masthead{margin:0 5.5%;height:106px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #8c243433}.monogram{text-decoration:none;font-family:var(--serif);font-weight:600;font-size:2.3rem;letter-spacing:-.04em}.monogram span{font-family:var(--sans);font-weight:400;font-size:1.6rem;padding:0 .17em}.masthead p,.header-date{font-size:.78rem;letter-spacing:.18em}.header-date{font-weight:600}.hero{max-width:1250px;margin:0 auto;display:grid;grid-template-columns:1.1fr 1fr;align-items:center;gap:3%;padding:70px 6% 74px}.eyebrow{font-size:.78rem;letter-spacing:.2em;font-weight:600;margin:0 0 24px;color:var(--red)}h1{font-family:var(--serif);font-weight:400;color:var(--red);font-size:clamp(5rem,8.7vw,8rem);line-height:.89;letter-spacing:-.055em;margin:0 0 14px}.ampersand{font-style:italic;font-weight:400;font-size:.65em;margin-left:.02em}.handwritten{font-family:var(--hand);font-weight:500}.announcement{font-size:2.05rem;margin:20px 0 28px;transform:rotate(-3deg);transform-origin:left center;color:var(--red)}.hero-date{display:flex;flex-direction:column;gap:3px;margin-bottom:22px}.hero-date>span{font-size:.75rem;letter-spacing:.2em;font-weight:500}.hero-date strong{font-size:1.2rem;font-weight:500;letter-spacing:.01em}.button{display:inline-flex;align-items:center;justify-content:center;gap:28px;background:var(--red);color:var(--cream);text-decoration:none;border:1px solid var(--red);border-radius:4px;padding:13px 25px;font-size:.9rem;font-weight:500;min-height:49px;transition:background .2s,transform .2s;cursor:pointer}.button:hover{background:#6f1727;transform:translateY(-2px)}.button span{font-size:1.25rem;line-height:1}.small-note{font-size:.8rem;color:var(--muted);margin:10px 0 0}.hero-art{text-align:center;position:relative;min-width:0}.date-stamp{border:1px solid var(--red);outline:1px solid var(--red);outline-offset:7px;background:var(--pink);transform:rotate(7deg);max-width:260px;margin:0 auto 40px;padding:28px 22px 24px;display:flex;flex-direction:column;color:var(--red);box-shadow:10px 14px 0 #ecc0c742}.date-stamp span{font-size:.78rem;letter-spacing:.16em}.date-stamp strong{font-family:var(--serif);font-size:8rem;line-height:1.15;font-weight:400}.art-caption{font-size:1.8rem;color:var(--red);margin:10px 0;transform:rotate(-5deg)}.ribbon{background:var(--red);color:var(--cream);display:flex;justify-content:center;align-items:center;gap:50px;padding:16px 24px}.ribbon p{font-family:var(--serif);font-size:1.65rem;letter-spacing:.015em;line-height:1.3;margin:0}.ribbon>span{color:var(--pink);font-size:1.5rem}footer{text-align:center;padding:45px 20px 34px}footer .handwritten{font-size:1.8rem;margin:0 0 6px}footer>p:last-child{font-size:.76rem;letter-spacing:.13em;text-transform:uppercase;color:var(--muted);margin:0}
.cherry-art{display:block;width:118%;max-width:none;height:auto;margin-left:-9%;mix-blend-mode:multiply;position:relative}.art-prelude{font-size:1.7rem;margin:0 0 8px;transform:rotate(7deg);color:var(--red)}.hero-art .art-caption{margin-top:0}.little-link{display:inline-block;font-size:.76rem;color:var(--muted);text-underline-offset:4px;margin-top:4px}.little-link:hover{color:var(--red)}.our-story{padding:82px 5.5% 65px;max-width:1450px;margin:auto}.section-intro{text-align:center}.section-intro .eyebrow{margin-bottom:14px}h2{font-family:var(--serif);font-weight:400;font-size:clamp(2.7rem,4.8vw,4.5rem);line-height:1.05;letter-spacing:-.035em;color:var(--red);margin:0}h2 em{font-weight:400}.section-intro>p:last-child{font-size:1rem;line-height:1.7;margin:21px auto 0;color:var(--muted)}.scrapbook{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:28px;margin:62px auto 46px;max-width:1170px}.memory{position:relative;padding:30px 27px 24px;border:1px solid #8c243425;box-shadow:3px 7px 0 #592c3308;display:flex;flex-direction:column}.memory-tart{background:#f9d6dc;transform:rotate(-2deg)}.memory-drama{background:#fffdf5;transform:rotate(1.5deg)}.memory-music{background:#f1e9d6;transform:rotate(-1.5deg)}.tape{position:absolute;width:84px;height:25px;background:#e2d4b59e;top:-13px;left:calc(50% - 42px);transform:rotate(-4deg);border-inline:2px dashed #fff9ed99}.memory-drama .tape{transform:rotate(6deg);background:#eac2cba1}.memory-label{font-size:.75rem;letter-spacing:.1em;font-weight:600;color:var(--muted);margin:2px 0 18px}.memory h3{font-family:var(--serif);font-weight:500;color:var(--red);font-size:2.03rem;line-height:1.05;letter-spacing:-.02em;margin:0 0 25px}.chat-line{background:#fff9edb5;padding:10px 14px;border-radius:0 12px 12px 12px;margin-right:20px}.chat-line>span{font-size:.75rem;letter-spacing:.12em;color:var(--muted);font-weight:600}.chat-line p{font-size:.93rem;line-height:1.45;margin:3px 0 0}.chat-line.reply{margin:10px 0 0 23px;background:#8c243410;border-radius:12px 0 12px 12px}.memory-body{font-size:.97rem;line-height:1.65;margin:0 0 20px}.memory blockquote{font-family:var(--serif);font-size:1.35rem;font-style:italic;line-height:1.3;border-left:2px solid #8c243455;padding-left:14px;margin:0 0 13px}.memory-foot{font-size:1.52rem;line-height:1.25;padding-top:24px;margin:auto 0 0;color:var(--red)}.first-hello{text-align:center;font-size:.87rem;margin:54px 0 0;color:var(--muted)}.first-hello .handwritten{font-size:1.65rem;display:inline-block;margin-left:9px;color:var(--red)}.date-section{background:var(--pink);border-block:1px solid #8c243422;padding:75px 6%;position:relative}.date-inner{max-width:1110px;margin:auto;display:grid;grid-template-columns:1.3fr 1fr;gap:10%;align-items:center}.date-copy>.eyebrow{margin-bottom:18px}.calendar-quote{font-family:var(--hand);font-size:1.8rem;line-height:1.2;color:var(--red);margin:25px 0 24px;transform:rotate(-2deg)}.calendar-quote cite{display:block;font-family:var(--sans);font-size:.76rem;line-height:1.6;font-style:normal;transform:rotate(2deg);margin-top:9px;color:var(--muted)}.date-description{font-size:.95rem;line-height:1.75;color:var(--muted);margin:0 0 24px}.date-copy .button{gap:18px}.calendar-card{background:var(--cream);border:1px solid #8c243439;padding:24px 27px 21px;transform:rotate(3deg);box-shadow:8px 9px 0 #8c243414;position:relative}.calendar-top{display:flex;justify-content:space-between;align-items:center;font-size:.75rem;font-weight:600;letter-spacing:.16em;border-bottom:1px solid #8c243440;padding-bottom:15px}.calendar-top>span:last-child{font-size:1.3rem;line-height:1}.calendar-card h3{font-family:var(--serif);font-size:2.4rem;line-height:1.2;font-weight:500;color:var(--red);margin:18px 0;text-align:center}.calendar-card h3 em{font-weight:400;font-size:.7em;margin-left:6px}.calendar{width:100%;border-collapse:collapse;table-layout:fixed;text-align:center;font-size:.97rem}.calendar th{color:var(--muted);font-size:.75rem;font-weight:500;height:32px}.calendar td{height:44px}.wedding-day{position:relative;font-weight:700;color:var(--red)}.wedding-day span{position:relative;display:inline-flex;justify-content:center;align-items:center;width:36px;height:36px;z-index:0}.wedding-day span::before{content:'';position:absolute;inset:-3px -2px;border:2px solid var(--red);border-radius:47% 49% 43% 45%;transform:rotate(-15deg);z-index:-1;background:var(--pink)}.calendar-caption{font-size:1.8rem;text-align:left;margin:5px 0 16px 2px;transform:rotate(-7deg);color:var(--red)}.countdown{font-size:.75rem;text-align:center;border-top:1px solid #8c243430;margin:0;padding-top:15px;color:var(--muted)}.footer-heart{color:var(--red);font-size:2.2rem;line-height:1.2;display:block;margin-bottom:10px}footer>p:nth-last-child(2){font-size:.76rem;letter-spacing:.13em;text-transform:uppercase;color:var(--muted);margin:0}footer .footer-aside{font-size:.78rem;letter-spacing:0;text-transform:none;margin:22px 0 0;color:var(--muted);font-style:italic}
@media(min-width:1500px){.site-shell{border-inline-width:24px}.hero{padding-top:85px;padding-bottom:90px}}
@media(max-width:760px){.site-shell{border-inline-width:8px}.masthead{height:83px;margin:0 6%}.masthead p{display:none}.header-date{font-size:.75rem}.hero{grid-template-columns:1fr;padding:43px 7% 45px;gap:45px;text-align:center}.hero-copy .eyebrow{font-size:.75rem;letter-spacing:.13em;margin-bottom:26px}h1{font-size:clamp(4.7rem,16.5vw,7rem)}.announcement{transform-origin:center;font-size:1.85rem;margin:24px 0}.hero-date{margin-bottom:20px}.hero-art{max-width:450px;width:100%;margin:auto}.date-stamp{max-width:190px;padding:22px 15px}.date-stamp strong{font-size:6rem}.date-stamp span{font-size:.75rem}.art-caption{font-size:1.6rem}.ribbon{gap:16px;padding:20px 17px;text-align:center}.ribbon p{font-size:1.36rem}.ribbon>span{font-size:1rem}footer{padding:35px 15px}}
@media(max-width:1000px) and (min-width:761px){.hero{padding-inline:5%;gap:2%}.hero-copy>.eyebrow{font-size:.75rem;letter-spacing:.13em}.scrapbook{gap:18px}.memory{padding:29px 18px 20px}.memory h3{font-size:1.75rem}.memory-label{font-size:.75rem;letter-spacing:.06em}.date-inner{gap:6%}.calendar-card{padding-inline:20px}.date-copy .button{padding-inline:18px;gap:12px;font-size:.83rem}.calendar-card h3{font-size:2.1rem}}
@media(max-width:760px){.hero{gap:36px}.cherry-art{width:108%;margin-left:-4%}.art-prelude{font-size:1.5rem;margin:0}.hero-art .art-caption{margin-top:-5px}.little-link{font-size:.77rem}.our-story{padding:53px 7% 45px}.section-intro .eyebrow{font-size:.75rem;letter-spacing:.1em;max-width:250px;margin:0 auto 18px}.section-intro h2{font-size:2.7rem}.section-intro>p:last-child{font-size:.94rem}.desktop-break{display:none}.scrapbook{grid-template-columns:1fr;gap:36px;max-width:390px;margin:40px auto}.memory{padding:30px 27px 25px}.memory h3{font-size:2.2rem;margin-bottom:22px}.memory-label{font-size:.75rem}.memory-body{font-size:1rem}.memory-foot{font-size:1.7rem}.chat-line p{font-size:1rem}.first-hello{margin-top:33px}.first-hello .handwritten{display:block;margin:4px 0 0}.date-section{padding:50px 7% 55px}.date-inner{grid-template-columns:1fr;gap:38px}.date-copy{text-align:center}.date-copy>.eyebrow{font-size:.75rem;letter-spacing:.12em}.date-copy h2{font-size:3.1rem}.calendar-quote{font-size:1.85rem}.calendar-quote cite{font-size:.75rem}.date-description{font-size:1rem}.date-copy .button{font-size:.85rem;padding-inline:16px;gap:13px;width:100%;max-width:350px}.calendar-card{max-width:360px;width:96%;margin:0 auto;transform:rotate(2deg)}.calendar-card h3{font-size:2.5rem}.calendar-top{font-size:.75rem}.calendar{font-size:1.02rem}.calendar td{height:45px}.countdown{font-size:.76rem}.calendar-caption{font-size:1.95rem}footer .handwritten{font-size:1.7rem}}
@media(max-width:360px){.hero-copy>.eyebrow{font-size:.75rem;letter-spacing:.07em}h1{font-size:4.4rem}.calendar-card{padding-inline:17px}.memory{padding-inline:21px}.date-copy .button{font-size:.76rem}.masthead{margin-inline:5%}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation:none!important;transition:none!important}}

.header-date{font-size:.875rem}.memory-body,.date-description{font-size:1rem}.cherry-art{mask-image:linear-gradient(to right,transparent,#000 6%,#000 94%,transparent),linear-gradient(to bottom,transparent,#000 7%,#000 92%,transparent);mask-composite:intersect}

.memory{min-height:280px}.memory-foot{padding-top:22px}.our-story .scrapbook{margin-bottom:12px}.date-note{font-size:1.75rem;line-height:1.3;margin:25px 0 20px;color:var(--red)}footer>p.footer-aside{font-size:.8rem;letter-spacing:0;text-transform:none;margin-top:20px}
.couple-illustration{display:block;width:min(100%,390px);height:auto;margin:0 auto 8px}.portrait-caption{margin-top:3px}.portrait-caption .art-caption{font-size:1.8rem;line-height:1.2;text-align:center;margin:0}.couple-art{padding-bottom:10px}@media(max-width:760px){.couple-illustration{width:min(100%,330px)}.portrait-caption{margin-top:7px}.portrait-caption .art-caption{font-size:1.7rem}.couple-art{padding-bottom:0}}

.calendar-arrow{position:absolute;left:-40px;top:6px;width:84px;height:150px;overflow:visible;pointer-events:none;fill:none;stroke:var(--red);stroke-width:2;stroke-linecap:round;stroke-linejoin:round}.calendar-caption{margin-left:44px}

.couple-illustration{aspect-ratio:1;object-fit:contain}

.announcement-note{display:block;margin-top:4px;font-size:.7em;line-height:1.4}
.hero-copy{min-width:0}
.hero-date-actions{width:min(100%,28rem);margin-top:34px}
.hero-date-row{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px 20px;padding:17px 0;border-block:1px solid #8c243433}
.hero-date-actions .hero-date{flex-direction:row;align-items:center;gap:13px;margin:0;min-width:0;text-align:left}
.hero-date .hero-date-day{font-family:var(--serif);font-size:4rem;font-weight:400;line-height:1;letter-spacing:-.045em;color:var(--red)}
.hero-date .hero-date-details{display:flex;flex-direction:column;gap:1px;letter-spacing:normal;font-weight:400}
.hero-date-month{font-size:1.0625rem;font-weight:500;color:var(--ink)}
.hero-date-weekday{font-size:.875rem;color:var(--muted)}
.hero-calendar-link{display:inline-flex;align-items:center;gap:9px;min-height:44px;padding:8px 0;color:var(--red);font-size:.9375rem;font-weight:500;text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:5px}
.hero-calendar-link svg{width:19px;height:19px;flex-shrink:0}
.hero-calendar-link:hover{text-decoration-thickness:2px;color:#6f1727}
.hero-date-actions .small-note{margin:13px 0 0;font-size:.875rem;text-align:left}
@media(max-width:760px){.hero-date-actions{margin:30px auto 0}.hero-date-actions .small-note{text-align:center}}
@media(max-width:420px){.hero-date-row{justify-content:center;column-gap:24px;row-gap:4px}}

/* Painted botanicals inspired by the couple’s lotus reference. */
:root{--forest:#1c3833;--gold:#b49a64}
.site-shell{position:relative;isolation:isolate;overflow:clip}
/* Tiny scattered blossoms and buds form a faint repeat on the cream canvas. */
.site-shell::before{
  content:"";
  position:absolute;
  inset:0;
  z-index:-1;
  background:url('/assets/floral-ditsy-pattern.png') center top / 256px 256px repeat;
  opacity:.04;
  pointer-events:none;
}
/* Anchor the flowers to the page edge, outside the capped hero content. */
.hero-frame,.date-section{position:relative;isolation:isolate}
.hero-frame::before{
  content:"";
  position:absolute;
  z-index:-1;
  right:-82px;
  top:-70px;
  width:280px;
  height:calc(100% + 90px);
  background:url('/assets/lotus-border.png') center/contain no-repeat;
  transform:scaleX(-1);
  opacity:.48;
  pointer-events:none;
}
.ribbon{position:relative;border-block:4px double #ecc0c755}
.ribbon-line{flex:0 0 34px;height:1px;background:var(--pink);opacity:.65}
.scrapbook{gap:32px}
.memory{
  isolation:isolate;
  min-height:410px;
  padding:24px 30px 30px;
  border-color:#9e805452;
  border-radius:110px 110px 14px 14px;
  text-align:center;
  box-shadow:4px 7px 0 #592c3308;
}
.memory::before{
  content:"";
  position:absolute;
  inset:8px;
  border:1px solid #9e805433;
  border-radius:102px 102px 8px 8px;
  pointer-events:none;
}
.memory-flower{
  display:block;
  flex-shrink:0;
  width:96px;
  height:88px;
  object-fit:contain;
  margin:0 auto 15px;
}
.memory-flower-tulips{transform:rotate(-5deg)}
.memory-flower-sunflower{transform:rotate(5deg)}
.memory-label{margin:0 0 16px}
.memory h3{margin-bottom:20px}
.memory-foot{padding-top:16px}
.memory-tart{transform:rotate(-1.2deg)}
.memory-drama{transform:rotate(.8deg)}
.memory-music{transform:rotate(-.8deg)}
.date-section{background:var(--forest);border-color:#b49a6455;padding-block:82px}
.date-section::before{
  content:"";
  position:absolute;
  z-index:-1;
  left:-54px;
  top:0;
  width:240px;
  height:100%;
  background:url('/assets/lotus-border.png') left center/auto 100% no-repeat;
  opacity:.8;
  pointer-events:none;
}
.date-copy{padding-left:120px}
.date-copy>.eyebrow{color:#e3c98f}
.date-copy h2{color:var(--cream)}
.date-copy .date-note{color:#efc8d0}
.date-copy .date-description,.date-copy .small-note{color:#e1e4d8}
.date-copy .button{background:var(--pink);color:#592c33;border-color:var(--pink)}
.date-copy .button:hover{background:#f3c5cf}
.date-copy .button:focus-visible{outline-color:#e3c98f}
.calendar-card{border-color:var(--gold);border-radius:20px 20px 6px 6px;box-shadow:8px 9px 0 #071d1833}
.calendar-card::after{
  content:"";
  position:absolute;
  inset:7px;
  border:1px solid #9e80543d;
  border-radius:14px 14px 2px 2px;
  pointer-events:none;
}
@media(max-width:1000px) and (min-width:761px){
  .scrapbook{gap:20px}
  .memory{padding-inline:22px;border-radius:88px 88px 12px 12px}
  .memory::before{border-radius:80px 80px 6px 6px}
  .date-copy{padding-left:28px}
  .date-section::before{left:-135px;width:200px;opacity:.65}
}
@media(max-width:760px){
  .hero-frame::before{width:220px;right:-70px;top:5px;height:560px;opacity:.38}
  .ribbon{gap:15px;padding-inline:14px}
  .ribbon-line{flex-basis:20px}
  .memory{min-height:0;padding:23px 29px 30px}
  .memory-flower{width:90px;height:82px}
  .memory-foot{padding-top:15px}
  .date-section{padding-block:56px}
  .date-copy{padding-left:0}
  .date-section::before{width:220px;height:560px;left:-119px;top:auto;bottom:15px;opacity:.55}
}

/* A reply card, tucked between the calendar and our sign-off. */
.hero-rsvp-note{display:flex;align-items:center;justify-content:space-between;gap:12px}
.hero-rsvp-note a{color:var(--red);font-weight:500;text-underline-offset:4px;padding-block:7px}
.hero-rsvp-note a:hover{text-decoration-thickness:2px}
.rsvp-section{position:relative;padding:84px 6% 78px;border-bottom:1px solid #8c243422}
.rsvp-inner{max-width:1110px;margin:auto;display:grid;grid-template-columns:.85fr 1.15fr;gap:9%;align-items:start}
.rsvp-copy{padding-top:20px}
.rsvp-flower{display:block;width:96px;height:88px;object-fit:contain;margin:0 0 23px}
.rsvp-copy .eyebrow{color:var(--forest);font-size:.75rem;letter-spacing:.14em;margin-bottom:19px}
.rsvp-copy h2{font-size:clamp(3.3rem,5.5vw,4.7rem)}
.rsvp-handwritten{font-size:1.9rem;line-height:1.3;color:var(--red);margin:23px 0 20px;transform:rotate(-2deg)}
.rsvp-description{font-size:1rem;line-height:1.8;color:var(--muted);max-width:355px;margin:0 0 20px}
.rsvp-guidance{font-size:.875rem}
.rsvp-card{position:relative;min-width:0;background:#f9d6dc66;padding:35px;border:1px solid #9e805450;border-radius:28px 28px 6px 6px;box-shadow:5px 7px 0 #592c3308}
.rsvp-card::before{content:"";position:absolute;inset:7px;border:1px solid #9e805430;border-radius:21px 21px 2px 2px;pointer-events:none}
.rsvp-card form,.rsvp-confirmation{position:relative}
.rsvp-section [hidden]{display:none!important}
.rsvp-fields,.rsvp-attendance{min-width:0;border:0;padding:0;margin:0}
.rsvp-field{margin-bottom:22px}
.rsvp-field>label,.rsvp-attendance>legend{display:block;font-size:.9rem;font-weight:600;color:var(--forest);margin:0 0 8px}
.rsvp-required,.rsvp-optional{font-size:.75rem;font-weight:400;color:var(--muted)}
.rsvp-field input,.rsvp-field textarea,.rsvp-edit-link{display:block;width:100%;min-width:0;border:1px solid #80565a5c;border-radius:4px;background:#fffdf7;color:var(--ink);font-family:var(--sans);font-size:1rem;line-height:1.5;padding:11px 12px;min-height:46px}
.rsvp-field textarea{resize:vertical}
.rsvp-field input:focus-visible,.rsvp-field textarea:focus-visible,.rsvp-edit-link:focus-visible{outline:2px solid var(--forest);outline-offset:3px;border-color:var(--forest)}
.rsvp-field input[aria-invalid="true"]{border-color:var(--red)}
.rsvp-help{font-size:.78rem;line-height:1.65;color:var(--muted);margin:7px 0 0}
.rsvp-saved{position:relative;margin-bottom:24px;padding-bottom:22px;border-bottom:1px solid #80565a38}
.rsvp-saved h3{margin:0;font-family:var(--serif);font-size:1.6rem;font-weight:500;line-height:1.25;color:var(--forest)}
.rsvp-saved-list{display:grid;gap:9px;list-style:none;padding:0;margin:16px 0 0}
.rsvp-saved-item{min-width:0}
.rsvp-saved-button{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:4px 10px;width:100%;min-width:0;min-height:62px;padding:12px 13px;border:1px solid #80565a5c;border-radius:5px;background:#fffdf7;color:var(--forest);font-family:var(--sans);text-align:left;white-space:normal;overflow-wrap:anywhere;cursor:pointer}
.rsvp-saved-button:hover{border-color:var(--forest);background:#fff4f3}
.rsvp-saved-button:focus-visible{outline:2px solid var(--forest);outline-offset:3px}
.rsvp-saved-button[aria-current="true"]{border-color:var(--forest);background:var(--pink);box-shadow:inset 3px 0 var(--forest)}
.rsvp-saved-button:disabled{cursor:wait;opacity:.7}
.rsvp-saved-name{grid-column:1;grid-row:1;font-size:.875rem;font-weight:600;line-height:1.5}
.rsvp-saved-summary{grid-column:1;grid-row:2;font-size:.78rem;line-height:1.5;color:var(--muted)}
.rsvp-saved-badge{grid-column:2;grid-row:1 / 3;align-self:center;padding:4px 7px;border-radius:12px;background:var(--forest);color:#fffdf7;font-size:.68rem;line-height:1.3}
.rsvp-saved .rsvp-new{max-width:100%;margin-top:12px;padding-block:6px;overflow-wrap:anywhere}
.rsvp-storage-status{position:relative;margin:0 0 20px;padding:10px 12px;border:1px solid #80565a38;border-radius:4px;background:#fffdf780;overflow-wrap:anywhere}
.rsvp-storage-status:empty{display:none}
.rsvp-attendance{margin-bottom:24px}
.rsvp-options{display:flex;flex-wrap:wrap;gap:8px}
.rsvp-options label{display:flex;align-items:center;gap:7px;background:#fffdf7;border:1px solid #80565a5c;border-radius:4px;min-height:45px;padding:10px 11px;cursor:pointer;font-size:.8rem;line-height:1.3}
.rsvp-options input{width:16px;height:16px;accent-color:var(--forest);margin:0;flex-shrink:0}
.rsvp-options label:has(input:checked){background:var(--pink);border-color:var(--forest);color:var(--forest)}
.rsvp-options label:has(input:focus-visible){outline:2px solid var(--forest);outline-offset:3px}
.rsvp-count-row{display:flex;align-items:center;gap:15px}
.rsvp-count-row input{width:85px;flex-shrink:0;text-align:center}
.rsvp-count-row .rsvp-help{max-width:240px;margin:0}
.rsvp-submit{width:100%;margin-top:1px;background:var(--forest);border-color:var(--forest);font-family:var(--sans)}
.rsvp-submit:hover{background:#122a25}
.rsvp-submit:focus-visible,.rsvp-confirmation .button:focus-visible,.rsvp-text-button:focus-visible{outline-color:var(--forest)}
.rsvp-submit:disabled{cursor:wait;opacity:.7;transform:none}
#rsvp-form[data-requesting="true"] .rsvp-fields{opacity:.65}
.rsvp-privacy{text-align:center;margin-top:12px}
.rsvp-verification{margin:0 0 20px;padding:12px;border:1px solid #80565a38;border-radius:4px;background:#fffdf780}
.rsvp-verification>.rsvp-help:first-child{margin:0 0 10px}
.rsvp-turnstile-widget{width:100%;min-height:65px}
.rsvp-verification [data-state="error"]{color:var(--red)}
.rsvp-verification .rsvp-text-button{padding-bottom:0}
#rsvp-retry-lookup{position:relative;margin:0 0 20px;padding-top:0}
.rsvp-message,.rsvp-error{position:relative;padding:12px 14px;margin:0 0 20px;border-radius:3px;font-size:.875rem;line-height:1.65}
.rsvp-message{background:#e7eee3;color:var(--forest)}
.rsvp-message:empty{display:none}
.rsvp-error{background:#f9d6dc;color:#6f1727;border-left:3px solid var(--red)}
.rsvp-confirmation{text-align:center;padding-block:8px}
.rsvp-confirmation-heart{display:block;font-family:var(--serif);color:var(--red);font-size:3rem;line-height:1.3;margin-bottom:10px}
.rsvp-confirmation h3{font-family:var(--serif);font-weight:500;font-size:2.5rem;line-height:1.1;letter-spacing:-.025em;color:var(--forest);margin:0 0 18px}
.rsvp-summary{font-size:1rem;line-height:1.7;margin:0 0 23px;color:var(--ink)}
.rsvp-confirmation>.rsvp-help{max-width:360px;margin:0 auto 13px}
.rsvp-edit-link{font-size:.8rem;line-height:1.7;text-overflow:ellipsis;margin-top:16px}
.rsvp-confirmation-actions{display:flex;align-items:center;justify-content:space-between;gap:15px;margin-top:19px}
.rsvp-confirmation-actions .button{padding-inline:18px;font-family:var(--sans);gap:12px;font-size:.85rem}
.rsvp-text-button{padding:10px 0;border:0;background:transparent;color:var(--forest);font-family:var(--sans);font-size:.82rem;line-height:1.5;text-decoration:underline;text-underline-offset:4px;cursor:pointer}
.rsvp-confirmation #rsvp-copy-status{margin:15px auto 0;min-height:1.65em}
.visually-hidden,.rsvp-honeypot{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
@media(max-width:1000px) and (min-width:761px){
  .rsvp-inner{gap:6%;grid-template-columns:.75fr 1.25fr}
  .rsvp-card{padding:28px}
  .rsvp-options label{font-size:.76rem;padding-inline:9px}
}
@media(max-width:760px){
  .hero-rsvp-note{justify-content:center;gap:18px;flex-wrap:wrap}
  .rsvp-section{padding:54px 7% 55px}
  .rsvp-inner{grid-template-columns:1fr;gap:28px;max-width:510px}
  .rsvp-copy{padding:0;text-align:center}
  .rsvp-flower{width:82px;height:76px;margin:0 auto 20px}
  .rsvp-copy .eyebrow{font-size:.75rem;letter-spacing:.11em}
  .rsvp-copy h2{font-size:3.4rem}
  .rsvp-handwritten{font-size:1.8rem;margin-block:20px 17px}
  .rsvp-description{margin:0 auto 15px;max-width:350px}
  .rsvp-guidance{margin-bottom:0}
  .rsvp-card{padding:30px 24px}
  .rsvp-options{gap:8px}
  .rsvp-options label{flex:1 1 120px;padding-inline:11px}
  .rsvp-confirmation h3{font-size:2.3rem}
}
@media(max-width:400px){
  .rsvp-card{padding-inline:21px}
  .rsvp-saved-button{grid-template-columns:minmax(0,1fr)}
  .rsvp-saved-badge{grid-column:1;grid-row:3;justify-self:start;margin-top:3px}
  .rsvp-required,.rsvp-optional{font-size:.72rem}
  .rsvp-confirmation-actions{flex-direction:column-reverse;gap:8px}
  .rsvp-confirmation-actions .button{width:100%}
}
