#eh-go-top,
.eh-go-top {
  position: fixed;
  right: 28px;
  bottom: 28px;
  width: 78px;
  height: 78px;
  background: transparent;
  border: 0;
  padding: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  z-index: 9999;
  outline: none;
  opacity: 1;
  transform: translate3d(0, 0, 0) scale(1);
  pointer-events: auto;
  filter: drop-shadow(0 10px 18px rgba(0,0,0,0.3));
}
.eh-go-top.show {
  opacity: 1;
  transform: translate3d(0, 0, 0) scale(1);
  pointer-events: auto;
  transition: opacity 220ms ease, transform 220ms ease;
}
.eh-go-top.hide {
  opacity: 0;
  transform: translate3d(0, 10px, 0) scale(0.98);
  pointer-events: none;
  transition: opacity 220ms ease, transform 220ms ease;
}
.eh-go-top:focus-visible {
  box-shadow: 0 0 0 3px rgba(32, 120, 244, 0.7);
  border-radius: 16px;
}
.eh-circle {
  display: none;
  position: absolute;
  width: 78px;
  height: 78px;
  border-radius: 50%;
  background: radial-gradient(60px 60px at 50% 50%, #0b2d3a 0%, #0f3f53 45%, #0a3b66 70%, #08465f 100%);
  box-shadow: inset 0 0 0 3px rgba(255,255,255,0.85), inset 0 0 22px rgba(255,255,255,0.4);
  animation: eh-nature-pulse 2.6s ease-in-out infinite;
}
.eh-chevron {
  position: absolute;
  width: 20px;
  height: 20px;
  border-top: 4px solid #ffffff;
  border-left: 4px solid #ffffff;
  transform: rotate(45deg) translateY(-2px);
  filter: drop-shadow(0 2px 3px rgba(0,0,0,0.35));
  bottom: 0px;
}
.eh-leaf {
  position: absolute;
  width: 44px;
  height: 44px;
  transform-origin: center;
  animation: eh-leaf-sway 2.8s ease-in-out infinite;
}
.eh-leaf-shape {
  position: absolute;
  left: 7px;
  top: 4px;
  width: 30px;
  height: 32px;
  background: radial-gradient(18px 18px at 40% 50%, #c5f3d6 0%, #78d498 60%, #38b66a 100%);
  clip-path: polygon(50% 0%, 85% 18%, 100% 45%, 85% 78%, 50% 100%, 20% 82%, 0% 50%, 16% 20%);
  box-shadow: inset 0 -4px 8px rgba(0,0,0,0.08), 0 4px 10px rgba(0,0,0,0.12);
}
.eh-stem {
  position: absolute;
  left: 20px;
  bottom: 0;
  width: 4px;
  height: 18px;
  background: linear-gradient(180deg, #3e8e57, #1c6c3b);
  border-radius: 3px;
  transform: rotate(8deg);
  box-shadow: 0 2px 6px rgba(0,0,0,0.18);
}
.eh-spark {
  position: absolute;
  width: 8px;
  height: 8px;
  background: radial-gradient(circle, rgba(255,255,255,0.95) 0%, rgba(255,255,255,0.3) 60%, rgba(255,255,255,0) 100%);
  border-radius: 50%;
  left: 35px;
  bottom: -6px;
  opacity: 0.9;
  animation: eh-spark-rise 2s linear infinite;
}
.eh-s1 { left: 16px; animation-delay: 0s }
.eh-s2 { left: 28px; animation-delay: 0.25s }
.eh-s3 { left: 40px; animation-delay: 0.5s }
.eh-go-top:hover .eh-leaf,
.eh-go-top:focus .eh-leaf {
  animation-duration: 1.7s;
  transform: translateY(-2px) scale(1.04);
}
@keyframes eh-nature-pulse {
  0%, 100% { transform: scale(1); box-shadow: inset 0 0 0 3px rgba(255,255,255,0.7), inset 0 0 22px rgba(255,255,255,0.5) }
  50%      { transform: scale(1.04); box-shadow: inset 0 0 0 3px rgba(255,255,255,0.9), inset 0 0 28px rgba(255,255,255,0.7) }
}
@keyframes eh-leaf-sway {
  0%,100% { transform: translateY(0) }
  25%     { transform: translateY(-2px) rotate(-2deg) }
  50%     { transform: translateY(-3px) rotate(0deg) }
  75%     { transform: translateY(-2px) rotate(2deg) }
}
@keyframes eh-spark-rise {
  0%   { transform: translateY(10px) scale(0.8); opacity: 0.8 }
  80%  { opacity: 0.2 }
  100% { transform: translateY(-18px) scale(1.1); opacity: 0 }
}
@media (prefers-reduced-motion: reduce) {
  .eh-go-top { transition: none }
  .eh-circle, .eh-leaf, .eh-spark { animation: none }
}

.eh-stars { position: absolute; width: 78px; height: 78px; }
.eh-star { position: absolute; display: block; filter: drop-shadow(0 2px 4px rgba(0,0,0,0.25)); background: radial-gradient(circle at 50% 50%, #fff59d 0%, #ffe066 45%, #ffc107 70%, #ffb300 100%); clip-path: polygon(50% 0%, 61% 35%, 98% 35%, 68% 57%, 79% 91%, 50% 70%, 21% 91%, 32% 57%, 2% 35%, 39% 35%); animation: eh-star-blink 1.4s ease-in-out infinite; }
.eh-star.eh-big { width: 28px; height: 28px; left: 25px; top: 18px; animation-delay: 0s; }
.eh-star.eh-mid { width: 20px; height: 20px; left: 10px; top: 30px; animation-delay: 0.22s; }
.eh-star.eh-small { width: 14px; height: 14px; left: 48px; top: 32px; animation-delay: 0.44s; }
.eh-flame { position: absolute; left: 33px; bottom: -8px; width: 12px; height: 18px; background: radial-gradient(8px 10px at 50% 30%, #fff4a3 0%, #ffd84d 40%, #ff9f24 75%, #ff6a00 100%); clip-path: polygon(50% 0%, 100% 35%, 80% 100%, 50% 80%, 20% 100%, 0% 35%); opacity: 0; filter: blur(0.3px) drop-shadow(0 2px 6px rgba(255,106,0,0.5)); }
.eh-trail { position: absolute; width: 6px; height: 6px; background: radial-gradient(circle, rgba(255,255,255,0.95) 0%, rgba(255,255,255,0.3) 60%, rgba(255,255,255,0) 100%); border-radius: 50%; left: 36px; bottom: -14px; opacity: 0.9; }
.eh-t1 { transform: translate(-12px, 10px) scale(0.9); animation: eh-trail-rise 1.6s linear infinite; }
.eh-t2 { transform: translate(0, 16px) scale(0.8); animation: eh-trail-rise 1.6s linear infinite; animation-delay: 0.12s; }
.eh-t3 { transform: translate(12px, 22px) scale(0.7); animation: eh-trail-rise 1.6s linear infinite; animation-delay: 0.24s; }
.eh-go-top.launch .eh-flame { opacity: 1; animation: eh-flame-flicker 320ms linear infinite; }
.eh-go-top.launch .eh-stars { animation: eh-stars-launch 520ms ease-out forwards; }
.eh-go-top:hover .eh-star, .eh-go-top:focus .eh-star { filter: drop-shadow(0 3px 6px rgba(0,0,0,0.35)); transform: scale(1.05); }
@keyframes eh-star-blink { 0% { opacity: 0.35; transform: scale(0.95) } 50% { opacity: 1; transform: scale(1) } 100% { opacity: 0.35; transform: scale(0.95) } }
@keyframes eh-trail-rise { 0% { transform: translateY(0) scale(1); opacity: 0.9 } 80% { opacity: 0.2 } 100% { transform: translateY(22px) scale(1.2); opacity: 0 } }
@keyframes eh-flame-flicker { 0% { transform: translateY(0) scale(1); opacity: 1 } 50% { transform: translateY(1px) scale(0.95); opacity: 0.85 } 100% { transform: translateY(0) scale(1.05); opacity: 1 } }
@keyframes eh-stars-launch { 0% { transform: translateY(0) } 100% { transform: translateY(-8px) } }
