.auth-gate .lock-stage{position:absolute;z-index:3;left:50%;bottom:clamp(18px,5vh,58px);width:min(94vw,690px);height:230px;transform:translateX(-50%);transition:opacity .42s,transform .55s;filter:drop-shadow(0 26px 28px #0009)}
.auth-gate.opening .lock-stage{opacity:0;transform:translateX(-50%) translateY(20px) scale(.78)}
.auth-gate .lock-rail{position:absolute;z-index:3;top:24px;left:8%;right:8%;height:25px;padding:0;border:2px solid #4b3714;border-radius:15px;background:linear-gradient(#d1b66e,#8b6e2f 45%,#5e481d 62%,#ae8c45);box-shadow:inset 0 4px 2px #f1d79299,0 5px 5px #0005;cursor:pointer}.auth-gate .lock-rail:before,.auth-gate .lock-rail:after{content:"";position:absolute;top:-14px;width:25px;height:53px;border:2px solid #4b3714;border-radius:7px;background:linear-gradient(90deg,#725621,#c2a157 48%,#634a1b);box-shadow:inset 3px 0 #d8bb70}.auth-gate .lock-rail:before{left:5%}.auth-gate .lock-rail:after{right:5%}.auth-gate .lock-rail:hover{filter:brightness(1.12)}.auth-gate .lock-rail:active{transform:translateY(2px)}
.auth-gate .lock-side{position:absolute;top:55px;width:42px;height:164px;border:2px solid #402d0e;background:linear-gradient(90deg,#4e3812,#b18f45 45%,#6a4e1b);box-shadow:inset 5px 0 #d0ac62;border-radius:12px 5px 5px 12px}.auth-gate .lock-side.left{left:7%}.auth-gate .lock-side.right{right:7%;transform:scaleX(-1)}
.auth-gate .lock-wheels{position:absolute;z-index:2;top:88px;left:50%;transform:translateX(-50%);display:grid;grid-template-columns:repeat(6,1fr);width:76%;height:104px;border:4px solid #42300f;border-radius:9px;background:#46320f;box-shadow:0 7px 0 #2d200b,inset 0 0 10px #000}.auth-gate .lock-wheel{display:grid;grid-template-rows:25px 1fr 25px;place-items:center;border-right:2px solid #4c3510;background:linear-gradient(100deg,#674a18,#c4a25a 18%,#927333 48%,#d0ae64 72%,#604515);color:#2c1d08;font-family:Georgia,serif;font-weight:700;text-shadow:1px 1px #d8ba74,-1px -1px #3c2809}.auth-gate .lock-wheel:last-child{border-right:0}.auth-gate .lock-digit{font-size:46px;line-height:1}.auth-gate .lock-spin{width:100%;height:100%;padding:0;border:0;background:transparent;color:#38270d;font:14px sans-serif;cursor:pointer;opacity:.72}.auth-gate .lock-spin:active{background:#fff1b855;transform:scale(.92)}
.auth-gate .lock-error{position:absolute;top:207px;left:8%;right:8%;min-height:20px;text-align:center;color:#f7d0bd;font-size:13px;text-shadow:0 2px 8px #000;background:#431d18cc;border-radius:12px;padding:5px 9px;opacity:0}.auth-gate .lock-error:not(:empty){opacity:1}.auth-gate .lock-stage.denied{animation:lock-shake .32s linear}@keyframes lock-shake{25%{transform:translateX(calc(-50% - 9px))}50%{transform:translateX(calc(-50% + 8px))}75%{transform:translateX(calc(-50% - 5px))}100%{transform:translateX(-50%)}}
@media(max-width:560px){.auth-gate .lock-stage{bottom:max(8px,env(safe-area-inset-bottom));width:98vw;height:205px}.auth-gate .lock-rail{left:5%;right:5%;height:20px}.auth-gate .lock-side{top:50px;height:139px;width:30px}.auth-gate .lock-side.left{left:3%}.auth-gate .lock-side.right{right:3%}.auth-gate .lock-wheels{top:79px;width:86%;height:88px}.auth-gate .lock-wheel{grid-template-rows:21px 1fr 21px}.auth-gate .lock-digit{font-size:36px}.auth-gate .lock-spin{font-size:11px}.auth-gate .lock-error{top:184px}}
