html,body{margin:0;width:100%;min-height:100%;background:#000}body:not(.in-world) main{display:none}.login-screen{min-height:100dvh;display:grid;place-items:center;background:#000}.login-stage{position:relative;width:min(100vw,133.333dvh);aspect-ratio:4/3;background:url("assets/client/images/310.img.png") center/100% 100% no-repeat;container-type:inline-size;image-rendering:pixelated}.parchment-copy{position:absolute;left:10.8%;top:17.3%;width:22.7%;color:#111;font-family:PMingLiU,"新細明體",serif;font-size:1.65cqw;line-height:1.16}.parchment-copy h1{font-size:1.8cqw;font-weight:400;margin:0 0 2.3cqw;white-space:nowrap}.parchment-copy p{margin:1cqw 0}.parchment-copy hr{border:0;border-top:2px solid #24201b;margin:1.4cqw 0}.connection-message{font-size:1.35cqw;overflow-wrap:anywhere;max-height:14cqw;overflow:auto}.account-label,.password-label{position:absolute;left:57.2%;font-family:PMingLiU,"新細明體",serif;color:#dbd9cc;font-weight:bold;font-size:2cqw;text-shadow:1px 1px #38372e}.account-label{top:44.1%}.password-label{top:52%}.account-input,.password-input{box-sizing:border-box;position:absolute;left:71.2%;width:17.7%;height:3.4%;margin:0;padding:0 .7cqw;border:1px solid #30302d;background:#111111d9;color:#eee;font-size:1.65cqw;border-radius:0;outline:none}.account-input{top:44.1%}.password-input{top:52%}.account-input:focus,.password-input:focus{border-color:#b1a37a;box-shadow:0 0 0 1px #716140}.original-login{position:absolute;left:73%;top:81.5%;width:12%;height:6%;margin:0;border:0;background:transparent;color:#c4c39e;font-family:PMingLiU,"新細明體",serif;font-weight:bold;font-size:2.4cqw;text-shadow:1px 1px #65644e;cursor:pointer}.original-login:hover,.original-login:focus-visible{color:#fff0b5;background:#17150d55}.preview-entry{position:absolute;left:74%;top:94%;font-family:PMingLiU,"新細明體",serif;color:#b9b797;font-size:1.65cqw;text-decoration:none}.diagnostic{position:absolute;left:55%;bottom:2%;font-size:1cqw;color:#797868}.diagnostic button{font-size:1cqw;padding:.3cqw;background:#151515;color:#c9c6ae}.in-world .login-screen,.choosing-character .login-screen{display:none}body.in-world main,body.choosing-character main{display:block;margin:0;padding:0;height:100dvh}body.in-world .game-shell,body.choosing-character .game-shell{height:100dvh;width:100%;border:0;box-shadow:none}body.choosing-character .game-shell{background:url("assets/client/images/105.img.png") center/contain no-repeat #000}body.choosing-character #game,body:not(.in-world) .game-ui{visibility:hidden}body.choosing-character .characters{position:absolute;left:8%;right:8%;bottom:8%;top:auto;background:#090909dc;padding:20px;border:1px solid #96804b}.in-world #characters.hidden{display:none}@media(max-width:600px){.login-stage{width:100vw}.account-input,.password-input{height:5%}.parchment-copy{font-size:1.9cqw}.original-login{height:9%;font-size:3cqw}}
.login-stage .parchment-copy h1,.login-stage .parchment-copy p{color:#17130e;text-shadow:none}.login-stage .parchment-copy h1{font-weight:600}

.login-stage .account-label,.login-stage .password-label{margin:0;line-height:1.5cqw;height:3.4%;display:flex;align-items:center}.login-stage .account-input,.login-stage .password-input{margin:0;line-height:normal}.login-stage .original-login{width:12%;padding:0;line-height:1;display:grid;place-items:center}
body.choosing-character main{background:#000;display:grid;place-items:center}body.choosing-character .game-shell{width:min(100vw,133.333dvh);height:auto;aspect-ratio:4/3;background:#000}body.choosing-character .characters{inset:0;padding:0;margin:0;border:0;background:transparent;display:block}.character-stage{position:absolute;inset:0;background:url('assets/client/images/105.img.png') center/100% 100%;container-type:inline-size}.character-slots{position:absolute;left:9%;right:9%;top:2%;height:56%;display:flex;justify-content:space-between;overflow-x:auto}.character-slot{flex:0 0 28%;height:100%;margin:0;padding:0;border:0;background:transparent;position:relative;opacity:.75}.character-slot.selected{opacity:1}.character-slot canvas,.character-slot img{width:100%;height:100%;object-fit:contain;background:transparent;image-rendering:pixelated}.character-slot span{position:absolute;left:0;right:0;bottom:0;color:#d2c390;font-size:1.4cqw}.character-stats{position:absolute;left:10%;top:62%;width:63%;color:#ddd;font-family:PMingLiU,serif;font-size:2cqw}.character-stats div{display:flex;gap:6%;margin:1cqw 0}.character-stats span{width:25%;color:#d4c99e}.character-stats strong{font-weight:400;background:#15151599;min-width:30%;padding:0 .6cqw}.character-enter,.character-cancel{position:absolute;left:80%;width:12%;height:4%;padding:0;margin:0;background:transparent;border:0;font:700 2.3cqw PMingLiU,serif;color:#d4c99e}.character-enter{top:84%}.character-cancel{top:89%}.character-status{position:absolute;left:9%;bottom:1%;font-size:1.2cqw;color:#ead5a0!important}

/* Original 640 × 480 selection composition; IMG frames retain native proportions. */
.character-slots{left:10.94%;right:9.69%;top:0;height:60.833%;gap:7.1875cqw;justify-content:flex-start;overflow-x:auto;scrollbar-width:thin}.character-slot{flex:0 0 20.625cqw;height:45.625cqw;opacity:1}.character-slot img{width:100%;height:100%;object-fit:contain}.character-slot.selected{background:transparent}.character-stats{left:8.594%;top:59.792%;width:68.75%;height:38.542%;background:url('assets/client/images/104c.img.png') center/100% 100% no-repeat;font:1.875cqw PMingLiU,serif;color:#eee}.character-stats .selection-value{position:absolute;display:block;margin:0;padding:0 .45cqw;box-sizing:border-box;height:3.3cqw;line-height:2.4cqw;text-align:left;white-space:nowrap;overflow:hidden;text-shadow:1px 1px #111}.character-enter,.character-cancel{left:82%;width:12.188%;height:4.375%;border:0;background:transparent;cursor:pointer}.character-enter{top:84%}.character-cancel{top:89%}.character-enter img,.character-cancel img{width:100%;height:100%;object-fit:contain;image-rendering:pixelated}.character-enter:disabled{opacity:.4}.character-enter:hover,.character-cancel:hover{filter:brightness(1.35)}.character-status{left:8.6%;bottom:0;margin:0;font-size:1.3cqw;max-width:70%;background:#0009}.character-slot .portrait-unavailable{bottom:15%;font-size:1.5cqw;color:#dbc99a}.character-slot:focus-visible{outline:1px solid #dec58b;outline-offset:-2px}

body.choosing-character main{grid-template-columns:minmax(0,1fr);grid-template-rows:minmax(0,1fr);gap:0;min-height:0;width:100vw;height:100dvh;overflow:hidden}body.choosing-character .game-shell{justify-self:center;align-self:center;min-height:0;max-height:100dvh;flex:none}.character-slots{left:10.9375%;right:0;gap:8.125cqw}.character-stats{left:8.594%;top:60%;height:38.542%}.character-enter,.character-cancel,.character-delete{left:79.6875%;width:17.5%;height:3.9583%;margin:0;padding:0;border:0;background:transparent}.character-enter{top:84%}.character-cancel{top:88%}.character-delete{position:absolute;top:94%;font:700 2cqw PMingLiU,serif;color:#c4c39e;letter-spacing:.35cqw;cursor:pointer;text-shadow:1px 1px #65644e}.character-delete:hover{color:#fff0b5}.character-stats .selection-value{font-size:1.875cqw;line-height:2.5cqw;height:2.8cqw}

/* Scope beats the shared game-shell button rules, including hover and padding. */
body.choosing-character .character-stage button,body.choosing-character .character-stage button:hover{border:0;background:transparent;padding:0;margin:0;box-shadow:none}body.choosing-character .character-stage .character-slot{width:20.625cqw;height:45.625cqw}body.choosing-character .character-stage .character-enter,body.choosing-character .character-stage .character-cancel,body.choosing-character .character-stage .character-delete{width:17.5cqw}body.choosing-character .character-stage .character-delete{color:#c4c39e;font:700 2cqw PMingLiU,serif}.character-stats{left:6.25%;top:59.5833%}

.character-slot img{transform:translateY(-3.75cqw)}.character-slot.empty-slot img{clip-path:inset(45% 0 0 0)}

.character-stats .selection-value{height:2.03125cqw;line-height:2.03125cqw;color:#eee;font-family:PMingLiU,"細明體",monospace}

body.choosing-character{height:100dvh;overflow:hidden}body.choosing-character main{min-height:0;overflow:hidden}.character-slots{overflow:hidden;scrollbar-width:none}.character-slots::-webkit-scrollbar{display:none}.character-slot .empty-sword{width:100%;height:100%;background:transparent;transform:translateY(-3.75cqw);image-rendering:pixelated}.character-slot.empty-slot img{clip-path:none}
.creation-stage{background-image:url('assets/client/images/310.img.png')}.creation-copy{position:absolute;left:10.8%;top:38%;width:29%;font:1.875cqw/1.25 PMingLiU,serif;color:#111}.creation-copy p{color:#111;margin:0 0 1.5cqw}.creation-portrait{position:absolute;left:63%;top:-1%;width:20.625%;height:60.833%;object-fit:contain;image-rendering:pixelated}.creation-job{position:absolute;width:10%;height:12%;cursor:pointer}.creation-job img{width:100%;height:100%;object-fit:contain;image-rendering:pixelated}.creation-job:nth-of-type(1){left:51%;top:7%}.creation-job:nth-of-type(2){left:51%;top:21%}.creation-job:nth-of-type(3){left:86%;top:7%}.creation-job:nth-of-type(4){left:86%;top:21%}.creation-gender{position:absolute;top:53%;width:7%;height:7%;color:#d3c999!important;font:italic 3cqw Georgia,serif!important}.creation-gender.male{left:55%}.creation-gender.female{left:86%}.creation-values{position:absolute;left:51%;top:65%;width:44%;display:grid;grid-template-columns:1fr 1fr;gap:.7cqw 2cqw;font:1.65cqw PMingLiU,serif;color:#eee}.creation-values label{display:flex;align-items:center;gap:.6cqw;margin:0}.creation-values input{width:6cqw;height:2.5cqw;padding:0;margin:0;text-align:center;font:inherit;background:#1119}.creation-remaining{position:absolute;left:68%;top:62%;color:#d3c999;font:1.8cqw PMingLiU,serif}.creation-name-label{position:absolute;left:57%;top:79%;margin:0;font:1.875cqw PMingLiU,serif;color:#d3c999}.creation-name{position:absolute;left:71%;top:79%;width:17.7%;height:3.4%;padding:0 .5cqw;margin:0;background:#111a;color:#fff;font:1.875cqw PMingLiU,serif}.creation-stage .character-enter{left:70%;top:87%}.creation-stage .character-cancel{left:70%;top:91%}.creation-stage .character-status{left:51%;width:45%;bottom:1%}

.creation-board{position:absolute;left:52.2%;top:65.8%;width:45.625%;height:17.5%;background:url('assets/client/images/106c.img.png') center/100% 100% no-repeat;image-rendering:pixelated}.creation-values{left:52.2%;top:65.8%;width:45.625%;height:17.5%;display:block}.creation-values label{position:absolute;width:5cqw;height:2.4cqw;margin:0;gap:0}.creation-values label:nth-child(odd){left:27.4%}.creation-values label:nth-child(even){left:80%}.creation-values label:nth-child(1),.creation-values label:nth-child(2){top:0}.creation-values label:nth-child(3),.creation-values label:nth-child(4){top:19%}.creation-values label:nth-child(5),.creation-values label:nth-child(6){top:38%}.creation-values input{width:100%;height:100%;border:0;border-radius:0;padding:0;appearance:textfield;background:#0005}.creation-values input::-webkit-inner-spin-button{opacity:1}.creation-name-label{visibility:hidden}.creation-remaining{left:66%;top:62.4%;font-size:1.65cqw}.creation-name{top:79.5%}
/* Native 640 x 480 creation coordinates and original bitmap controls. */
.creation-copy{left:10.9375%;top:11.25%;width:28.125%;height:66.875%;font:1.875cqw/2.2cqw PMingLiU,serif;white-space:pre-wrap;overflow:auto;scrollbar-width:none}
.creation-copy::-webkit-scrollbar{display:none}.creation-copy p{margin:0}
.creation-portrait{left:65.625%;top:-1%;width:20.625%;height:60.833333%}
.creation-gender{top:51.666667%;width:4.6875%;height:9.166667%;padding:0!important;border:0!important;background:transparent!important}
.creation-gender.male{left:55.3125%}.creation-gender.female{left:85.9375%}.creation-gender img{width:100%;height:100%;image-rendering:pixelated}
.creation-values label{width:10.3125cqw;height:2.4cqw;gap:0}.creation-values label:nth-child(odd){left:24.66%}.creation-values label:nth-child(even){left:63.7%}
.creation-values input{width:3.4375cqw;flex:none;background:transparent;color:#eee;font:1.875cqw/2.4cqw PMingLiU,monospace;border:0;outline:none;appearance:textfield}.creation-values input::-webkit-inner-spin-button{display:none}
.creation-stat-step{width:1.5625cqw!important;height:1.5625cqw!important;padding:0!important;margin:.2cqw .15cqw!important;border:1px solid #555!important;border-radius:0!important;background:#111!important;display:grid;place-items:center}
.creation-stat-step img{width:1.09375cqw;height:1.09375cqw;image-rendering:pixelated}
.creation-remaining{left:71.875%;top:68.333333%;width:3.75%;height:4.375%;background:url('assets/client/images/714.img.png') -3.125cqw -6.875cqw/9.6875cqw 10.15625cqw no-repeat;text-align:center;color:white;font:2.5cqw/3.28125cqw PMingLiU,monospace}
.creation-name{border:0;border-radius:0;background:#111;left:71.25%;top:79.166667%;width:17.8125%;height:2.916667%}
.creation-remaining::before{content:'屬性分配點數';position:absolute;left:-4.84375cqw;top:-3.4375cqw;width:13.4375cqw;color:#d3c999;font:1.875cqw/2.1875cqw PMingLiU,serif;white-space:nowrap}
.creation-remaining{background-position:-3.28125cqw -5.15625cqw}
.creation-remaining{z-index:3}.creation-name{box-sizing:border-box}
.creation-remaining{font-size:1.875cqw}
.creation-values label:nth-child(even){left:55.1%}
.creation-values label:nth-child(even) input{order:3}
.creation-values label:nth-child(odd){left:27.4%}
.creation-remaining::before{top:-4.6875cqw}
.creation-name{background:transparent!important;outline:none!important;box-shadow:none!important;padding:0!important;color:#eee}

/* Mirror the left allocation column around the central points counter. */
.creation-board{background-image:url('assets/client/images/106c-balanced.img.png')}
.creation-values label:nth-child(odd){left:23.8%}

.creation-board::before{content:"";position:absolute;left:-3.75cqw;top:0;width:15.625cqw;height:9.375cqw;background:url("assets/client/images/106c-left-stats.img.png") center/100% 100% no-repeat;image-rendering:pixelated}

/* V47: fit original character descriptions without single-character wraps. */
.creation-copy{font-size:1.45cqw;line-height:1.8cqw;white-space:pre-wrap;overflow-wrap:normal;word-break:keep-all}.creation-name{left:72.1%;top:79.5%;width:17%;}

/* Keep typed character names inside the original name field artwork. */
.creation-name{text-indent:1.2cqw!important}

@media(pointer:coarse){.login-stage input{font-size:16px}}

/* Community link stays inside the login stage, clear of the account fields. */
.login-community-link{position:absolute;right:max(18px,2.5%);top:max(16px,2.5%);z-index:2;display:grid;place-items:center;min-width:88px;min-height:44px;line-height:0;text-decoration:none}
.login-community-link img{display:block;width:88px;height:31px;max-width:none;image-rendering:auto}
.login-community-link:focus-visible{outline:2px solid #f7d78e;outline-offset:4px}
@media(max-width:480px){.login-community-link{right:12px;top:8px}}

/* Account login announcement: a modal keeps the existing character selection behind it. */
.login-announcement{box-sizing:border-box;width:min(640px,92vw);max-width:92vw;max-height:88vh;max-height:88dvh;padding:0;border:2px solid #a78b54;border-radius:8px;background:linear-gradient(145deg,#27251f,#111517);color:#f3e4bd;box-shadow:0 16px 70px #000c;font-family:serif;overflow:hidden;}
.login-announcement[open]{display:flex;flex-direction:column;}
.login-announcement::backdrop{background:#000b;}
.login-announcement h2{margin:0;padding:18px 24px;border-bottom:1px solid #79633d;color:#f4d68e;font-size:24px;text-align:center;flex-shrink:0;}
.login-announcement-content{padding:22px 26px;overflow:auto;min-height:100px;white-space:pre-wrap;overflow-wrap:anywhere;line-height:1.85;font-size:18px;outline-offset:-4px;overscroll-behavior:contain;}
.login-announcement-footer{padding:15px 20px;border-top:1px solid #79633d;background:#080b0da6;text-align:center;font-size:16px;flex-shrink:0;}
.login-announcement-footer strong{display:inline-block;min-width:1.4em;font:700 25px sans-serif;color:#ffd67a;vertical-align:baseline;}
@media(max-width:600px),(max-height:500px){.login-announcement h2{padding:10px 16px;font-size:20px;}.login-announcement-content{padding:12px 16px;font-size:16px;min-height:50px;}.login-announcement-footer{padding:9px 12px;font-size:14px;}}

/* Keep the login copy on its intended lines inside the parchment. */
.login-stage .parchment-copy{width:26%;font-size:1.55cqw}
.login-stage .parchment-copy>p:not(.connection-message){white-space:nowrap}
.login-stage .connection-message{white-space:pre-line}

.login-stage .parchment-copy>p.restart-notice{white-space:normal;font-size:1.35cqw;line-height:1.5;color:#802418;margin-top:1.4cqw}
.login-stage .restart-notice[hidden]{display:none}

/* Touch-only inline login keyboard; desktop login keeps the original layout. */
body.touch-login{min-height:100dvh;overflow:hidden}
body.touch-login .login-screen{box-sizing:border-box;min-height:100dvh;height:100dvh;align-items:start;padding:env(safe-area-inset-top) 0 calc(35vh + env(safe-area-inset-bottom))}
body.touch-login .login-stage{width:min(100vw,133.333dvh);flex:none}
body.touch-login .login-stage input{font-size:clamp(14px,3.2cqw,22px)}
body.touch-login .account-input.keyboard-active,body.touch-login .password-input.keyboard-active{border-color:#e7c66e;box-shadow:0 0 0 2px #9e762c,0 0 12px #d1a74c80}
.login-keyboard{position:fixed;z-index:10000;left:0;right:0;bottom:0;padding:7px max(9px,env(safe-area-inset-right)) max(8px,env(safe-area-inset-bottom)) max(9px,env(safe-area-inset-left));box-sizing:border-box;background:linear-gradient(180deg,#22252bf2,#101216fa);border-top:1px solid #c5a761;box-shadow:0 -7px 22px #0009;color:#ead9a9;font:500 14px/1.2 system-ui,sans-serif;transition:transform .18s ease}
.login-keyboard.is-collapsed{transform:translateY(105%)}
.login-keyboard__bar{display:flex;align-items:center;gap:10px;max-width:900px;margin:0 auto 7px;min-height:28px;color:#d9c58d}
.login-keyboard__field{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#fff0c3;text-align:center}
.login-keyboard__hide{width:36px;height:28px;border:1px solid #80683b;border-radius:5px;background:#1a1b1e;color:#e8d28e;font-size:21px;line-height:1}
.login-keyboard__rows{display:grid;gap:5px;max-width:900px;margin:0 auto}
.login-keyboard__row{display:flex;justify-content:center;gap:4px;min-width:0}
.login-keyboard__key{flex:1 1 0;min-width:0;height:clamp(30px,5.4vh,48px);padding:0 2px;border:1px solid #6e603f;border-radius:5px;background:linear-gradient(180deg,#45464a,#292a2d 55%,#1d1e21);box-shadow:inset 0 1px #ffffff22,0 2px #090a0c;color:#f3ead0;font:600 clamp(14px,2.5vh,20px)/1 system-ui,sans-serif;touch-action:manipulation;user-select:none;-webkit-user-select:none}
.login-keyboard__key:active{transform:translateY(1px);background:linear-gradient(#755d2c,#3e3420);color:#fff1bb}
.login-keyboard__key.is-special{flex:1.3 1 0;color:#e6cc83;font-size:clamp(12px,2vh,16px)}
.login-keyboard__key.is-mode{flex:1.4 1 0}
.login-keyboard__key.is-space{flex:3 1 0}
.login-keyboard__key.is-next{flex:1.8 1 0;background:linear-gradient(#81662d,#4a391d);color:#fff0b7}
/* Native UI font is globally marked !important; give the touch keypad a clear Ming face. */
body.touch-login .login-keyboard,body.touch-login .login-keyboard *{font-family:PMingLiU,"新細明體",serif!important}
body.touch-login .login-keyboard__key{font-weight:600!important}
.login-keyboard{position:fixed}
.login-keyboard__hide{position:absolute;top:8px;right:10px;width:40px;height:36px;display:grid;place-items:center;box-sizing:border-box;padding:0;font-size:0!important;line-height:0;overflow:hidden}
.login-keyboard__hide::before{content:"";width:10px;height:10px;border-right:2px solid #e8d28e;border-bottom:2px solid #e8d28e;transform:translateY(-3px) rotate(45deg)}
body.touch-login.choosing-character .login-screen,body.touch-login.in-world .login-screen{display:none!important}
body.touch-login.choosing-character .login-keyboard,body.touch-login.in-world .login-keyboard{display:none!important}
@media(min-aspect-ratio:1/1){body.touch-login .login-screen{display:grid;grid-template-columns:minmax(0,60vw) minmax(0,40vw);grid-template-rows:100dvh;justify-items:center;align-items:center;height:100dvh;min-height:100dvh;padding:0}body.touch-login .login-stage{grid-column:1;width:min(60vw,133.333dvh);max-height:100dvh}body.touch-login .login-keyboard{top:0;right:0;bottom:0;left:auto;width:40vw;display:flex;flex-direction:column;justify-content:center;padding:env(safe-area-inset-top) max(8px,env(safe-area-inset-right)) env(safe-area-inset-bottom) max(8px,env(safe-area-inset-left));border-top:0;border-left:1px solid #c5a761;box-shadow:-7px 0 22px #0009}.login-keyboard__bar{min-height:22px;margin-bottom:5px}.login-keyboard__rows{width:100%;max-width:none;gap:4px}.login-keyboard__row{width:100%}.login-keyboard__key{height:clamp(30px,8vh,58px)}}
@media(max-aspect-ratio:1/1){body.touch-login .login-keyboard{top:auto;right:0;bottom:0;left:0;width:auto;display:block;height:auto;max-height:44dvh;overflow:auto;padding:8px max(9px,env(safe-area-inset-right)) max(8px,env(safe-area-inset-bottom)) max(9px,env(safe-area-inset-left));border-left:0;border-top:1px solid #c5a761;box-shadow:0 -7px 22px #0009}body.touch-login .login-keyboard__bar{min-height:24px;margin:0 46px 6px 0;font-size:clamp(14px,2.2vh,20px)!important}.login-keyboard__rows{width:100%;max-width:none;gap:5px}.login-keyboard__row{width:100%;gap:4px}.login-keyboard__key{height:clamp(42px,5.5vh,68px);font-size:clamp(20px,3vh,30px)!important}.login-keyboard__key.is-special{font-size:clamp(15px,2.2vh,22px)!important}.login-keyboard__key.is-space{flex:2.2 1 0}}

/* Touch login polish: keep the selection screen unobstructed in either orientation. */
body.touch-login.choosing-character .login-screen,
body.touch-login.in-world .login-screen,
body.touch-login.choosing-character .login-keyboard,
body.touch-login.in-world .login-keyboard{display:none!important;visibility:hidden!important;pointer-events:none!important}
body.touch-login .login-keyboard,
body.touch-login .login-keyboard *{font-family:Arial,Helvetica,"PMingLiU","新細明體","細明體",serif!important;letter-spacing:.02em}
body.touch-login .login-keyboard__title{font-size:clamp(15px,2.3vh,22px)!important;line-height:1.35;white-space:normal}
body.touch-login .login-keyboard__field{font-size:clamp(14px,2vh,19px)!important}
body.touch-login .login-keyboard__hide{top:max(6px,env(safe-area-inset-top));right:max(8px,env(safe-area-inset-right));z-index:2;width:42px;height:38px}
body.touch-login .login-keyboard.is-collapsed{visibility:hidden;pointer-events:none}
body.touch-login .login-keyboard__key{font-family:Arial,Helvetica,"PMingLiU","新細明體","細明體",serif!important;font-weight:500!important;text-shadow:0 1px 1px #0008}
@media(min-aspect-ratio:1/1){
  body.touch-login .login-screen{grid-template-columns:minmax(0,58vw) minmax(0,42vw)}
  body.touch-login .login-stage{width:min(58vw,133.333dvh)}
  body.touch-login .login-keyboard{width:42vw}
  body.touch-login .login-keyboard__bar{box-sizing:border-box;width:100%;max-width:none;justify-content:flex-start;padding:0 52px 0 8px;min-height:42px}
  body.touch-login .login-keyboard__title{flex:0 0 34%;font-size:clamp(15px,2.2vh,21px)!important}
  body.touch-login .login-keyboard__rows{padding:0 4px}
}
@media(max-aspect-ratio:1/1){
  body.touch-login .login-screen{padding-bottom:44dvh}
  body.touch-login .login-keyboard{display:grid;grid-template-columns:minmax(0,1fr);grid-template-rows:auto minmax(0,1fr);align-items:stretch;column-gap:0;height:min(44dvh,460px);max-height:44dvh;overflow:hidden;padding:42px max(8px,env(safe-area-inset-right)) max(8px,env(safe-area-inset-bottom)) max(8px,env(safe-area-inset-left))}
  body.touch-login .login-keyboard__bar{grid-column:1;display:flex;flex-direction:row;align-items:center;justify-content:flex-start;gap:12px;width:auto;max-width:none;min-height:30px;margin:0 46px 5px 0;padding:0 4px;font-size:clamp(15px,2.3vh,21px)!important;text-align:left}
  body.touch-login .login-keyboard__title{flex:0 0 auto;font-size:clamp(17px,2.7vh,25px)!important;white-space:nowrap}
  body.touch-login .login-keyboard__field{flex:1 1 auto;width:auto;min-width:0;text-align:left;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  body.touch-login .login-keyboard__rows{grid-column:1;grid-row:2;width:100%;max-width:none;gap:clamp(4px,.7vh,7px)}
  body.touch-login .login-keyboard__row{width:100%;gap:clamp(3px,.55vw,7px)}
  body.touch-login .login-keyboard__key{height:clamp(40px,5.8vh,64px);font-size:clamp(20px,3.3vh,32px)!important}
}
@media(min-aspect-ratio:1/1) and (max-height:500px){
  body.touch-login .login-screen{grid-template-columns:minmax(0,48vw) minmax(0,52vw)}
  body.touch-login .login-stage{width:min(48vw,133.333dvh)}
  body.touch-login .login-keyboard{width:52vw}
  body.touch-login .login-keyboard__key{height:clamp(32px,9vh,48px);font-size:clamp(14px,4vh,20px)!important}
  body.touch-login .login-keyboard__key.is-special{font-size:clamp(12px,3vh,16px)!important}
}
