/* Public site only: readable text, generous leading, and controls for older readers. */
body { font-size: 1.1rem; line-height: 1.7; letter-spacing: 0; word-spacing: .04em; }
main :is(h1,h2,h3,h4,p,li,dt,dd,label,summary,strong),
.portal-heading h2, .page-head h1, .doc-head h1, .video-title {
  letter-spacing: 0; word-break: keep-all; overflow-wrap: anywhere;
}
main :is(h1,h2,h3,h4) { line-height: 1.45; }
main :is(p,li,dt,dd) { line-height: 1.7; }
.doc-body p, .doc-section > p, .doc-list, .faq-answer,
.video-desc, .lifecard-text, .lifecard-row, .recipe-steps li,
.good-words-body { font-size: 1.1rem; line-height: 1.85; }
.doc-body p + p, .video-desc p + p { margin-top: 1em; }
.doc-list li + li, .recipe-steps li + li { margin-top: .6em; }
.page-desc, .doc-meta, .doc-lead, .empty-desc, .notice-inline,
.action-hint, .field label, .field input, .field textarea, .field select,
.agree-box, .check, .faq summary { font-size: 1.05rem; line-height: 1.7; }
.video-body h3, .vcard-body h3, .video-related .vcard-body h3,
.rank-row h3, .pick-body h3, .tpick-body h3,
.portal-video-body > strong { font-size: 1.1rem; line-height: 1.55; letter-spacing: 0; }
.vcard-meta, .video-related .vcard-meta, .video-meta, .views,
.rank-row-meta, .pick-meta, .tpick-meta, .portal-video-meta,
.portal-video-body > small, .portal-ranking small, .breadcrumb,
.section-desc, .action-status, .field-error, .req, .opt,
.portal-tile small, .portal-topic-grid .portal-tile small,
.portal-life .portal-tile small, .portal-section-note,
.portal-heading > p, .footer-links a { font-size: 1rem; line-height: 1.6; }
.duration, .video-related .duration { font-size: .95rem; line-height: 1.4; }
.sort-tabs, .video-actions, .share-actions, .list-toolbar { flex-wrap: wrap; gap: 12px; }
.sort-tabs a, .chip, .btn-action, .btn-text, .btn-primary,
.btn-submit, .share-btn, .hobby-topics a, .fun-daynav a,
.datebar-btn { min-height: 48px; height: auto; line-height: 1.5; font-size: 1.05rem; }
.sort-tabs a, .hobby-topics a { padding: 12px 16px; }
.field input, .field select { min-height: 52px; height: auto; }
.field textarea { line-height: 1.8; }
.search input { font-size: 1rem; }
.search input::placeholder, .page-search input::placeholder { color: #606773; opacity: 1; }
.doc-note, .info-value, .steps li > span:last-child { line-height: 1.75; }
.cat strong { white-space: normal; line-height: 1.5; }
.cat small { white-space: normal; font-size: 1rem; line-height: 1.6; }
.video-related .vcard { gap: 14px; }
.video-related .vcard-meta { margin-top: 8px; }
.page-search { gap: 10px; }
.site-footer .copyright { font-size: .9rem; line-height: 1.7; }
@media (max-width: 768px) {
  .portal-fun .portal-tile small, .portal-life .portal-tile small,
  .site-footer .footer-links a, .portal-topics .portal-heading > a { font-size: 1rem; line-height: 1.6; }
  .portal-fun .portal-tile, .portal-life .portal-tile { padding: 16px 10px; }
  .video-body h3, .vcard-body h3, .video-related .vcard-body h3,
  .portal-video-body > strong, .portal-more-content .pick-body h3 { font-size: 1.05rem; line-height: 1.6; }
  .vcard-meta, .video-related .vcard-meta { font-size: 1rem; }
  .video-title { font-size: 1.5rem; line-height: 1.55; }
  .page-head h1, .doc-head h1 { font-size: 1.8rem; line-height: 1.5; }
  .tabbar a { font-size: .9rem; letter-spacing: 0; }
  .page-search { flex-wrap: wrap; }
  .page-search input { flex-basis: 65%; width: 0; padding: 12px; }
  .page-search button { padding: 12px 16px; height: auto; min-height: 52px; }
  .sort-tabs { display: flex; flex-wrap: wrap; }
  .doc-table { font-size: 1rem; line-height: 1.8; }
  .footer-links a { overflow-wrap: anywhere; }
}
@media (max-width: 390px) {
  html.is-large .hobby-topics { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
.words-text { font-family: var(--font); font-size: 1.3rem; line-height: 1.85; }
.history-source, .words-type, .fun-card-body small, .zbtn small,
.ad-disclosure { font-size: 1rem; line-height: 1.6; }
.ad-disclosure { color: var(--text-sub); }
.quiz-choice { line-height: 1.6; word-break: keep-all; overflow-wrap: anywhere; }
@media (max-width: 768px) {
  .quiz-choices { grid-template-columns: 1fr; }
  .words-card { padding: 20px; }
}

/* Category cards must grow with their text, including the enlarged-font mode. */
.cat-list--page { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 16px; margin-bottom: 32px; align-items: stretch; }
.cat-list--page > li { min-width: 0; display: flex; }
.cat-list--page .cat {
  width: 100%; height: 100%; min-height: 150px; padding: 20px 16px;
  align-items: flex-start; justify-content: flex-start; gap: 14px;
}
.cat-list--page .cat svg { width: 44px; height: 44px; margin-top: 4px; }
.cat-list--page .cat span { min-width: 0; align-items: flex-start; }
.cat-list--page .cat strong, html.is-large .cat-list--page .cat strong {
  font-size: 1.15rem; line-height: 1.5; text-align: left; letter-spacing: 0;
}
.cat-list--page .cat small {
  display: block; margin-top: 8px; font-size: 1rem; line-height: 1.65;
  white-space: normal; overflow: visible; text-overflow: clip;
}
@media (max-width: 1200px) {
  .cat-list--page { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (max-width: 768px) {
  .cat-list--page { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
  .cat-list--page .cat { flex-direction: column; padding: 16px 12px; gap: 8px; }
  .cat-list--page .cat svg { width: 36px; height: 36px; margin: 0; }
  .cat-list--page .cat strong, html.is-large .cat-list--page .cat strong { font-size: 1.05rem; }
}
@media (max-width: 390px) {
  html.is-large .cat-list--page { grid-template-columns: 1fr; }
}
