.narrow { max-width: 720px; }
.t-hero { padding: 72px 0 56px; text-align: center; border-bottom: 1px solid var(--rule); }
.portrait { max-width: 640px; margin: 0 auto 40px; }
.portrait img {
  width: 100%; height: auto; display: block; border-radius: 4px;
  border: 10px solid #fff; box-shadow: 0 1px 2px rgba(0,0,0,.08), 0 14px 34px rgba(0,0,0,.12);
}
.portrait figcaption { font-size: 14px; color: var(--faint); margin-top: 12px; font-style: italic; font-family: var(--serif); }
.portrait span { color: var(--faint); font-size: 14px; }
.t-hero h1 { font-family: var(--serif); font-weight: 400; font-size: clamp(38px, 6vw, 58px); line-height: 1.1; margin: 0 0 10px; }
.t-hero .dates { color: var(--soft); font-size: 18px; margin: 0 0 22px; letter-spacing: 0.02em; }
.t-hero .saying { font-family: var(--serif); font-style: italic; font-size: 24px; color: var(--accent); margin: 0; }

.t-body { padding: 64px 0 80px; }
.t-body p { color: #3b3833; font-size: 18px; line-height: 1.7; }
.t-body .lead { font-family: var(--serif); font-size: 24px; line-height: 1.5; color: var(--ink); margin: 0 0 18px; }
.t-body h2 { font-family: var(--serif); font-weight: 400; font-size: 32px; margin: 56px 0 14px; }

.loves { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 14px; margin-top: 18px; }
.love { background: var(--card); border: 1px solid var(--rule); border-radius: 10px; padding: 18px 20px; }
.love h3 { font-family: var(--serif); font-weight: 400; font-size: 21px; margin: 0 0 4px; }
.love p { font-size: 15px !important; color: var(--soft) !important; margin: 0; line-height: 1.55 !important; }

blockquote {
  font-family: var(--serif); font-size: 30px; line-height: 1.3; margin: 28px 0 10px;
  padding-left: 22px; border-left: 3px solid var(--accent); color: var(--ink);
}
.closing { font-family: var(--serif); font-size: 22px !important; margin-top: 56px; color: var(--ink) !important; }
.back a { color: var(--soft); text-decoration: none; font-size: 15px; }
.back a:hover { color: var(--accent); }
