/* Ajustes finais das páginas internas: arte completa e entradas discretas. */
.portal-page .library-art {
  height: clamp(220px, 19vw, 300px);
  display: grid;
  place-items: center;
  background: radial-gradient(circle at 50% 50%, #17347735, transparent 62%), #02040a;
}

.portal-page .library-art img {
  width: 100%;
  height: 100%;
  padding: 6px;
  object-fit: contain;
  object-position: center;
}

.portal-page .library-art::after {
  background: linear-gradient(0deg, #03050da8 0, transparent 34%);
}

.portal-page:not(.portal-ready) .portal-brand {
  opacity: 0;
  translate: -44px 0;
  filter: blur(2px);
}

.portal-page:not(.portal-ready) .portal-topbar > strong {
  opacity: 0;
  translate: 0 -22px;
  filter: blur(2px);
}

.portal-page:not(.portal-ready) .portal-account {
  opacity: 0;
  translate: 38px 0;
  filter: blur(2px);
}

.portal-page:not(.portal-ready) .portal-sidebar {
  opacity: 0;
  translate: -42px 0;
  filter: blur(2px);
}

.portal-page:not(.portal-ready) .portal-content {
  opacity: 0;
  translate: 52px 0;
  filter: blur(3px);
}

.portal-page.force-motion.portal-ready .portal-brand {
  animation: client-brand-enter-soft .58s cubic-bezier(.16, .8, .24, 1) both !important;
}

.portal-page.force-motion.portal-ready .portal-topbar > strong {
  animation: client-title-enter-soft .54s .03s cubic-bezier(.16, .8, .24, 1) both,
             title-shimmer 4s .65s linear infinite !important;
}

.portal-page.force-motion.portal-ready .portal-account {
  animation: client-account-enter-soft .58s .04s cubic-bezier(.16, .8, .24, 1) both !important;
}

.portal-page.force-motion.portal-ready .portal-sidebar {
  animation: client-sidebar-enter-soft .62s .03s cubic-bezier(.16, .8, .24, 1) both !important;
}

.portal-page.force-motion.portal-ready .portal-content {
  animation: client-content-enter-soft .68s .06s cubic-bezier(.16, .8, .24, 1) both !important;
}

.portal-page.force-motion .motion-reveal {
  opacity: 0;
  translate: 0 10px;
  filter: blur(2px);
}

.portal-page.force-motion .motion-reveal.in-view {
  animation: client-section-enter-soft .5s cubic-bezier(.2, .72, .2, 1) forwards !important;
}

@keyframes client-brand-enter-soft {
  from { opacity: 0; translate: -44px 0; filter: blur(2px); }
  to { opacity: 1; translate: 0 0; filter: blur(0); }
}

@keyframes client-title-enter-soft {
  from { opacity: 0; translate: 0 -22px; filter: blur(2px); }
  to { opacity: 1; translate: 0 0; filter: blur(0); }
}

@keyframes client-account-enter-soft {
  from { opacity: 0; translate: 38px 0; filter: blur(2px); }
  to { opacity: 1; translate: 0 0; filter: blur(0); }
}

@keyframes client-sidebar-enter-soft {
  from { opacity: 0; translate: -42px 0; filter: blur(2px); }
  to { opacity: 1; translate: 0 0; filter: blur(0); }
}

@keyframes client-content-enter-soft {
  from { opacity: 0; translate: 52px 0; filter: blur(3px); }
  to { opacity: 1; translate: 0 0; filter: blur(0); }
}

@keyframes client-section-enter-soft {
  to { opacity: 1; translate: 0 0; filter: blur(0); }
}

@keyframes card-enter {
  from { opacity: 0; transform: translateY(8px) scale(.992); }
  to { opacity: 1; transform: none; }
}

@media (max-width: 850px) {
  .portal-page:not(.portal-ready) .portal-content {
    translate: 32px 0;
  }

  .portal-page:not(.portal-ready) .portal-sidebar {
    translate: 0 -24px;
  }

  .portal-page.force-motion.portal-ready .portal-sidebar {
    animation: client-mobile-nav-enter-soft .55s .02s cubic-bezier(.16, .8, .24, 1) both !important;
  }

  @keyframes client-mobile-nav-enter-soft {
    from { opacity: 0; translate: 0 -24px; filter: blur(2px); }
    to { opacity: 1; translate: 0 0; filter: blur(0); }
  }
}
