/* =========================================================
   HERITAGE PRO — Animations
   ========================================================= */

@keyframes fadeUp{
  from{opacity:0; transform:translateY(18px);}
  to{opacity:1; transform:translateY(0);}
}
@keyframes fadeIn{
  from{opacity:0;}
  to{opacity:1;}
}
@keyframes scaleIn{
  from{opacity:0; transform:scale(.96);}
  to{opacity:1; transform:scale(1);}
}
@keyframes floatY{
  0%,100%{transform:translateY(0);}
  50%{transform:translateY(-10px);}
}
@keyframes pulseSoft{
  0%,100%{box-shadow:0 0 0 0 rgba(184,134,59,.35);}
  50%{box-shadow:0 0 0 8px rgba(184,134,59,0);}
}
@keyframes drawLine{
  from{stroke-dashoffset:1000;}
  to{stroke-dashoffset:0;}
}
@keyframes shimmerGold{
  0%{background-position:-200% 0;}
  100%{background-position:200% 0;}
}
@keyframes spinSlow{
  from{transform:rotate(0deg);}
  to{transform:rotate(360deg);}
}
@keyframes slideInRight{
  from{opacity:0; transform:translateX(24px);}
  to{opacity:1; transform:translateX(0);}
}
@keyframes ringGrow{
  from{stroke-dashoffset: var(--ring-full);}
  to{stroke-dashoffset: var(--ring-value);}
}
@keyframes popIn{
  0%{opacity:0; transform:scale(.8) translateY(6px);}
  70%{opacity:1; transform:scale(1.03) translateY(0);}
  100%{transform:scale(1);}
}

.reveal{opacity:0; animation:fadeUp .7s var(--ease) forwards;}
.reveal-1{animation-delay:.05s;}
.reveal-2{animation-delay:.15s;}
.reveal-3{animation-delay:.25s;}
.reveal-4{animation-delay:.35s;}
.reveal-5{animation-delay:.45s;}
.reveal-6{animation-delay:.55s;}

.fade-scale{opacity:0; animation:scaleIn .5s var(--ease) forwards;}

.float{animation:floatY 5s ease-in-out infinite;}
.float-delay{animation:floatY 5s ease-in-out infinite; animation-delay:1.2s;}

.pulse-badge{animation:pulseSoft 2.4s ease-in-out infinite;}

.page-enter{animation:fadeIn .45s var(--ease);}
.row-enter{opacity:0; animation:fadeUp .5s var(--ease) forwards;}

.toast-in{animation:slideInRight .35s var(--ease);}
.toast-out{animation:fadeIn .25s ease reverse;}

.spin-slow{animation:spinSlow 12s linear infinite;}

.hover-lift{transition:transform .25s var(--ease), box-shadow .25s var(--ease);}
.hover-lift:hover{transform:translateY(-3px);}

.gold-shimmer{
  background:linear-gradient(90deg, var(--hp-bronze-600) 25%, var(--hp-bronze-400,#E1B876) 50%, var(--hp-bronze-600) 75%);
  background-size:200% auto; animation:shimmerGold 3s linear infinite;
  -webkit-background-clip:text; background-clip:text; color:transparent;
}

/* Loader initial de page */
.boot-loader{
  position:fixed; inset:0; z-index:9999; background:var(--hp-bg);
  display:flex; align-items:center; justify-content:center; flex-direction:column; gap:16px;
  transition:opacity .5s var(--ease), visibility .5s;
}
.boot-loader.hide{opacity:0; visibility:hidden; pointer-events:none;}
.boot-mark{
  width:56px; height:56px; border-radius:16px;
  background:linear-gradient(155deg, var(--hp-bronze-500), var(--hp-forest-700) 70%);
  display:flex; align-items:center; justify-content:center; color:#fff;
  animation:popIn .6s var(--ease);
  box-shadow:var(--shadow-gold);
}
.boot-mark svg{width:28px; height:28px;}
.boot-loader .boot-text{font-size:13px; color:var(--hp-ink-500); letter-spacing:.04em;}
.boot-bar{width:140px; height:3px; border-radius:99px; background:var(--hp-border-soft); overflow:hidden;}
.boot-bar span{display:block; height:100%; width:40%; background:linear-gradient(90deg, var(--hp-forest-600), var(--hp-bronze-600)); animation:bootProgress 1.1s ease-in-out infinite;}
@keyframes bootProgress{
  0%{transform:translateX(-100%);}
  100%{transform:translateX(350%);}
}

/* Notification dropdown */
.dropdown-panel{
  position:absolute; top:calc(100% + 10px); right:0; width:340px; background:var(--hp-surface);
  border:1px solid var(--hp-border-soft); border-radius:var(--r-lg); box-shadow:var(--shadow-lg);
  opacity:0; visibility:hidden; transform:translateY(-8px) scale(.98); transform-origin:top right;
  transition:all .22s var(--ease); z-index:120;
}
.dropdown-panel.open{opacity:1; visibility:visible; transform:translateY(0) scale(1);}

/* Skeleton shimmer alt on data load */
.chart-loading{position:relative; min-height:220px;}
