: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{display:flex;align-items:center;justify-content:center;gap:35px;margin-top:3px}.portrait-caption .date-stamp{flex:0 0 100px;max-width:100px;margin:0;padding:11px 8px;outline-offset:4px;box-shadow:5px 7px 0 #ecc0c742}.portrait-caption .date-stamp strong{font-size:3.7rem;line-height:1.05}.portrait-caption .date-stamp span{font-size:.75rem;letter-spacing:.06em}.portrait-caption .art-caption{font-size:1.8rem;max-width:170px;line-height:1.12;text-align:left}.couple-art{padding-bottom:10px}@media(max-width:760px){.couple-illustration{width:min(100%,330px)}.portrait-caption{gap:28px;margin-top:7px}.portrait-caption .art-caption{font-size:1.7rem;max-width:150px}.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}

/* Painted botanicals inspired by the couple’s lotus reference. */
:root{--forest:#1c3833;--gold:#b49a64}
.site-shell{overflow:clip}
/* 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}
}
