/* Identical geometry and neutral backing for every illustrated character. */
.scene-xiaolin img,.scene-xiaolin img[src*="cutout"],.story-person .xiaolin-avatar,.story-room img.xiaolin-avatar[src*="cutout"],.story-bubble .message-avatar,.story-room img.message-avatar[src*="cutout"]{border-radius:50%;aspect-ratio:1;object-fit:cover;object-position:center;background:#f5f1e7;box-shadow:none;transform:none;flex-shrink:0;overflow:hidden}
.scene-xiaolin img{width:112px;height:112px}.story-person .xiaolin-avatar{width:64px;height:64px}.story-bubble .message-avatar{width:28px;height:28px}
/* iOS zooms editable fields below 16px. Keep pinch zoom available. */
@media(max-width:900px),(pointer:coarse){html body input:not([type="checkbox"]):not([type="radio"]),html body textarea,html body select,html body .story-room textarea{font-size:16px!important}}
.auth-pending{display:inline-flex;gap:10px;align-items:center;justify-content:center}.auth-spinner{display:inline-block;width:17px;height:17px;border:2px solid currentColor;border-right-color:transparent;border-radius:50%;animation:auth-spin .8s linear infinite}.auth-status{font-size:12px;line-height:1.8;color:#516686;margin:12px 0 0}.form[aria-busy="true"] button:disabled{cursor:wait;opacity:.75}@keyframes auth-spin{to{transform:rotate(360deg)}}@media(prefers-reduced-motion:reduce){.auth-spinner{animation:none;border-right-color:currentColor;opacity:.65}}
/* Stop viewport rubber-banding without locking scrolling or pinch zoom. */
html,body{overscroll-behavior-y:none}
html,body{touch-action:pan-x pan-y}
