/* Uniform set controls with quiet, dark completion feedback. */
#fitness .fit-sets{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));align-items:stretch;gap:10px}
#fitness .fit-set{position:relative;display:grid;grid-template-columns:18px minmax(0,1fr);align-items:center;justify-content:stretch;gap:10px;min-height:50px;margin:0;padding:12px;border:1px solid #414141;border-radius:7px;background:#171717;color:#bdbdbd;font-size:12px;line-height:20px;letter-spacing:0;word-spacing:normal;overflow:hidden;transition:background-color .22s,border-color .22s,box-shadow .22s,transform .18s}
#fitness .fit-set span{display:block;min-width:0;text-align:left;white-space:nowrap}
#fitness .fit-set input{appearance:none;-webkit-appearance:none;display:block;position:relative;width:18px;height:18px;min-width:18px;margin:0;padding:0;border:1px solid #686868;border-radius:3px;background:#111;cursor:inherit;transition:background-color .22s,border-color .22s,box-shadow .22s}
#fitness .fit-set input:checked{background:#585d59;border-color:#858b86;box-shadow:inset 0 0 0 3px #292d2a}
#fitness .fit-set.checked{background:#252a27;color:#d1d7d2;border-color:#505c54;box-shadow:inset 0 1px 0 #ffffff08}
#fitness .fit-set.checked input{animation:set-fill .32s ease-out both}
#fitness .fit-complete{grid-column:auto}
#fitness .fit-cardio .fit-complete{grid-column:1/-1}
#fitness .fit-set:has(input:focus-visible){outline:2px solid #89988d;outline-offset:3px}
#fitness .fit-set:has(input:disabled){opacity:.65}
#fitness .fit-set:active:not(:has(input:disabled)){transform:scale(.98)}
@media(hover:hover){#fitness .fit-set:hover:not(:has(input:disabled)){background:#242424;border-color:#777}#fitness .fit-set.checked:hover:not(:has(input:disabled)){background:#303833}}
@keyframes set-fill{0%{transform:scale(.8);box-shadow:inset 0 0 0 8px #171717}65%{transform:scale(1.08)}100%{transform:scale(1);box-shadow:inset 0 0 0 3px #292d2a}}
/* Home-only pixel bridge and hanging academy sign, below the scene. */
.academy-build-footer{display:none}body.home-view .academy-build-footer{display:flex;flex-direction:column;align-items:center;width:100%;padding:0 0 max(48px,env(safe-area-inset-bottom));background:#000;overflow:hidden}
body.home-view .utility-footer{display:block;padding:0;width:100%;margin:0}
.academy-bridge{display:block;flex:none;width:100%;height:clamp(58px,9vw,110px);opacity:.7}
.academy-build-sign{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px;width:min(300px,calc(100% - 48px));min-height:100px;margin:42px auto 0;padding:22px 16px 18px;background:#151515;border:2px solid #666;box-shadow:4px 4px 0 #242424,-4px -4px 0 #080808;transform-origin:50% -40px;animation:build-sign-sway 7s ease-in-out infinite}
.academy-build-sign:before,.academy-build-sign:after{content:'';position:absolute;top:-44px;width:3px;height:42px;background:repeating-linear-gradient(to bottom,#777 0 4px,#303030 4px 8px)}.academy-build-sign:before{left:34px}.academy-build-sign:after{right:34px}
.build-sign-label{font-family:'Academy Pixel',monospace;font-size:clamp(15px,4.5vw,20px);line-height:1.5;letter-spacing:0;text-align:center;white-space:nowrap;color:#bfc4bf;animation:build-text-glow 4s ease-in-out infinite}
.build-sign-lights{display:flex;gap:8px}.build-sign-lights i{width:4px;height:4px;background:#798679;animation:build-light 2.4s steps(2,end) infinite}.build-sign-lights i:nth-child(2){animation-delay:.4s}.build-sign-lights i:nth-child(3){animation-delay:.8s}
@keyframes build-sign-sway{0%,100%{transform:rotate(-.65deg)}50%{transform:rotate(.65deg)}}@keyframes build-text-glow{0%,100%{color:#929c93;text-shadow:0 0 0 transparent}50%{color:#ccd3cd;text-shadow:0 0 12px #a4b5a430}}@keyframes build-light{0%,100%{opacity:.3}50%{opacity:1}}
@media(max-width:380px){#fitness .fit-set{padding:10px 8px;gap:7px;font-size:11px}#fitness .fit-sets{gap:8px}.academy-build-sign{min-height:88px}}
@media(prefers-reduced-motion:reduce){#fitness .fit-set,#fitness .fit-set input{transition:none;animation:none!important}.academy-build-sign,.build-sign-label,.build-sign-lights i{animation:none}}

/* Seamless masonry threshold and academy plaque. */
body.home-view main{padding-bottom:0;margin-bottom:0}
body.home-view>footer.utility-footer{height:auto;min-height:0;margin:-2px 0 0;padding:0;border:0;position:relative;z-index:2}
body.home-view .academy-build-footer{gap:0;background:linear-gradient(#111511 0,#090b09 120px,#000 300px);padding-bottom:max(48px,env(safe-area-inset-bottom));border:0}
.academy-bridge{height:clamp(96px,15vw,144px);width:100%;margin:0;opacity:1;image-rendering:pixelated}
.academy-build-sign{margin:22px auto 0;width:min(310px,calc(100% - 48px));min-height:132px;gap:9px;padding:18px 22px;background:repeating-linear-gradient(0deg,#1b1f1b 0 3px,#191d19 3px 6px);border:3px solid #4b5248;box-shadow:inset 0 0 0 3px #101510,inset 0 0 0 4px #343d32,4px 4px 0 #080b08;transform-origin:50% -24px;animation:build-sign-sway 9s ease-in-out infinite}
.academy-build-sign:before,.academy-build-sign:after{top:-26px;height:24px;background:repeating-linear-gradient(#555c50 0 3px,#20271e 3px 6px)}
.academy-build-sign:before{left:40px}.academy-build-sign:after{right:40px}
.build-sign-eyebrow{font:9px/1.5 'Academy Pixel',monospace;letter-spacing:2px;color:#727d6d;white-space:nowrap}
.build-sign-fastener{font-size:10px;line-height:1;color:#8a957d;text-shadow:0 0 12px #899b7030}
.build-sign-label{font-size:clamp(16px,4.4vw,20px);color:#b5beaa;letter-spacing:0;text-shadow:2px 2px #080c07}
.build-sign-lights{gap:6px;margin-top:3px}.build-sign-lights i{background:#78876b}
.bridge-lantern{animation:lantern-breathe 5s steps(4,end) infinite}.bridge-lantern:nth-last-child(2){animation-delay:-2s}
@keyframes lantern-breathe{0%,100%{opacity:.7}50%{opacity:1}}
@media(prefers-reduced-motion:reduce){.bridge-lantern,.academy-build-sign{animation:none}}
