/* ============================================================================
   NOVA — Arcade screen (พอร์ตจาก Arcade_Prototype_V1_1 ที่ Owner อนุมัติ)
   ใช้ asset จริง: การ์ด 8 ใบ · เมือง 3 ชั้น · โลโก้ · มาสคอต
   ========================================================================== */

/* ---------------------------------------------------------- world (ทุกหน้า) */
.world { position: fixed; inset: 0; z-index: 0; overflow: hidden; pointer-events: none; background: #52bffa; }
.world img {
  position: absolute; top: 0; left: 50%;
  width: max(100vw, 430px); height: 100%;
  transform: translateX(-50%);
  object-fit: cover; object-position: center 72%;
}
.world .w-mid { opacity: .9; }
.world .w-front { opacity: .98; }

/* พื้นหลังแอปโปร่งใส เพื่อให้เห็นเมือง */
body { background: linear-gradient(180deg, #60caff, #b6f0ff 50%, #71c9ff); color: #073f83; }
.app { background: transparent; }
.app::before { display: none; }

/* --------------------------------------------------------------- arcade hero */
.arcade { position: relative; z-index: 1; }

.hero {
  position: relative; min-height: 224px;
  margin: calc(-1 * (var(--safe-t) + 12px)) calc(-1 * var(--pad)) 10px;
  padding: calc(var(--safe-t) + 14px) 17px 14px;
  isolation: isolate;
}
.hero::before {
  content: ""; position: absolute; z-index: -1; inset: 0;
  background: linear-gradient(180deg, rgba(0,113,223,.22), rgba(27,165,234,.06) 54%, rgba(6,74,170,.35));
}
.hero::after {
  content: ""; position: absolute; left: 0; right: 0; bottom: -54px; height: 84px; z-index: -1;
  background: linear-gradient(180deg, rgba(6,74,170,.5), rgba(6,74,170,.22) 55%, transparent);
  pointer-events: none;
}
.brandline { display: flex; justify-content: space-between; align-items: center; gap: 8px; }
.world-label, .staging {
  display: inline-flex; min-height: 30px; align-items: center;
  border: 1px solid rgba(255,255,255,.8); border-radius: 99px; padding: 4px 10px;
  color: #fff; background: rgba(4,94,190,.65);
  box-shadow: 0 2px 8px rgba(0,45,120,.2);
  font-size: .75rem; font-weight: 900; letter-spacing: .04em;
}
.staging {
  color: #fff4c5; border-color: #ffe886; background: rgba(128,65,8,.55); letter-spacing: 0;
}

.hero-layout { display: flex; position: relative; align-items: center; min-height: 164px; margin-top: 2px; }
.hero-copy { position: relative; z-index: 2; width: 67%; padding-top: 4px; }
.logo { display: block; width: min(100%, 285px); height: auto; filter: drop-shadow(0 5px 3px rgba(0,41,133,.45)); }
.tagline {
  display: inline-block; margin: 2px 0 0 3px; padding: 5px 13px;
  border: 2px solid rgba(120,246,255,.9); border-radius: 99px;
  background: linear-gradient(90deg, #075dc7, #12379f);
  box-shadow: 0 3px 0 rgba(0,36,111,.8), inset 0 1px rgba(255,255,255,.7);
  color: #fff4a8; font-size: clamp(.74rem, 3.6vw, .93rem);
  line-height: 1.2; font-weight: 950; text-shadow: 0 1px #234;
}
.hero-mascot {
  position: absolute; z-index: 1; right: 0; bottom: -10px;
  width: 39%; max-width: 170px; height: auto;
  filter: drop-shadow(0 5px 4px rgba(0,45,132,.35));
  animation: nova-bob 3.6s ease-in-out infinite;
}
@keyframes nova-bob { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-6px); } }
.bubble {
  position: absolute; z-index: 3; right: 9px; top: 7px; max-width: 34%; margin: 0;
  padding: 7px 10px; border: 2px solid #fff; border-radius: 17px 17px 4px 17px;
  color: #0753a4; background: linear-gradient(145deg, #fff, #dffaff);
  box-shadow: 0 3px 10px rgba(0,38,105,.28);
  font-size: .78rem; font-weight: 900; line-height: 1.3; text-align: center;
}

/* ------------------------------------------------------------ section head */
.section-head {
  display: flex; align-items: center; justify-content: space-between; gap: 8px;
  margin: 5px 1px 9px; color: #fff;
  padding: 7px 10px; border-radius: 14px;
  background: linear-gradient(90deg, rgba(5,52,138,.6), rgba(5,52,138,.3) 72%, rgba(5,52,138,.05));
  text-shadow: 0 1px 2px rgba(4,30,90,.95), 0 2px 8px rgba(4,30,90,.8), 0 0 18px rgba(4,30,90,.45);
}
.section-head h1 { margin: 0; font-size: 1.08rem; line-height: 1.2; font-weight: 950; }
.section-head p { margin: 3px 0 0; font-size: .72rem; line-height: 1.25; font-weight: 700; }
.section-mark {
  flex: none; padding: 5px 9px; border: 1px solid #fff; border-radius: 99px;
  color: #fff; background: linear-gradient(130deg, #096ed1, #303bb0);
  font-size: .7rem; font-weight: 900; box-shadow: 0 2px 6px rgba(0,48,122,.25);
}

/* ------------------------------------------------------------------- cards */
.missions { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }

.mcard {
  --accent: #ff54bc;
  position: relative; display: block; width: 100%; min-width: 0; min-height: 116px;
  padding: 0; overflow: hidden; aspect-ratio: 1.55;
  border: 2px solid rgba(255,255,255,.96); border-radius: 20px;
  background: #0789db; color: #fff; text-align: left; cursor: pointer;
  box-shadow: 0 4px 0 rgba(0,45,133,.48), 0 7px 13px rgba(0,42,118,.22), inset 0 1px 4px rgba(255,255,255,.8);
  transition: transform 130ms ease, box-shadow 130ms ease;
  -webkit-tap-highlight-color: transparent;
}
.mcard:hover { box-shadow: 0 4px 0 rgba(0,45,133,.48), 0 0 0 2px var(--accent), 0 8px 18px rgba(0,42,118,.32); }
.mcard:active { transform: scale(.98); }
.mcard > img { position: absolute; inset: 0; width: 100%; height: 100%; display: block; object-fit: cover; object-position: center; }
.mcard::after {
  content: ""; position: absolute; inset: 42% 0 0;
  background: linear-gradient(180deg, transparent 0%, rgba(4,20,78,.06) 18%, rgba(3,20,73,.58) 78%, rgba(3,18,64,.78) 100%);
}
.card-copy { position: absolute; z-index: 1; right: 39px; bottom: 7px; left: 9px; display: block; min-width: 0; }
.card-title {
  display: block; font-size: clamp(.9rem, 4.1vw, 1.08rem); font-weight: 1000; line-height: 1.08;
  letter-spacing: -.02em; text-shadow: 0 2px 3px rgba(0,0,30,.85), 0 0 5px rgba(0,0,20,.75);
  overflow-wrap: anywhere;
}
.card-sub {
  display: block; margin-top: 4px; font-size: clamp(.75rem, 3.5vw, .86rem);
  font-weight: 850; line-height: 1.2; text-shadow: 0 1px 4px #001944; overflow-wrap: anywhere;
}
.card-open {
  position: absolute; z-index: 2; right: 5px; bottom: 7px; display: grid;
  width: 38px; height: 38px; place-items: center;
  border: 2px solid #fff; border-radius: 50%;
  background: radial-gradient(circle at 35% 25%, #fff, var(--accent) 72%);
  box-shadow: 0 2px 7px rgba(0,0,50,.45), inset 0 1px 3px #fff;
  color: #12458f; font-size: 1.55rem; font-weight: 1000; line-height: 1;
}
.card-badge {
  position: absolute; z-index: 2; top: 8px; left: 8px;
  padding: 3px 8px; border-radius: 99px;
  background: rgba(4,20,78,.55); border: 1px solid rgba(255,255,255,.5);
  font-size: .62rem; font-weight: 900; letter-spacing: .02em;
}

/* -------------------------------------------------------------- bottom nav */
.tabbar {
  border: 2px solid #86f8ff; border-bottom: 0; border-radius: 22px 22px 0 0;
  background: linear-gradient(180deg, rgba(4,116,225,.97), rgba(3,46,139,.99));
  box-shadow: 0 -4px 18px rgba(0,43,134,.35), inset 0 1px 0 rgba(255,255,255,.75);
  padding: 6px 8px calc(6px + var(--safe-b));
  backdrop-filter: blur(12px);
}
.tabbar__row { gap: 2px; }
.tab {
  min-height: 56px; gap: 2px; padding: 3px 2px;
  border: 1px solid transparent; border-radius: 16px;
  color: #eafaff; font-size: .75rem; font-weight: 900; line-height: 1.1;
  flex-direction: column; display: flex; align-items: center; justify-content: center;
}
.tab img { display: block; width: 26px; height: 26px; object-fit: contain; }
.tab__icon { display: none; }
.tab[aria-current="page"] {
  border-color: #c4fbff;
  background: radial-gradient(ellipse at 50% 0, rgba(99,243,255,.65), rgba(19,119,240,.48) 76%);
  box-shadow: 0 0 14px rgba(63,235,255,.57), inset 0 1px 4px rgba(255,255,255,.6);
  color: #fff;
}
.tab--hero {
  width: auto; height: auto; border-radius: 16px; background: transparent;
  box-shadow: none; transform: none; border: 1px solid transparent; margin-bottom: 0;
  font-size: .75rem; color: #eafaff;
}
.tab--hero[aria-current="page"] {
  background: radial-gradient(ellipse at 50% 0, rgba(99,243,255,.65), rgba(19,119,240,.48) 76%);
  box-shadow: 0 0 14px rgba(63,235,255,.57), inset 0 1px 4px rgba(255,255,255,.6);
}

@media (prefers-reduced-motion: reduce) {
  .hero-mascot { animation: none; }
}

/* เล็กมาก: การ์ด 1 คอลัมน์ */
@media (max-width: 359px) {
  .missions { grid-template-columns: minmax(0, 1fr); gap: 11px; }
  .mcard { aspect-ratio: 2.25; }
  .hero { min-height: 218px; }
}

/* ============================================================================
   หน้าจอเล่น (player) — ให้ตรงแบบ: topbar + ภารกิจ x/6 + pause + การ์ดกิจกรรม
   ========================================================================== */

.play-top { display: flex; align-items: center; gap: 10px; margin-bottom: 10px; }
.play-btn {
  width: 40px; height: 40px; flex: 0 0 auto; border-radius: 12px; display: grid; place-items: center;
  background: rgba(255,255,255,.92); border: 1px solid #fff; color: #0a4d8f;
  font-size: 17px; font-weight: 900; box-shadow: 0 3px 10px rgba(6,40,110,.25);
}
.play-btn:active { transform: scale(.94); }
.play-title { flex: 1; min-width: 0; color: #fff; text-shadow: 0 1px 3px rgba(4,30,90,.95); }
.play-title b { display: block; font-size: 14px; font-weight: 900; letter-spacing: -.01em; }
.play-title span { display: block; font-size: 11.5px; font-weight: 700; opacity: .95; }

.play-prog { display: flex; align-items: center; gap: 9px; margin-bottom: 12px;
  color: #fff; font-size: 11px; font-weight: 900; text-shadow: 0 1px 3px rgba(4,30,90,.95); }
.play-prog .seg { flex: 1; display: flex; gap: 3px; }
.play-prog .seg i { flex: 1; height: 6px; border-radius: 99px; background: rgba(255,255,255,.34); }
.play-prog .seg i.done { background: #fff; }
.play-prog .seg i.now { background: linear-gradient(90deg, #ffe066, #ffb020); box-shadow: 0 0 8px rgba(255,224,102,.8); }

/* ---------- การ์ดกิจกรรม ---------- */
.pa { background: #fff; border-radius: 20px; overflow: hidden;
  box-shadow: 0 10px 26px -16px rgba(4,30,90,.55); }
.pa__head {
  display: flex; align-items: center; gap: 8px;
  padding: 9px 14px; background: var(--pa-accent, #2e7bf6); color: #fff;
  font-size: 10.5px; font-weight: 900; letter-spacing: .08em; text-transform: uppercase;
}
.pa__body { padding: 15px 14px 16px; }

/* ---------- mission banner ---------- */
.banner {
  position: relative; border-radius: 20px; overflow: hidden; aspect-ratio: 2.1;
  background-size: cover; background-position: center;
  box-shadow: 0 12px 28px -18px rgba(4,30,90,.7);
  display: flex; flex-direction: column; justify-content: flex-end;
  padding: 12px 14px; color: #fff;
}
.banner::after { content: ""; position: absolute; inset: 0;
  background: linear-gradient(180deg, rgba(3,20,73,0) 30%, rgba(3,20,73,.82) 100%); }
.banner > * { position: relative; z-index: 1; }
.banner__chip {
  align-self: flex-start; margin-bottom: auto; padding: 3px 9px; border-radius: 99px;
  background: rgba(255,255,255,.92); color: #b5175c; font-size: 9.5px; font-weight: 900;
  letter-spacing: .04em;
}
.banner__title { font-size: 18px; font-weight: 900; letter-spacing: -.02em; line-height: 1.15;
  text-shadow: 0 2px 6px rgba(0,0,30,.9); }
.banner__sub { font-size: 12px; font-weight: 700; opacity: .95; margin-top: 2px; }

/* ---------- mini card ---------- */
.mini { background: #fff; border-radius: 16px; padding: 13px 14px; margin-top: 10px;
  box-shadow: 0 6px 18px -14px rgba(4,30,90,.6); }
.mini__k { font-size: 10px; font-weight: 900; letter-spacing: .1em; text-transform: uppercase;
  color: #0a7bd6; margin-bottom: 6px; }
.mini__row { display: flex; align-items: center; gap: 10px; padding: 7px 0; border-top: 1px solid #eef3fb; }
.mini__row:first-of-type { border-top: 0; }

/* ---------- result ---------- */
.res-hero {
  border-radius: 20px; padding: 16px; text-align: center; color: #fff;
  background: linear-gradient(135deg, #7c5cff, #2e7bf6 60%, #22d3ee);
  box-shadow: 0 14px 32px -18px rgba(46,123,246,.9);
}
.res-hero h2 { margin: 4px 0 2px; font-size: 21px; font-weight: 900; letter-spacing: -.02em; }
.res-hero p { margin: 0; font-size: 12px; opacity: .92; font-weight: 700; }
.res-card { background: #fff; border-radius: 16px; padding: 13px 14px; margin-top: 10px;
  box-shadow: 0 6px 18px -14px rgba(4,30,90,.6); }
.res-k { font-size: 10px; font-weight: 900; letter-spacing: .1em; text-transform: uppercase;
  color: #0a7bd6; margin-bottom: 8px; }
.res-row { display: flex; gap: 9px; align-items: flex-start; font-size: 13.5px; line-height: 1.45; padding: 5px 0; }
.res-row b { color: #0b6b4e; }

/* ---------- pause sheet ---------- */
.sheet { position: fixed; inset: 0; z-index: 80; display: flex; align-items: flex-end;
  background: rgba(4,16,48,.55); backdrop-filter: blur(6px); }
.sheet__card {
  width: 100%; max-width: 560px; margin: 0 auto; background: #fff;
  border-radius: 24px 24px 0 0; padding: 18px 18px calc(18px + var(--safe-b));
  box-shadow: 0 -10px 40px rgba(0,20,60,.4);
}
.sheet__card h3 { margin: 0 0 4px; font-size: 18px; font-weight: 900; color: #0e2f66; }
.sheet__card p { margin: 0 0 14px; font-size: 13px; color: #5a7397; }

.mini__pill {
  display: inline-flex; align-items: center; gap: 4px;
  padding: 4px 9px; border-radius: 99px;
  background: #eaf4ff; border: 1px solid #cfe6fb;
  font-size: 11px; font-weight: 800; color: #0d5aa8;
}

/* ---------- waveform (Speak / Sound Lab) ---------- */
.wave {
  display: flex; align-items: center; gap: 3px; height: 48px;
  margin: 14px 2px 6px; padding: 0 2px;
}
.wave i {
  flex: 1; height: 12%; border-radius: 99px; min-width: 3px;
  background: linear-gradient(180deg, #7ee7ff, #7c5cff);
  transition: height 80ms linear, opacity 200ms;
  opacity: .85;
}
.wave.is-idle i { height: 18%; opacity: .35; }
.wave.is-rec i { opacity: 1; }

/* ---------- A/B compare (Sound Lab) ---------- */
.ab { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; margin-top: 12px; }
.ab__tile {
  display: flex; flex-direction: column; align-items: center; gap: 8px;
  padding: 16px 10px; border-radius: 18px; border: 2px solid #e3eefc;
  background: linear-gradient(180deg, #f7fbff, #eef5ff); color: #0e2f66;
  font-weight: 800; font-size: 14px;
}
.ab__tile:active { transform: scale(.97); }
.ab__tile.is-correct { border-color: #12c48b; background: #e8fbf3; }
.ab__tile.is-wrong { border-color: #f43f5e; background: #fdeef1; }
.ab__key {
  width: 34px; height: 34px; border-radius: 12px; display: grid; place-items: center;
  background: linear-gradient(135deg, #7ee7ff, #7c5cff); color: #fff; font-size: 15px; font-weight: 900;
  box-shadow: 0 6px 14px -8px rgba(124,92,255,.9);
}
.ab__play { font-size: 22px; }

/* ---------- path chip (Story) ---------- */
.path-chip {
  display: inline-flex; align-items: center; gap: 5px;
  padding: 3px 9px; border-radius: 99px; font-size: 10px; font-weight: 900;
  background: linear-gradient(135deg, #b07bff, #8248f0); color: #fff;
  box-shadow: 0 4px 12px -6px rgba(130,72,240,.9);
}

/* ---------- map (Word Hunt entry) ---------- */
.map {
  position: relative; border-radius: 20px; overflow: hidden; aspect-ratio: 1.15;
  background:
    radial-gradient(60% 40% at 20% 18%, rgba(126,231,255,.55), transparent 60%),
    radial-gradient(50% 40% at 82% 26%, rgba(255,225,150,.6), transparent 60%),
    linear-gradient(170deg, #cbeaf7 0%, #d8f2cf 42%, #a9dd9a 100%);
  box-shadow: inset 0 0 0 3px rgba(255,255,255,.7), 0 12px 28px -18px rgba(4,30,90,.7);
}
.map::before {
  content: ""; position: absolute; left: -10%; right: -10%; top: 46%; height: 26%;
  background: linear-gradient(90deg, transparent, #8fd0f0 20%, #7cc7ee 60%, transparent);
  transform: rotate(-7deg); opacity: .75;
}
.map__pin {
  position: absolute; transform: translate(-50%, -50%);
  display: flex; flex-direction: column; align-items: center; gap: 3px;
}
.map__dot {
  width: 34px; height: 34px; border-radius: 50%; display: grid; place-items: center;
  background: #fff; border: 2px solid #2e7bf6; color: #2e7bf6; font-size: 15px;
  box-shadow: 0 6px 14px -6px rgba(4,40,110,.6);
}
.map__dot.is-found { background: #12c48b; border-color: #12c48b; color: #fff; }
.map__label {
  font-size: 9.5px; font-weight: 900; color: #0b3f86; background: rgba(255,255,255,.9);
  padding: 1px 6px; border-radius: 99px;
}

/* วงค้นหาในฉาก (Word Hunt) */
.scene { background-color: #cfe6f7; background-size: cover; background-position: center; }
.ring {
  position: absolute; inset: 0; border-radius: 50%;
  border: 3px dashed rgba(255,255,255,.95);
  background: radial-gradient(circle, rgba(126,231,255,.22), rgba(126,231,255,.05) 70%);
  box-shadow: 0 0 0 2px rgba(4,40,110,.4), 0 6px 18px -6px rgba(4,40,110,.6);
  animation: ring-pulse 2.2s ease-in-out infinite;
}
@keyframes ring-pulse { 0%,100% { transform: translate(-50%,-50%) scale(1); opacity: .85; }
  50% { transform: translate(-50%,-50%) scale(1.06); opacity: 1; } }
.hotspot.is-found .ring {
  border-style: solid; border-color: #12c48b; background: rgba(18,196,139,.35);
  animation: none;
}
.hotspot.is-miss .ring { border-color: #f43f5e; background: rgba(244,63,94,.3); }

/* ---------- Learn: ปุ่มเล่นใหญ่ + แถวเทียบ ---------- */
.learn-main { text-align: center; padding: 6px 6px 2px; }
.learn-main__q { font-size: 19px; font-weight: 900; color: #0e2f66; line-height: 1.3; letter-spacing: -.01em; }
.learn-main__th { font-size: 12.5px; color: #6b7c9e; margin-top: 5px; }
.learn-play {
  margin: 14px auto 4px; width: 66px; height: 66px; border-radius: 50%;
  display: grid; place-items: center; border: 0; color: #fff; font-size: 22px;
  background: linear-gradient(135deg, #7ee7ff, #2e7bf6 60%, #7c5cff);
  box-shadow: 0 14px 28px -12px rgba(46,123,246,.95), inset 0 2px 0 rgba(255,255,255,.45);
}
.learn-play:active { transform: scale(.95); }
.learn-play.is-playing { animation: pulse 1.2s infinite; }
.learn-opts { margin-top: 14px; display: flex; flex-direction: column; gap: 8px; }
.learn-opt {
  display: flex; align-items: center; gap: 10px; padding: 10px 12px;
  border-radius: 14px; background: #f4f8ff; border: 1px solid #e3eefc;
}
.learn-opt__k {
  width: 26px; height: 26px; flex: 0 0 auto; border-radius: 8px; display: grid; place-items: center;
  background: #fff; border: 1px solid #dbe8f8; font-size: 12px; font-weight: 900; color: #2e7bf6;
}
.learn-tools { display: flex; gap: 8px; margin-top: 12px; }

/* ---------- Result: Continue Your Journey ---------- */
.journey {
  position: relative; border-radius: 18px; overflow: hidden; aspect-ratio: 2.35;
  display: flex; flex-direction: column; justify-content: flex-end;
  padding: 12px; color: #fff; background-size: cover; background-position: center;
  margin-top: 9px;
}
.journey::after {
  content: ""; position: absolute; inset: 0;
  background: linear-gradient(180deg, rgba(3,20,73,0) 32%, rgba(3,20,73,.88) 100%);
}
.journey > * { position: relative; z-index: 1; }
.journey__label { font-size: 9px; font-weight: 900; letter-spacing: .14em; opacity: .92; }
.journey__title { font-size: 15.5px; font-weight: 900; margin: 2px 0 9px; line-height: 1.2;
  text-shadow: 0 2px 5px rgba(0,0,20,.8); }

/* ============================================================================
   Listening Radar — การ์ดเสียง + waveform + เครื่องมือฟัง + transcript
   ========================================================================== */
.listen-card {
  border-radius: 18px; padding: 13px 13px 11px;
  background: linear-gradient(160deg, #2b6fe0, #1f4fc4 60%, #25328f);
  color: #fff; box-shadow: 0 14px 30px -18px rgba(15,50,140,.95);
}
.listen-card__chip {
  display: inline-flex; align-items: center; gap: 5px; padding: 3px 9px; border-radius: 99px;
  background: rgba(255,255,255,.18); border: 1px solid rgba(255,255,255,.35);
  font-size: 9px; font-weight: 900; letter-spacing: .1em;
}
.listen-card__title { font-size: 14px; font-weight: 900; margin-top: 8px; line-height: 1.3; }
.listen-card__sub { font-size: 11px; opacity: .82; margin-top: 2px; }

.listen-row { display: flex; align-items: center; gap: 12px; margin-top: 11px; }
.listen-play {
  width: 54px; height: 54px; flex: 0 0 auto; border-radius: 50%; display: grid; place-items: center;
  background: #fff; color: #1f4fc4; font-size: 20px; border: 0;
  box-shadow: 0 8px 20px -8px rgba(0,20,80,.9), inset 0 -3px 0 rgba(0,60,180,.15);
}
.listen-play:active { transform: scale(.94); }
.listen-play.is-playing { animation: pulse 1.3s infinite; }

.listen-wave { flex: 1; display: flex; align-items: center; gap: 2.5px; height: 40px; }
.listen-wave i {
  flex: 1; border-radius: 99px; min-width: 2px;
  background: rgba(255,255,255,.85);
  transition: height .2s ease;
}
.listen-wave.is-on i { animation: wave-bounce 900ms ease-in-out infinite; }
@keyframes wave-bounce { 0%,100% { transform: scaleY(.55); } 50% { transform: scaleY(1); } }

.listen-tools { display: flex; gap: 7px; margin-top: 11px; }
.listen-tool {
  flex: 1; min-height: 38px; border-radius: 11px; border: 1px solid rgba(255,255,255,.32);
  background: rgba(255,255,255,.14); color: #fff; font-size: 11.5px; font-weight: 800;
  display: inline-flex; align-items: center; justify-content: center; gap: 5px;
}
.listen-tool:active { transform: scale(.97); }

/* ตัวเลือกแบบมีสี */
.answer--a .answer__key { background: linear-gradient(135deg,#ff8fc7,#ff4eb7); color: #fff; border-color: transparent; }
.answer--b .answer__key { background: linear-gradient(135deg,#7ee7ff,#2e9bf6); color: #fff; border-color: transparent; }
.answer--c .answer__key { background: linear-gradient(135deg,#c9a8ff,#7c5cff); color: #fff; border-color: transparent; }

/* คำถาม + ลำโพง */
.q-line { display: flex; align-items: flex-start; gap: 9px; }
.q-line__text { flex: 1; min-width: 0; }

/* transcript หลังตอบ */
.transcript {
  margin-top: 12px; border-radius: 15px; overflow: hidden;
  border: 1px solid #dcebf8; background: #f7fbff;
}
.transcript__head {
  padding: 7px 12px; background: #e8f3fd; color: #0c5aa6;
  font-size: 10px; font-weight: 900; letter-spacing: .1em; text-transform: uppercase;
}
.transcript__body { padding: 10px 12px 12px; font-size: 13px; line-height: 1.55; color: #12385f; }
.transcript__who { font-weight: 900; color: #2e7bf6; }
