header nav,footer nav{display:flex;flex-wrap:wrap;gap:.6rem 1rem}
.page-language{display:flex;align-items:center;gap:.6rem;flex-wrap:wrap;margin-top:1rem}
.page-language select{width:auto;max-width:100%;padding:.5rem;font:inherit}
button,select,input{max-width:100%}
nav a{overflow-wrap:anywhere}
html[lang=ja],html[lang=ko],html[lang=zh]{line-height:1.7;word-break:normal}
.mode-tab,.group-mode-btn,.generate-btn{height:auto;white-space:normal;min-width:0}
.participant-name{min-width:0}
.content-nav-item,.content-nav-text{min-width:0;overflow-wrap:anywhere}
.content-nav-grid{grid-template-columns:repeat(4,minmax(0,1fr))}
.site-header{flex-wrap:wrap}
.site-header nav a:last-child{display:inline}
@media(max-width:500px){.option-row{flex-wrap:wrap}.participant-header{flex-wrap:wrap}.selectors{flex-wrap:wrap}.selector-wrapper{min-width:140px}.page-language{width:100%}}

/* Stable viewport geometry across locale changes and input focus. */
html{overflow-y:scroll;scrollbar-gutter:stable}
@supports(scrollbar-gutter:stable){html{overflow-y:auto}}
@media(max-width:800px){input:not([type=checkbox]):not([type=radio]),select,textarea,#language-selector,#lottery-selector,.participant-name{font-size:16px!important}}
