/* Mobile performance and layout guardrails. Loaded after the main design system. */
*, *::before, *::after { min-width: 0; }
img, svg, video, canvas { max-width: 100%; }
button, input, select, textarea { max-width: 100%; }

@media (max-width: 900px) {
  .desktop-nav { gap: 18px; }
  .site-header { padding-inline: clamp(18px, 5vw, 40px); }
  .detail-hero-copy { width: min(100%, calc(100vw - 40px)); }
  .sponsor-intro, .sponsor-grid, .brief-grid, .requirements-grid, .registration-inner { grid-template-columns: 1fr; }
  .sponsor-grid { gap: 1px; }
  .registration-heading { position: static; }
}

@media (max-width: 760px) {
  html { overflow-x: clip; }
  body { min-width: 0; }
  .site-header { padding: 16px max(16px, 5vw); }
  .brand img { width: 30px; height: 30px; }
  .hero { height: 100svh; min-height: 620px; }
  .hero-content { width: calc(100% - 32px); margin-bottom: 8vh; }
  h1 { font-size: clamp(58px, 17vw, 112px); }
  .hero-bottom { align-items: flex-end; gap: 18px; }
  .hero-intro { width: min(58vw, 240px); font-size: 12px; }
  .hero-coordinates { bottom: 18px; }
  .section-pad { padding-left: 16px; padding-right: 16px; }
  .section-top { gap: 8px; margin-bottom: 18vw; }
  .machine-head > p, .newsletter > p { max-width: 100%; }
  .machine-visual { width: 100%; min-height: 260px; }
  .detail-hero { min-height: 62svh; }
  .detail-hero h1, .recruitment-grid h2, .registration-heading h2 { font-size: clamp(54px, 17vw, 105px); }
  .detail-section { padding-left: 16px; padding-right: 16px; }
  .form-grid, .payment-methods { grid-template-columns: 1fr; }
  .registration-section { padding: 64px 16px 18vw; }
  .registration-form { padding: 18px; }
  .requirements-grid article { min-height: 0; padding: 22px; }
  .mobile-menu { padding: 112px 20px 28px; }
  .mobile-menu a, .mobile-nav-group { font-size: clamp(42px, 13vw, 82px); }
  .mobile-nav-sub a, .mobile-nav-sub .nav-dropdown-disabled { font-size: 11px; }
  .site-footer { padding-inline: 16px; }
  .footer-logo-rail { max-width: 100%; }
  .roster-filters, .team-filters { overflow-x: auto; max-width: 100%; padding-bottom: 6px; scrollbar-width: thin; }
  .roster-filter, .team-filter { flex: 0 0 auto; }
  .member-modal { padding: 12px; }
  .member-modal-card, .member-cropper-card { width: min(100%, calc(100vw - 24px)); max-height: calc(100svh - 24px); overflow-y: auto; }
}

@media (max-width: 480px) {
  .hero { min-height: 580px; }
  .hero-bottom { display: block; }
  .hero-intro { width: min(78vw, 280px); margin-bottom: 20px; }
  .circle-link { width: 52px; height: 52px; }
  .stat-grid { grid-template-columns: 1fr 1fr; }
  .stat:last-child { grid-column: 1 / -1; }
  .payment-option { padding: 10px; }
  .registration-form input, .registration-form select, .registration-form textarea { font-size: 16px; }
  .cookie-card { width: calc(100vw - 24px); padding: 18px; }
}
