/* ===== ksjhk 登录页改版（仿卡世界3D登录场景）桌面端≥992px生效 ===== */
@keyframes ksj-login-levitate {
  0%, 100% { transform: translateY(0); }
  50%      { transform: translateY(-18px); }
}
@keyframes ksj-login-spinY {
  from { transform: rotateZ(var(--tz, 16deg)) rotateY(0deg); }
  to   { transform: rotateZ(var(--tz, 16deg)) rotateY(360deg); }
}
@keyframes ksj-login-spinY-rev {
  from { transform: rotateZ(var(--tz, 16deg)) rotateY(360deg); }
  to   { transform: rotateZ(var(--tz, 16deg)) rotateY(0deg); }
}
@keyframes ksj-login-bobY {
  0%, 100% { transform: translateY(0) rotate(0deg); }
  50%      { transform: translateY(-14px) rotate(3deg); }
}
@keyframes ksj-login-fadeUp {
  from { opacity: 0; transform: translateY(26px); }
  to   { opacity: 1; transform: translateY(0); }
}

@media (min-width: 992px) {
  body.ksj-lm {
    background: linear-gradient(140deg, #eef5ff 0%, #dcebff 42%, #e2edff 68%, #d6e7ff 100%) !important;
  }
  .ksj-lm-wrap {
    min-height: 100vh;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 130px;
    padding: 30px 40px;
    box-sizing: border-box;
  }
  body.ksj-lm .copyt-right-box {
    position: fixed !important;
    bottom: 16px; left: 0; right: 0;
    width: auto !important;
    text-align: center;
    color: #7b93b8;
  }
  /* 左侧场景 */
  .ksj-scene {
    position: relative;
    width: 620px; height: 560px;
    flex: none;
    user-select: none;
    pointer-events: none;
  }
  .ksj-scene .t-main, .ksj-scene .t-sub {
    position: absolute; left: 50%;
    transform: translateX(-50%);
    opacity: 0;
    animation: ksj-login-fadeUp .9s cubic-bezier(.2,.7,.3,1) forwards;
  }
  .ksj-scene .t-main { top: 26px; width: 286px; height: auto; animation-delay: .15s; }
  .ksj-scene .t-sub  { top: 128px; width: 300px; height: auto; animation-delay: .4s; }
  .ksj-scene .scene3d {
    position: absolute; left: 50%; top: 58%;
    width: 0; height: 0;
    transform-style: preserve-3d;
    perspective: 1100px;
  }
  .ksj-scene .ly-base {
    position: absolute; left: -280px; top: -280px;
    width: 560px; height: 560px;
    animation: ksj-login-levitate 5.6s ease-in-out infinite;
    filter: drop-shadow(0 24px 30px rgba(43, 92, 200, .25));
  }
  .ksj-scene .cyl {
    position: absolute; left: 0; top: 0;
    transform-style: preserve-3d;
    animation: ksj-login-spinY var(--dur, 18s) linear infinite;
    animation-delay: var(--dl, 0s);
  }
  .ksj-scene .cyl.rev { animation-name: ksj-login-spinY-rev; }
  .ksj-scene .seg {
    position: absolute; left: 0; top: 0;
    backface-visibility: visible;
  }
  .ksj-scene .float-ico {
    position: absolute;
    animation: ksj-login-bobY 4.6s ease-in-out infinite;
    filter: drop-shadow(0 12px 16px rgba(43, 92, 200, .18));
  }
  .ksj-scene .float-ico.f1 { left: 6%;  top: 6%;   width: 130px; animation-delay: 0s; }
  .ksj-scene .float-ico.f2 { right: 2%; top: 30%;  width: 96px;  animation-delay: -1.2s; }
  .ksj-scene .float-ico.f3 { left: 4%;  bottom: 8%; width: 110px; animation-delay: -2.4s; }
  .ksj-scene .float-ico.f4 { right: 8%; bottom: 2%; width: 118px; animation-delay: -3.4s; }
  /* 右侧登录卡：去旧居中、加阴影悬浮感 */
  body.ksj-lm #app .login {
    flex: none;
    margin: 0 !important;
    background: none !important;
    background-image: none !important;
    background-color: transparent !important;
    box-shadow: none !important;
    width: 500px !important;
    min-width: 500px !important;
    height: 600px !important;
    min-height: 600px !important;
    padding: 0 !important;
    border-radius: 0 !important;
  }
  body.ksj-lm .login .container {
    margin: 0 !important;
    padding: 0 !important;
    background: transparent !important;
    width: 500px !important;
    max-width: none !important;
    min-height: 600px !important;
    box-shadow: none !important;
  }
  body.ksj-lm .login-box {
    box-shadow: 0 18px 60px rgba(43, 92, 200, .16) !important;
    border-radius: 14px !important;
  }
}
