/* Custom scrollbar */
::-webkit-scrollbar {
  width: 8px;
}
::-webkit-scrollbar-track {
  background: #0a0a0a;
}
::-webkit-scrollbar-thumb {
  background: #6c1e1e;
  border-radius: 4px;
}
::-webkit-scrollbar-thumb:hover {
  background: #a41e1e;
}

/* Lightweight static noise texture overlay (zero SVG filter cost) */
.noise-overlay::before {
  content: "";
  position: absolute;
  inset: 0;
  background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwAgMAAAAqbBEUAAAADFBMVEUAAABVVVWqqqr////Bf2LRAAACe0lEQVR42gFwAo/9AAlQwFHeHpYMqMykGABO5phX5hLhn9lvlwEAc/gotySWSwpEMXbWAO8UhQEIbXfQ78DhXQDbTAF/cc7vWQg0EHEADpm24MGYaeIYGmbgAOCZ8BJ0olLVcbZM1wClHorgmDrNjGyiu5cA2ynv3ShlQc9/UNcTAHv35tsmoV1PvHzyvQDbzt0w3S567jCQFFcAHpGC9EguI87dv6S3AOOdqoR9/CdruupGFQDoZmGCcL+Sw8FhN/sAgWFRP4axnFkGs7vDAKBIfnzuhvsyozxvGQC8FjEx6/d1Lorfr5cAcv3GMx06y7Bkw2CKALXVN17jk67nx6jg5gBZCyStWm6MXjI64ckAOxCwX7c+J9ijkxCVABWSWQSYYcPjSw/PCQAa7wfe/LqcAySOyoUA0onIaoXEH+agUL/5ACy4cGWoPXYzMv4yeADHzpkGlGVH+nPoi8IAg820yEfaviI6Ya0uAE4pbVSCdVzntbb71QCOCG3HjOckiUt8CXIAYHwxbJ0g86Ikkp9TACRK+Gii/5+jNoKvewAuDkcRrHrG6QfK20QA3KKWRXK0L/GPlcGWAGiZhWAJzrewf9mrYgBy1C9aX+w9YL4NrjEAo+E6lwG9aeuyjjk3AFBO3fFvnq1pp7qPmACLtaRRQ7Ef2oEdPYIAK95J5KX4xeS3qKQ5AOKV3vU4BWxzN844QwCAy17/GHUL9eZDFAwAT1GaZeh8u9t1nPdmADhLBdoU12vqvOaxSwCWd6/ZdADUR48MKNAAVqy9YD/BPgXghhclAO0g0uL29yQnegLoRwDwIsvF1q0e7Kdxju4A2nnrbuFN49mfP8gZBmUsKMRXVsoAAAAASUVORK5CYII=");
  background-repeat: repeat;
  background-size: 48px 48px;
  opacity: 0.035;
  pointer-events: none;
  z-index: 1;
}

/* Lightweight ambient radial glow (replaces expensive animated blur-3xl) */
.ambient-orb {
  background: radial-gradient(
    circle,
    rgba(164, 30, 30, 0.14) 0%,
    rgba(108, 30, 30, 0.05) 45%,
    transparent 72%
  );
  pointer-events: none;
}

/* GPU-promoted hero background video layer */
.hero-video-wrap {
  contain: layout style paint;
  transform: translateZ(0);
}
#hero-video {
  transform: translateZ(0);
  backface-visibility: hidden;
}

/* Gradient text */
.gradient-text {
  background: linear-gradient(135deg, #f07878, #a41e1e, #6c1e1e);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
}

/* Book card hover */
.book-card {
  transition:
    transform 0.35s cubic-bezier(0.175, 0.885, 0.32, 1.275),
    box-shadow 0.35s ease;
  will-change: transform;
}
.book-card:hover {
  transform: translateY(-10px) scale(1.02);
  box-shadow: 0 22px 50px rgba(164, 6, 6, 0.3);
}
.book-card:hover .book-overlay {
  opacity: 1;
}

/* Hero cover background */
.hero-parallax {
  background-size: cover;
  background-position: center;
}

/* Glassmorphism (balanced blur for smooth frame rates) */
.glass {
  background: rgba(10, 10, 10, 0.78);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
  border: 1px solid rgba(164, 6, 6, 0.2);
}

/* Decorative line */
.ornament-line {
  display: flex;
  align-items: center;
  gap: 1rem;
}
.ornament-line::before,
.ornament-line::after {
  content: "";
  flex: 1;
  height: 1px;
  background: linear-gradient(90deg, transparent, #6c1e1e, transparent);
}

/* CTA button glow */
.btn-glow {
  position: relative;
  overflow: hidden;
}
.btn-glow::before {
  content: "";
  position: absolute;
  inset: -2px;
  background: linear-gradient(45deg, #a41e1e, #6c1e1e, #a41e1e, #6c1e1e);
  background-size: 300% 300%;
  animation: shimmer 3s ease-in-out infinite;
  z-index: -1;
  border-radius: inherit;
  will-change: opacity;
}

/* Mobile menu */
.mobile-menu {
  transform: translateX(100%);
  transition: transform 0.3s ease-in-out;
  will-change: transform;
}
.mobile-menu.active {
  transform: translateX(0);
}

/* Scroll animations */
.reveal {
  opacity: 0;
  transform: translateY(32px);
  transition:
    opacity 0.6s cubic-bezier(0.4, 0, 0.2, 1),
    transform 0.6s cubic-bezier(0.4, 0, 0.2, 1);
  will-change: opacity, transform;
}
.reveal.visible {
  opacity: 1;
  transform: translateY(0);
  will-change: auto;
}

/* Nav dropdown */
.dropdown-menu {
  opacity: 0;
  visibility: hidden;
  transform: translateY(-8px);
  transition:
    opacity 0.25s ease,
    transform 0.25s ease,
    visibility 0.25s ease;
}
.dropdown:hover .dropdown-menu {
  opacity: 1;
  visibility: visible;
  transform: translateY(0);
}

/* Image shine effect */
.shine-effect {
  position: relative;
  overflow: hidden;
}
.shine-effect::after {
  content: "";
  position: absolute;
  top: -50%;
  left: -50%;
  width: 200%;
  height: 200%;
  background: linear-gradient(
    to bottom right,
    rgba(255, 255, 255, 0) 40%,
    rgba(255, 255, 255, 0.05) 50%,
    rgba(255, 255, 255, 0) 60%
  );
  transform: rotate(30deg);
  transition: transform 0.6s;
  pointer-events: none;
}
.shine-effect:hover::after {
  transform: rotate(30deg) translateX(100%);
}

/* Reduced motion support */
@media (prefers-reduced-motion: reduce) {
  .reveal {
    opacity: 1;
    transform: none;
    transition: none;
  }
  .btn-glow::before,
  .animate-fade-in,
  .animate-bounce,
  .animate-pulse {
    animation: none !important;
    opacity: 1 !important;
  }
}
