/* Original modular marks inspired by kinetic graphic design. */
.ed-emblem { --emblem-size: 72px; display: block; flex: 0 0 calc(var(--emblem-size) * .85); width: calc(var(--emblem-size) * .85); height: calc(var(--emblem-size) * .85); color: var(--accent); }
.ed-emblem svg { display: block; width: 100%; height: 100%; overflow: visible; }
.ed-section-head > .ed-emblem { margin-left: 24px; }
.ed-role-row { display: flex; align-items: center; justify-content: space-between; gap: 20px; width: 100%; container-type: inline-size; }
.ed-role-row .ed-emblem { --emblem-size: 64px; }
.ed-role-row .ed-role { flex-shrink: 0; }
.ed-cta-arrow-motion { animation: ed-cta-arrow 3.6s cubic-bezier(.4,0,.2,1) infinite; animation-play-state: paused; }
.ed-pdf-cta .ed-cta-arrow-motion { animation-name: ed-download-arrow; }
html[data-motion=on]:not(.motion-page-hidden) .ed-contact-cta.is-visible .ed-cta-arrow-motion { animation-play-state: running; }
@keyframes ed-cta-arrow {
  0%, 18%, 58%, 100% { transform: translate(0, 0); }
  35% { transform: translate(3px, -3px); }
}
@keyframes ed-download-arrow {
  0%, 18%, 58%, 100% { transform: translateY(0); }
  35% { transform: translateY(2px); }
}
.ed-emblem .motion-part { transform-box: view-box; transform-origin: 48px 48px; }

/* Only text moves; panel borders, dimensions and reading order stay fixed. */
span.ed-text-reveal:not(.ed-score):not(.ed-client-result) { display: block; }
.ed-text-reveal { min-width: 0; }
html[data-motion=on] .ed-text-reveal[data-reveal-state=pending] {
  opacity: 0;
  transform: translateY(12px);
}
html[data-motion=on] .ed-text-reveal[data-reveal-state=entering] {
  animation: ed-text-in 620ms cubic-bezier(.2,.65,.25,1) var(--reveal-delay, 0ms) both;
}
html.motion-page-hidden .ed-text-reveal { animation-play-state: paused; }
@keyframes ed-text-in {
  from { opacity: 0; transform: translateY(12px); }
  to { opacity: 1; transform: translateY(0); }
}

/* Keep the final value in the document and reserve its width during the count. */
.ed-count-up { position: relative; font-variant-numeric: tabular-nums; white-space: nowrap; }
.ed-count-visual { display: none; position: absolute; inset: 0; text-align: right; pointer-events: none; }
.ed-count-visual::after { content: attr(data-count-text); }
.ed-count-up[data-count-state=running] .ed-count-final { opacity: 0; }
.ed-count-up[data-count-state=running] .ed-count-visual { display: block; }

/* Every loop has a resting phase. No flashes, bouncing text or moving layout. */
.mi-focus-frame { animation: mi-focus 5.8s cubic-bezier(.65,0,.35,1) infinite; }
.mi-focus-core { animation: mi-focus-core 5.8s cubic-bezier(.65,0,.35,1) infinite; }
.mi-cap-lift { animation: mi-cap-lift 5.6s ease-in-out infinite; }
.ed-emblem .mi-cap-tassel { transform-origin: 84px 38px; animation: mi-cap-tassel 5.6s ease-in-out infinite; }
.mi-clock-minute { animation: mi-clock 8s cubic-bezier(.65,0,.35,1) infinite; }
.mi-clock-hour { animation: mi-hour 96s linear infinite; }
.mi-star { animation: mi-star 6.2s cubic-bezier(.65,0,.35,1) infinite; }
.mi-tile-a { animation: mi-tile-a 5.6s cubic-bezier(.65,0,.35,1) infinite; }
.mi-tile-b { animation: mi-tile-b 5.6s cubic-bezier(.65,0,.35,1) infinite; }
.mi-tile-c { animation: mi-tile-c 5.6s cubic-bezier(.65,0,.35,1) infinite; }
.mi-tile-d { animation: mi-tile-d 5.6s cubic-bezier(.65,0,.35,1) infinite; }
.mi-orbit { animation: mi-orbit 7s cubic-bezier(.65,0,.35,1) infinite; }
.mi-orbit-core { animation: mi-orbit-core 7s cubic-bezier(.65,0,.35,1) infinite; }
.ed-emblem .mi-step { transform-origin: 48px 84px; animation: mi-step 5.2s cubic-bezier(.65,0,.35,1) infinite; }
.ed-emblem .mi-step-b { animation-delay: .15s; }
.ed-emblem .mi-step-c { animation-delay: .3s; }
.mi-growth-arrow { animation: mi-arrow 5.2s cubic-bezier(.65,0,.35,1) infinite; }
.mi-compass { animation: mi-compass 7.2s cubic-bezier(.65,0,.35,1) infinite; }
.mi-quote-left { animation: mi-quote 5.8s ease-in-out infinite; }
.mi-quote-right { animation: mi-quote 5.8s .2s ease-in-out infinite; }

.ed-emblem .motion-part { animation-play-state: paused; }
html[data-motion=on]:not(.motion-page-hidden) .ed-emblem.is-visible .motion-part { animation-play-state: running; }

@keyframes mi-focus { 0%,15%,85%,100% { transform: scale(1); } 40%,60% { transform: scale(.78); } }
@keyframes mi-focus-core { 0%,15% { transform: rotate(0) scale(1); } 40%,60% { transform: rotate(90deg) scale(.7); } 85%,100% { transform: rotate(180deg) scale(1); } }
@keyframes mi-cap-lift { 0%,15%,85%,100% { transform: translateY(0); } 38%,62% { transform: translateY(-4px); } }
@keyframes mi-cap-tassel { 0%,15%,85%,100% { transform: rotate(0); } 38% { transform: rotate(8deg); } 62% { transform: rotate(-6deg); } }
@keyframes mi-clock { 0%,8% { transform: rotate(0); } 24%,32% { transform: rotate(90deg); } 48%,56% { transform: rotate(180deg); } 72%,80% { transform: rotate(270deg); } 96%,100% { transform: rotate(360deg); } }
@keyframes mi-hour { from { transform: rotate(0); } to { transform: rotate(360deg); } }
@keyframes mi-star { 0%,15% { transform: rotate(0) scale(1); } 40%,60% { transform: rotate(45deg) scale(.78); } 85%,100% { transform: rotate(90deg) scale(1); } }
@keyframes mi-tile-a { 0%,15%,85%,100% { transform: translate(0,0); } 40%,60% { transform: translate(6px,6px); } }
@keyframes mi-tile-b { 0%,15%,85%,100% { transform: translate(0,0); } 40%,60% { transform: translate(-6px,6px); } }
@keyframes mi-tile-c { 0%,15%,85%,100% { transform: translate(0,0); } 40%,60% { transform: translate(6px,-6px); } }
@keyframes mi-tile-d { 0%,15%,85%,100% { transform: translate(0,0); } 40%,60% { transform: translate(-6px,-6px); } }
@keyframes mi-orbit { 0%,15% { transform: rotate(0) scale(1); } 40%,60% { transform: rotate(45deg) scale(.84); } 85%,100% { transform: rotate(90deg) scale(1); } }
@keyframes mi-orbit-core { 0%,15%,85%,100% { transform: scale(1); } 40%,60% { transform: scale(.65); } }
@keyframes mi-step { 0%,12%,85%,100% { transform: scaleY(1); } 38%,55% { transform: scaleY(.62); } }
@keyframes mi-arrow { 0%,12%,85%,100% { transform: translate(0,0); } 38%,55% { transform: translate(4px,-4px); } }
@keyframes mi-compass { 0%,15% { transform: rotate(0); } 38%,52% { transform: rotate(45deg); } 78%,100% { transform: rotate(90deg); } }
@keyframes mi-quote { 0%,15%,85%,100% { transform: translateY(0); } 40%,60% { transform: translateY(7px); } }

@media (max-width: 760px) {
  .ed-emblem { --emblem-size: 69.6px; }
  .ed-role-row { gap: 12px; }
  .ed-role-row { align-items: flex-start; }
  .ed-role-row .ed-emblem { --emblem-size: 52.8px; }
  .ed-section-head > .ed-emblem { margin-left: 16px; }
}
@media (max-width: 580px) {
  .ed-section-head { gap: 12px; justify-content: space-between; }
  .ed-section-label { min-width: 0; font-size: 16px; padding: 10px 12px; }
  .ed-section-head > .ed-heading-rule { display: none; }
  .ed-section-head > .ed-emblem { margin-left: 0; --emblem-size: 48px; }
  .ed-role-row .ed-role, .ed-role-row .ed-contact-cta { font-size: 11px; padding-inline: 9px; }
}
@media print {
  .ed-text-reveal { opacity: 1 !important; transform: none !important; animation: none !important; }
  .ed-count-up .ed-count-final { opacity: 1 !important; }
  .ed-count-up .ed-count-visual { display: none !important; }
  .ed-emblem .motion-part { animation: none !important; transform: none !important; }
  .ed-emblem, .ed-role-row .ed-emblem, .ed-section-head > .ed-emblem { --emblem-size: 36pt; }
}
