/* Mobile reading: keep Korean words together and reserve emergency wrapping for
   genuinely oversized words/URLs. The weekly schedule's existing layout stays intact. */
@media (max-width: 700px) {
  body.rose-site { word-break: keep-all; overflow-wrap: break-word; hyphens: none; }
  body.rose-site :where(h1, h2, h3, h4, p, li, dt, dd, figcaption, label, summary) {
    word-break: keep-all;
    overflow-wrap: break-word;
    hyphens: none;
  }
  body.rose-site :is(
    .rose-cover-description, .rose-section-description, .rose-today > strong,
    .diary-title, .diary-text, .game-archive-card h3, .game-card-meta dd,
    .video-item b, .notice, .link-hub-text b, .link-hub-text small,
    .rose-profile-facts .profile-item span, .entry-title, .entry-text,
    .rose-calendar-today-content strong, .day-snippet, .comment-item p
  ) {
    word-break: keep-all;
    overflow-wrap: break-word;
  }
  body.rose-site :is(.rose-cover-description, .rose-section-description, .entry-text, .diary-text) { text-wrap: pretty; }
  body.rose-site .game-card-meta { grid-column: 1 / -1; grid-row: 3; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
  body.rose-site .game-card-meta dd { font-size: 16px; line-height: 1.6; }
  body.rose-site .game-card-meta dt { font-size: 12px; }
  body.rose-site .game-comment-button { grid-column: 1 / -1; grid-row: 4; justify-self: end; width: auto; font-size: 14px; }
  body.notice-journal .kokoro-updated time { white-space: nowrap; }
  body.rose-site :is(.rose-button, .rose-text-link, .small-btn, .heart-btn, .comment-open-btn) {
    white-space: nowrap;
    flex-shrink: 0;
  }

  /* Songbook body copy must not inherit the large handwritten desktop scale. */
  body.rose-songbook .sb-title { font-size: clamp(30px, 8.8vw, 36px); line-height: 1.3; }
  body.rose-songbook .sb-lead { font-size: 16px; line-height: 1.75; }
  body.rose-songbook :is(.sb-request-guide, .sb-stats) { font-size: 13px; gap: 8px 14px; line-height: 1.6; }
  body.rose-songbook .sb-stats > span { white-space: nowrap; }
  body.rose-songbook .sb-stats b { font-size: 18px; }
  body.rose-songbook .sb-request-guide b { display: inline-block; white-space: nowrap; }
  body.rose-songbook .sb-request-kind-guide .kokoro-info-card { min-width: 0; padding: 18px; }
  body.rose-songbook .sb-request-kind-guide h3 { font-size: 18px; line-height: 1.5; text-wrap: wrap; }
  body.rose-songbook .sb-request-kind-guide p { font-size: 14px; line-height: 1.7; }
  body.rose-songbook .section-head { gap: 12px; }
  body.rose-songbook .section-head h2 { font-size: clamp(26px, 7.4vw, 30px); line-height: 1.35; }
  body.rose-songbook .section-desc { font-size: 15px; line-height: 1.75; }
  body.rose-songbook .links-mini-cta { font-size: 14px; white-space: nowrap; }
  body.rose-songbook :is(.sb-song-title, .sb-artist, .sb-queue-title, .sb-queue-meta,
    .sb-now-layout h2, .sb-now-layout p, .sb-now-requester,
    .sb-new-song-copy b, .sb-new-song-copy small, .sb-random-result h3, .sb-random-result p,
    .kokoro-setlist b, .kokoro-setlist span) {
    min-width: 0;
    word-break: keep-all;
    overflow-wrap: break-word;
    text-wrap: wrap;
  }
  body.rose-songbook .sb-song-title { font-size: 19px; line-height: 1.5; }
  body.rose-songbook .sb-artist { font-size: 14px; line-height: 1.6; }
  body.rose-songbook :is(.sb-song-flags, .sb-chips) { gap: 5px; margin-top: 9px; }
  body.rose-songbook :is(.sb-chip, .sb-ready-tag, .sb-karaoke, .sb-last-sung) { white-space: nowrap; }
  body.rose-songbook :is(.sb-request, .primary-btn, .secondary-btn) { white-space: nowrap; }
  body.rose-songbook .sb-empty { font-size: 16px; line-height: 1.75; padding: 26px 16px; }
  body.rose-songbook .sb-queue-actions { width: 100%; gap: 8px; }
  body.rose-songbook .sb-queue-actions select { flex: 1 1 180px; width: auto; min-width: 0; font-size: 13px; }
  body.rose-songbook .sb-queue-actions button { flex: 0 0 auto; }
  body.rose-songbook .sb-queue-title { font-size: 18px; line-height: 1.5; }
  body.rose-songbook .sb-queue-meta { font-size: 13px; line-height: 1.65; }
  body.rose-songbook .sb-status { font-size: 12px; white-space: nowrap; }
  body.rose-songbook .sb-now-layout h2 { font-size: 21px; line-height: 1.45; }
  body.rose-songbook :is(.sb-now-layout p, .sb-now-requester) { font-size: 14px; line-height: 1.6; }

  /* Popups share one compact mobile scale, including dynamically added songs. */
  body.rose-songbook .sb-modal { padding: 12px; }
  body.rose-songbook .sb-modal-card {
    width: min(550px, 100%);
    min-width: 0;
    max-height: calc(100dvh - 24px - env(safe-area-inset-top) - env(safe-area-inset-bottom));
    padding: 18px 16px;
    overflow: auto;
  }
  body.rose-songbook .sb-modal-head { align-items: flex-start; gap: 10px; }
  body.rose-songbook .sb-modal-head > div { min-width: 0; flex: 1; }
  body.rose-songbook .sb-modal-head h2 {
    margin-block: 8px 0;
    font-size: clamp(20px, 6vw, 24px);
    line-height: 1.45;
    word-break: keep-all;
    overflow-wrap: normal;
    text-wrap: balance;
  }
  body.rose-songbook .sb-modal .label { font-size: 10px; line-height: 1.5; letter-spacing: .04em; }
  body.rose-songbook .sb-close { width: 36px; height: 36px; flex: 0 0 36px; font-size: 23px; }
  body.rose-songbook .sb-random-result { grid-template-columns: 64px minmax(0, 1fr); gap: 12px; align-items: start; margin-block: 22px; }
  body.rose-songbook .sb-random-cover { width: 64px; height: 64px; }
  body.rose-songbook .sb-random-result > div { min-width: 0; }
  body.rose-songbook .sb-random-result h3 { font-size: 19px; line-height: 1.5; }
  body.rose-songbook .sb-random-result p { font-size: 14px; line-height: 1.65; margin-block: 7px; }
  body.rose-songbook .sb-random-chips { display: flex; flex-wrap: wrap; gap: 5px 8px; }
  body.rose-songbook .sb-random-chips span { font-size: 12px; margin: 0; white-space: nowrap; }
  body.rose-songbook .sb-modal-actions { flex-wrap: wrap; gap: 8px; margin-top: 20px; }
  body.rose-songbook .sb-modal-actions > button {
    flex: 1 1 auto;
    width: auto;
    min-width: max-content;
    min-height: 44px;
    padding: 10px 12px;
    font-size: 13px;
    line-height: 1.4;
    white-space: nowrap;
  }
  body.rose-songbook .sb-modal .field { font-size: 15px; line-height: 1.6; margin-top: 16px; }
  body.rose-songbook .sb-modal .field :is(input, textarea) { font-size: 16px; }
  body.rose-songbook .sb-new-song-card { overflow: auto; }
  body.rose-songbook .sb-new-song-card::before { right: 10px; font-size: 64px; }
  body.rose-songbook .sb-new-song-card .sb-modal-head h2 { font-size: clamp(20px, 6vw, 24px); }
  body.rose-songbook .sb-new-song-card .label { font-size: 10px; }
  body.rose-songbook .sb-new-song-item { grid-template-columns: 44px minmax(0, 1fr) 16px; gap: 10px; }
  body.rose-songbook .sb-new-song-cover { width: 44px; height: 44px; }
  body.rose-songbook .sb-new-song-copy b { font-size: 16px; line-height: 1.5; }
  body.rose-songbook .sb-new-song-copy small { font-size: 13px; line-height: 1.6; }
  body.rose-songbook :is(.sb-new-song-summary, .kokoro-setlist) { font-size: 14px; line-height: 1.65; }
  body.rose-songbook .kokoro-setlist li { min-width: 0; grid-template-columns: 28px minmax(0, 1fr); gap: 3px 10px; }
  body.rose-songbook .kokoro-setlist li::before { grid-column: 1; grid-row: 1 / 3; }
  body.rose-songbook .kokoro-setlist b { grid-column: 2; grid-row: 1; }
  body.rose-songbook .kokoro-setlist span { grid-column: 2; grid-row: 2; font-size: 13px; }
  body.rose-songbook .sb-toast { font-size: 14px; line-height: 1.6; }
}
