/* 2 · STEEL CAGE (male belt) — sway + swinging lock */
.variant-male.active { animation: cage-sway 5.2s ease-in-out infinite; }
.male-waist { background: linear-gradient(180deg, #e8edf2 0%, #9aa7b4 30%, #4a5560 65%, #1c2126 100%); border: 1px solid #0c0e10; border-radius: 50%; box-shadow: 0 18px 34px rgba(0,0,0,0.5), inset 0 2px 3px rgba(255,255,255,0.9), inset 0 -10px 18px rgba(0,0,0,0.6); height: 104px; left: 34px; position: absolute; top: 44px; width: 272px; }
.male-waist-glint { animation: band-sheen 3.4s ease-in-out infinite; border-radius: 50%; border-top: 3px solid rgba(255,255,255,0.9); display: block; height: 60px; left: 30px; position: absolute; top: 8px; width: 210px; }
.male-ring { border: 13px solid #c3ccd4; border-left-color: #6b7681; border-radius: 50%; box-shadow: 0 12px 26px rgba(0,0,0,0.5), inset 0 0 0 2px rgba(255,255,255,0.5); height: 92px; left: 124px; position: absolute; top: 112px; width: 92px; }
.male-cage { background: linear-gradient(90deg, #333b42 0%, #8b98a4 22%, #e6ecf1 50%, #8b98a4 78%, #2b3137 100%); border: 1px solid #0d1013; border-radius: 30px 30px 42px 42px / 22px 22px 60px 60px; box-shadow: inset -10px 0 18px rgba(0,0,0,0.5), 0 20px 30px rgba(0,0,0,0.55); height: 168px; left: 133px; overflow: hidden; position: absolute; top: 178px; width: 74px; }
.male-cage-sheen { animation: sheen-sweep 3.4s ease-in-out infinite; background: linear-gradient(115deg, transparent 30%, rgba(255,255,255,0.6) 48%, transparent 66%); height: 100%; left: -60%; position: absolute; top: 0; width: 220%; }
.cage-bar { background: linear-gradient(180deg, rgba(10,13,16,0.95), rgba(10,13,16,0.55)); border-radius: 4px; height: 132px; position: absolute; top: 12px; width: 7px; }
.cage-bar.b1 { left: 10px; } .cage-bar.b2 { left: 33px; } .cage-bar.b3 { left: 56px; }
.cage-cap { background: radial-gradient(circle at 50% 30%, #dfe7ed, #5b6671 70%); border: 1px solid #0d1013; border-radius: 50%; bottom: 8px; height: 26px; left: 23px; position: absolute; width: 26px; }
.male-lock { animation: cage-lock-swing 2.8s ease-in-out infinite; filter: drop-shadow(0 10px 12px rgba(0,0,0,0.55)); left: 149px; position: absolute; top: 92px; transform-origin: top center; z-index: 3; }
.male-shackle { border: 5px solid #d7dee5; border-bottom: 0; border-radius: 16px 16px 0 0; height: 22px; margin: 0 auto -4px; width: 30px; }
.male-body { align-items: center; background: linear-gradient(135deg, #eef3f7, #7d8892 70%, #333b42); border: 1px solid #0d1013; border-radius: 6px; display: flex; height: 42px; justify-content: center; width: 38px; }
@keyframes cage-sway { 0%, 100% { transform: translateY(0) rotate(1.4deg); } 50% { transform: translateY(-11px) rotate(-1.4deg); } }
@keyframes cage-lock-swing { 0%, 100% { transform: rotate(4deg); } 50% { transform: rotate(-4deg); } }
