/* Pagina «assistente» (/assistente/, /en/assistant/): stili propri del gruppo assistente, con il prefisso .assistente- .
   Vale il contratto di style.css: nessuna risorsa esterna, animazioni e transizioni solo in @media (prefers-reduced-motion: no-preference),
   stati nascosti solo sotto html.js.
   Le demo (pannello dell'assistente, pseudonimizzazione) partono con la classe «avvia», messa da effetti/assistente.js quando entrano
   nella finestra, e si rigiocano togliendola e rimettendola (pulsanti [data-rigioca-demo] + aria-controls). La corsia veloce riceve
   data-attivo="1|2|3" sul contenitore e la classe «attivo» sul passo e sul quadro correnti: sopra i 900 px, con JavaScript, i tre quadri
   si sovrappongono su un palco fermo (position: sticky) mentre i passi scorrono; senza JavaScript ogni quadro sta accanto al suo passo
   e sotto i 900 px ogni quadro segue il suo passo. Tutto il testo che conta sta nei passi: i quadri sono decorativi (aria-hidden). */

:root { --assistente-grad-a: #5B35C4; --assistente-grad-b: #0B3D91; --assistente-alone: rgba(91, 53, 196, .16); --assistente-palco-bordo: rgba(127, 178, 255, .3); }
@media (prefers-color-scheme: dark) { :root { --assistente-grad-a: #BBA6F7; --assistente-grad-b: #7FB2FF; --assistente-alone: rgba(187, 166, 247, .13); } }

/* ---------- Intro: il testo e il pannello dell'assistente ---------- */
.assistente-intro { position: relative; isolation: isolate; overflow: hidden; background: linear-gradient(180deg, var(--ai-soft), var(--bg) 72%); padding-bottom: clamp(48px, 7vw, 88px); }
.assistente-alone { position: absolute; z-index: -1; pointer-events: none; width: 70vmax; height: 70vmax; right: -30vmax; top: -42vmax; border-radius: 50%; background: radial-gradient(circle, var(--assistente-alone) 0%, rgba(91, 53, 196, 0) 62%); will-change: transform; }
.assistente-intro-grid { display: grid; gap: var(--space-8); align-items: center; }
.assistente-grad { background: linear-gradient(90deg, var(--assistente-grad-a), var(--assistente-grad-b)); -webkit-background-clip: text; background-clip: text; color: transparent; }
@supports not (background-clip: text) { .assistente-grad { color: var(--ai); } }
.assistente-intro .lead { margin-bottom: var(--space-6); }
.assistente-intro .actions { margin-bottom: var(--space-6); }
.assistente-prove { display: flex; flex-wrap: wrap; gap: var(--space-2) var(--space-6); color: var(--text-muted); font-size: .9375rem; }
.assistente-prove li { display: inline-flex; align-items: center; gap: var(--space-2); }
.assistente-prove .ico { color: var(--ai); width: 20px; height: 20px; }
@media (min-width: 1024px) { .assistente-intro-grid { grid-template-columns: 5fr 6fr; gap: var(--space-16); } }

/* Il pannello dell'assistente, come nell'app: intestazione, conversazione, campo della domanda */
.assistente-pannello { background: var(--surface); border: 1px solid var(--ai); border-radius: var(--radius); box-shadow: var(--ombra-forte); overflow: hidden; font-size: .9375rem; line-height: 1.5; color: var(--text); }
.assistente-pannello-testa { display: flex; align-items: center; gap: var(--space-2); padding: 10px 14px; border-bottom: 1px solid var(--border); background: var(--ai-soft); color: var(--ai); font-weight: 700; }
.assistente-pannello-titolo { display: inline-flex; align-items: center; gap: var(--space-2); }
.assistente-pannello-testa .ico { width: 20px; height: 20px; }
.assistente-pannello-azioni { margin-left: auto; display: inline-flex; gap: 6px; }
.assistente-pannello-azioni i { width: 28px; height: 28px; border-radius: 8px; border: 1px solid var(--border); background: var(--surface); display: grid; place-items: center; color: var(--text-muted); }
.assistente-pannello-azioni .ico { width: 16px; height: 16px; }
.assistente-conversazione { display: grid; gap: var(--space-3); padding: var(--space-4); }
.assistente-msg-sistema { color: var(--text-muted); font-size: .875rem; margin: 0; display: flex; gap: var(--space-2); align-items: flex-start; }
.assistente-msg-sistema .ico { width: 18px; height: 18px; color: var(--ai); margin-top: 2px; }
.assistente-conversazione .chat-domanda { max-width: 92%; }
.assistente-conversazione .chat-risposta { padding: var(--space-3) var(--space-4); }
.assistente-conversazione .chat-risposta p { margin-bottom: var(--space-2); }
.assistente-conversazione .chat-ai { margin-bottom: var(--space-2); }
.assistente-strumenti { justify-self: start; border: 1px dashed var(--border); border-radius: 12px; padding: var(--space-2) var(--space-3); font-size: .875rem; color: var(--text); max-width: 92%; }
.assistente-strumenti-titolo { margin: 0 0 4px; font-weight: 600; font-size: .75rem; text-transform: uppercase; letter-spacing: .06em; color: var(--text-muted); }
.assistente-strumenti li { display: flex; align-items: center; gap: 6px; padding: 2px 0; }
.assistente-strumenti .ico { width: 16px; height: 16px; color: var(--success); }
/* stato di un controllo: «(in corso)» e «(fatto)» nella stessa cella; da fermo si legge solo «(fatto)» */
.assistente-stato { color: var(--text-muted); display: inline-grid; }
.assistente-stato > span { grid-area: 1 / 1; }
.assistente-stato .st-corso { visibility: hidden; }
/* «sta rispondendo»: esiste solo durante l'animazione */
.assistente-scrive { display: none; align-items: center; gap: var(--space-2); color: var(--text-muted); font-size: .875rem; margin: 0; }
.assistente-puntini { display: inline-flex; gap: 3px; }
.assistente-puntini i { width: 6px; height: 6px; border-radius: 50%; background: var(--ai); display: block; }
.assistente-pannello-piede { display: flex; gap: var(--space-2); align-items: center; padding: var(--space-3) var(--space-4); border-top: 1px solid var(--border); background: var(--surface-alt); }
.assistente-input { flex: 1; border: 1px solid var(--border); border-radius: 999px; background: var(--surface); padding: 8px 14px; color: var(--text-muted); font-size: .875rem; }
.assistente-invia { width: 36px; height: 36px; border-radius: 50%; background: var(--ai); color: var(--on-primary); display: grid; place-items: center; flex: none; }
.assistente-invia .ico { width: 18px; height: 18px; }

/* ---------- 01. Dove lo trovi: le tessere dei dati su cui lavora ---------- */
.assistente-tessere { display: grid; grid-template-columns: 1fr 1fr; gap: var(--space-3); }
.assistente-tessere .card { padding: var(--space-4); }
.assistente-tessere .card .ico { color: var(--ai); width: 26px; height: 26px; margin-bottom: var(--space-2); }
.assistente-tessere h3 { font-size: 1.0625rem; margin-bottom: var(--space-1); }
.assistente-tessere p { font-size: .9375rem; }
.assistente-tessera-larga { grid-column: 1 / -1; border-style: dashed; background: transparent; box-shadow: none; display: grid; grid-template-columns: auto 1fr; gap: var(--space-3); align-items: start; }
.assistente-tessere .assistente-tessera-larga .ico { margin: 2px 0 0; color: var(--text-muted); }
.assistente-tessera-larga p { margin: 0; }
@media (max-width: 479.98px) { .assistente-tessere { grid-template-columns: 1fr; } }

/* ---------- 02. La corsia veloce: tre passi e tre quadri ---------- */
.assistente-corsia { display: grid; gap: var(--space-6); align-items: start; }
.assistente-passi { display: contents; }
.assistente-passo { display: grid; grid-template-columns: 44px 1fr; gap: var(--space-4); align-items: start; }
.assistente-passo-n { display: grid; place-items: center; width: 44px; height: 44px; border-radius: 50%; background: var(--surface); border: 2px solid var(--border); color: var(--text-muted); font-weight: 700; font-variant-numeric: tabular-nums; }
.assistente-passo h3 { font-size: 1.25rem; margin-bottom: var(--space-2); }
.assistente-passo p { margin: 0; color: var(--text-muted); }
.assistente-passo.attivo .assistente-passo-n { background: var(--ai); border-color: var(--ai); color: var(--on-primary); }
.assistente-quadro { display: grid; gap: var(--space-3); min-width: 0; }
/* sotto i 900 px ogni quadro segue il suo passo (la griglia altrimenti metterebbe prima i tre passi, poi i tre quadri) */
.assistente-passo.p1 { grid-row: 1; } .assistente-quadro.q1 { grid-row: 2; }
.assistente-passo.p2 { grid-row: 3; } .assistente-quadro.q2 { grid-row: 4; }
.assistente-passo.p3 { grid-row: 5; } .assistente-quadro.q3 { grid-row: 6; }
.assistente-quadro-did { margin: 0; text-align: center; color: var(--text-muted); font-size: .9375rem; }
/* quadro 1: il messaggio inviato con lo stato di consegna e il pulsante */
.assistente-inviato { padding: var(--space-4); display: grid; gap: var(--space-2); font-size: .9375rem; }
.assistente-inviato-ogg { font-weight: 700; font-size: 1.0625rem; margin: 0; color: var(--text); }
.assistente-inviato-meta { margin: 0; color: var(--text-muted); overflow-wrap: anywhere; }
.assistente-inviato-stato { margin-top: var(--space-2); border: 1px solid var(--border); border-radius: var(--radius-s); padding: var(--space-3); display: flex; flex-wrap: wrap; gap: var(--space-2) var(--space-3); align-items: center; background: var(--bg); }
.assistente-inviato-stato .carta-titolo { width: 100%; margin: 0; }
.assistente-clic { position: relative; pointer-events: none; }
.assistente-clic::after { content: ""; position: absolute; inset: -7px; border-radius: 999px; border: 2px solid var(--ai); visibility: hidden; pointer-events: none; }
/* quadro 2: la sala macchine, su fondo scuro */
.assistente-dati { background: var(--hero-bg); color: var(--hero-text); border: 1px solid var(--assistente-palco-bordo); border-radius: var(--radius); box-shadow: var(--ombra-forte); padding: var(--space-4); display: grid; gap: var(--space-3); font-size: .875rem; }
.assistente-dati-titolo { display: flex; align-items: center; gap: var(--space-2); color: var(--hero-accent); font-weight: 700; margin: 0; font-size: .9375rem; }
.assistente-dati-titolo .ico { width: 20px; height: 20px; }
.assistente-controlli { display: grid; gap: 4px; padding: var(--space-2) var(--space-3); border: 1px dashed var(--assistente-palco-bordo); border-radius: var(--radius-s); }
.assistente-controlli li { display: flex; align-items: center; gap: 6px; flex-wrap: wrap; }
.assistente-controlli .ico { width: 16px; height: 16px; color: var(--chip-ok); }
.assistente-controlli .assistente-stato { color: var(--hero-muted); }
.assistente-fonte-dati { border-top: 1px solid var(--assistente-palco-bordo); padding-top: var(--space-3); }
.assistente-fonte-nome { display: flex; align-items: center; gap: 6px; font-weight: 600; margin: 0 0 4px; color: var(--hero-text); }
.assistente-fonte-nome .ico { width: 16px; height: 16px; color: var(--hero-accent); }
.assistente-fonte-dati p { margin: 0; color: var(--hero-muted); }
.assistente-eventi { display: grid; gap: 2px; color: var(--hero-muted); }
.assistente-eventi li { display: grid; grid-template-columns: 66px 1fr; gap: var(--space-2); }
.assistente-eventi time { font-variant-numeric: tabular-nums; color: var(--hero-text); font-weight: 600; }
/* quadro 3: il cronometro e la risposta */
.assistente-cronometro { display: flex; align-items: center; gap: var(--space-3); }
.assistente-cronometro-barra { flex: 1; height: 6px; border-radius: 3px; background: var(--border); overflow: hidden; }
.assistente-cronometro-barra i { display: block; height: 100%; background: var(--ai); transform-origin: left center; }
.assistente-cronometro-n { font-weight: 700; color: var(--ai); font-variant-numeric: tabular-nums; white-space: nowrap; }
.assistente-quadro .chat-risposta p { margin-bottom: var(--space-3); }
@media (max-width: 899.98px) { .assistente-quadro { margin-bottom: var(--space-6); } }
@media (min-width: 900px) {
  .assistente-corsia { grid-template-columns: minmax(0, 5fr) minmax(0, 6fr); column-gap: var(--space-12); }
  .assistente-passo { grid-column: 1; }
  .assistente-quadro { grid-column: 2; }
  .assistente-passo.p1, .assistente-quadro.q1 { grid-row: 1; }
  .assistente-passo.p2, .assistente-quadro.q2 { grid-row: 2; }
  .assistente-passo.p3, .assistente-quadro.q3 { grid-row: 3; }
  /* con JavaScript (data-attivo): i quadri si sovrappongono su un palco fermo, i passi si allungano per dare tempo allo scorrimento */
  html.js .assistente-corsia[data-attivo] .assistente-quadro { grid-row: 1 / span 3; position: sticky; top: max(92px, 50vh - 250px); align-self: start; }
  html.js .assistente-corsia[data-attivo] .assistente-passo { min-height: 58vh; align-content: center; }
  html.js .assistente-corsia[data-attivo] .assistente-passo.p3 { min-height: 42vh; }
  html.js .assistente-corsia[data-attivo] .assistente-quadro:not(.attivo) { visibility: hidden; }
}

/* ---------- 03. Pseudonimizzazione e i tre modi ---------- */
.assistente-nota-pseudo { margin-top: var(--space-4); max-width: 72ch; }
.assistente-modi { margin-top: var(--space-6); }
.assistente-modi .card h4 { margin-bottom: var(--space-2); font-size: 1.125rem; }
.assistente-nota-app { margin-top: var(--space-4); padding-top: var(--space-3); border-top: 1px dashed var(--border); }
.card-ai .assistente-nota-app { border-top-color: var(--ai); }
.assistente-nota-app-l { display: block; font-size: .75rem; text-transform: uppercase; letter-spacing: .06em; font-weight: 600; color: var(--text-muted); margin-bottom: var(--space-2); }
.assistente-modi .card .nota-ai { color: var(--text-muted); font-size: .875rem; }
.assistente-modi .card .nota-det { color: var(--ai); }
.assistente-modi .card .nota-ai .ico { margin-bottom: 0; width: 18px; height: 18px; color: var(--ai); }

/* ---------- 04. La proposta: dati veri, pulsanti che aspettano te ---------- */
.assistente-proposta { margin: 0; background: var(--surface); border: 1px solid var(--ai); border-radius: var(--radius); box-shadow: var(--ombra-forte); padding: var(--space-6); font-size: .9375rem; color: var(--text); }
.assistente-proposta-titolo { display: flex; gap: var(--space-2); align-items: center; color: var(--ai); font-weight: 700; margin-bottom: var(--space-2); }
.assistente-proposta-titolo .ico { width: 20px; height: 20px; }
.assistente-proposta dl { display: grid; grid-template-columns: auto 1fr; gap: var(--space-1) var(--space-4); margin: var(--space-4) 0; padding: var(--space-3) var(--space-4); background: var(--surface-alt); border-radius: var(--radius-s); }
.assistente-proposta dt { color: var(--text-muted); font-weight: 500; }
.assistente-proposta dd { margin: 0; font-weight: 600; overflow-wrap: anywhere; }
.assistente-proposta-nota { display: flex; gap: var(--space-2); align-items: flex-start; font-size: .875rem; color: var(--text-muted); }
.assistente-proposta-nota .ico { width: 18px; height: 18px; color: var(--ai); margin-top: 2px; }
.assistente-proposta-azioni { display: flex; flex-wrap: wrap; gap: var(--space-3); align-items: center; margin: var(--space-4) 0 0; }
.assistente-proposta-azioni .btn { pointer-events: none; }
@media (max-width: 479.98px) { .assistente-proposta dl { grid-template-columns: 1fr; gap: 0; } .assistente-proposta dt { margin-top: var(--space-2); } }

/* ---------- 05. È un'AI, e lo dice: la dicitura e l'anatomia di una risposta ---------- */
.assistente-dichiarazione { display: grid; grid-template-columns: auto 1fr; gap: var(--space-4); align-items: start; background: var(--surface); border: 1px solid var(--ai); border-left-width: 4px; border-radius: var(--radius); padding: var(--space-6); box-shadow: var(--ombra); margin-bottom: var(--space-6); }
.assistente-dichiarazione .ico { color: var(--ai); width: 28px; height: 28px; margin-top: 2px; }
.assistente-dichiarazione p { margin: 0; font-size: clamp(1.125rem, 1rem + .6vw, 1.375rem); font-weight: 600; line-height: 1.4; }
.assistente-dichiarazione small { display: block; margin-top: var(--space-2); font-weight: 500; color: var(--text-muted); font-size: .9375rem; }
.assistente-anatomia { margin: 0; }
.assistente-anatomia .chat-risposta p { margin-bottom: var(--space-3); }
.assistente-anatomia .nota-ai { align-items: center; }
.assistente-marca { display: inline-grid; place-items: center; width: 22px; height: 22px; border-radius: 50%; background: var(--ai); color: var(--on-primary); font-size: .75rem; font-weight: 700; flex: none; margin-right: var(--space-2); vertical-align: middle; }
.assistente-legenda { display: grid; gap: var(--space-2); margin-top: var(--space-4); counter-reset: marca; font-size: .9375rem; color: var(--text-muted); }
.assistente-legenda li { counter-increment: marca; display: flex; gap: var(--space-2); align-items: flex-start; }
.assistente-legenda li::before { content: counter(marca); display: inline-grid; place-items: center; width: 22px; height: 22px; border-radius: 50%; background: var(--ai); color: var(--on-primary); font-size: .75rem; font-weight: 700; flex: none; margin-top: 2px; }

/* ---------- Movimento (solo chi non chiede di ridurlo) ---------- */
@media (prefers-reduced-motion: no-preference) {
  .assistente-alone { animation: assistente-deriva 26s ease-in-out infinite alternate; }
  .assistente-passo-n { transition: background-color .3s ease, border-color .3s ease, color .3s ease; }
  html.js .assistente-tessere > [data-rivela]:nth-child(2) { transition-delay: .08s; }
  html.js .assistente-tessere > [data-rivela]:nth-child(3) { transition-delay: .16s; }
  html.js .assistente-tessere > [data-rivela]:nth-child(4) { transition-delay: .24s; }
  html.js .assistente-tessere > [data-rivela]:nth-child(5) { transition-delay: .32s; }
  /* intro: la conversazione si svolge da sola quando entra nella finestra (classe «avvia»); «Rivedi» la rigioca */
  html.js .assistente-pannello:not(.avvia) .assistente-msg { visibility: hidden; }
  html.js .assistente-pannello.avvia .assistente-msg { animation: assistente-msg .5s cubic-bezier(.2, .7, .2, 1) both; }
  html.js .assistente-pannello.avvia .m1 { animation-delay: .4s; }
  html.js .assistente-pannello.avvia .m2 { animation-delay: 1s; }
  html.js .assistente-pannello.avvia .m3 { animation-delay: 2.2s; }
  html.js .assistente-pannello.avvia .m4 { animation-delay: 3.4s; }
  html.js .assistente-pannello.avvia .m6 { animation-delay: 5.2s; }
  /* «(in corso)» si vede solo da quando compare la riga (1 s) a quando diventa «(fatto)»: riempimento solo in avanti, cosi' prima
     vale lo stato di base (nascosto, o ereditato dal blocco ancora nascosto) */
  html.js .assistente-pannello.avvia .s1 .st-corso { animation: assistente-corso .7s step-end 1s forwards; }
  html.js .assistente-pannello.avvia .s1 .st-fatto { animation: assistente-fatto .7s step-end 1s forwards; }
  html.js .assistente-pannello.avvia .s2 .st-corso { animation: assistente-corso 1.1s step-end 1s forwards; }
  html.js .assistente-pannello.avvia .s2 .st-fatto { animation: assistente-fatto 1.1s step-end 1s forwards; }
  /* «sta rispondendo» occupa il suo spazio fin dall'inizio (invisibile): quando la demo parte non sposta nulla (CLS 0) */
  html.js .assistente-pannello .assistente-scrive { display: inline-flex; visibility: hidden; }
  html.js .assistente-pannello.avvia .assistente-scrive { animation: assistente-scrive 5.4s step-end both; }
  /* i puntini battono solo finche' «sta rispondendo» e' visibile (6 battiti = 5,4 s), poi si fermano */
  html.js .assistente-pannello.avvia .assistente-puntini i { animation: assistente-punto .9s ease-in-out 6; }
  html.js .assistente-pannello.avvia .assistente-puntini i:nth-child(2) { animation-delay: .15s; }
  html.js .assistente-pannello.avvia .assistente-puntini i:nth-child(3) { animation-delay: .3s; }
  /* corsia, quadro 1: l'anello del clic; quadro 2: righe una alla volta e stati in corso -> fatto; quadro 3: cronometro, poi la risposta */
  html.js .assistente-quadro.attivo .assistente-clic::after { animation: assistente-anello 1.8s ease-out .4s infinite; }
  html.js .assistente-quadro.attivo .assistente-controlli li, html.js .assistente-quadro.attivo .assistente-fonte-dati { animation: assistente-msg .45s cubic-bezier(.2, .7, .2, 1) both; }
  html.js .assistente-quadro.attivo .c2 { animation-delay: .35s; }
  html.js .assistente-quadro.attivo .c3 { animation-delay: .7s; }
  html.js .assistente-quadro.attivo .d1 { animation-delay: 1.1s; }
  html.js .assistente-quadro.attivo .d2 { animation-delay: 1.45s; }
  html.js .assistente-quadro.attivo .d3 { animation-delay: 1.8s; }
  html.js .assistente-quadro.attivo .c1 .st-corso { animation: assistente-corso .9s step-end 0s forwards; }
  html.js .assistente-quadro.attivo .c1 .st-fatto { animation: assistente-fatto .9s step-end 0s forwards; }
  html.js .assistente-quadro.attivo .c2 .st-corso { animation: assistente-corso .95s step-end .35s forwards; }
  html.js .assistente-quadro.attivo .c2 .st-fatto { animation: assistente-fatto .95s step-end .35s forwards; }
  html.js .assistente-quadro.attivo .c3 .st-corso { animation: assistente-corso 1s step-end .7s forwards; }
  html.js .assistente-quadro.attivo .c3 .st-fatto { animation: assistente-fatto 1s step-end .7s forwards; }
  html.js .assistente-quadro.attivo .assistente-cronometro-barra i { animation: assistente-barra .3s linear .2s both; }
  html.js .assistente-quadro.attivo .chat-risposta { animation: assistente-msg .5s cubic-bezier(.2, .7, .2, 1) .5s both; }
  /* pseudonimizzazione: i segnaposto entrano uno alla volta, anche quando si rigioca (l'animazione nasce con «avvia») */
  html.js .pseudo.assistente-pseudo .tok { animation: none; }
  html.js .pseudo.assistente-pseudo.avvia .tok { animation: tok-entra .6s cubic-bezier(.2, .7, .2, 1) both; }
  html.js .pseudo.assistente-pseudo.avvia .tok:nth-of-type(2) { animation-delay: .25s; }
  html.js .pseudo.assistente-pseudo.avvia .tok:nth-of-type(3) { animation-delay: .5s; }
  html.js .pseudo.assistente-pseudo.avvia .tok:nth-of-type(4) { animation-delay: .75s; }
  /* proposta: la pillola «in attesa» respira; anatomia: i marcatori compaiono uno dopo l'altro */
  html.js .assistente-proposta.vista .assistente-proposta-attesa { animation: assistente-respira 2.4s ease-in-out infinite; }
  html.js .assistente-anatomia.vista .assistente-marca { animation: assistente-marca .4s cubic-bezier(.2, .7, .2, 1) both; }
  html.js .assistente-anatomia.vista .assistente-marca.k2 { animation-delay: .3s; }
  html.js .assistente-anatomia.vista .assistente-marca.k3 { animation-delay: .6s; }
  html.js .assistente-anatomia.vista .assistente-marca.k4 { animation-delay: .9s; }
}
@media (prefers-reduced-motion: no-preference) and (min-width: 900px) {
  html.js .assistente-corsia[data-attivo] .assistente-quadro { transition: opacity .45s ease, transform .45s cubic-bezier(.2, .7, .2, 1), visibility 0s linear .45s; }
  html.js .assistente-corsia[data-attivo] .assistente-quadro:not(.attivo) { opacity: 0; transform: translateY(18px); }
  html.js .assistente-corsia[data-attivo] .assistente-quadro.attivo { transition-delay: 0s, 0s, 0s; }
}
@keyframes assistente-deriva { to { transform: translate3d(-8vmax, 7vmax, 0) scale(1.08); } }
@keyframes assistente-msg { from { visibility: hidden; transform: translateY(10px) scale(.98); } to { visibility: visible; transform: none; } }
@keyframes assistente-corso { from { visibility: visible; } to { visibility: hidden; } }
@keyframes assistente-fatto { from { visibility: hidden; } to { visibility: visible; } }
@keyframes assistente-scrive { 0%, 70% { visibility: hidden; } 71%, 94% { visibility: visible; } 95%, 100% { visibility: hidden; } }
@keyframes assistente-punto { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-3px); } }
@keyframes assistente-anello { 0% { visibility: visible; opacity: .9; transform: scale(.85); } 70%, 100% { visibility: visible; opacity: 0; transform: scale(1.35); } }
@keyframes assistente-barra { from { transform: scaleX(0); } to { transform: scaleX(1); } }
@keyframes assistente-respira { 0%, 100% { box-shadow: 0 0 0 0 rgba(138, 75, 11, .35); } 50% { box-shadow: 0 0 0 8px rgba(138, 75, 11, 0); } }
@keyframes assistente-marca { from { visibility: hidden; transform: scale(.4); } to { visibility: visible; transform: none; } }
