#bodybuilder-game{--lime:#d6fa8c;max-width:1140px;margin:44px auto;padding:clamp(18px,4vw,38px);border:1px solid #496350;border-radius:26px;background:radial-gradient(ellipse at top,#263e36,#0d1c1c 70%);color:#eef5e8;font:15px system-ui,sans-serif;overflow:hidden;scroll-margin-top:150px}#bodybuilder-game *{box-sizing:border-box}#bodybuilder-game [hidden]{display:none!important}#bodybuilder-game h3{font:800 clamp(30px,5vw,48px)/1.08 system-ui;margin:8px 0 14px;letter-spacing:-.04em}#bodybuilder-game h4{font-size:22px;margin:20px 0 14px;line-height:1.3}#bodybuilder-game p{line-height:1.65;color:#b9cbc2}#bodybuilder-game a{color:#d6fa8c}#bodybuilder-game button,#bodybuilder-game select{font:600 14px system-ui;min-height:44px;padding:12px 16px;border-radius:10px;border:1px solid #56745e;background:#233b32;color:#eef6e8;cursor:pointer}#bodybuilder-game button:hover:not(:disabled){background:#355140;border-color:#c0dc87}#bodybuilder-game button:disabled{opacity:.45;cursor:default}#bodybuilder-game button:focus-visible,#bodybuilder-game select:focus-visible,#bodybuilder-game a:focus-visible,#bodybuilder-game .bb-hall-scroll:focus-visible{outline:3px solid #91dfff;outline-offset:3px}#bodybuilder-game .bb-primary{background:var(--lime);color:#1b3019;border-color:var(--lime);font-size:16px}.bb-heading,.bb-section-head{display:flex;justify-content:space-between;align-items:center;gap:18px}.bb-section-head h4{margin:0}.bb-section-head>span:last-child{font-size:12px;color:#a2bcac}.bb-eyebrow{font-size:10px;font-weight:800;letter-spacing:.16em;color:var(--lime)}.bb-tag{font-size:9px;letter-spacing:.1em;border:1px solid #65816a;border-radius:30px;padding:10px;align-self:flex-start;white-space:nowrap}.bb-select{display:flex;gap:16px}.bb-select label{display:grid;gap:8px;flex:1;color:#bdcfc0}.bb-select select{width:100%}#bb-preview{height:320px;display:flex;justify-content:center;background:radial-gradient(ellipse at center,#3b5442,transparent 65%)}#bb-preview svg{height:100%}.bb-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin:20px 0}.bb-stats>div{background:#0a1b18;border:1px solid #365347;border-radius:12px;padding:15px}.bb-stats small{display:block;color:#91ac9c;font-size:11px}.bb-stats strong{display:block;font-size:28px;color:var(--lime);margin-top:3px}.bb-hall-heading{display:flex;justify-content:space-between;align-items:center;gap:16px;margin:20px 0 12px}.bb-hall-heading>span{font-size:13px;font-weight:800;letter-spacing:.04em}.bb-hall-heading small{font-size:11px;color:#a9c1b0}.bb-hall-scroll{overflow-x:auto;overscroll-behavior-inline:contain;border:1px solid #55725d;border-radius:18px;scrollbar-color:#799567 #12241f;scrollbar-width:thin}.bb-stage{height:580px;min-width:860px;position:relative;background:linear-gradient(180deg,#0b1c25,#25463e 64%,#263e36 65%);isolation:isolate;overflow:hidden}.bb-ceiling{position:absolute;inset:0 0 auto;height:30px;background:repeating-linear-gradient(90deg,#d4faad 0 65px,transparent 66px 145px);opacity:.65;box-shadow:0 4px 45px #d8ffae22;transform:perspective(600px) rotateX(45deg);transform-origin:top}.bb-wall{position:absolute;inset:45px 0 auto;text-align:center;font-weight:900;font-size:28px;color:var(--lime);letter-spacing:2px}.bb-wall span{display:block;font-size:8px;color:#b8cfc2;letter-spacing:6px}.bb-mirror{position:absolute;left:26%;right:26%;top:120px;height:225px;border:7px solid #405e55;background:linear-gradient(135deg,#75a98c33,#0b2228 50%,#355f5444);box-shadow:inset 0 0 45px #00140e,0 5px 20px #0003}.bb-mirror:before{content:'';position:absolute;inset:0;background:linear-gradient(120deg,transparent 40%,#c7e8ca14 41%,transparent 65%)}.bb-floor{position:absolute;inset:345px -15% -120px;background:repeating-linear-gradient(90deg,transparent 0 99px,#7090801a 100px),repeating-linear-gradient(0deg,#162d2a 0 59px,#75958225 60px);transform:perspective(400px) rotateX(25deg);transform-origin:top;z-index:-1}.bb-platform{position:absolute;bottom:42px;left:34%;right:34%;height:36px;border-radius:50%;background:#050f12aa;border:1px solid #98c67844;box-shadow:0 0 40px #a0d28715}#bb-hero{position:absolute;z-index:3;bottom:43px;left:36%;width:28%;height:340px}#bb-hero svg{height:100%;width:100%}.bb-player-label{position:absolute;bottom:18px;left:36%;width:28%;text-align:center;font-size:9px;letter-spacing:2px;color:#d2edb4}#bodybuilder-game .bb-npc{position:absolute;width:23%;height:270px;padding:0;border:0;background:transparent;z-index:4;display:flex;align-items:center;flex-direction:column;justify-content:end}#bodybuilder-game .bb-npc:hover{background:transparent;filter:drop-shadow(0 0 12px #badc8544)}.bb-npc svg{height:215px;width:100%;filter:drop-shadow(0 6px 5px #0005)}.bb-npc span{padding:5px 16px;border:1px solid #8caa64;border-radius:15px;background:#10241d;font-size:13px}.bb-npc small{font-size:10px;color:#cee0c1;margin-top:4px;max-width:145px}.bb-mars{left:3%;bottom:34px}.bb-luna{right:3%;bottom:34px}#bodybuilder-game .bb-shadow{right:3%;top:53px;height:220px;width:21%;z-index:2}.bb-shadow svg{height:165px}.bb-npc.locked svg{filter:brightness(.65)}.bb-npc.locked span{border-color:#637268;color:#b3c4b8}#bodybuilder-game .bb-zone{position:absolute;border:0;background:none;padding:0;min-height:0;width:165px;z-index:2}#bodybuilder-game .bb-zone:hover{background:none;filter:brightness(1.3)}.bb-zone svg{width:100%;height:95px;filter:drop-shadow(0 7px 5px #0005)}.bb-zone span{display:block;color:#a9c6ad;letter-spacing:1px;font-size:8px}.bb-rack{left:24%;top:179px}.bb-bike{right:24%;top:179px}.bb-bench{left:40%;top:290px}#bodybuilder-game .bb-shop{position:absolute;left:22px;top:54px;width:170px;padding:12px;border:1px solid #a7c68c;border-radius:12px;background:linear-gradient(150deg,#294735,#112c28);text-align:center;text-decoration:none;color:var(--lime);z-index:5;box-shadow:0 10px 20px #0004;transition:transform .2s}.bb-shop:hover{transform:translateY(-3px)}.bb-shop strong{font-size:12px;letter-spacing:1px}.bb-shop-shirts{display:flex;margin:12px 0 8px;border-bottom:3px solid #8a9d7b}.bb-shop-shirts span{width:50%;position:relative}.bb-shop-shirts img{display:block;width:100%;height:82px;object-fit:contain}.bb-shop-shirts .bb-shop-logo{position:absolute;width:21px;height:21px;left:calc(50% - 10px);top:27px}.bb-shop small{font-size:10px}.bb-wardrobe{display:flex;justify-content:space-between;gap:20px;align-items:center;flex-wrap:wrap;padding:18px 0}.bb-wardrobe label{display:flex;gap:12px;align-items:center;font-size:13px}.bb-wardrobe a{font-size:12px}.bb-transform{display:flex;gap:20px;align-items:center;background:#0d211b;border-radius:14px;margin:6px 0 20px;padding:16px}.bb-transform>div:first-child{width:85px;flex:none;text-align:center;font-size:10px;color:#a5b9a8}#bb-before{height:115px}#bb-before svg{height:100%}.bb-transform p{font-size:11px;margin-bottom:0}#bodybuilder-game progress{width:100%;height:7px;accent-color:var(--lime);margin:10px 0}.bb-training{padding:22px;background:#1c342a;border-radius:16px}#bb-exercises{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-top:20px}#bb-exercises small{display:block;font-size:10px;margin-top:8px;color:#a8c0ad}#bb-exercises [aria-pressed=true]{border-color:var(--lime);box-shadow:inset 0 0 0 1px var(--lime)}.bb-set{margin-top:22px;display:grid;gap:8px}.bb-training p,.bb-recovery p{font-size:12px}.bb-care{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:16px 0}.bb-care .done:before{content:'✓ ';color:var(--lime)}.bb-equipment{display:flex;align-items:center;justify-content:space-between;gap:16px;border:1px solid #435f4e;border-radius:14px;padding:20px;margin-top:24px}.bb-equipment h4{margin-top:0!important}.bb-equipment p{font-size:12px}.bb-goal{padding:14px 0;border-bottom:1px solid #344b3c;display:flex;justify-content:space-between;gap:16px;font-size:13px}.bb-goal span{color:var(--lime)}#bb-status{min-height:25px;color:var(--lime)!important}.bb-foot{font-size:11px;margin-top:25px}.bb-story{padding:24px;background:linear-gradient(130deg,#2b4234,#142d2f);border:1px solid #71955a;border-radius:18px;margin:24px 0}.bb-story h4{font-size:26px!important;margin-top:18px!important}.bb-story-meters{display:flex;flex-wrap:wrap;gap:8px;margin:20px 0}.bb-story-meters span{padding:7px 12px;border-radius:30px;background:#0b211a;font-size:11px;color:#acc3b1}.bb-story-meters b{color:var(--lime);margin-left:6px}.bb-story-result{min-height:45px;font-size:14px}.bb-story-actions{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.bb-story-actions button{display:flex;flex-direction:column;align-items:start;text-align:left;gap:10px;padding:16px!important}.bb-story-actions small{font-size:10px;color:#b4d284}.bb-story-actions strong{font-size:14px}.bb-story-actions span{font-size:10px;color:#b7cbbd;font-weight:400}.bb-story-foot{font-size:11px!important;margin-bottom:0}.bb-ending-stats{padding:16px;border-radius:10px;background:#0b211a;color:var(--lime)}#bb-dialog{width:min(92vw,610px);max-height:85vh;overflow:auto;background:#193126;color:#f1f5e9;border:1px solid #b2d665;border-radius:20px;padding:28px;box-shadow:0 20px 90px #000a}#bb-dialog::backdrop{background:#04110bcc;backdrop-filter:blur(4px)}#bb-close{float:right;font-size:22px!important;padding:3px 14px!important}#bb-speaker{color:var(--lime);font-weight:900}#bb-speech{white-space:pre-line;font-size:16px}#bb-dialog a{color:var(--lime);line-height:1.7}#bb-dialog small{display:block;color:#adbfad;margin:15px 0}.bb-dialog-actions{display:flex;flex-wrap:wrap;gap:10px;align-items:center}#bb-dialog summary{cursor:pointer}#bb-dialog details{margin-top:15px}
@media(max-width:600px){.bb-tag{display:none}.bb-select{flex-direction:column;gap:12px}.bb-stats{gap:6px}.bb-stats>div{padding:10px}.bb-stats strong{font-size:22px}.bb-stats small{font-size:10px}.bb-hall-heading{display:block}.bb-hall-heading small{display:block;margin-top:7px}.bb-wardrobe label{align-items:start;flex-direction:column}.bb-wardrobe select{max-width:100%}#bb-exercises{grid-template-columns:repeat(2,1fr)}.bb-care{grid-template-columns:1fr 1fr}.bb-care button:last-child{grid-column:1/-1}.bb-equipment{flex-direction:column;align-items:stretch}.bb-training{padding:15px}.bb-transform{gap:10px}.bb-transform>div:first-child{width:65px}.bb-story{padding:16px}.bb-story-actions{grid-template-columns:1fr}.bb-story-actions button{display:grid;grid-template-columns:24px 1fr;gap:8px}.bb-story-actions span{grid-column:2}.bb-section-head{align-items:start}.bb-section-head>span:last-child{font-size:10px}}
/* Clothing is part of the jointed avatar; only the SVG joints move during a set. */
#bodybuilder-game .bb-profile-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}#bodybuilder-game .bb-profile-grid label{display:grid;gap:8px;font-size:13px;color:#c2d4c3}#bodybuilder-game .bb-profile-grid select{width:100%;min-width:0}#bodybuilder-game .bb-appearance{padding:18px 20px;border:1px solid #47634e;border-radius:12px;margin:0 0 20px;background:#10281f}#bodybuilder-game .bb-appearance summary{cursor:pointer;min-height:28px;color:#d6f5a3}#bodybuilder-game .bb-appearance .bb-profile-grid{margin-top:18px}#bodybuilder-game .bb-appearance p{font-size:11px;margin-bottom:0}#bodybuilder-game .bb-avatar{overflow:visible}#bodybuilder-game #bb-hero{height:365px;bottom:39px}#bodybuilder-game .bb-mars{left:2%;height:290px;width:24%}#bodybuilder-game .bb-mars svg{height:235px}#bodybuilder-game .bb-shadow{right:1.8%;top:27px;height:264px;width:25%}#bodybuilder-game .bb-shadow svg{height:211px;filter:drop-shadow(0 5px 12px #0008)}#bodybuilder-game .bb-shadow.locked svg{filter:brightness(.65) drop-shadow(0 5px 12px #0008)}#bodybuilder-game .bb-shadow small{max-width:170px}#bodybuilder-game .bb-luna svg{height:225px}#bodybuilder-game .bb-voice-note{font-size:12px;color:#b2c8b8}@media(max-width:600px){#bodybuilder-game .bb-profile-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}#bodybuilder-game .bb-profile-grid select{font-size:12px;padding:11px 8px}#bodybuilder-game .bb-appearance{padding:14px}#bodybuilder-game .bb-select label:last-child{grid-column:auto}}
#bodybuilder-game .bb-shadow{height:287px;top:20px;width:27%}#bodybuilder-game .bb-shadow svg{height:236px}
#bodybuilder-game .bb-nickname{margin:24px 0;padding:20px;background:#102a23;border:1px solid #49674b;border-radius:16px}#bodybuilder-game .bb-nickname-head{display:flex;justify-content:space-between;align-items:center;gap:16px}#bodybuilder-game .bb-nickname h4{margin:6px 0 0;font-size:21px}#bodybuilder-game #bb-name-source{font-size:11px;border:1px solid #7c9c66;border-radius:20px;padding:6px 12px;color:#d6f7a4}#bodybuilder-game .bb-nickname p{font-size:12px}#bodybuilder-game .bb-nickname label{display:block;margin-bottom:8px;color:#c2d5c7;font-size:13px}#bodybuilder-game .bb-name-controls{display:flex;gap:10px}#bodybuilder-game .bb-name-controls input{flex:1;min-width:0;border:1px solid #6b8661;border-radius:10px;background:#091d18;color:#f0f6e8;padding:12px 14px;font:15px system-ui;min-height:44px}#bodybuilder-game .bb-name-controls input:focus-visible{outline:3px solid #91dfff;outline-offset:2px}#bodybuilder-game .bb-name-controls input[aria-invalid=true]{border-color:#f3a68e}#bodybuilder-game #bb-name-error{color:#ffbca5;min-height:16px}#bodybuilder-game .bb-name-links{display:flex;align-items:center;gap:18px;flex-wrap:wrap;font-size:12px}#bodybuilder-game .bb-name-links button{font-size:11px;padding:8px 12px}#bodybuilder-game .bb-nickname>small{display:block;margin-top:14px;font-size:10px;color:#9db7a6;line-height:1.6}#bodybuilder-game .bb-player-label{left:30%;width:40%;padding:0 8px;font-size:11px;letter-spacing:.05em;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}@media(max-width:600px){#bodybuilder-game .bb-nickname{padding:16px}#bodybuilder-game .bb-name-controls{flex-direction:column}}
/* Shorts follow the thigh paths; equipment exercises have a side-view joint rig. */
#bodybuilder-game .bb-stage{min-width:1040px;height:630px}#bodybuilder-game .bb-bike{right:25%;top:170px}#bodybuilder-game .bb-bench{left:31%;top:300px}#bodybuilder-game .bb-treadmill{right:22%;top:300px;width:150px}#bodybuilder-game #bb-hero{left:36%;width:28%;height:360px;bottom:46px}#bodybuilder-game .bb-station-avatar{overflow:hidden}#bodybuilder-game .bb-reference{display:grid;grid-template-columns:1fr 190px;gap:24px;align-items:center;padding:20px;margin-top:20px;background:#10251f;border-radius:14px}#bodybuilder-game .bb-reference img{display:block;width:100%;height:235px;object-fit:contain;border-radius:10px;background:#0c1310}#bodybuilder-game .bb-reference h4{margin:12px 0}#bodybuilder-game .bb-reference p{font-size:13px}#bodybuilder-game .bb-reference small{display:block;line-height:1.6;color:#abc3b2}#bodybuilder-game .bb-reference a{display:block;margin-top:14px;font-size:12px}#bodybuilder-game #bb-exercises{grid-template-columns:repeat(4,minmax(0,1fr))}#bodybuilder-game .bb-luna{width:22%;right:1%;height:300px}#bodybuilder-game .bb-luna svg{height:245px}#bodybuilder-game .bb-shadow{right:2%;top:38px;width:24%;height:260px}#bodybuilder-game .bb-shadow svg{height:215px}
#bodybuilder-game .bb-announcement-controls{display:flex;justify-content:space-between;align-items:center;gap:16px;margin:16px 0;color:#c1d6ba;font-size:12px}#bodybuilder-game .bb-announcement-controls details{position:relative;max-width:350px}#bodybuilder-game .bb-announcement-controls summary{cursor:pointer;padding:10px 0;color:#d8f5a6}#bodybuilder-game .bb-announcement-controls button{font-size:11px;padding:9px 12px;margin:4px 6px 4px 0}#bodybuilder-game .bb-announcement-controls p{font-size:12px}#bodybuilder-game .bb-coach-announcement{display:grid;grid-template-columns:86px 1fr;align-items:end;gap:15px;margin:16px 0 22px;padding:18px;background:linear-gradient(115deg,#294b39,#102b29);border-radius:16px;border:1px solid #a7c57c}#bodybuilder-game .bb-coach-portrait{height:130px;overflow:hidden}#bodybuilder-game .bb-coach-portrait svg{height:100%;width:100%}#bodybuilder-game .bb-coach-bubble{background:#0b211a;border-radius:16px 16px 16px 2px;padding:18px}#bodybuilder-game .bb-coach-bubble p{margin:10px 0 16px;color:#e0edda;font-size:14px}#bodybuilder-game .bb-coach-bubble a{display:inline-block;text-decoration:none;border-radius:9px;padding:12px 16px;font-size:13px}#bodybuilder-game .bb-coach-bubble button{margin:8px 0 0 10px;font-size:12px}#bodybuilder-game .bb-coach-station{position:absolute;top:103px;left:47%;width:90px;height:140px;z-index:4;border:0;background:none;padding:0;display:flex;flex-direction:column;align-items:center;justify-content:end}#bodybuilder-game .bb-coach-station svg{width:82px;height:105px}#bodybuilder-game .bb-coach-station span{font-size:10px;white-space:nowrap;background:#162b25;border-radius:12px;padding:5px 10px;color:#dbf6b3}#bodybuilder-game .bb-coach-station:hover{background:transparent;filter:drop-shadow(0 0 8px #d5ed8e44)}@media(max-width:600px){#bodybuilder-game #bb-exercises{grid-template-columns:repeat(2,minmax(0,1fr))}#bodybuilder-game .bb-reference{grid-template-columns:1fr;gap:16px;padding:16px}#bodybuilder-game .bb-reference img{height:300px;max-width:260px;margin:auto}#bodybuilder-game .bb-announcement-controls{display:block}#bodybuilder-game .bb-coach-announcement{grid-template-columns:50px 1fr;padding:12px;gap:8px}#bodybuilder-game .bb-coach-portrait{height:100px}#bodybuilder-game .bb-coach-bubble{padding:14px}#bodybuilder-game .bb-coach-bubble button{margin-left:0}}
#bodybuilder-game .bb-coach-portrait svg{overflow:hidden}#bodybuilder-game .bb-coach-station{top:86px;height:150px;left:47%;width:90px}#bodybuilder-game .bb-coach-station svg{height:125px;width:80px;overflow:hidden}
#bodybuilder-game #bb-hero,#bodybuilder-game .bb-player-label,#bodybuilder-game .bb-platform{pointer-events:none}#bodybuilder-game .bb-coach-announcement{position:fixed;left:20px;bottom:20px;width:calc(100vw - 40px);max-width:500px;margin:0;z-index:9998;box-shadow:0 12px 60px #0009}#bodybuilder-game .bb-coach-announcement .bb-coach-bubble p{font-size:13px}#bodybuilder-game .bb-coach-announcement .bb-coach-bubble a{font-size:12px}@media(max-width:600px){#bodybuilder-game .bb-coach-announcement{left:12px;bottom:90px;width:calc(100vw - 24px);max-height:65vh;overflow-y:auto}#bodybuilder-game .bb-coach-bubble p{font-size:13px}}
/* Keep Gölge fully inside the room, including his head and nameplate. */
#bodybuilder-game .bb-shadow{top:94px;bottom:auto;right:1.5%;height:232px;width:24%;overflow:visible;transform:none;z-index:5;justify-content:flex-start}#bodybuilder-game .bb-shadow svg{display:block;height:181px;width:100%;flex:0 0 181px;overflow:hidden;transform:none;filter:none}#bodybuilder-game .bb-shadow.locked svg{filter:brightness(.78)}#bodybuilder-game .bb-shadow span{margin-top:3px;flex-shrink:0}#bodybuilder-game .bb-shadow small{font-size:9px;line-height:1.4;margin-top:4px;flex-shrink:0;max-width:175px}#bodybuilder-game .bb-hall-scroll{scroll-margin-top:clamp(80px,20vh,190px)}#bodybuilder-game .bb-stats{grid-template-columns:repeat(5,minmax(0,1fr))}#bodybuilder-game .bb-goal small{display:block;line-height:1.5;color:#a7bfa9;font-size:11px;margin-top:5px}#bodybuilder-game .bb-goal.complete{color:#d6f5a3}#bodybuilder-game #bb-growth-detail{color:#d9f5ae;font-size:12px;margin:6px 0;line-height:1.6}@media(max-width:600px){#bodybuilder-game .bb-stats{grid-template-columns:repeat(3,minmax(0,1fr))}#bodybuilder-game .bb-stats>div:nth-child(4),#bodybuilder-game .bb-stats>div:nth-child(5){grid-column:auto}#bodybuilder-game .bb-goal small{font-size:10px}}

/* Keep the hood inside the hall while giving Gölge a larger silhouette. */
#bodybuilder-game .bb-shadow{top:60px;height:266px}#bodybuilder-game .bb-shadow svg{height:215px;flex-basis:215px}

/* Ada has her own SVG resources and stands on the gym floor. */
#bodybuilder-game .bb-coach-station{top:auto;bottom:34px;left:21%;width:135px;height:285px;justify-content:flex-end;transform:none}
#bodybuilder-game .bb-coach-station svg{display:block;width:135px;height:235px;flex:0 0 235px;overflow:visible;transform:none}
#bodybuilder-game .bb-coach-station span{flex-shrink:0;line-height:1.5;margin-top:5px}
#bodybuilder-game .bb-luna-avatar{display:block;flex-shrink:0}
#bodybuilder-game .bb-luna.locked svg{filter:brightness(.9)}
/* A clipped scene cannot auto-scroll vertically when an NPC receives focus. */
#bodybuilder-game .bb-stage{overflow:clip}
#bodybuilder-game .bb-hall-scroll{overflow-x:auto;overflow-y:hidden}
/* Detailed character art and Ada's boxing workshop. */
#bodybuilder-game .bb-room-tabs{display:flex;gap:10px;flex-wrap:wrap;margin:24px 0}
#bodybuilder-game .bb-room-tabs [aria-pressed=true],#bodybuilder-game .bb-box-drills [aria-pressed=true]{background:#cdea9b;color:#182822;border-color:#cdea9b}
#bodybuilder-game .bb-npc-hd{display:block;flex-shrink:0}
#bodybuilder-game .bb-mars{height:320px;width:23%;bottom:28px}
#bodybuilder-game .bb-mars svg{height:264px;flex:0 0 264px}
#bodybuilder-game .bb-shadow{top:36px;height:300px}
#bodybuilder-game .bb-shadow svg{height:250px;flex-basis:250px}
#bodybuilder-game .bb-coach-station{left:21%;height:304px;bottom:28px;width:150px}
#bodybuilder-game .bb-coach-station svg{width:150px;height:268px;flex-basis:268px}
#bodybuilder-game .bb-boxing-panel{background:linear-gradient(120deg,#30223c,#15242b);padding:24px;border:1px solid #6d557c;border-radius:16px;margin-top:18px}
#bodybuilder-game .bb-box-guide{display:grid;grid-template-columns:145px 1fr;gap:24px;align-items:center}
#bodybuilder-game .bb-box-guide>img{display:block;width:145px;height:265px;object-fit:contain;object-position:bottom}
#bodybuilder-game .bb-box-guide h4{margin:10px 0;font-size:28px}
#bodybuilder-game .bb-box-guide p{font-size:13px}
#bodybuilder-game .bb-box-drills{display:flex;gap:10px;flex-wrap:wrap}
#bodybuilder-game .bb-box-guide a{font-size:13px}
#bodybuilder-game .bb-box-note{font-size:11px!important;color:#abbdb6}
#bodybuilder-game .bb-boxing-ring,#bodybuilder-game .bb-boxing-bag,#bodybuilder-game .bb-box-stage-cue{display:none}
#bodybuilder-game[data-room=boxing] .bb-stage{background:radial-gradient(ellipse at 55% 0,#54466d66,transparent 60%),linear-gradient(180deg,#151625,#202739 63%,#19222a 64%)}
#bodybuilder-game[data-room=boxing] .bb-shop,#bodybuilder-game[data-room=boxing] .bb-mirror,#bodybuilder-game[data-room=boxing] .bb-zone,#bodybuilder-game[data-room=boxing] .bb-mars,#bodybuilder-game[data-room=boxing] .bb-luna,#bodybuilder-game[data-room=boxing] .bb-shadow{display:none}
#bodybuilder-game[data-room=boxing] .bb-boxing-ring{display:block;position:absolute;left:24%;right:7%;bottom:45px;height:290px;pointer-events:none;z-index:1}
.bb-ring-mat{position:absolute;inset:120px 0 0;background:linear-gradient(135deg,#444264,#252d45);border:9px solid #616a89;transform:skewX(-8deg);box-shadow:0 15px 25px #0007}
.bb-boxing-ring i{position:absolute;left:10px;right:0;height:4px;background:linear-gradient(90deg,#d9e5d1,#716ca2);box-shadow:0 2px 2px #080c19;top:70px}
.bb-boxing-ring i:nth-of-type(2){top:100px}.bb-boxing-ring i:nth-of-type(3){top:130px}
.bb-boxing-ring b{position:absolute;top:40px;bottom:10px;left:0;width:9px;background:#9daabd;box-shadow:2px 0 0 #252733}.bb-boxing-ring b:nth-of-type(2){left:auto;right:0}.bb-boxing-ring b:nth-of-type(3){left:10%;top:105px;bottom:-10px;background:#724f80}.bb-boxing-ring b:nth-of-type(4){left:auto;right:10%;top:105px;bottom:-10px;background:#724f80}
#bodybuilder-game[data-room=boxing] .bb-coach-station{left:5%;width:210px;height:350px;bottom:45px}
#bodybuilder-game[data-room=boxing] .bb-coach-station svg{height:315px;width:210px;flex-basis:315px}
#bodybuilder-game[data-room=boxing] #bb-hero{z-index:3;left:35%;width:33%;bottom:65px;height:380px}
#bodybuilder-game[data-room=boxing] .bb-platform{display:none}
#bodybuilder-game[data-room=boxing] .bb-boxing-bag{display:flex;position:absolute;right:13%;bottom:125px;flex-direction:column;align-items:center;width:115px;height:310px;background:none;border:0;padding:0;z-index:4}
#bodybuilder-game .bb-boxing-bag svg{height:265px;width:110px;flex-shrink:0}
#bodybuilder-game .bb-boxing-bag span{font-size:12px;background:#151f2e;border:1px solid #735980;border-radius:18px;padding:8px 15px}
#bodybuilder-game[data-room=boxing] .bb-box-stage-cue{display:block;position:absolute;top:110px;left:30%;right:12%;padding:14px;border-radius:12px;background:#0d1528df;border:1px solid #9985b8;color:#e9e8f7;text-align:center;font-size:17px;font-weight:700;z-index:6}
#bodybuilder-game[data-room=boxing] .bb-player-label{bottom:28px;left:34%;width:34%}
#bodybuilder-game .bb-player-hd{overflow:visible}
@media(max-width:600px){#bodybuilder-game .bb-box-guide{grid-template-columns:70px 1fr;gap:12px}#bodybuilder-game .bb-box-guide>img{width:70px;height:185px}#bodybuilder-game .bb-boxing-panel{padding:16px}#bodybuilder-game .bb-box-guide h4{font-size:23px}#bodybuilder-game .bb-box-drills button{font-size:12px;padding:10px}#bodybuilder-game .bb-room-tabs button{flex:1}}
/* Rebuilt rubber-tile floor, commercial equipment and paired pad-work stage. */
#bodybuilder-game .bb-stage{height:620px;background:linear-gradient(180deg,#101d2c,#233746 56%,#17242e 57%)}
#bodybuilder-game .bb-floor{inset:350px 0 0;transform:none;background:url('/assets/game/gym-floor-v2.svg') center top/100% 100% no-repeat;z-index:-1}
#bodybuilder-game .bb-floor:before{content:'';position:absolute;inset:-7px 0 auto;height:12px;background:linear-gradient(#09121c,#72858e44,#101a24);box-shadow:0 7px 18px #0005}
#bodybuilder-game .bb-mirror{background:linear-gradient(125deg,#789aaf33,#142b3c 55%,#7c92982b);border-color:#4e6571}
#bodybuilder-game .bb-platform{background:radial-gradient(ellipse,#06111ccc,#07111b33 65%,transparent 70%);border:0;box-shadow:none;height:28px;bottom:42px}
#bodybuilder-game .bb-cable{position:absolute;top:168px;width:175px;height:255px;z-index:1;pointer-events:none;filter:drop-shadow(0 9px 6px #0006)}
#bodybuilder-game .bb-cable svg{width:100%;height:235px}
#bodybuilder-game .bb-cable span{display:block;text-align:center;font-size:7px;letter-spacing:1.4px;color:#acc4ce;margin-top:-8px}
#bodybuilder-game .bb-cable-left{left:1.7%}#bodybuilder-game .bb-cable-right{right:1.7%}
#bodybuilder-game .bb-rack{left:24%;top:199px}#bodybuilder-game .bb-bike{right:24%;top:199px}
#bodybuilder-game .bb-treadmill{right:25%;top:320px;width:180px}#bodybuilder-game .bb-treadmill svg{height:112px}
#bodybuilder-game .bb-bench{left:24%;top:335px}
#bodybuilder-game[data-room="boxing"] .bb-cable,#bodybuilder-game[data-room="boxing"] .bb-coach-station{display:none}
#bodybuilder-game[data-room="boxing"] .bb-boxing-ring{left:12%;right:8%;bottom:44px;height:305px}
#bodybuilder-game[data-room="boxing"] #bb-hero{left:9%;width:82%;height:420px;bottom:54px}
#bodybuilder-game[data-room="boxing"] .bb-boxing-bag{right:1.3%;width:83px;height:245px;bottom:143px;opacity:.65}
#bodybuilder-game[data-room="boxing"] .bb-player-label{left:18%;width:64%;bottom:24px}
#bodybuilder-game[data-room="boxing"] .bb-box-stage-cue{left:17%;right:12%;top:102px}
.bb-box-pair{overflow:visible}.bb-pad-target{transition:opacity .1s}.bb-hit-ring{pointer-events:none}
#bodybuilder-game .bb-npc:hover:not(:disabled),#bodybuilder-game .bb-coach-station:hover:not(:disabled){background:transparent;border-color:transparent}
#bodybuilder-game .bb-cable-left{top:226px}
#bodybuilder-game .bb-shadow{top:100px}
#bodybuilder-game .bb-luna{right:12%;width:18%}
#bodybuilder-game .bb-shadow small{max-width:110px;font-size:8px;line-height:1.4;text-align:center}

/* The boxing scene fits the viewport; both athletes remain on the same mat. */
#bodybuilder-game[data-room="boxing"] .bb-hall-scroll{overflow-x:hidden}
#bodybuilder-game[data-room="boxing"] .bb-stage{min-width:0}
#bodybuilder-game[data-room="boxing"] #bb-hero>.bb-box-pair{display:block;overflow:visible}
@media(max-width:600px){
 #bodybuilder-game[data-room="boxing"] .bb-stage{height:480px}
 #bodybuilder-game[data-room="boxing"] #bb-hero{left:0;width:100%;height:315px;bottom:45px}
 #bodybuilder-game[data-room="boxing"] .bb-box-stage-cue{left:5%;right:5%;top:88px;padding:10px;font-size:13px}
 #bodybuilder-game[data-room="boxing"] .bb-wall{top:34px;font-size:23px}
 #bodybuilder-game[data-room="boxing"] .bb-boxing-bag{display:none}
 #bodybuilder-game[data-room="boxing"] .bb-boxing-ring{left:5%;right:5%;height:255px}
 #bodybuilder-game[data-room="boxing"] .bb-player-label{left:5%;width:90%;bottom:16px}
 #bodybuilder-game[data-room="boxing"] .bb-hall-heading small{display:none}
}

#bodybuilder-game button.bb-cable{pointer-events:auto;padding:0;border:0;background:transparent;cursor:pointer}
#bodybuilder-game button.bb-cable:hover{background:transparent;filter:brightness(1.2)}
#bodybuilder-game[data-move="8"] .bb-cable-left{display:none}
#bodybuilder-game[data-move="8"] #bb-hero{left:29%;width:42%;height:365px;bottom:40px}
#bodybuilder-game #bb-box-invite{background:#d6fa8c;border-color:#d6fa8c;color:#182822}
#bodybuilder-game .bb-cable-left span{position:absolute;top:18px;left:0;width:100%;padding:6px 4px;border:1px solid #9dbb75;border-radius:8px;background:#173c30;color:#e2f8bc;font-size:10px;letter-spacing:.03em;box-shadow:0 3px 9px #0005}

#bodybuilder-game .bb-months{margin:24px 0;padding:20px;background:#101d20;border-radius:18px}#bodybuilder-game .bb-month-cards{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}#bodybuilder-game .bb-month-card{background:linear-gradient(155deg,#25383d,#132126);border-radius:14px;padding:14px 10px;min-width:0}#bodybuilder-game .bb-month-card.current{box-shadow:inset 0 0 0 2px #d6f58c}#bodybuilder-game .bb-month-card.achieved header span{color:#d6f58c}#bodybuilder-game .bb-month-card header{display:flex;justify-content:space-between;gap:6px;align-items:center;flex-wrap:wrap}#bodybuilder-game .bb-month-card header strong{font-size:19px;color:#e5f6c8}#bodybuilder-game .bb-month-card header span,#bodybuilder-game .bb-month-card small{font-size:10px;color:#aec4c7}#bodybuilder-game .bb-month-avatar{height:240px;margin:12px 0}#bodybuilder-game .bb-month-avatar svg{display:block;height:100%;width:100%;overflow:visible}#bodybuilder-game .bb-month-card h5{margin:5px 0;font-size:14px}#bodybuilder-game .bb-month-card p{font-size:11px;line-height:1.6;margin-bottom:0}#bodybuilder-game #bb-body-meters{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin:20px 0}#bodybuilder-game #bb-body-meters label{display:block;font-size:13px}#bodybuilder-game #bb-body-meters strong{float:right;color:#d6f58c}#bodybuilder-game #bb-body-meters progress{display:block;width:100%;height:8px;margin-top:8px;accent-color:#d6f58c}#bodybuilder-game .bb-month-note{font-size:11px;color:#9db5b8;line-height:1.7;margin-bottom:0}@media(max-width:650px){#bodybuilder-game .bb-month-cards{grid-template-columns:repeat(2,minmax(0,1fr))}#bodybuilder-game .bb-month-avatar{height:220px}#bodybuilder-game .bb-months{padding:14px}}
/* Every purchased tier changes the actual room props and the upgrade cards. */
#bodybuilder-game .bb-lat{left:41%;top:175px;width:135px;height:165px}#bodybuilder-game .bb-lat svg{height:120px;width:100%}#bodybuilder-game .bb-zone span{font-size:9px;line-height:1.4}#bodybuilder-game .bb-upgrade-preview{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-top:18px}#bodybuilder-game .bb-upgrade-preview article{padding:10px;border-radius:12px;background:#142e31;min-width:0}#bodybuilder-game .bb-upgrade-preview svg{display:block;width:100%;height:105px}#bodybuilder-game .bb-upgrade-preview strong{display:block;font-size:12px;line-height:1.5}#bodybuilder-game .bb-upgrade-preview small{display:block;font-size:10px;color:#b8d6b3;margin-top:8px}#bodybuilder-game .bb-upgrade-preview summary{font-size:11px;color:#daf1a4;cursor:pointer;padding-top:10px}#bodybuilder-game .bb-equipment{display:block}#bodybuilder-game #bb-gear{margin-top:16px}#bodybuilder-game[data-equipment-level="1"] .bb-boxing-ring i:nth-of-type(3),#bodybuilder-game[data-equipment-level="1"] .bb-boxing-ring b:nth-of-type(3),#bodybuilder-game[data-equipment-level="1"] .bb-boxing-ring b:nth-of-type(4){opacity:.2}#bodybuilder-game[data-equipment-level="5"] .bb-ring-mat{border-color:#ab8ebc;background:linear-gradient(135deg,#4a4470,#28304c)}#bodybuilder-game[data-move="3"] .bb-lat{display:none}#bodybuilder-game[data-move="3"] #bb-hero{left:34%;width:32%;height:385px}@media(max-width:600px){#bodybuilder-game .bb-upgrade-preview{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* Subtle NPC life: runs only while visible, without rendering loops. */
#bodybuilder-game .bb-month-cards{grid-template-columns:repeat(2,minmax(0,1fr))}
#bodybuilder-game[data-room="boxing"] .bb-player-label{display:none}
.bb-npc-breath{transform-box:view-box;transform-origin:50% 95%;animation:bb-breathe 4.6s ease-in-out infinite;animation-play-state:paused}
.bb-npc-eyelids{opacity:0;animation:bb-blink 5.2s linear infinite;animation-play-state:paused}
.npc-awake .bb-npc-breath,.npc-awake .bb-npc-eyelids{animation-play-state:running}
.bb-luna .bb-npc-breath{animation-delay:-1.6s}.bb-luna .bb-npc-eyelids{animation-delay:-2.1s}
.bb-shadow .bb-npc-eyelids{animation-delay:-3.2s}.bb-coach-station .bb-npc-eyelids{animation-delay:-.9s}
.npc-page-hidden .bb-npc-breath,.npc-page-hidden .bb-npc-eyelids{animation-play-state:paused}
@keyframes bb-breathe{0%,100%{transform:scale(1)}50%{transform:scale(1.006,1.004)}}
@keyframes bb-blink{0%,42%,46%,100%{opacity:0}43%,45%{opacity:1}}
@media(prefers-reduced-motion:reduce){.bb-npc-breath,.bb-npc-eyelids{animation:none}.bb-npc-eyelids{opacity:0}}

#bodybuilder-game button[data-station],#bodybuilder-game button[data-move],#bodybuilder-game button[data-box-drill],#bodybuilder-game button[data-room]{touch-action:manipulation}

/* Keep Luna pixel-stable on mobile: scaling a filtered photograph causes shimmer. */
.bb-coach-station .bb-npc-breath,.bb-coach-portrait .bb-npc-breath{animation:none;transform:none}
.bb-coach-station .bb-npc-eyelids,.bb-coach-portrait .bb-npc-eyelids{display:none}

.bb-sound-controls{display:flex;align-items:center;gap:18px;flex-wrap:wrap;margin:18px 0}.bb-sound-controls label{display:flex;align-items:center;gap:10px;font-size:12px}.bb-sound-controls input{width:120px}

