/* 6 · ASYLUM (fantasy ward belt) — fog + cell bars + jacket straps */
.variant-asym.active { animation: asym-tilt 6s ease-in-out infinite; }
.asylum-fog { background: radial-gradient(ellipse at center, rgba(180,200,210,0.22) 0%, transparent 70%); border-radius: 50%; position: absolute; }
.asylum-fog.f1 { animation: asylum-fog-drift 7s ease-in-out infinite; height: 180px; left: 10px; top: 150px; width: 180px; }
.asylum-fog.f2 { animation: asylum-fog-drift 7s ease-in-out 3.5s infinite reverse; height: 220px; left: 140px; top: 120px; width: 220px; }
.asylum-celldoor { background: linear-gradient(180deg, #2a3138 0%, #12171c 100%); border: 2px solid #0a0d10; border-radius: 14px; box-shadow: 0 18px 30px rgba(0,0,0,0.6), inset 0 0 0 2px rgba(150,170,185,0.2); height: 300px; left: 26px; opacity: 0.85; position: absolute; top: 40px; width: 288px; }
.cellbar { animation: asylum-bar-shiver 5s ease-in-out infinite; background: linear-gradient(90deg, #4a5560, #8b98a4 50%, #4a5560); border-radius: 4px; height: 280px; position: absolute; top: 8px; width: 10px; }
.cellbar.cb1 { left: 40px; } .cellbar.cb2 { animation-delay: 1.6s; left: 139px; } .cellbar.cb3 { animation-delay: 3.2s; right: 40px; }
.cellplate { animation: asylum-plate-glare 4s ease-in-out infinite; background: linear-gradient(135deg, #6b7681, #2b3238); border: 1px solid #0a0d10; border-radius: 6px; height: 40px; left: 50%; position: absolute; top: 40px; transform: translateX(-50%); width: 60px; }
.asylum-waist { background: repeating-linear-gradient(90deg, #b9b3a4 0 14px, #8f897a 14px 18px); border: 2px solid #14120e; border-radius: 50%; box-shadow: 0 14px 26px rgba(0,0,0,0.55), inset 0 3px 4px rgba(255,255,255,0.4); height: 96px; left: 44px; position: absolute; top: 52px; width: 252px; }
.asylum-buckle { animation: asylum-buckle-creak 4.5s ease-in-out infinite; background: linear-gradient(135deg, #5a5e63, #23262a); border: 2px solid #0c0e10; border-radius: 8px; height: 40px; position: absolute; top: 22px; width: 44px; }
.asylum-buckle.ab1 { left: 52px; } .asylum-buckle.ab2 { animation-delay: 2.2s; right: 52px; }
.asylum-jacket { background: linear-gradient(160deg, #cfc8b4 0%, #9d9580 40%, #6e6757 75%, #4a4438 100%); border: 2px solid #211d15; border-radius: 46px 46px 70px 70px / 30px 30px 95px 95px; box-shadow: inset 0 0 0 3px rgba(255,252,240,0.25), inset 0 -20px 34px rgba(0,0,0,0.45), 0 22px 34px rgba(0,0,0,0.55); height: 232px; left: 100px; overflow: hidden; position: absolute; top: 116px; width: 140px; }
.jacket-fabric { animation: asylum-fabric-breathe 4s ease-in-out infinite; background: repeating-linear-gradient(0deg, transparent 0 10px, rgba(60,52,40,0.14) 10px 12px); inset: 0; position: absolute; }
.jacket-stitch { border-left: 2px dashed rgba(60,50,35,0.55); height: 200px; position: absolute; top: 14px; }
.jacket-stitch.j1 { left: 22px; } .jacket-stitch.j2 { left: 70px; } .jacket-stitch.j3 { right: 22px; }
.jacket-crossstrap { background: linear-gradient(90deg, #4a3f2e, #7a6c52 50%, #4a3f2e); border: 1px solid #211d15; border-radius: 4px; height: 18px; left: 8px; position: absolute; width: 124px; }
.jacket-crossstrap.cs1 { animation: asylum-strap-strain 3.6s ease-in-out infinite; top: 74px; transform: rotate(-4deg); }
.jacket-crossstrap.cs2 { animation: asylum-strap-strain 3.6s ease-in-out 1.8s infinite; top: 142px; transform: rotate(4deg); }
.jacket-button { animation: asym-stud-twinkle 3s ease-in-out infinite; background: radial-gradient(circle at 35% 30%, #e8e2d0, #6e6757 75%); border: 1px solid #211d15; border-radius: 50%; height: 13px; left: 63px; position: absolute; width: 13px; }
.jacket-button.jb1 { top: 40px; } .jacket-button.jb2 { animation-delay: 1s; top: 108px; } .jacket-button.jb3 { animation-delay: 2s; top: 176px; }
.jacket-tag { animation: asylum-tag-swing 5s ease-in-out infinite; background: #d8d2bd; border: 1px solid #211d15; border-radius: 3px; color: #3a3325; font-family: var(--mono); font-size: 0.6rem; left: 50%; letter-spacing: 0.12em; padding: 3px 7px; position: absolute; top: 14px; transform: translateX(-50%) rotate(-3deg); transform-origin: top center; }
.jacket-flicker { animation: asylum-lamp-flicker 6s steps(1) infinite; background: linear-gradient(180deg, rgba(255,244,200,0.16), transparent 60%); inset: 0; position: absolute; }
.asym-lock { animation: asym-lock-dangle 3.4s ease-in-out infinite; left: 150px; position: absolute; top: 82px; z-index: 3; }
.asym-body { align-items: center; background: linear-gradient(135deg, #8b98a4, #333b42 60%, #14181c); border: 2px solid #0c0e10; border-radius: 8px; box-shadow: 0 12px 18px rgba(0,0,0,0.6), 0 0 12px rgba(140,220,255,0.15); display: flex; height: 50px; justify-content: center; width: 42px; }
.asylum-chain { display: flex; gap: 0; justify-content: center; margin-top: -2px; }
.asylum-chain .link { animation: asylum-chain-sway 3.4s ease-in-out infinite; border: 3px solid #7d8892; border-radius: 50%; display: block; height: 16px; margin-left: -5px; width: 16px; }
.asylum-chain .link.l2 { animation-delay: 0.3s; } .asylum-chain .link.l3 { animation-delay: 0.6s; }
@keyframes asym-tilt { 0%, 100% { transform: rotate(0.6deg) translateY(0); } 50% { transform: rotate(-0.6deg) translateY(-8px); } }
@keyframes asym-stud-twinkle { 0%, 100% { box-shadow: 0 0 4px rgba(255,240,195,0.4); } 50% { box-shadow: 0 0 12px rgba(255,240,195,1); } }
@keyframes asym-lock-dangle { 0%, 100% { transform: rotate(3deg); } 50% { transform: rotate(-3deg) translateY(2px); } }
@keyframes asylum-fog-drift { 0%, 100% { transform: translate(0, 0) scale(1); opacity: 0.7; } 50% { transform: translate(24px, -18px) scale(1.15); opacity: 1; } }
@keyframes asylum-bar-shiver { 0%, 100% { transform: translateX(0); } 25% { transform: translateX(1.5px); } 50% { transform: translateX(0); } 75% { transform: translateX(-1.5px); } }
@keyframes asylum-plate-glare { 0%, 100% { filter: brightness(1); } 50% { filter: brightness(1.5); } }
@keyframes asylum-buckle-creak { 0%, 100% { transform: rotate(0); } 50% { transform: rotate(2.5deg); } }
@keyframes asylum-fabric-breathe { 0%, 100% { transform: scaleY(1); opacity: 0.8; } 50% { transform: scaleY(1.02); opacity: 1; } }
@keyframes asylum-strap-strain { 0%, 100% { filter: brightness(1); } 50% { filter: brightness(1.25); } }
@keyframes asylum-tag-swing { 0%, 100% { transform: translateX(-50%) rotate(-5deg); } 50% { transform: translateX(-50%) rotate(5deg); } }
@keyframes asylum-lamp-flicker { 0%, 88%, 94%, 100% { opacity: 1; } 90%, 92% { opacity: 0.25; } }
@keyframes asylum-chain-sway { 0%, 100% { transform: rotate(4deg); } 50% { transform: rotate(-4deg); } }
