:root{font-family:"SFMono-Regular",Consolas,"PingFang SC","Microsoft YaHei",monospace;color:#171917;background:#eeeee8;font-synthesis:none;--accent:#da7c28;--line:#242a251a}*{box-sizing:border-box}body{margin:0}button,input{font:inherit}button{cursor:pointer}button:disabled{opacity:.55;cursor:wait}[hidden]{display:none!important}.login-page{min-height:100vh;min-height:100svh;position:relative;isolation:isolate;overflow-x:hidden;background:radial-gradient(ellipse at 70% 32%,#fafbf8 0,transparent 65%),#e9e9e2;transition:background .6s,color .6s}.terminal-background{position:fixed;inset:16px 26px;pointer-events:none;z-index:-1;border:1px solid var(--line);background:linear-gradient(90deg,transparent 0 14%,#ffffff22 14% 60%,transparent 60% 77%,#ffffff24 77%);mask-image:linear-gradient(#000,transparent 93%)}.terminal-background i{position:absolute;top:0;bottom:0;width:1px;background:var(--line)}.terminal-background i:nth-child(1){left:14%}.terminal-background i:nth-child(2){left:60%}.terminal-background i:nth-child(3){left:77%}.terminal-background i:nth-child(4){left:96%}.terminal-brand{position:absolute;top:46px;left:4%;display:flex;flex-direction:column;max-width:38%;z-index:2}.brand-caption{font-size:10px;letter-spacing:.18em;font-weight:600}.terminal-brand>strong{font-family:Arial,"PingFang SC",sans-serif;font-size:clamp(30px,3.8vw,56px);line-height:1.1;font-weight:900;letter-spacing:-.04em;margin:8px 0 0;overflow-wrap:anywhere}.brand-system{font-size:20px;letter-spacing:.05em;margin-top:4px}.brand-cross{margin-left:20px;color:#92958d}.terminal-revision{margin-top:42px;font-size:10px;letter-spacing:.1em;color:#878a80}.terminal-revision time{color:var(--accent);margin-left:6px}.step-segments{display:flex;gap:6px;margin-top:14px}.step-segments i{height:2px;width:25px;background:#c3c6bc}.step-segments i.active{background:var(--accent)}.skip-intro{position:absolute;right:4%;top:42px;border:0;background:transparent;font-size:11px;letter-spacing:.08em;color:#666c61;padding:12px;z-index:5}.skip-intro span{margin-left:10px;font-size:10px}.terminal-main{min-height:100svh;display:flex;align-items:center;justify-content:center;padding:210px 24px 125px}.terminal-scene{width:min(620px,100%);text-align:center;animation:scene-in .5s ease both}.scene-heading{margin-bottom:38px}.micro-label{font-size:10px;letter-spacing:.24em;color:#8d9188}.scene-heading h1{font-size:clamp(26px,3.5vw,44px);font-weight:400;letter-spacing:.22em;margin:15px 0 5px;padding-left:.22em;line-height:1.4}.scene-heading>p{font-size:10px;letter-spacing:.35em;margin:0;padding:0 0 12px;border-bottom:1px solid var(--line)}.terminal-button{border:1px solid #242a25;background:transparent;box-shadow:0 0 0 4px #c9c9bb2b;border-radius:0;color:inherit;min-height:44px;padding:11px 16px;font-size:15px;display:inline-flex;align-items:center;justify-content:space-between;gap:24px;transition:background .2s,color .2s}.terminal-button>span:last-child{font-size:10px;letter-spacing:.12em}.terminal-button:hover{background:#20251f;color:#f3f3eb}.terminal-button:focus-visible,.skip-intro:focus-visible,.password-toggle:focus-visible{outline:2px solid var(--accent);outline-offset:5px}.key-hint{font-size:11px;color:#8a8f82;margin-top:22px}#login-form{width:min(360px,100%);margin:auto;text-align:left}.form-caption{display:flex;justify-content:space-between;font-size:10px;color:#777d70;letter-spacing:.05em;border-top:1px solid #bfc3b6;padding-top:10px;margin-bottom:24px}.form-caption>span:last-child{font-size:9px}label{display:flex;justify-content:space-between;font-size:12px;margin:18px 0 8px;letter-spacing:.06em}label small{font-size:9px;color:#93998b}.input-shell{display:flex;border-bottom:1px solid #aeb4a2;background:#ffffff25;transition:border-color .2s}.input-shell:focus-within{border-color:var(--accent);box-shadow:0 1px var(--accent)}input{min-width:0;width:100%;padding:12px 8px;border:0;outline:none;background:transparent;color:inherit;font-size:15px;border-radius:0}input::placeholder{color:#a0a597;font-size:12px}.password-toggle{border:0;background:transparent;color:#7c8275;font-size:10px;padding:0 10px;white-space:nowrap}.form-error{color:#a63724;font-family:inherit;font-size:12px;line-height:1.7;min-height:22px;margin:12px 0}.login-submit{width:100%}.form-note{font-size:10px;line-height:1.8;color:#919789;text-align:center;margin-top:19px}.terminal-side{position:absolute;right:4%;top:32%;bottom:115px;display:flex;flex-direction:column;justify-content:space-between;font-size:9px;color:#a0a597;letter-spacing:.1em;pointer-events:none}.side-data{line-height:2.8;opacity:.5}.side-bottom b{color:var(--accent)}.terminal-footer{position:absolute;bottom:30px;left:4%;right:4%;display:flex;align-items:flex-end;justify-content:space-between;gap:20px;font-size:10px;letter-spacing:.15em;color:#919789}.footer-status{text-align:center;position:absolute;left:50%;transform:translateX(-50%);width:50%;font-size:14px;letter-spacing:.05em;color:#656d5c}.footer-status small{display:block;font-size:8px;letter-spacing:.22em;margin-top:9px;color:#999e90}.footer-brand{font-size:9px;color:#4c5344}.footer-brand b{margin-left:10px}.terminal-progress{position:fixed;bottom:0;left:0;right:0;height:3px;background:#b6bbad55;z-index:6}.terminal-progress span{display:block;height:100%;width:33.333%;background:var(--accent);transition:width .7s ease}.scanner{position:absolute;width:min(58vw,540px);aspect-ratio:1;left:50%;top:50%;transform:translate(-50%,-50%);pointer-events:none;opacity:.18}.scanner i{position:absolute;inset:0;border:5px solid transparent;border-left-color:#111b13;border-top-color:#111b13;border-radius:50%;animation:scan 3s linear infinite}.scanner i:nth-child(2){inset:18%;border-width:2px;border-color:transparent #fff #fff transparent;animation-direction:reverse}.scanner i:nth-child(3){inset:32%;border-width:1px;border-color:#202a21 transparent;animation-duration:6s}.scanner b{position:absolute;width:9px;height:9px;background:var(--accent);border-radius:50%;left:25%;top:14%}.signal-bars{display:flex;justify-content:center;align-items:end;height:24px;gap:4px;margin:50px auto 0}.signal-bars i{width:3px;height:8px;background:var(--accent);animation:signal .9s ease-in-out infinite alternate}.signal-bars i:nth-child(2){height:18px;animation-delay:.2s}.signal-bars i:nth-child(3){height:24px;animation-delay:.4s}.signal-bars i:nth-child(4){height:15px;animation-delay:.6s}.signal-bars i:nth-child(5){height:21px;animation-delay:.8s}.scene-art{position:fixed;inset:0;z-index:-1;background:#02060c url('/admin/assets/login-cyber-blue.jpg') center/cover no-repeat;opacity:0;transition:opacity .9s ease}.login-page[data-stage=welcome]{color:#d9eaff;background:#02060c}.login-page[data-stage=welcome] .scene-art{opacity:1}.login-page[data-stage=welcome] .terminal-background{opacity:0}.login-page[data-stage=welcome] .terminal-main{justify-content:flex-start;padding-left:8%}.login-page[data-stage=welcome] .terminal-scene{width:min(580px,55%);text-align:left}.login-page[data-stage=welcome] .terminal-brand{color:#c1d5e7}.login-page[data-stage=welcome] .brand-caption{color:#7992ad}.login-page[data-stage=welcome] .terminal-revision{color:#7b94ae}.login-page[data-stage=welcome] .terminal-footer,.login-page[data-stage=welcome] .footer-status,.login-page[data-stage=welcome] .footer-brand{color:#93b0cb}.login-page[data-stage=welcome] .terminal-progress span{background:#4ecaff}#welcome-title{font-size:clamp(26px,4vw,56px);letter-spacing:.13em;color:#77c4f5;margin:18px 0 6px}.welcome-brand{font-size:clamp(26px,5vw,64px);font-weight:700;margin:0 0 25px;line-height:1.2;overflow-wrap:anywhere}.welcome-chinese{font-size:14px;letter-spacing:.15em;color:#8db8d6}.welcome-code{display:block;font-size:9px;letter-spacing:.16em;margin-top:40px;color:#6d9eac}.welcome-code i{font-style:normal;color:#5af4d8;animation:signal 1s infinite alternate}@keyframes scan{to{transform:rotate(360deg)}}@keyframes signal{to{opacity:.25;transform:scaleY(.6)}}@keyframes scene-in{from{opacity:0;filter:blur(3px);transform:translateY(8px)}to{opacity:1;filter:blur(0);transform:none}}@media(max-width:760px){.terminal-background{inset:10px 12px}.terminal-brand{top:26px;left:7%;max-width:70%}.brand-caption{font-size:8px}.terminal-brand>strong{font-size:30px}.brand-system{font-size:13px}.terminal-revision{margin-top:20px;font-size:8px}.step-segments{margin-top:10px}.step-segments i{width:20px}.skip-intro{right:4%;top:26px;font-size:10px}.skip-intro span{display:none}.terminal-main{padding:220px 28px 120px;min-height:100svh}.scene-heading{margin-bottom:28px}.scene-heading h1{font-size:28px;letter-spacing:.16em}.scene-heading>p{font-size:8px;letter-spacing:.16em}.terminal-side{display:none}.terminal-footer{left:7%;right:7%;bottom:26px;font-size:8px;align-items:end}.footer-brand{font-size:8px}.footer-status{position:static;transform:none;width:auto;max-width:55%;text-align:right;font-size:10px}.footer-status small{font-size:6px;letter-spacing:.08em}.footer-brand{display:none}.scanner{width:85vw}.terminal-button{font-size:13px;gap:10px}.terminal-button>span:last-child{font-size:8px}.scene-art{background-position:65% center}.login-page[data-stage=welcome] .scene-art:after{content:'';position:absolute;inset:0;background:linear-gradient(90deg,#02060ce6,#02060c22)}.login-page[data-stage=welcome] .terminal-main{padding-left:7%}.login-page[data-stage=welcome] .terminal-scene{width:85%;margin-top:80px}.welcome-chinese{font-size:12px;letter-spacing:.04em}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important}}@media(max-height:720px) and (min-width:761px){.terminal-brand{top:26px}.terminal-revision{margin-top:20px}.terminal-main{padding-top:185px}.scene-heading{margin-bottom:20px}.scene-heading h1{font-size:32px}.terminal-footer{bottom:22px}}

.scene-art:after{content:"";position:absolute;inset:0;background:linear-gradient(0deg,#02060cd9,transparent 24%)}
.login-page[data-stage=welcome] .terminal-side{display:none}

/* RX-78 palette: white armor, cobalt blue, signal red and yellow accents. */
:root{color:#192a43;background:#f1f4f8;--accent:#d7353c;--line:#203e6c1c;--gundam-blue:#174c9e;--gundam-red:#d7353c;--gundam-yellow:#f4c545}
.login-page{background:radial-gradient(ellipse at 70% 32%,#fff 0,transparent 65%),#edf1f6}
.terminal-background{border-color:#b8c7dc66;background:linear-gradient(90deg,transparent 0 14%,#ffffff88 14% 60%,transparent 60% 77%,#dce6f533 77%)}
.terminal-brand>strong{color:var(--gundam-blue)}
.terminal-brand>strong:after{content:"";display:block;width:76px;height:4px;margin-top:12px;background:linear-gradient(90deg,var(--gundam-blue) 0 55%,var(--gundam-red) 55% 82%,var(--gundam-yellow) 82%)}
.brand-caption,.brand-system{color:#294b76}.brand-cross{color:#b5800c}
.terminal-revision{color:#758398}.terminal-revision time{color:var(--gundam-red)}
.step-segments i{background:#cbd5e3}.step-segments i.active{background:var(--gundam-red)}
.micro-label{color:var(--gundam-red)}.scene-heading h1{color:#163e76}.scene-heading>p{color:#4c668a;border-color:#a8bbd5}
.terminal-button{background:var(--gundam-blue);color:#fff;border:1px solid var(--gundam-blue);border-left:4px solid var(--gundam-red);box-shadow:0 3px 0 #0b2e60}
.terminal-button>span:last-child{color:var(--gundam-yellow)}
.terminal-button:hover{background:#103975;color:#fff}
.form-caption{border-top-color:#a8bbd5;border-left:3px solid var(--gundam-yellow);padding-left:9px;color:#476187}
label{color:#294365}label small{color:#7c8ba0}
.input-shell{border-color:#a5b7d0;background:#ffffff66}.input-shell:focus-within{border-color:var(--gundam-blue);box-shadow:0 1px var(--gundam-blue)}
input::placeholder{color:#8b99ac}.password-toggle{color:#43628e}
.form-note,.key-hint{color:#78889d}.form-error{color:#b3242e}.skip-intro{color:#43628e}
.scanner i{border-left-color:var(--gundam-blue);border-top-color:var(--gundam-blue)}
.scanner i:nth-child(2){border-color:transparent var(--gundam-red) var(--gundam-red) transparent}
.scanner i:nth-child(3){border-color:#174c9e transparent}.scanner b{background:var(--gundam-yellow)}
.signal-bars i{background:var(--gundam-blue)}.signal-bars i:nth-child(3){background:var(--gundam-red)}.signal-bars i:nth-child(5){background:#bc8d0b}
.terminal-side,.terminal-footer{color:#7d8da5}.side-bottom b,.footer-brand b{color:var(--gundam-red)}
.footer-status{color:#435b7e}.footer-status small{color:#8594aa}.footer-brand{color:#294365}
.terminal-progress span,.login-page[data-stage=welcome] .terminal-progress span{background:linear-gradient(90deg,#174c9e 0 78%,#d7353c 78% 94%,#f4c545 94%)}
.login-page[data-stage=welcome] .terminal-brand>strong{color:#f5f8ff}
.login-page[data-stage=welcome] .brand-system{color:#b5cbe9}
.login-page[data-stage=welcome] .micro-label{color:#f4c545}
#welcome-title{color:#92baff}.welcome-code i{color:#f4c545}

/* Wallpaper + independent full-screen second act, then opaque login content. */
.wallpaper-ready .scene-art{opacity:1}
.wallpaper-ready:not([data-stage=welcome]) .scene-art:after{background:linear-gradient(90deg,#edf2f9f5 0%,#edf2f9e3 48%,#e4ebf7a6 100%);transition:background .8s}
.wallpaper-ready .terminal-background{opacity:.45}
.wallpaper-banner{position:fixed;inset:40% 0 auto;z-index:-1;text-align:center;font-size:clamp(140px,30vw,440px);font-weight:900;line-height:1;letter-spacing:-.06em;opacity:0;color:#174c9e;pointer-events:none;user-select:none;white-space:nowrap;overflow:hidden;transition:opacity .8s}
.wallpaper-ready .wallpaper-banner{opacity:.045}
.wallpaper-ready[data-stage=welcome] .wallpaper-banner{opacity:0}
.wallpaper-ready #identity-scene{width:min(470px,100%);padding:26px 36px 20px;background:#fff;border:1px solid #c4d2e6;border-top:3px solid #174c9e;box-shadow:0 18px 60px #112e6512;position:relative}
.wallpaper-ready #identity-scene:before{content:'';position:absolute;top:-3px;right:0;width:54px;height:3px;background:linear-gradient(90deg,#d7353c 0 70%,#f4c545 70%)}
.wallpaper-ready #identity-scene .scene-heading{margin-bottom:24px}
.wallpaper-ready #identity-scene .scene-heading h1{font-size:30px;letter-spacing:.16em}
.wallpaper-ready #identity-scene .scene-heading>p{font-size:9px;letter-spacing:.2em}
.wallpaper-ready .terminal-side{display:none}
.wallpaper-ready .terminal-main{padding-top:210px;padding-bottom:115px}
.replay-intro{position:absolute;right:4%;top:42px;padding:12px;border:0;background:transparent;color:#43628e;font-size:11px;z-index:45}
.replay-intro:focus-visible{outline:2px solid #d7353c;outline-offset:3px}
.skip-intro{z-index:45}
.wallpaper-intro{position:fixed;inset:0;z-index:40;pointer-events:none;overflow:hidden;background:#030915 url('/admin/assets/login-cyber-blue.jpg') center/cover no-repeat;opacity:1;transform:scale(1);transition:opacity 780ms cubic-bezier(.4,0,.2,1),transform 780ms ease,filter 780ms ease}
.wallpaper-intro:before{content:'';position:absolute;inset:0;background:linear-gradient(90deg,#02060ce6,transparent 76%)}
.wallpaper-intro:after{content:'';position:absolute;inset:0;background:linear-gradient(transparent 49.7%,#97c5ff12 50%,transparent 50.3%);background-size:100% 7px;opacity:.35}
.wallpaper-intro.leaving{opacity:0;transform:scale(1.035);filter:blur(5px)}
.intro-copy{position:absolute;left:8%;top:44%;transform:translateY(-30%);color:#dcecff;max-width:60%;animation:intro-reveal 1.4s ease both}
.intro-copy>span{font-size:10px;letter-spacing:.25em;color:#f4c545}
.intro-copy strong{display:block;margin:18px 0;font-size:clamp(70px,12vw,180px);font-weight:900;letter-spacing:-.05em;line-height:1;color:#dcecff;text-shadow:0 0 40px #427ddd44}
.intro-copy p{font-size:17px;letter-spacing:.18em;color:#a9ccf6}
.intro-copy small{font-size:9px;letter-spacing:.3em;color:#7897c3}
.intro-caption{position:absolute;left:8%;right:6%;bottom:8%;display:flex;justify-content:space-between;gap:20px;font-size:9px;letter-spacing:.15em;color:#91a8cd}
.intro-caption:before{content:'';position:absolute;left:0;right:0;bottom:-18px;height:2px;background:linear-gradient(90deg,#174c9e 0 78%,#d7353c 78% 94%,#f4c545 94%);transform-origin:left;animation:intro-progress 1.8s linear both}
.intro-orbit{position:absolute;left:5%;top:28%;width:50%;height:40%;border-top:1px solid #8fcaff44;border-radius:50%;transform:rotate(-16deg);opacity:.4}
[data-stage=intro] .skip-intro{position:fixed;color:#f1f6ff;background:#0b1c38b3;border:1px solid #93b5e944}
@keyframes intro-reveal{from{opacity:0;transform:translate(-12px,-30%);filter:blur(6px)}to{opacity:1;transform:translate(0,-30%);filter:blur(0)}}
@keyframes intro-progress{from{transform:scaleX(0)}to{transform:scaleX(1)}}
@media(max-width:760px){.wallpaper-ready #identity-scene{padding:24px 18px 18px}.wallpaper-ready #identity-scene .scene-heading h1{font-size:25px}.wallpaper-ready .terminal-main{padding-top:210px;padding-left:20px;padding-right:20px}.replay-intro{top:26px;right:4%;font-size:10px}.wallpaper-ready:not([data-stage=welcome]) .scene-art:after{background:linear-gradient(90deg,#edf2f9ed,#e4ebf7c9)}.wallpaper-intro{background-position:65% center}.intro-copy{left:7%;top:48%;max-width:85%}.intro-copy strong{font-size:90px}.intro-copy p{font-size:13px;letter-spacing:.08em}.intro-copy small{font-size:8px;letter-spacing:.1em}.intro-caption{left:7%;right:7%;font-size:8px}.intro-caption>span:last-child{display:none}}
@media(prefers-reduced-motion:reduce){.wallpaper-intro{transition:none}}
