/* 3.9 第二轮：门的根节点类名用 .gt-root（原来是 .gt，和管理端首页卡片 .gt 撞名——舞台里后台首页被门的样式盖成一片白） */
/* ExGate · 锁屏 + 登录（暖白舞台 + 克莱因蓝） */
.gt-root{position:fixed;inset:0;z-index:100;background:#F4F4F6;color:#12141C;font-family:Figtree,"Noto Sans SC","Noto Sans JP","Noto Sans KR",sans-serif;overflow:hidden;transition:opacity .8s ease,transform .8s cubic-bezier(.7,0,.2,1)}
.gt-root.is-out{opacity:0;transform:scale(1.04);pointer-events:none}
.gt-glow{position:absolute;inset:-20%;background:radial-gradient(60% 50% at 50% 38%,#FFFFFF 0%,rgba(255,255,255,0) 70%),radial-gradient(40% 30% at 50% 100%,rgba(0,47,167,.05),rgba(0,47,167,0) 70%);pointer-events:none}
.gt-lang{position:absolute;top:22px;right:24px;display:flex;gap:4px;z-index:3;background:#fff;border-radius:999px;padding:4px;box-shadow:0 0 0 .5px rgba(11,18,48,.12),0 10px 24px -14px rgba(0,26,110,.2)}
.gt-lang button{all:unset;cursor:pointer;min-width:30px;height:28px;padding:0 8px;border-radius:999px;text-align:center;font:700 12.5px/28px Figtree,sans-serif;color:#5B5F6E}
.gt-lang button.on{background:#002FA7;color:#fff}
.gt-root section{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;transition:opacity .55s ease,transform .7s cubic-bezier(.2,.8,.2,1)}
/* 锁屏 */
.gt-lock{cursor:pointer;gap:6px}
.gt-time{font:900 clamp(84px,12vw,148px)/1 Nunito,"Noto Sans SC",sans-serif;letter-spacing:-.03em;color:#12141C;font-variant-numeric:tabular-nums}
.gt-date{font-weight:600;font-size:18px;color:#5B5F6E;margin-bottom:56px}
.gt-brand{display:flex;justify-content:center}
.gt-title{margin-top:12px;font-weight:700;font-size:13px;letter-spacing:.32em;color:#9A9DAB;text-transform:uppercase}
.gt-hint{all:unset;cursor:pointer;position:absolute;bottom:56px;left:50%;transform:translateX(-50%);display:flex;align-items:center;gap:10px;font-weight:700;font-size:14px;color:#5B5F6E}
.gt-hint i{width:10px;height:10px;border-radius:50%;background:#fff;box-shadow:0 0 0 .5px rgba(11,18,48,.18),0 4px 10px -3px rgba(0,26,110,.35);animation:gtPulse 1.8s ease-in-out infinite}
@keyframes gtPulse{0%,100%{transform:scale(1)}50%{transform:scale(1.35)}}
/* 选入口 */
.gt-pick{gap:18px}
.gt-brand.sm{transform:scale(.8)}
.gt-pick h2{margin:6px 0 18px;font:800 22px/1.3 Nunito,"Noto Sans SC",sans-serif;color:#12141C}
.gt-entries{display:flex;gap:22px;flex-wrap:wrap;justify-content:center;padding:0 16px}
.gt-entry{all:unset;cursor:pointer;position:relative;width:280px;max-width:calc(100vw - 32px);box-sizing:border-box;padding:28px 26px 24px;border-radius:26px;background:#fff;box-shadow:0 0 0 .5px rgba(11,18,48,.10),0 30px 60px -30px rgba(0,26,110,.35);display:flex;flex-direction:column;gap:6px;transition:transform .35s cubic-bezier(.2,.8,.2,1),box-shadow .35s}
.gt-entry:hover,.gt-entry:focus-visible{transform:translateY(-4px);box-shadow:0 0 0 2px #002FA7,0 36px 70px -30px rgba(0,26,110,.45)}
.gt-entry .ic,.gt-ehead .ic{width:46px;height:46px;border-radius:15px;background:#EEF2FF;color:#002FA7;display:grid;place-items:center;margin-bottom:10px}
.gt-entry b{font:800 20px/1.25 Nunito,"Noto Sans SC",sans-serif}
.gt-entry small{font-size:13.5px;line-height:1.5;color:#5B5F6E}
.gt-entry em{position:absolute;top:26px;right:24px;font-style:normal;font:600 11px/1 "IBM Plex Mono",monospace;letter-spacing:.08em;color:#9A9DAB}
/* 登录 */
.gt-login{gap:18px}
.gt-back{all:unset;cursor:pointer;position:absolute;top:18px;left:22px;width:40px;height:40px;border-radius:50%;background:#fff;display:grid;place-items:center;font-size:26px;line-height:1;color:#12141C;box-shadow:0 0 0 .5px rgba(11,18,48,.12)}
.gt-ehead{display:flex;flex-direction:column;align-items:center;gap:6px;width:340px;max-width:calc(100vw - 32px);text-align:center}
.gt-ehead .ic{margin:0;flex:none}
.gt-ehead b{display:block;font:900 24px/1.25 Nunito,"Noto Sans SC","Noto Sans JP","Noto Sans KR",sans-serif}.gt-ehead small{color:#5B5F6E;font-size:13.5px}
.gt-login form{width:340px;max-width:calc(100vw - 32px);background:#fff;border-radius:26px;padding:24px;box-sizing:border-box;display:flex;flex-direction:column;gap:14px;box-shadow:0 0 0 .5px rgba(11,18,48,.10),0 30px 60px -30px rgba(0,26,110,.35)}
.gt-login label{display:flex;flex-direction:column;gap:7px;font-weight:700;font-size:13px;color:#5B5F6E}
.gt-login input{all:unset;height:46px;padding:0 14px;border-radius:14px;background:#F5F5F7;font:600 16px Figtree,sans-serif;color:#12141C;box-shadow:inset 0 0 0 1px #E6E7EC;transition:box-shadow .2s}
.gt-login input:focus{box-shadow:inset 0 0 0 2px #002FA7;background:#fff}
.gt-err{min-height:18px;font-size:13px;font-weight:700;color:#B42828}
.gt-go{all:unset;cursor:pointer;height:50px;border-radius:999px;background:#002FA7;color:#fff;font:800 15.5px/50px Figtree,"Noto Sans SC",sans-serif;text-align:center;box-shadow:0 20px 34px -22px rgba(0,47,167,.8);transition:transform .2s}
.gt-go:active{transform:scale(.98)}
.gt-go.is-busy{opacity:.6;pointer-events:none}
.shake{animation:gtShake .42s}
@keyframes gtShake{20%,60%{transform:translateX(-8px)}40%,80%{transform:translateX(8px)}}
/* 状态切换 */
.gt-root section{opacity:0;pointer-events:none;transform:translateY(24px)}
.gt-root[data-st=lock] .gt-lock,.gt-root[data-st=pick] .gt-pick,.gt-root[data-st=login] .gt-login,.gt-root[data-st=in] .gt-login{opacity:1;pointer-events:auto;transform:none}
.gt-root[data-st=login] .gt-lock{transform:translateY(-60px)}
.gt-root[data-st=in] .gt-login{opacity:0;transform:scale(.96)}
.gt-root[data-st=pick] .gt-entry{animation:gtIn .6s cubic-bezier(.2,.8,.2,1) both;animation-delay:calc(var(--i)*80ms + 120ms)}
@keyframes gtIn{from{opacity:0;transform:translateY(18px)}}
@media (prefers-reduced-motion:reduce){.gt-root section,.gt-entry{transition:none!important;animation:none!important}}
