:root {
  --meowmint-paw-cursor: url("data:image/svg+xml,%3Csvg%20width%3D%2232%22%20height%3D%2232%22%20viewBox%3D%220%200%2032%2032%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cg%20opacity%3D%22.28%22%3E%3Cpath%20d%3D%22M19.2%2018.7c4.1.3%207%202.9%206.8%206-.2%203-3.2%205.2-7.5%204.9-4.6-.3-7.6-2.6-7.4-5.7.2-3.2%203.9-5.5%208.1-5.2Z%22%20fill%3D%22%230f172a%22%2F%3E%3C%2Fg%3E%3Cpath%20d%3D%22M17.8%2017.4c4.1.2%207.2%202.8%207%206-.2%203.1-3.3%205.1-7.5%204.9-4.6-.2-7.7-2.6-7.5-5.8.2-3.3%203.8-5.3%208-5.1Z%22%20fill%3D%22%23fffdf8%22%20stroke%3D%22%2363b88f%22%20stroke-width%3D%221.15%22%2F%3E%3Cellipse%20cx%3D%228.2%22%20cy%3D%2215%22%20rx%3D%223.1%22%20ry%3D%224%22%20transform%3D%22rotate(-24%208.2%2015)%22%20fill%3D%22%23f6b7c6%22%20stroke%3D%22%2363b88f%22%20stroke-width%3D%22.85%22%2F%3E%3Cellipse%20cx%3D%2213.5%22%20cy%3D%229.7%22%20rx%3D%223.1%22%20ry%3D%224.2%22%20transform%3D%22rotate(-8%2013.5%209.7)%22%20fill%3D%22%23f6b7c6%22%20stroke%3D%22%2363b88f%22%20stroke-width%3D%22.85%22%2F%3E%3Cellipse%20cx%3D%2220.2%22%20cy%3D%229.8%22%20rx%3D%223.1%22%20ry%3D%224.2%22%20transform%3D%22rotate(10%2020.2%209.8)%22%20fill%3D%22%23f6b7c6%22%20stroke%3D%22%2363b88f%22%20stroke-width%3D%22.85%22%2F%3E%3Cellipse%20cx%3D%2225.4%22%20cy%3D%2215.5%22%20rx%3D%223%22%20ry%3D%223.9%22%20transform%3D%22rotate(26%2025.4%2015.5)%22%20fill%3D%22%23f6b7c6%22%20stroke%3D%22%2363b88f%22%20stroke-width%3D%22.85%22%2F%3E%3Cpath%20d%3D%22M7%207.9c1.8-2.5%204.6-3.7%207.4-3.2-.2%203.2-2.2%205.5-5.6%206.3L7%207.9Z%22%20fill%3D%22%237ac7a3%22%20stroke%3D%22%234fa67b%22%20stroke-width%3D%22.75%22%20stroke-linejoin%3D%22round%22%2F%3E%3Cpath%20d%3D%22M8.2%208.2c1.5-.8%203-1.7%204.4-2.7%22%20fill%3D%22none%22%20stroke%3D%22%23e8fff4%22%20stroke-width%3D%22.7%22%20stroke-linecap%3D%22round%22%2F%3E%3C%2Fsvg%3E") 7 7, auto;
  --meowmint-paw-cursor-active: url("data:image/svg+xml,%3Csvg%20width%3D%2232%22%20height%3D%2232%22%20viewBox%3D%220%200%2032%2032%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cg%20transform%3D%22translate(1.1%201.4)%20scale(.94)%22%3E%3Cpath%20d%3D%22M17.8%2017.4c4.1.2%207.2%202.8%207%206-.2%203.1-3.3%205.1-7.5%204.9-4.6-.2-7.7-2.6-7.5-5.8.2-3.3%203.8-5.3%208-5.1Z%22%20fill%3D%22%23f3fff8%22%20stroke%3D%22%2324a865%22%20stroke-width%3D%221.3%22%2F%3E%3Cellipse%20cx%3D%228.2%22%20cy%3D%2215%22%20rx%3D%223.1%22%20ry%3D%224%22%20transform%3D%22rotate(-24%208.2%2015)%22%20fill%3D%22%23f2a0b8%22%20stroke%3D%22%2324a865%22%20stroke-width%3D%22.95%22%2F%3E%3Cellipse%20cx%3D%2213.5%22%20cy%3D%229.7%22%20rx%3D%223.1%22%20ry%3D%224.2%22%20transform%3D%22rotate(-8%2013.5%209.7)%22%20fill%3D%22%23f2a0b8%22%20stroke%3D%22%2324a865%22%20stroke-width%3D%22.95%22%2F%3E%3Cellipse%20cx%3D%2220.2%22%20cy%3D%229.8%22%20rx%3D%223.1%22%20ry%3D%224.2%22%20transform%3D%22rotate(10%2020.2%209.8)%22%20fill%3D%22%23f2a0b8%22%20stroke%3D%22%2324a865%22%20stroke-width%3D%22.95%22%2F%3E%3Cellipse%20cx%3D%2225.4%22%20cy%3D%2215.5%22%20rx%3D%223%22%20ry%3D%223.9%22%20transform%3D%22rotate(26%2025.4%2015.5)%22%20fill%3D%22%23f2a0b8%22%20stroke%3D%22%2324a865%22%20stroke-width%3D%22.95%22%2F%3E%3Cpath%20d%3D%22M7%207.9c1.8-2.5%204.6-3.7%207.4-3.2-.2%203.2-2.2%205.5-5.6%206.3L7%207.9Z%22%20fill%3D%22%2367bf91%22%20stroke%3D%22%2320865a%22%20stroke-width%3D%22.8%22%20stroke-linejoin%3D%22round%22%2F%3E%3Cpath%20d%3D%22M8.2%208.2c1.5-.8%203-1.7%204.4-2.7%22%20fill%3D%22none%22%20stroke%3D%22%23effff6%22%20stroke-width%3D%22.72%22%20stroke-linecap%3D%22round%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E") 7 7, pointer;
}

@media (pointer: fine) and (hover: hover) {
  html.meowmint-cursor-on body {
    cursor: var(--meowmint-paw-cursor);
  }

  html.meowmint-cursor-on a,
  html.meowmint-cursor-on button,
  html.meowmint-cursor-on [role="button"],
  html.meowmint-cursor-on .practice-card,
  html.meowmint-cursor-on .level-card {
    cursor: var(--meowmint-paw-cursor-active);
  }

  html.meowmint-cursor-on input,
  html.meowmint-cursor-on textarea,
  html.meowmint-cursor-on select,
  html.meowmint-cursor-on [contenteditable="true"] {
    cursor: text;
  }
}

.meowmint-buddy {
  --buddy-pet-width: 84px;
  --buddy-pet-height: 92px;
  --buddy-height: 104px;
  --buddy-panel-bg: rgba(31, 41, 55, 0.98);
  --buddy-panel-border: rgba(75, 85, 99, 0.72);
  --buddy-panel-shadow: 0 24px 58px rgba(0, 0, 0, 0.34);
  --buddy-card-bg: rgba(17, 24, 39, 0.72);
  --buddy-card-bg-hover: rgba(30, 41, 59, 0.86);
  --buddy-card-border: transparent;
  --buddy-message-bg: rgba(31, 64, 62, 0.78);
  --buddy-message-border: transparent;
  --buddy-primary: #4ade80;
  --buddy-primary-hover: #35d874;
  --buddy-text: #f9fafb;
  --buddy-muted: #aeb6c4;
  --buddy-muted-strong: #d1d5db;
  --buddy-accent: #7af0ad;
  --buddy-control-border: rgba(148, 163, 184, 0.22);
  --buddy-quiet-color: rgba(209, 213, 219, 0.52);
  --buddy-quiet-hover-color: rgba(249, 250, 251, 0.66);
  --buddy-quiet-hover-bg: rgba(17, 24, 39, 0.18);
  position: fixed;
  right: max(18px, env(safe-area-inset-right));
  bottom: max(22px, env(safe-area-inset-bottom));
  width: min(330px, calc(100vw - 28px));
  height: var(--buddy-height);
  z-index: 940;
  pointer-events: none;
  color: var(--buddy-text);
  font-family: var(--font-sans);
  opacity: 0;
  transform: translate3d(0, 16px, 0);
  transition: opacity 240ms ease, transform 240ms ease;
}

[data-theme="light"] .meowmint-buddy {
  --buddy-panel-bg: rgba(255, 255, 255, 0.94);
  --buddy-panel-border: rgba(148, 163, 184, 0.36);
  --buddy-panel-shadow: 0 24px 64px rgba(15, 23, 42, 0.15), 0 6px 18px rgba(15, 23, 42, 0.08);
  --buddy-card-bg: rgba(248, 250, 252, 0.92);
  --buddy-card-bg-hover: rgba(241, 245, 249, 0.98);
  --buddy-card-border: rgba(226, 232, 240, 0.9);
  --buddy-message-bg: rgba(236, 253, 245, 0.92);
  --buddy-message-border: rgba(187, 247, 208, 0.92);
  --buddy-text: #172033;
  --buddy-muted: #64748b;
  --buddy-muted-strong: #475569;
  --buddy-accent: #15803d;
  --buddy-control-border: rgba(203, 213, 225, 0.86);
  --buddy-quiet-color: rgba(100, 116, 139, 0.62);
  --buddy-quiet-hover-color: #475569;
  --buddy-quiet-hover-bg: rgba(148, 163, 184, 0.12);
}

.meowmint-buddy,
.meowmint-buddy * {
  box-sizing: border-box;
}

.meowmint-buddy button {
  appearance: none;
  -webkit-appearance: none;
  font: inherit;
  letter-spacing: 0;
  outline: none;
}

.meowmint-buddy__bubble-close:focus-visible,
.meowmint-buddy__close:focus-visible,
.meowmint-buddy__action:focus-visible {
  outline: 2px solid rgba(122, 240, 173, 0.72);
  outline-offset: 2px;
}

.meowmint-buddy.is-visible {
  opacity: 1;
  transform: translate3d(0, 0, 0);
}

.meowmint-buddy.is-custom-position {
  right: auto;
  bottom: auto;
}

.meowmint-buddy.is-dragging {
  transition: none;
}

.meowmint-buddy.is-hidden {
  display: none;
}

body[data-page="dictation"] .meowmint-buddy {
  bottom: calc(106px + env(safe-area-inset-bottom));
}

body[data-page="dictation"] .meowmint-buddy.is-custom-position {
  bottom: auto;
}

.meowmint-buddy__bubble {
  position: absolute;
  right: calc(var(--buddy-pet-width) + 12px);
  bottom: clamp(16px, calc(var(--buddy-pet-height) - 68px), 30px);
  z-index: 2;
  width: fit-content;
  min-width: 112px;
  max-width: min(300px, calc(100vw - 110px));
  padding: 12px 40px 12px 14px;
  border: 1px solid var(--buddy-panel-border);
  border-radius: 16px;
  background: var(--buddy-panel-bg);
  box-shadow: 0 16px 38px rgba(0, 0, 0, 0.28);
  pointer-events: auto;
  opacity: 0;
  transform: translate3d(0, 5px, 0) scale(0.98);
  transition: opacity 180ms ease, transform 220ms cubic-bezier(0.16, 1, 0.3, 1);
}

.meowmint-buddy__bubble::before,
.meowmint-buddy__bubble::after {
  content: '';
  position: absolute;
  top: auto;
  bottom: 26px;
  width: 0;
  height: 0;
  transform: none;
  pointer-events: none;
}

.meowmint-buddy__bubble::before {
  right: -12px;
  border-top: 11px solid transparent;
  border-bottom: 11px solid transparent;
  border-left: 12px solid var(--buddy-panel-border);
}

.meowmint-buddy__bubble::after {
  right: -10px;
  border-top: 10px solid transparent;
  border-bottom: 10px solid transparent;
  border-left: 11px solid var(--buddy-panel-bg);
}

.meowmint-buddy.is-bubble-visible .meowmint-buddy__bubble {
  opacity: 1;
  transform: translate3d(0, 0, 0) scale(1);
}

.meowmint-buddy.is-bubble-right-side .meowmint-buddy__bubble {
  right: auto;
  left: calc(100% - var(--buddy-pet-width) + 54px);
  padding: 12px 40px 12px 14px;
  border-radius: 16px;
}

.meowmint-buddy.is-bubble-right-side .meowmint-buddy__bubble::before {
  right: auto;
  left: -12px;
  border-left: 0;
  border-right: 12px solid var(--buddy-panel-border);
}

.meowmint-buddy.is-bubble-right-side .meowmint-buddy__bubble::after {
  right: auto;
  left: -10px;
  border-left: 0;
  border-right: 11px solid var(--buddy-panel-bg);
}

.meowmint-buddy.is-dragging .meowmint-buddy__bubble {
  opacity: 0;
  pointer-events: none;
  transform: translate3d(0, 8px, 0) scale(0.96);
}

.meowmint-buddy__bubble-kicker {
  display: none;
  margin-bottom: 3px;
  color: var(--buddy-accent);
  font-size: 11px;
  font-weight: 800;
  letter-spacing: 0.08em;
}

.meowmint-buddy__bubble-message {
  margin: 0;
  color: var(--buddy-text);
  font-size: 13px;
  font-weight: 650;
  line-height: 1.45;
  white-space: normal;
  overflow-wrap: break-word;
}

.meowmint-buddy__bubble-close {
  position: absolute;
  top: 6px;
  right: 7px;
  width: 22px;
  height: 22px;
  border-radius: 999px;
  border: 0;
  color: var(--buddy-muted);
  background: transparent;
  box-shadow: none;
  transition: background var(--transition-fast), color var(--transition-fast), transform var(--transition-fast);
}

.meowmint-buddy__bubble-close:hover {
  color: var(--buddy-text);
  background: var(--buddy-card-bg-hover);
  transform: scale(0.96);
}

.meowmint-buddy__pet {
  position: absolute;
  right: 0;
  bottom: 0;
  z-index: 3;
  width: var(--buddy-pet-width);
  height: var(--buddy-pet-height);
  padding: 0;
  border: 0;
  background: transparent;
  pointer-events: auto;
  transform-origin: 62% 100%;
  transition: transform 260ms cubic-bezier(0.16, 1, 0.3, 1), filter 260ms ease;
  cursor: grab;
  touch-action: none;
  user-select: none;
  -webkit-user-select: none;
}

.meowmint-buddy__pet:focus,
.meowmint-buddy__pet:focus-visible {
  outline: none;
  box-shadow: none;
}

.meowmint-buddy__pet:hover {
  transform: none;
  filter: none;
}

.meowmint-buddy__pet:active {
  transform: translate3d(0, -1px, 0) scale(0.98);
}

.meowmint-buddy.is-coaxing .meowmint-buddy__pet,
.meowmint-buddy.is-coaxing .meowmint-buddy__pet:hover {
  transform: none;
  filter: none;
}

.meowmint-buddy.is-dragging .meowmint-buddy__pet,
.meowmint-buddy.is-dragging .meowmint-buddy__pet:active,
.meowmint-buddy.is-dragging .meowmint-buddy__pet:hover {
  cursor: grabbing;
  transform: translate3d(0, -4px, 0) scale(1.02);
  filter: saturate(1.04);
}

.meowmint-buddy__sprite-wrap {
  position: absolute;
  inset: 0;
  display: grid;
  place-items: end center;
  transform-origin: 52% 88%;
  overflow: visible;
}

.meowmint-buddy.is-dragging[data-pet-state="jumping"] .meowmint-buddy__sprite-wrap {
  animation: meowmintDragReadyHop 620ms cubic-bezier(0.42, 0, 0.22, 1) infinite;
}

.meowmint-buddy.is-dragging[data-pet-state="running-left"] .meowmint-buddy__sprite-wrap {
  animation: meowmintDragHopLeft 520ms cubic-bezier(0.42, 0, 0.22, 1) infinite;
}

.meowmint-buddy.is-dragging[data-pet-state="running-right"] .meowmint-buddy__sprite-wrap {
  animation: meowmintDragHopRight 520ms cubic-bezier(0.42, 0, 0.22, 1) infinite;
}

.meowmint-buddy__sprite,
.meowmint-buddy__avatar {
  --pet-row: 0;
  --pet-frames: 6;
  --pet-steps: 5;
  --pet-last-frame: 5;
  --pet-duration: 1100ms;
  --pet-iterations: 1;
  display: block;
  overflow: hidden;
  background-image: url("assets/ip/meowmint-pet/spritesheet.webp?v=20260509-failed-sad-seated");
  background-repeat: no-repeat;
  background-position: 0 calc(var(--pet-row) * 100% / 8);
  background-size: 800% 900%;
  animation: meowmintPetFrames var(--pet-duration) steps(var(--pet-steps), end) var(--pet-iterations);
  animation-fill-mode: both;
}

.meowmint-buddy__sprite.is-static,
.meowmint-buddy__avatar.is-static {
  animation: none;
}

.meowmint-buddy__sprite[data-pet-state="idle"]:not(.is-static),
.meowmint-buddy__avatar[data-pet-state="idle"]:not(.is-static) {
  animation: meowmintPetFrames var(--pet-duration) steps(var(--pet-steps), end) var(--pet-iterations);
  animation-fill-mode: both;
}

.meowmint-buddy__sprite {
  width: 82px;
  height: 89px;
  transform-origin: 52% 92%;
  filter: drop-shadow(0 10px 15px rgba(15, 23, 42, 0.15));
  transition: opacity 160ms ease, transform 220ms ease, filter 220ms ease;
}

.meowmint-buddy.is-mood-changing .meowmint-buddy__sprite {
  opacity: 1;
  transform: none;
}

.meowmint-buddy.is-peeking .meowmint-buddy__pet {
  animation: none;
}

.meowmint-buddy__panel {
  position: absolute;
  right: 0;
  bottom: 104px;
  z-index: 5;
  width: 318px;
  max-width: calc(100vw - 28px);
  padding: 16px;
  border: 1px solid var(--buddy-panel-border);
  border-radius: 24px;
  color: var(--buddy-text);
  background: var(--buddy-panel-bg);
  box-shadow: var(--buddy-panel-shadow);
  pointer-events: auto;
  opacity: 0;
  visibility: hidden;
  transform: translate3d(0, 12px, 0) scale(0.98);
  transition: opacity 220ms ease, visibility 220ms ease, transform 260ms cubic-bezier(0.16, 1, 0.3, 1);
}

.meowmint-buddy.is-open .meowmint-buddy__panel {
  opacity: 1;
  visibility: visible;
  transform: translate3d(0, 0, 0) scale(1);
}

.meowmint-buddy.is-left-side .meowmint-buddy__panel {
  right: auto;
  left: calc(100% - var(--buddy-pet-width));
}

.meowmint-buddy.is-panel-below .meowmint-buddy__panel {
  top: calc(100% + 10px);
  bottom: auto;
  transform: translate3d(0, -8px, 0) scale(0.98);
}

.meowmint-buddy.is-panel-below.is-open .meowmint-buddy__panel {
  transform: translate3d(0, 0, 0) scale(1);
}

.meowmint-buddy__panel-header {
  display: grid;
  grid-template-columns: 56px 1fr auto;
  gap: 12px;
  align-items: center;
  margin-bottom: 14px;
}

.meowmint-buddy__avatar-shell {
  display: grid;
  place-items: center;
  width: 56px;
  height: 56px;
  border-radius: 18px;
  background: #ffffff;
  overflow: hidden;
  box-shadow: 0 1px 0 rgba(255, 255, 255, 0.16);
}

.meowmint-buddy__avatar {
  width: 52px;
  height: 56px;
  transform: translateY(2px);
}

.meowmint-buddy__title {
  margin: 0;
  color: var(--buddy-text);
  font-family: var(--font-display);
  font-size: 16px;
  font-weight: 800;
  line-height: 1.15;
}

.meowmint-buddy__subtitle {
  margin: 4px 0 0;
  color: var(--buddy-muted);
  font-size: 12px;
  font-weight: 600;
}

.meowmint-buddy__close {
  width: 32px;
  height: 32px;
  border-radius: 10px;
  border: 1px solid var(--buddy-control-border);
  color: var(--buddy-muted);
  background: var(--buddy-card-bg);
  box-shadow: none;
  transition: background var(--transition-fast), color var(--transition-fast), transform var(--transition-fast);
}

.meowmint-buddy__close:hover {
  color: var(--buddy-text);
  background: var(--buddy-card-bg-hover);
  transform: scale(0.96);
}

.meowmint-buddy__message {
  margin: 0 0 14px;
  padding: 13px 14px;
  border-radius: 14px;
  border: 1px solid var(--buddy-message-border);
  color: var(--buddy-text);
  background: var(--buddy-message-bg);
  font-size: 14px;
  font-weight: 650;
  line-height: 1.55;
}

.meowmint-buddy__stats {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 8px;
  margin-bottom: 14px;
}

.meowmint-buddy__stat {
  min-width: 0;
  padding: 10px 8px;
  border: 1px solid var(--buddy-card-border);
  border-radius: 12px;
  background: var(--buddy-card-bg);
}

.meowmint-buddy__stat-value {
  display: block;
  overflow: hidden;
  color: var(--buddy-text);
  font-family: var(--font-mono);
  font-size: 15px;
  font-weight: 800;
  line-height: 1.1;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.meowmint-buddy__stat-label {
  display: block;
  margin-top: 4px;
  color: var(--buddy-muted);
  font-size: 11px;
  font-weight: 650;
}

.meowmint-buddy__actions {
  display: grid;
  gap: var(--space-2, 8px);
}

.meowmint-buddy__action {
  display: flex;
  align-items: center;
  justify-content: center;
  height: 36px;
  min-height: 36px;
  padding: 0 var(--space-4, 16px);
  border: 0;
  border-radius: var(--radius-lg, 12px);
  font-size: 11px;
  font-weight: 600;
  line-height: 1.15;
  text-shadow: none;
  box-shadow: none;
  transition: all var(--transition-fast);
}

.meowmint-buddy__action:active {
  transform: scale(0.98);
}

.meowmint-buddy__action--primary {
  color: var(--color-on-primary, #1a1a2e);
  background: var(--color-primary, var(--buddy-primary));
  box-shadow: var(--shadow-btn, none);
}

.meowmint-buddy__action--secondary {
  border: 1px solid var(--buddy-card-border);
  color: var(--buddy-text);
  background: var(--buddy-card-bg);
  font-weight: 600;
}

.meowmint-buddy__action--quiet {
  height: 30px;
  min-height: 30px;
  color: var(--buddy-quiet-color);
  border: 0;
  background: transparent;
  font-size: 10.5px;
  font-weight: 500;
  box-shadow: none;
}

.meowmint-buddy__action--primary:hover {
  background: var(--color-primary-600, var(--buddy-primary-hover));
  transform: translateY(-1px);
  box-shadow: var(--shadow-btn-hover, none);
}

.meowmint-buddy__action--secondary:hover {
  background: var(--buddy-card-bg-hover);
  transform: translateY(-1px);
}

.meowmint-buddy__action--quiet:hover {
  color: var(--buddy-quiet-hover-color);
  background: var(--buddy-quiet-hover-bg);
  transform: none;
}

.meowmint-paw-burst {
  position: fixed;
  left: 0;
  top: 0;
  width: 42px;
  height: 38px;
  z-index: 930;
  pointer-events: none;
  filter: drop-shadow(0 7px 10px rgba(15, 23, 42, 0.12));
  transform: translate3d(var(--paw-x), var(--paw-y), 0) translate(-50%, -50%) rotate(var(--paw-rotate));
  animation: meowmintPawBurst 520ms cubic-bezier(0.16, 1, 0.3, 1) forwards;
}

.meowmint-paw-burst::before,
.meowmint-paw-burst::after {
  content: '';
  position: absolute;
  border-radius: 999px;
  background: rgba(246, 183, 198, 0.52);
  box-shadow: inset 0 0 0 1px rgba(99, 184, 143, 0.26);
}

.meowmint-paw-burst::before {
  left: 13px;
  top: 17px;
  width: 20px;
  height: 16px;
  transform: rotate(4deg);
}

.meowmint-paw-burst::after {
  left: 7px;
  top: 7px;
  width: 7px;
  height: 10px;
  transform: rotate(-14deg);
  box-shadow: 10px -4px 0 rgba(246, 183, 198, 0.52), 22px -3px 0 rgba(246, 183, 198, 0.52), 30px 6px 0 rgba(246, 183, 198, 0.42), inset 0 0 0 1px rgba(99, 184, 143, 0.26);
}

@media (max-width: 767px) {
  .meowmint-buddy {
    --buddy-pet-width: 72px;
    --buddy-pet-height: 80px;
    --buddy-height: 90px;
    right: 12px;
    bottom: calc(86px + env(safe-area-inset-bottom));
    width: min(304px, calc(100vw - 24px));
  }

  body[data-page="dictation"] .meowmint-buddy {
    bottom: calc(104px + env(safe-area-inset-bottom));
  }

  .meowmint-buddy__pet {
    width: var(--buddy-pet-width);
    height: var(--buddy-pet-height);
  }

  .meowmint-buddy__sprite {
    width: 71px;
    height: 77px;
  }

  .meowmint-buddy__bubble {
    right: calc(var(--buddy-pet-width) + 10px);
    bottom: clamp(14px, calc(var(--buddy-pet-height) - 64px), 24px);
    width: fit-content;
    max-width: min(240px, calc(100vw - 92px));
  }

  .meowmint-buddy__panel {
    bottom: 92px;
    width: min(304px, calc(100vw - 24px));
  }

  .meowmint-buddy__stats {
    grid-template-columns: 1fr;
  }
}

@media (prefers-reduced-motion: reduce) {
  .meowmint-buddy,
  .meowmint-buddy *,
  .meowmint-paw-burst {
    animation-duration: 1ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 1ms !important;
  }
}

@keyframes meowmintFloat {
  0%, 100% {
    transform: translate3d(0, 0, 0) rotate(-0.7deg);
  }
  50% {
    transform: translate3d(0, -7px, 0) rotate(1deg);
  }
}

@keyframes meowmintPetFrames {
  0% {
    background-position: 0 calc(var(--pet-row) * 100% / 8);
  }
  100% {
    background-position: calc(var(--pet-last-frame) * 100% / 7) calc(var(--pet-row) * 100% / 8);
  }
}

@keyframes meowmintDragReadyHop {
  0%, 100% {
    transform: translate3d(0, 0, 0) scaleX(1.04) scaleY(0.96);
  }
  46% {
    transform: translate3d(0, -7px, 0) scaleX(0.98) scaleY(1.04);
  }
  72% {
    transform: translate3d(0, -2px, 0) scaleX(1.02) scaleY(0.98);
  }
}

@keyframes meowmintDragHopLeft {
  0%, 100% {
    transform: translate3d(2px, 0, 0) rotate(1.2deg) scaleX(1.04) scaleY(0.96);
  }
  38% {
    transform: translate3d(-5px, -10px, 0) rotate(-4deg) scaleX(0.98) scaleY(1.05);
  }
  70% {
    transform: translate3d(-8px, -2px, 0) rotate(-2deg) scaleX(1.02) scaleY(0.98);
  }
}

@keyframes meowmintDragHopRight {
  0%, 100% {
    transform: translate3d(-2px, 0, 0) rotate(-1.2deg) scaleX(1.04) scaleY(0.96);
  }
  38% {
    transform: translate3d(5px, -10px, 0) rotate(4deg) scaleX(0.98) scaleY(1.05);
  }
  70% {
    transform: translate3d(8px, -2px, 0) rotate(2deg) scaleX(1.02) scaleY(0.98);
  }
}

@keyframes meowmintPeek {
  0% {
    transform: translate3d(70px, 6px, 0) rotate(5deg) scale(0.96);
  }
  56% {
    transform: translate3d(-4px, -4px, 0) rotate(-2deg) scale(1.04);
  }
  100% {
    transform: translate3d(0, 0, 0) rotate(0deg) scale(1);
  }
}

@keyframes meowmintPawBurst {
  0% {
    opacity: 0;
    transform: translate3d(var(--paw-x), var(--paw-y), 0) translate(-50%, -50%) rotate(var(--paw-rotate)) scale(0.68);
  }
  28% {
    opacity: 1;
  }
  100% {
    opacity: 0;
    transform: translate3d(var(--paw-x), var(--paw-y), 0) translate(-50%, -50%) rotate(var(--paw-rotate)) scale(1.26);
  }
}
