/* aelia — movimento e transições partilhados por todas as páginas */
@keyframes ae-marquee { from { transform: translateX(0); } to { transform: translateX(-50%); } }
@keyframes ae-spin { to { transform: rotate(360deg); } }
@keyframes ae-float { 0%, 100% { transform: translateY(0) rotate(var(--r, 0deg)); } 50% { transform: translateY(-14px) rotate(var(--r, 0deg)); } }
@keyframes ae-sway { 0%, 100% { transform: rotate(var(--r, 0deg)); } 50% { transform: rotate(calc(var(--r, 0deg) + 3deg)); } }
@keyframes ae-in { from { opacity: 0; transform: translateY(48px); } to { opacity: 1; transform: none; } }
@keyframes ae-pop { 0% { opacity: 0; transform: scale(.6) rotate(var(--r, 0deg)); } 70% { transform: scale(1.06) rotate(var(--r, 0deg)); } 100% { opacity: 1; transform: scale(1) rotate(var(--r, 0deg)); } }
@keyframes ae-draw { from { stroke-dashoffset: 600; } to { stroke-dashoffset: 0; } }

/* faixas a correr */
.ae-marquee { display: flex; width: max-content; animation: ae-marquee 32s linear infinite; }
.ae-marquee.ae-rev { animation-direction: reverse; }
.ae-marquee.ae-fast { animation-duration: 20s; }

/* autocolantes */
.ae-spin { animation: ae-spin 20s linear infinite; }
.ae-float { animation: ae-float 5s ease-in-out infinite; }
.ae-float.ae-slow { animation-duration: 7s; animation-delay: -2.5s; }
.ae-sway { animation: ae-sway 4.5s ease-in-out infinite; transform-origin: 50% 0; }
.ae-pop { animation: ae-pop .8s cubic-bezier(.2,.8,.2,1.2) both; }
.ae-draw path { stroke-dasharray: 600; animation: ae-draw 2.4s ease-out both; }

/* entrada ao carregar */
.ae-load { animation: ae-in .9s cubic-bezier(.2,.7,.2,1) both; }
.ae-d1 { animation-delay: .12s; } .ae-d2 { animation-delay: .24s; } .ae-d3 { animation-delay: .36s; } .ae-d4 { animation-delay: .5s; }

/* aparecer ao fazer scroll, um a seguir ao outro (motion.js marca os elementos) */
.ae-js .ae-r {
  opacity: 0;
  translate: 0 48px;
  transition: opacity .8s cubic-bezier(.2,.7,.2,1), translate .8s cubic-bezier(.2,.7,.2,1),
              transform .35s cubic-bezier(.2,.7,.2,1), box-shadow .35s, background-color .2s, color .2s, padding-left .3s, filter .3s;
}
.ae-js .ae-r.ae-in { opacity: 1; translate: 0 0; }

/* botões em pílula com sombra 3D (estilo autocolante) */
a[style*="border-radius: 999px"], button[style*="border-radius: 999px"] {
  transition: transform .18s cubic-bezier(.2,.7,.2,1), box-shadow .18s, background-color .2s, color .2s;
}
a[style*="border-radius: 999px"][style*="border: 2px solid #1F2A5C"],
button[style*="border-radius: 999px"][style*="border: 2px solid #1F2A5C"] { box-shadow: 3px 4px 0 #1F2A5C; }
a[style*="border-radius: 999px"][style*="background: #1F2A5C"],
button[style*="border-radius: 999px"][style*="background: #1F2A5C"] { box-shadow: 3px 4px 0 #F27457; }
a[style*="border-radius: 999px"]:hover, button[style*="border-radius: 999px"]:hover {
  transform: translate(-2px, -3px);
  box-shadow: 5px 7px 0 #1F2A5C;
}
a[style*="border-radius: 999px"][style*="background: #1F2A5C"]:hover,
button[style*="border-radius: 999px"][style*="background: #1F2A5C"]:hover { box-shadow: 5px 7px 0 #F27457; }
a[style*="border-radius: 999px"]:active, button[style*="border-radius: 999px"]:active {
  transform: translate(3px, 4px);
  box-shadow: 0 0 0 #1F2A5C;
}


/* variantes rgb (o navegador converte as cores hex dos estilos inline) */
a[style*="border-radius: 999px"][style*="border: 2px solid rgb(31, 42, 92)"],
button[style*="border-radius: 999px"][style*="border: 2px solid rgb(31, 42, 92)"] { box-shadow: 3px 4px 0 #1F2A5C; }
a[style*="border-radius: 999px"][style*="background: rgb(31, 42, 92)"],
button[style*="border-radius: 999px"][style*="background: rgb(31, 42, 92)"] { box-shadow: 3px 4px 0 #F27457; }
a[style*="border-radius: 999px"][style*="background: rgb(31, 42, 92)"]:hover,
button[style*="border-radius: 999px"][style*="background: rgb(31, 42, 92)"]:hover { box-shadow: 5px 7px 0 #F27457; }
a[style*="border-radius: 28px"] { transition: transform .35s cubic-bezier(.2,.7,.2,1), box-shadow .35s; }

/* linhas do "menu aelia" */
.ae-row { transition: padding-left .3s cubic-bezier(.2,.7,.2,1), filter .3s; }
.ae-row:hover { padding-left: 88px !important; filter: saturate(1.15); }
.ae-row:hover .ae-arrow { transform: rotate(-45deg); }
.ae-arrow { transition: transform .3s cubic-bezier(.2,.7,.2,1); }

/* fotos inclinadas que endireitam */
.ae-tilt { transition: transform .35s cubic-bezier(.2,.7,.2,1); }
.ae-tilt:hover { transform: rotate(0deg) scale(1.04) !important; }

/* cartões que levantam */
a[style*="border-radius: 28px"], .ae-lift {
  transition: transform .35s cubic-bezier(.2,.7,.2,1), box-shadow .35s;
}
a[style*="border-radius: 28px"]:hover, .ae-lift:hover {
  transform: translateY(-8px) rotate(-.8deg);
  box-shadow: 8px 8px 0 #1F2A5C;
}

/* links do menu */
nav a { transition: transform .18s, box-shadow .18s, background-color .2s, color .2s; }

/* campos de formulário */
input, select, textarea { transition: box-shadow .2s, border-color .2s; }
input:focus, select:focus, textarea:focus { outline: none; box-shadow: 0 0 0 4px #FFDE59; }

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