/* ChumKing is a visitor in the Room; only his little speech bubble is UI. */
.chumking-dialog { position: fixed; z-index: 42; inset: 0; width: 100%; height: 100%; margin: 0; padding: 0; border: 0; background: transparent; color: #355a48; pointer-events: none; }
.chumking-dialog[hidden] { display: none; }
.chumking-bubble { position: absolute; width: min(400px, calc(100vw - 24px)); max-height: calc(100dvh - var(--chumking-safe-top, 155px) - 16px); padding: 17px 20px 13px; border: 2px solid #d1d7bc; border-radius: 25px; background: #fffdf0; box-shadow: 0 4px 0 #aebb95, 0 9px 23px #233e3318; pointer-events: auto; box-sizing: border-box; font-family: ui-rounded, "Trebuchet MS", system-ui, sans-serif; }
.chumking-bubble::after { content: ''; position: absolute; left: var(--chumking-tail-left, 70px); bottom: -11px; width: 18px; height: 18px; transform: rotate(45deg); border-right: 2px solid #d1d7bc; border-bottom: 2px solid #d1d7bc; background: #fffdf0; }
.chumking-bubble h2 { margin: 0 0 7px; color: #799264; font-size: 11px; font-weight: 850; letter-spacing: .025em; }
.chumking-message { margin: 0; color: #44664e; font-size: 15px; font-weight: 650; line-height: 1.5; }
.chumking-dialog[data-speaking="true"] .chumking-message { animation: chumking-say .18s ease-out both; }
.chumking-actions { display: flex; align-items: center; justify-content: space-between; gap: 8px; margin-top: 11px; }
.chumking-actions button { min-height: 44px; font-family: inherit; font-weight: 800; cursor: pointer; }
.chumking-skip { padding: 7px 0; border: 0; background: transparent; color: #849077; font-size: 11px; }
.chumking-next { margin-left: auto; padding: 9px 16px; border: 1px solid #3b634b; border-radius: 12px; color: #fff9df; background: #4d795b; box-shadow: 0 2px 0 #355a43; font-size: 12px; }
.chumking-next:hover { background: #416c50; }
.chumking-music { padding: 6px 9px; border: 1px solid #d9dfc7; border-radius: 12px; background: #edf2df; color: #476a54; font-size: 10px; }
.chumking-music[hidden] { display: none; }
.chumking-topics { display: grid; gap: 5px; margin: 0 0 10px; color: #718363; font-size: 11px; }
.chumking-topics select { min-height: 44px; width: 100%; padding: 7px 10px; border: 1px solid #cbd5bc; border-radius: 10px; background: #fffdf4; color: #43624a; font-family: inherit; font-size: 13px; font-weight: 700; }
.chumking-topics[hidden], .chumking-back[hidden] { display: none; }
.chumking-back { min-width: 44px; padding: 6px; border: 1px solid #d9dfc7; border-radius: 11px; background: #edf2df; color: #476a54; }
.chumking-help-tag { position: fixed; z-index: 30; right: 0; top: 43%; display: flex; align-items: center; gap: 7px; min-height: 54px; padding: 8px 13px 8px 10px; border: 1px solid #a4b78d; border-right: 0; border-radius: 16px 0 0 16px; background: #fff9e7; color: #4e704e; box-shadow: 0 3px 0 #b0bf98, 0 5px 18px #344d3317; font: 800 12px "Trebuchet MS",sans-serif; cursor: pointer; }
.chumking-help-tag > span:first-child { color: #b78b3c; font-size: 26px; }
.chumking-help-tag small { display: block; margin-top: 3px; color: #81906f; font-size: 10px; font-weight: 500; }
.chumking-help-tag:hover { background: #edf2dc; }
.chumking-help-tag:focus-visible { outline: 3px solid #bf8f39; outline-offset: -3px; }
body.chumking-visiting .chumking-help-tag { visibility: hidden; }
html[data-desktop="companion"] .chumking-help-tag, html[data-android-overlay="true"] .chumking-help-tag { display: none; }
@media (max-width: 700px) { .chumking-help-tag { top: auto; bottom: 32%; padding: 7px 8px; font-size: 10px; gap: 5px; } .chumking-help-tag > span:first-child { font-size: 22px; } .chumking-help-tag small { font-size: 9px; } }
.chumking-dialog button:focus-visible { outline: 3px solid #d6aa4f; outline-offset: 3px; }
.chumking-dialog button:disabled { opacity: .6; cursor: wait; }
.chumking-error { margin: 8px 0 0; color: #a05038; font-size: 11px; line-height: 1.4; }
.chumking-dialog.chumking-leaving .chumking-bubble { opacity: 0; transform: translateY(8px); transition: opacity .22s ease, transform .22s ease; }
.chumking-gift { outline: 3px solid #eac572; outline-offset: 5px; }
.chumking-dialog[data-festival="halloween"] .chumking-bubble { background: #fff5dd; border-color: #5c3e6e; box-shadow: 0 4px 0 #c68b57, 0 9px 23px #30245118; }
.chumking-dialog[data-festival="halloween"] .chumking-bubble::after { background: #fff5dd; border-color: #5c3e6e; }
.chumking-dialog[data-festival="halloween"] .chumking-bubble h2,
.chumking-dialog[data-festival="halloween"] .chumking-message { color: #4b335e; }
.chumking-dialog[data-festival="halloween"] .chumking-next { color: #382644; background: #ffb565; border-color: #5c3e6e; box-shadow: 0 2px 0 #5c3e6e; }
@keyframes chumking-say { from { opacity: .35; transform: translateY(2px); } to { opacity: 1; transform: none; } }
@media (max-width: 700px) {
  .chumking-bubble { width: min(350px, calc(100vw - 24px)); padding: 14px 17px 11px; border-radius: 23px; }
  .chumking-message { font-size: 13px; line-height: 1.5; }
  .chumking-bubble h2 { font-size: 10px; }
  .chumking-actions { margin-top: 9px; }
}
@media (max-height: 650px) {
  .chumking-bubble { padding: 12px 16px 10px; }
  .chumking-message { font-size: 12px; line-height: 1.4; }
  .chumking-bubble h2 { margin-bottom: 5px; }
  .chumking-actions { margin-top: 7px; }
}
@media (prefers-reduced-motion: reduce) { .chumking-dialog *, .chumking-dialog.chumking-leaving .chumking-bubble { animation: none; transition: none; } }

body.chumking-visiting #home-content > .empty-state { display: none; }
body.chumking-showing-boombox .app-shell #boombox { visibility: visible; opacity: 1; pointer-events: auto; z-index: 40; }
.chumking-coin-canvas { position: fixed; z-index: 39; inset: 0; width: 100%; height: 100%; pointer-events: none; }
.chumking-coin-canvas[hidden] { display: none; }
.coin-pill.chumking-coin-credit { animation: chumking-coin-credit .65s ease-out; }
@keyframes chumking-coin-credit { 35% { transform: translateY(-3px) scale(1.06); box-shadow: 0 0 0 4px #edc15c80; } }
@media (prefers-reduced-motion: reduce) { .coin-pill.chumking-coin-credit { animation: none; box-shadow: 0 0 0 3px #edc15c80; } }
