/* Keep focus and repeated taps from unexpectedly magnifying the viewport.
   Pinch zoom remains available for accessibility. */
html{-webkit-text-size-adjust:100%;text-size-adjust:100%}
body{touch-action:manipulation}
input:not([type=checkbox]):not([type=radio]):not([type=range]),select,textarea,[contenteditable=true]{font-size:max(16px,1rem)!important;max-width:100%;min-width:0}
button,a,input,select,textarea{touch-action:manipulation}
img,video,canvas{max-width:100%}
dialog{max-width:calc(100vw - 24px);max-height:85dvh;overflow:auto}
@media(max-width:600px){
 .top{flex-wrap:wrap;gap:12px}.top nav{flex-wrap:wrap;justify-content:flex-start}
 .intro{flex-wrap:wrap}.intro>div:first-child{min-width:0;flex:1 1 200px}
 .section-title{gap:10px;flex-wrap:wrap}.section-title h2 small{display:block;margin:5px 0 0}
 .hand{grid-template-columns:repeat(2,minmax(0,1fr))}
 .slot,.battle-card{max-width:100%;min-width:0}
 .plant-head{flex-wrap:wrap}.rarity-stars{white-space:normal;overflow-wrap:anywhere}
 .lobby-grid>*{min-width:0}.lobby-panel{overflow-wrap:anywhere}
 .lobby-panel .primary{min-width:0;max-width:100%;white-space:normal}
 .battle-options label{max-width:100%}
 .modal-head{gap:12px;align-items:flex-start}.modal-head h2{min-width:0;overflow-wrap:anywhere}
 .collection{grid-template-columns:repeat(2,minmax(0,1fr))}
 .bottom-nav{padding-bottom:env(safe-area-inset-bottom,0px)}
}
/* Remove zoom-like decorative motion while keeping card/result reveals. */
@keyframes xp-reveal{from{opacity:0}to{opacity:1}}
@keyframes xp-halo{from{opacity:0;transform:translateX(-50%)}to{opacity:1;transform:translateX(-50%)}}
@keyframes card-reveal{from{opacity:0;transform:translateY(15px)}to{opacity:1;transform:none}}
@keyframes shield-rise{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}
.rw-shop-card:hover .rw-shop-art img{transform:none}
