html { scroll-behavior: smooth; overflow-x: clip; }
body { margin: 0; overflow-x: clip; background:#faffc7; }
#allrecords { background:#faffc7; }
#guest-form { font-family: '2', Arial, sans-serif; color: #000; font-size:15px; line-height:1.4; }
#guest-form .question, #guest-form legend { font-size:20px; font-weight:400; }
#guest-form .hint { font-size:13px; margin:5px 0 10px; }
#guest-names { width:100%; box-sizing:border-box; border:0; border-bottom:1px solid #000; background:transparent; border-radius:0; padding:6px 0; font:inherit; }
#guest-form fieldset { border:0; padding:0; margin:30px 0; }
#guest-form fieldset label { display:flex; align-items:center; gap:8px; margin:7px 0; font-size:16px; }
#guest-form input[type=radio], #guest-form input[type=checkbox] { accent-color:#d2797f; width:17px; height:17px; flex:none; }
#guest-form button { display:block; box-sizing:border-box; width:107px; height:107px; padding:0; border:0; border-radius:50%; background:#ffd1d4; color:#000; font:inherit; margin:0 auto; cursor:pointer; transition:background .2s; }
#guest-form .guest-form__reminder { position:relative; height:140px; pointer-events:none; }
#guest-form .guest-form__reminder-text { position:absolute; top:0; right:50px; width:247px; height:auto; transform:rotate(-7deg); }
#guest-form .guest-form__reminder-heart { position:absolute; top:12px; right:74px; width:38px; height:auto; }
#guest-form .guest-form__reminder-arrow { position:absolute; top:60px; right:170px; width:31px; height:74px; transform:rotate(23deg); }
#guest-form button:hover { background:#edaeb2; }
#guest-form button:disabled { opacity:.6; cursor:wait; }
#form-status { text-align:center; font-size:13px; margin-top:12px; }
.wedding-countdown { display:flex; align-items:center; justify-content:center; gap:20px; font-family:'2',sans-serif; color:#000; text-align:center; }
.wedding-countdown span { font-size:13px; }
.wedding-countdown b { display:block; font-size:48px; line-height:1.2; font-weight:400; }
.wedding-countdown i { font-size:36px; font-style:normal; }
:focus-visible { outline:2px solid #d2797f; outline-offset:5px; }
@media(max-width:479px) { #guest-form { font-size:12px; } #guest-form .question,#guest-form legend { font-size:12px; } #guest-form .hint { font-size:10px; } #guest-form fieldset { margin:25px 0; } #guest-form fieldset label { font-size:11px; } #guest-form button { width:85px; height:85px; font-size:11px; } .wedding-countdown { gap:12px; } .wedding-countdown b { font-size:32px; } .wedding-countdown span { font-size:10px; } }
@media(max-width:479px) { #guest-form .guest-form__reminder { height:90px; } #guest-form .guest-form__reminder-text { width:158px; } #guest-form .guest-form__reminder-heart { top:8px; right:60px; width:19px; } #guest-form .guest-form__reminder-arrow { top:38px; right:75px; width:19px; height:46px; transform:rotate(40deg); } }

/* A timed entrance over the original blurred photograph. */
.invitation-loader { position:absolute; inset:0; z-index:5; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:20px; padding:24px; }
.invitation-loader__title { font-family:'2', Georgia, serif; font-weight:600; font-size:clamp(28px, 6.5vw, 56px); line-height:1.55; color:#fff; text-align:center; width:min(600px, 100%); }
.invitation-progress { width:min(480px, 80vw); height:22px; border-radius:9px; overflow:hidden; background:rgba(250,255,199,.45); border:1px solid rgba(255,255,255,.65); box-shadow:0 2px 14px rgba(0,0,0,.06); }
.invitation-progress__fill { width:100%; height:100%; transform:scaleX(0); transform-origin:left; background:#edaeb2; border-radius:8px; }
.invitation-loader__percent { font-family:'2',Arial,sans-serif; color:#fff; font-size:14px; font-variant-numeric:tabular-nums; }
.uc-ndt-preloader.activated { visibility:hidden; transition:opacity .5s ease-in, visibility 0s .5s; }

.invitation-loader__line { display:block; min-height:1.55em; }
.invitation-loader { gap:24px; }
.invitation-loader__ready { display:flex; flex-direction:column; align-items:center; gap:8px; animation:invitation-ready-appear .4s ease-out both; }
.invitation-loader__ready[hidden], .invitation-progress[hidden], .invitation-loader__percent[hidden] { display:none; }
.invitation-open-heart { width:62px; height:58px; padding:0; border:0; background:none; cursor:pointer; filter:drop-shadow(0 5px 8px rgba(0,0,0,.16)); animation:invitation-heart-pulse 2.2s ease-in-out infinite; }
.invitation-open-heart svg { display:block; width:100%; height:100%; }
.invitation-open-heart:hover { filter:drop-shadow(0 7px 12px rgba(0,0,0,.2)); }
.invitation-loader__ready-text { font:15px '2',Arial,sans-serif; color:#fff; text-align:center; text-shadow:0 2px 9px rgba(0,0,0,.5); }
@keyframes invitation-ready-appear { from { opacity:0; transform:translateY(10px); } to { opacity:1; transform:translateY(0); } }
@keyframes invitation-heart-pulse { 50% { transform:scale(1.07); } }
@media(prefers-reduced-motion:reduce) { .invitation-open-heart, .invitation-loader__ready { animation:none; } }

.music-unlock { position:fixed; z-index:10001; left:50%; bottom:calc(24px + env(safe-area-inset-bottom, 0px)); transform:translateX(-50%); max-width:calc(100vw - 32px); padding:13px 23px; border:1px solid #edaeb2; border-radius:999px; background:#ffd1d4; color:#000; font:16px '2',Arial,sans-serif; white-space:nowrap; box-shadow:0 6px 22px rgba(0,0,0,.14); cursor:pointer; }
.music-unlock[hidden] { display:none; }

/* Personal photograph for the blurred loading screen. */
#rec1216806756 .t396__carrier { background-image:url("/design/misha-rita-loading.jpg") !important; background-position:50% 65% !important; }

/* Two landscape photographs in the original rounded portrait frame. */
#rec1216806766 .hero-collage { position:relative; overflow:hidden; background:#faffc7; isolation:isolate; }
#rec1216806766 [data-elem-id="1753905876909"] .tn-atom {
  background-color:#edaeb2;
  -webkit-mask:url('/design/a1b87a105c4b49563b.png') center / 100% 100% no-repeat;
  mask:url('/design/a1b87a105c4b49563b.png') center / 100% 100% no-repeat;
}
#rec1216806766 [data-elem-id="1753905876909"] .tn-atom img { opacity:0; }
.hero-collage__pair { position:absolute; inset:0; display:grid; grid-template-columns:minmax(0,1fr); grid-template-rows:minmax(0,1fr) minmax(0,1fr); gap:6px; opacity:0; transition:opacity 650ms ease-in-out; }
.hero-collage__pair.is-active { opacity:1; }
.hero-collage__frame { position:relative; min-width:0; min-height:0; overflow:hidden; }
#rec1216806766 .hero-collage__frame img { position:absolute; inset:0; display:block; width:100% !important; height:100% !important; min-width:0; min-height:0; max-width:none; object-fit:cover; object-position:center; }
@media(max-width:639px) { #rec1216806766 .hero-collage__pair { gap:12px; } }
@media(max-width:479px) {
  #rec1216806766 [data-elem-id="1753905582610"] {
    zoom:1 !important;
    left:20px !important;
    top:calc(138.333vw + 4px) !important;
    transform:none !important;
  }
  #rec1216806766 [data-elem-id="1753905576910"] {
    zoom:1 !important;
    left:16px !important;
    top:110px !important;
    width:calc(100% - 32px) !important;
    height:calc(138.333vw - 44.267px) !important;
  }
  #rec1216806766 .hero-collage {
    display:block !important;
    width:100% !important;
    height:100% !important;
  }
}
@media (prefers-reduced-motion:reduce) { .hero-collage__pair { transition:none; } }

/* The welcome text follows the photographs; its heading lives in the story section. */
#rec1216806781 .t396__artboard, #rec1216806781 .t396__carrier, #rec1216806781 .t396__filter { height:380px !important; }
#rec1216806781 [data-elem-id="1753295525402"] { top:70px !important; }
@media(max-width:479px) {
  #rec1216806781 .t396__artboard, #rec1216806781 .t396__carrier, #rec1216806781 .t396__filter { height:78vw !important; }
  #rec1216806781 [data-elem-id="1753295525402"] { top:35px !important; }
}

#rec1216806781 .welcome-closing {
  display:table;
  max-width:100%;
  margin:1.5em auto 0;
}
#rec1216806781 .welcome-closing::after {
  content:"";
  display:block;
  height:14px;
  margin-top:3px;
  background:url('/design/812cce8ee9aff8381e.png') repeat-x center / 122px 14px;
}
@media(max-width:479px) {
  #rec1216806781 .welcome-closing::after { height:9px; background-size:80px 9px; }
}

/* Keep the original heart silhouette while showing the couple's portrait. */
#rec1216806826 .heart-photo {
  display:block !important;
  position:relative;
  width:100%;
  height:auto !important;
  aspect-ratio:842 / 710;
  background:#ffd1d4;
  -webkit-mask:url('/design/1c1056b61dacfcc0e8.png') center / 100% 100% no-repeat;
  mask:url('/design/1c1056b61dacfcc0e8.png') center / 100% 100% no-repeat;
}
#rec1216806826 .heart-photo__image {
  position:absolute;
  inset:0;
  display:block;
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center 58%;
  transform:scale(.965);
  -webkit-mask:url('/design/1c1056b61dacfcc0e8.png') center / 100% 100% no-repeat;
  mask:url('/design/1c1056b61dacfcc0e8.png') center / 100% 100% no-repeat;
}

/* Five years of photographs, scattered in alternating rows. */
@font-face {
  font-family:'Invitation LeoHand';
  src:url('/design/760592b8b927e39564.woff') format('woff');
  font-style:normal;
  font-weight:400;
  font-display:swap;
}
.our-story {
  position:relative;
  z-index:1;
  padding:42px 20px 54px;
  overflow:hidden;
  text-align:center;
  background-color:#faffc7;
  background-image:
    linear-gradient(to bottom,#faffc7,transparent),
    linear-gradient(to top,#faffc7,transparent),
    radial-gradient(circle at 9% 14%,rgba(255,209,212,.65),transparent 18%),
    radial-gradient(circle at 90% 87%,rgba(255,209,212,.55),transparent 17%);
  background-position:top,bottom,center,center;
  background-size:100% 160px,100% 160px,100% 100%,100% 100%;
  background-repeat:no-repeat;
}
.our-story__greeting {
  margin:0 0 24px;
  color:#edaeb2;
  font:600 clamp(42px,5vw,60px)/1.15 '2',Arial,sans-serif;
}
.our-story__question {
  margin:0 0 28px;
  color:#111;
  font:400 20px/1.5 '2',Arial,sans-serif;
  letter-spacing:-1.5px;
}
.our-story__strip {
  display:flex;
  flex-direction:column;
  width:min(680px,100%);
  margin:auto;
  padding:14px 24px 22px;
  box-sizing:border-box;
}
.our-story__frame {
  position:relative;
  z-index:1;
  flex:none;
  width:min(53%,260px);
  margin:0;
  padding:0;
  box-sizing:border-box;
  transform:rotate(var(--story-angle));
}
.our-story__frame:nth-child(odd) { align-self:flex-start; }
.our-story__frame:nth-child(even) { align-self:flex-end; }
.our-story__frame:nth-child(n+2) { margin-top:-118px; }
.our-story__frame:nth-child(1) { --story-angle:-7deg; }
.our-story__frame:nth-child(2) { --story-angle:5deg; margin-right:3%; }
.our-story__frame:nth-child(3) { --story-angle:-4deg; margin-left:8%; }
.our-story__frame:nth-child(4) { --story-angle:7deg; margin-right:9%; }
.our-story__frame:nth-child(5) { --story-angle:-6deg; margin-left:2%; }
.our-story__frame img {
  display:block;
  width:100%;
  height:auto;
  aspect-ratio:1;
  object-fit:cover;
  border-radius:18px;
  box-shadow:0 10px 24px rgba(69,63,48,.18);
}
.our-story__frame figcaption {
  padding:8px 0 6px;
  color:#cf7187;
  font:400 23px/1 'Invitation LeoHand',cursive;
}
.our-story__frame:nth-child(odd) figcaption { text-align:left; padding-left:12px; }
.our-story__frame:nth-child(even) figcaption { text-align:right; padding-right:12px; }
.our-story.story-animated .our-story__frame {
  opacity:0;
  transform:translateY(22px) rotate(var(--story-angle)) scale(.97);
  transition:opacity .55s ease,transform .55s ease;
}
.our-story.story-animated .our-story__frame.is-visible { opacity:1; transform:rotate(var(--story-angle)); }
@media(min-width:640px) {
  .our-story__strip {
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:12px 32px;
    width:min(650px,100%);
  }
  .our-story__frame { width:min(100%,250px); margin:0 !important; }
  .our-story__frame:nth-child(odd) { justify-self:start; }
  .our-story__frame:nth-child(even) { justify-self:end; }
  .our-story__frame:nth-child(3) { margin-left:24px !important; }
  .our-story__frame:nth-child(4) { margin-right:18px !important; }
}
@media(max-width:639px) {
  .our-story { padding:38px 16px 44px; }
  .our-story__greeting { margin-bottom:18px; font-size:clamp(36px,10.2vw,42px); }
  .our-story__question { margin-bottom:22px; }
  .our-story__strip { width:min(360px,100%); padding:12px 12px 22px; }
  .our-story__frame { width:59%; }
  .our-story__frame:nth-child(n+2) { margin-top:-102px; }
  .our-story__frame img { border-radius:14px; }
  .our-story__frame figcaption { font-size:20px; padding:6px 0 5px; }
}
@media(max-width:479px) {
  .our-story__question { font-size:14px; line-height:1.3; letter-spacing:-0.7px; }
}
@media(prefers-reduced-motion:reduce) {
  .our-story.story-animated .our-story__frame { opacity:1; transform:rotate(var(--story-angle)); transition:none; }
}

.dress-code {
  box-sizing:border-box;
  width:100%;
  padding:54px 20px 70px;
  background:#faffc7;
  text-align:center;
}
.dress-code__title {
  margin:0 0 26px;
  color:#edaeb2;
  font:600 clamp(42px,5vw,60px)/1.15 '2',Arial,sans-serif;
}
.dress-code__description {
  max-width:540px;
  margin:0 auto 40px;
  color:#000;
  font:400 20px/1.5 '2',Arial,sans-serif;
  letter-spacing:-1.5px;
}
.dress-code__closing { position:relative; display:inline-block; white-space:nowrap; }
.dress-code__closing::after {
  content:"";
  position:absolute;
  left:0;
  right:0;
  bottom:-10px;
  height:14px;
  background:url('/design/812cce8ee9aff8381e.png') no-repeat center / 100% 100%;
}
.dress-code__shape-def { position:absolute; width:0; height:0; overflow:hidden; }
.dress-code__swatches {
  display:flex;
  justify-content:center;
  gap:15px;
  max-width:567px;
  padding:0;
  margin:0 auto;
  list-style:none;
}
.dress-code__swatches li {
  flex:1 1 0;
  min-width:0;
  max-width:82px;
  aspect-ratio:1;
}
.dress-code__swatches svg { display:block; width:100%; height:100%; fill:var(--swatch-color); }
.dress-code__swatches li:nth-child(2) svg { transform:rotate(27deg); }
.dress-code__swatches li:nth-child(3) svg { transform:rotate(-35deg); }
.dress-code__swatches li:nth-child(4) svg { transform:rotate(65deg); }
.dress-code__swatches li:nth-child(5) svg { transform:rotate(-68deg); }
.dress-code__swatches li:nth-child(6) svg { transform:rotate(105deg); }
@media(max-width:639px) {
  .dress-code { padding:44px 16px 56px; }
  .dress-code__title { margin-bottom:18px; font-size:clamp(36px,10.2vw,42px); }
  .dress-code__description { max-width:410px; margin-bottom:38px; font-size:16px; letter-spacing:-.7px; }
  .dress-code__swatches { gap:8px; max-width:300px; }
  .dress-code__swatches li { max-width:65px; }
}

/* Tilda uses a 320px canvas and scales it up on phones. Keep these elements
   within that canvas so their visual margins grow with the viewport. */
@media(max-width:479px) {
  #rec1216806811 .tn-elem[data-elem-id="1753299789333"] {
    width:220px !important;
  }
  #rec1216806811 .tn-elem[data-elem-id="1753299789333"] .tn-atom {
    white-space:nowrap !important;
  }
  #rec1216806811 .tn-elem[data-elem-id="1753304337221"] {
    top:407px !important;
  }

  #rec1216806826 .tn-elem[data-elem-id="1753369403670"] {
    left:50% !important;
    width:290px !important;
    transform:translateX(-50%) !important;
  }

  #rec1216806851 .tn-group[data-group-id="175336783490172190"] {
    height:145px !important;
  }
  #rec1216806851 .tn-group[data-group-id="175336783490172190"] .tn-molecule {
    height:100% !important;
    box-sizing:border-box;
  }
  #rec1216806851 .tn-group[data-group-id="175336765215892890"] {
    height:210px !important;
  }
  #rec1216806851 .tn-group[data-group-id="175336765215892890"] .tn-molecule {
    height:100% !important;
    box-sizing:border-box;
  }
  #rec1216806851 .tn-elem[data-elem-id="1753367376655"] {
    width:190px !important;
    height:auto !important;
  }
  #rec1216806851 .tn-elem[data-elem-id="1753367376655"] .tn-atom {
    white-space:nowrap !important;
  }
  #rec1216806851 .t396__artboard,
  #rec1216806851 .t396__carrier,
  #rec1216806851 .t396__filter {
    height:240vw !important;
  }

  #rec1216806876 .tn-elem[data-elem-id="1753378928122"] {
    left:calc(50% - 160px + 100px) !important;
  }
}

/* Ceremony details between the calendar and venue. */
.ceremony-registration,
.ceremony-celebration {
  box-sizing:border-box;
  width:100%;
  background:#faffc7;
  text-align:left;
}
.ceremony-registration { padding:28px 28px 0; }
.ceremony-celebration { padding:44px 28px 0; }
.ceremony-palace {
  box-sizing:border-box;
  padding:34px 20px 58px;
  background:#faffc7;
}
.ceremony-palace__photo {
  position:relative;
  width:min(440px,100%);
  margin:0 auto;
}
.ceremony-palace__photo img {
  display:block;
  width:100%;
  height:auto;
  border-radius:24px;
}
.ceremony-palace__map {
  position:absolute;
  left:-8px;
  bottom:-36px;
  display:flex;
  align-items:center;
  justify-content:center;
  box-sizing:border-box;
  width:107px;
  height:107px;
  padding:12px;
  border:7px solid #faffc7;
  border-radius:50%;
  background:#ffd1d4;
  color:#000;
  text-align:center;
  text-decoration:none;
  font:400 15px/1.2 '2',Arial,sans-serif;
}
.ceremony-palace__map:focus-visible { outline:2px solid #000; outline-offset:3px; }
.ceremony-registration h2,
.ceremony-celebration h2 {
  max-width:636px;
  margin:0 auto 20px;
  color:#edaeb2;
  font:600 60px/1.2 '2',Arial,sans-serif;
}
.ceremony-celebration h2 { margin-bottom:0; }
.ceremony-registration p,
.ceremony-celebration p {
  max-width:636px;
  margin:0 auto;
  color:#000;
  font:400 20px/1.5 '2',Arial,sans-serif;
  letter-spacing:-1.5px;
}
@media (max-width:479px) {
  .ceremony-registration,
  .ceremony-celebration { padding-right:9.0625vw; padding-left:9.0625vw; }
  .ceremony-registration h2,
  .ceremony-celebration h2 { font-size:10vw; }
  .ceremony-registration p,
  .ceremony-celebration p { font-size:16px; letter-spacing:-0.5px; }
  .ceremony-palace__map { width:85px; height:85px; font-size:10px; border-width:5px; }
}

/* The second calendar repeats the first one's five-day layout. */
.ceremony-first-calendar-title { display:none; }
.ceremony-second-calendar {
  box-sizing:border-box;
  padding:38px 20px 32px;
  background:#faffc7;
  text-align:center;
}
.ceremony-second-calendar h2 {
  margin:0 auto 20px;
  color:#edaeb2;
  font:600 50px/1.55 '2',Arial,sans-serif;
}
.ceremony-second-calendar__frame {
  position:relative;
  width:min(483px,100%);
  margin:0 auto;
}
.ceremony-second-calendar table {
  position:relative;
  z-index:2;
  width:100%;
  height:100px;
  border-collapse:collapse;
  table-layout:fixed;
  color:#000;
  font-family:'2',Arial,sans-serif;
}
.ceremony-second-calendar th,
.ceremony-second-calendar td {
  border:2px solid #edaeb2;
  text-align:center;
  font-weight:400;
}
.ceremony-second-calendar th { height:33px; font-size:20px; line-height:1; }
.ceremony-second-calendar td { height:67px; font-size:39px; line-height:1; }
.ceremony-second-calendar__selected { font-size:55px !important; }
.ceremony-second-calendar__heart {
  position:absolute;
  z-index:1;
  top:11px;
  left:50%;
  width:109px;
  height:106px;
  transform:translateX(-50%);
  pointer-events:none;
}
.ceremony-second-calendar__caption {
  position:relative;
  width:230px;
  height:70px;
  margin:22px auto 0;
}
.ceremony-second-calendar__caption img:first-child { position:absolute; top:0; left:0; width:185px; height:auto; }
.ceremony-second-calendar__caption img:nth-child(2) { position:absolute; top:5px; left:185px; width:39px; height:auto; }
.ceremony-second-calendar__caption svg { position:absolute; top:49px; left:0; width:185px; height:auto; }
@media (min-width:480px) and (max-width:639px) {
  .ceremony-second-calendar { padding-right:0; padding-left:0; }
}
@media (max-width:479px) {
  /* The first Tilda calendar scales its 320px layout to the full screen width. */
  #rec1216806786 { position:relative; }
  #rec1216806786 [data-elem-id="1753295192053"] { display:none !important; }
  .ceremony-first-calendar-title {
    display:block;
    position:absolute;
    z-index:10;
    top:3.4375vw;
    left:0;
    width:100%;
    margin:0;
    color:#edaeb2;
    text-align:center;
    pointer-events:none;
  }
  .ceremony-first-calendar-title,
  .ceremony-second-calendar h2 { font:600 7.3vw/1.55 '2',Arial,sans-serif; }
  .ceremony-second-calendar { padding:9.375vw .9375vw 7.5vw; }
  .ceremony-second-calendar h2 { margin-bottom:5vw; }
  .ceremony-second-calendar__frame { width:98.125vw; }
  .ceremony-second-calendar table { height:19.0625vw; }
  .ceremony-second-calendar th,
  .ceremony-second-calendar td { border-width:1px; }
  .ceremony-second-calendar th { height:7.1875vw; font-size:5vw; }
  .ceremony-second-calendar td { height:11.875vw; font-size:5.3125vw; }
  .ceremony-second-calendar__selected { font-size:8.75vw !important; }
  .ceremony-second-calendar__heart { top:2.8125vw; width:19.6875vw; height:19.0625vw; }
  .ceremony-second-calendar__caption { width:47.8125vw; height:13.75vw; margin-top:4.6875vw; }
  .ceremony-second-calendar__caption img:first-child { width:34.375vw; }
  .ceremony-second-calendar__caption img:nth-child(2) { top:.625vw; left:34.375vw; width:5.9375vw; }
  .ceremony-second-calendar__caption svg { top:9.0625vw; width:47.8125vw; }
}
