/* Touch feedback stays local, leaving photo coordinates and fixed controls stable. */
@media(prefers-reduced-motion:no-preference){
 .primary,.secondary,.textbutton,.dock-link,.back,.homebutton,.replay-button,nav button,.room-card,.style-card,.version-open{transition:background-color .16s ease,border-color .16s ease,box-shadow .16s ease,transform .12s ease}
 .primary:active:not(:disabled),.secondary:active:not(:disabled),.dock-link:active,.back:active,.homebutton:active,.replay-button:active,nav button:active,.room-card:active,.style-card:active,.version-open:active{transform:scale(.98)}
 dialog[open]::backdrop{animation:sheet-shade .24s ease-out}
}
@keyframes sheet-shade{from{background-color:transparent}to{background-color:#0008}}
@media(prefers-reduced-motion:reduce){button,dialog{transition:none!important}}
/* Large text remains readable without horizontal scrolling. */
.home-intro{min-width:0;max-width:100%}.home-intro h1{max-width:100%;overflow-wrap:anywhere}.home-actions{min-width:0}.home-actions .primary{min-width:0;overflow-wrap:anywhere}
body.large-ui .home-intro h1{font-size:34px;letter-spacing:-1px}
body.large-ui nav{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:4px}
body.large-ui nav button{min-width:0;padding:8px 4px;flex-direction:column;gap:4px;white-space:normal}
body.large-ui nav button span{min-width:0;max-width:100%;overflow-wrap:anywhere}
