/* Custom Global Utility for animation */
.animate-fade-in {
  animation: fade-in 350ms cubic-bezier(0.16, 1, 0.3, 1) forwards;
}

@keyframes fade-in {
  from {
    opacity: 0;
    transform: translateY(8px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

/* Custom Unique Dark-Mode Typography & Editorial Elements */

.editorial-h1 {
  font-family: 'Syne', sans-serif;
  font-weight: 800;
  letter-spacing: -0.03em;
  line-height: 1.05;
}

.editorial-h2 {
  font-family: 'Syne', sans-serif;
  font-weight: 700;
  letter-spacing: -0.02em;
}

.editorial-italic-serif {
  font-family: 'Fraunces', serif;
  font-style: italic;
  font-weight: 500;
  letter-spacing: -0.01em;
}

.editorial-pill-mono {
  font-family: 'JetBrains Mono', monospace;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

/* Premium Highlight effects instead of generic styles */
.editorial-marker {
  position: relative;
  display: inline-block;
  white-space: nowrap;
}

.editorial-marker::after {
  content: '';
  position: absolute;
  left: 0;
  bottom: 0.08em;
  width: 100%;
  height: 0.22em;
  background-color: rgba(20, 184, 166, 0.3);
  z-index: -1;
  transform: rotate(-1deg);
  border-radius: 2px;
  box-shadow: 0 0 10px rgba(20, 184, 166, 0.4);
}

/* Double underline custom effect */
.editorial-double-strike {
  position: relative;
  display: inline;
}
.editorial-double-strike::after {
  content: '';
  position: absolute;
  left: 0;
  right: 0;
  bottom: -2px;
  height: 3px;
  border-bottom: 1px rgba(20, 184, 166, 0.6) solid;
  border-top: 1px rgba(20, 184, 166, 0.6) solid;
}

/* Custom Editorial Initial Cap (Dropcap) */
.editorial-dropcap::first-letter {
  font-family: 'Fraunces', serif;
  font-style: italic;
  font-weight: 800;
  float: left;
  font-size: 3.2rem;
  line-height: 0.75;
  margin-right: 0.35rem;
  margin-top: 0.25rem;
  color: #14b8a6;
  text-shadow: 0 0 12px rgba(20, 184, 166, 0.3);
}

/* Decorative Section Star Separator */
.editorial-divider {
  display: flex;
  align-items: center;
  text-align: center;
  color: #334155;
}
.editorial-divider::before, .editorial-divider::after {
  content: '';
  flex: 1;
  border-bottom: 1px solid #1e293b;
}
.editorial-divider:not(:empty)::before {
  margin-right: .75em;
}
.editorial-divider:not(:empty)::after {
  margin-left: .75em;
}

/* Elegant Callout Frame */
.editorial-quote-frame {
  position: relative;
  border-left: 2px solid #14b8a6;
  padding-left: 1.25rem;
  background: linear-gradient(to right, rgba(20, 184, 166, 0.08), transparent);
}

/* Print optimizations */
@media print {
  body {
    background: white !important;
    color: black !important;
  }
}
