:root{--on:0;--cord:#999}
*{box-sizing:border-box}
html{height:100%;touch-action:manipulation}
body{height:100%;min-height:100vh;min-height:-webkit-fill-available;margin:0;display:flex;align-items:flex-start;justify-content:center;background-color:#111;overflow:hidden;touch-action:manipulation;font-family:"PingFang SC","Microsoft YaHei","Helvetica Neue",Inter,system-ui,sans-serif;color:#e8f2f9}

/* 背景图（水平翻转；灯灭图 2x 高清 q90，灯亮图 q95） */
body::before{content:"";position:fixed;inset:0;z-index:0;background-image:url("/login-assets/desktop-off-hd.webp");background-size:cover;background-position:center center;background-repeat:no-repeat;transform:scaleX(-1)}
body.light-on::before{background-image:url("/login-assets/desktop-on-q95.webp")}
@media(max-width:768px){
  body::before{background-image:url("/login-assets/mobile-off-hd.webp")}
  body.light-on::before{background-image:url("/login-assets/mobile-on-q95.webp")}
}

.flicker-overlay{position:fixed;top:0;left:0;width:100%;height:100%;background:#000;opacity:0;pointer-events:none;z-index:5}

/* 拉绳（镜像，跟随翻转后的灯） */
.toggle-scene{overflow:visible!important;height:50vmin;position:absolute;top:-10px;left:auto;right:50px;transform:scaleX(-1);z-index:10;display:block}
@media(max-width:768px){
  .toggle-scene{left:auto;right:5%;transform:translateX(50%) scaleX(-1) scale(2.2);transform-origin:top center}
}
.toggle-scene__cord{stroke:#b0b0b0;cursor:grab;opacity:1}
.toggle-scene__cord:active{cursor:grabbing}
.toggle-scene__cord:nth-of-type(1){display:block}
.toggle-scene__cord:nth-of-type(2),.toggle-scene__cord:nth-of-type(3),.toggle-scene__cord:nth-of-type(4),.toggle-scene__cord:nth-of-type(5){display:none}
.toggle-scene__cord-end{stroke:none}
.toggle-scene__dummy-cord{stroke-width:4;stroke:var(--cord);display:none}
.toggle-scene__hit-spot{cursor:grab}
.toggle-scene__hit-spot:active{cursor:grabbing}

/* 登录卡片（灯亮时弹出，中间偏右，盖住背景猫） */
.login-panel{position:fixed;z-index:20;left:68%;top:50%;transform:translateX(-50%) translateY(-50%);width:min(440px,88vw);padding:48px 40px 38px;border-radius:26px;background:rgba(8,18,32,.68);border:0;backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);box-shadow:0 34px 90px rgba(0,0,0,.6),0 0 40px rgba(0,0,0,.35);opacity:0;pointer-events:none;visibility:hidden}
@media(max-width:768px){
  .login-panel{left:50%;right:auto;top:calc(50% + 48px);bottom:auto;transform:translateX(-50%) translateY(-50%);width:min(420px,92vw)}
}
.login-brand{text-align:center;margin-bottom:32px}
.login-title{margin:0;padding:0;text-align:center;white-space:nowrap;font-size:clamp(18px,4.2vw,26px);font-weight:800;letter-spacing:.22em;text-indent:.22em;line-height:1.3;color:transparent;background:linear-gradient(180deg,#fffdf6 0%,#ffe9b8 40%,#e0b468 70%,#b98a3f 100%);-webkit-background-clip:text;background-clip:text;filter:drop-shadow(0 0 18px rgba(255,196,110,.42))}
.login-panel form{display:grid;gap:0}
.login-panel label{font-size:13.5px;font-weight:700;color:#c9dae7;margin:0 0 9px;letter-spacing:.1em}
.login-panel input{width:100%;min-height:52px;padding:0 16px;border:1px solid rgba(255,255,255,.16);border-radius:13px;background:rgba(255,255,255,.07);color:#f2f7fb;font-size:16px;letter-spacing:.02em;outline:none;transition:border-color .2s ease,box-shadow .2s ease,background .2s ease}
.login-panel input:focus{border-color:rgba(255,214,130,.8);box-shadow:0 0 0 4px rgba(255,214,130,.14);background:rgba(255,255,255,.09)}
.login-panel input::placeholder{color:#6a849c}
.login-panel input:nth-of-type(1){margin-bottom:24px}
.login-panel input:nth-of-type(2){margin-bottom:0}
.hidden{display:none!important}
.login-error{display:block;visibility:hidden;height:19px;margin:12px 0 7px;padding:1px 8px;border-radius:7px;background:rgba(255,120,110,.15);color:#ffb3ab;font-size:11px;line-height:17px;text-align:left;overflow:hidden;box-sizing:border-box}
.login-error.hidden{display:block!important;visibility:hidden}
.login-error:not(.hidden){visibility:visible}
#loginSubmit{width:100%;min-height:54px;margin-top:2px;border:0;border-radius:14px;background:linear-gradient(135deg,#ffdf9e,#f2b256);color:#2a1c04;font-size:17px;font-weight:900;letter-spacing:.28em;text-indent:.28em;cursor:pointer;box-shadow:0 12px 30px rgba(255,190,90,.35),inset 0 1px 0 rgba(255,255,255,.45);transition:filter .18s ease,transform .18s ease}
#loginSubmit:hover{filter:brightness(1.07);transform:translateY(-1px)}
#loginSubmit:active{transform:translateY(0) scale(.99)}
#loginSubmit:disabled{opacity:.6;cursor:not-allowed;transform:none}
.login-hint{margin:14px 0 0;text-align:center;color:#5f7a93;font-size:12.5px;letter-spacing:.08em}
