/* Puhu.app — Bootstrap utility'lerinin kapsamadığı küçük yardımcılar. */

.rounded-puhu-sm { border-radius: var(--radius-sm) !important; }
.rounded-puhu-md { border-radius: var(--radius-md) !important; }
.rounded-puhu-lg { border-radius: var(--radius-lg) !important; }
.rounded-puhu-xl { border-radius: var(--radius-xl) !important; }
.rounded-puhu-pill { border-radius: var(--radius-pill) !important; }

.shadow-puhu-sm { box-shadow: var(--shadow-sm) !important; }
.shadow-puhu-md { box-shadow: var(--shadow-md) !important; }
.shadow-puhu-lg { box-shadow: var(--shadow-lg) !important; }

.min-w-0 { min-width: 0 !important; }

.truncate-1 {
  display: -webkit-box;
  -webkit-line-clamp: 1;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

.truncate-2 {
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

/* Sayfaya girişte kademeli görünme — sadece pazarlama sitesinde,
   reduced-motion tercihine saygılı. */
.reveal-on-scroll {
  opacity: 0;
  transform: translateY(16px);
  transition: opacity var(--duration-slow) var(--ease-emphasized),
    transform var(--duration-slow) var(--ease-emphasized);
}

.reveal-on-scroll.is-visible {
  opacity: 1;
  transform: translateY(0);
}

@media (prefers-reduced-motion: reduce) {
  .reveal-on-scroll {
    opacity: 1;
    transform: none;
    transition: none;
  }
}

/* Maskotun geometrik motifleriyle uyumlu dekoratif noktalar (pazarlama). */
.decor-dots {
  position: absolute;
  width: 120px;
  height: 120px;
  background-image: radial-gradient(var(--gold-400) 1.5px, transparent 1.5px);
  background-size: 16px 16px;
  opacity: 0.35;
  pointer-events: none;
}

.skip-link {
  position: absolute;
  left: -9999px;
  top: 0;
  background: var(--navy-900);
  color: #fff;
  padding: var(--space-3) var(--space-5);
  z-index: 2000;
  border-radius: 0 0 var(--radius-md) 0;
}

.skip-link:focus {
  left: 0;
  color: #fff;
}
