/* stato base: transizione morbida, perno alla base
   (l'origami dondola appoggiato, non dal centro) */
.logo-wobble img {
  transition: transform .25s ease;
  transform-origin: center bottom;
  will-change: transform;
}

/* al passaggio del mouse: un wobble che si smorza da solo */
.logo-wobble:hover img {
  animation: logoWobble .6s ease-in-out;
}

@keyframes logoWobble {
  0%   { transform: rotate(0); }
  15%  { transform: rotate(-8deg); }
  30%  { transform: rotate(6deg); }
  45%  { transform: rotate(-5deg); }
  60%  { transform: rotate(3deg); }
  75%  { transform: rotate(-2deg); }
  100% { transform: rotate(0); }
}

/* accessibilitÃ : chi ha "riduci movimento" attivo non la vede */
@media (prefers-reduced-motion: reduce) {
  .logo-wobble:hover img { animation: none; }
}

/* selezione testo brand: violet ardiuai su tutto il sito */
::selection { background: rgba(167,139,250,.35); color: #eceef0; }
::-moz-selection { background: rgba(167,139,250,.35); color: #eceef0; }

/* UI native in dark: scrollbar, form, autofill coerenti col tema */
:root { color-scheme: dark; }

/* controlli nativi (checkbox, radio, progress) in violet brand */
:root { accent-color: #a78bfa; }

/* scrollbar sottile e scura ovunque (oggi solo risorse ce l'ha) */
* { scrollbar-width: thin; scrollbar-color: #2a2f36 #0d0f11; }

/* titoli senza righe orfane (i browser che non lo supportano ignorano) */
h1, h2, h3 { text-wrap: balance; }


/* â”€â”€ 1. View Transitions tra pagine â”€â”€
   La navigazione interna diventa una dissolvenza fluida invece del
   flash bianco/nero: sensazione da app, standard cross-document.
   Chrome/Edge e Safari recenti; altrove: navigazione classica. */
@view-transition { navigation: auto; }

::view-transition-old(root) {
  animation: ard-vt-out .22s ease both;
}
::view-transition-new(root) {
  animation: ard-vt-in .28s ease both;
}
@keyframes ard-vt-out {
  to { opacity: 0; }
}
@keyframes ard-vt-in {
  from { opacity: 0; transform: translateY(6px); }
  to   { opacity: 1; transform: none; }
}
@media (prefers-reduced-motion: reduce) {
  ::view-transition-old(root),
  ::view-transition-new(root) { animation: none; }
}

/* â”€â”€ 2. Ingressi scroll-driven nativi â”€â”€
   Le card emergono mentre entrano nel viewport: animation-timeline
   della piattaforma, niente IntersectionObserver, niente JS.
   Selettori scoped: toolbox, novita e percorsi. */
@supports (animation-timeline: view()) {
  @media (prefers-reduced-motion: no-preference) {
    .toolbox-grid .card,
    .novita-item,
    .path-card {
      animation: ard-rise linear both;
      animation-timeline: view();
      animation-range: entry 0% entry 38%;
    }
  }
}
@keyframes ard-rise {
  /* proprieta' indipendente translate: si compone con i transform
     degli hover invece di sovrascriverli (bug trovato nel double check) */
  from { opacity: .35; translate: 0 14px; }
  to   { opacity: 1;   translate: 0 0; }
}

/* â”€â”€ 3. Paragrafi senza righe sgraziate â”€â”€
   text-wrap:pretty ottimizza gli a-capo dei testi di lettura
   (le orfane sui titoli le gestisce gia' il balance messo prima). */
p, .link-desc, .card-sub, .tip-bubble { text-wrap: pretty; }
