.fa-reward-coin { pointer-events:none; padding:4px 2px; }
.fa-reward-coin-inner { display:flex; align-items:center; justify-content:flex-end; gap:12px; }
.fa-reward-coin img { width:46px; height:46px; object-fit:contain; filter:drop-shadow(0 2px 2px #000); }
.fa-reward-number { color:#fff; font:800 clamp(30px,3vw,40px)/1.2 system-ui,sans-serif; font-variant-numeric:tabular-nums; -webkit-text-stroke:1px #183027; paint-order:stroke fill; text-shadow:0 2px 3px #0009; }
.fa-level-up { position:fixed; z-index:180; top:30%; left:5%; width:90%; text-align:center; pointer-events:none; color:#fff3ac; font-family:system-ui,sans-serif; text-shadow:0 4px 0 #203b32,0 0 30px #fae08b88; }
.fa-level-title { display:block; font-size:clamp(44px,10vw,120px); font-weight:950; font-style:italic; letter-spacing:.08em; line-height:1.1; }
.fa-level-names { margin-top:12px; font-size:clamp(20px,3vw,32px); font-weight:850; color:white; -webkit-text-stroke:3px #14251d; paint-order:stroke fill; }
.fa-level-details { margin:10px auto 0; max-width:650px; color:white; font-size:clamp(14px,1.8vw,20px); text-shadow:0 2px 3px #000; }
.fa-level-up[hidden], .fa-reward-coin[hidden] { display:none !important; }
.fa-reward-announcement { position:absolute; width:1px; height:1px; overflow:hidden; clip-path:inset(50%); }
/* Shadows sit behind the fill even when a browser ignores text paint-order.
   A centered stroke can swallow small white glyphs on handheld displays. */
.faunara-recommended-controls { display:flex; flex-direction:column; gap:6px; width:max-content; max-width:100%; pointer-events:none; color:white; font:700 clamp(13px,1.5vw,18px)/1.35 system-ui,sans-serif; -webkit-text-stroke:0; text-shadow:-1px 0 #111,1px 0 #111,0 -1px #111,0 1px #111,0 2px 3px #0009; }
.faunara-recommended-controls[hidden] { display:none !important; }
.fa-control-row { display:flex; align-items:center; justify-content:flex-end; gap:12px; }
.fa-control-row > span { text-align:right; }
.fa-control-row kbd { flex-shrink:0; min-width:30px; max-width:150px; text-align:center; color:#fff; font:800 .85em/1.3 system-ui,sans-serif; text-shadow:none; border:1px solid #ffffff85; border-radius:4px; padding:2px 5px; background:#101712cc; }
.fa-conversation-layout > .faunara-recommended-controls { align-self:flex-end; }
@media(max-width:600px) { .fa-reward-coin img { width:36px; height:36px; } .faunara-recommended-controls { gap:4px; } }
@media(max-width:600px) and (orientation:portrait) {
  body.faunara-game #faunaraHud .fa-hud-right .fa-hud-bottom { align-items:flex-end; margin-top:auto; }
}
/* Short touch screens reserve a corridor beside the action grid, above the
   bottom edge. Keeping the stack in flow here would clip it above the grid. */
@media(max-height:500px) and (orientation:landscape) {
  body.faunara-game[data-input-device="touch"] #faunaraHud .fa-hud-right .fa-hud-bottom {
    position:fixed; right:var(--fa-touch-side-right, 340px); bottom:max(12px,env(safe-area-inset-bottom));
    width:max-content; max-width:var(--fa-touch-side-width, 240px); max-height:calc(100dvh - 80px);
    margin:0; align-items:flex-end;
  }
}
/* Pickup-to-counter overlay uses viewport pixels, above the world and below menus. */
.fa-coin-flight { position:fixed; left:0; top:0; z-index:179; pointer-events:none; object-fit:contain; filter:drop-shadow(0 0 6px #ffdb7b) drop-shadow(0 2px 2px #0008); will-change:transform; }
.fa-coin-flight[hidden] { display:none !important; }
