/* Shared mobile layout. Keep this after page-specific stylesheets. */
img{max-width:100%}a,button,summary{-webkit-tap-highlight-color:rgba(35,71,238,.15);touch-action:manipulation}
@media(max-width:600px){
 body{letter-spacing:-.035em;overflow-wrap:break-word}
 header{height:auto;min-height:76px;padding:12px 18px;gap:12px;flex-wrap:wrap}
 .brand{font-size:17px}.brand small{font-size:11px}
 .nav-apply{min-height:44px;display:inline-flex;align-items:center;font-size:13px;flex-shrink:0}
 .hero,.ping-hero{padding-left:20px;padding-right:20px}
 .hero{padding-top:24px;padding-bottom:40px;gap:24px}
 .hero h1,.ping-hero h1{font-size:clamp(42px,12vw,64px);line-height:1.18;letter-spacing:-.065em}
 .star{font-size:38px;margin-left:8px}
 .hero .eyebrow,.ping-hero .eyebrow{font-size:10px;line-height:1.7;letter-spacing:.09em}
 .lead{font-size:16px;line-height:1.85}
 .actions{gap:12px;flex-wrap:wrap;margin:24px 0}
 .button{min-height:48px;display:inline-flex;justify-content:center;align-items:center;padding:13px 18px;font-size:14px;text-align:center}
 .text-link,.back{min-height:44px;display:inline-flex;align-items:center;font-size:14px}
 .hero-facts{gap:8px;font-size:12px;line-height:1.8}.hero-facts span+span:before{margin-right:8px}
 .hero-art{padding:0 10px}.court{min-height:300px;transform:none;border-radius:90px 90px 14px 14px}
 .paddle{font-size:105px;left:20px;top:30px}.bowling{font-size:90px;right:18px;bottom:50px}
 .sticker{top:110px;font-size:14px;padding:14px}.art-title{font-size:22px;bottom:60px;left:20px}
 .art-bottom{font-size:10px;left:20px;letter-spacing:.06em}
 .section{padding:48px 20px}.section-head{margin-bottom:24px}h2{font-size:clamp(27px,7.5vw,34px)}
 .section-head>p,.muted{font-size:15px;line-height:1.8}
 .home-sports-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
 .home-sports-grid .square-sport{aspect-ratio:1;min-width:0;min-height:0;padding:14px;position:relative;justify-content:space-between}
 .square-sport .sport-top{font-size:10px;line-height:1.4}
 .square-sport .sport-top span:last-child{display:none}
 .square-sport .sport-emoji{font-size:36px;line-height:1.2;margin:4px 0;text-align:right}
 .square-sport h3{font-size:24px;line-height:1.3;margin:0}
 .square-sport .sport-quote,.square-sport .sport-description{display:none}
 a.square-sport h3:after{content:' ↗';font-size:17px}
 .filters{gap:8px;margin:24px 0}.filters button{min-height:44px;padding:10px 15px;font-size:14px}
 .album{gap:20px 12px}.photo-visual{height:auto;aspect-ratio:1}
 .photo-meta>span{font-size:12px}.photo-meta h3{font-size:16px;line-height:1.5}.photo-meta p{font-size:14px}
 .album-note{font-size:13px;line-height:1.8}.photo-placeholder{font-size:12px}
 .steps article{gap:16px}.steps p,.event-grid p,.info-grid p,.welcome p,.welcome li,details p{font-size:15px;line-height:1.85}
 .event-grid{grid-template-columns:1fr;gap:20px;margin-top:28px}.event-grid h3{font-size:21px}
 .welcome{padding:24px}.welcome ul{margin-top:12px}
 summary{font-size:16px;line-height:1.6;min-height:44px;align-items:center}details{padding:14px 0}
 .apply{padding:48px 20px}.apply h2{font-size:clamp(31px,9vw,43px)}
 .apply-status{font-size:14px;padding:16px 18px;line-height:1.6}.apply .small{font-size:13px!important}
 footer{padding:24px 20px;gap:12px}footer span{font-size:12px}footer a{min-height:44px;display:inline-flex;align-items:center}
 .ping-hero-grid{min-width:0}.ping-art{transform:none;min-height:320px}
 .play-modes,.ping-album{grid-template-columns:1fr}.mode{padding:24px}.mode h3{font-size:27px}
 .mode-index{font-size:11px;line-height:1.7}.mode p{font-size:16px;line-height:1.85}.mode-note{font-size:13px;line-height:1.8}
 .ping-album .photo-visual{height:auto;aspect-ratio:4/3}
 .rally-feature{padding:48px 20px;gap:24px}.rally-feature h2{font-size:28px}
 .rally-feature p:not(.eyebrow){font-size:15px}.rally-visual{gap:14px}.rally-visual span{width:80px;height:80px}
}
@media(max-width:350px){.home-sports-grid .square-sport{padding:12px}.square-sport h3{font-size:21px}.square-sport .sport-emoji{font-size:30px}.hero-facts{font-size:11px}}
@media(hover:none){.sport:hover{transform:none}}

/* Preserve activity photos without cropping on every screen size. */
.photo-visual.has-photo,.ping-album .photo-visual.has-photo{height:auto;aspect-ratio:auto;display:block}
.photo-visual.has-photo:before{display:none}
.photo-visual.has-photo img{display:block;position:static;width:100%;height:auto;object-fit:contain}
@media(min-width:751px){.ping-album{grid-template-columns:repeat(2,minmax(0,1fr))}}

.photo-links{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.photo-category{display:flex;flex-direction:column;gap:16px;padding:24px;background:white;border:1px solid #dfe2e8;border-radius:8px;min-width:0}.photo-category strong{font-size:22px}.photo-category span{font-size:14px;color:var(--muted)}.photo-category:hover{border-color:var(--blue)}@media(max-width:600px){.photo-links{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.photo-category{padding:18px 14px;gap:12px}.photo-category strong{font-size:18px}.photo-category span{font-size:13px}}

.photo-links{grid-template-columns:repeat(2,minmax(0,1fr))}

/* Recruitment poster: full image, no crop. */
.hero{align-items:center}.hero-poster{display:block;max-width:440px;width:100%;justify-self:center;min-width:0}.hero-poster img{display:block;width:100%;height:auto;border-radius:10px;box-shadow:0 12px 32px #151b2b18}.hero-poster span{display:block;text-align:right;font-size:13px;padding:12px 0;min-height:44px}.hero h1{font-size:clamp(36px,4.8vw,65px)}
@media(max-width:600px){.hero h1{font-size:clamp(32px,8.5vw,48px)}.hero-poster{max-width:400px}.hero{gap:20px}}
