@media (min-width: 700px) {
  :root { --nav-height: 78px; }
  .header-inner { min-height: 68px; }
  .page-shell { padding-top: 28px; }
  .hero { min-height: 420px; padding: 34px 38px; }
  .hero-title { font-size: 76px; }
  .hero-visual { top: 20%; right: 13%; width: 190px; }
  .hero-details { max-width: 420px; margin-top: 70px; }
  .hero-meta { max-width: 390px; }
  .program-grid { grid-template-columns: 1fr 1fr; }
  .division-grid { gap: 14px; }
  .division-card { min-height: 158px; padding: 18px; }
  .division-card strong { font-size: 17px; }
  .sponsor-grid { grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); gap: 12px; }
  .sponsor-tile { min-height: 124px; padding: 14px; }
  .sponsor-logo { min-height: 55px; font-size: 15px; }
  .sponsor-tile strong { font-size: 14px; }
  .filter-bar { grid-template-columns: 1fr 1.5fr; align-items: end; }
  .athlete-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; }
  .athlete-portrait { min-height: 190px; }
  .schedule-row { grid-template-columns: 112px 1fr; padding: 14px 18px; }
  .schedule-row h3 { font-size: 16px; }
  .detail-visual { min-height: 270px; }
  .detail-actions { grid-template-columns: 1fr 1fr; }
  .detail-athlete-head .athlete-portrait { width: 142px; min-height: 142px; font-size: 46px; }
  .detail-athlete-head h1 { font-size: 30px; }
  .venue-panel { display: grid; grid-template-columns: 1fr 1fr; }
  .survey-grid { grid-template-columns: 1fr 1fr; }
  .venue-map-art { min-height: 260px; }
  .venue-body { align-self: center; padding: 24px; }
  .bottom-nav { padding-top: 7px; }
  .nav-item { min-height: 60px; font-size: 12px; }
}

@media (max-width: 359px) {
  .page-shell { width: min(100% - 22px, 880px); }
  .hero { min-height: 460px; padding: 21px 16px; }
  .hero-visual { right: 5%; width: 118px; }
  .hero-details { margin-top: 96px; }
  .division-grid { gap: 7px; }
  .division-card { min-height: 132px; padding: 11px; }
  .division-card strong { font-size: 14px; }
  .schedule-row { grid-template-columns: 76px 1fr; gap: 7px; padding: 10px; }
  .schedule-row h3 { font-size: 14px; }
}