/* 标题背景、色板、按钮、边角框均复用游戏现有样式；这里仅补充密码表单和窄屏适配。 */
@font-face { font-family: Bender; src: url('/login-assets/bender-regular.woff2') format('woff2'); font-display: swap; }
@font-face { font-family: 'Novecento Wide'; src: url('/login-assets/novecento-wide-normal.woff2') format('woff2'); font-display: swap; }
html { font-size: clamp(64px, min(5.2083vw, 9.2593svh), 120px); }
body { font-family: var(--font-cjk); }
.access-screen { min-height: 100svh; }
.title-bg__ridge-art { background-image: url('/login-assets/ridges.png'); }
.title-main { margin: 0; padding: .9rem .24rem .7rem; }
.title-cn { margin-bottom: 0; font-size: .72rem; }
.title-tag { margin-bottom: 0; font-size: max(13px, .17rem); }
.emblem { margin-bottom: .14rem; gap: .2rem; }
.emblem__svg { width: .86rem; height: .93rem; }
.emblem__bracket { height: 1.04rem; }
.title-en__a { font-size: .22rem; }
.title-en__b { font-size: .25rem; }
.title-login { width: min(5.1rem, calc(100vw - 40px)); margin-top: .26rem; gap: .12rem; padding: .24rem .28rem .2rem; }
.title-corner { font: max(10px, .12rem)/1.7 var(--font-display); letter-spacing: .12em; }
.title-corner--tl { top: .28rem; left: .32rem; }
.title-corner--tr { top: .32rem; right: .32rem; }
.access-muted, .access-micro, .access-options, .access-help, .access-footer { color: var(--text-lo); }
.access-secure { align-items: center; font-family: var(--font-cjk); font-size: max(11px, .13rem); color: var(--mint-500); }
.access-dot { height: 6px; width: 6px; border-radius: 50%; background: var(--mint-500); box-shadow: 0 0 8px var(--mint-a35); }
.access-heading { display: flex; justify-content: space-between; align-items: center; padding-bottom: .12rem; border-bottom: 1px solid var(--line); font-size: max(14px, .18rem); font-weight: 700; }
.access-micro { font: max(9px, .11rem) var(--font-display); letter-spacing: .12em; }
.access-label { margin-top: .04rem; font-size: max(13px, .15rem); color: var(--text-md); }
.access-input-wrap { display: flex; align-items: center; gap: .12rem; min-height: 46px; height: .54rem; padding: 0 .13rem; background: #080c0a; border: 1px solid var(--line-2); transition: border-color 150ms, box-shadow 150ms; }
.access-input-wrap:focus-within { border-color: var(--mint-500); box-shadow: 0 0 0 1px var(--mint-a20); }
.access-input-wrap:has(input[aria-invalid='true']) { border-color: var(--red-premium); }
.access-lock { width: 20px; flex: none; color: var(--mint-700); }
#password { min-width: 0; width: 100%; height: 100%; padding: 0; background: transparent; border: 0; outline: 0; font: max(16px, .18rem) var(--font-cjk); color: var(--text-hi); letter-spacing: .04em; }
#password::placeholder { font-size: max(13px, .16rem); color: var(--text-dim); }
.access-reveal { display: grid; place-items: center; flex: none; width: 36px; height: 38px; padding: 8px; color: var(--text-lo); background: none; border: 0; cursor: pointer; }
.access-reveal:hover, .access-reveal:focus-visible { color: var(--mint-500); }
.access-reveal svg { width: 20px; height: 20px; }
.access-options { display: flex; justify-content: space-between; align-items: center; font-size: max(12px, .14rem); }
.access-remember { display: flex; align-items: center; gap: 8px; cursor: pointer; }
.access-remember input { width: 15px; height: 15px; margin: 0; accent-color: var(--mint-500); }
.access-error { min-height: 1.4em; margin: 0; color: var(--red-premium); font-size: max(12px, .14rem); line-height: 1.4; }
.title-login .access-submit { display: flex; justify-content: center; gap: .2rem; height: .56rem; min-height: 46px; padding: 0 .26rem; letter-spacing: .2em; font-size: max(15px, .2rem); }
.access-submit:disabled { opacity: .65; cursor: wait; }
.access-help { margin: .02rem 0 0; text-align: center; font-size: max(11px, .12rem); line-height: 1.6; }
.access-footer { position: absolute; bottom: .2rem; left: .32rem; right: .32rem; display: flex; justify-content: space-between; gap: 16px; font-size: max(9px, .11rem); letter-spacing: .08em; }
.access-footer span:last-child { font-family: var(--font-display); }
@media (max-width: 600px) { html { font-size: 72px; } .title-cn { font-size: .46rem; } .title-main { padding-top: 1.1rem; } .title-en__a { font-size: .18rem; } .title-en__b { font-size: .21rem; } .title-login { padding: .24rem; } .title-corner--tl { left: 20px; top: 20px; } .title-corner--tr { right: 20px; top: 22px; } .access-footer { left: 20px; right: 20px; bottom: 16px; justify-content: center; } .access-footer span:last-child { display: none; } }
@media (max-height: 680px) { .access-screen { position: relative; overflow: auto; } .title-main { padding-top: 1rem; padding-bottom: .8rem; } .emblem { display: none; } .title-login { margin-top: .18rem; } }
@media (prefers-reduced-motion: reduce) { *, *::before, *::after { animation: none !important; transition: none !important; } }
