@media (max-width: 1024px) {
  .notice-board { columns: 2; }
  .poem-masonry { columns: 2; }
}

@media (max-width: 768px) {
  .nav-links {
    display: none;
    position: absolute;
    top: 100%;
    left: 0; right: 0;
    background: var(--bg-paper);
    border-bottom: 1px solid var(--border-ink);
    flex-direction: column;
    padding: 12px 0;
    box-shadow: 0 4px 12px rgba(0,0,0,0.06);
  }

  .theme-dark .nav-links { background: var(--bg-paper); }
  .nav-links.active { display: flex; }
  .nav-toggle { display: flex; }

  .nav-links a {
    padding: 10px 24px;
    border-bottom: 1px solid var(--border-ink);
  }
  .nav-links a:last-child { border-bottom: none; }

  .hero { min-height: auto; padding: 100px 16px 60px; }
  .hero-title { font-size: 32px; letter-spacing: 0.1em; }
  .hero-seals { flex-wrap: wrap; gap: 10px; }

  .section { padding: 56px 0; }
  .section-title { font-size: 22px; margin-bottom: 28px; }

  .plaque-body { flex-direction: column; gap: 8px; padding: 16px 20px; }
  .plaque-dot { display: none; }

  .scroll-frame { width: 220px; }
  .scroll-img-wrap img { height: 160px; }

  .notice-board { columns: 1; }
  .poem-masonry { columns: 1; }

  .letter-paper { padding: 20px; }
  .letter-row { flex-direction: column; align-items: stretch; gap: 4px; }
  .letter-label { text-align: left; min-width: auto; }

  .modal-content { width: 95%; max-height: 85vh; }
  .modal-scroll { padding: 20px 16px; }

  .article-scroll-paper { max-height: min(78vh, 620px); margin: 0 6px; }
  .article-scroll-header { padding: 32px 40px 10px 20px; }
  .modal-scroll.article-scroll-body { padding: 6px 18px 22px 22px; }
  .seal-close { width: 36px; height: 36px; font-size: 15px; top: 10px; right: 10px; }

  .colophon-seal-group:not(:empty) + .colophon-seal-group:not(:empty) {
    border-left: none;
    padding-left: 0;
    margin-left: 0;
    padding-top: 14px;
    margin-top: 6px;
    border-top: 1px dashed var(--border-ink);
    width: 100%;
  }
}

@media (max-width: 480px) {
  .hero-title { font-size: 26px; }
  .seal-stamp { font-size: 13px; padding: 4px 12px; }
  .address-value { font-size: 15px; }
  .hero-address { flex-wrap: wrap; justify-content: center; gap: 8px; }
}
