/* Mobile reading sizes: body 16px, supporting information 14–15px. */
@media (max-width: 600px) {
  body { font-size: 16px; line-height: 1.85; }

  .hero-desc,
  .intro-copy > p:nth-child(2),
  .rule-list p,
  .entry-guide p,
  .day-summary p,
  .participate-intro,
  .story-copy > p:not(.eyebrow),
  .visit p:not(.eyebrow),
  .faqs details p,
  .modal-body,
  .modal-body p,
  .modal-body li,
  .checklist label {
    font-size: 16px;
    line-height: 1.85;
  }

  .hero-kicker { font-size: 16px; }
  .hero .eyebrow { font-size: 10px; letter-spacing: 1px; }
  .hero-actions { flex-wrap: wrap; gap: 14px 20px; }
  .hero-actions .button, .hero-actions .text-link { font-size: 14px; }
  .image-note { font-size: 11px; left: 20px; right: 20px; text-align: right; }

  .strip-grid strong { font-size: 16px; line-height: 1.55; }
  .strip-grid small { font-size: 14px; line-height: 1.7; color: #5c6b56; }
  .strip-label { font-size: 10px; }
  .intro-numbers span { font-size: 14px; line-height: 1.6; display: block; padding: 0 8px; }
  .intro-numbers strong small { font-size: 16px; }
  .section-aside { font-size: 16px; line-height: 1.85; }
  .rule-list h3, .entry-guide h3 { font-size: 19px; line-height: 1.5; }
  .relay-people strong { font-size: 18px; }
  .board-top { font-size: 12px; letter-spacing: .1px; gap: 8px; }
  .relay-return { font-size: 15px; line-height: 1.8; }
  .board-note { font-size: 16px; line-height: 1.85; }
  .rule-foot p { font-size: 14px; line-height: 1.85; }
  .text-link, .rule-foot .text-link { font-size: 15px; }

  .course-heading p:not(.eyebrow) { font-size: 16px; line-height: 1.85; }
  .course-sheet figcaption { font-size: 14px; line-height: 1.85; }
  .course-sheet figcaption strong { font-size: 13px; }
  .course-key { gap: 12px 8px; }
  .course-key > span { font-size: 14px; }
  .course-key b { font-size: 12px; width: 24px; height: 24px; }

  .stage-flow > div > span { font-size: 13px; }
  .stage-flow strong small { font-size: 14px; }
  .schedule-tabs button span { font-size: 11px; letter-spacing: .4px; }
  .schedule-tabs small { font-size: 14px; line-height: 1.5; }
  .pill { font-size: 13px; padding: 6px 10px; }
  .timeline > div { display: block; padding-bottom: 23px; }
  .timeline time { display: block; font-size: 14px; line-height: 1.6; margin-bottom: 5px; white-space: normal; }
  .timeline p { font-size: 16px; line-height: 1.75; }
  .timeline p span { font-size: 14px; line-height: 1.75; color: #607054; }
  .small-note { font-size: 14px; line-height: 1.85; }

  .center-heading > p:last-child { font-size: 15px; line-height: 1.85; }
  .award h3, .first h3 { font-size: 18px; line-height: 1.5; }
  .award > p:not(.prize), .first > p:not(.prize) { font-size: 14px; }
  .award-extra, .first .award-extra { font-size: 13px; }
  .bonus-awards h3 { font-size: 17px; line-height: 1.6; }
  .bonus-awards h3 strong { white-space: nowrap; }
  .bonus-awards p { font-size: 14px; line-height: 1.8; }
  .award-note { font-size: 14px; line-height: 1.85; color: #c4d0bd; }
  .finisher { padding-bottom: 65px; }
  .finisher p { font-size: 14px; line-height: 1.7; }
  .finisher h3 { font-size: 20px; line-height: 1.5; }
  .finisher div > span { font-size: 14px; line-height: 1.8; }
  .finisher-mark span { font-size: 8px !important; }
  .round-link { bottom: 18px; width: 38px; height: 38px; }

  .entry-guide article > span { font-size: 22px; }
  .entry-status strong { font-size: 16px; }
  .entry-status p { font-size: 15px; line-height: 1.85; color: #5e6b55; }
  .entry-guide .button { font-size: 16px; }
  .night-copy > p:not(.eyebrow) { font-size: 15px; line-height: 1.85; }
  .night-date { font-size: 15px; }
  .night-date span { font-size: 15px; }
  .night-link { font-size: 14px; }
  .night-caption { position: relative; display: block; inset: auto; margin-top: 24px; font-size: 12px; line-height: 1.7; }
  .night-banner { padding-bottom: 27px; }
  .visit p.small-note { font-size: 14px; line-height: 1.85; }
  .map-links .button, .map-links .text-link { font-size: 14px; }
  .visit-check li b { font-size: 17px; }
  .visit-check li span { font-size: 15px; line-height: 1.8; }
  .venue-figure figcaption span { font-size: 15px; line-height: 1.85; }
  .venue-figure figcaption small { font-size: 13px; }
  .story-copy .text-link { font-size: 14px; }
  .photo-story figcaption { font-size: 11px; }

  .faqs summary { font-size: 16px; line-height: 1.75; }
  .closing .button { font-size: 15px; }
  .footer-top p { font-size: 13px; }
  .footer-top p span { font-size: 12px; }
  .footer-top .text-link { font-size: 13px; }
  .partners > div > span { font-size: 13px; flex-basis: 60px; }
  .partners strong, .partners p { font-size: 14px; line-height: 1.8; }
  .footer-bottom p { font-size: 11px; }
  .footer-bottom button { font-size: 13px; }
  .footer-notice { font-size: 12px; line-height: 1.85; }
  .mobile-bottom span { font-size: 13px; }
  .mobile-bottom a { font-size: 14px; }
  .header-cta { font-size: 12px; }

  .notice { font-size: 14px; line-height: 1.85; }
  .modal-body h3 { font-size: 19px; line-height: 1.5; }
  .modal-footer .button { font-size: 14px; }
  .slot-label { font-size: 15px; }
  .modal select { font-size: 16px; }
  .slot-result span { font-size: 14px; }
  .schedule-details summary { font-size: 15px; }
  .modal table { font-size: 14px; }
  .modal caption { font-size: 13px; line-height: 1.7; white-space: normal; }
  .bracket p { font-size: 16px; }
  .bracket b { font-size: 13px; line-height: 1.8; }
  .bracket strong { font-size: 17px; }
  .checklist + p { font-size: 15px; line-height: 1.8; }
}

@media (max-width: 360px) {
  .relay-people .person-icon { width: 58px; height: 58px; }
  .relay-people { gap: 3px; }
  .stage-flow strong small { display: block; line-height: 1.3; }
  .header { gap: 10px; }
  .brand, .brand img { width: 118px; }
  .schedule-tabs button { padding-left: 8px; padding-right: 8px; }
  .schedule-tabs button span { font-size: 10px; }
  .mobile-bottom { padding-left: 15px; padding-right: 15px; }
  .mobile-bottom span { font-size: 12px; }
  .mobile-bottom a { padding-left: 15px; padding-right: 15px; }
}
