*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
:root{
  --blue:#004B9B;--orange:#F8991D;
  --bg:#060d19;--surface:#0b1628;--surface2:#101e36;
  --border:rgba(255,255,255,.07);--border-hover:rgba(248,153,29,.3);
  --text:#eef2fa;--muted:#6b82a8;--muted2:#3d5070;
}
html{scroll-behavior:smooth}
body{font-family:'Outfit',sans-serif;background:var(--bg);color:var(--text);min-height:100vh;overflow-x:clip}

/* HERO */
.hero{position:relative;height:52vh;min-height:340px;max-height:520px;display:flex;flex-direction:column;justify-content:flex-end;padding:0 0 0 0;overflow:hidden;margin-top:0}
.hero-bg{position:absolute;inset:0;background:url('gallery.jpg') center/cover no-repeat;z-index:0}.hero-overlay{position:absolute;inset:0;background:linear-gradient(100deg,rgba(4,10,24,.82) 0%,rgba(4,10,24,.45) 60%,rgba(4,10,24,.25) 100%);z-index:1}
.hero-breadcrumb{position:absolute;top:28px;left:48px;font-size:12px;font-style:italic;color:rgba(255,255,255,.65);z-index:3;letter-spacing:.02em}
.hero-breadcrumb a{color:rgba(255,255,255,.65);text-decoration:none}
.hero-breadcrumb a:hover{color:#fff}
.hero-content{position:relative;z-index:3;padding:0 48px 0 48px;padding-bottom:88px;display:flex;flex-direction:column;align-items:flex-start;gap:0;max-width:1200px}
.hero-pill{display:inline-flex;align-items:center;padding:5px 18px;border:1.5px solid rgba(255,255,255,.55);border-radius:999px;font-size:10.5px;font-weight:700;letter-spacing:.2em;text-transform:uppercase;color:#fff;margin-bottom:22px}
.hero h1{font-family:'Outfit',sans-serif;font-size:clamp(46px,7vw,84px);font-weight:800;line-height:1;color:#fff;margin:0;letter-spacing:-.02em}
.hero h1 .accent{color:var(--blue)}
.hero-desc{margin-top:18px;font-size:15px;font-weight:300;color:rgba(255,255,255,.72);max-width:1200px;line-height:1.75}
.hero-curve{position:absolute;bottom:-2px;left:0;right:0;z-index:2;line-height:0}
.hero-curve svg{display:block;width:100%}

/* GALLERY BODY */
.gallery-section{max-width:1200px;margin:0 auto;padding:52px 40px 80px}
.section-head{display:flex;align-items:flex-end;justify-content:space-between;margin-bottom:36px;gap:24px;flex-wrap:wrap}
.section-head-left{display:flex;flex-direction:column;gap:6px}
.section-label{font-size:10.5px;font-weight:600;letter-spacing:.15em;text-transform:uppercase;color:var(--orange)}
.section-title{font-family:'Playfair Display',serif;font-size:clamp(26px,3vw,38px);font-weight:700;color:#fff;line-height:1.1}

/* FILTERS */
.filters{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.filter-btn{background:transparent;border:1px solid var(--border);color:var(--muted);padding:7px 18px;border-radius:999px;font-size:12.5px;font-weight:500;font-family:'Outfit',sans-serif;cursor:pointer;letter-spacing:.02em;transition:all .22s;white-space:nowrap}
.filter-btn:hover{border-color:rgba(255,255,255,.18);color:var(--text)}
.filter-btn.active{background:var(--orange);border-color:var(--orange);color:#fff}

/* FEATURED ROW */
.featured-row{display:grid;grid-template-columns:1.45fr 1fr;gap:18px;margin-bottom:18px}
.regular-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:18px}

/* ALBUM CARD */
.album-card{position:relative;border-radius:16px;overflow:hidden;background:var(--surface);border:1px solid var(--border);cursor:pointer;transition:transform .3s ease,border-color .3s ease,box-shadow .3s ease}
.album-card:hover{transform:translateY(-6px);border-color:var(--border-hover);box-shadow:0 24px 60px rgba(0,0,0,.5),0 0 0 1px rgba(248,153,29,.12)}
.album-card:hover .card-thumb{transform:scale(1.08)}
.album-card:hover .card-overlay{opacity:1}
.album-card:hover .card-cta{opacity:1;transform:translateY(0);pointer-events:auto}
.album-card:hover .card-meta{transform:translateY(0);opacity:1}
.card-featured .card-media{height:380px}
.card-medium  .card-media{height:380px}
.card-small   .card-media{height:220px}
.card-media{position:relative;overflow:hidden}
.card-thumb{width:100%;height:100%;object-fit:cover;display:block;transition:transform .5s ease;background:var(--surface2)}
.card-gradient{position:absolute;inset:0;background:linear-gradient(to bottom,transparent 30%,rgba(6,13,25,.55) 65%,rgba(6,13,25,.96) 100%)}
.card-overlay{position:absolute;inset:0;background:rgba(6,13,25,.35);opacity:0;transition:opacity .3s}
.card-info-overlay{position:absolute;bottom:0;left:0;right:0;padding:16px 18px 18px;display:flex;flex-direction:column;gap:4px}
.card-cat{font-size:9.5px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--orange)}
.card-title{font-family:'Playfair Display',serif;font-weight:700;color:#fff;line-height:1.2;text-shadow:0 2px 8px rgba(0,0,0,.5)}
.card-featured .card-title{font-size:22px}
.card-medium  .card-title{font-size:19px}
.card-small   .card-title{font-size:15px}
.card-meta{display:flex;align-items:center;gap:8px;margin-top:6px;opacity:0;transform:translateY(6px);transition:all .28s}
.card-date{font-size:11.5px;color:rgba(255,255,255,.5);font-weight:400}
.meta-dot{width:3px;height:3px;border-radius:50%;background:var(--muted2)}
.card-count{font-size:11.5px;color:rgba(255,255,255,.5)}
.card-cta{margin-top:10px;display:inline-flex;align-items:center;gap:8px;background:var(--orange);color:#fff;border:none;padding:9px 20px;border-radius:999px;font-size:12.5px;font-weight:600;font-family:'Outfit',sans-serif;cursor:pointer;opacity:0;transform:translateY(8px);transition:all .28s .05s;align-self:flex-start;pointer-events:none}
.cta-arrow{width:16px;height:16px;border:1.5px solid rgba(255,255,255,.6);border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:9px}
.count-pill{position:absolute;top:14px;right:14px;background:rgba(6,13,25,.7);backdrop-filter:blur(6px);border:1px solid rgba(255,255,255,.1);border-radius:999px;padding:4px 12px;font-size:11px;color:rgba(255,255,255,.6);display:flex;align-items:center;gap:5px}

/* LIGHTBOX */
.lb{position:fixed;inset:0;background:rgba(3,7,16,.97);z-index:1000;display:none;flex-direction:column}
.lb.open{display:flex}
.lb-bar{display:flex;align-items:center;justify-content:space-between;padding:16px 28px;border-bottom:1px solid var(--border);flex-shrink:0}
.lb-info{display:flex;flex-direction:column;gap:2px}
.lb-cat-lbl{font-size:10px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--orange)}
.lb-name{font-family:'Playfair Display',serif;font-size:20px;font-weight:700;color:#fff}
.lb-actions{display:flex;align-items:center;gap:10px}
.lb-num{font-size:12px;color:var(--muted);padding:0 8px}
.lb-btn{width:38px;height:38px;border-radius:50%;border:1px solid var(--border);background:transparent;color:var(--text);cursor:pointer;font-size:17px;display:flex;align-items:center;justify-content:center;transition:all .2s}
.lb-btn:hover{background:var(--surface2);border-color:rgba(255,255,255,.2)}
.lb-close-btn{background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.1)}
.lb-stage{flex:1;display:flex;align-items:center;justify-content:center;padding:20px 70px;position:relative;overflow:hidden}
.lb-stage img{max-height:100%;max-width:100%;object-fit:contain;border-radius:10px;display:block;transition:opacity .2s}
.lb-arrow{position:absolute;top:50%;transform:translateY(-50%);width:46px;height:46px;border-radius:50%;border:1px solid var(--border);background:rgba(11,22,40,.8);color:#fff;cursor:pointer;font-size:18px;display:flex;align-items:center;justify-content:center;transition:all .2s;z-index:2}
.lb-arrow:hover{background:var(--blue);border-color:var(--blue)}
.lb-arrow.left{left:16px}
.lb-arrow.right{right:16px}
.lb-strip{display:flex;align-items:center;justify-content:center;gap:6px;padding:14px 24px;border-top:1px solid var(--border);flex-shrink:0;overflow-x:auto}
.lb-th{width:62px;height:44px;border-radius:6px;object-fit:cover;cursor:pointer;border:2px solid transparent;opacity:.45;flex-shrink:0;transition:all .2s}
.lb-th:hover{opacity:.8}
.lb-th.on{opacity:1;border-color:var(--orange)}

/* RESPONSIVE */
@media(max-width:1080px){.regular-grid{grid-template-columns:repeat(3,1fr)}}
@media(max-width:780px){.gallery-section{padding:48px 20px 72px}.featured-row{grid-template-columns:1fr}.card-medium .card-media{height:280px}.regular-grid{grid-template-columns:repeat(2,1fr)}.lb-stage{padding:16px 52px}}
@media(max-width:500px){.regular-grid{grid-template-columns:1fr}.hero-stats{gap:20px}.lb-arrow{display:none}.lb-stage{padding:12px}}

/* =============================================
   GALLERY — IMPROVED MOBILE (≤ 768px)
   ============================================= */
@media (max-width: 768px) {

  /* HERO — much smaller */
  .hero {
    height: auto;
    min-height: unset;
  }
  .hero-breadcrumb {
    top: 14px;
    left: 16px;
    font-size: 10.5px;
  }
  .hero-content {
    padding: 60px 16px 36px;
    gap: 0;
  }
  .hero h1 {
    font-size: 1.5rem;
    letter-spacing: -0.01em;
    line-height: 1.1;
  }
  .hero-desc {
    font-size: 12px;
    margin-top: 8px;
    line-height: 1.55;
  }
  .hero-pill {
    font-size: 9px;
    padding: 4px 12px;
    margin-bottom: 10px;
  }

  /* GALLERY BODY */
  .gallery-section {
    padding: 16px 16px 56px;
  }

  /* SECTION HEAD — sticky below nav, compact single row */
  .section-head {
    position: sticky;
    top: 62px;
    z-index: 200;
    background: var(--bg);
    border-bottom: 1px solid var(--border);
    padding: 10px 0 10px;
    margin-bottom: 16px;
    margin-left: -16px;
    margin-right: -16px;
    padding-left: 16px;
    padding-right: 16px;
    flex-direction: column;
    align-items: flex-start;
    gap: 8px;
  }
  .section-head-left {
    flex-direction: row;
    align-items: center;
    gap: 8px;
  }
  .section-label {
    font-size: 9px;
    letter-spacing: .12em;
  }
  .section-title {
    font-size: 1rem;
    font-family: 'Outfit', sans-serif;
    font-weight: 700;
  }

  /* FILTERS — horizontal scroll, no wrap */
  .filters {
    flex-wrap: nowrap;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    padding-bottom: 2px;
    gap: 6px;
    width: 100%;
    scrollbar-width: none;
  }
  .filters::-webkit-scrollbar { display: none; }
  .filter-btn {
    flex-shrink: 0;
    padding: 5px 13px;
    font-size: 11px;
    white-space: nowrap;
    border-radius: 999px;
  }

  /* FEATURED ROW — single column */
  .featured-row {
    grid-template-columns: 1fr;
    gap: 14px;
    margin-bottom: 14px;
  }
  .card-featured .card-media,
  .card-medium .card-media {
    height: 220px;
  }

  /* REGULAR GRID — 2 cols */
  .regular-grid {
    grid-template-columns: repeat(2, 1fr);
    gap: 12px;
  }
  .card-small .card-media {
    height: 150px;
  }

  /* ALBUM CARD */
  .album-card { border-radius: 12px; }
  .card-featured .card-title { font-size: 17px; }
  .card-medium  .card-title  { font-size: 15px; }
  .card-small   .card-title  { font-size: 12px; }
  .card-info-overlay { padding: 10px 10px 12px; }

  /* Always show on touch */
  .card-cta {
    opacity: 1;
    transform: translateY(0);
    pointer-events: auto;
    padding: 6px 12px;
    font-size: 11px;
  }
  .card-meta { opacity: 1; transform: translateY(0); }
  .card-overlay { opacity: 0.2; }

  /* COUNT PILL */
  .count-pill { font-size: 10px; padding: 3px 10px; top: 10px; right: 10px; }

  /* LIGHTBOX */
  .lb-bar { padding: 12px 16px; }
  .lb-name { font-size: 16px; }
  .lb-stage { padding: 12px 44px; }
  .lb-arrow { width: 36px; height: 36px; font-size: 15px; }
  .lb-arrow.left  { left: 6px; }
  .lb-arrow.right { right: 6px; }
  .lb-strip { padding: 10px 16px; gap: 5px; }
  .lb-th { width: 50px; height: 36px; border-radius: 5px; }
}

/* =============================================
   GALLERY — SMALL MOBILE (≤ 400px)
   ============================================= */
@media (max-width: 400px) {
  .hero h1 { font-size: 1.25rem; }
  .hero-content { padding: 0 14px 40px; }
  .gallery-section { padding: 14px 12px 48px; }
  .regular-grid { grid-template-columns: 1fr; gap: 10px; }
  .card-small .card-media { height: 190px; }
  .lb-stage { padding: 8px 36px; }
  .lb-arrow { width: 30px; height: 30px; }
}
