/* A single animated backdrop across the full viewport on every page. */
html{background:#080809}
body,body.memberships-page{position:relative;isolation:isolate;background:#080809}
body::before,body.memberships-page::before{content:"";position:fixed;inset:-8vmax;z-index:-1;pointer-events:none;background-image:linear-gradient(100deg,rgba(5,5,7,.45),rgba(5,5,7,.65) 52%,rgba(5,5,7,.40)),url("assets/paint-reference.png");background-size:cover;background-position:center;background-repeat:no-repeat;animation:full-page-paint 22s ease-in-out infinite alternate;will-change:transform}
body main,body .hero,body .hero-copy,body .section,body .schedule-section,body .contact,body .community-intro,body .community-gallery,body .happenings,body .manage,body .service-intro,body .service-content{background:transparent}
body .hero-copy::before,body .section::before,body .schedule-section::before,body .contact::before,body .community-intro::before,body .community-gallery::before,body .happenings::before,body .manage::before{content:none!important}
body header,body footer{background:rgba(8,8,9,.83)}
body .membership-category{background-color:rgba(18,17,20,.94)}
body .motion-toggle-global{display:block}
body.motion-paused::before,body.memberships-page.motion-paused::before{animation-play-state:paused}
@keyframes full-page-paint{from{transform:translate3d(-2%,-1.5%,0) scale(1.02)}to{transform:translate3d(2%,1.5%,0) scale(1.08)}}
@media(prefers-reduced-motion:reduce){body::before,body.memberships-page::before{animation:none;will-change:auto}}

/* Keep the motion control out of the floating WordPress contact widgets. */
body .motion-toggle-global{position:static;display:block;width:max-content;max-width:calc(100% - 32px);margin:16px 16px 100px auto;white-space:normal}

/* Phone cards must shrink to the viewport rather than their text width. */
@media(max-width:650px){
 body .training-grid{grid-template-columns:minmax(0,1fr);width:100%;gap:16px}
 body .training-grid article{min-width:0;min-height:0;padding:24px 20px}
 body .training-grid h3{font-size:30px;overflow-wrap:anywhere}
 body .training-grid p{font-size:16px;line-height:1.7;overflow-wrap:anywhere}
 body .training-grid a{max-width:100%;white-space:normal;overflow-wrap:anywhere;margin-top:24px}
}

/* Stack team profiles on phones, keeping portrait proportions intact. */
@media(max-width:650px){
 body .team-grid{grid-template-columns:minmax(0,1fr);width:100%}
 body .team-grid .person{display:flex;flex-direction:column;min-width:0;min-height:0}
 body .team-grid .portrait{width:100%;height:auto;min-width:0}
 body .team-grid .portrait img{display:block;width:100%;height:auto;max-width:100%;object-fit:contain}
 body .team-grid .person-info{min-width:0;padding:24px 20px}
 body .team-grid .person-info h3,body .team-grid .person-info p{overflow-wrap:anywhere}
}

/* Preserve the existing funding attribution on every page. */
footer{flex-wrap:wrap}footer .funding-banner{flex:0 0 100%;grid-column:1 / -1;width:100%;margin-top:24px;padding:12px;background:#f7f7f7;box-sizing:border-box}footer .funding-banner img{display:block;width:100%;max-width:1024px;height:auto;margin:0 auto}

footer .website-credit{flex:0 0 100%;width:100%;margin:0;text-align:center;font-size:12px;color:#bcbcbc}footer .funding-banner{display:block}
