:root{
  --entry-blue:#315fdb;
  --entry-blue-strong:#244bb8;
  --entry-violet:#6d5bd6;
  --entry-ink:#172033;
  --entry-muted:#68758a;
  --entry-line:rgba(54,72,102,.14);
  --entry-paper:#fff;
  --entry-bg:#edf2f8;
  --entry-serif:"Noto Serif SC","Songti SC","STSong",serif;
  --entry-sans:-apple-system,BlinkMacSystemFont,"Segoe UI","PingFang SC","Microsoft YaHei",sans-serif;
  --entry-mono:"JetBrains Mono","SFMono-Regular",Consolas,monospace;
}
*{box-sizing:border-box}
html,body{margin:0;min-height:100%}
body{min-height:100vh;color:var(--entry-ink);font-family:var(--entry-sans);background:var(--entry-bg)}
body.register-page::after,body.reset-page::after{opacity:.035}
button,input{font:inherit}
.entry-brand{position:fixed;z-index:10;left:28px;top:24px;display:grid;grid-template-columns:30px auto;column-gap:10px;align-items:center;color:var(--entry-ink);text-decoration:none}
.entry-brand img{grid-row:1/3;width:30px;height:30px}
.entry-brand b{font-family:var(--entry-serif);font-size:13px;line-height:1.25}
.entry-brand small{color:var(--entry-muted);font-size:10px;line-height:1.25}

/* Registration: an invitation sheet, not another login card. */
.register-page,.reset-page{overflow:hidden;background:
  radial-gradient(34% 48% at 12% 18%,rgba(49,95,219,.14),transparent 72%),
  radial-gradient(30% 42% at 88% 82%,rgba(109,91,214,.09),transparent 74%),
  linear-gradient(145deg,#f6f8fc 0%,#eaf0f7 100%)}
.register-page::before,.reset-page::before{content:"";position:fixed;inset:0;pointer-events:none;opacity:.3;background-image:linear-gradient(rgba(49,70,104,.04) 1px,transparent 1px),linear-gradient(90deg,rgba(49,70,104,.032) 1px,transparent 1px);background-size:48px 48px;mask-image:linear-gradient(90deg,#000,transparent 76%)}
.register-shell{position:relative;width:min(940px,calc(100% - 48px));height:100dvh;margin:auto;padding:76px 0 26px;display:grid;grid-template-columns:minmax(0,1fr) 420px;gap:clamp(52px,7vw,86px);align-items:center}
.register-story{position:relative;padding:20px 0 30px}
.register-story::after{content:"";position:absolute;z-index:-1;left:-112px;bottom:-52px;width:330px;height:330px;background:url("../assets/brand-mark.svg") center/contain no-repeat;opacity:.035;transform:rotate(-10deg)}
.entry-kicker{display:flex;align-items:center;gap:12px;margin-bottom:24px;color:var(--entry-blue);font-family:var(--entry-mono);font-size:10px;font-weight:600;letter-spacing:.2em;text-transform:uppercase}
.entry-kicker::before{content:"";width:34px;height:1px;background:currentColor;opacity:.55}
.register-story h1,.reset-context h1{max-width:560px;margin:0 0 20px;font-family:var(--entry-serif);font-size:clamp(42px,4.6vw,58px);font-weight:900;line-height:1.1;letter-spacing:-.045em}
.reset-context h1{font-size:clamp(36px,4vw,48px)}
.register-story h1 em{display:block;color:transparent;font-style:normal;background:linear-gradient(105deg,var(--entry-blue),var(--entry-violet));background-clip:text;-webkit-background-clip:text}
.reset-context h1 em{display:block;color:transparent;font-style:normal;background:linear-gradient(105deg,var(--entry-blue),var(--entry-violet));background-clip:text;-webkit-background-clip:text}
.register-lead,.reset-context>p{max-width:520px;margin:0;color:#536176;font-size:15px;line-height:1.8}
.register-formats{display:flex;flex-wrap:wrap;gap:8px;margin:30px 0 0;padding:0;list-style:none}
.register-formats li{padding:6px 10px;border:1px solid rgba(49,95,219,.13);border-radius:7px;color:#52627a;background:rgba(255,255,255,.52);font-size:11px}
.entry-assurance{width:min(460px,100%);display:flex;align-items:flex-start;gap:12px;margin-top:30px;padding-top:17px;border-top:1px solid rgba(57,75,104,.12)}
.entry-assurance i{flex:0 0 auto;width:8px;height:8px;margin-top:5px;border:2px solid var(--entry-blue);border-radius:50%;box-shadow:0 0 0 4px rgba(49,95,219,.08)}
.entry-assurance b,.entry-assurance span{display:block}.entry-assurance b{margin-bottom:4px;font-size:12px}.entry-assurance span{color:var(--entry-muted);font-size:11px;line-height:1.65}
.register-card{position:relative;padding:29px 30px 26px;border:1px solid var(--entry-line);border-radius:16px;background:rgba(255,255,255,.9);box-shadow:0 24px 62px rgba(32,55,91,.13);backdrop-filter:blur(18px)}
.register-card::before{display:none}
.register-card h2{margin:0 0 7px;font-family:var(--entry-serif);font-size:25px;letter-spacing:-.02em}
.register-card .card-lead{margin:0 0 24px;color:var(--entry-muted);font-size:12px;line-height:1.7}
.entry-field{margin-bottom:15px}
.entry-field label{display:block;margin-bottom:7px;color:#3f4c61;font-size:12px;font-weight:650}
.entry-field label small{margin-left:5px;color:#8b96a7;font-size:10px;font-weight:500}
.entry-field input{width:100%;min-height:45px;padding:11px 13px;border:1px solid rgba(57,75,104,.17);border-radius:9px;outline:none;color:var(--entry-ink);background:rgba(248,250,253,.9);transition:border-color .2s,box-shadow .2s,background .2s}
.entry-field input::placeholder{color:#9aa5b5}
.entry-field input:focus{border-color:rgba(49,95,219,.55);background:#fff;box-shadow:0 0 0 4px rgba(49,95,219,.09)}
.entry-code-row{display:grid;grid-template-columns:minmax(0,1fr) 112px;gap:9px}
.entry-code-btn,.entry-eye{border:1px solid rgba(49,95,219,.18);border-radius:9px;color:var(--entry-blue);background:rgba(49,95,219,.06);font-size:12px;font-weight:700;cursor:pointer}
.entry-code-btn:disabled{opacity:.55;cursor:not-allowed}
.entry-password{position:relative}
.entry-password input{padding-right:64px}
.entry-eye{position:absolute;right:7px;top:7px;height:31px;padding:0 10px;border-color:transparent;background:transparent;color:#718096}
.entry-primary{width:100%;min-height:47px;margin-top:6px;border:0;border-radius:9px;color:#fff;background:var(--entry-blue);box-shadow:0 12px 26px rgba(49,95,219,.2);font-weight:750;cursor:pointer;transition:background .2s,transform .2s}
.entry-primary:hover{background:var(--entry-blue-strong);transform:translateY(-1px)}
.entry-primary:disabled{opacity:.58;cursor:not-allowed;transform:none}
.entry-foot{margin-top:18px;text-align:center;color:var(--entry-muted);font-size:12px}
.entry-foot a{color:var(--entry-blue);font-weight:700;text-decoration:none}

/* Password recovery uses the same visual language, with a shorter task flow. */
.reset-shell{position:relative;width:min(900px,calc(100% - 48px));height:100dvh;margin:auto;padding:76px 0 26px;display:grid;grid-template-columns:minmax(0,1fr) 420px;gap:clamp(52px,7vw,86px);align-items:center}
.reset-context{align-self:center}
.reset-card{padding:31px 30px 28px;border:1px solid var(--entry-line);border-radius:16px;background:rgba(255,255,255,.9);box-shadow:0 24px 62px rgba(32,55,91,.13);backdrop-filter:blur(18px)}
.reset-card header{margin-bottom:24px}
.reset-card h2{margin:0 0 8px;font-family:var(--entry-serif);font-size:24px}
.reset-card .subtitle{margin:0;color:var(--entry-muted);font-size:12px;line-height:1.7}
.reset-progress{display:grid;grid-template-columns:repeat(2,1fr);gap:7px;margin:22px 0 8px}
.reset-progress span{height:3px;border-radius:99px;background:#e1e7ef;transition:background .25s}
.reset-progress span.active{background:var(--entry-blue)}
.reset-step-label{margin-bottom:22px;color:#7b8799;font-size:11px}
.step{display:none}.step.active{display:block;animation:entryIn .28s ease both}
@keyframes entryIn{from{opacity:0;transform:translateY(7px)}to{opacity:1;transform:none}}
.reset-card .form-group{margin-bottom:17px}
.reset-card label{display:block;margin-bottom:7px;color:#3f4c61;font-size:12px;font-weight:650}
.reset-card input{width:100%;min-height:46px;padding:11px 13px;border:1px solid rgba(57,75,104,.17);border-radius:9px;outline:none;color:var(--entry-ink);background:#f7f9fc;transition:border-color .2s,box-shadow .2s,background .2s}
.reset-card input:focus{border-color:rgba(49,95,219,.55);background:#fff;box-shadow:0 0 0 4px rgba(49,95,219,.09)}
.reset-card button{width:100%;min-height:46px;border:0;border-radius:9px;color:#fff;background:var(--entry-blue);font-weight:750;cursor:pointer}
.reset-card button:hover{background:var(--entry-blue-strong)}
.reset-card button:disabled{opacity:.52;cursor:not-allowed}
.reset-card .btn-secondary{margin-top:9px;color:#58677d;background:#edf1f6;box-shadow:none}
.reset-card .btn-secondary:hover{background:#e3e9f1}
.code-input-group{display:grid;grid-template-columns:minmax(0,1fr) 112px;gap:9px}
.reset-code-row #requestResetBtn{width:100%;padding:0 10px;color:var(--entry-blue);background:rgba(49,95,219,.06);border:1px solid rgba(49,95,219,.17);font-size:11px}
.back-link{margin-top:18px;text-align:center}.back-link a{color:var(--entry-blue);font-size:12px;font-weight:700;text-decoration:none}
.message{display:none;margin-bottom:17px;padding:10px 12px;border-radius:8px;font-size:12px;line-height:1.55}
.message.success{display:block;color:#176447;background:#ebf8f2;border:1px solid #cfeadd}
.message.error{display:block;color:#9f2931;background:#fff0f0;border:1px solid #f2d1d4}
.message.info{display:block;color:#315fdb;background:#eef3ff;border:1px solid #d7e2ff}
.reset-dev-code{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:9px;padding:9px 11px;border:1px solid rgba(49,95,219,.15);border-radius:9px;color:#607089;background:rgba(49,95,219,.055);font-size:11px}
.reset-dev-code[hidden]{display:none!important}.reset-dev-code strong{color:var(--entry-blue);font-family:var(--entry-mono);font-size:15px;letter-spacing:.18em}
.password-strength{margin-top:8px;color:var(--entry-muted);font-size:11px}.strength-bar{height:3px;margin-bottom:5px;overflow:hidden;border-radius:9px;background:#e3e8ef}.strength-fill{height:100%;width:0;transition:width .25s}.strength-weak{width:33%;background:#c44d58}.strength-medium{width:66%;background:#c88b35}.strength-strong{width:100%;background:#338466}

html:not(.theme-light){--entry-ink:#e8edf5;--entry-muted:#98a5b7;--entry-line:rgba(255,255,255,.1);--entry-paper:#171e2a;--entry-bg:#0d131d}
html:not(.theme-light) .register-page,html:not(.theme-light) .reset-page{background:radial-gradient(34% 48% at 12% 18%,rgba(109,150,255,.11),transparent 72%),radial-gradient(30% 42% at 88% 82%,rgba(109,91,214,.08),transparent 74%),#0d131d}
html:not(.theme-light) .register-page::before,html:not(.theme-light) .reset-page::before{opacity:.14}
html:not(.theme-light) .entry-brand{color:#edf2f8}html:not(.theme-light) .entry-brand small{color:#98a5b7}
html:not(.theme-light) .register-lead,html:not(.theme-light) .reset-context>p,html:not(.theme-light) .register-formats li{color:#aab5c5}
html:not(.theme-light) .register-formats li{background:rgba(255,255,255,.035);border-color:rgba(109,150,255,.14)}
html:not(.theme-light) .register-card,html:not(.theme-light) .reset-card{background:rgba(22,29,42,.94);box-shadow:0 30px 72px rgba(0,0,0,.34)}
html:not(.theme-light) .entry-field label,html:not(.theme-light) .reset-card label{color:#bcc5d2}
html:not(.theme-light) .entry-field input,html:not(.theme-light) .reset-card input{color:#edf2f8;background:rgba(255,255,255,.045);border-color:rgba(255,255,255,.1)}
html:not(.theme-light) .entry-field input:focus,html:not(.theme-light) .reset-card input:focus{background:rgba(255,255,255,.07);border-color:#6d96ff}
html:not(.theme-light) .reset-card .btn-secondary{color:#b6c0cf;background:rgba(255,255,255,.06)}
html:not(.theme-light) .strength-bar{background:rgba(255,255,255,.08)}

@media(max-width:900px){
  .entry-brand{position:absolute;left:20px;top:18px}
  .register-page,.reset-page{overflow-y:auto}
  .register-shell,.reset-shell{width:min(500px,calc(100% - 28px));height:auto;min-height:100dvh;grid-template-columns:1fr;gap:28px;padding-top:86px}
  .register-story,.reset-context{padding:0}.register-story h1{font-size:40px}.reset-context h1{font-size:34px}.entry-assurance{display:none}
}
@media(max-width:540px){
  .register-shell,.reset-shell{width:min(100% - 22px,440px);padding-bottom:22px}
  .register-story h1{font-size:34px}.register-lead{font-size:14px}.register-formats{margin-top:20px}
  .register-card,.reset-card{padding:25px 21px;border-radius:13px}
  .register-card::before{display:none}.entry-code-row,.code-input-group{grid-template-columns:minmax(0,1fr) 102px}
}
@media(max-height:760px) and (min-width:901px){.register-shell,.reset-shell{padding-top:58px;padding-bottom:14px}.register-story h1{font-size:44px}.reset-context h1{font-size:38px}.register-formats{margin-top:20px}.entry-assurance{margin-top:22px}.register-card,.reset-card{padding-block:22px}.register-card .card-lead,.reset-card header{margin-bottom:17px}.entry-field,.reset-card .form-group{margin-bottom:10px}.entry-field input,.reset-card input{min-height:40px;padding-block:8px}.entry-primary,.reset-card button{min-height:41px}.reset-progress{margin-top:16px}}
@media(prefers-reduced-motion:reduce){.step.active{animation:none}.entry-primary{transition:none}}

@media(max-width:540px){
  body.reset-page{min-height:100svh;background:radial-gradient(86% 38% at 50% 0,rgba(49,95,219,.10),transparent 72%),#f6f8fc}
  body.reset-page::before,body.reset-page::after{display:none}
  .reset-page .atelier-wordmark{position:absolute;left:clamp(34px,calc((100vw - 390px)/2 + 20px),56px);top:calc(28px + env(safe-area-inset-top,0px));display:block;transform:none;text-align:left}
  .reset-page .atelier-wordmark__mark{display:none}
  .reset-page .atelier-wordmark b strong{display:inline-block;color:#315fdb;font-size:16px;font-weight:850;letter-spacing:.48em}
  .reset-page .atelier-wordmark b strong::before{content:none!important;display:none!important}
  .reset-page .atelier-wordmark::after{content:"一簇灵感星火，落地即成好戏";display:block;margin-top:9px;color:#66748a;font-size:9px;letter-spacing:.12em;white-space:nowrap}
  .reset-shell{width:100%;min-height:100svh;display:block;padding:calc(83px + env(safe-area-inset-top,0px)) 14px calc(22px + env(safe-area-inset-bottom,0px))}
  .reset-context{display:none}
  .reset-card{width:100%;max-width:390px;margin:0 auto;padding:23px 20px 18px;border:1px solid rgba(122,145,187,.18);border-radius:25px;background:rgba(255,255,255,.86);box-shadow:0 22px 56px rgba(38,55,91,.10);backdrop-filter:blur(18px)}
  .reset-card header{margin-bottom:17px}.reset-card h2{margin-bottom:5px;font-family:var(--entry-sans);font-size:22px;font-weight:760}.reset-card .subtitle{font-size:11px}
  .reset-progress{margin-top:15px}.reset-step-label{margin-bottom:15px;font-size:10px}
  .reset-card .form-group{margin-bottom:12px}.reset-card label{margin-bottom:5px;font-size:11px}
  .reset-card input{min-height:44px;padding:10px 13px;border-radius:11px;font-size:14px!important}
  .reset-card button{min-height:44px;border-radius:11px;font-size:13px}
  .reset-card .code-input-group{grid-template-columns:minmax(0,1fr) 104px;gap:8px}
  .reset-card .code-input-group>*{min-width:0}
  .reset-dev-code{margin-top:8px;border-radius:9px}
  .back-link{margin-top:14px}
  html:not(.theme-light) body.reset-page{background:radial-gradient(90% 42% at 50% 0,rgba(109,150,255,.11),transparent 72%),#0d131d}
  html:not(.theme-light) .reset-card{background:#171f2c;border-color:rgba(255,255,255,.09);box-shadow:0 20px 48px rgba(0,0,0,.28)}
  html:not(.theme-light) .reset-page .atelier-wordmark::after{color:#9aa8ba}
}
@media(max-width:360px){.reset-shell{padding-inline:10px}.reset-card{padding-inline:17px}}
