/* ============================================
   Links page — link-in-bio hub
   ============================================ */

.links {
  position: relative;
  isolation: isolate;
  gap: var(--space-5);
  max-width: none;
  min-height: 100dvh;
  padding-inline: clamp(1.5rem, 6vw, 2.75rem);
  overflow: hidden;
}

.links__atmosphere {
  position: fixed;
  inset: 0;
  z-index: -1;
  pointer-events: none;
  background:
    radial-gradient(
      120% 80% at 12% -10%,
      color-mix(in srgb, var(--color-mocha-2) 55%, transparent) 0%,
      transparent 55%
    ),
    radial-gradient(
      90% 70% at 100% 20%,
      color-mix(in srgb, var(--color-mocha-3) 28%, transparent) 0%,
      transparent 50%
    ),
    linear-gradient(
      165deg,
      var(--color-bg-primary) 0%,
      color-mix(in srgb, var(--color-mocha-1) 70%, var(--color-bg-primary) 30%) 48%,
      var(--color-bg-primary) 100%
    );
}

.links__atmosphere::after {
  content: "";
  position: absolute;
  inset: 0;
  opacity: 0.35;
  background-image:
    linear-gradient(
      color-mix(in srgb, var(--color-mocha-4) 8%, transparent) 1px,
      transparent 1px
    );
  background-size: 100% 4.5rem;
}

.links__main {
  flex: 1;
  display: flex;
  flex-direction: column;
  align-items: stretch;
  justify-content: center;
  gap: var(--space-5);
  width: min(100%, 24rem);
  margin-inline: auto;
  padding-block: var(--space-4);
}

.links__brand {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: var(--space-2);
  text-align: center;
  animation: links-rise 0.7s var(--ease-entrance) both;
}

.links__avatar {
  display: block;
  width: clamp(5.5rem, 22vw, 7rem);
  height: clamp(5.5rem, 22vw, 7rem);
  object-fit: cover;
  object-position: center center;
  border-radius: 50%;
}

.links__name {
  margin: 0;
  font-family: var(--font-display);
  font-size: clamp(1.85rem, 5.5vw, 2.5rem);
  font-weight: var(--weight-display);
  line-height: var(--leading-tight);
  letter-spacing: var(--tracking-display);
  color: var(--color-text-primary);
}

.links__tagline {
  margin: 0;
  font-family: var(--font-body);
  font-size: var(--text-sm);
  font-weight: var(--weight-regular);
  line-height: var(--leading-normal);
  letter-spacing: var(--tracking);
  color: var(--color-text-secondary);
}

.links__socials {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: var(--space-3);
  margin-top: var(--space-1);
}

.links__social {
  display: grid;
  place-items: center;
  width: 2.25rem;
  height: 2.25rem;
  color: var(--color-text-secondary);
  text-decoration: none;
  transition:
    color 0.28s var(--ease-standard),
    opacity 0.28s var(--ease-standard);
}

.links__social svg {
  width: 1.2rem;
  height: 1.2rem;
  display: block;
}

.links__social:hover {
  color: var(--color-text-primary);
}

.links__social:active {
  opacity: 0.72;
}

.links__social:focus-visible {
  outline: 2px solid var(--color-text-primary);
  outline-offset: 3px;
}

.links__list {
  display: flex;
  flex-direction: column;
  gap: var(--space-2);
}

.links__item {
  --links-item-shift: 0.35rem;
  display: grid;
  grid-template-columns: auto 1fr auto;
  align-items: center;
  gap: var(--space-3);
  padding: var(--space-3);
  border: 1px solid var(--color-border);
  border-radius: 0;
  background-color: color-mix(in srgb, var(--color-bg-secondary) 72%, transparent);
  color: inherit;
  text-decoration: none;
  cursor: pointer;
  backdrop-filter: blur(var(--blur-md));
  -webkit-backdrop-filter: blur(var(--blur-md));
  transition:
    background-color 0.28s var(--ease-standard),
    border-color 0.28s var(--ease-standard),
    box-shadow 0.28s var(--ease-standard),
    transform 0.28s var(--ease-entrance);
  animation: links-rise 0.7s var(--ease-entrance) both;
  animation-delay: calc(0.08s + (var(--i, 0) * 0.08s));
}

.links__item:hover {
  background-color: var(--color-surface-work-card);
  border-color: var(--color-border-hover);
  box-shadow: 0 10px 24px color-mix(in srgb, var(--color-mocha-6) 8%, transparent);
  transform: translateY(-2px);
}

.links__item:active {
  background-color: color-mix(in srgb, var(--color-surface-work-card) 82%, var(--color-mocha-2) 18%);
  border-color: var(--color-border-hover);
  box-shadow: none;
  transform: translateY(0);
}

.links__item:focus-visible {
  outline: 2px solid var(--color-text-primary);
  outline-offset: 3px;
}

.links__item-logo {
  display: block;
  width: 3rem;
  height: 3rem;
  object-fit: cover;
  flex-shrink: 0;
}

.links__item-copy {
  display: flex;
  flex-direction: column;
  gap: 0.3rem;
  min-width: 0;
}

.links__item-title {
  font-family: var(--font-display);
  font-size: var(--text-work);
  font-weight: var(--weight-display);
  line-height: var(--leading-tight);
  letter-spacing: var(--tracking-display);
  color: var(--color-text-primary);
}

.links__item-sub {
  font-family: var(--font-body);
  font-size: var(--text-xs);
  font-weight: var(--weight-regular);
  line-height: var(--leading-snug);
  letter-spacing: var(--tracking-snug);
  color: var(--color-text-body);
}

.links__item-arrow {
  display: grid;
  place-items: center;
  width: 1.5rem;
  height: 1.5rem;
  color: var(--color-text-secondary);
  transition: color 0.28s var(--ease-standard), transform 0.28s var(--ease-entrance);
}

.links__item-arrow svg {
  width: 1.15rem;
  height: 1.15rem;
  display: block;
}

.links__item:hover .links__item-arrow {
  color: var(--color-text-primary);
  transform: translate(var(--links-item-shift), calc(var(--links-item-shift) * -1));
}

.links .footer {
  margin-top: auto;
  width: min(100%, 24rem);
  margin-inline: auto;
}

@keyframes links-rise {
  from {
    opacity: 0;
    filter: blur(6px);
    transform: translateY(0.75rem);
  }
  to {
    opacity: 1;
    filter: blur(0);
    transform: translateY(0);
  }
}

@media (prefers-reduced-motion: reduce) {
  .links__brand,
  .links__item {
    animation: none;
  }

  .links__item,
  .links__item-arrow,
  .links__social {
    transition: none;
  }

  .links__item:hover {
    transform: none;
    box-shadow: none;
  }

  .links__item:active {
    transform: none;
  }

  .links__item:hover .links__item-arrow {
    transform: none;
  }
}

@media (max-width: 480px) {
  .links__item {
    gap: var(--space-2);
    padding: var(--space-3) var(--space-2);
  }

  .links__item-title {
    font-size: var(--text-md);
  }

  .links__item-logo {
    width: 2.75rem;
    height: 2.75rem;
  }
}
