@import url('https://fonts.googleapis.com/css2?family=Playfair+Display:ital,wght@0,400;0,500;1,400&display=swap');

.minimal-ivory {
  --paper: #f9f7ef;
  --ink: #242421;
  --line: #c6c1b5;
  --frame: min(89vw,1330px);
  --serif: 'Playfair Display', Georgia, serif;
  overflow-wrap: anywhere;
  font-size: 15px;
}
.minimal-ivory :is(h1,h2,h3,footer>span,.sign) { font-family: var(--serif); font-weight: 400; }
.minimal-ivory h2 { font-size: clamp(34px,5.5vw,77px); line-height: 1.02; letter-spacing: -.06em; }
.minimal-ivory .overline { text-transform: uppercase; letter-spacing: .14em; font-size: 10px; }
.minimal-ivory .occasion-nav { padding: 18px 5.5vw; text-transform: uppercase; }
.iv-cover {
  display: grid;
  grid-template-columns: minmax(0,1.2fr) minmax(0,.8fr);
  grid-template-rows: auto auto;
  align-content: center;
  align-items: center;
  gap: 10px clamp(24px,6vw,104px);
  width: var(--frame);
  margin: clamp(24px,6vw,88px) auto clamp(40px,9vw,136px);
}
.iv-cover-copy { padding-block: 14px; }
.iv-cover-copy .overline { margin-top: 0; }
.iv-cover h1 { font-size: clamp(58px,9.6vw,141px); margin-block: 20px 28px; letter-spacing: -.075em; line-height: .9; }
.iv-cover h1 span { display: block; }
.iv-cover h1 span:last-child { margin-left: 8%; }
.iv-cover h1 i { display: block; font-size: .48em; margin: .12em 0 .16em 8%; color: #746859; }
.iv-cover .cover-date { margin: 0; letter-spacing: .11em; }
.iv-cover figure { grid-column: 2; grid-row: 1 / 3; align-self: stretch; min-height: 0; }
.iv-cover img { height: 100%; max-height: 750px; aspect-ratio: 4/5; object-position: center 62%; }
.iv-text-link { display: inline-block; width: fit-content; text-transform: uppercase; letter-spacing: .12em; font-size: 10px; border-bottom: 1px solid var(--line); padding-block: 5px; transition: border-color .2s; }
.iv-text-link:hover { border-color: var(--ink); }
.iv-welcome.welcome {
  display: grid;
  grid-template-columns: minmax(0,1fr) minmax(0,.72fr);
  gap: 14px clamp(20px,9vw,150px);
  width: var(--frame);
  max-width: none;
  text-align: left;
  border-block: 1px solid var(--line);
  padding: clamp(40px,7vw,100px) 0;
}
.iv-welcome .overline { grid-column: 1 / -1; margin: 0; }
.iv-welcome h2 { grid-row: 2 / 4; margin: 0; font-size: clamp(46px,7.8vw,113px); }
.iv-welcome > p:not(.overline) { margin: 7px 0 0; white-space: pre-line; }
.iv-welcome .sign { margin-top: 7px; font-size: 20px; }
.iv-agenda {
  display: grid;
  grid-template-columns: minmax(0,.9fr) minmax(0,1fr);
  width: var(--frame);
  margin: auto;
  padding-block: clamp(50px,10vw,142px);
  gap: clamp(25px,9vw,150px);
}
.iv-agenda .ni-date { align-self: start; }
.iv-agenda .ni-date .overline, .iv-agenda .section-title .overline { margin-top: 0; }
.iv-agenda .ni-date h2 { margin: 14px 0 22px; }
.iv-agenda .digits { display: grid; grid-template-columns: repeat(4, max-content); justify-content: start; gap: clamp(5px,1.6vw,20px); }
.iv-agenda .digits b { min-width: 0; white-space: nowrap; font-family: var(--serif); font-size: clamp(29px,4vw,55px); }
.iv-agenda .digits span { letter-spacing: .06em; }
.iv-agenda .schedule { display: block; width: 100%; padding: 0; }
.iv-agenda .section-title h2 { margin: 14px 0 21px; font-size: clamp(30px,4vw,54px); }
.iv-agenda .schedule li { display: grid; grid-template-columns: 57px minmax(0,1fr); gap: 14px; padding-block: 16px; }
.iv-agenda .schedule li:first-child { border-top: 1px solid var(--line); }
.iv-agenda .event-number { display: none; }
.iv-agenda .schedule h3 { font-family: inherit; font-size: 15px; line-height: 1.3; font-weight: 600; }
.iv-agenda .schedule time { font: 13px/1.4 Manrope,Arial,sans-serif; font-variant-numeric: tabular-nums; }
.iv-agenda .schedule li p { font-size: 13px; margin-top: 5px; }
.iv-place { display: grid; grid-template-columns: minmax(0,1.43fr) minmax(0,1fr); background: #efebe1; }
.iv-place img { height: 100%; min-height: 300px; aspect-ratio: 5/4; object-position: center 65%; }
.iv-place .location-copy { padding: clamp(24px,6vw,88px); }
.iv-place .location-copy h2 { font-size: clamp(33px,5vw,76px); }
.iv-dress.dress { width: var(--frame); margin: auto; text-align: left; padding: clamp(45px,9vw,135px) 0; border-bottom: 1px solid var(--line); }
.iv-dress > p:not(.overline) { margin: 15px 0 0; white-space: pre-line; }
.minimal-ivory .response { width: var(--frame); max-width: none; grid-template-columns: minmax(0,1.2fr) minmax(0,.8fr); gap: clamp(25px,7vw,110px); padding: clamp(40px,8vw,110px) 0; border: 0; }
.minimal-ivory .response form { max-width: 500px; }
.minimal-ivory .response button { min-height: 44px; }
.iv-footer { display: grid; gap: 16px; padding: clamp(45px,9vw,110px) 5.5vw; text-align: left; background: #efebe1; }
.iv-footer > span { font-size: clamp(43px,8vw,110px); letter-spacing: -.065em; line-height: .94; }
.iv-footer :is(p,a) { margin-top: 0; width: fit-content; }
.iv-opening[hidden] { display: none; }
.iv-opening { --opening-ready: 1; inset: 0; width: 100%; height: 100%; max-width: none; max-height: none; border: 0; padding: 0; background: #e8e3d8; color: var(--ink); }
.iv-opening::backdrop { background: transparent; }
.iv-opening-stage { display: flex; flex-direction: column; align-items: center; justify-content: center; min-height: 100%; gap: 21px; padding: 24px; overflow: clip; }
.iv-opening-print {
  width: min(100%, 760px);
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  align-items: center;
  border-block: 1px solid var(--line);
}
.iv-opening-caption { padding: clamp(12px, 4vw, 42px); overflow-wrap: anywhere; }
.iv-opening-caption .overline { margin: 0 0 12px; }
.iv-opening-caption h2 { margin: 0; font-size: clamp(26px, 5vw, 66px); line-height: 1.05; }
.iv-opening-caption [data-opening-date] { margin-top: 13px; }
.iv-opening-photo { margin: 0; overflow: hidden; }
.iv-opening-photo img {
  display: block;
  width: 100%;
  height: clamp(210px, 44svh, 420px);
  object-fit: cover;
  object-position: center top;
  filter: grayscale(1);
}
@media (max-width: 500px) {
  .iv-opening-print { grid-template-columns: minmax(0, 1fr); }
  .iv-opening-photo img { height: clamp(130px, 32svh, 280px); }
}
.iv-opening-actions { display: grid; text-align: center; gap: 4px; }
.iv-opening-actions button { padding: 8px 16px; min-height: 44px; color: inherit; background: none; border: 0; }
.iv-opening-actions [data-open] { border: 1px solid var(--ink); }
.iv-opening-actions form button { text-decoration: underline; text-underline-offset: .3em; }
@media (max-width: 700px) {
  .iv-cover { grid-template-columns: minmax(0,1fr); gap: 16px; margin-top: 17px; }
  .iv-cover h1 { font-size: clamp(55px,15.5vw,88px); margin-block: 15px 21px; }
  .iv-cover h1 span:last-child { margin-left: 4%; }
  .iv-cover figure { grid-column: 1; grid-row: auto; margin-left: 13%; }
  .iv-cover img { height: auto; aspect-ratio: 5/4; }
  .iv-welcome.welcome, .iv-agenda, .iv-place, .minimal-ivory .response { grid-template-columns: minmax(0,1fr); }
  .iv-welcome h2 { grid-row: auto; }
  .iv-agenda { gap: 42px; }
  .iv-place img { min-height: 0; height: auto; aspect-ratio: 5/3; }
}
@media (prefers-reduced-motion: reduce) { .iv-opening *, .iv-text-link { animation: none !important; transition: none; } }
