@property --giro {
  syntax: "<angle>";
  inherits: false;
  initial-value: 0deg;
}

@property --giro2 {
  syntax: "<angle>";
  inherits: false;
  initial-value: 0deg;
}

:root {
  --asistente-abajo: 4rem;
}

.asistente,
.asistente-borde {
  --c1: #ff9a3c;
  --c2: #ff4f8b;
  --c3: #a35cff;
  --c4: #3c86ff;
}

.asistente {
  --tam: 3.75rem;
  --brillo: .7;
  position: fixed;
  z-index: 90;
  right: calc(var(--marco) + 1.25rem);
  bottom: calc(var(--marco) + var(--asistente-abajo));
  transition: opacity .3s ease;
  animation: asistente-llegar .6s var(--curva-entrada) .3s backwards;
}

.cargando .asistente,
.sin-desplazamiento .asistente,
.asistente--apartada {
  opacity: 0;
  pointer-events: none;
}

@keyframes asistente-llegar {
  from {
    opacity: 0;
  }
}

.asistente__lanzador {
  display: flex;
  align-items: center;
  gap: .75rem;
  padding: 0;
  border: 0;
  background: none;
  color: var(--color-texto);
  font: inherit;
  cursor: pointer;
}

.asistente__etiqueta {
  overflow: hidden;
  max-width: 16rem;
  padding: .75rem 1.125rem;
  border: 1px solid rgba(255, 255, 255, .12);
  border-radius: 62.5rem;
  background: rgba(14, 16, 17, .82);
  -webkit-backdrop-filter: blur(.75rem);
  backdrop-filter: blur(.75rem);
  font-size: .9375rem;
  line-height: 1;
  white-space: nowrap;
  transition: max-width .5s var(--curva-entrada), opacity .35s ease, padding .5s var(--curva-entrada), border-color .35s ease;
}

.asistente--recogida .asistente__etiqueta {
  max-width: 0;
  padding-inline: 0;
  border-color: transparent;
  opacity: 0;
}

@media (hover: hover) {
  .asistente--recogida .asistente__lanzador:hover .asistente__etiqueta {
    max-width: 16rem;
    padding-inline: 1.125rem;
    border-color: rgba(255, 255, 255, .12);
    opacity: 1;
  }
}

.asistente__burbuja {
  position: relative;
  flex: none;
  width: var(--tam);
  height: var(--tam);
  display: grid;
  place-items: center;
  border-radius: 50%;
  transition: scale .3s ease;
}

.asistente__lanzador:hover .asistente__burbuja {
  scale: 1.06;
}

.asistente__lanzador:focus-visible {
  outline: none;
}

.asistente__lanzador:focus-visible .asistente__burbuja {
  outline: 2px solid var(--color-texto);
  outline-offset: .375rem;
}

.asistente__monograma {
  position: relative;
  z-index: 3;
  width: 40%;
  height: auto;
  aspect-ratio: 819.98 / 355.84;
  color: #fff;
}

.asistente .capa {
  position: absolute;
  inset: 0;
  border-radius: 50%;
}

.siri-luz {
  background: conic-gradient(from var(--giro), var(--c1), transparent 25%, var(--c3) 50%, transparent 75%, var(--c1)), conic-gradient(from var(--giro2), var(--c2), var(--c4), var(--c3), var(--c1), var(--c2));
  animation: asistente-girar 5s linear infinite, asistente-girar-al-reves 8s linear infinite;
}

.asistente .siri-ancho {
  filter: blur(calc(var(--tam) * .2));
  opacity: var(--brillo);
  transition: opacity .3s ease;
  animation: asistente-girar 5s linear infinite, asistente-girar-al-reves 8s linear infinite, asistente-voz 2.4s ease-in-out infinite;
}

.asistente .siri-medio {
  filter: blur(calc(var(--tam) * .05));
}

.asistente .nucleo-siri {
  inset: calc(var(--tam) * .02);
  background: #0b0c0d;
}

.asistente .siri-dentro {
  inset: calc(var(--tam) * .02);
  -webkit-mask: radial-gradient(closest-side, transparent 60%, #000);
  mask: radial-gradient(closest-side, transparent 60%, #000);
  opacity: .85;
}

.asistente .siri-linea {
  -webkit-mask: radial-gradient(closest-side, transparent calc(100% - var(--tam) * .035), #000 calc(100% - var(--tam) * .03));
  mask: radial-gradient(closest-side, transparent calc(100% - var(--tam) * .035), #000 calc(100% - var(--tam) * .03));
}

.asistente__lanzador:hover .siri-ancho {
  opacity: 1;
}

@keyframes asistente-girar {
  to {
    --giro: 360deg;
  }
}

@keyframes asistente-girar-al-reves {
  from {
    --giro2: 360deg;
  }

  to {
    --giro2: 0deg;
  }
}

@keyframes asistente-voz {
  0%,
  100% {
    transform: scale(1);
  }

  20% {
    transform: scale(1.07);
  }

  35% {
    transform: scale(.98);
  }

  55% {
    transform: scale(1.1);
  }

  75% {
    transform: scale(1.02);
  }
}

@media (max-width: 599.98px) {
  :root {
    --asistente-abajo: 4.5rem;
  }

  .asistente {
    --tam: 3.25rem;
    right: calc(var(--marco) + .75rem);
  }
}

@media (prefers-reduced-motion: reduce) {
  .asistente,
  .asistente * {
    animation: none !important;
    transition: none !important;
  }
}
