:root{
    --charcoal:#1B2126;
    --steel:#1a9d5a;
    --steel-light:#1a9d5a;
    --yellow:#1a9d5a;
    --paper:#F3F1EA;
    --concrete:#8B9096;
    --line: rgba(27,33,38,0.12);
  }
 

 
  /* ambient blueprint grid texture on the page */
  .page{
    background-image:
      linear-gradient(var(--line) 1px, transparent 1px),
      linear-gradient(90deg, var(--line) 1px, transparent 1px);
    background-size: 42px 42px;
    /* padding: 56px 6vw 90px; */
  }
 
  header.gallery-head{
    /* max-width:1240px; */
    margin:0 auto 40px;
    display:flex;
    align-items:flex-end;
    justify-content:space-between;
    flex-wrap:wrap;
    gap:24px;
    border-bottom:2px solid var(--charcoal);
    padding-bottom:22px;
  }
 
  .eyebrow{
    font-family:'JetBrains Mono',monospace;
    font-size:12px;
    letter-spacing:0.14em;
    text-transform:uppercase;
    color:var(--steel);
    display:flex;
    align-items:center;
    gap:8px;
    margin-bottom:10px;
  }
  .eyebrow::before{
    content:"";
    width:9px;height:9px;
    background:var(--yellow);
    display:inline-block;
    transform:rotate(45deg);
  }
 
  /* h1{
    font-family:'Barlow Condensed', sans-serif;
    font-weight:700;
    font-size:clamp(34px, 4.6vw, 56px);
    line-height:0.95;
    letter-spacing:-0.01em;
    margin:0;
    text-transform:uppercase;
  } */
  h1 span{color:var(--steel);}
 
  .head-meta{
    font-family:'JetBrains Mono',monospace;
    font-size:12.5px;
    color:var(--concrete);
    text-align:right;
    line-height:1.6;
  }
  .head-meta b{color:var(--charcoal);}
 
  /* ===== filter tabs ===== */
  nav.filters{
    max-width:1240px;
    margin:28px auto 34px;
    display:flex;
    flex-wrap:wrap;
    gap:6px;
  }
  .filter-btn{
    font-family:'Barlow Condensed', sans-serif;
    font-weight:600;
    font-size:17px;
    letter-spacing:0.01em;
    text-transform:uppercase;
    background:transparent;
    border:none;
    color:var(--concrete);
    padding:9px 16px;
    cursor:pointer;
    position:relative;
    transition:color .18s ease;
  }
  .filter-btn::after{
    content:"";
    position:absolute;
    left:16px; right:16px; bottom:2px;
    height:3px;
    background:var(--yellow);
    transform:scaleX(0);
    transform-origin:left;
    transition:transform .22s ease;
  }
  .filter-btn:hover{color:var(--charcoal);}
  .filter-btn.active{color:var(--charcoal);}
  .filter-btn.active::after{transform:scaleX(1);}
  .filter-count{
    font-family:'JetBrains Mono',monospace;
    font-size:10.5px;
    color:var(--steel-light);
    margin-left:5px;
    vertical-align:top;
  }
 
  /* ===== grid ===== */
  .grid{
    max-width:1240px;
    margin:0 auto;
    display:grid;
    grid-template-columns:repeat(3, 1fr);
    gap:14px;
  }
 
  .card{
    position:relative;
    overflow:hidden;
    background:var(--charcoal);
    aspect-ratio: 4 / 3;
    cursor:pointer;
    opacity:0;
    transform:translateY(14px);
    animation:rise .5s ease forwards;
  }
  .card.tall{grid-row:span 1;}
  @keyframes rise{ to{opacity:1; transform:translateY(0);} }
 
  .card img{
    width:100%; height:100%;
    object-fit:cover;
    display:block;
    filter:saturate(0.92) contrast(1.03);
    transition:transform .55s cubic-bezier(.2,.7,.3,1), filter .4s ease;
  }
  .card:hover img{transform:scale(1.06);}
 
  .card::before{ /* corner tick, signature element */
    content:"";
    position:absolute;
    top:0; right:0;
    width:0; height:0;
    border-style:solid;
    border-width:0 26px 26px 0;
    border-color:transparent var(--yellow) transparent transparent;
    z-index:2;
    opacity:0;
    transition:opacity .25s ease;
  }
  .card:hover::before{opacity:1;}
 
  .card-overlay{
    position:absolute; inset:0;
    background:linear-gradient(180deg, rgba(27,33,38,0) 45%, rgba(27,33,38,0.88) 100%);
    display:flex;
    align-items:flex-end;
    padding:16px;
    opacity:0;
    transition:opacity .3s ease;
  }
  .card:hover .card-overlay{opacity:1;}
 
  .card-info{color:var(--paper);}
  .card-tag{
    font-family:'JetBrains Mono',monospace;
    font-size:10.5px;
    letter-spacing:0.1em;
    text-transform:uppercase;
    color:var(--yellow);
    display:block;
    margin-bottom:4px;
  }
  .card-title{
    font-family:'Barlow Condensed', sans-serif;
    font-weight:600;
    font-size:19px;
    text-transform:uppercase;
    letter-spacing:0.01em;
  }
 
  .card.hide{display:none;}
 
  /* size variety: first item in each "row group" bigger, echoing the reference layout */
  .grid .card:nth-child(6n+1){grid-column:span 2;}
 
  @media (max-width:880px){
    .page{padding:36px 5vw 60px;}
    .grid{grid-template-columns:repeat(2,1fr);}
    .grid .card:nth-child(6n+1){grid-column:span 2;}
    header.gallery-head{align-items:flex-start;}
    .head-meta{text-align:left;}
  }
  @media (max-width:540px){
    .grid{grid-template-columns:1fr;}
    .grid .card:nth-child(6n+1){grid-column:span 1;}
    .filter-btn{font-size:15px; padding:7px 11px;}
  }
 
  /* reduced motion */
  @media (prefers-reduced-motion: reduce){
    .card{animation:none; opacity:1; transform:none;}
    .card img{transition:none;}
  }
 
  /* lightbox */
  .lightbox{
    position:fixed; inset:0;
    background:rgba(15,18,21,0.94);
    display:none;
    align-items:center;
    justify-content:center;
    z-index:50;
    padding:5vw;
  }
  .lightbox.open{display:flex;}
  .lightbox img{
    max-width:min(1100px,90vw);
    max-height:82vh;
    object-fit:contain;
    box-shadow:0 20px 60px rgba(0,0,0,0.5);
  }
  .lightbox-caption{
    position:absolute;
    bottom:6vh; left:0; right:0;
    text-align:center;
    color:var(--paper);
    font-family:'JetBrains Mono',monospace;
    font-size:12px;
    letter-spacing:0.08em;
    text-transform:uppercase;
  }
  .lightbox-caption b{color:var(--yellow);}
  .lightbox-close{
    position:absolute; top:5vh; right:5vw;
    width:40px;height:40px;
    border:1px solid rgba(243,241,234,0.4);
    background:transparent;
    color:var(--paper);
    font-size:20px;
    cursor:pointer;
    display:flex;align-items:center;justify-content:center;
    transition:background .2s ease;
  }
  .lightbox-close:hover{background:rgba(243,241,234,0.12);}