:root{color-scheme:dark;font-family:"Segoe UI","PingFang SC","Microsoft YaHei",sans-serif;color:#f5eee5;background:#05040a;font-synthesis:none;-webkit-font-smoothing:antialiased}
*{box-sizing:border-box}
body{margin:0;min-width:280px;min-height:100vh;min-height:100dvh;overflow-x:clip;isolation:isolate}
button,input{font:inherit;-webkit-tap-highlight-color:transparent}
button{cursor:pointer}
button:focus-visible{outline:2px solid #63ecdd;outline-offset:4px}
[hidden]{display:none!important}
svg{fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}
.game-scene{display:none}
.cosmic-sky{position:fixed;inset:0;z-index:-1;overflow:hidden;background:#020409;pointer-events:none}
.cosmic-sky canvas{display:block;width:100%;height:100%;opacity:.92;transition:opacity .65s}
body[data-entry-phase="ready"] .cosmic-sky canvas{opacity:.3}
body[data-entry-phase="flight"] .cosmic-sky canvas{opacity:.95}
body[data-entry-phase="login"] .cosmic-sky canvas{opacity:.92}
.cosmic-sky:after{content:"";position:absolute;inset:0;background:radial-gradient(ellipse,transparent 38%,#01030750 100%)}
.sky-fallback{background-image:radial-gradient(1px 1px at 12px 29px,#a3b2cb 80%,transparent),radial-gradient(1px 1px at 75px 107px,#a3b2cb 80%,transparent);background-size:181px 167px,257px 239px}
.entry-stage{position:relative;min-height:100vh;min-height:100dvh;display:grid;place-items:center;overflow:hidden}
.entry-brand{position:absolute;left:38px;bottom:30px;color:#bad7ee;font-size:12px;letter-spacing:4px}
.entry-brand>span{display:block;color:#809db5;letter-spacing:2.5px;font-size:8px;margin-top:8px}
.entry-center{position:relative;display:grid;place-items:center}
.entry-button{position:relative;width:clamp(190px,20vw,248px);aspect-ratio:1;border:0;border-radius:50%;padding:0;background:transparent;color:#e7f3ff;transition:transform .45s cubic-bezier(.2,.7,.2,1);isolation:isolate}
.entry-button:focus-visible{outline:1px solid #b1d9fb;outline-offset:12px}
.entry-rings{position:absolute;inset:0;width:100%;height:100%;overflow:visible}
.entry-rings circle{fill:none;stroke-width:.65;transform-origin:110px 110px}
.entry-ring-track{stroke:#b8d6ee30}
.entry-ring-draw{stroke:#c2e4ff;stroke-dasharray:100;stroke-dashoffset:100;transform:rotate(-90deg);animation:entry-draw 1.6s cubic-bezier(.3,.2,.2,1) forwards}
.entry-ring-inner{stroke:#9bdde25c;stroke-width:.5!important;stroke-dasharray:1 3;transition:transform .5s,opacity .5s}
.entry-button-copy{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:9px;font-size:12px;font-weight:400;letter-spacing:4px;padding-left:4px}
.entry-button-copy small{font-size:7px;letter-spacing:2px;color:#829cb7;padding-right:2px}
.entry-button:hover{transform:scale(1.04)}
.entry-button:hover .entry-ring-inner{transform:scale(.96);opacity:.5}
body[data-entry-phase="flight"] .entry-button{pointer-events:none;transform:scale(5);opacity:0;transition:transform 1.1s cubic-bezier(.4,0,.65,.4),opacity .75s .12s}
body[data-entry-phase="flight"] .entry-button-copy{opacity:0;transition:opacity .2s}
body[data-entry-phase="flight"] .entry-brand{opacity:0}
body[data-entry-phase="login"] .login-region{animation:login-arrive .75s ease both}
@keyframes entry-draw{to{stroke-dashoffset:0}}
@keyframes login-arrive{from{opacity:0}to{opacity:1}}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.login-layout{display:grid;place-items:center;min-height:100vh;min-height:100dvh;padding:30px 22px;overflow:clip}
.login-region{position:relative;width:460px;max-width:100%;min-width:0}
.login-heading{text-align:center;margin-bottom:21px;text-shadow:0 2px 14px #08060ba3}
h1{display:flex;flex-direction:column;align-items:center;gap:5px;margin:0;line-height:1}
.title-cn{font-size:20px;font-weight:500;letter-spacing:8px;padding-left:8px;color:#d5e6f4;text-shadow:0 2px 12px #000}
.title-en{display:block;max-width:100%;font-family:"Segoe UI","Arial",sans-serif;font-size:39px;font-weight:300;line-height:1.25;letter-spacing:4px;color:#edf5ff;text-shadow:0 2px 18px #000}
.login-panel{position:relative;padding:26px 32px 24px;border:1px solid #d5eaff29;border-radius:12px;background:#091422b8;box-shadow:0 22px 75px #0009,inset 0 1px #ffffff08;backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px)}
.panel-title{margin:0 0 17px;color:#fff;font-size:20px;font-weight:750;line-height:1.3}
.auth-tabs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin:0 0 26px;border-bottom:1px solid #ffffff12}
.auth-tabs button{position:relative;min-width:0;min-height:41px;padding:8px 4px 13px;border:0;background:transparent;color:#c6cbd3;font-size:14px;font-weight:500;white-space:nowrap;transition:color .18s}
.auth-tabs button[aria-selected="true"]{color:#60f4df}
.auth-tabs button[aria-selected="true"]:after{content:"";position:absolute;bottom:0;left:50%;width:30px;height:2px;border-radius:1px;background:currentColor;transform:translateX(-50%)}
.form-field{margin-bottom:2px}
.input-wrap{display:flex;align-items:center;gap:14px;height:51px;padding:0 15px;border:1px solid transparent;border-radius:5px;background:#f7f8fa;transition:border-color .18s,box-shadow .18s}
.input-wrap:focus-within{border-color:#23c5b5;box-shadow:0 0 0 3px #3de1cd33}
.input-wrap:has([aria-invalid="true"]){border-color:#ff8c9f;box-shadow:0 0 0 2px #ff8c9f26}
.input-wrap input{width:100%;min-width:0;height:100%;border:0;outline:0;padding:0;background:transparent;color:#252b34;caret-color:#252b34;color-scheme:light;font-size:14px;letter-spacing:.2px}
.input-wrap input::placeholder{color:#717680;opacity:1}
.input-wrap input:-webkit-autofill{-webkit-text-fill-color:#252b34;box-shadow:0 0 0 1000px #f7f8fa inset;caret-color:#252b34;border-radius:3px}
.phone-prefix{flex:none;padding-right:14px;border-right:1px solid #d9dce1;color:#343943;font-size:14px;line-height:20px}
.field-prefix{flex:none;width:46px;color:#343943;font-size:14px;font-weight:500;line-height:20px}
.input-wrap.code-wrap{gap:8px;padding-right:12px}
.code-send{flex:none;min-height:36px;padding:4px 2px 4px 10px;border:0;border-left:1px solid #e1e3e7;background:transparent;color:#087c56;font-size:12px;font-weight:650;white-space:nowrap}
.code-send:hover{color:#045a3d}
.field-error{display:block;min-height:23px;padding-top:4px;font-size:11px;color:#ffc0cb;line-height:1.5}
.password-toggle{display:grid;place-items:center;flex:none;width:34px;height:38px;margin-right:-7px;padding:8px;border:0;border-radius:4px;background:transparent;color:#727883}
.password-toggle:hover{color:#252b34}
.password-toggle svg{width:18px;height:18px}
.eye-closed,.password-toggle.is-visible .eye-open{display:none}
.password-toggle.is-visible .eye-closed{display:block}
.login-submit{position:relative;width:100%;height:50px;display:flex;justify-content:center;align-items:center;margin-top:12px;padding:0 20px;border:0;border-radius:5px;background:linear-gradient(105deg,#8cffa9,#05c6e8);color:#102b31;font-size:15px;font-weight:750;letter-spacing:1px;transition:filter .18s,transform .18s}
.login-submit:hover{filter:brightness(1.07)}
.login-submit:active{filter:brightness(.96);transform:translateY(1px)}
.login-submit[aria-busy="true"]{gap:10px}
.login-submit[aria-busy="true"]:before{content:"";width:14px;height:14px;border:2px solid #18373838;border-top-color:#183738;border-radius:50%;animation:auth-spin .75s linear infinite}
body[data-auth-transition="entering"] .login-region{pointer-events:none;animation:auth-depart .4s ease both}
body[data-account-state="signed-in"] #work-hub:not([hidden]){animation:workspace-arrive .5s ease both}
@keyframes auth-spin{to{transform:rotate(360deg)}}
@keyframes auth-depart{to{opacity:0;transform:translateY(-12px) scale(.96)}}
@keyframes workspace-arrive{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}
.form-message{font-size:12px;color:#c5f4e9;line-height:1.8;margin:17px 0 0}
.form-message[data-state="error"]{color:#ffc0cb}
.login-submit:disabled,.logout-button:disabled{cursor:wait;filter:saturate(.45);opacity:.7}
.account-actions{display:flex;align-items:center;justify-content:center;gap:6px;margin:20px 0 0;color:#c0c6d0;font-size:12px}
.auth-link{min-height:32px;padding:3px 4px;border:0;border-radius:3px;background:transparent;color:#60f4df;font-size:12px}
.auth-link:hover{color:#a4fff0}
.auth-link:disabled{cursor:wait;opacity:.6}
.account-guidance{margin:0 0 10px;color:#c2cad5;font-size:11px;line-height:1.8}
.coming-soon,.signed-in{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:224px;text-align:center}
.coming-soon-orbit,.signed-in-mark{display:grid;place-items:center;width:52px;height:52px;margin-bottom:16px;border:1px solid #60f4df55;border-radius:50%;color:#60f4df;font-size:24px}
.coming-soon h3{margin:0;color:#eaf6f4;font-size:23px;font-weight:600;letter-spacing:5px;padding-left:5px}
.coming-soon p{margin:12px 0 18px;color:#bac4ce;font-size:12px;line-height:1.7}
.signed-in p{margin:0 0 10px;color:#f4f7fa;font-size:17px;line-height:1.7;overflow-wrap:anywhere}
.signed-in-caption{color:#bac4ce;font-size:12px}
.logout-button{min-height:42px;margin-top:26px;padding:9px 28px;border:1px solid #6ce3d073;border-radius:5px;background:transparent;color:#76eddb;font-size:13px}
.logout-button:hover{background:#6ce3d014}
.preview-note{margin:19px 0 0;font-size:10px;line-height:1.7;color:#b8bec9;letter-spacing:.3px;text-align:center}
.noscript-note{margin:0;padding:15px;text-align:center;background:#171126;color:#d7c9df;font-size:12px}
@media(max-width:480px){.login-layout{padding:25px 18px}.login-region{width:370px}.login-panel{padding:23px 20px 21px}.title-cn{font-size:20px}.title-en{font-size:clamp(28px,9vw,40px);letter-spacing:1.4px}.input-wrap input{font-size:16px}.entry-brand{left:27px;bottom:24px}.auth-tabs{gap:12px}.auth-tabs button{font-size:13px}.input-wrap{gap:8px;padding-left:12px;padding-right:12px}.phone-prefix{padding-right:9px}.field-prefix{width:38px}.code-send{font-size:11px;padding-left:8px}}
@media(max-height:700px){.login-layout{padding-top:20px;padding-bottom:20px}.login-heading{margin-bottom:16px}.title-cn{font-size:18px}.title-en{font-size:clamp(28px,9vw,39px)}.login-panel{padding-top:20px;padding-bottom:18px}.auth-tabs{margin-bottom:17px}.input-wrap{height:47px}.field-error{min-height:20px}.login-submit{height:48px}.preview-note{margin-top:14px}}
@media(max-height:380px){.entry-button{width:150px}.entry-brand{left:25px;bottom:18px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{transition:none!important;animation:none!important}.entry-ring-draw{stroke-dashoffset:0}}
