/* Scoped fadeIn / fadeInUp effects; no external runtime dependency. */
@keyframes resultFadeIn { from { opacity: 0 } to { opacity: 1 } }
@keyframes resultFadeInUp { from { opacity: 0; transform: translate3d(0,18px,0) } to { opacity: 1; transform: translate3d(0,0,0) } }
@keyframes resultFadeOut { from { opacity: 1 } to { opacity: 0 } }
.hero-copy > h1, .hero-description, .hero-actions { animation: resultFadeInUp 600ms ease-out backwards; }
.hero-description { animation-delay: 100ms; }
.hero-actions { animation-delay: 200ms; }
.result-motion-wait { opacity: 0; }
.result-motion-enter { animation: resultFadeInUp 550ms ease-out backwards; animation-delay: var(--result-delay, 0ms); }
/* Magic Animations: boingInUp, Copyright (c) 2022 Christian Pucci.
   MIT license: MAGIC-ANIMATIONS-LICENSE.txt */
@keyframes boingInUp {
  0% { opacity: 0; transform-origin: 50% 0%; transform: perspective(800px) rotateX(-90deg); }
  50% { opacity: 1; transform-origin: 50% 0%; transform: perspective(800px) rotateX(50deg); }
  100% { opacity: 1; transform-origin: 50% 0%; transform: perspective(800px) rotateX(0deg); }
}
.project-card.result-motion-enter {
  animation-name: boingInUp;
  animation-duration: 1s;
  animation-timing-function: ease;
}
/* Magic Animations: vanishIn (Bling), Copyright (c) 2022 Christian Pucci.
   MIT license: MAGIC-ANIMATIONS-LICENSE.txt */
@keyframes vanishIn {
  0% { opacity: 0; transform-origin: 50% 50%; transform: scale(2, 2); filter: blur(90px); }
  100% { opacity: 1; transform-origin: 50% 50%; transform: scale(1, 1); filter: blur(0px); }
}
#services { overflow: clip; }
.service-card.result-motion-enter {
  animation-name: vanishIn;
  animation-duration: 1s;
  animation-timing-function: ease;
}
.result-motion-wait:focus-within { opacity: 1; }
#license-viewer[open] { animation: resultFadeIn 220ms ease-out; }
#license-viewer[open]::backdrop { animation: resultFadeIn 220ms ease-out; }
#license-viewer[open].result-closing, #license-viewer[open].result-closing::backdrop { animation: resultFadeOut 180ms ease-in forwards; }
#mail-status.result-status-enter { animation: resultFadeIn 220ms ease-out; }
@media (prefers-reduced-motion: reduce) {
  .result-motion-wait { opacity: 1; }
  .result-motion-enter, .hero-copy > h1, .hero-description, .hero-actions,
  #license-viewer[open], #license-viewer[open]::backdrop, #mail-status.result-status-enter { animation: none !important; }
}

/* Magic Animations puffIn (Bling), MIT: MAGIC-ANIMATIONS-LICENSE.txt. */
@keyframes puffIn {
  0% { opacity: 0; transform-origin: 50% 50%; transform: scale(2, 2); filter: blur(2px); }
  100% { opacity: 1; transform-origin: 50% 50%; transform: scale(1, 1); filter: blur(0px); }
}
#partners { overflow: clip; }
.partner-card.result-partner-puff {
  animation: puffIn 1s ease backwards;
  animation-delay: var(--partner-delay, 0ms);
}
@media (prefers-reduced-motion: reduce) {
  .partner-card.result-partner-puff { animation: none !important; }
}

/* Header logo: about 11% larger, with repeated Magic vanishIn. */
.site-header .header-top .brand { width: 400px; }
.site-header .brand-live.result-logo-vanish { animation: vanishIn 1s ease backwards; }
@media (max-width: 700px) { .site-header .header-top .brand { width: 320px; } }
@media (prefers-reduced-motion: reduce) { .site-header .brand-live.result-logo-vanish { animation: none !important; } }
