/* Page fade-in */
  body.fade-in {
    opacity: 0;
    animation: fadeInUp 0.8s ease forwards;
  }

  @keyframes fadeInUp {
    from {
      opacity: 0;
      transform: translateY(20px);
    }
    to {
      opacity: 1;
      transform: translateY(0);
    }
  }

  /* Center Substack note and button */
  #note .galleryinfo {
    text-align: center;
    margin-top: 20px;
  }

  #note .button {
    margin-top: 10px;
  }

  /* Substack grid layout */
  .substack-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
    gap: 24px;
    margin-top: 20px;
  }

  .substack-card {
    background: #fff;
    border: 1px solid #eee;
    border-radius: 8px;
    overflow: hidden;
    transition: box-shadow 0.3s ease;
  }

  .substack-card:hover {
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);
  }

  .substack-card img {
    width: 100%;
    height: auto;
    display: block;
  }

  .substack-content {
    padding: 16px;
  }

  .substack-card a {
    font-weight: bold;
    text-decoration: none;
    color: #333;
  }