html,
body {
  width: 100%;
  height: 100%;
  margin: 0;
  padding: 0;
  overflow: hidden;
  background-color: #0b0b0f;
}

/*
 * Flutter Web paints TextField text/hints on the canvas and keeps a DOM
 * <input>/<textarea class="flt-text-editing"> for IME. The engine sets
 * color:transparent and ::placeholder { opacity: 0 }, but iOS Safari/WebKit
 * can still paint the native placeholder/value through -webkit-text-fill-color.
 * That second layer stacks on the canvas hint and looks like overlapping
 * composer text (e.g. "메시지를 입력하세요...").
 */
.flt-text-editing,
.transparentTextEditing {
  color: transparent !important;
  -webkit-text-fill-color: transparent !important;
  caret-color: transparent !important;
  text-shadow: none !important;
}

.flt-text-editing::placeholder,
.transparentTextEditing::placeholder {
  color: transparent !important;
  -webkit-text-fill-color: transparent !important;
  opacity: 0 !important;
  text-shadow: none !important;
}

/*
 * Keep iOS standalone landscape touch coordinates aligned with the visual
 * viewport. See app_shell_bootstrap.js for the guarded class toggle.
 */
html.app-ios-standalone-landscape,
html.app-ios-standalone-landscape body {
  width: var(--app-visual-vw, 100vw);
  height: var(--app-visual-vh, 100vh);
  max-width: var(--app-visual-vw, 100vw);
  max-height: var(--app-visual-vh, 100vh);
  overflow: hidden;
  overscroll-behavior: none;
}
