/* Fires.lol 1.0.63 — effets animés du pseudo sur le profil et dans le menu.
   Conserver les valeurs enregistrées (« glitch » = Flou) pour éviter une migration. */
.public-username-wrap[data-username-fx="rainbow"] #public-name,
.username-fx-preview[data-preview-fx="rainbow"] .username-fx-preview-name {
  background-image:linear-gradient(95deg,#f84aff 0%,#367bff 19%,#26eac4 37%,#9afa54 56%,#ffe747 72%,#ff537a 88%,#f84aff 100%)!important;
  background-size:230% 100%!important;
  -webkit-background-clip:text!important;
  background-clip:text!important;
  color:transparent!important;
  -webkit-text-fill-color:transparent!important;
  animation:firesUsernameRainbow 4.4s linear infinite!important;
}
@keyframes firesUsernameRainbow{
  0%{background-position:0% 50%}
  100%{background-position:230% 50%}
}
/* Vrai flou doux plutôt que glitch coloré : l'intensité respire légèrement. */
.username-fx-choice[data-username-fx="glitch"] .username-fx-glitch,
.username-fx-preview[data-preview-fx="glitch"] .username-fx-preview-name,
.public-username-wrap[data-username-fx="glitch"] #public-name {
  color:#f7f7f7!important;
  -webkit-text-fill-color:#f7f7f7!important;
  background:none!important;
  font-family:inherit;
  letter-spacing:-.045em;
  text-shadow:0 0 3px rgba(255,255,255,.42),0 0 7px rgba(255,255,255,.22)!important;
  animation:firesUsernameSoftBlur 3.2s ease-in-out infinite!important;
}
@keyframes firesUsernameSoftBlur {
  0%,100% {filter:blur(.85px);opacity:1;transform:none}
  48% {filter:blur(1.75px);opacity:.91;transform:none}
  62% {filter:blur(1.2px);opacity:1;transform:none}
}
/* « Mélange » : chaque lettre avance, se superpose légèrement puis se replace
   rapidement ; une courte succession en cascade donne le rendu vivant attendu. */
.username-fx-choice[data-username-fx="mix"] .username-fx-mix,
.username-fx-preview[data-preview-fx="mix"] .username-fx-preview-name,
.public-username-wrap[data-username-fx="mix"] #public-name{
  animation:none!important;
  filter:none!important;
  text-shadow:none!important;
  letter-spacing:-.04em;
  color:inherit;
}
.username-mix-letter{
  display:inline-block;
  white-space:pre;
  transform:translate3d(0,0,0);
  transform-origin:center center;
  animation:firesUsernameLetterStep 3.1s linear infinite;
  animation-delay:calc(var(--mix-index,0) * 75ms);
}
@keyframes firesUsernameLetterStep {
  0%,13%,79%,100%{transform:translate3d(0,0,0)}
  22%,33%{transform:translate3d(5px,0,0)}
  34%{transform:translate3d(0,0,0)}
}
/* La classe animée générique du titre ne doit pas recouvrir les effets choisis. */
.public-username-wrap[data-username-fx="mix"] #public-name {color:var(--profile-text)!important;-webkit-text-fill-color:var(--profile-text)!important}
@media(prefers-reduced-motion:reduce){
  .public-username-wrap[data-username-fx="rainbow"] #public-name,
  .username-fx-preview[data-preview-fx="rainbow"] .username-fx-preview-name,
  .username-fx-choice[data-username-fx="glitch"] .username-fx-glitch,
  .username-fx-preview[data-preview-fx="glitch"] .username-fx-preview-name,
  .public-username-wrap[data-username-fx="glitch"] #public-name,
  .username-mix-letter{animation:none!important}
}

/* V1.0.109 : reprendre à l'identique la typographie de « Aucun ».
   Les lettres s'affichent en cascade, sans clip-path, cadre blanc ou débord. */
.public-username-wrap[data-username-fx="typewriter"] #public-name {
  display: block;
  width: max-content;
  max-width: 100%;
  white-space: normal;
  clip-path: none !important;
  overflow: visible !important;
  animation: none !important;
  text-align: center;
}
.username-typewriter-letter {
  display: inline;
  visibility: hidden;
  animation: firesTypewriterLetter 5.2s linear infinite;
  animation-delay: calc(var(--letter-index) * .12s);
}
@keyframes firesTypewriterLetter {
  0%,5% {visibility:hidden}
  6%,79% {visibility:visible}
  80%,100% {visibility:hidden}
}
@media(prefers-reduced-motion:reduce) {
  .username-typewriter-letter {animation:none!important;visibility:visible}
}
