*,
*::before,
*::after { box-sizing: border-box; }

html { -webkit-text-size-adjust: 100%; overflow-x: hidden; }

body.tipsy-body {
  margin: 0;
  display: flex;
  flex-direction: column;
  min-height: 100vh;
  min-height: 100dvh;
  font-family: "Inter", "SF Pro Display", "PingFang SC", "Helvetica Neue", system-ui, sans-serif;
  font-size: var(--tipsy-type-body);
  line-height: var(--tipsy-type-body-lh);
  color: var(--tipsy-text);
  background: var(--tipsy-bg);
  -webkit-font-smoothing: antialiased;
  overflow-x: hidden;
}

a { color: inherit; text-decoration: none; }

img { max-width: 100%; display: block; }

.tipsy-sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

.tipsy-input {
  width: 100%;
  min-height: var(--tipsy-control-h);
  padding: 0 var(--space-4);
  border: 1px solid var(--tipsy-border);
  border-radius: var(--tipsy-radius-input);
  background: var(--tipsy-surface);
  color: var(--tipsy-text);
  font: inherit;
  font-size: var(--tipsy-type-body);
  line-height: 1.4;
  outline: none;
  transition:
    border-color var(--tipsy-motion-duration) var(--tipsy-motion-ease),
    box-shadow var(--tipsy-motion-duration) var(--tipsy-motion-ease);
}

.tipsy-input:focus-visible {
  border-color: var(--tipsy-accent);
  box-shadow: var(--tipsy-shadow-focus);
}

.tipsy-input::placeholder { color: var(--tipsy-muted); }

.tipsy-muted { color: var(--tipsy-muted); }
