#localized-dialogue[hidden], .localized-bubble[hidden] { display: none; }
#localized-dialogue {
  --speaker-color: #66bde6;
  position: fixed; z-index: 40; left: 50%; bottom: max(46px, env(safe-area-inset-bottom));
  width: min(740px, calc(100vw - 100px)); box-sizing: border-box;
  padding: 36px 40px 40px; transform: translateX(-50%) rotate(-0.6deg);
  border: 3px solid #40545f; background: #f8f8f8; color: #25383e;
  box-shadow: 7px 9px 0 #647a87;
  font-family: "PingFang SC", "Microsoft YaHei", "Noto Sans CJK SC", system-ui, sans-serif;
}
#localized-dialogue h2 {
  position: absolute; top: 0; left: -20px; transform: translateY(-85%) rotate(0.6deg);
  max-width: calc(100% - 35px); box-sizing: border-box;
  margin: 0; padding: 12px 30px; border: 3px solid #40545f;
  background: var(--speaker-color); color: #162e3d; box-shadow: 4px 5px 0 #647a87;
  font-size: 26px; font-weight: 700; line-height: 1.3; overflow-wrap: anywhere;
}
#localized-dialogue p {
  margin: 0; font-size: 23px; line-height: 1.8; letter-spacing: 0.04em;
  white-space: pre-wrap; overflow-wrap: anywhere;
  max-height: min(38vh, 300px); overflow-y: auto; overscroll-behavior: contain;
}
#localized-dialogue button {
  position: absolute; right: -15px; bottom: -25px;
  min-width: 95px; min-height: 52px; padding: 10px 15px;
  border: 3px solid #40545f; background: var(--speaker-color); color: #162e3d;
  box-shadow: 4px 5px 0 #647a87; font-size: 16px; font-weight: 600; line-height: 1.4;
  font-family: inherit; cursor: pointer; touch-action: manipulation;
}
#localized-dialogue button:hover { filter: brightness(1.08); }
#localized-dialogue button:active { translate: 2px 2px; box-shadow: 2px 3px 0 #647a87; }
#localized-dialogue button:focus-visible { outline: 3px solid #243a43; outline-offset: 4px; }
.localized-bubble {
  position: fixed; z-index: 25; margin: 0; padding: 10px 16px;
  transform: translate(-50%, -100%); max-width: min(280px, 70vw);
  border: 2px solid #40545f; border-radius: 10px; background: #f8f8f8; color: #25383e;
  box-shadow: 3px 4px 0 #647a87; pointer-events: none;
  font: 16px/1.7 "PingFang SC", "Microsoft YaHei", system-ui, sans-serif;
  white-space: pre-wrap; overflow-wrap: anywhere;
}
@media (max-width: 600px) {
  #localized-dialogue { width: calc(100vw - 48px); bottom: max(45px, env(safe-area-inset-bottom)); padding: 25px 22px 34px; }
  #localized-dialogue h2 { left: -8px; padding: 10px 20px; font-size: 21px; }
  #localized-dialogue p { font-size: 18px; line-height: 1.75; }
  #localized-dialogue button { right: -7px; bottom: -25px; min-height: 48px; }
}
@media (max-height: 480px) {
  #localized-dialogue { bottom: 32px; padding: 20px 25px 28px; }
  #localized-dialogue h2 { font-size: 19px; padding: 6px 18px; }
  #localized-dialogue p { font-size: 17px; max-height: 30vh; }
}
