/* The chosen composition: a letter, paper tickets, and the city at the finale. */
.invite-hero-snow{position:absolute;inset:0;width:100%;height:100%;z-index:2;pointer-events:none}
.invite-about .kx__in{padding:clamp(44px,5vw,80px);padding-bottom:calc(clamp(44px,5vw,80px) + 28px)}
.invite-about__inner{display:grid;grid-template-columns:minmax(0,1fr);gap:28px;justify-items:center;text-align:center}
.invite-about__label{margin:0}
.invite-about .invite-about__title{font-size:clamp(42px,4.8vw,76px);line-height:1.05;max-width:14em;margin:0}
.invite-about .invite-about__greeting{font-size:clamp(22px,1.8vw,28px);line-height:1.45;max-width:35em;margin:0}
.invite-brand{white-space:nowrap}
.invite-about__body{width:100%;max-width:1000px;display:grid;gap:22px;text-align:center;border-top:1px solid #b5ccd6;padding-top:30px}
.invite-about .invite-about__body .tx{font-size:clamp(16px,1.25vw,20px);line-height:1.65;max-width:none;margin:0}
#program .kg__h{font-size:clamp(40px,4.8vw,76px)}
#program .kq__facts--3 li{display:block}
#program .kq__facts--3 li>i{display:none}

.invite-place__inner{position:relative;z-index:2;display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);grid-template-areas:"photo title" "photo text";gap:28px clamp(32px,4vw,64px);align-items:start;padding:var(--P)}
.invite-place .kp__head{grid-column:auto;grid-row:auto;grid-area:title;display:block;margin:0;min-width:0}
.invite-place .kp__h{margin:0;font-size:clamp(42px,4.5vw,68px);line-height:1.05;max-width:none;color:var(--ink)}
.invite-place .kp__txt{grid-area:text;display:grid;gap:24px;align-content:start;min-width:0}
.invite-place .kp__txt>.tx{font-size:clamp(16px,1.2vw,19px);line-height:1.65;max-width:none;margin:0;color:var(--ink-70)}
.invite-place .kp__media{grid-area:photo;min-width:0;align-self:stretch;display:block}
.invite-place .kp__ph{width:100%;min-width:0;max-width:100%;height:100%;min-height:440px;aspect-ratio:5/4;margin:0}
.invite-place .kp__ph>img{object-position:50% 50%}
.kp__address-ticket{display:grid;grid-template-columns:minmax(0,1fr) 44px;align-items:center;gap:18px;padding:23px 26px;background:#fbfcfd url(../images/paper.webp) 0 0/512px;min-width:0}
.invite-place .kp__addr{border:0;padding:0;margin:0;min-width:0;display:grid;gap:7px}
.invite-place .kp__addr b{font-size:clamp(22px,1.65vw,28px);line-height:1.2;color:var(--ink)}
.invite-place .kp__addr span{font-size:16px;line-height:1.4;color:#52616c}
.kp__address-seal{display:block;width:44px;height:44px;color:#0b6f99;opacity:.85}
.kp__address-seal svg{display:block;width:100%;height:100%;fill:none;stroke:currentColor}
.kp__location-ring{stroke-width:.7;opacity:.55}
.kp__location-ring--inner{stroke-width:.5;opacity:.3}

.invite-final{--band:clamp(76px,9.5vw,150px)}
.invite-final>.kf__in{padding-top:calc(var(--band) + var(--P))}

@media(max-width:900px){
 .invite-about .kx__in{padding:40px 30px 68px}
 .invite-place__inner{grid-template-columns:minmax(0,1fr);grid-template-areas:"title" "text" "photo";gap:26px;padding:38px 30px}
 .invite-place .kp__ph{height:auto;min-height:0;aspect-ratio:4/3}
 .invite-final{--band:80px}
}
@media(max-width:760px){
 .v83{--invite-mobile-gutter:clamp(30px,9vw,40px)}
 .invite-about .kx__in{padding:38px var(--invite-mobile-gutter) 66px}
 .invite-about__inner{gap:24px}
 .invite-about__body{text-align:center}
 .invite-about .invite-about__title{font-size:clamp(32px,8.4vw,46px);line-height:1.08}
 #program .kg__h{font-size:clamp(32px,8.4vw,46px);line-height:1.08}
 #program .kg__head{padding-inline:max(0px,calc(var(--invite-mobile-gutter) - var(--P)));text-align:center}
 .invite-about .invite-about__greeting{font-size:18px;line-height:1.45}
 .invite-about .invite-about__body .tx{font-size:16px}
 #program .kq__txt p{font-size:15px}
 #program .kq__facts span{font-size:15.5px;line-height:1.55}
 #program .kq__sp p{font-size:15px;line-height:1.55}
 #program .kq__cap,#program .kq__k{font-size:13px}
 #program .kq__closing{font-size:16px;line-height:1.6}
 .invite-place__inner{grid-template-columns:minmax(0,1fr);grid-template-areas:"title" "text" "photo";gap:26px;padding:38px 24px}
 .invite-place .kp__h{font-size:clamp(32px,8.4vw,46px);line-height:1.08}
 .invite-place .kp__head,.invite-place .kp__txt>.tx{padding-inline:calc(var(--invite-mobile-gutter) - 24px);text-align:center}
 .invite-place__title-rest{display:block}
 .invite-place .kp__txt{gap:22px}
 .invite-place .kp__ph{height:auto;min-height:0;aspect-ratio:4/3}
 .kp__address-ticket{padding:23px;gap:14px;grid-template-columns:minmax(0,1fr) 36px}
 .kp__address-seal{width:36px;height:36px}
 .invite-final{--band:68px}
 .invite-final .kf__txt{padding-inline:max(0px,calc(var(--invite-mobile-gutter) - var(--P)));text-align:center}
 .invite-final .kf__txt>.tx{margin-inline:auto;font-size:16px;line-height:1.6}
 .invite-final .kf__facts{justify-content:center}
 .invite-final .kf__cta{display:flex;justify-content:center}
 .ft__legal a{font-size:14px}
 .rsvp-dialog .rsvp-intro{font-size:15px}
 .rsvp-dialog .rsvp-consent{font-size:13px}
 .rsvp-dialog .rsvp-policy{font-size:12px}
 .rsvp-dialog .rsvp-message{font-size:14px}
 :is(.invite-about__title,#program .kg__h,.invite-place .kp__h,.invite-final .kf__h) :is(.ln-mask,.ln){text-align:inherit!important}
}
@media(max-width:640px){
 #program .kq--x .kq__stub{grid-row:1}
 #program .kq--x .kq__ph{grid-column:1;grid-row:3;align-self:start;justify-self:center;width:calc(100% - 32px);height:clamp(140px,44vw,240px);min-height:0;aspect-ratio:auto;margin:0 16px 18px}
 #program .kq--x .kq__body{grid-column:1;grid-row:2}
}
@media(max-width:360px){
 .kp__address-ticket{padding:22px;grid-template-columns:minmax(0,1fr);gap:0}
 .kp__address-seal{display:none}
}

/* Continuous vector frame on compact layouts. */
.kx--mobile-static{clip-path:none!important}
.kx__mobile-frame{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  overflow:visible;
  z-index:0;
  pointer-events:none;
}
.kx--mobile-static .kx__perf{position:relative}
.kx--mobile-static .kx__perf::before{content:"";position:absolute;left:-6px;right:-6px;top:calc(50% - 5px);border-top:1px dotted rgba(11,111,153,.45);pointer-events:none}
.kx--mobile-static .kx__perf::after{content:"";position:absolute;left:5.5px;right:5.5px;top:calc(50% - 2px);height:4px;background-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%229%22%20height%3D%224%22%3E%3Ccircle%20cx%3D%224.5%22%20cy%3D%222%22%20r%3D%221.8%22%20fill%3D%22%2308090B%22%2F%3E%3C%2Fsvg%3E");background-size:9px 4px;background-repeat:round no-repeat;pointer-events:none}
