    body {
      box-sizing: border-box;
    }
    .font-heading {
      font-family: 'Playfair Display', serif;
    }
    .font-body {
      font-family: 'Source Sans 3', sans-serif;
    }
    @keyframes fadeInUp {
      from {
        opacity: 0;
        transform: translateY(30px);
      }
      to {
        opacity: 1;
        transform: translateY(0);
      }
    }
    @keyframes float {
      0%, 100% { transform: translateY(0); }
      50% { transform: translateY(-10px); }
    }
    .animate-fade-in-up {
      animation: fadeInUp 0.8s ease-out forwards;
    }
    .animate-float {
      animation: float 3s ease-in-out infinite;
    }
    .delay-100 { animation-delay: 0.1s; }
    .delay-200 { animation-delay: 0.2s; }
    .delay-300 { animation-delay: 0.3s; }
    .delay-400 { animation-delay: 0.4s; }
    .gradient-text {
      background: linear-gradient(135deg, #1e3a5f 0%, #c9a227 100%);
      -webkit-background-clip: text;
      -webkit-text-fill-color: transparent;
      background-clip: text;
    }
    .hero-image-container {
      position: relative;
      overflow: hidden;
      border-radius: 20px;
      cursor: pointer;
    }
    .hero-image-overlay {
      position: absolute;
      top: 0;
      left: 0;
      right: 0;
      bottom: 0;
      background: linear-gradient(135deg, rgba(15, 23, 42, 0.4) 0%, rgba(31, 41, 55, 0.4) 100%);
      opacity: 0;
      transition: opacity 0.3s ease;
      display: flex;
      align-items: center;
      justify-content: center;
    }
    .hero-image-container:hover .hero-image-overlay {
      opacity: 1;
    }
    .hero-image-overlay-text {
      color: white;
      font-size: 18px;
      font-weight: 600;
      text-align: center;
      padding: 20px;
    }
    /* Book card styles */
    .book-card img { height: 280px; object-fit: cover; }
    .book-card .font-bold { color: #b45309; }
    .add-to-cart { transition: transform .15s ease; }
    .add-to-cart:active { transform: translateY(1px); }

    /* Cart modal */
    #cart-modal { display: none; align-items: center; justify-content: center; }
    #cart-modal > div { max-height: 80vh; overflow:auto; }

    /* Floating cart button */
    #cart-button { z-index: 60; }