/* Shared, public-only motion. Final values/content remain the source of truth. */
.public-site { --motion-fast: 180ms; --motion-ease: cubic-bezier(.2,.7,.3,1); }
.public-site :is(.home-button,.course-button,.course-primary,.account-primary,.groups-primary,.groups-secondary,.pages-button,.excellence-button,.material-card,.course-catalog-card,.groups-card,.pages-card,.excellence-leader) { transition-duration: 220ms; transition-timing-function: var(--motion-ease); }
.public-site :is(.account-tabs,.groups-tabs,.auth-edit-tabs,.excellence-filters) :is(a,button) { transition: background-color var(--motion-fast),color var(--motion-fast),box-shadow var(--motion-fast); }
.public-site .custom-navbar { transition: box-shadow 240ms var(--motion-ease),background-color 240ms; }
/* Replace the existing perpetual auth drift with a quiet, one-time arrival. */
.public-site.account-studio .auth-orbit { animation: motion-icon-arrive 600ms var(--motion-ease) both; }
.public-site :is(.account-alert-success,.groups-alert-success,.alert-success):not(.learning-shell *) { animation: motion-feedback 260ms var(--motion-ease) both; }
@media (hover: hover) and (pointer: fine) {
    .public-site :is(.course-catalog-card,.material-card,.pages-card,.pages-section-card,.groups-card,.account-learning-card,.account-group-card,.excellence-leader) { transition: transform 220ms var(--motion-ease),box-shadow 220ms,border-color 220ms; }
    .public-site :is(.course-catalog-card,.material-card,.pages-card,.pages-section-card,.groups-card,.account-learning-card,.account-group-card,.excellence-leader):hover { transform: translateY(-3px); border-color: #1d909850; box-shadow: 0 9px 24px #163e4610; }
    .public-site :is(.material-card-image,.groups-card-image,.course-catalog-image,.pages-card-image) img { transition: transform 240ms var(--motion-ease); }
    .public-site :is(.material-card,.groups-card,.course-catalog-card,.pages-card):hover :is(.material-card-image,.groups-card-image,.course-catalog-image,.pages-card-image) img { transform: scale(1.025); }
    .public-site :is(a,button) :is(.fa-book-open,.fa-book,.fa-graduation-cap) { transition: transform 200ms var(--motion-ease); }
    .public-site :is(a,button):hover :is(.fa-book-open,.fa-book,.fa-graduation-cap) { transform: perspective(100px) rotateY(-12deg) rotate(-4deg); }
    .public-site :is(a,button):hover .fa-bell { animation: motion-bell 380ms ease-out 1; }
    .public-site :is(.excellence-leader,.account-medal-card):hover :is(.fa-trophy,.fa-medal,.fa-award,.fa-star) { animation: motion-medal 360ms var(--motion-ease) 1; }
    .public-site :is(a,button):hover :is(.fa-users,.fa-user-group,.fa-comments) { animation: motion-community 300ms var(--motion-ease) 1; }
    .public-site :is(a,button):hover :is(.fa-certificate,.fa-arrow-trend-up,.fa-ranking-star) { transform: translateY(-2px); }
    .public-site :is(a,button) :is(.fa-certificate,.fa-arrow-trend-up,.fa-ranking-star) { transition: transform 200ms var(--motion-ease); }
    .public-site :is(a,button) :is(.fa-arrow-left,.fa-arrow-right):not(.home-direction-arrow) { transition: translate 200ms var(--motion-ease); }
    .public-site :is(a,button):hover .fa-arrow-left:not(.home-direction-arrow) { translate: -3px 0; }
    .public-site :is(a,button):hover .fa-arrow-right:not(.home-direction-arrow) { translate: 3px 0; }
    .public-site :is(.home-button,.course-button,.course-primary,.account-primary,.groups-primary,.groups-secondary,.pages-button,.excellence-button):hover { translate: 0 -1px; filter: brightness(1.025); }
    .public-site .excellence-leader.is-leading { position: relative; overflow: hidden; }
    .public-site .excellence-leader.is-leading::after { content: ''; position: absolute; inset: 0; pointer-events: none; opacity: 0; background: linear-gradient(110deg,transparent 30%,#fff8 50%,transparent 70%); transform: translateX(-110%); }
    .public-site .excellence-leader.is-leading:hover::after { animation: motion-shine 550ms var(--motion-ease) 1; }
    .public-site .custom-navbar .nav-link { text-underline-offset: 6px; }
    .public-site .custom-navbar .nav-link:hover { text-decoration: underline; text-decoration-color: #1d909860; }
    .public-site :is(.groups-avatar-stack,.groups-avatars) img { transition: translate 200ms; }
    .public-site :is(.groups-avatar-stack,.groups-avatars):hover img:nth-child(2) { translate: 0 -3px; }
}
.public-site :is(.home-button,.course-button,.course-primary,.account-primary,.groups-primary,.groups-secondary,.pages-button,.excellence-button):active:not(:disabled) { translate: 0 1px; }
@keyframes motion-shine { 15% { opacity: .6; } to { opacity: 0; transform: translateX(110%); } }
@keyframes motion-icon-arrive { from { opacity: 0; transform: translateY(6px) scale(.97); } to { opacity: 1; transform: none; } }
@keyframes motion-feedback { from { opacity: .3; translate: 0 4px; } to { opacity: 1; translate: 0 0; } }
@keyframes motion-bell { 25% { transform: rotate(9deg); } 60% { transform: rotate(-6deg); } to { transform: rotate(0); } }
@keyframes motion-medal { 45% { transform: scale(1.08) translateY(-1px); filter: brightness(1.15); } to { transform: none; filter: none; } }
@keyframes motion-community { 45% { transform: translateY(-2px) scale(1.04); } to { transform: none; } }
@media (max-width: 575px) {
    .public-site.account-studio .auth-orbit { animation: none; }
}
@media (prefers-reduced-motion: reduce) {
    .public-site, .public-site *, .public-site *::before, .public-site *::after { animation: none !important; transition: none !important; scroll-behavior: auto !important; }
}

/* A short underline supplements the existing selected pill, including keyboard use. */
.public-site :is(.account-tabs,.groups-tabs,.auth-edit-tabs,.excellence-filters) :is(a,button) { position: relative; }
.public-site :is(.account-tabs,.groups-tabs,.auth-edit-tabs,.excellence-filters) :is(a,button)::after { content: ''; position: absolute; inset-inline: 14px; bottom: 2px; height: 2px; background: #1d9098; border-radius: 2px; transform: scaleX(0); transition: transform var(--motion-fast) var(--motion-ease); pointer-events: none; }
.public-site :is(.account-tabs,.groups-tabs,.auth-edit-tabs,.excellence-filters) :is([aria-selected="true"],.is-active,[aria-current="page"])::after { transform: scaleX(1); }
@media (prefers-reduced-motion: reduce) {
 .public-site :is(.account-tabs,.groups-tabs,.auth-edit-tabs,.excellence-filters) :is(a,button)::after { transition: none; }
}

/* Fixed dimensions reserve space before runtime/JSON loads; fallbacks are never empty. */
.public-site .site-lottie-icon { --lottie-size: 36px; display: inline-flex; position: relative; width: var(--lottie-size); height: var(--lottie-size); min-width: var(--lottie-size); flex: 0 0 var(--lottie-size); align-items: center; justify-content: center; vertical-align: middle; line-height: 1; animation: none !important; }
.public-site .site-lottie-icon--metric { --lottie-size: 56px; }
.public-site .site-lottie-icon--important { --lottie-size: 64px; }
.public-site .site-lottie-icon--section { --lottie-size: 68px; }
.public-site .site-lottie-fallback { position: absolute; inset: 0; display: grid; place-items: center; font-size: calc(var(--lottie-size) * .55); margin: 0; animation: none !important; transform: none !important; transition: none !important; }
.public-site .site-lottie-canvas { position: absolute; inset: 0; opacity: 0; pointer-events: none; }
.public-site .site-lottie-canvas svg { width: 100% !important; height: 100% !important; display: block; }
.public-site .is-lottie-ready .site-lottie-fallback { opacity: 0; }
.public-site .is-lottie-ready .site-lottie-canvas { opacity: 1; }
.public-site .home-impact-heading:has(.site-lottie-icon) { display: flex; align-items: center; justify-content: center; gap: 10px; }
@media (max-width: 1023px) {
 .public-site .site-lottie-icon { --lottie-size: 34px; }
 .public-site .site-lottie-icon--metric { --lottie-size: 52px; }
 .public-site .site-lottie-icon--important { --lottie-size: 56px; }
 .public-site .site-lottie-icon--section { --lottie-size: 58px; }
}
@media (max-width: 575px) {
 .public-site .site-lottie-icon { --lottie-size: 32px; }
 .public-site .site-lottie-icon--metric { --lottie-size: 46px; }
 .public-site .site-lottie-icon--important { --lottie-size: 48px; }
 .public-site .site-lottie-icon--section { --lottie-size: 50px; }
}

.public-site .account-section-heading:has(> .site-lottie-icon) { justify-content: flex-start; gap: 10px; }

.public-site .site-lottie-fallback::before { display: grid; place-items: center; width: 100%; height: 100%; }

/* Heading icons share the title line without changing the surrounding grid. */
.public-site .groups-title { display: flex; align-items: center; gap: 8px; }
.public-site.excellence-page .excellence-intro #excellence-title { gap: 6px; }
