.public-main { max-width: 1120px; }
.public-main .page-intro { margin-bottom: 36px; }
.public-main .page-intro p { max-width: 720px; }
.public-date { margin-top: 18px; font-size: 12px; }
.public-grid { display: grid; grid-template-columns: 220px minmax(0, 1fr); gap: 36px; align-items: start; }
.public-toc { display: flex; flex-direction: column; gap: 4px; position: sticky; top: 24px; font-size: 13px; }
.public-toc strong { padding-block: 8px; }
.public-toc a { padding-block: 10px; color: var(--muted); }
.public-copy { padding: clamp(22px, 4vw, 44px); }
.public-copy section { scroll-margin-top: 24px; margin-bottom: 32px; }
.public-copy h2 { font-size: 19px; line-height: 1.45; margin-bottom: 12px; }
.public-copy p { font-size: 15px; line-height: 1.85; white-space: pre-line; overflow-wrap: anywhere; }
.public-contact { border-top: 1px solid var(--line); padding-top: 28px; }
.public-contact > a { display: inline-block; padding-block: 10px; text-decoration: underline; }
.public-links { display: flex; flex-wrap: wrap; gap: 8px 24px; }
.public-links a { display: inline-flex; align-items: center; min-height: 44px; }
.public-page .app-footer { flex-wrap: wrap; }
@media (max-width: 720px) {
  .public-grid { grid-template-columns: 1fr; gap: 24px; }
  .public-toc { position: static; border-bottom: 1px solid var(--line); padding-bottom: 16px; }
  .public-page .brand img { width: 110px; height: auto; }
  .public-page .header-actions { gap: 10px; }
}
