/* The Town floor (town.js): a band along the bottom of the whole screen, in front
   of the page and the video. Clicks pass through to whatever is under it. On a
   Twitch surface town.js fits it into the room under the player (any layer over a
   Twitch iframe pauses it), or hides it when there is too little room. */
#town-strip {
  position: fixed; left: 0; right: 0; bottom: 0;
  height: 46vh; min-height: 260px; max-height: 480px; /* the floor is the lower part; above it is air for heads and jumps */
  pointer-events: none; overflow: visible; z-index: 28;
}
/* Cinema: under its chat panel (z-index 26), so the chat stays readable over the
   floor; still over the video. */
body.layout-cinema #town-strip { z-index: 25; }
#town-strip .town-canvas { position: absolute; inset: 0; width: 100%; height: 100%; pointer-events: none; }

#town-strip .town-name,
#town-strip .town-bubble { position: absolute; left: 0; top: 0; will-change: transform; white-space: nowrap; }
#town-strip .town-name {
  font-weight: 700; font-size: 11px; line-height: 1.2; color: #fff;
  background: rgba(0, 0, 0, .55); border-radius: 2px; padding: 0 5px 1px;
}
/* Same look as the chat characters' bubbles (portrait.css .pt-bubble). */
#town-strip .town-bubble {
  max-width: 240px; width: max-content; white-space: normal;
  background: #fff; color: #141414; border: 3px solid #111; border-radius: 14px;
  padding: 4px 10px 6px; font-weight: 600; font-size: 14px; line-height: 1.2;
  overflow-wrap: anywhere; text-shadow: none;
}
#town-strip .town-bubble { max-height: 9em; overflow: hidden; }
#town-strip .town-bubble img { max-height: 56px; max-width: 160px; vertical-align: middle; }
/* [sp]spoiler[/sp] stays hidden in the bubble (chat's rule is scoped to .chat-text). */
#town-strip .town-bubble .spoiler { color: #141414; background: #141414; border-radius: 2px; padding: 0 2px; }
/* Rowdy (fights anywhere, town_fight.go): a red name. */
#town-strip .town-name.rowdy { background: rgba(176, 34, 22, .9); }
#town-strip .town-pow {
  position: absolute; pointer-events: none; z-index: 3000;
  font: 900 26px/1 Impact, 'Arial Black', sans-serif; color: #ffe14a;
  -webkit-text-stroke: 2px #111; paint-order: stroke fill; letter-spacing: 1px;
}
/* The keys, shown for a few seconds after joining (town.js start). */
#town-strip .town-hint {
  position: absolute; left: 50%; bottom: 8px; transform: translateX(-50%); z-index: 3001;
  max-width: calc(100% - 24px); padding: 4px 10px; border-radius: 2px;
  background: rgba(0, 0, 0, .72); color: #fff; font-size: 12px; line-height: 1.3; text-align: center;
  transition: opacity .6s;
}
#town-strip .town-hint.town-hint-out { opacity: 0; }
/* A round in progress / its result (town.js roundState). */
#town-strip .town-banner {
  position: absolute; left: 50%; top: 42%; transform: translateX(-50%); z-index: 3002;
  max-width: calc(100% - 24px); padding: 5px 12px; border-radius: 2px; white-space: pre-wrap; text-align: center;
  background: rgba(20, 12, 8, .82); color: #ffd9b8; border: 1px solid #ff6a3a;
  font-weight: 700; font-size: 13px; line-height: 1.3;
}
