:root {
  --primary: #1b2430;
  --primary-dark: #0e1319;
  --primary-on: #ffffff;
  --secondary: #3f6d8c;
  --secondary-ink: #3f6d8c;
  --accent: #d99a3f;
  --accent-ink: #99671e;
  --accent-on: #161c24;
  --bg: #fbfaf8;
  --surface: #f7f5f2;
  --ink: #161c24;
  --muted: #64696f;
  --border: #e8e3d8;
  --r-sm: 8px; --r-md: 12px; --r-lg: 20px;
  --sp-3: 8px; --sp-4: 16px; --sp-5: 26px; --sp-6: 42px;
}
* { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; }
body {
  margin: 0;
  background: var(--bg);
  color: var(--ink);
  font-family: Geist, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
  line-height: 1.65;
  font-size: 17px;
}
.wrap { max-width: 720px; margin: 0 auto; padding: 0 16px; }
header { padding: var(--sp-6) 0 var(--sp-5); }
.mark {
  font-family: "Bricolage Grotesque", Georgia, serif;
  font-weight: 700; font-size: clamp(28px, 6vw, 44px);
  letter-spacing: -0.02em; line-height: 1.1; margin: 0 0 var(--sp-3);
  color: var(--primary);
}
.tag { color: var(--muted); font-size: clamp(17px, 2.4vw, 20px); margin: 0; }
main { padding-bottom: var(--sp-6); }
.card {
  background: var(--surface); border: 1px solid var(--border);
  border-radius: var(--r-lg); padding: var(--sp-5); margin: var(--sp-5) 0;
}
h2 { font-family: "Bricolage Grotesque", Georgia, serif; font-size: 22px; margin: 0 0 var(--sp-3); color: var(--primary); }
p { margin: 0 0 var(--sp-4); }
p:last-child { margin-bottom: 0; }
.chip {
  display: inline-block; background: var(--secondary); color: #fff;
  border-radius: 999px; padding: 4px 12px; font-size: 13px; font-weight: 600;
  letter-spacing: .02em;
}
.cta {
  display: inline-block; background: var(--primary); color: var(--primary-on);
  text-decoration: none; font-weight: 600;
  padding: 13px 26px; border-radius: var(--r-md);
}
.cta:hover { background: var(--primary-dark); }
a { color: var(--primary); }
footer {
  border-top: 1px solid var(--border); padding: var(--sp-5) 0;
  color: var(--muted); font-size: 14px;
}
@media (prefers-reduced-motion: reduce) {
  * { animation: none !important; transition: none !important; }
}

/* ---- Directory layout (added for the project index) ---- */
.wrap{max-width:860px}
header{padding:var(--sp-6) 0 var(--sp-5)}
.about{color:var(--muted);font-size:16px;margin:0 0 var(--sp-4);max-width:62ch}
section{margin:0 0 var(--sp-6)}
h2{font-family:"Bricolage Grotesque",Georgia,serif;font-size:24px;margin:0 0 6px;color:var(--primary)}
.sub{color:var(--muted);font-size:14px;margin:0 0 var(--sp-4)}
.sub em{font-style:normal;font-weight:600;color:var(--ink)}
.grid{list-style:none;padding:0;margin:0;display:grid;gap:12px;
      grid-template-columns:repeat(auto-fill,minmax(248px,1fr))}
.card a{display:flex;flex-direction:column;gap:5px;height:100%;
        padding:15px 16px;border:1px solid var(--border);border-radius:var(--r-md);
        background:var(--surface);text-decoration:none;color:inherit;
        transition:border-color .15s ease, transform .15s ease}
.card a:hover{border-color:var(--primary);transform:translateY(-1px)}
.card .t{font-weight:600;font-size:15.5px;color:var(--ink)}
.card .d{font-size:13.5px;color:var(--muted);line-height:1.5;flex:1}
.card .u{font-size:11.5px;color:var(--primary);font-family:ui-monospace,SFMono-Regular,Menlo,monospace}
.badge{display:inline-block;margin-left:7px;padding:1px 7px;border-radius:999px;
       font-size:10px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;vertical-align:1px}
.b-live{background:var(--secondary);color:#fff}
.b-building{background:var(--accent);color:var(--accent-on)}
footer .fine{font-size:12px;color:var(--muted);margin-top:4px}
@media (prefers-reduced-motion:reduce){.card a:hover{transform:none}}
