/* Interior-only material vocabulary. Homepage styles and behavior stay independent. */
.interior-page { background:var(--cream); font-size:20px; line-height:1.55; }
.interior-page section { padding-block:100px; }
.interior-page h1 { font-size:clamp(54px,6.8vw,98px); line-height:1.02; letter-spacing:-.045em; margin-bottom:32px; }
.interior-page h2 { font-size:clamp(40px,4.7vw,68px); line-height:1.08; letter-spacing:-.035em; margin-bottom:32px; }
.interior-page p { margin-block:0 1.1em; }
.interior-page p:last-child { margin-bottom:0; }
.interior-prose { max-width:58ch; }
.interior-photo { position:relative; isolation:isolate; margin:0; }
.interior-photo::before { content:''; position:absolute; inset:12px -12px -12px 12px; background:var(--photo-backer,var(--navy)); z-index:-1; transform:rotate(-1.2deg); }
.photo-window { overflow:hidden; clip-path:polygon(0 .25%,99.7% 0,100% 99.7%,.25% 100%); box-shadow:0 10px 24px #27252224; }
.interior-photo .photo { width:100%; height:auto; display:block; }
.backer-navy { --photo-backer:var(--navy); }
.backer-olive { --photo-backer:var(--olive); }
.backer-gold { --photo-backer:var(--gold); }
.tilt-left { transform:rotate(-1.2deg); }
.tilt-right { transform:rotate(1.2deg); }
.object-caption,.paper-label { font-family:var(--font-display); font-size:25px; line-height:1.2; }
.object-caption { padding:36px 20px 0; }
.quiet-note { font-size:17px; line-height:1.5; }
.chapter-label { font-size:16px; color:var(--olive); }
.interior-page .interior-closing { background:var(--white); padding-block:130px; }
.interior-closing > .wrap { display:grid; grid-template-columns:1.4fr 1fr; gap:9%; align-items:center; }
.interior-closing h2 { font-size:clamp(54px,7.3vw,104px); margin:0; }
.closing-response { max-width:36ch; }
.closing-response .host-button { margin-block:20px 30px; }
.closing-lead { font-size:24px; line-height:1.4; }
.closing-signature { font-family:var(--font-display); font-size:25px; color:var(--olive); transform:rotate(-2deg); margin-top:32px!important; }
.closing-statement { position:relative; padding-bottom:85px; }
.interior-hand { width:150px; position:absolute; right:5%; bottom:-10px; transform:rotate(7deg); }
@media(max-width:760px) {
 .interior-page { font-size:19px; }
 .interior-page section { padding-block:65px; }
 .interior-page .interior-closing { padding-block:80px; }
 .interior-closing > .wrap { grid-template-columns:1fr; gap:40px; }
 .interior-closing h2 { font-size:clamp(50px,10vw,74px); }
 .closing-lead { font-size:22px; }
 .closing-statement { padding-bottom:20px; }
 .interior-hand { position:static; width:110px; margin:24px 0 0 auto; display:block; }
}
/* The illustration occupies the open contour of each headline, as on Home. */
.interior-closing .closing-title { position:relative; width:5.5em; max-width:100%; font-size:clamp(48px,6.4vw,92px); min-height:3.3em; }
.closing-title .interior-hand { position:absolute; display:block; width:2.3em; height:auto; margin:0; left:2.9em; top:.8em; right:auto; bottom:auto; transform:rotate(8deg); transition:transform 180ms ease; }
.closing-statement { padding:0; }
.why-invitation .interior-hand { left:3.15em; top:-.15em; }
.story-invitation .interior-hand { left:2.65em; top:.3em; }
@media(hover:hover) and (prefers-reduced-motion:no-preference) {
 .closing-title .interior-hand:hover { transform:rotate(-3deg); }
}
@media(max-width:760px) {
 .interior-closing .closing-title { font-size:clamp(44px,9vw,68px); }
}
/* Attached captions share a material vocabulary, not a mandatory layout. */
.material-caption { position:relative; width:fit-content; max-width:100%; padding:12px 20px; background:var(--white); color:var(--navy); font:23px/1.25 var(--font-display); transform:rotate(-1deg); filter:drop-shadow(3px 5px 0 var(--stone)); clip-path:var(--paper-cut); }

/* Partner photograph captions are the shared bold paper-caption reference. */
.family-caption,.statement-caption { position:relative; width:fit-content; max-width:94%; margin:-25px 0 0 auto; padding:19px 25px; isolation:isolate; filter:drop-shadow(3px 5px 0 var(--stone)); }
.family-caption::before,.statement-caption::before { content:''; position:absolute; inset:0; background:var(--cream); clip-path:var(--paper-cut); z-index:-1; }
.statement-caption { color:var(--ink); font-family:var(--font-display); font-size:clamp(27px,2.8vw,40px); font-weight:750; font-optical-sizing:none; font-variation-settings:"wght" 750,"opsz" 76; letter-spacing:-.035em; line-height:1.05; }
@media(max-width:760px) { .statement-caption { padding:16px 18px; margin-top:-16px; font-size:clamp(24px,5vw,34px); } }
