/* Full-bleed painting and responsive, semantic controls. */
#game#game#game#game#game #intro.login-screen{padding:0;overflow:hidden;display:block;background:#b0c6d5;isolation:isolate}
#game#game#game#game#game #intro.login-screen.hidden{display:none}
#login-stage{position:absolute;inset:0;overflow:hidden;background:#b0c6d5}
#login-art,.login-wind,.login-dust{position:absolute;inset:0;width:100%;height:100%;display:block;pointer-events:none}
#login-art{z-index:0;object-fit:cover;object-position:50% 15%}.login-wind{z-index:1}.login-dust{z-index:2}
#login-stage::after{content:"";position:absolute;inset:0;z-index:2;pointer-events:none;background:linear-gradient(90deg,transparent 45%,#eff0e41a 55%,#ecebd982)}
#login-stage[data-motion=paused] .login-dust{visibility:hidden}
#login-stage .login-menu{position:absolute;z-index:4;top:50%;right:max(7%,env(safe-area-inset-right));width:min(36%,450px);transform:translateY(-49%);color:#283b3d;text-align:center;font-family:"Noto Serif SC","Songti SC",SimSun,serif}
.login-title{position:relative;margin:0 0 20px}
#game#game#game#game#game .login-title h1{margin:0;line-height:1}
.login-title h1 img{display:block;width:min(88%,330px);height:auto;margin:0 auto;filter:brightness(.18) sepia(.25);object-fit:contain}
#game#game#game#game#game .login-title p{margin:0 0 20px;font-size:clamp(13px,1.3vw,18px);letter-spacing:.3em;color:#2d3a3a;text-shadow:0 1px 6px #fff}
.login-seal{position:absolute;top:14%;right:12%;writing-mode:vertical-rl;letter-spacing:.18em;background:#96392c;color:#fff1d3;border:2px double #dbb497;padding:5px 2px;font:13px/1.2 SimSun,serif;transform:rotate(3deg)}
#game#game#game#game#game #intro #login-actions,#game#game#game#game#game #intro #login-extra-actions{position:static;inset:auto;display:block;min-width:0;width:100%;height:auto;margin:0;padding:0;border:0;border-radius:0;background:none;box-shadow:none;backdrop-filter:none;color:inherit}
#game#game#game#game#game #intro #login-extra-actions.hidden{display:none}
#game#game#game#game#game #intro .login-menu button,#game#game#game#game#game #intro #login-settings{position:relative;inset:auto;display:block;min-width:44px;min-height:44px;margin:0;border:1px solid #7d806980;border-image:none;border-radius:2px;background:#f0ecdaeb;box-shadow:0 2px 8px #3248441a;padding:8px 12px;font:600 17px/1.2 "Noto Serif SC",SimSun,serif;letter-spacing:.12em;color:#304345;text-shadow:none;transform:none;cursor:pointer;touch-action:manipulation}
#game#game#game#game#game #intro .login-menu button:hover{background:#fffae9;box-shadow:0 3px 10px #213a3926}
#game#game#game#game#game #intro .login-menu button:active{transform:translateY(1px)}
#game#game#game#game#game #intro button:focus-visible,#player-dialog input:focus-visible{outline:2px solid #96392c;outline-offset:3px}
#game#game#game#game#game #intro .login-menu button:disabled{opacity:.5;cursor:wait}
#game#game#game#game#game #intro #start{display:flex;align-items:center;justify-content:center;width:100%;min-height:62px;background:linear-gradient(100deg,#84362c,#aa4f36 65%,#8e3d2e);border:1px solid #cfaf7c;outline:1px solid #9d7049;outline-offset:3px;box-shadow:0 4px 14px #4d2b2b33;color:#fff1cb;font-size:clamp(22px,2.2vw,30px);letter-spacing:.28em}
#start span{position:absolute;right:18px;font:30px/1 serif;opacity:.8}
.login-library{display:grid;grid-template-columns:1fr 1.25fr;gap:10px;margin:14px 0 0}
#game#game#game#game#game #intro #practice{display:flex;align-items:center;gap:10px;width:100%;padding:10px 4px;min-height:44px;border:0;border-bottom:1px solid #64736d50;box-shadow:none;background:none;font-size:16px;text-align:left;letter-spacing:.08em}
#game#game#game#game#game #intro #practice small{font:12px/1.3 system-ui,sans-serif;letter-spacing:0;color:#465759}
#practice>span{margin-left:auto}
#game#game#game#game#game #intro #resume-run{width:100%;margin-top:8px;background:#335c59;color:#fff3d4;font-size:14px;min-height:40px}
#game#game#game#game#game #intro .login-player{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:12px 0 0;text-align:left;font:12px/1.4 system-ui,sans-serif}
.login-player>div>span{font-size:10px;letter-spacing:.2em;color:#516561}
#game#game#game#game#game #intro #account-status{max-width:none;flex:none;margin:2px 0 0;color:#253b3a;font:12px/1.5 system-ui,sans-serif;text-shadow:0 1px 3px #ffffffe6;overflow-wrap:anywhere}
#game#game#game#game#game #intro #player-account-button{flex:none;min-height:44px;padding:5px 8px;border:0;border-bottom:1px solid #637d77;background:transparent;box-shadow:none;font-size:12px;letter-spacing:.05em}
#game#game#game#game#game #intro #login-settings{position:absolute;z-index:4;top:max(16px,env(safe-area-inset-top));right:max(20px,env(safe-area-inset-right));padding:6px 14px;font-size:13px;background:#eeefdfbb}
.login-caption{position:absolute;bottom:5%;left:max(24px,env(safe-area-inset-left));z-index:3;color:#f9f3dd;font:14px/1.5 SimSun,serif;letter-spacing:.3em;text-shadow:0 1px 6px #243d47}
.login-loader{position:absolute;z-index:5;bottom:0;left:0;right:0;padding:12px 7%;background:#f0ecdce8;color:#344641;font:12px/1.4 system-ui;text-align:center}
.login-loader[hidden]{display:none}.login-loader progress{display:block;appearance:none;width:100%;height:5px;margin:0 0 6px;border:0;background:#aeb5aa}
.login-loader progress::-webkit-progress-bar{background:#aeb5aa}.login-loader progress::-webkit-progress-value{background:#a14832}.login-loader progress::-moz-progress-bar{background:#a14832}
#login-stage[data-ready=false] #login-actions{visibility:hidden}
.login-sr{position:absolute!important;width:1px!important;height:1px!important;overflow:hidden!important;clip-path:inset(50%);white-space:nowrap}
#game#game#game#game#game #intro #resume-run.hidden{display:none}
#game#game#game#game#game #player-dialog{position:fixed;inset:0;width:min(660px,92vw);max-width:none;max-height:92dvh;overflow:auto;margin:auto;padding:28px 32px 20px;border:1px solid #bda879;border-radius:3px;box-shadow:0 20px 80px #162c4380;background:#f1ecdd url('./assets/ui/wuxia/map-paper.webp') center/cover;color:#2b3b38;font:14px/1.5 system-ui,sans-serif;touch-action:pan-y}
#player-dialog::backdrop{background:#132b3899;backdrop-filter:blur(5px)}
#game#game#game#game#game #player-close{position:absolute;top:5px;right:5px;width:44px;height:44px;min-width:44px;padding:0;border:0;border-image:none;background:none;box-shadow:none;color:#40524b;font:30px/1 serif;z-index:1}
#game#game#game#game#game #player-dialog .player-intro>span{font:11px/1.4 system-ui;letter-spacing:.35em;color:#9b4a35}
#game#game#game#game#game #player-dialog h2{font:700 30px/1.25 "Noto Serif SC",SimSun,serif;margin:5px 0 8px;color:#2c3d39}
#game#game#game#game#game #player-dialog p{margin:6px 0 12px;color:#526056;font-size:13px}
#player-tabs{display:flex;gap:16px;border-bottom:1px solid #63706066;margin-bottom:16px}
#game#game#game#game#game #player-tabs button{border:0;border-image:none;border-radius:0;background:none;color:#566359;box-shadow:none;padding:10px 6px;min-height:44px;font:600 14px/1.2 system-ui}
#game#game#game#game#game #player-tabs button[aria-pressed=true]{color:#933c29;border-bottom:2px solid #933c29}
#player-form{display:grid;grid-template-columns:1fr 1fr;gap:12px 18px}
#player-form label{display:flex;flex-direction:column;gap:4px;color:#3a4c42;font-size:12px}
#game#game#game#game#game #player-form input{display:block;box-sizing:border-box;min-width:0;width:100%;height:44px;border:1px solid #8a968577;background:#fffcf1e6;color:#2d3b34;border-radius:2px;padding:8px 10px;font:16px/1.2 system-ui;user-select:text;touch-action:manipulation}
#player-form input::placeholder{font-size:12px;color:#6c766c}
#player-form .player-form-note{grid-column:1/-1;margin:0;font-size:11px}
#game#game#game#game#game #player-submit,#game#game#game#game#game #player-logout{grid-column:1/-1;min-height:46px;border:1px solid #bc9762;border-image:none;border-radius:2px;background:#913e2e;color:#fff0d1;box-shadow:none;font:600 16px/1.2 SimSun,serif;letter-spacing:.08em;padding:10px 18px}
#game#game#game#game#game #player-dialog #player-message{min-height:20px;margin:10px 0 0;color:#923d2c;font-size:13px}
#game#game#game#game#game #player-dialog #signin{display:block;color:#813d2e;margin-top:12px;text-underline-offset:3px;font-size:13px}
#game#game#game#game#game #player-dialog #signin.hidden,#game#game#game#game#game #player-dialog [hidden]{display:none}
#game#game#game#game#game #player-form[data-tab=login] .player-form-note{display:none}
.rank-player-seal{display:grid;place-items:center;flex:none;width:32px;height:32px;border:1px solid #a65b48;color:#9b4934;font:20px/1 SimSun,serif}
.result-player{color:#9c4a36;font-weight:700;letter-spacing:.08em}
@media(max-height:540px){
 #login-stage .login-menu{right:max(5.5%,env(safe-area-inset-right));width:37%;transform:translateY(-47%)}
 .login-title h1 img{width:55%;max-height:95px;object-fit:contain}
 #game#game#game#game#game .login-title p{font-size:12px;letter-spacing:.15em;margin:0 0 12px}
 .login-seal{font-size:10px;right:24%;padding:3px 1px}
 #game#game#game#game#game #intro #start{min-height:48px;font-size:23px}
 .login-library{gap:7px;margin-top:10px}
 #game#game#game#game#game #intro .login-library button{font-size:14px;padding:6px 8px}
 #game#game#game#game#game #intro #practice{font-size:13px;gap:6px;padding:5px 2px}
 #game#game#game#game#game #intro #practice small{font-size:10px}
 #game#game#game#game#game #intro .login-player{padding-top:5px;gap:4px}
 #game#game#game#game#game #intro #account-status{font-size:10px;line-height:1.3}
 #game#game#game#game#game #intro #player-account-button{font-size:11px;padding:4px}
 .login-player>div>span{font-size:9px}.login-caption{font-size:11px;bottom:4%}
 #game#game#game#game#game #intro #login-settings{top:max(7px,env(safe-area-inset-top));right:max(10px,env(safe-area-inset-right));font-size:12px;padding:4px 10px}
 #game#game#game#game#game #player-dialog{padding:16px 26px 12px;max-height:94dvh}
 #game#game#game#game#game #player-dialog h2{font-size:23px;margin:2px 0 4px}
 #game#game#game#game#game #player-dialog .player-intro>span{display:none}
 #game#game#game#game#game #player-dialog p{margin:3px 0 7px;font-size:12px}
 #player-tabs{margin-bottom:8px}#game#game#game#game#game #player-tabs button{min-height:38px;padding:7px 6px}
 #player-form{gap:8px 16px}#player-form input{height:40px}
 #game#game#game#game#game #player-dialog #player-message{margin-top:5px;min-height:18px}
 #game#game#game#game#game #player-form .player-form-note{font-size:10px;margin:0}
 #game#game#game#game#game #player-submit{min-height:42px}
}
@media(max-width:720px) and (orientation:landscape){#login-stage .login-menu{width:41%;right:4%}#game#game#game#game#game #intro #practice small{font-size:9px}.login-seal{right:23%}#game#game#game#game#game #intro .login-library button{font-size:13px}}
@media(max-height:360px) and (orientation:landscape){.login-title h1 img{max-height:68px}.login-title p{display:none}#game#game#game#game#game #intro .login-player{padding:0}.login-library{margin-top:8px}}
#game#game#game#game#game .login-settings-dialog{position:fixed;inset:0;z-index:100;max-width:min(440px,88vw);width:440px;max-height:86dvh;margin:auto;padding:24px;background:linear-gradient(145deg,#254c59,#102d39);border:1px solid #b9a575;border-radius:18px;color:#f8eacd;box-shadow:0 18px 80px #051b3680;overflow:auto;touch-action:pan-y;font:14px/1.5 system-ui,sans-serif}
.login-settings-dialog::backdrop{background:#11283680;backdrop-filter:blur(4px)}
.login-settings-dialog h2{font-size:23px;margin:0 0 16px;color:#f8eacd}
.login-settings-dialog .login-settings-row{display:flex;gap:10px;align-items:center;margin:12px 0}
#game#game#game#game#game .login-settings-dialog button{border:1px solid #b7a77a;border-image:none;border-radius:8px;background:#2c5963;box-shadow:none;color:#fff5db;min-height:44px;padding:8px 16px;font:700 14px/1.2 system-ui,sans-serif}
.login-settings-dialog .login-settings-row button{flex:1}
.login-settings-dialog label{display:flex;align-items:center;gap:12px;min-height:44px}
.login-settings-dialog input[type=range]{flex:1;min-width:80px;accent-color:#5cd4d3}.login-settings-dialog input[type=checkbox]{width:22px;height:22px;accent-color:#5cd4d3}
.login-settings-dialog small{display:block;margin:0 0 12px;color:#bcd6df}
#game#game#game#game#game .login-settings-dialog #login-settings-close{display:block;margin:18px 0 0 auto;background:#bd8336}
.login-present #load-status{display:none!important}
@media(max-height:420px){#game#game#game#game#game .login-settings-dialog{padding:14px 20px}.login-settings-dialog h2{margin-bottom:8px}.login-settings-dialog .login-settings-row{margin:5px 0}.login-settings-dialog small{margin-bottom:4px}#game#game#game#game#game .login-settings-dialog #login-settings-close{margin-top:6px}}
@media(prefers-reduced-motion:reduce){#game#game#game#game#game #intro .login-hit{transition:none}}

#game#game#game#game#game #login-extra-actions::before{display:none}
#game#game#game#game#game #intro :is(.login-menu button,#login-settings,#player-dialog button)::before,#game#game#game#game#game #intro :is(.login-menu button,#login-settings,#player-dialog button)::after{display:none}
