/* Submission detail pages — shared styles */
.back-link { display:inline-flex; align-items:center; gap:8px; font-size:11px; letter-spacing:0.22em; text-transform:uppercase; text-decoration:none; color:var(--ink-b); margin-bottom:24px; }
.back-link:hover { color:var(--ink-a); }
.project-meta { display:grid; grid-template-columns:repeat(auto-fill,minmax(180px,1fr)); gap:16px; margin:28px 0 0; }
.project-meta .m { font-size:13px; }
.project-meta .m .k { font-size:10px; letter-spacing:0.22em; text-transform:uppercase; color:var(--ink-b); margin-bottom:4px; }
.boards { display:grid; grid-template-columns:1fr 1fr; gap:24px; margin-top:8px; }
@media (max-width: 700px) { .boards { grid-template-columns:1fr; } }
.boards img { width:100%; height:auto; display:block; border:2px solid var(--ink); }
.boards img:hover { cursor:zoom-in; }
.board-label { font-size:10px; letter-spacing:0.22em; text-transform:uppercase; color:var(--ink-b); margin-bottom:8px; margin-top:24px; }
.lightbox { display:none; position:fixed; inset:0; z-index:500; background:rgba(15,13,10,0.92); cursor:zoom-out; overflow:auto; }
.lightbox.open { display:flex; align-items:flex-start; justify-content:center; padding:24px; }
.lightbox img { max-width:100%; height:auto; margin:auto; }
.video-wrap { margin-top:8px; }
.video-wrap video { width:100%; max-width:960px; display:block; border:2px solid var(--ink); background:#000; }

/* Submissions grid page */
.submissions-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
  gap: 32px;
}
@media (max-width: 600px) { .submissions-grid { grid-template-columns: 1fr; gap: 20px; } }

.sub-card {
  display: block; text-decoration: none; color: var(--ink);
  border: 2px solid var(--ink);
  transition: transform 80ms, box-shadow 80ms;
}
.sub-card:hover { transform: translate(-2px,-2px); box-shadow: 6px 6px 0 var(--ink-a); }

.sub-thumb {
  position: relative;
  aspect-ratio: 4/3;
  background: var(--paper);
  overflow: hidden;
}
.sub-thumb img {
  width: 100%; height: 100%; object-fit: cover; display: block;
  filter: sepia(0.08) contrast(1.04);
}
.sub-thumb-icon {
  position: absolute; inset: 0;
  display: flex; align-items: center; justify-content: center;
  font-size: 28px; font-weight: 700; letter-spacing: 0.05em;
  color: var(--paper); opacity: 0.5;
}
.sub-award-badge {
  position: absolute; bottom: 10px; left: 10px;
  font-size: 9px; letter-spacing: 0.22em; text-transform: uppercase;
  padding: 4px 9px;
}

.sub-info { padding: 16px 18px 20px; }
.sub-tags { margin-bottom: 8px; }
.sub-site {
  font-size: 9px; letter-spacing: 0.22em; text-transform: uppercase;
  border: 1.5px solid var(--ink-b); color: var(--ink-b); padding: 2px 7px;
}
.sub-title {
  font-size: clamp(15px, 2vw, 18px); font-weight: 700;
  letter-spacing: -0.03em; text-transform: uppercase;
  margin: 0 0 6px; line-height: 1.15;
}
.sub-team {
  font-size: 11px; letter-spacing: 0.1em; text-transform: uppercase;
  color: rgba(15,13,10,0.5);
}

.filter-bar { display:flex; align-items:center; justify-content:space-between;
  gap:16px; flex-wrap:wrap; margin-bottom:24px; }
.filter-groups { display:flex; gap:20px; flex-wrap:wrap; align-items:center; }
.filter-group { display:flex; align-items:center; gap:10px; }
.filter-label { font-size:10px; letter-spacing:0.22em; text-transform:uppercase; color:var(--ink-b); }
.seg { display:flex; border:2px solid var(--ink); }
.seg button { appearance:none; background:var(--paper); color:var(--ink); border:none;
  border-right:2px solid var(--ink); padding:8px 13px; font-family:inherit; font-size:10px;
  letter-spacing:0.18em; text-transform:uppercase; cursor:pointer; transition:background 80ms,color 80ms; }
.seg button:last-child { border-right:none; }
.seg button.active, .seg button:hover { background:var(--ink); color:var(--paper); }
.sub-card.hidden { display:none; }
