body {
      font-display: swap;
    }

    .photography-container {
      max-width: 1400px;
      margin: 0 auto;
      padding: 40px 20px;
    }

    .page-title {
      font-size: 24px;
      font-weight: 700;
      color: #1a1a1a;
      margin-bottom: 20px;
      text-align: left;
    }

    [data-theme="dark"] .page-title { color: var(--text-color); }

    .gallery-intro {
      text-align: center;
      max-width: 600px;
      margin: 0 auto 40px;
      line-height: 1.8;
      font-size: 16px;
      color: #666;
      font-style: italic;
    }

    /* Masonry Grid */
    .photo-grid {
      column-count: 3;
      column-gap: 20px;
      margin-bottom: 60px;
    }

    .photo-item {
      break-inside: avoid;
      margin-bottom: 20px;
      position: relative;
      overflow: hidden;
      border-radius: 12px;
      box-shadow: 0 4px 20px rgba(0,0,0,0.08);
      transition: all 0.4s cubic-bezier(0.25, 0.46, 0.45, 0.94);
      cursor: pointer;
      opacity: 0;
      transform: translateY(30px);
    }

    .photo-item.visible {
      opacity: 1;
      transform: translateY(0);
    }

    .photo-item.hidden {
      display: none;
    }

    .photo-item:hover {
      transform: translateY(-8px);
      box-shadow: 0 20px 40px rgba(0,0,0,0.15);
    }

    .photo-item.visible:hover {
      transform: translateY(-8px);
    }

    .photo-item img {
      width: 100%;
      height: auto;
      display: block;
      transition: transform 0.6s cubic-bezier(0.25, 0.46, 0.45, 0.94);
      filter: brightness(0.95) contrast(1.05);
    }

    .photo-item:hover img {
      transform: scale(1.05);
      filter: brightness(1) contrast(1.1);
    }

    .photo-caption {
      position: absolute;
      bottom: 0;
      left: 0;
      right: 0;
      background: linear-gradient(transparent, rgba(0,0,0,0.8));
      color: white;
      padding: 40px 15px 15px;
      opacity: 0;
      transition: all 0.4s ease;
      font-size: 14px;
      font-weight: 300;
      letter-spacing: 0.5px;
    }

    .photo-item:hover .photo-caption {
      opacity: 1;
    }

    .photo-title {
      font-weight: 500;
      margin-bottom: 4px;
      font-size: 16px;
    }

    .photo-meta {
      font-size: 12px;
      opacity: 0.9;
      color: #ddd;
    }

    /* Responsive Masonry */
    @media screen and (max-width: 1024px) {
      .photography-container {
        padding: 30px 15px;
      }

      .photo-grid {
        column-count: 2;
        column-gap: 15px;
      }

      .photo-item {
        margin-bottom: 15px;
      }
    }

    @media screen and (max-width: 768px) {
      .page-title {
        font-size: 32px;
      }

      .gallery-intro {
        font-size: 16px;
        margin-bottom: 30px;
      }

      .photo-item {
        border-radius: 10px;
      }
    }

    @media screen and (max-width: 600px) {
      .photography-container {
        padding: 20px 10px;
      }

      .page-title {
        font-size: 28px;
      }

      .photo-grid {
        column-count: 1;
        column-gap: 0;
      }

      .photo-item {
        margin-bottom: 15px;
      }

      .photo-caption {
        opacity: 1;
        padding: 30px 12px 12px;
      }

      .photo-title {
        font-size: 14px;
      }

      .photo-meta {
        font-size: 11px;
      }
    }

    /* Lightbox Styles */
    .lightbox {
      display: none;
      position: fixed;
      z-index: 1000;
      left: 0;
      top: 0;
      width: 100%;
      height: 100%;
      background-color: rgba(0,0,0,0.95);
      opacity: 0;
      transition: opacity 0.3s ease;
    }

    .lightbox.active {
      display: flex;
      align-items: center;
      justify-content: center;
      opacity: 1;
    }

    .lightbox-close {
      position: absolute;
      top: 20px;
      right: 30px;
      color: #fff;
      font-size: 35px;
      font-weight: bold;
      cursor: pointer;
      transition: color 0.2s;
      z-index: 1001;
    }

    .lightbox-close:hover {
      color: var(--primary-color);
    }

    .lightbox-content {
      max-width: 90%;
      max-height: 85%;
      border-radius: 8px;
      box-shadow: 0 10px 50px rgba(0,0,0,0.5);
    }

    .lightbox-caption {
      position: absolute;
      bottom: 30px;
      left: 50%;
      transform: translateX(-50%);
      color: white;
      text-align: center;
      font-size: 16px;
    }

    .lightbox-caption .photo-title {
      font-size: 18px;
      margin-bottom: 5px;
    }

    .lightbox-nav {
      position: absolute;
      top: 50%;
      transform: translateY(-50%);
      color: white;
      font-size: 50px;
      cursor: pointer;
      padding: 20px;
      transition: color 0.2s;
      user-select: none;
    }

    .lightbox-nav:hover {
      color: var(--primary-color);
    }

    .lightbox-prev {
      left: 20px;
    }

    .lightbox-next {
      right: 20px;
    }

    /* Dark mode styles */
    [data-theme="dark"] .gallery-intro {
      color: var(--text-color, #b8b8b8);
    }

    [data-theme="dark"] .photo-item {
      box-shadow: 0 4px 20px rgba(0,0,0,0.3);
    }

    [data-theme="dark"] .photo-caption {
      background: linear-gradient(transparent, rgba(0,0,0,0.9));
    }

    [data-theme="dark"] .photo-title {
      color: #fff;
    }

    [data-theme="dark"] .photo-meta {
      color: #ccc;
    }
