/* motion.css
   Keyframes, transitions and the reduced-motion fallbacks. */

@keyframes pageFade {
  from {
    opacity: 0;
    transform: translateY(6px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

@keyframes scrollArrowPulse {
  0%,
  100% {
    opacity: 0.35;
    transform: translateY(0);
  }
  50% {
    opacity: 0.9;
    transform: translateY(5px);
  }
}

@keyframes spTicker {
  0% {
    transform: translateX(0);
  }
  100% {
    transform: translateX(-50%);
  }
}

.page-home .aud-ticker:hover .aud-ticker-track,
.page-home .aud-ticker:focus-within .aud-ticker-track {
  animation-play-state: paused;
}

@keyframes aud-ticker-scroll {
  from {
    transform: translate3d(0, 0, 0);
  }
  to {
    transform: translate3d(-50%, 0, 0);
  }
}

@keyframes sfAzuriteDotPulse {
  0%,
  100% {
    box-shadow:
      0 0 12px rgba(120, 205, 255, 0.7),
      0 0 24px rgba(120, 205, 255, 0.3);
  }
  50% {
    box-shadow:
      0 0 24px rgba(120, 205, 255, 1),
      0 0 48px rgba(120, 205, 255, 0.55);
  }
}

.page-home .ind-detail-fade {
  animation: indFade 0.35s ease-out;
}

@keyframes indFade {
  from {
    opacity: 0;
    transform: translateY(4px);
  }
  to {
    opacity: 1;
    transform: none;
  }
}

.page-home .spotlight-track--right {
  animation: tickerRight 36s linear infinite;
}

.page-home .spotlight-row:nth-child(3) .spotlight-track {
  animation-duration: 50s;
}

.page-home .spotlight-grid.is-paused .spotlight-track {
  animation-play-state: paused;
}

@keyframes tickerLeft {
  from {
    transform: translate3d(0, 0, 0);
  }
  to {
    transform: translate3d(-50%, 0, 0);
  }
}

@keyframes tickerRight {
  from {
    transform: translate3d(-50%, 0, 0);
  }
  to {
    transform: translate3d(0, 0, 0);
  }
}

@keyframes flashStrike {
  0% {
    filter: blur(2px) brightness(1);
  }
  20% {
    filter: blur(1px) brightness(1.4);
  }
  50% {
    filter: blur(2px) brightness(1.1);
  }
  100% {
    filter: blur(2px) brightness(1);
  }
}

.page-home .flashlight.is-striking {
  animation: flashStrike 0.55s ease-out;
}

@keyframes scrollPulse {
  0%,
  100% {
    opacity: 0.3;
    transform: scaleY(1);
  }
  50% {
    opacity: 0.8;
    transform: scaleY(1.3);
  }
}

.page-service .reveal-d1 {
  transition-delay: 0.08s;
}

.page-service .reveal-d2 {
  transition-delay: 0.16s;
}

.page-service .reveal-d3 {
  transition-delay: 0.24s;
}

.page-service .svc-hero-bg-focal {
  animation: svcPulse 4.5s ease-in-out infinite;
}

.page-100-day-planning .reveal-d1 {
  transition-delay: 0.08s;
}

.page-100-day-planning .reveal-d2 {
  transition-delay: 0.16s;
}

.page-100-day-planning .reveal-d3 {
  transition-delay: 0.24s;
}

.page-100-day-planning .svc-hero-bg-focal {
  animation: svcPulse 4.5s ease-in-out infinite;
}

@keyframes svcDrift {
  0%,
  100% {
    transform: translate(0, 0);
  }
  50% {
    transform: translate(-12px, 6px);
  }
}

@keyframes svcPulse {
  0%,
  100% {
    opacity: 0.9;
  }
  50% {
    opacity: 0.45;
  }
}

.page-enterprise .reveal-d1 {
  transition-delay: 0.1s;
}

.page-enterprise .reveal-d2 {
  transition-delay: 0.2s;
}

.page-enterprise .reveal-d3 {
  transition-delay: 0.3s;
}

.aperture-row .ap-cell {
  transition:
    transform 0.4s cubic-bezier(0.2, 0.85, 0.3, 1),
    box-shadow 0.4s,
    filter 0.4s;
}

.page-private-equity .reveal-d1 {
  transition-delay: 0.1s;
}

.page-private-equity .reveal-d2 {
  transition-delay: 0.2s;
}

.page-private-equity .reveal-d3 {
  transition-delay: 0.3s;
}

.page-our-work .reveal-d1 {
  transition-delay: 0.1s;
}

.page-our-work .reveal-d2 {
  transition-delay: 0.2s;
}

.page-our-work .reveal-d3 {
  transition-delay: 0.3s;
}

@keyframes fadeUp {
  from {
    opacity: 0;
    transform: translateY(26px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

@keyframes fadeIn {
  from {
    opacity: 0;
  }
  to {
    opacity: 1;
  }
}

@keyframes heroPulse {
  0%,
  100% {
    opacity: 0.35;
  }
  50% {
    opacity: 0.7;
  }
}

@keyframes heroDrift {
  0% {
    transform: translate(0, 0);
  }
  50% {
    transform: translate(-6px, -10px);
  }
  100% {
    transform: translate(0, 0);
  }
}

.page-origin-story .reveal-d1 {
  transition-delay: 0.08s;
}

.page-origin-story .reveal-d2 {
  transition-delay: 0.18s;
}

.page-origin-story .reveal-d3 {
  transition-delay: 0.28s;
}

.page-origin-story .os-hero-noise .noise-dot.flicker {
  animation: noiseFlicker 9s linear infinite;
}

@keyframes noiseTwinkle {
  0%,
  100% {
    opacity: 1;
  }
  50% {
    opacity: 0.4;
  }
}

@keyframes noiseFlicker {
  0%,
  68% {
    opacity: 1;
  }
  69% {
    opacity: 0.15;
  }
  70% {
    opacity: 1;
  }
  73% {
    opacity: 0.25;
  }
  74% {
    opacity: 1;
  }
  76% {
    opacity: 0.2;
  }
  77% {
    opacity: 1;
  }
  100% {
    opacity: 1;
  }
}

@keyframes signalDraw {
  to {
    stroke-dashoffset: 0;
  }
}

@keyframes endHaloIn {
  0% {
    opacity: 0;
    transform: scale(0.3);
  }
  100% {
    opacity: 0.7;
    transform: scale(1);
  }
}

@keyframes endRingIn {
  0% {
    opacity: 0;
    transform: scale(0.3);
  }
  100% {
    opacity: 0.7;
    transform: scale(1);
  }
}

@keyframes endCoreIn {
  0% {
    opacity: 0;
    transform: scale(0.3);
  }
  100% {
    opacity: 1;
    transform: scale(1);
  }
}

@keyframes endHaloPulse {
  0%,
  100% {
    transform: scale(1);
    opacity: 0.65;
  }
  50% {
    transform: scale(1.5);
    opacity: 0.25;
  }
}

@keyframes endRingPulse {
  0%,
  100% {
    transform: scale(1);
    opacity: 0.7;
  }
  50% {
    transform: scale(1.35);
    opacity: 0;
  }
}

@keyframes endCorePulse {
  0%,
  100% {
    transform: scale(1);
  }
  50% {
    transform: scale(1.25);
  }
}

@keyframes osScrollPulse {
  0%,
  100% {
    opacity: 0.3;
    transform: scaleY(1);
  }
  50% {
    opacity: 0.85;
    transform: scaleY(1.35);
  }
}

@keyframes osFadeUp {
  from {
    opacity: 0;
    transform: translateY(18px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

@keyframes osFloat {
  0%,
  100% {
    transform: translateY(0);
  }
  50% {
    transform: translateY(-6px);
  }
}

.page-our-process .reveal-d1 {
  transition-delay: 0.08s;
}

.page-our-process .reveal-d2 {
  transition-delay: 0.18s;
}

.page-our-process .reveal-d3 {
  transition-delay: 0.28s;
}

@keyframes procFade {
  from {
    opacity: 0;
    transform: translateY(18px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

.page-our-process .ex2-dot.ring-a {
  transition-delay: 0.2s;
}

.page-our-process .ex2-dot.ring-b {
  transition-delay: 0.5s;
}

.page-our-process .ex2-dot.ring-c {
  transition-delay: 0.8s;
}

.page-our-process .ex2-dot.ring-d {
  transition-delay: 1.1s;
}

.page-case-study .reveal-d1 {
  transition-delay: 0.1s;
}

.page-case-study .reveal-d2 {
  transition-delay: 0.2s;
}

@keyframes navMobileIn {
  from {
    opacity: 0;
    transform: translateY(-8px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

.site-footer-cta svg {
  transition: transform 0.25s;
}

.page-enterprise .azc-q-card > span:first-child {
  transition:
    width 0.35s cubic-bezier(0.2, 0.85, 0.3, 1),
    background 0.35s;
}

.page-enterprise .azc-q-card h3 {
  transition: color 0.35s;
}

.page-private-equity .azc-q-card > span:first-child {
  transition:
    width 0.35s cubic-bezier(0.2, 0.85, 0.3, 1),
    background 0.35s;
}

.page-private-equity .azc-q-card h3 {
  transition: color 0.35s;
}

/* Mobile */

@media (prefers-reduced-motion: reduce) {
  .page {
    animation: none !important;
  }
}

@media (prefers-reduced-motion: reduce) {
  .page-home .aud-ticker-track {
    animation: none;
  }
  .page-home .aud-ticker {
    -webkit-mask-image: none;
    mask-image: none;
    overflow-x: auto;
  }
}

@media (prefers-reduced-motion: reduce) {
  .page-home .spotlight-track,
  .page-home .spotlight-track--right {
    animation: none;
    transform: translate3d(0, 0, 0);
  }
}

@media (prefers-reduced-motion: reduce) {
  .page-home .hero-eyebrow,
  .page-home .hero h1,
  .page-home .hero-tagline,
  .page-home .hero-body,
  .page-home .hero-actions,
  .page-home .scroll-hint,
  .page-home .reveal {
    animation: none !important;
    opacity: 1 !important;
    transform: none !important;
    transition: none !important;
  }
  .page-home .sp-ticker {
    animation: none !important;
  }
}

@media (prefers-reduced-motion: reduce) {
  .page-service .reveal {
    opacity: 1 !important;
    transform: none !important;
    transition: none !important;
  }
  .page-service .svc-hero-bg-drift,
  .page-service .svc-hero-bg-focal {
    animation: none !important;
  }
}

@media (prefers-reduced-motion: reduce) {
  .page-100-day-planning .reveal {
    opacity: 1 !important;
    transform: none !important;
    transition: none !important;
  }
  .page-100-day-planning .svc-hero-bg-drift,
  .page-100-day-planning .svc-hero-bg-focal {
    animation: none !important;
  }
}

@media (prefers-reduced-motion: reduce) {
  .page-enterprise .hero-eyebrow,
  .page-enterprise .hero h1,
  .page-enterprise .hero-tagline,
  .page-enterprise .hero-body,
  .page-enterprise .hero-actions,
  .page-enterprise .reveal {
    animation: none !important;
    opacity: 1 !important;
    transform: none !important;
    transition: none !important;
  }
  .page-enterprise .hero-bg svg * {
    animation: none !important;
  }
}

@media (prefers-reduced-motion: reduce) {
  .page-private-equity .lc-phase {
    opacity: 1 !important;
    transform: none !important;
    transition: none !important;
  }
}

@media (prefers-reduced-motion: reduce) {
  .page-private-equity .hero-eyebrow,
  .page-private-equity .hero h1,
  .page-private-equity .hero-tagline,
  .page-private-equity .hero-body,
  .page-private-equity .hero-actions,
  .page-private-equity .reveal {
    animation: none !important;
    opacity: 1 !important;
    transform: none !important;
    transition: none !important;
  }
  .page-private-equity .hero-bg svg * {
    animation: none !important;
  }
}

@media (prefers-reduced-motion: reduce) {
  .page-our-work .hero-eyebrow,
  .page-our-work .hero h1,
  .page-our-work .hero-tagline,
  .page-our-work .hero-body,
  .page-our-work .hero-actions,
  .page-our-work .reveal {
    animation: none !important;
    opacity: 1 !important;
    transform: none !important;
    transition: none !important;
  }
  .page-our-work .hero-bg svg * {
    animation: none !important;
  }
}

@media (prefers-reduced-motion: reduce) {
  .page-articles .reveal {
    opacity: 1 !important;
    transform: none !important;
    transition: none !important;
  }
}

@media (prefers-reduced-motion: reduce) {
  .page-origin-story .os-hero-noise .noise-dot,
  .page-origin-story .os-hero-noise .noise-dot.flicker,
  .page-origin-story .signal-wake,
  .page-origin-story .signal-line,
  .page-origin-story .signal-end-halo,
  .page-origin-story .signal-end-ring,
  .page-origin-story .signal-end-core,
  .page-origin-story .os-question-mark,
  .page-origin-story .os-scroll-line,
  .page-origin-story .os-hero-rotate {
    animation: none !important;
  }
  .page-origin-story .signal-line,
  .page-origin-story .signal-wake {
    stroke-dashoffset: 0 !important;
  }
  .page-origin-story .signal-end-halo,
  .page-origin-story .signal-end-ring,
  .page-origin-story .signal-end-core {
    opacity: 1 !important;
    transform: none !important;
  }
  .page-origin-story .reveal,
  .page-origin-story .os-eyebrow,
  .page-origin-story .os-hero h1,
  .page-origin-story .os-hero-sub,
  .page-origin-story .os-hero-meta,
  .page-origin-story .os-scroll-hint {
    opacity: 1 !important;
    transform: none !important;
    transition: none !important;
    animation: none !important;
  }
  .page-origin-story .os-shifts-grid::before,
  .page-origin-story .os-shifts-grid::after,
  .page-origin-story .os-shift-num,
  .page-origin-story .os-shift-tag,
  .page-origin-story .os-shift-glyph svg path,
  .page-origin-story .os-shift-glyph svg circle,
  .page-origin-story .os-shift-glyph svg [data-fill],
  .page-origin-story .os-chapter-rule,
  .page-origin-story .os-question-rule,
  .page-origin-story .os-question-dot,
  .page-origin-story .os-client,
  .page-origin-story .os-kicker::before,
  .page-origin-story .os-kicker::after {
    transition: none !important;
    transform: none !important;
    opacity: 1 !important;
    stroke-dashoffset: 0 !important;
  }
}

@media (prefers-reduced-motion: reduce) {
  .page-our-process .proc-eyebrow,
  .page-our-process .proc-hero h1,
  .page-our-process .proc-hero-sub,
  .page-our-process .proc-rotate,
  .page-our-process .reveal {
    animation: none !important;
    opacity: 1 !important;
    transform: none !important;
    transition: none !important;
  }
}
