.reveal-up, .reveal-left, .reveal-right, .reveal-scale { opacity: 0; transition: opacity .85s ease var(--reveal-delay,0ms), transform .85s cubic-bezier(.22,1,.36,1) var(--reveal-delay,0ms); will-change: opacity, transform; }
.reveal-up { transform: translateY(38px); }
.reveal-left { transform: translateX(-48px); }
.reveal-right { transform: translateX(48px); }
.reveal-scale { transform: scale(.95); }
.reveal-up.is-visible, .reveal-left.is-visible, .reveal-right.is-visible, .reveal-scale.is-visible { opacity: 1; transform: translate3d(0,0,0) scale(1); }
.hero-background-image { animation: hero-image-in 1.3s cubic-bezier(.22,1,.36,1) both, hero-drift 18s ease-in-out 1.3s infinite alternate; transform-origin: center; }
.hero-content { animation: hero-content-in 1s cubic-bezier(.22,1,.36,1) .12s both; }
.hero-eyebrow { animation: hero-item-in .8s ease .18s both; }
.hero-title { animation: hero-item-in .95s cubic-bezier(.22,1,.36,1) .26s both; }
.hero-description { animation: hero-item-in .9s ease .38s both; }
.hero-content .btn { animation: hero-item-in .9s ease .48s both; }
.section-line { transform: scaleX(.15); transform-origin: center; transition: transform .8s cubic-bezier(.22,1,.36,1); }
.section-in-view .section-line { transform: scaleX(1); }
.investment-card img, .about-preview-image img, .sector-card img, .perspectiva-card img { transition: transform .8s cubic-bezier(.22,1,.36,1), filter .8s ease; }
.investment-card:not(.is-flipped):hover img, .sector-card:hover img, .perspectiva-card:hover img { transform: scale(1.06); }
.about-preview-box:hover .about-preview-image img { transform: scale(1.04); }
.portfolio-card, .principio, .estrategia-item, .capacidad-card, .funcion-card, .buscamos-card, .valor-card { transition: transform .4s cubic-bezier(.22,1,.36,1), box-shadow .4s ease, border-color .4s ease, background-color .4s ease, color .4s ease; }
.portfolio-card:hover .portfolio-card-number, .buscamos-card:hover .buscamos-numero { animation: number-pulse .7s ease both; }
.portfolio-card:hover .portfolio-card-logo, .capacidad-card:hover .capacidad-icon, .estrategia-item:hover .estrategia-icon, .principio:hover .principio-icon { animation: icon-float 1.8s ease-in-out infinite; }
.portfolio-card-link .material-symbols-outlined, .text-link .material-symbols-outlined, .perspectiva-read .material-symbols-outlined, .perspectivas-banner-link .material-symbols-outlined { transition: transform .35s cubic-bezier(.22,1,.36,1); }
dialog[open] { animation: dialog-fade .24s ease both; }
dialog[open] .site-modal-container, dialog[open] .buscamos-modal-box, dialog[open] .consejo-modal-box, dialog[open] .perspectiva-modal-box { animation: modal-rise .38s cubic-bezier(.22,1,.36,1) both; }
dialog[open] .site-modal-heading, dialog[open] .perspectiva-modal-heading { animation: modal-content-in .48s ease .08s both; }
.capital-banner-image, .inversiones-banner-image, .perspectivas-banner-image { transition: transform 1.2s cubic-bezier(.22,1,.36,1), filter 1.2s ease; }
.capital-banner:hover .capital-banner-image, .inversiones-banner:hover .inversiones-banner-image, .perspectivas-banner:hover .perspectivas-banner-image { transform: scale(1.025); filter: saturate(1.04); }
.page-progress { box-shadow: 0 0 16px rgba(210,100,20,.55); }
@keyframes hero-image-in { from { opacity: 0; transform: scale(1.08); } to { opacity: 1; transform: scale(1.045); } }
@keyframes hero-drift { from { transform: scale(1.045) translate3d(0,0,0); } to { transform: scale(1.085) translate3d(0,-8px,0); } }
@keyframes hero-content-in { from { opacity: 0; transform: translateY(20px); } to { opacity: 1; transform: translateY(0); } }
@keyframes hero-item-in { from { opacity: 0; transform: translateY(18px); } to { opacity: 1; transform: translateY(0); } }
@keyframes dialog-fade { from { opacity: 0; } to { opacity: 1; } }
@keyframes modal-rise { from { opacity: 0; transform: translateY(22px) scale(.985); } to { opacity: 1; transform: translateY(0) scale(1); } }
@keyframes modal-content-in { from { opacity: 0; transform: translateY(14px); } to { opacity: 1; transform: translateY(0); } }
@keyframes number-pulse { 0% { transform: translateY(0); } 45% { transform: translateY(-4px); } 100% { transform: translateY(0); } }
@keyframes icon-float { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-4px); } }
@media (prefers-reduced-motion: reduce) { *, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; scroll-behavior: auto !important; } }
