/* Calm, upright Persian typography and matching photographic mounts. */
.envelope{transition:transform 1.8s ease}
.envelope.lifting{transform:translateY(-45px)}
.flap{transition:transform 2s ease,z-index 0s .8s}
.inner-letter{transition:transform 2s ease}
.photo-reveal{min-height:100svh;max-width:620px;margin:auto;display:grid;place-items:center;text-align:center;background:linear-gradient(#f5f1e855,#f5f1e8bb),url('assets/color.jpg') center/cover}
.photo-reveal h2{font-size:42px}
.rsvp-choices{border:0;padding:0;margin:22px 0}
.rsvp-choices label{display:flex;align-items:center;gap:10px;padding:13px;background:#fffaf0;border:1px solid #b8c2ad;border-radius:6px}
.rsvp-choices input[type=radio]{width:20px;height:20px;accent-color:var(--green);flex:none}
.opening{position:relative;background:linear-gradient(#f5f1e8bd,#f5f1e8e0),url('assets/color.jpg') center 40%/cover;border-radius:0 0 34px 34px}
.childhood{width:290px;max-width:78vw;padding:0;background:none;box-shadow:none;transform:none;margin:14px auto 20px}
.childhood img{aspect-ratio:auto;height:auto;object-fit:contain}
.childhood figcaption{font-size:12px}
.opening .english{display:none}
.opening .large-date{font-size:42px;line-height:1.3;margin:20px 0}
.bottom-nav{position:fixed;z-index:30;bottom:0;left:50%;transform:translateX(-50%);width:min(100%,620px);display:grid;grid-template-columns:repeat(5,1fr);padding:9px 5px calc(9px + env(safe-area-inset-bottom));background:#87976b;box-shadow:0 -4px 20px #20332618}
.bottom-nav a{display:flex;flex-direction:column;align-items:center;gap:4px;color:white;text-decoration:none;padding:7px 2px;border-radius:9px;font-size:12px;min-height:55px}
.bottom-nav svg{width:27px;height:27px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.bottom-nav a[aria-current]{background:#ffffff26}
.card-open main{padding-bottom:calc(95px + env(safe-area-inset-bottom))}
.music{bottom:auto;top:calc(14px + env(safe-area-inset-top));left:max(12px,calc((100vw - 620px)/2 + 12px));padding:8px 12px}
.music span{display:none}
main section,main .framed-section{scroll-margin-top:55px}
.guest-name{font-size:18px;color:var(--green);padding:10px 20px;border-block:1px solid #b7bca9;margin:16px auto;max-width:100%;overflow-wrap:anywhere}
.map-links a span{border:0;background:#fffaf0;width:62px;height:62px}
.map-links img{object-fit:contain;border-radius:12px}
.keepsake form{text-align:right;margin:30px auto;max-width:440px}
.keepsake label{display:block;margin:16px 0 6px}
.keepsake input,.keepsake textarea,.link-builder input{width:100%;font:inherit;padding:12px;border:1px solid #a8b29e;background:#fffcf5;border-radius:6px;color:var(--ink)}
.keepsake textarea{resize:vertical}
.keepsake button,.link-builder button{font:inherit;padding:12px 24px;border:0;border-radius:6px;background:var(--green);color:white;cursor:pointer}
.keepsake button:disabled{opacity:.55}
.note-public{font-size:14px;color:#626f61;line-height:1.8}
#notes article{padding:22px;text-align:right;border:1px solid #c8cebe;background:#fffaf0;margin:16px 0;border-radius:6px;overflow-wrap:anywhere}
#notes article p{white-space:pre-wrap;margin-bottom:0}
#note-status{font-size:14px}
.backdrop {
  background:linear-gradient(#f5f1e84a,#f5f1e866),url('assets/color.jpg') center 45%/cover;
  filter:blur(7px);
}
main {background:transparent}
.paper,.framed-section {background:rgba(245,241,232,.78)}
.cover {background:rgba(245,241,232,.80)}
.story {padding-top:24px;padding-bottom:30px}
h1,h2,blockquote,.inner-letter,.wax span {
  font-family: Vazirmatn,Tahoma,sans-serif;
  font-weight: 400;
}
.opening h1 {font-size:clamp(32px,8vw,44px);line-height:1.8;margin:24px 0 16px}
.cover-names {font-size:32px;line-height:1.9}
h2 {font-size:27px;line-height:1.8}
.inner-letter {font-size:28px;line-height:2.4}
.wax span {font-size:16px}
blockquote {font-size:clamp(16px,3.8vw,20px);line-height:2.5;margin:42px 0 22px;font-weight:300}
.framed-gallery {display:grid;gap:44px;max-width:420px;margin:0 auto}
.portrait-frame {
  margin:0;
  padding:clamp(20px,5vw,34px);
  background:linear-gradient(135deg,#fffcf3,#ede6d6);
  border:9px solid #234b3e;
  outline:1px solid #b49c6c;
  outline-offset:2px;
  border-radius:3px;
  box-shadow:inset 0 0 0 2px #b49c6c,inset 0 0 0 6px #f7f1e3,0 18px 32px #1b38262b,0 3px 6px #1b382633;
}
.portrait-frame img {display:block;width:100%;height:auto;border:1px solid #b4a17b;box-shadow:0 0 0 4px #dfd6c3,0 0 0 5px #b5a685}
.framed-section {padding:28px 34px 44px;background:rgba(245,241,232,.78)}
.framed-section .portrait-frame {max-width:420px;margin:auto}
@media(max-width:400px) {
  .portrait-frame {padding:20px;border-width:7px}
  .framed-gallery {gap:34px}
  .framed-section {padding-inline:28px}
}
