@font-face {
  font-family: "Poethack Cattie";
  src: url("/src/assets/fonts/Cattie-Regular.ttf") format("truetype");
  font-display: swap;
}
@font-face {
  font-family: "Poethack Coffee";
  src: url("/src/assets/fonts/Coffee%20Free.otf") format("opentype");
  font-display: swap;
}
@font-face {
  font-family: "Poethack Crooked";
  src: url("/src/assets/fonts/Crooked.ttf") format("truetype");
  font-display: swap;
}
@font-face {
  font-family: "Poethack Ghastly";
  src: url("/src/assets/fonts/Ghastly%20Panic.ttf") format("truetype");
  font-display: swap;
}
@font-face {
  font-family: "Poethack Hanged";
  src: url("/src/assets/fonts/Hanged%20Letters.ttf") format("truetype");
  font-display: swap;
}
@font-face {
  font-family: "Poethack Mabook";
  src: url("/src/assets/fonts/Mabook.ttf") format("truetype");
  font-display: swap;
}
@font-face {
  font-family: "Poethack Montserrat";
  src: url("/src/assets/fonts/Montserrat-Regular.ttf") format("truetype");
  font-display: swap;
}
@font-face {
  font-family: "Poethack Romantic";
  src: url("/src/assets/fonts/ROMANTIC.TTF") format("truetype");
  font-display: swap;
}
@font-face {
  font-family: "Poethack Mom";
  src: url("/src/assets/fonts/Mom%C2%ABt___.ttf") format("truetype");
  font-display: swap;
}
@font-face {
  font-family: "Poethack Plasdrip";
  src: url("/src/assets/fonts/plasdrip.ttf") format("truetype");
  font-display: swap;
}

.profile-name-text { display: inline-block; }
.profile-name-text.is-anim-glow {
  text-shadow: 0 0 10px currentColor, 0 0 22px currentColor;
  filter: brightness(1.08);
}
.profile-name-text.is-anim-wave .profile-char,
.profile-name-text.is-anim-sweep .profile-char,
.profile-name-text.is-anim-jitter .profile-char,
.profile-name-text.is-anim-bounce .profile-char,
.profile-name-text.is-anim-wobble .profile-char,
.profile-name-text.is-anim-pulse .profile-char,
.profile-name-text.is-anim-float .profile-char,
.profile-name-text.is-anim-shake .profile-char,
.profile-name-text.is-anim-rainbow .profile-char,
.profile-name-text.is-anim-flicker .profile-char,
.profile-name-text.is-anim-pop .profile-char { display: inline-block; }
.profile-name-text.is-anim-wave .profile-char {
  animation: profile-char-wave 1.15s ease-in-out infinite;
}
.profile-name-text.is-anim-sweep .profile-char {
  animation: profile-char-sweep 1.75s ease-in-out infinite;
}
.profile-name-text.is-anim-jitter .profile-char {
  animation: profile-char-jitter 0.75s ease-in-out infinite;
}
.profile-name-text.is-anim-bounce .profile-char {
  animation: profile-char-bounce 0.9s cubic-bezier(0.34, 1.4, 0.64, 1) infinite;
}
.profile-name-text.is-anim-wobble .profile-char {
  animation: profile-char-wobble 1.1s ease-in-out infinite;
  transform-origin: center bottom;
}
.profile-name-text.is-anim-pulse .profile-char {
  animation: profile-char-pulse 1.4s ease-in-out infinite;
}
.profile-name-text.is-anim-float .profile-char {
  animation: profile-char-float 2.4s ease-in-out infinite;
}
.profile-name-text.is-anim-shake .profile-char {
  animation: profile-char-shake 0.55s ease-in-out infinite;
}
.profile-name-text.is-anim-rainbow .profile-char {
  animation: profile-char-rainbow 2.5s linear infinite;
}
.profile-name-text.is-anim-flicker .profile-char {
  animation: profile-char-flicker 1.8s steps(1, end) infinite;
}
.profile-name-text.is-anim-pop .profile-char {
  animation: profile-char-pop 1.05s ease-in-out infinite;
}
@keyframes profile-char-wave {
  0%, 100% { transform: translateY(0); }
  50% { transform: translateY(-5px); }
}
@keyframes profile-char-sweep {
  0%, 100% { opacity: 0.3; }
  45% { opacity: 1; }
}
@keyframes profile-char-jitter {
  0%, 100% { transform: translate(0, 0); }
  20% { transform: translate(-4px, -7px); }
  40% { transform: translate(4px, -3px); }
  60% { transform: translate(-3px, -6px); }
  80% { transform: translate(3px, -2px); }
}
@keyframes profile-char-bounce {
  0%, 100% { transform: translateY(0) scale(1); }
  40% { transform: translateY(-9px) scale(1.08); }
  55% { transform: translateY(0) scale(0.95); }
  70% { transform: translateY(-3px) scale(1.02); }
}
@keyframes profile-char-wobble {
  0%, 100% { transform: rotate(0deg); }
  25% { transform: rotate(-12deg); }
  75% { transform: rotate(12deg); }
}
@keyframes profile-char-pulse {
  0%, 100% { transform: scale(1); opacity: 1; }
  50% { transform: scale(1.18); opacity: 0.88; }
}
@keyframes profile-char-float {
  0%, 100% { transform: translateY(0); }
  50% { transform: translateY(-7px); }
}
@keyframes profile-char-shake {
  0%, 100% { transform: translateX(0); }
  20% { transform: translateX(-5px); }
  40% { transform: translateX(5px); }
  60% { transform: translateX(-4px); }
  80% { transform: translateX(4px); }
}
@keyframes profile-char-rainbow {
  0% { filter: hue-rotate(0deg) saturate(1.15); }
  100% { filter: hue-rotate(360deg) saturate(1.15); }
}
@keyframes profile-char-flicker {
  0%, 100% { opacity: 1; }
  12% { opacity: 0.35; }
  14% { opacity: 1; }
  52% { opacity: 0.5; }
  54% { opacity: 1; }
  88% { opacity: 0.4; }
}
@keyframes profile-char-pop {
  0%, 100% { transform: scale(1); }
  30% { transform: scale(1.35); }
  45% { transform: scale(0.9); }
  60% { transform: scale(1.1); }
}
