:root {
  --button-height-px: 27px;
  --button-vertical-padding-px: 5px;
  --button-content-spacing-px: calc(
    var(--button-height-px) + var(--button-vertical-padding-px) * 2
  );
  --slide-step-1: calc(var(--button-height-px) * -1);
  --slide-step-2: calc(var(--button-height-px) * -2);
}

body {
  background: #e8e5e2;
  font-family: Arial, sans-serif;
  display: flex;
  justify-content: center;
  padding: 0;
  margin: 0;
  height: 100vh;
}

.wrapper {
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  padding: 33px;
}

.button {
  display: flex;
  justify-content: center;
  align-items: start;
  flex-wrap: nowrap;
  height: var(--button-height-px);
  padding: var(--button-vertical-padding-px) 10px;
  border: none;
  border-radius: 8px;
  background-color: #f3f6f9;
  color: #1155bd;
  font-size: 14.5px; 
  font-weight: 500; 
  cursor: pointer;
  overflow: hidden;
  position: relative;
  transition: all 0.25s ease;  
  box-shadow: 0 4px 8px rgba(0,0,0,0.05);
}

.button:hover {
  background-color: #e4ebf2;
  box-shadow: 0 4px 8px rgba(0,0,0,0.05);
}

.button:focus {
  outline: none;
}

.button:focus-visible {
  outline: none;
}

.button:active {
  transform: translateY(1px);
}

.copy {
  display: flex;
  align-items: center;
}

.icon {
  margin-right: 8px;
}

.copied {
  visibility: hidden;
  opacity: 0;
  margin-top: var(--button-content-spacing-px);
  transition: opacity 0.4s ease;
}

.button.animate {
  background-color: #10428f;
  color: #ffffff;
  box-shadow: 0 0 15px rgba(16, 66, 143, 0.6);
}

.animate .content {
  animation: slide 3s cubic-bezier(0.77, 0, 0.175, 1) forwards;
}

.animate .copied {
  visibility: visible;
  opacity: 1;
}

@keyframes slide {
  0% { transform: none; }
  12.5% { transform: translateY(var(--slide-step-1)); }
  25% { transform: translateY(var(--slide-step-1)); }
  37.5% { transform: translateY(var(--slide-step-2)); }
  87.5% { transform: translateY(var(--slide-step-2)); }
  100% { transform: none; }
}