/* Only the language selector affects Japanese layout. All other rules are EN-only. */
.language-setting{display:flex;gap:8px;margin:0 0 20px;padding-bottom:20px;border-bottom:1px solid var(--g-edge)}
.language-setting button{flex:1;min-width:0;min-height:48px;padding:10px 16px;border:2px solid var(--g-edge);border-radius:12px;background:var(--g-panel);color:var(--g-text);font:inherit;font-weight:800}
.language-setting button[aria-pressed="true"]{background:var(--g-lime);color:var(--g-ink);border-color:var(--g-gold)}
html:lang(en) [data-i18n-initial]{visibility:hidden}
html:lang(en) #app,html:lang(en) dialog{hyphens:none}
html:lang(en) :is(h1,h2,h3,p,dd,dt,label,button,summary,small,.ja-keep){word-break:normal;overflow-wrap:normal;white-space:normal}
html:lang(en) :is(button,a,select,input){max-width:100%}
html:lang(en) :is(button,summary){line-height:1.35}
html:lang(en) .ja-keep{display:inline}
html:lang(en) .g-four-intro h1{font-size:clamp(22px,6.2vw,29px);line-height:1.35;letter-spacing:-.025em;text-wrap:balance}
html:lang(en) .g-four-intro p{max-width:360px;line-height:1.5}
html:lang(en) .g-four-copy{min-height:112px;gap:5px}
html:lang(en) .g-four-copy strong{font-size:16px;line-height:1.3;word-break:normal;text-wrap:balance}
html:lang(en) .g-four-copy small{font-size:11px;line-height:1.4;word-break:normal;overflow-wrap:normal}
html:lang(en) #app.g-app{--g-top:80px}
html:lang(en) #app.g-app .g-topbar{height:calc(80px + env(safe-area-inset-top,0px));gap:8px}
html:lang(en) #app.g-app .g-topbar h1{font-size:15px;line-height:1.3;min-width:0;text-wrap:balance}
html:lang(en) #app.g-app .g-topbar :is(.text-button,.seiha-mode-button){font-size:12px;line-height:1.3;white-space:normal;min-height:44px}
html:lang(en) #app.g-app .g-topbar :is([data-about],[data-king-help],[data-seiha-help]){max-width:64px;flex-shrink:0}
html:lang(en) #app.g-app :is(.g-record-button,.text-button,.playback-button){white-space:normal;line-height:1.35}
html:lang(en) #app.g-app .g-main-action{font-size:19px;white-space:normal}
html:lang(en) #app.g-app :is(.mission-picker,.seiha-goal-picker){min-width:0;text-align:left}
html:lang(en) #app.g-app :is(.place-name,.seiha-slot-name,.seiha-slot-city,.kz-condition-chip,.kz-place-open){white-space:normal;word-break:normal;overflow-wrap:normal;line-height:1.3}
html:lang(en) #app.g-app .place-row{grid-template-columns:44px minmax(0,1fr) 76px}
html:lang(en) #app.g-app .place-name{font-size:16px}
html:lang(en) #app.g-app .place-row [data-search]{font-size:11px;white-space:normal}
html:lang(en) #app.g-app .seiha-slot{min-height:108px}
html:lang(en) #app.g-app .seiha-slot-name{font-size:11px}
html:lang(en) #app.g-app .seiha-slot-city{font-size:10px}
html:lang(en) #app.g-app .seiha-release-time{font-size:11px;white-space:normal;min-height:44px}
html:lang(en) #app.g-app .seiha-tools :is([data-seiha-all],[data-seiha-wards],[data-king-all],[data-king-wards]){font-size:10px;white-space:normal;line-height:1.15}
html:lang(en) #app.g-app .map-tools .map-scope{font-size:10px;white-space:normal;line-height:1.15}
html:lang(en) #app.g-app .seiha-run-label{font-size:12px}
html:lang(en) #app.g-app .seiha-elapsed small{font-size:12px}
html:lang(en) #app.g-app .mamoru-town-pin strong{font-size:12px;line-height:1.2;white-space:normal}
html:lang(en) #app.g-app .mamoru-station-name{white-space:normal;word-break:normal}
html:lang(en) #app.g-app .mamoru-card{min-width:0}
html:lang(en) #app.g-app .mamoru-budget{flex-wrap:wrap;gap:8px}
html:lang(en) #app.g-app .mamoru-go{font-size:19px}
html:lang(en) #app.g-app .mamoru-pass h2{font-size:clamp(28px,7.5vw,42px);line-height:1.3}
html:lang(en) #app.g-app .kazoku .kz-order-options button{font-size:12px;line-height:1.35;min-height:96px}
html:lang(en) #app.g-app .kazoku .kz-result-top h2{font-size:15px;line-height:1.35}
html:lang(en) #app.g-app .kazoku .kz-person>strong{font-size:12px}
html:lang(en) .station-option{align-items:center;gap:10px;min-height:48px}
html:lang(en) .station-option>span{min-width:0;white-space:normal;text-align:left}
html:lang(en) .station-option>small{flex-shrink:0;max-width:36%;text-align:right}
html:lang(en) :is(.sheet,.kz-dialog){max-width:calc(100vw - 32px)}
html:lang(en) .sheet-head h2{min-width:0;font-size:19px;line-height:1.35}
html:lang(en) .sheet-body :is(p,dd,li){line-height:1.65}
html:lang(en) .flow-header>strong{font-size:14px;line-height:1.25;min-width:0}
html:lang(en) .flow-stage-top{flex-wrap:wrap;gap:6px}
html:lang(en) .flow-stage-top strong{font-size:12px}
html:lang(en) .flow-stage-top>span{white-space:nowrap;font-size:11px}
html:lang(en) .flow-copy :is(h1,h2){line-height:1.35;letter-spacing:-.02em}
html:lang(en) .flow-copy h1>span+span{font-size:.62em;margin-top:8px}
html:lang(en) .flow-copy p{line-height:1.7}
html:lang(en) :is(.flow-day-path,.flow-infection){flex-wrap:wrap;row-gap:8px}
html:lang(en) .flow-map-stat>span{font-size:10px;line-height:1.3}
html:lang(en) .flow-map-stat small{font-size:12px}
html:lang(en) .flow-pop-split small{font-size:11px}
html:lang(en) .flow-chapter-select::after{content:var(--i18n-contents);font-size:9px}
html:lang(en) #app.g-app .oku-result.is-cleared .result-score::before{content:var(--i18n-bitten)}
html:lang(en) .flow-download-files li{grid-template-columns:minmax(0,.85fr) minmax(0,1.2fr);line-height:1.5}
html:lang(en) .flow-download-files code{font-size:9px}
html:lang(en) .flow-download-credit p{overflow-wrap:anywhere}
@media(max-width:374px){
 html:lang(en) .g-four-copy{min-height:120px;padding-inline:8px}
 html:lang(en) .g-four-copy strong{font-size:15px}
 html:lang(en) .g-four-copy small{font-size:10px}
 html:lang(en) #app.g-app .g-topbar h1{font-size:14px}
}
@media(min-width:900px){
 html:lang(en) .g-four-intro h1{font-size:clamp(32px,3.2vw,46px)}
 html:lang(en) .g-four-intro p{max-width:none}
 html:lang(en) .g-four-copy{min-height:140px}
 html:lang(en) .g-four-copy strong{font-size:clamp(18px,1.6vw,25px)}
 html:lang(en) .g-four-copy small{font-size:13px}
 html:lang(en) #app.g-app .g-topbar h1{font-size:20px}
 html:lang(en) .flow-header>strong{font-size:20px}
}
