/* Mobile layout only. Keep the existing shared and desktop styles intact.
   The HTML media attribute and this query both exclude widths above 760px. */
@media (max-width: 760px) {
  :root { --header-h: 60px; --gutter: 16px; --section-space: 24px; }
  body { font-size: 16px; line-height: 1.55; }
  html[lang="en"] body { font-size: 14px; line-height: 1.6; }
  .container, .hero-copy, .section-head, .team-panel { min-width: 0; }
  h1, h2, h3, h4 { text-wrap: balance; }
  p, li { text-wrap: pretty; }
  .site-header, .site-header.is-scrolled { height: var(--header-h); column-gap: 8px; }
  .brand-link { width: 144px; }
  .header-actions { gap: 4px; }
  .language-switch { gap: 0; }
  .language-switch button { min-width: 44px; min-height: 44px; padding: 8px; font-size: 10px; }
  .menu-button { width: 44px; height: 44px; }
  .mobile-menu { padding: calc(var(--header-h) + 16px) var(--gutter) 20px; }
  .mobile-menu nav a { min-height: 52px; padding: 10px 0; font-size: clamp(19px, 5.3vw, 24px); }
  .mobile-menu-foot { margin-top: 20px; gap: 12px; font-size: 8px; }
  .eyebrow { max-width: 100%; margin-bottom: 10px; gap: 8px; font-size: 10px; }
  .eyebrow::before { width: 20px; flex: none; }
  .section-head, .section-head.compact { margin-bottom: 18px; }
  .section-head p { margin-top: 12px; font-size: 16px; line-height: 1.55; }
  html[lang="en"] .section-head p { font-size: 14px; line-height: 1.65; }
  .section-title, .display { font-size: clamp(27px, 7.5vw, 34px); line-height: 1.15; overflow-wrap: break-word; }
  .button { min-height: 44px; padding: 10px 14px; gap: 10px; font-size: 11px; line-height: 1.5; }
  .text-link { min-height: 44px; align-items: center; font-size: 11px; }

  /* Home: retain the gate, wordmark, copy and all three destinations. */
  .hero, .hero-inner { min-height: 0; }
  .hero-inner { padding-top: 230px; padding-bottom: 76px; align-items: start; }
  .hero-visual { height: 310px; }
  .hero-brand-name { width: 220px; margin-bottom: 10px; }
  .hero-title { font-size: clamp(42px, 11.5vw, 49px); line-height: 1.04; }
  .hero-subtitle { margin-top: 16px; font-size: 16px; line-height: 1.55; }
  html[lang="en"] .hero-subtitle { font-size: 13px; line-height: 1.65; }
  .button-row { grid-template-columns: repeat(3, minmax(0, 1fr)); margin-top: 18px; gap: 8px; }
  .hero .button { padding-inline: 6px; font-size: 10px; }
  .hero-index { inset: auto var(--gutter) 20px; gap: 10px; }
  .hero-index strong { font-size: 9px; line-height: 1.5; }
  .hero-index div:last-child { max-width: 46%; }
  .home-recruitment { padding-block: 14px; }
  .home-recruitment .container { gap: 10px 12px; }
  .home-recruitment strong { font-size: 15px; }
  html[lang="en"] .home-recruitment strong { font-size: 12px; }
  .home-recruitment time, .home-recruitment-link { font-size: 11px; }
  .partner-band .container { grid-template-columns: 1fr; }
  .partner-band-label { padding: 12px 0 0; font-size: 9px; }
  .partner-logo { width: 140px; flex-basis: 140px; min-height: 70px; padding: 16px 14px; }
  .partner-logo img, .partner-logo.yongsan img { width: 112px; max-width: 112px; height: 30px; max-height: 30px; }
  .home-vehicle-copy { min-height: 0; padding: 22px 18px; }
  .home-vehicle-copy h2 { font-size: clamp(24px, 6.6vw, 29px); line-height: 1.25; overflow-wrap: normal; }
  .home-vehicle-copy .to-be-continued { margin-top: 16px; font-size: 11px; }
  .home-vehicle-media { min-height: 0; aspect-ratio: 16 / 9; }
  .home-vehicle-media > span { inset: auto 16px 14px; font-size: 8px; }

  /* Compact page introductions; preserve deliberate breaks in the markup. */
  .page-hero, .recruiting-hero { min-height: 0; padding: calc(var(--header-h) + 22px) 0 24px; }
  .page-hero-title, html[lang="en"] .page-hero-title,
  body[data-page="about"] .page-hero-title,
  body[data-page="team"] .page-hero-title,
  .partners-hero-title, html[lang="en"] .partners-hero-title {
    font-size: clamp(25px, 7vw, 31px); line-height: 1.18; overflow-wrap: normal;
  }
  html[lang="en"] .partners-hero-title { font-size: clamp(22px, 6.1vw, 27px); }
  .page-hero-bottom { margin-top: 18px; }
  .page-hero-bottom p { font-size: 16px; line-height: 1.55; }
  html[lang="en"] .page-hero-bottom p { font-size: 13px; line-height: 1.65; }
  .news-hero { min-height: 0; }

  /* About and the shared affiliation information. */
  .about-affiliation { padding-block: 22px; }
  .about-affiliation-grid { gap: 16px; }
  .about-affiliation p, .project-context p { font-size: 17px; line-height: 1.55; }
  html[lang="en"] .about-affiliation p, html[lang="en"] .project-context p { font-size: 14px; line-height: 1.65; }
  .about-affiliation-copy p + p, .project-context p + p { margin-top: 12px; }
  .about-affiliation p.affiliation-note, .project-context p.affiliation-note { font-size: 13px; line-height: 1.6; }
  html[lang="en"] .about-affiliation p.affiliation-note, html[lang="en"] .project-context p.affiliation-note { font-size: 11px; line-height: 1.7; }
  .about-affiliation-logo { justify-content: flex-start; }
  .about-affiliation-logo img { width: 180px; }
  .competition-visual { min-height: 0; aspect-ratio: 4 / 3; }
  .competition-visual-copy { top: 20px; left: 18px; right: 18px; }
  .competition-visual-copy strong { margin-top: 14px; font-size: 48px; line-height: .95; }
  .competition-visual-copy small { margin-top: 14px; font-size: 9px; }
  .competition-visual figcaption { left: 18px; bottom: 16px; font-size: 8px; }
  .competition-track { right: 18px; bottom: 46px; width: 42%; }
  .competition-family { border-left: 0; }
  .competition-intro, .competition-target, .competition-gate { min-height: 0; padding: 20px 18px; }
  .competition-intro h3, .competition-showcase .competition-target strong { margin-top: 14px; font-size: 23px; line-height: 1.25; }
  .competition-intro p, .competition-target p { margin-top: 12px; font-size: 16px; line-height: 1.55; }
  html[lang="en"] .competition-intro p, html[lang="en"] .competition-target p { font-size: 13px; line-height: 1.65; }
  .competition-gate h3 { margin-top: 12px; font-size: 18px; line-height: 1.4; }
  .competition-gate p { margin-top: 10px; font-size: 15px; line-height: 1.55; }
  html[lang="en"] .competition-gate p { font-size: 12px; line-height: 1.65; }
  .source-note { margin-top: 16px; font-size: 9px; line-height: 1.65; }

  /* Members: a two-by-two tab bar and compact portrait rows. */
  .team-switch { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .team-tab { min-height: 48px; padding: 12px 10px; gap: 6px; align-items: center; }
  .team-tab + .team-tab { border-top: 0; }
  .team-tab:nth-child(even) { border-left: 1px solid var(--line); }
  .team-tab:nth-child(n+3) { border-top: 1px solid var(--line); }
  .team-tab-index { font-size: 9px; }
  .team-tab-name { font-size: 10px; line-height: 1.5; }
  .team-panels { margin-top: 18px; }
  .roster-grid { gap: 12px; }
  .roster-card { align-items: stretch; min-width: 0; }
  .roster-photo { width: 96px; aspect-ratio: 3 / 4; }
  .roster-card-body { min-width: 0; padding: 12px; }
  .roster-name { margin-top: 8px; font-size: 21px; line-height: 1.3; }
  html[lang="en"] .roster-name { font-size: 13px; line-height: 1.5; overflow-wrap: normal; }
  .roster-role { font-size: 9px; }
  .roster-major { margin-top: 10px; padding-top: 10px; gap: 5px; font-size: 13px; }
  html[lang="en"] .roster-major { font-size: 11px; line-height: 1.65; }
  .roster-major li, .roster-detail-edu li, .roster-detail-activity li { padding-left: 12px; }
  .roster-detail-close { min-height: 44px; margin-bottom: 16px; }
  .roster-detail-layout { gap: 20px; }
  .roster-detail-block h4 { margin-bottom: 12px; font-size: 17px; }
  .roster-detail-edu, .roster-detail-activity { font-size: 15px; line-height: 1.6; }
  html[lang="en"] .roster-detail-edu, html[lang="en"] .roster-detail-activity { font-size: 12px; line-height: 1.7; }
  .roster-detail-activity li + li { margin-top: 10px; }
  .advisor-grid { gap: 14px; }
  .advisor-card { padding: 16px; }
  .advisor-role { font-size: 10px; }
  .advisor-card h3 { margin: 10px 0 12px; font-size: 25px; line-height: 1.35; }
  html[lang="en"] .advisor-card h3 { font-size: 18px; }
  .advisor-card li { padding: 9px 0; font-size: 17px; line-height: 1.55; overflow-wrap: break-word; }
  html[lang="en"] .advisor-card li { font-size: 13px; line-height: 1.65; }

  /* Partners: aligned institution lockups and two sponsor cards per row. */
  .project-context-grid { gap: 18px; }
  .project-affiliations { gap: 12px; }
  .affiliation-card { grid-template-columns: 112px minmax(0, 1fr); padding: 12px; gap: 12px; }
  .affiliation-logo, .affiliation-logo img { height: 74px; }
  .affiliation-copy { gap: 7px; }
  .affiliation-card strong { font-size: 15px; line-height: 1.45; overflow-wrap: normal; }
  html[lang="en"] .affiliation-card strong,
  .affiliation-card strong:not(:has(.korean-copy)) { font-size: 11px; line-height: 1.6; }
  .affiliation-english { font-size: 9px; line-height: 1.65; overflow-wrap: break-word; }
  .affiliation-link { font-size: 9px; }
  .partner-tier + .partner-tier { margin-top: 24px; }
  .partner-tier-label { margin-bottom: 12px; font-size: 17px; line-height: 1.4; }
  .partner-matrix.tier-official, .partner-matrix.tier-placeholder { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .partner-card, .tier-principal .partner-card { min-height: 0; padding: 14px; gap: 14px; }
  .partner-card .logo-box { min-height: 58px; }
  .partner-card .logo-box img { width: 100%; height: 44px; }
  .tier-principal .partner-card .logo-box { min-height: 72px; }
  .tier-principal .partner-card .logo-box img { width: min(78%, 300px); height: 64px; }
  .partner-meta { min-height: 0; grid-template-rows: auto auto; gap: 8px; padding-top: 12px; }
  .partner-meta strong { font-size: 11px; line-height: 1.5; overflow-wrap: normal; }
  .partner-meta span { font-size: 9px; }
  .partner-slot { min-height: 64px; }
  .partner-contact-grid { gap: 16px; }
  .partner-contact h2 { margin-top: 4px; font-size: 27px; line-height: 1.25; }
  .partner-contact-links { gap: 8px; }
  .partner-contact-links a { padding-block: 14px; gap: 6px 10px; }
  .partner-contact-links a > span:first-child { font-size: 10px; }
  .partner-contact-links strong { font-size: 13px; line-height: 1.6; }

  /* News: keep the full Ferrari photo, both people and existing credits. */
  .news-grid, .home-news-grid { gap: 18px; }
  .news-section-head { margin-bottom: 14px; }
  .news-card-body { padding: 16px; gap: 10px; }
  .news-meta { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: start; gap: 12px; }
  .news-meta, .news-card-bottom { font-size: 10px; line-height: 1.6; }
  .news-card h3 { font-size: 22px; line-height: 1.4; overflow-wrap: normal; }
  html[lang="en"] .news-card h3 { font-size: 17px; line-height: 1.55; }
  .news-card-bottom { padding-top: 10px; margin-top: 2px; gap: 8px; }
  .news-photo-credit { font-size: 11px; line-height: 1.55; }
  html[lang="en"] .news-photo-credit { font-size: 9px; line-height: 1.7; }

  /* Vehicle: fit the existing reveal image below a shorter introduction. */
  .vehicle-reveal, .vehicle-reveal-copy { min-height: 480px; }
  .vehicle-reveal-copy { padding-top: calc(var(--header-h) + 28px); padding-bottom: 24px; }
  .vehicle-reveal-copy h1 { font-size: clamp(26px, 7.4vw, 32px); line-height: 1.22; overflow-wrap: normal; }
  .vehicle-reveal-copy p { margin-top: 16px; font-size: 11px; }
  .vehicle-reveal img { bottom: 28px; }

  /* Recruiting: full copy in tighter single-column cards and skill chips. */
  .recruiting-page .section { padding-block: 20px; }
  .recruiting-hero .page-hero-title { font-size: clamp(30px, 8.3vw, 36px); line-height: 1.12; }
  .recruiting-hero-bottom { margin-top: 16px; }
  .recruiting-hero-meta { margin-top: 16px; padding-top: 12px; gap: 8px 14px; font-size: 9px; line-height: 1.6; }
  .recruiting-intro-grid { gap: 14px; }
  .recruiting-commitment h2 { margin-top: 4px; font-size: clamp(23px, 6.4vw, 28px); line-height: 1.2; }
  .recruiting-intro-copy p { font-size: 16px; line-height: 1.55; }
  html[lang="en"] .recruiting-intro-copy p { font-size: 13px; line-height: 1.65; }
  .recruiting-note { margin-top: 12px; padding: 10px 12px; font-size: 14px; line-height: 1.55; }
  html[lang="en"] .recruiting-note { font-size: 11px; line-height: 1.65; }
  .recruiting-section-heading { margin: 4px 0 14px; gap: 8px; }
  .recruiting-section-heading h2 { font-size: 25px; line-height: 1.3; }
  html[lang="en"] .recruiting-section-heading h2 { font-size: 22px; }
  .recruiting-section-heading > .recruiting-points { font-size: 16px; }
  .recruiting-member-grid { gap: 12px; }
  .recruiting-member-grid article { padding: 16px; gap: 7px; }
  .recruiting-member-grid h3 { font-size: 23px; line-height: 1.4; overflow-wrap: normal; }
  html[lang="en"] .recruiting-member-grid h3 { font-size: 17px; line-height: 1.5; }
  .recruiting-member-grid .recruiting-kicker { font-size: 10px; line-height: 1.5; }
  .recruiting-member-grid .recruiting-points { margin-top: 3px; }
  .recruiting-team-nav { grid-template-columns: repeat(3, minmax(0, 1fr)); margin-bottom: 18px; }
  .recruiting-team-nav a { min-height: 48px; padding: 10px 2px; justify-content: center; gap: 3px; font-size: 9px; }
  .recruiting-team-nav a + a { border-top: 0; border-left: 1px solid var(--line); }
  .recruiting-team-nav a > span:last-child { margin-left: 0; }
  .recruiting-team + .recruiting-team { margin-top: 24px; }
  .recruiting-team-heading { margin-bottom: 14px; }
  .recruiting-team-heading .recruiting-kicker { font-size: 10px; }
  .recruiting-team-heading h3 { margin-top: 6px; font-size: clamp(22px, 6vw, 26px); line-height: 1.35; }
  .recruiting-team-count { font-size: 11px; }
  .recruiting-tools { margin-top: 10px; gap: 6px; }
  .recruiting-tools > span { padding: 5px 8px; font-size: 10px; line-height: 1.5; }
  .recruiting-role-list { gap: 12px; }
  .recruiting-role { grid-template-columns: 24px minmax(0, 1fr); padding: 16px 14px; column-gap: 8px; }
  .recruiting-role-number { padding-top: 3px; font-size: 11px; line-height: 1.6; }
  .recruiting-role h4 { margin-bottom: 10px; font-size: 16px; line-height: 1.5; overflow-wrap: normal; }
  .recruiting-points { padding-left: 18px; font-size: 16px; line-height: 1.55; }
  .recruiting-points li { overflow-wrap: break-word; }
  .recruiting-points li + li { margin-top: 5px; }
  html[lang="en"] .recruiting-points, html[lang="en"] .recruiting-section-heading > .recruiting-points { font-size: 12px; line-height: 1.7; }
  .recruiting-contact .join-status-card { padding: 18px; gap: 18px; }
  .recruiting-contact .join-status-card h2 { margin: 10px 0 16px; font-size: 26px; line-height: 1.35; }
  html[lang="en"] .recruiting-contact .join-status-card h2 { font-size: 20px; }
  .recruiting-contact .recruiting-status { margin: 0 0 12px; padding: 10px 12px; gap: 10px; font-size: 23px; }
  html[lang="en"] .recruiting-contact .recruiting-status { font-size: 16px; }
  .recruiting-contact p { font-size: 16px; line-height: 1.6; }
  html[lang="en"] .recruiting-contact p { font-size: 12px; line-height: 1.7; }
  .recruiting-notice { margin-top: 14px; padding: 14px; gap: 8px; }
  .recruiting-notice strong { font-size: 18px; line-height: 1.4; }
  html[lang="en"] .recruiting-notice strong { font-size: 14px; line-height: 1.6; }
  .recruiting-notice > span { font-size: 11px; line-height: 1.6; }
  .recruiting-contact .join-contact { margin-top: 16px; }
  .recruiting-contact .join-contact a { min-height: 44px; padding-block: 12px; gap: 6px; }
  .recruiting-contact .join-contact-label { font-size: 10px; }
  .recruiting-contact .join-contact-value { font-size: 12px; line-height: 1.7; }

  /* Shared closing navigation, with comfortable touch targets. */
  .page-jump { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .page-jump a { min-height: 56px; padding: 14px 16px; gap: 8px; font-size: 10px; }
  .page-jump a + a { border-top: 0; border-left: 1px solid rgba(255, 255, 255, .14); }
  .site-footer { padding: 26px var(--gutter) 20px; }
  .footer-top { gap: 14px; padding-bottom: 20px; }
  .footer-logo { width: 176px; }
  .footer-top p { font-size: 16px; line-height: 1.55; }
  html[lang="en"] .footer-top p { font-size: 13px; line-height: 1.65; }
  .footer-links { padding: 20px 0; gap: 18px; }
  .footer-label { font-size: 10px; margin-bottom: 0; }
  .footer-links > div { gap: 0 12px; }
  .footer-links > div:first-child { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .footer-links > div:last-child { grid-template-columns: auto 1fr; gap: 12px; align-items: center; }
  .footer-links > div:last-child .footer-label { grid-column: auto; }
  .footer-links a { display: flex; min-height: 44px; align-items: center; font-size: 12px; }
  .footer-bottom { align-items: center; padding-top: 12px; gap: 8px 12px; font-size: 8px; }
  .footer-bottom a { display: inline-flex; min-height: 44px; align-items: center; }
}
