/* กล่องคำพูด (telop base) — คู่กับ speech-box.js · Art Production 14 ก.ย.
   สีทุกค่าเป็นตัวแปรที่ชี้ไปทะเบียน · ขนาดทุกค่าเป็นเลขคู่ (SCALE = 2) ไม่งั้นพิกเซลตรรกะแตกครึ่ง
   padding กันข้อความไม่ให้ทับขอบเฉียง: ซ้าย 26 (เฉียงสูงสุด 6×2 + ขอบ 4 + 10) · ขวา 32 (+ เงา 6) · ล่าง 36 (หาง 14 + เงา 6 + 16) */
.speech {
  --speech-fill: var(--px-12);
  --speech-line: var(--px-0);
  --speech-dot: var(--px-6);
  position: relative; box-sizing: border-box; display: inline-block;
  padding: 12px 32px 36px 26px;
  color: var(--px-0);
  background: none no-repeat 0 0;
  image-rendering: pixelated;
}
/* เงาเม็ดแดง — ทางเลือก B บนพื้นดำ */
.speech.dots-red { --speech-dot: var(--red-on-dark); }
/* ชั้น PAPER — การ์ด ขอบหมึก เม็ดหมึก (ใกล้อ้างอิงที่สุด ยกเว้นสี) */
.speech.paper { --speech-fill: var(--card); --speech-line: var(--ink); --speech-dot: var(--ink); color: var(--ink); }
/* ไม่มีหาง = ไม่ต้องกันที่ล่างให้หาง */
.speech[data-tail="none"] { padding-bottom: 22px; }
