/* 梦想家 · 统一登录（慧眼 v5.2.0 token；卡片 10 / 控件 6；无左侧色条；动效只有很慢的光场漂移，减少动态效果时静止） */
@font-face{font-family:SVMono;src:url(fonts/jbm-Regular.woff) format("woff")}
:root{--bg0:#03070F;--bd:rgba(120,200,235,.16);--bdHi:rgba(120,220,245,.38);--cyan:#3DDCE8;--green:#2EE6A6;--amber:#E7B04F;--red:#F06B76;
--t0:#F3F7FC;--t1:#CDD8E5;--t2:#8C9DB2;--t3:#5B6C82;--sans:'PingFang SC','Microsoft YaHei','Noto Sans SC','Noto Sans CJK SC',sans-serif;--num:'SVMono',ui-monospace,monospace}
*{box-sizing:border-box}html,body{height:100%}body{margin:0;background:var(--bg0);color:var(--t0);font:14px/1.55 var(--sans);-webkit-font-smoothing:antialiased;overflow-x:hidden}
.num{font-family:var(--num);font-variant-numeric:tabular-nums;letter-spacing:-.02em}[hidden]{display:none!important}
/* —— 背景：光场 + 星点 + 透视网格 + 仪表弧线 —— */
.scene{position:fixed;inset:0;z-index:0;pointer-events:none;overflow:hidden;background:radial-gradient(120% 90% at 50% 120%,#071A2C 0%,#040A15 55%,#03070F 100%)}
.field{position:absolute;inset:-20%;opacity:.75;background:
 radial-gradient(38% 42% at 24% 62%,rgba(40,190,220,.20),transparent 70%),
 radial-gradient(34% 40% at 82% 18%,rgba(98,110,240,.16),transparent 70%),
 radial-gradient(30% 30% at 70% 88%,rgba(46,230,166,.07),transparent 70%);animation:drift 48s ease-in-out infinite alternate}
@keyframes drift{0%{transform:translate3d(0,0,0) scale(1)}100%{transform:translate3d(2.5%,-2%,0) scale(1.06)}}
.stars{position:absolute;inset:0;opacity:.55;background-image:
 radial-gradient(1px 1px at 12% 18%,rgba(255,255,255,.55),transparent 60%),radial-gradient(1px 1px at 72% 12%,rgba(255,255,255,.4),transparent 60%),
 radial-gradient(1px 1px at 38% 42%,rgba(180,240,255,.35),transparent 60%),radial-gradient(1px 1px at 88% 56%,rgba(255,255,255,.35),transparent 60%),
 radial-gradient(1px 1px at 58% 78%,rgba(180,240,255,.3),transparent 60%),radial-gradient(1px 1px at 22% 86%,rgba(255,255,255,.3),transparent 60%);background-size:620px 620px}
.floor{position:absolute;left:-25%;right:-25%;bottom:-8%;height:52%;transform:perspective(700px) rotateX(62deg);transform-origin:50% 100%;
 background-image:linear-gradient(rgba(120,200,235,.08) 1px,transparent 1px),linear-gradient(90deg,rgba(120,200,235,.08) 1px,transparent 1px);background-size:64px 64px;
 -webkit-mask-image:linear-gradient(to top,#000 0%,transparent 85%);mask-image:linear-gradient(to top,#000 0%,transparent 85%)}
.rings{position:absolute;left:30%;top:50%;width:1100px;height:1100px;transform:translate(-50%,-50%);border-radius:50%;
 background:radial-gradient(circle,transparent 31%,rgba(120,210,240,.07) 31.1%,transparent 31.3%,transparent 45%,rgba(120,210,240,.05) 45.1%,transparent 45.3%,transparent 61%,rgba(120,210,240,.035) 61.1%,transparent 61.3%)}
.cv{position:absolute;inset:0;width:100%;height:100%}
.vig{position:absolute;inset:0;background:radial-gradient(120% 100% at 50% 40%,transparent 55%,rgba(0,0,0,.55) 100%)}
/* —— 构图 —— */
.wrap{position:relative;z-index:1;min-height:100vh;display:flex;flex-direction:column}
.stage{flex:1;width:100%;max-width:1320px;margin:0 auto;padding:56px clamp(24px,5vw,72px);display:grid;grid-template-columns:minmax(0,1fr) 460px;gap:clamp(40px,7vw,120px);align-items:center}
.brand{position:relative}
.brand .en{font:500 11px/1 var(--num);letter-spacing:.42em;color:rgba(160,225,240,.62);text-transform:uppercase;display:flex;align-items:center;gap:14px}
.brand .en::before{content:"";width:36px;height:1px;background:linear-gradient(90deg,rgba(61,220,232,.8),transparent)}
.word{margin:16px 0 0;font-size:clamp(36px,3vw,52px);line-height:1.15;font-weight:700;letter-spacing:.06em;
 background:linear-gradient(180deg,#FFFFFF 0%,#E6F6FB 46%,#9ED9E8 100%);-webkit-background-clip:text;background-clip:text;color:transparent;
 filter:drop-shadow(0 0 28px rgba(61,220,232,.22))}
.slogan{margin:12px 0 0;font-size:clamp(15px,1.2vw,18px);font-weight:300;letter-spacing:.18em;color:var(--t1)}
.marks{display:flex;gap:28px;margin-top:54px;color:var(--t3);font:11px var(--num);letter-spacing:.2em}
.marks span{display:flex;align-items:center;gap:8px}.marks i{width:5px;height:5px;border-radius:50%;background:rgba(61,220,232,.7);box-shadow:0 0 10px rgba(61,220,232,.6)}
/* —— 登录卡：玻璃质感（轻模糊 8px + 半透明渐变 + 高光描边） —— */
.card{position:relative;border-radius:10px;border:1px solid var(--bd);
 background:linear-gradient(180deg,rgba(22,40,68,.62),rgba(8,16,30,.74));-webkit-backdrop-filter:blur(8px) saturate(120%);backdrop-filter:blur(8px) saturate(120%);
 box-shadow:inset 0 1px 0 rgba(255,255,255,.07),0 40px 80px -30px rgba(0,0,0,.8),0 0 0 1px rgba(0,0,0,.25)}
.card::before{content:"";position:absolute;top:-1px;left:12%;right:12%;height:1px;background:linear-gradient(90deg,transparent,rgba(140,235,250,.85),transparent)}
.card::after{content:"";position:absolute;inset:0;border-radius:10px;background:radial-gradient(120% 60% at 50% -10%,rgba(61,220,232,.09),transparent 60%);pointer-events:none}
.login{padding:48px 44px 40px}.login>*{position:relative;z-index:1}
.login h2{margin:0;font-size:28px;font-weight:600;letter-spacing:.02em}.login .sub{margin:10px 0 0;color:var(--t2);font-size:14px}
.f{margin-top:22px}.f label{display:block;color:var(--t2);font-size:13px;margin-bottom:8px}
.ip{position:relative}.ip input{width:100%;height:50px;border-radius:6px;border:1px solid rgba(120,200,235,.18);background:rgba(3,8,16,.6);color:var(--t0);font:15px var(--sans);padding:0 16px;outline:none;transition:border-color .2s,box-shadow .2s,background .2s}
.ip input::placeholder{color:#4A5A70}.ip input:hover{border-color:rgba(120,200,235,.3)}
.ip input:focus{border-color:rgba(61,220,232,.65);background:rgba(3,10,20,.75);box-shadow:0 0 0 4px rgba(61,220,232,.10)}.ip input.bad{border-color:rgba(240,107,118,.65)}
.ip .eye{position:absolute;right:8px;top:10px;height:30px;padding:0 10px;border:0;background:transparent;color:var(--t2);font:13px var(--sans);cursor:pointer;border-radius:4px}.ip .eye:hover{color:var(--t0)}
.ip.pw input{padding-right:64px}
.hint{margin-top:8px;font-size:12.5px;color:var(--amber);display:none}.hint.on{display:block}
.row{display:flex;align-items:center;justify-content:space-between;margin-top:18px;font-size:13.5px;color:var(--t2)}
.row label{display:flex;align-items:center;gap:8px;cursor:pointer}.row input[type=checkbox]{accent-color:#3DDCE8;width:15px;height:15px;margin:0}
.link{background:none;border:0;color:var(--t2);font:13.5px var(--sans);cursor:pointer;padding:0}.link:hover{color:var(--cyan)}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;height:34px;padding:0 16px;border-radius:6px;border:1px solid var(--bd);background:rgba(5,11,21,.6);color:var(--t1);font:13px var(--sans);cursor:pointer;text-decoration:none;transition:all .2s}
.btn.pri{border:0;background:linear-gradient(180deg,#46E3EE 0%,#1FB8CC 100%);color:#03141B;font-weight:600;box-shadow:0 10px 26px -10px rgba(61,220,232,.55),inset 0 1px 0 rgba(255,255,255,.35)}
.btn.pri:hover{filter:brightness(1.06);box-shadow:0 12px 30px -10px rgba(61,220,232,.7),inset 0 1px 0 rgba(255,255,255,.35)}
.btn.big{width:100%;height:52px;font-size:16px;letter-spacing:.2em;margin-top:28px}.btn[disabled]{opacity:.6;cursor:not-allowed;filter:none}
.btn:not(.pri).big{letter-spacing:.05em}
.spin{width:16px;height:16px;border-radius:50%;border:2px solid rgba(3,20,27,.25);border-top-color:#03141B;animation:sp .8s linear infinite;display:none}.btn.loading .spin{display:inline-block}
@keyframes sp{to{transform:rotate(360deg)}}
.msg{margin-top:18px;padding:12px 14px;border-radius:8px;font-size:13.5px;display:none;border:1px solid}.msg.on{display:block}
.msg.err{border-color:rgba(240,107,118,.42);background:rgba(240,107,118,.08);color:#F8C9CE}.msg.warn{border-color:rgba(231,176,79,.42);background:rgba(231,176,79,.08);color:#F1DCAE}
.msg.info{border-color:var(--bd);background:rgba(5,11,21,.5);color:var(--t1)}.msg b{color:var(--t0);font-weight:600}.msg .cd{font-family:var(--num);color:var(--amber);font-size:16px}
.rules{margin:12px 0 0;padding:0;list-style:none;display:grid;grid-template-columns:1fr 1fr;gap:6px 12px;font-size:12.5px;color:var(--t3)}.rules li::before{content:"○ "}.rules li.ok{color:var(--green)}.rules li.ok::before{content:"✓ "}
.meter{display:flex;gap:5px;margin-top:10px}.meter i{flex:1;height:3px;border-radius:2px;background:#16263B}.meter.s1 i:nth-child(1){background:var(--red)}.meter.s2 i:nth-child(-n+2){background:var(--amber)}.meter.s3 i{background:var(--green)}
.step{display:none}.step.on{display:block}
.foot{position:relative;z-index:1;display:flex;justify-content:center;gap:14px;padding:0 0 26px;color:var(--t3);font-size:12px;letter-spacing:.06em}.foot .v{font:10.5px var(--num);opacity:.6}
.fade{animation:wIn .8s cubic-bezier(.22,.8,.26,1) both}.fade.d1{animation-delay:.08s}.fade.d2{animation-delay:.16s}
@keyframes wIn{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}
@media (min-width:1680px){.stage{max-width:1560px;grid-template-columns:minmax(0,1fr) 520px}.word{font-size:52px}.slogan{font-size:18px}.login{padding:56px 52px 48px}.login h2{font-size:32px}.ip input{height:54px;font-size:16px}.btn.big{height:56px}.brand .en{font-size:12px}}
@media (max-width:1100px){.stage{grid-template-columns:minmax(0,1fr) 420px}.login{padding:40px 34px 34px}}
@media (max-width:900px){.stage{grid-template-columns:1fr;max-width:520px;gap:36px;padding:56px 22px 32px;align-content:center}
 .brand{text-align:center}.brand .en{justify-content:center}.brand .en::before{display:none}.word{font-size:34px;margin-top:10px}.slogan{margin-top:10px;font-size:14px;letter-spacing:.12em}.marks{display:none}
 .rings{left:50%;top:22%;width:760px;height:760px}}
@media (max-width:420px){.login{padding:32px 22px 26px}.login h2{font-size:24px}.word{font-size:32px}.slogan{font-size:13px}}
@media (prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important}}
/* —— 品牌区字体（本地托管子集；正文 / 输入框 / 按钮不变） —— */
@font-face{font-family:MXJ-Serif;src:url(fonts/brand-serif-bold.woff) format("woff");font-weight:700;font-display:swap}
@font-face{font-family:MXJ-Serif;src:url(fonts/brand-serif-regular.woff) format("woff");font-weight:400;font-display:swap}
@font-face{font-family:MXJ-Cinzel;src:url(fonts/brand-cinzel.woff) format("woff");font-weight:400 900;font-display:swap}
.word{font-family:MXJ-Serif,'Noto Serif CJK SC','Source Han Serif SC','Songti SC',serif;font-weight:700;letter-spacing:.1em}
.slogan{font-family:MXJ-Serif,'Noto Serif CJK SC','Source Han Serif SC','Songti SC',serif;font-weight:400;letter-spacing:.24em}
.brand .en{font-family:MXJ-Cinzel,serif;font-weight:600;font-size:11px;letter-spacing:.38em;text-transform:uppercase}
/* 字标尺寸已对齐素材云登录标题（1440≈43px / 1920≈52px / 手机 32–34px）；勿再加大 */
