/* Shared stationery system. Illustration geometry remains in styles.css. */
.cta-label{display:inline-block;transform:translateY(.08em)}
.mail-heading,.open-prompt,.back-link{font-size:var(--type-label);line-height:1.5}
.mail-heading,.couple-names{color:var(--cream)}
.couple-names,.announcement-names{font-size:var(--type-names);line-height:1.08}
.couple-names{margin:var(--space-1) 0 var(--space-4)}
.open-prompt{margin-top:var(--space-4);letter-spacing:.06em}
.landing-shade{background:linear-gradient(180deg,rgba(16,13,11,.72) 0%,rgba(16,13,11,.64) 35%,rgba(16,13,11,.2) 58%,transparent 76%),rgba(255,255,255,.3)}
.landing-page .mail-heading,.landing-page .couple-names{color:#fffaf4;text-shadow:0 1px 2px rgba(12,9,7,.6),0 3px 12px rgba(12,9,7,.4)}
.landing-page .mail-heading{font-size:clamp(1.25rem,calc(1.1rem + .3vw),1.375rem);line-height:1.5}
.landing-page .couple-names{font-size:calc(var(--type-names) * 1.15);margin-top:var(--space-2)}
.announcement-kicker,.postcard-back-copy{font-family:var(--handwriting);transform:rotate(-9deg);transform-origin:center}
.announcement-kicker{font-size:clamp(3rem,4.4vw,4.75rem);transform:rotate(-6deg)}
.announcement-rings{margin-top:var(--space-1)}
.save-heading{font-size:calc(var(--type-heading) * 1.15);line-height:1.08;color:#fffaf4;filter:none;text-shadow:0 1px 2px rgba(12,9,7,.6),0 3px 12px rgba(12,9,7,.4)}
.save-champagne{margin:var(--space-2) auto var(--space-2)}
.save-details-shade{background:linear-gradient(180deg,rgba(16,13,11,.60) 0%,rgba(16,13,11,.52) 30%,rgba(16,13,11,.16) 58%,rgba(16,13,11,.28) 100%)}
.photo-filmstrip-intro{padding:0 var(--space-3) var(--space-1)}
.photo-filmstrip-stage{padding:var(--space-2) 0}
.photo-filmstrip{height:auto;min-height:100vh;min-height:100svh}
.photo-filmstrip-pin{height:auto;min-height:100vh;min-height:100svh}

/* Let short screens and enlarged type flow vertically instead of shrinking text. */
.save-details{height:auto;min-height:100vh;min-height:100svh}
.postcard.is-auto-driven .postcard-inner{transform:rotateY(var(--postcard-turn,0deg));transition:none}
.postcard.is-auto-driven,.postcard.is-auto-driven:hover{transform:translate3d(0,var(--postcard-lift,0px),0) rotate(var(--postcard-tilt,0deg));box-shadow:none;transition:none}
.postcard.is-auto-driven .postcard-face{box-shadow:var(--postcard-shadow,var(--paper-shadow))}
.save-details[data-save-sequence="playing"] .postcard-inner,.postcard.is-turning .postcard-inner{will-change:transform}
.postcard.is-interactive{cursor:pointer}
.postcard-flip-control{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}
.postcard:has(.postcard-flip-control:focus-visible){outline:2px solid var(--cream);outline-offset:6px}
.postcard-mobile-action.is-visible{opacity:var(--postcard-action-opacity,1)}
.save-details-pin{top:var(--save-pin-top,0px);height:auto;min-height:100vh;min-height:100svh;padding:var(--space-3)}
.save-details-content{max-height:none}
.postcard-scene{width:min(760px,100%)}
.postcard-inner{height:auto}
.postcard-front{min-height:min-content;padding:var(--space-3);background:var(--paper) url("assets/ivory-paper-grain.svg") repeat;color:var(--chocolate)}
.postcard-back{background:var(--paper)}
.postcard{container-type:inline-size;box-shadow:var(--paper-shadow)}
.postcard-back-title{font-size:clamp(2rem,calc(1rem + 6cqw),4rem);line-height:1.35}
.postcard-back-date{margin-top:var(--space-1);font-size:clamp(1.125rem,calc(.75rem + 2cqw),1.75rem);line-height:1.4}
.postcard-message{justify-content:space-between;gap:var(--space-3);padding:var(--space-2) var(--space-3) var(--space-2) 0;font-family:var(--serif);font-size:var(--type-body);font-style:normal;line-height:1.4;text-wrap:pretty}
.postcard-greeting,.postcard-signature{font:inherit}
@media(min-width:801px){.postcard-signature.postcard-desktop-copy{text-align:center}}
.postcard-letter-body p{margin:0}
.postcard-letter-body p+p{margin-top:var(--space-2)}
.postcard-details{padding:var(--space-1) 0 var(--space-1) var(--space-3)}
.postcard-detail-lines{margin-top:144px;padding:0;font-family:var(--serif);font-size:var(--type-body);font-style:normal;line-height:1.4}
.postcard-detail-lines p{padding:var(--space-1) 0}
.filmstrip-frame{padding-bottom:var(--space-6);background:var(--paper) url("assets/ivory-paper-grain.svg") repeat;box-shadow:var(--paper-shadow)}
.pill-button,.address-external,.postcard-action{min-height:48px;padding:12px var(--space-3);border-radius:24px;font-family:var(--serif);font-size:var(--type-label);font-style:normal;line-height:1.5;letter-spacing:.06em}
.postcard-action{margin:0}
.postcard-message .postcard-action{font:inherit;letter-spacing:normal;text-transform:none}
.postcard-mobile-action{font-size:var(--type-body);letter-spacing:normal;text-transform:none}
.closing{padding:var(--space-3);background:var(--background);color:var(--chocolate)}
.closing .back-link:focus-visible{outline-color:var(--chocolate)}

@media(max-width:800px){
  .announcement-kicker,.postcard-back-copy{transform:rotate(-8deg)}
  .landing-page .couple-names{font-size:calc(var(--type-names) * 1.25)}
  :root{--type-body:1.125rem;--type-detail:1.125rem}
  .couple-names,.photo-filmstrip .announcement-names{font-size:var(--type-names);line-height:1.08}
  .couple-names{margin:var(--space-1) 0 var(--space-4)}
  .open-prompt{font-size:var(--type-label);margin-top:var(--space-3)}
  .announcement-kicker{width:min(100%,8em);margin-inline:auto;font-size:clamp(2rem,9.8vw,3.75rem)}
  .photo-filmstrip{--ribbon-gap:32px}
  .photo-filmstrip-intro{padding:0 var(--space-2)}
  .photo-filmstrip-stage{padding:var(--space-3) 0 var(--space-1)}
  .announcement-rings{margin-top:var(--space-1)}
  .save-details-pin{padding:var(--space-2)}
  .save-heading{font-size:calc(var(--type-heading) * 1.25);line-height:1.08}
  .save-champagne{margin:var(--space-1) auto var(--space-1)}
  .postcard-scene{width:min(420px,100%)}
  .postcard{aspect-ratio:auto}
  .postcard-back-copy{width:70%}
  .postcard-front{min-height:min-content;padding:12px}
  .postcard-message{display:grid;grid-template-rows:auto 1fr;align-items:stretch;gap:0;padding:0;font-size:var(--type-body);line-height:1.35}
  .postcard-mobile-header{margin:0;padding:0 32px 4px;font-family:var(--serif);font-size:.875rem;line-height:1.15}
  .postcard-mobile-header span:first-child{font-size:inherit}
  .postcard-mobile-body{display:flex;flex-direction:column;justify-content:center;gap:4px;line-height:1.25;text-align:center;text-wrap:balance}
  .postcard-mobile-body p{margin:0}
  .postcard-mobile-body .postcard-mobile-signoff{margin-top:var(--space-1)}
  .postcard-details{padding:0}
  .postcard-mobile-action{margin-top:var(--space-2);box-shadow:var(--paper-shadow)}
  .postcard,.postcard.is-scroll-driven:hover{box-shadow:var(--paper-shadow)}
  .closing{padding:var(--space-3) var(--space-2)}
  .back-link{font-size:var(--type-label)}
}
@media(max-width:800px) and (max-height:720px){
  .save-details-pin{padding:12px}
}
@media(max-width:360px){
  .landing-page .couple-names{font-size:calc(var(--type-names) * 1.2)}
  .postcard-front{padding:8px}
  .postcard-mobile-header{padding-bottom:2px;line-height:1.1}
  .postcard-stamp{width:44px;height:48px}
}
@media(max-width:374px){
  .postcard-front{padding:6px}
  .postcard-mobile-header{padding-bottom:1px;line-height:1.1}
  .postcard-mobile-body{gap:2px;font-size:1rem;line-height:1.2}
  .postcard-stamp{width:44px;height:48px}
}
