/* Shared styles for the subpages (projects/, projects/*). The homepage styles itself inline. */
@import url('https://fonts.googleapis.com/css2?family=IBM+Plex+Mono:wght@400;500&family=Space+Grotesk:wght@400;500;600;700&display=swap');

* { box-sizing: border-box; }
html, body { margin: 0; padding: 0; }
body {
  background: #12100e; color: #fffbfe;
  font-family: 'Space Grotesk', system-ui, sans-serif;
  -webkit-font-smoothing: antialiased; line-height: 1.55;
}
a { color: #73eedc; text-decoration: none; }
a:hover { text-decoration: underline; }
img { display: block; max-width: 100%; }
::selection { background: #73eedc; color: #12100e; }

.wrap { max-width: 960px; margin: 0 auto; padding: 0 clamp(16px, 5vw, 48px); }
.mono { font-family: 'IBM Plex Mono', monospace; }

header {
  display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 12px;
  padding: 26px 0; font-family: 'IBM Plex Mono', monospace; font-size: 12px;
  letter-spacing: 0.14em; text-transform: uppercase;
}
header nav { display: flex; flex-wrap: wrap; gap: 20px; }
header a { color: #a7a9a8; }
header a.brand { color: #fffbfe; font-weight: 500; }

.crumbs { font-family: 'IBM Plex Mono', monospace; font-size: 12px; color: #7a7d7d; margin: 24px 0 8px; }
.crumbs a { color: #a7a9a8; }

h1 { font-size: clamp(2.2rem, 6vw, 4rem); line-height: 1; letter-spacing: -0.03em; margin: 8px 0 20px; }
h2 { font-size: 1.4rem; margin: 40px 0 12px; }
.lead { font-size: 1.15rem; color: #c9c7c4; max-width: 60ch; }

.tags { display: flex; flex-wrap: wrap; gap: 8px; margin: 0 0 20px; }
.tag {
  font-family: 'IBM Plex Mono', monospace; font-size: 10.5px; letter-spacing: 0.1em;
  text-transform: uppercase; color: #73eedc; border: 1px solid #2c2a27; padding: 4px 9px; border-radius: 2px;
}

.shot { width: 100%; border: 1px solid #2c2a27; border-radius: 10px; margin: 28px 0; }
ul { padding-left: 1.2em; color: #c9c7c4; }
li { margin: 6px 0; }
.stack { font-family: 'IBM Plex Mono', monospace; font-size: 12px; color: #7a7d7d; }

.btn {
  display: inline-block; margin-top: 28px; padding: 14px 22px; background: #73eedc; color: #12100e;
  font-family: 'IBM Plex Mono', monospace; font-size: 12px; letter-spacing: 0.12em; text-transform: uppercase;
}
.btn:hover { text-decoration: none; filter: brightness(1.1); }

.grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 20px; margin: 32px 0; }
.card {
  display: block; background: #1a1815; border: 1px solid #2c2a27; border-radius: 10px; overflow: hidden;
  color: #fffbfe; transition: border-color .2s ease, transform .2s ease;
}
.card:hover { border-color: #73eedc; transform: translateY(-3px); text-decoration: none; }
.card img { width: 100%; height: 160px; object-fit: cover; }
.card div { padding: 18px 20px; }
.card h3 { margin: 0 0 8px; font-size: 1.25rem; }
.card p { margin: 0; color: #c9c7c4; font-size: 0.95rem; }

footer {
  margin-top: 72px; padding: 24px 0 40px; border-top: 1px solid #2c2a27;
  font-family: 'IBM Plex Mono', monospace; font-size: 11px; letter-spacing: 0.1em; text-transform: uppercase; color: #7a7d7d;
}
