@font-face{font-family:Phosphor;src:url(phosphor.woff2) format("woff2");font-weight:400;font-style:normal;font-display:block}
:root{color-scheme:dark;--bg:#05070d;--ink:#eef1f5;--accent:#c1d9f4;--pan-x:0px;--pan-y:0px;--scene-scale:1.04}
*{box-sizing:border-box}html,body{margin:0;min-width:320px;background:var(--bg);color:var(--ink)}body{font-family:-apple-system,BlinkMacSystemFont,"Helvetica Neue","PingFang SC","Microsoft YaHei",sans-serif;-webkit-font-smoothing:antialiased}a{color:inherit}button,input{font:inherit}button,a,input{-webkit-tap-highlight-color:transparent}button{cursor:pointer}a:focus-visible,button:focus-visible,input:focus-visible,[tabindex]:focus-visible{outline:2px solid var(--accent);outline-offset:5px}::selection{background:var(--accent);color:var(--bg)}[hidden]{display:none!important}
.home{position:relative;isolation:isolate;min-height:100svh;overflow:hidden;display:flex;flex-direction:column;text-align:center;padding:max(24px,env(safe-area-inset-top)) max(24px,env(safe-area-inset-right)) calc(20px + env(safe-area-inset-bottom)) max(24px,env(safe-area-inset-left))}.space-scene{position:absolute;z-index:-1;inset:0;overflow:hidden;pointer-events:none;background:var(--bg)}.space-scene img{position:absolute;inset:-2%;width:104%;height:104%;object-fit:cover;object-position:50% center;transform:translate3d(var(--pan-x),var(--pan-y),0) scale(var(--scene-scale));transition:transform 1.5s cubic-bezier(.2,.7,.2,1);user-select:none}.space-shade{position:absolute;inset:0;background:rgba(5,7,13,.35)}.home.is-background .space-scene img{transition:none}.home.is-login-focused{--scene-scale:1.19}
.login-stage{display:flex;align-items:center;justify-content:center;flex:1;min-height:460px;padding:30px 0 42px}.home-content{width:880px;max-width:100%}.identity{display:flex;justify-content:center;align-items:center;margin-bottom:26px}.wordmark{font-size:23px;font-weight:600;line-height:1.5;letter-spacing:-.5px}.site-logo{display:block;width:auto;height:auto;max-width:200px;max-height:48px;object-fit:contain}.intro h1{margin:0;font-size:clamp(20px,3.1vw,40px);font-weight:500;line-height:1.28;letter-spacing:.3px;white-space:nowrap;overflow-wrap:normal;text-shadow:0 2px 20px rgba(0,0,0,.5)}.description{max-width:100%;margin:18px auto 0;color:#bdc8d6;font-size:clamp(10px,1.05vw,13px);line-height:1.95;white-space:nowrap;overflow-wrap:normal}.login-area{width:360px;max-width:100%;margin:30px auto 0;scroll-margin-top:24px}.login-area:focus{outline:none}.login-area:focus-visible{outline:2px solid var(--accent);outline-offset:14px}
.field{min-width:0}.field input{display:block;width:100%;height:54px;border:0;border-radius:0;background:transparent;color:var(--ink);padding:0 42px;font-size:14px;text-align:center;transition:background .2s}.field input::placeholder{color:#b6c0ce;font-size:13px;letter-spacing:2px}.field input:focus{background:rgba(5,7,13,.45)}.field input:focus-visible{outline-offset:-4px;border-radius:5px}.field input:-webkit-autofill{-webkit-text-fill-color:var(--ink);-webkit-box-shadow:0 0 0 1000px #11161e inset}.account-field{margin-bottom:12px;border:1px solid rgba(212,225,246,.3);border-radius:6px;overflow:hidden;background:rgba(5,7,13,.74)}.login-row{display:flex;align-items:stretch;min-height:56px;border:1px solid rgba(212,225,246,.3);border-radius:6px;background:rgba(5,7,13,.74);transition:border-color .2s}.login-row:focus-within{border-color:var(--accent)}.login-row>.field{flex:1}.password-field{position:relative}.password-toggle{position:absolute;right:2px;top:5px;width:44px;height:44px;display:flex;align-items:center;justify-content:center;background:transparent;border:0;color:#a5b2c2;border-radius:4px}.password-toggle:hover{color:var(--ink)}.ph{font-family:Phosphor!important;font-style:normal;font-weight:400;font-variant:normal;text-transform:none;font-size:18px;line-height:1;letter-spacing:0;font-feature-settings:"liga";font-variant-ligatures:discretionary-ligatures}.field .code-input{padding:0 12px;font-size:23px;letter-spacing:8px;text-indent:8px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace}.code-input::placeholder{font-family:-apple-system,BlinkMacSystemFont,"PingFang SC",sans-serif;font-size:14px;letter-spacing:2px;text-indent:0}.submit-button{display:flex;align-items:center;justify-content:center;flex:none;width:72px;min-height:54px;padding:0 10px;border:0;border-left:1px solid rgba(212,225,246,.25);border-radius:0 5px 5px 0;color:#dce7f4;background:rgba(177,207,240,.07);font-size:13px;font-weight:500;letter-spacing:2px;transition:background .2s}.submit-button:hover{background:rgba(177,207,240,.2);color:#fff}.submit-button:active{background:rgba(177,207,240,.28)}.submit-button:focus-visible{outline-offset:-4px}.submit-button:disabled{cursor:wait;opacity:.65}.entry{display:inline-flex;align-items:center;justify-content:center;min-height:48px;min-width:130px;padding:0 22px;border:1px solid rgba(212,225,246,.35);border-radius:5px;background:rgba(5,7,13,.7);color:var(--ink);font-size:13px;letter-spacing:2px;text-decoration:none}.entry:hover{border-color:var(--accent);background:rgba(177,207,240,.12)}.login-error{color:#ffd1c8;background:rgba(88,34,31,.65);border:1px solid rgba(226,160,150,.45);border-radius:5px;padding:12px 14px;font-size:12px;line-height:1.8;margin:0 0 16px;overflow-wrap:anywhere}
.footer{display:flex;justify-content:center;align-items:center;flex:none;min-height:28px;font-size:11px;line-height:1.9;color:#b0bac9}.registration{display:flex;align-items:center;justify-content:flex-start;flex-wrap:nowrap;gap:10px;width:100%;text-align:center;white-space:nowrap;overflow-x:auto;overflow-wrap:normal}.registration>:first-child{margin-left:auto}.registration>:last-child{margin-right:auto}.registration div{display:flex;flex-flow:row nowrap;align-items:center;justify-content:center;gap:10px;flex:0 0 auto;width:max-content}.registration div:has(>span + a){gap:0}.registration>div{min-width:100%}.registration a{display:inline-flex;align-items:center;justify-content:center;gap:5px;flex:none;white-space:nowrap;text-decoration:none;min-height:28px}.registration a:hover{text-decoration:underline;text-underline-offset:4px;color:var(--ink)}.registration img{display:block;flex:none;max-width:16px;max-height:16px;object-fit:contain}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}
@media(max-width:600px){.intro h1{font-size:clamp(18px,5.1vw,28px)}.wordmark{font-size:22px}.identity{margin-bottom:24px}.description{font-size:clamp(10px,2.8vw,12px);margin-top:16px}.field input{font-size:16px}.field .code-input{font-size:22px;letter-spacing:6px;text-indent:6px}.login-area{margin-top:26px}.space-scene img{object-position:44% center}.space-shade{background:rgba(5,7,13,.42)}.login-stage{padding:28px 0 38px}.footer{font-size:10px}.submit-button{width:64px}}
@media(max-height:500px){.login-stage{padding:24px 0 30px;min-height:420px}.identity{margin-bottom:18px}.intro h1{font-size:clamp(18px,3.1vw,32px)}.description{margin-top:14px}.login-area{margin-top:20px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{transition:none!important;scroll-behavior:auto!important}}

/* Validation is communicated without visible hint text. */
.field input[aria-invalid="true"]{outline:1px solid #e2a096;outline-offset:-4px;border-radius:5px}
/* Six code positions share one native input for paste, autofill and keyboard editing. */
.code-entry{position:relative;width:100%;height:96px;border:0;background:transparent}
.code-entry .code-input{width:100%;height:96px;padding:0;border:0;border-bottom:2px solid #bdcadb;border-radius:0;background:transparent;color:#e7effa;font-size:46px;font-weight:500;letter-spacing:16px;text-align:center;box-shadow:none;font-variant-numeric:tabular-nums}
.code-entry .code-input:focus-visible,.code-entry .code-input[aria-invalid="true"]{outline:none;border-radius:0}
.code-slots{display:none}
.has-code-slots .code-entry .code-input{position:absolute;z-index:1;inset:0;opacity:0;letter-spacing:0;cursor:text}
.has-code-slots .code-slots{height:96px;display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:12px;pointer-events:none}
.code-slot{position:relative;display:flex;align-items:center;justify-content:center;height:96px;color:#e7effa;font-size:72px;font-weight:600;line-height:1;font-variant-numeric:tabular-nums}
.code-slot::after{content:"";position:absolute;bottom:9px;left:30%;width:40%;border-bottom:3px solid #bdcadb;transition:border-color .12s}
.code-slot.is-filled::after{opacity:0}
.code-slot.is-active:not(.is-filled)::after{border-color:#f1f7ff}
.code-slot.is-active.is-filled .code-digit{color:#fff;text-shadow:0 0 14px rgba(193,217,244,.35)}
.code-entry:has(.code-input[aria-invalid="true"]) .code-slot::after{border-color:#e2a096}
.code-entry:has(.code-input[aria-invalid="true"]) .code-digit{color:#ffd1c8}
.login-area:has(.code-entry):focus-visible{outline:none}
@media(max-width:600px){.code-slot{font-size:clamp(48px,15.5vw,62px)}.code-entry .code-input{font-size:40px}.has-code-slots .code-slots{gap:9px}}
/* Center the complete identity/copy/login group independently of the legal footer. */
.home{padding-bottom:max(24px,env(safe-area-inset-bottom))}
.login-stage{padding:48px 0}
.footer{position:absolute;left:max(24px,env(safe-area-inset-left));right:max(24px,env(safe-area-inset-right));bottom:calc(20px + env(safe-area-inset-bottom))}
