/* Kheldra feedback: floating text, message log, action bar and level-up banner. Palette matches hud.css. */
html body #kFxLayer{position:fixed;inset:0;pointer-events:none;z-index:1;overflow:hidden}
html body .k-float{position:fixed;transform:translate(-50%,0);white-space:nowrap;font:700 17.5px Grenze Gotisch,Georgia,serif;letter-spacing:.3px;
 text-shadow:0 1px 0 #000,0 0 6px #000c;pointer-events:none;will-change:transform,opacity}
html body .k-float .k-star{color:var(--k-gold-hi,#ebd391)}
html body .k-xp{color:#ebd391}
html body .k-dmg{color:#ef6a5b}
html body .k-heal{color:#7fd487}
html body .k-gain{color:#eadfc4}
html body .k-warn{color:#f0a04b}

html body #kMessages{position:fixed;left:14px;bottom:150px;z-index:var(--z-hud,10);width:min(420px,calc(100vw - 28px));pointer-events:none;
 display:flex;flex-direction:column;justify-content:flex-end;gap:2px;padding:6px 10px;border-radius:6px;background:linear-gradient(180deg,#0a0f0d00,#0a0f0dcc);
 font:15.5px/1.35 Grenze Gotisch,Georgia,serif;color:var(--k-text,#eadfc4);text-shadow:0 1px 0 #000}
html body .k-msg{transition:opacity .8s;opacity:1;overflow-wrap:anywhere}
html body .k-msg.k-old{opacity:0}
html body .k-msg.k-info{color:#eadfc4}
html body .k-msg.k-gain{color:#7fd487}
html body .k-msg.k-warn{color:#f0a04b}
html body .k-msg.k-level{color:#ebd391;font-weight:700}
html body .k-msg.k-combat{color:#ef6a5b}
html body .k-msg.k-used{color:#9fc4e8}

html body #kActionBar{position:fixed;left:50%;bottom:150px;transform:translateX(-50%);z-index:16;width:min(320px,calc(100vw - 28px));pointer-events:none;
 padding:8px 12px 10px;border:1px solid var(--k-gold,#b9954f);border-radius:8px;background:linear-gradient(180deg,#16211cf2,#0a0f0df5);
 box-shadow:0 8px 20px #000b;font:15.5px Grenze Gotisch,Georgia,serif;color:var(--k-text,#eadfc4);text-align:center}
html body #kActionBar[hidden]{display:none}
html body #kActionBar.k-action-fail{background:#000;border-color:var(--k-gold-lo,#6e5a35)}
html body .k-action-track.k-action-blackout{height:auto;min-height:8px;background:#000;box-shadow:none;overflow:visible;padding:2px 0;font:15.5px/1.3 Grenze Gotisch,Georgia,serif;color:#f0d59c;overflow-wrap:anywhere}
html body #kActionBar.k-action-flash{animation:k-action-flash .45s ease-out 1}
@keyframes k-action-flash{0%{background:var(--k-gold,#b9954f)}100%{background:#000}}
@media (prefers-reduced-motion:reduce){html body #kActionBar.k-action-flash{animation:none}}
html body .k-action-label{margin-bottom:6px}
html body .k-action-track{height:8px;border-radius:4px;background:#000;overflow:hidden;box-shadow:inset 0 0 0 1px var(--k-gold-lo,#6e5a35)}
html body .k-action-fill{display:block;height:100%;width:0;background:linear-gradient(90deg,var(--k-gold-lo,#6e5a35),var(--k-gold,#b9954f))}

html body #kLevelUp{position:fixed;top:14%;left:50%;transform:translateX(-50%);z-index:16;pointer-events:none;padding:10px 26px;
 border:1px solid var(--k-gold,#b9954f);border-radius:10px;background:linear-gradient(180deg,#16211cf2,#0a0f0df5);
 color:var(--k-gold-hi,#ebd391);font:700 24px Grenze Gotisch,Georgia,serif;text-shadow:0 1px 0 #000;box-shadow:0 10px 26px #000c;white-space:nowrap}
html body #kLevelUp[hidden]{display:none}

@media (prefers-reduced-motion:reduce){html body .k-msg{transition:none}}

/* NPC speech: a short line over a non-selling NPC, wrapped and held longer than a damage number. */
html body .k-float.k-speech{white-space:normal;max-width:240px;text-align:center;font:600 14.5px/1.35 Grenze Gotisch,Georgia,serif;letter-spacing:0;padding:5px 9px;border-radius:10px;background:rgba(24,18,10,.88);color:#f4e7c3;border:1px solid rgba(235,211,145,.45);box-shadow:0 2px 8px rgba(0,0,0,.35)}
