/* Progressive enhancement; the existing character.css stays the static base. */
.lf-character[data-interactive="true"] { pointer-events:auto; touch-action:pan-y pinch-zoom; -webkit-touch-callout:none; border-radius:20px; }
.lf-character[data-interactive="true"]:focus-visible { outline:3px solid var(--accent,#426991); outline-offset:3px; }
.lf-character[data-over-head="true"][data-interactive="true"] { cursor:grab; }
.lf-character[data-pet="contact"][data-interactive="true"] { cursor:grabbing; }
.lf-character .lf-character-canvas { position:absolute; inset:0; display:block; width:100%; height:100%; pointer-events:none; }
.lf-character .lf-character-canvas[hidden], .lf-character:not([data-character-state="welcome"]) .lf-character-canvas { display:none; }
.lf-character[data-ready="true"][data-character-state="welcome"] img { visibility:hidden!important; }
.lf-character .lf-character-feedback { position:absolute; z-index:4; left:50%; top:0; transform:translate(-50%,-75%); width:max-content; max-width:min(250px,65vw); padding:8px 12px; border:1.5px solid var(--cartoon-outline,#30445a); border-radius:13px 13px 13px 3px; background:var(--cartoon-mint,#e0f7ec); color:var(--cartoon-ink,#283747); box-shadow:3px 3px 0 var(--cartoon-shadow,#30445a22); font-size:12px; font-weight:650; line-height:1.5; text-align:center; pointer-events:none; }
.lf-character .lf-character-feedback[hidden] { display:none; }
.lf-character:is(.portal-auth-character,.admin-login-character) .lf-character-feedback { left:auto; right:0; transform:translateY(-75%); }
.lf-character.client-welcome-character .lf-character-feedback { left:0; transform:translateY(-75%); }
