*{box-sizing:border-box}body{margin:0;background:#fff;color:#222;font-family:'DM Sans',sans-serif;-webkit-font-smoothing:antialiased}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit}a{color:inherit}button:focus-visible,a:focus-visible{outline:2px solid currentColor;outline-offset:5px}main{max-width:1060px;margin:auto;padding:40px 40px 60px}.composition{display:grid;grid-template-columns:minmax(0,1fr)}.photo{grid-column:1;grid-row:1;width:100%;margin:0}.photo-image{position:relative;overflow:hidden}.photo-image img{display:block;width:100%;height:auto}.photo-image::after{content:"";position:absolute;inset:65% 0 0;background:linear-gradient(transparent,rgba(15,25,18,.32));pointer-events:none}.title-block{grid-column:1;grid-row:1;align-self:end;z-index:1;padding:0 35px 24px;pointer-events:none}h1{color:#fff;font-size:clamp(100px,15vw,190px);font-weight:500;line-height:1;margin:0;letter-spacing:-.08em;white-space:nowrap}.am{font-size:.67em;letter-spacing:-.085em}.invitation{grid-column:1;grid-row:2;display:flex;justify-content:space-between;align-items:center;gap:32px;padding-top:32px}h2{max-width:690px;font-size:clamp(27px,3.2vw,43px);font-weight:500;line-height:1.12;letter-spacing:-.055em;margin:0}.booking{font-size:25px;font-weight:400;white-space:nowrap;text-underline-offset:7px;text-decoration-thickness:1px}.booking:hover{opacity:.65}.booking span{margin-left:8px}dialog{border:0;padding:24px;border-radius:4px;max-width:950px;width:calc(100% - 32px);max-height:90dvh;background:#fff;color:#222}dialog::backdrop{background:#141b17aa}.calendar-top{display:flex;align-items:center;justify-content:space-between;gap:20px}.calendar-top h2{font-size:22px;margin:0;letter-spacing:-.5px}.close-calendar{border:0;background:#eee;border-radius:50%;width:36px;height:36px;font-size:25px;cursor:pointer}.calendar-fallback{font-size:12px;line-height:1.7;color:#666}.calendar-fallback a{margin-left:8px}#calendar-container iframe{width:100%;height:650px;border:0}body:has(dialog[open]){overflow:hidden}
@media(max-width:650px){main{padding:20px 20px 40px}.title-block{padding:0 18px 15px}h1{font-size:24vw;line-height:1}.invitation{display:block;text-align:center;padding-top:26px}h2{text-align:left;font-size:32px;line-height:1.13;margin:0 0 26px}.booking{font-size:23px}dialog{padding:18px 12px;width:calc(100% - 16px)}.calendar-top h2{font-size:19px}.calendar-fallback{font-size:10px}.calendar-fallback a{margin-left:0;display:block}}
/* Fit the desktop page to the available browser height, preserving the full photo. */
@media(min-width:651px){
  main{width:min(calc(100% - 64px),980px,calc(116.9312svh - 233.8624px));max-width:none;margin:24px auto;padding:0}
  .composition{container-type:inline-size}
  .title-block{padding:0 3.57cqw 2.45cqw}
  h1{font-size:19.39cqw}
  .invitation{gap:24px;padding-top:24px}
  .invitation h2{font-size:clamp(22px,4.39cqw,36px)}
  .booking{font-size:clamp(18px,2.55cqw,25px)}
}
@media(min-width:651px) and (max-height:600px){
  .invitation{display:block;padding-top:18px}
  .invitation h2{font-size:22px;margin-bottom:14px}
}
/* Square walking photographs leave the lower-left foreground for the title. */
.walk-photo .composition{container-type:inline-size}
.walk-photo .title-block{padding:0 3.57cqw 2.45cqw}
.walk-photo h1{font-size:13cqw}
@media(min-width:651px){.walk-photo main{width:min(calc(100% - 64px),980px,calc(100svh - 200px))}}
