.language-switch{display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto;min-width:44px;min-height:44px;padding:0 10px;border:1px solid var(--line,#dedbd3);border-radius:50%;background:var(--paper,#fffdf8);color:var(--ink,#25241e);font:700 13px/1.2 "PingFang TC","Microsoft JhengHei",sans-serif;text-decoration:none;white-space:nowrap;letter-spacing:.02em}
.language-switch:hover{background:var(--soft,#f2eee6)}
.site-nav>a.language-switch{display:inline-flex;font:700 13px/1.2 "PingFang TC","Microsoft JhengHei",sans-serif}
.language-switch:focus-visible{outline:2px solid var(--accent,#b54c28);outline-offset:3px}
html:lang(zh){--display:"PingFang TC","Microsoft JhengHei","Heiti TC",sans-serif;--body:"PingFang TC","Microsoft JhengHei","Heiti TC",sans-serif;font-family:var(--body)}
html:lang(zh) .cabinet .title-card h2{font-style:normal;text-shadow:none}
html:lang(zh) body,html:lang(zh) button,html:lang(zh) input,html:lang(zh) select,html:lang(zh) textarea{font-family:"PingFang TC","Microsoft JhengHei","Heiti TC",sans-serif}
html:lang(zh) h1,html:lang(zh) h2,html:lang(zh) h3,html:lang(zh) .site-brand,html:lang(zh) .eyebrow{font-family:"PingFang TC","Microsoft JhengHei",sans-serif;letter-spacing:.025em;word-break:normal;overflow-wrap:anywhere}
html:lang(zh) p{line-height:1.85;text-wrap:pretty;word-break:normal}
html:lang(zh) .shelf-intro h1{font-size:clamp(32px,5.5vw,64px);font-weight:850;line-height:1.3}
html:lang(zh) .shelf-intro h1 span{display:inline-block}
html:lang(zh) .shelf-intro p{max-width:36em;margin-inline:0}
html:lang(zh) .title-card h2{letter-spacing:.03em;line-height:1.12}
html:lang(zh) .hud-label,html:lang(zh) .edition,html:lang(zh) .card-foot,html:lang(zh) .cabinet-top,html:lang(zh) .board-columns,html:lang(zh) .game-card-meta{letter-spacing:.04em}
html:lang(zh) .account-intro h1{line-height:1.2;letter-spacing:.025em;font-size:clamp(42px,5vw,66px)}
html:lang(zh) .game-control-note{line-height:1.9}
/* Chinese is a reading layout, rather than the English arcade's miniature caps.
   Keep prose at 18px, secondary copy at 16px, and reserve 13–14px for compact
   game instrumentation. These rules come after every game and theme sheet. */
html:lang(zh) body.arcade-page{font-size:18px;line-height:1.7}
html:lang(zh) .site-brand>span{font-size:24px;font-weight:650;line-height:1.3;letter-spacing:0}
html:lang(zh) .site-nav :is(a,[data-account-link],[data-account-logout]){font-size:16px;line-height:1.5;letter-spacing:0}
html:lang(zh) .site-nav>a.language-switch{font-size:15px}
html:lang(zh) .theme-option{font-size:16px}
html:lang(zh) .site-footer{flex-wrap:wrap;gap:12px 24px}
html:lang(zh) .arcade-page .site-footer :is(a,span),html:lang(zh) .site-footer{font-size:15px;line-height:1.7}
html:lang(zh) .shelf-intro h1{font-size:clamp(36px,4.3vw,56px);font-weight:700;line-height:1.4}
html:lang(zh) .shelf-intro p{font-size:20px;line-height:1.8;max-width:34em}
html:lang(zh) .game-card h2{font-size:28px;line-height:1.4;font-weight:650;letter-spacing:0}
html:lang(zh) .game-card p{font-size:18px;line-height:1.75}
html:lang(zh) .game-card-meta{font-size:15px;line-height:1.6;letter-spacing:0}

/* Account forms: one coherent scale, including errors and recovery screens. */
html:lang(zh) .arcade-page.account-page .account-layout{grid-template-columns:minmax(0,1fr) minmax(0,520px);max-width:1120px;gap:64px;margin:48px auto 64px}
html:lang(zh) .arcade-page.account-page .account-intro h1{font-size:48px;line-height:1.3;font-weight:700;letter-spacing:0;margin:4px 0 24px}
html:lang(zh) .arcade-page.account-page .account-intro>p:not(.account-lead){font-size:20px;line-height:1.85;max-width:24em}
html:lang(zh) .arcade-page.account-page .account-guest-link>a{font-size:18px;line-height:1.6;gap:10px;min-height:44px}
html:lang(zh) .account-card{padding:0 32px 28px}
html:lang(zh) .account-card-top{font-size:15px;letter-spacing:0;margin-inline:-32px;padding:14px 24px;line-height:1.5}
html:lang(zh) .account-tabs{margin:20px 0 28px}
html:lang(zh) .account-tabs button{font-size:18px;line-height:1.5;letter-spacing:0;padding:14px 6px;min-height:54px}
html:lang(zh) .account-card h2{font-family:var(--body);font-size:32px;font-weight:650;letter-spacing:0;line-height:1.4;margin:24px 0 28px}
html:lang(zh) .account-card form label{font-size:18px;letter-spacing:0;line-height:1.5;margin:24px 0 10px;gap:12px}
html:lang(zh) .account-card form label span{font-size:16px;letter-spacing:0;line-height:1.7}
html:lang(zh) .account-card input{font-size:20px;line-height:1.5;min-height:56px;padding:12px 14px;border-radius:3px}
html:lang(zh) .account-card :is(.field-help,.account-form-note,.account-form-copy,.account-message,.account-form-error,.account-field-error,.account-signed-in p,#account-email-state,#account-verification-message){font-size:16px;line-height:1.8;letter-spacing:0}
html:lang(zh) .account-card .account-form-note{margin:24px 0}
html:lang(zh) .account-card .primary-button{font-size:18px;line-height:1.5;letter-spacing:0;min-height:56px;padding:14px 18px;margin-top:24px}
html:lang(zh) .account-card :is(.account-minor,.account-game-link){font-size:18px;line-height:1.6;min-height:44px;margin-top:16px;padding-block:10px}
html:lang(zh) .account-card-foot{font-size:16px;line-height:1.8;letter-spacing:0;margin-top:24px;padding-top:20px}
html:lang(zh) .account-player-stamp{font-size:16px;line-height:1.5}
html:lang(zh) #account-nickname{font-family:var(--body);font-size:32px;line-height:1.4}

/* Page instructions and scores remain readable outside the game canvas. */
html:lang(zh) .game-back{font-size:16px}
html:lang(zh) .arcade-page .game-heading h1{font-size:38px;line-height:1.4;font-weight:700;letter-spacing:0}
html:lang(zh) .arcade-page .game-heading>p{font-size:18px;line-height:1.8;max-width:27em}
html:lang(zh) .game-controls h2{font-size:28px;font-weight:650;line-height:1.4}
html:lang(zh) .game-control-device h3{font-size:20px;line-height:1.5}
html:lang(zh) .game-control-device li,html:lang(zh) .game-control-note{font-size:18px;line-height:1.8}
html:lang(zh) :is(.ingredient-dash-note,.wars-ammo-note,.wars-points-guide,.squid-board-tip,.wars-board-tip){font-size:16px;line-height:1.8}
html:lang(zh) .arcade-page :is(.board-heading h2,.wars-ammo-guide h3){font-size:22px;line-height:1.5;letter-spacing:0}
html:lang(zh) .arcade-page .board-tabs button{font-size:16px;line-height:1.5}
html:lang(zh) .arcade-page :is(.board-columns,.board-tabs button span,.score-meta,.board-footer){font-size:14px;line-height:1.6;letter-spacing:0}
html:lang(zh) .arcade-page :is(.score-row,.score-player,.score-value,.board-personal,.board-personal-score,.empty-board){font-size:16px;line-height:1.6}
html:lang(zh) .arcade-page :is(.score-rank,.board-personal-rank){font-size:14px}
html:lang(zh) .arcade-page .wars-ammo-table :is(th,td){font-size:16px;line-height:1.6}
html:lang(zh) .arcade-page .wars-ammo-table thead th{font-size:14px}

/* Per-game fullscreen selectors are highly specific. Important is limited to
   this shared instrumentation floor so mobile rules cannot shrink it again. */
html:lang(zh) :is(.edition,.card-foot,.hud-label,.eyebrow,.wars-name-label,.wars-hp-unit,.wars-wind,.squid-weather-title,.squid-input-label,.note-bottom,.strip-title,.controls-legend,.dash-status,.game-record-note,.wars-keyboard-legend){font-size:14px!important;line-height:1.5;letter-spacing:0!important}
html:lang(zh) :is(.wars-name-label>span,.ingredient span,.ingredient b,.wars-slider>span,.wars-weapon-control legend,.wars-weapon-name,.wars-weapon-damage,.wars-move-control span,.squid-weather span,.squid-weather strong,.squid-input-label span,.controls-legend span,.squid-scoreboard-footer>span){font-size:14px!important;line-height:1.5;letter-spacing:0!important}
html:lang(zh) :is(#wars-status,.squid-message,.game-message,.text-button,#wars-leave,#wars-retry){font-size:15px!important;line-height:1.6}
html:lang(zh) :is(kbd,.wars-keyboard-legend kbd,.controls-legend kbd){font-size:13px!important;letter-spacing:0}
html:lang(zh) :is(.title-card p,.wars-ticket p,.results .save-status,.results .result-stats,.results form label,.results .account-score-notice,.score-sign-in small,.score-register-invite small,.score-register-invite button){font-size:16px!important;line-height:1.7;letter-spacing:0}
html:lang(zh) :is(.primary-button,.wars-secondary,.squid-action,.touch-dash,.wars-fire,.name-row button,.score-sign-in a,.score-register-invite a){font-size:16px!important;line-height:1.5;letter-spacing:0}
html:lang(zh) .account-card .primary-button{font-size:18px!important}
html:lang(zh) .results .primary-button{white-space:nowrap}
html:lang(zh) .arcade-page .cabinet-tools :is(button,#fullscreen-button,#squid-fullscreen,#wars-fullscreen){font-size:15px!important;letter-spacing:0}
html:lang(zh) .arcade-page .squid-cabinet .squid-action-copy p{font-size:16px}
html:lang(zh) .arcade-page .squid-scorecard .throw-label{font-size:16px;line-height:1.6}
html:lang(zh) .arcade-page .squid-round-summary{font-size:16px;line-height:1.6}
html:lang(zh) .arcade-page .strip-title strong{font-size:14px}
html:lang(zh) .arcade-page .cabinet .title-card:not(.results) h2{font-size:40px;line-height:1.2;letter-spacing:0;margin:12px 0}
html:lang(zh) .arcade-page .cabinet:not(.is-expanded) .cabinet-bottom{flex-wrap:wrap;gap:12px}
html:lang(zh) .arcade-page .cabinet:not(.is-expanded) .hud-lives{min-width:max-content;white-space:nowrap}
html:lang(zh) .arcade-page .wars-cabinet .wars-controls .wars-move-control{width:100%;max-width:156px}
html:lang(zh) .arcade-page .wars-cabinet .wars-controls .wars-move-control>span{line-height:1.5}
html:lang(zh) .arcade-page .wars-cabinet .wars-weapon-options button{height:76px;min-height:76px;grid-template-rows:18px auto auto}
html:lang(zh) dialog :is(p,li,.help-controls b,legend,.wars-ammo-note){font-size:18px!important;line-height:1.8}
html:lang(zh) dialog h2{font-size:30px;line-height:1.4}
html:lang(zh) .arcade-page .wars-invite-dialog button{font-size:16px}
html:lang(zh) .arcade-page .squid-score-details :is(li,.squid-details-note,.squid-details-records dt,.squid-details-section-heading,.squid-details-summary){font-size:16px;line-height:1.8}

html:lang(zh) .policy-copy :is(p,li,dd){font-size:18px;line-height:1.9}
html:lang(zh) .policy-nav li,html:lang(zh) .storage-list dt{font-size:16px;line-height:1.7}
html:lang(zh) .intro-note small{font-size:16px;line-height:1.8}
html:lang(zh) .guest-note :is(p,strong){font-size:16px;line-height:1.8}
html:lang(zh) .wars-skip-finale{font-size:16px;line-height:1.5;letter-spacing:0}

@media(max-width:900px){
  html:lang(zh) .arcade-page.account-page .account-layout{grid-template-columns:minmax(0,1fr);max-width:560px;gap:24px;margin:32px auto 48px}
  html:lang(zh) .arcade-page.account-page .account-intro h1{font-size:38px;margin:0 0 16px}
  html:lang(zh) .arcade-page.account-page .account-intro>p:not(.account-lead){max-width:none;margin:0}
  html:lang(zh) .arcade-page.account-page .account-guest-link{margin-top:12px!important}
}
@media(max-width:520px){
  .site-header{gap:8px}.site-header-actions,.site-nav{gap:6px}.language-switch{padding-inline:8px;min-width:44px}
  html:lang(zh) .site-brand span{font-size:18px;letter-spacing:0}
  html:lang(zh) .site-nav [data-account-link]{font-size:16px}
  html:lang(zh) .shelf-intro h1{font-size:36px}
  html:lang(zh) .shelf-intro p{font-size:18px}
  html:lang(zh) .game-shelf{grid-template-columns:minmax(0,1fr)}
  html:lang(zh) .arcade-page .game-heading h1{font-size:32px}
  html:lang(zh) .account-card{padding:0 22px 24px}
  html:lang(zh) .account-card-top{margin-inline:-22px;padding-inline:22px}
  html:lang(zh) .account-card h2{font-size:28px}
  html:lang(zh) .arcade-page.account-page .account-intro>p:not(.account-lead){font-size:18px}
  html:lang(zh) .arcade-page .site-footer{align-items:flex-start;flex-direction:column;gap:14px}
  html:lang(zh) .cabinet-tools button{letter-spacing:0}
  html:lang(zh) .wars-result-title{font-size:30px}
  html:lang(zh) .crust-page .screen .title-card h2{font-size:36px!important;margin:9px 0 12px!important}
  html:lang(zh) .crust-page .screen .title-card{padding:18px!important}
}
@media(max-width:360px){
  html:lang(zh) .cabinet.is-expanded .results .primary-button{padding-inline:6px;gap:4px}
  html:lang(zh) .cabinet.is-expanded .results .primary-button>span{font-size:20px;line-height:1}
}
/* On pocket-sized control decks, show the topping and remaining stock. Damage
   and keyboard shortcuts remain in the visible guide and the help dialog. */
@media(max-width:700px),(orientation:landscape) and (max-height:600px){
  html:lang(zh) .arcade-page .wars-cabinet .wars-weapon-options{grid-template-columns:repeat(4,minmax(0,1fr));gap:5px}
  html:lang(zh) .arcade-page .wars-cabinet .wars-weapon-options button{grid-template-columns:minmax(0,1fr) auto;grid-template-rows:1fr;grid-template-areas:'name ammo';height:44px;min-height:44px;gap:2px;padding:5px}
  html:lang(zh) .arcade-page .wars-cabinet .wars-weapon-options :is(kbd,.wars-weapon-damage){display:none}
  html:lang(zh) .arcade-page .wars-cabinet .wars-weapon-ammo{font-size:13px;line-height:1.3}
  html:lang(zh) .arcade-page .wars-cabinet.is-expanded .wars-controls{grid-template-columns:minmax(0,1fr) minmax(0,1fr);grid-template-rows:auto 44px auto}
}
@media(orientation:portrait){
  html:lang(zh) .arcade-page .wars-cabinet.is-expanded{grid-template-rows:44px 70px minmax(0,1fr) auto auto}
  html:lang(zh) .arcade-page .wars-cabinet.is-expanded .wars-controls{grid-template-rows:auto auto auto}
}
@media(orientation:landscape){
  html:lang(zh) .arcade-page .wars-cabinet.is-expanded{--wars-control-width:clamp(280px,30vw,340px)}
  html:lang(zh) .arcade-page .wars-cabinet.is-expanded .wars-controls{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
}
@media(orientation:landscape) and (max-height:600px){
  html:lang(zh) .arcade-page .wars-cabinet.is-expanded{--wars-control-width:clamp(280px,48vw,340px);grid-template-rows:44px 55px minmax(0,1fr) auto}
  html:lang(zh) .arcade-page .wars-cabinet.is-expanded .wars-controls{padding:5px 9px;gap:5px 8px}
  html:lang(zh) .arcade-page .wars-cabinet.is-expanded .wars-slider input{height:28px}
  html:lang(zh) .arcade-page .wars-cabinet.is-expanded .wars-statusbar{gap:6px}
  html:lang(zh) .arcade-page .wars-cabinet.is-expanded #wars-status{font-size:14px!important;line-height:1.5;padding:6px 0}
}
html:lang(zh) .arcade-page .wars-cabinet.is-expanded.is-ending{grid-template-columns:minmax(0,1fr);grid-template-rows:44px minmax(0,1fr) auto}

/* The new receipt step and conveyor kitchen use the same Chinese reading scale. */
html:lang(zh) .score-sign-in-panel h3{font-family:var(--body);font-size:26px;line-height:1.4;font-style:normal}
html:lang(zh) .score-sign-in-panel :is(.score-sign-in-copy,.score-sign-in-message,form label){font-size:16px;line-height:1.7;letter-spacing:0}
html:lang(zh) :is(.score-sign-in>button,.score-sign-in-panel button){font-size:16px;line-height:1.5;min-height:44px}
html:lang(zh) .dough-page .dough-cabinet .dough-ticket h2{font-family:var(--body);font-size:32px;line-height:1.25;letter-spacing:0;font-style:normal}
html:lang(zh) .dough-page :is(.dough-ticket p,.dough-instruction-grid p,.dough-special p,.dough-key-legend){font-size:16px;line-height:1.7}
html:lang(zh) .dough-page :is(.dough-primary,.dough-secondary,.dough-how,.dough-name-row button){font-size:16px;min-height:44px;letter-spacing:0}
html:lang(zh) .dough-page :is(.dough-ticket-top,.dough-ticket-foot,.dough-receipt,.dough-result-total,.dough-save-status,.dough-result-entry label,.dough-eyebrow){font-size:14px;line-height:1.6;letter-spacing:0}
html:lang(zh) .dough-page :is(.dough-hud-label,.dough-order,.dough-timer>span,.dough-next>span,.dough-upcoming>span,.dough-rail-tip,.dough-actions>button,.dough-statusbar p){font-size:13px;line-height:1.5;letter-spacing:0}
html:lang(zh) .dough-page .dough-tutorial-coach h3{font-family:var(--body);font-size:20px;line-height:1.4;letter-spacing:0}
html:lang(zh) .dough-page .dough-tutorial-coach p{font-size:16px;line-height:1.6}
html:lang(zh) .dough-page :is(.dough-tutorial-top,.dough-tutorial-top button){font-size:14px;line-height:1.5;letter-spacing:0}
html:lang(zh) .dough-page .dough-tutorial-top button{min-height:44px}
html:lang(zh) .dough-page .is-expanded.is-tutorial{grid-template-rows:40px 65px 37px auto minmax(0,1fr) 61px 31px}
@media(max-width:540px){
 html:lang(zh) .dough-page .is-expanded.is-tutorial{grid-template-rows:37px 59px 34px auto minmax(0,1fr) 56px 30px}
 html:lang(zh) .dough-page .dough-order-name{display:none}
 html:lang(zh) .dough-page .dough-order{gap:6px}
}
@media(max-height:600px) and (min-width:541px){
 html:lang(zh) .dough-page .is-expanded.is-tutorial{grid-template-rows:35px minmax(0,1fr) 27px}
}
@media(max-height:540px) and (max-width:540px){
 html:lang(zh) .dough-page .dough-cabinet.is-expanded.is-tutorial{grid-template-rows:33px auto minmax(0,1fr) 46px 24px}
}
html:lang(zh) .arcade-page .leaderboard .board-heading h2{font-family:var(--body);font-size:25px;line-height:1.35;letter-spacing:0;font-weight:650}
html:lang(zh) .arcade-page :is(.score-row,.score-player,.board-more,.duel-round-record){font-family:var(--body)}
html:lang(zh) .arcade-page :is(.duel-board-note,.duel-empty p){font-family:var(--body);font-size:16px;line-height:1.8}
html:lang(zh) .arcade-page :is(.board-more,.duel-summary span,.duel-round-record){font-size:14px}
html:lang(zh) .medal-intro h1 em{font-style:normal}
