/* Shared responsive ergonomics. Loaded last; desktop layouts stay intact. */
@media (max-width: 900px) {
    body { -webkit-text-size-adjust:100%; text-size-adjust:100%; }
    input, select, textarea { font-size:16px!important; max-width:100%; }
    .section-layout > *, .contact-grid > *, .event-toolbar > * { min-width:0; }
    .contact-info-list a { overflow-wrap:anywhere; }
    .rulebook-dialog { max-width:calc(100% - 16px); max-height:calc(100dvh - 16px); }
    .rulebook-dialog-main { overflow:auto; overscroll-behavior:contain; }
    .rulebook-close-btn { min-width:44px; min-height:44px; }
}
@media (max-width: 768px) {
    .hud-navbar { padding-top:max(12px,env(safe-area-inset-top)); }
    .mobile-menu-btn, .nav-search-btn, .search-clear-btn { min-width:44px; min-height:44px; }
    .nav-links { height:100vh; height:100dvh; overflow-y:auto; overscroll-behavior:contain; padding:90px 24px max(24px,env(safe-area-inset-bottom)); justify-content:flex-start; gap:0; }
    .nav-links .nav-item { min-height:48px; height:auto; padding:13px 10px; font-size:14px; line-height:1.6; white-space:normal; text-align:center; }
    .nav-links .nav-search-btn { margin-top:8px; }
    .btn { min-height:48px; max-width:100%; white-space:normal; line-height:1.5; }
    .btn .btn-text { white-space:normal; overflow-wrap:anywhere; }
    .contact-section { padding-bottom:max(28px,env(safe-area-inset-bottom)); }
    .contact-grid { gap:32px; }
    .event-toolbar { flex-direction:column; align-items:stretch!important; gap:12px!important; }
    .event-toolbar .event-search-wrapper { min-width:0!important; width:100%; }
    .filter-dropdown-wrapper, #filter-dropdown-btn { width:100%; }
    .filter-dropdown-menu { max-width:100%; }
    .filter-option { min-height:44px; }
    .sponsors-page .hero-title { font-size:clamp(2rem,9vw,4rem)!important; overflow-wrap:anywhere; }
    .sponsors-page .sponsors-hero-subtitle { font-size:12px; line-height:1.8; overflow-wrap:anywhere; }
    .sponsor-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px; }
    .sponsor-card { min-width:0; }
    .sponsor-logo-img { max-width:100%; object-fit:contain; }
    .department-page .hero-title { font-size:clamp(2rem,10vw,4rem)!important; }
    .department-page .title-2k26 { font-size:clamp(1rem,5vw,1.6rem); letter-spacing:.12em!important; }
    .department-page .hero-stats { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:20px; }
    .department-page .stat-divider { display:none; }
    .department-page .hero-actions .btn { width:100%; }
    body.event-hackathon .terminal-header { flex-wrap:wrap; gap:10px; padding:14px; }
    body.event-hackathon .terminal-title { font-size:11px; overflow-wrap:anywhere; }
    body.event-hackathon .terminal-body { padding:16px; font-size:13px; overflow-wrap:anywhere; }
    body.event-hackathon .term-input { min-width:0; width:100%; font-size:16px; }
    body.event-hackathon .terminal-input-row { min-width:0; flex-wrap:wrap; }
    body.event-hackathon .doom-hero-actions { flex-direction:column; align-items:stretch; }
    body.event-hackathon .doom-hero-actions > span, body.event-hackathon .doom-hero-actions .btn { width:100%; }
}
@media (max-width:360px) {
    .sponsor-grid { grid-template-columns:minmax(0,1fr); }
    .department-page .hero-subtitle { font-size:1rem; line-height:1.6; }
}
