.nr-mascot {
  --mascot-size: 180px;
  display: inline-block;
  flex: 0 0 auto;
  width: var(--mascot-size);
  height: var(--mascot-size);
  vertical-align: middle;
  line-height: 0;
  isolation: isolate;
  pointer-events: none;
  contain: layout paint;
  content-visibility: auto;
  contain-intrinsic-size: var(--mascot-size) var(--mascot-size);
}
.nr-mascot > svg { display: block; width: 100%; height: 100%; overflow: visible; }
.nr-mascot__body {
  transform-box: view-box;
  transform-origin: 46% 86%;
  animation: nephro-buddy-bob 3.8s ease-in-out 5;
}
.nr-mascot__shadow {
  transform-box: fill-box;
  transform-origin: center;
  animation: nephro-buddy-shadow 3.8s ease-in-out 5;
}
.nr-mascot__arms > path:not(.nr-mascot__hand) {
  fill: none;
  stroke: #245457;
  stroke-width: 11;
  stroke-linecap: round;
}
.nr-mascot__arms > .nr-mascot__arm-fill {
  stroke: #79dfb9 !important;
  stroke-width: 6 !important;
}
.nr-mascot__hand { fill: #89e7bb; stroke: #245457; stroke-width: 3.5; stroke-linejoin: round; }
.nr-mascot__wave {
  transform-box: view-box;
  transform-origin: 68.3% 42.5%;
  animation: nephro-buddy-wave 1.3s ease-in-out 4;
}
.nr-mascot__eyes {
  transform-box: fill-box;
  transform-origin: center;
  animation: nephro-buddy-blink 5.4s linear 4;
}
.nr-mascot__badge {
  transform-box: fill-box;
  transform-origin: center;
  animation: nephro-buddy-pulse 3.8s ease-in-out 4;
}
.nr-mascot__sparkles { opacity: 0; }
.nr-mascot--happy .nr-mascot__sparkles { opacity: 1; }
.nr-mascot--happy .nr-mascot__body { animation: nephro-buddy-celebrate .9s ease-in-out 3; }
.nr-mascot--happy .nr-mascot__shadow { animation: nephro-buddy-happy-shadow .9s ease-in-out 3; }
.nr-mascot--happy .nr-mascot__eyes { animation: none; }
.nr-mascot--happy .nr-mascot__wave { animation: nephro-buddy-wave .8s ease-in-out 3; }
.nr-mascot--happy .nr-mascot__arm-left {
  transform-box: view-box;
  transform-origin: 25.4% 50%;
  animation: nephro-buddy-left-cheer .8s ease-in-out 3;
}
.nr-mascot__spark { transform-box: fill-box; transform-origin: center; }
.nr-mascot--happy .nr-mascot__spark { animation: nephro-buddy-spark 1.15s ease-out 3; }
.nr-mascot--happy .nr-mascot__spark--two { animation-delay: .16s; }
.nr-mascot--happy .nr-mascot__spark--three { animation-delay: .32s; }
.nr-mascot--thinking .nr-mascot__wave { animation: none; }
.nr-mascot--thinking .nr-mascot__body { animation: nephro-buddy-think 4.2s ease-in-out 3; }
.nr-mascot--brand { --mascot-size: 46px; margin: -5px -5px -5px -4px; }
.nr-mascot--brand .nr-mascot__body { animation-duration: 4.5s; animation-iteration-count: 2; }
.nr-mascot--brand .nr-mascot__badge, .nr-mascot--brand .nr-mascot__shadow, .nr-mascot--brand .nr-mascot__sparkles { display: none; }
.nr-mascot--brand .nr-mascot__wave { animation-iteration-count: 2; }
.nr-mascot--hero { --mascot-size: clamp(190px, 21vw, 265px); }
.nr-mascot--path { --mascot-size: 146px; }
.nr-mascot--inline { --mascot-size: 78px; }
@keyframes nephro-buddy-bob {
  0%, 100% { transform: translateY(0) rotate(-1deg); }
  50% { transform: translateY(-5px) rotate(1deg); }
}
@keyframes nephro-buddy-shadow {
  0%, 100% { transform: scaleX(1); opacity: .32; }
  50% { transform: scaleX(.89); opacity: .21; }
}
@keyframes nephro-buddy-wave {
  0%, 100% { transform: rotate(0); }
  25%, 75% { transform: rotate(10deg); }
  50% { transform: rotate(-9deg); }
}
@keyframes nephro-buddy-blink {
  0%, 44%, 48%, 100% { transform: scaleY(1); }
  46% { transform: scaleY(.08); }
}
@keyframes nephro-buddy-pulse {
  0%, 72%, 100% { transform: scale(1); }
  81% { transform: scale(1.13); }
  90% { transform: scale(1); }
}
@keyframes nephro-buddy-celebrate {
  0%, 100% { transform: translateY(0) rotate(0); }
  28% { transform: translateY(-12px) rotate(-4deg); }
  55% { transform: translateY(-5px) rotate(4deg); }
  78% { transform: translateY(1px) scaleY(.97); }
}
@keyframes nephro-buddy-happy-shadow {
  0%, 100% { transform: scaleX(1); opacity: .32; }
  35% { transform: scaleX(.75); opacity: .15; }
}
@keyframes nephro-buddy-left-cheer {
  0%, 100% { transform: rotate(0); }
  50% { transform: rotate(-10deg); }
}
@keyframes nephro-buddy-spark {
  0%, 100% { opacity: .5; transform: translateY(0) scale(.8); }
  35% { opacity: 1; transform: translateY(-8px) scale(1.12); }
  80% { opacity: .75; transform: translateY(0) scale(1); }
}
@keyframes nephro-buddy-think {
  0%, 100% { transform: rotate(-2deg); }
  50% { transform: rotate(2deg) translateY(-3px); }
}
@media (max-width: 760px) {
  .nr-mascot--hero { --mascot-size: 165px; }
  .nr-mascot--path { --mascot-size: 118px; }
  .nr-mascot--brand { --mascot-size: 43px; }
}
@media (prefers-reduced-motion: reduce) {
  .nr-mascot *, .nr-mascot *::before, .nr-mascot *::after { animation: none !important; transition: none !important; }
}
