/* Home page specific overrides. Core existing home styles are preserved in common.css. */

/* ============================================================
   Recent projects — TRUE Pinterest masonry
   Cards are absolutely positioned into the shortest column by
   home.js (real Pinterest algorithm), so they flow left-to-right
   in reading order and pack with no gaps.
   Before JS runs / if JS is disabled, a balanced CSS grid is the
   graceful fallback.
   ============================================================ */
.projects-pin{position:relative;margin:0 0 34px}

/* Fallback (no JS): tidy balanced grid */
.projects-pin:not(.is-masonry){display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:18px;align-items:start}

/* Masonry active: JS controls left/top/width */
.projects-pin.is-masonry{display:block;width:100%}
.projects-pin.is-masonry .pin-card{position:absolute;top:0;left:0;margin:0}

.pin-card{
  background:#fff;
  border:1px solid rgba(18,39,66,.08);
  border-radius:18px;overflow:hidden;
  box-shadow:0 10px 30px rgba(18,39,66,.10);
  transition:transform .4s cubic-bezier(.2,.8,.2,1),box-shadow .4s ease
}
.pin-card.reveal.in:hover,
.pin-card:hover{transform:translateY(-6px);box-shadow:0 22px 48px rgba(18,39,66,.20)}

.pin-media{position:relative;overflow:hidden;background:#e9edf2;line-height:0}
.pin-media .gallery-open{display:block;width:100%}
/* Natural aspect ratio => varied card heights = real Pinterest feel */
.pin-media img{display:block;width:100%;height:auto;object-fit:cover;transition:transform .55s ease}
.pin-card:hover .pin-media img{transform:scale(1.045)}

.pin-video-badge{position:absolute;top:13px;left:13px;display:inline-flex;align-items:center;gap:7px;padding:8px 11px;border-radius:999px;background:rgba(18,39,66,.9);color:#fff;font-size:11px;font-weight:700;letter-spacing:.3px;pointer-events:none;z-index:2}
.pin-video-badge i{color:var(--gold)}

.pin-meta{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:13px 15px;color:var(--ink);font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.55px}
.pin-meta i{color:var(--gold)}

/* Fallback grid columns per breakpoint (only used before JS / no JS) */
@media (max-width:980px){
  .projects-pin:not(.is-masonry){grid-template-columns:repeat(3,minmax(0,1fr))}
}
@media (max-width:860px){
  .projects-pin:not(.is-masonry){grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
  .pin-card{border-radius:14px}
}
@media (max-width:480px){
  .projects-pin:not(.is-masonry){gap:10px}
  .pin-card{border-radius:12px}
  .pin-meta{padding:10px;font-size:10px}
  .pin-video-badge{top:8px;left:8px;padding:6px 8px;font-size:9px}
}