:root{
  --bg: #0a0d11;
  --bg-panel: #10141a;
  --bg-panel-2: #151a21;
  --bg-elevated: #1a2029;
  --line: #202832;
  --line-bright: #2e3946;
  --cyan: #22d3ee;
  --cyan-dim: #0e7490;
  --cyan-glow: rgba(34,211,238,0.14);
  --text: #eef2f6;
  --text-dim: #8792a0;
  --text-faint: #5c6674;
  --radius: 10px;
  --serif-display: 'Space Grotesk', sans-serif;
  --sans: 'Inter', sans-serif;
  --mono: 'JetBrains Mono', monospace;
}
*{ margin:0; padding:0; box-sizing:border-box; }
html{ scroll-behavior:smooth; }
body{
  background:var(--bg); color:var(--text); font-family:var(--sans);
  font-size:16px; line-height:1.65; -webkit-font-smoothing:antialiased;
}
h1,h2,h3{ font-family:var(--serif-display); font-weight:600; letter-spacing:-0.01em; color:var(--text); }
a{ color:inherit; text-decoration:none; }
img{ max-width:100%; display:block; }
.wrap{ max-width:1000px; margin:0 auto; padding:0 32px; }

.site-header{ padding:20px 0; border-bottom:1px solid var(--line); position:sticky; top:0; background:rgba(10,13,17,0.96); z-index:10; }
.site-header .wrap{ display:flex; align-items:center; justify-content:space-between; max-width:1100px; }
.site-header a[aria-label]{ font-family:var(--serif-display); font-weight:700; font-size:18px; }
.site-header nav{ display:flex; gap:22px; }
.site-header nav a{ font-size:14px; color:var(--text-dim); transition:color .15s ease; }
.site-header nav a:hover{ color:var(--cyan); }

.project-container{ max-width:1100px; margin:0 auto; padding:0 32px; }
.breadcrumbs{ padding:20px 0 0; font-size:13px; color:var(--text-faint); }
.breadcrumbs a{ color:var(--text-dim); }
.breadcrumbs a:hover{ color:var(--cyan); }

.project-hero{ display:grid; grid-template-columns:1fr 1fr; gap:44px; align-items:center; padding:36px 0 56px; border-bottom:1px solid var(--line); }
.project-kicker{ display:inline-flex; align-items:center; gap:9px; font-family:var(--mono); font-size:12px; letter-spacing:0.14em; text-transform:uppercase; color:var(--cyan); margin-bottom:14px; }
.project-kicker::before{ content:''; width:20px; height:1px; background:var(--cyan); }
.project-hero h1{ font-size:32px; line-height:1.15; margin-bottom:16px; }
.project-lead{ color:var(--text-dim); font-size:16px; max-width:52ch; }
.project-meta{ display:flex; flex-wrap:wrap; gap:10px; margin-top:20px; }
.project-tag{ font-family:var(--mono); font-size:12px; color:var(--text-dim); border:1px solid var(--line-bright); padding:5px 12px; border-radius:20px; }
.project-image{ width:100%; height:auto; border-radius:var(--radius); border:1px solid var(--line); background:var(--bg-panel-2); object-fit:contain; }

.project-section{ padding:40px 0; border-bottom:1px solid var(--line); }
.project-section h2{ font-size:21px; margin-bottom:14px; }
.project-section p{ color:var(--text-dim); font-size:15.5px; max-width:75ch; }
.project-section p + p{ margin-top:14px; }
.project-spec{ font-family:var(--mono); font-size:14px; color:var(--cyan); background:var(--bg-panel); border:1px solid var(--line); border-radius:8px; padding:14px 18px; display:inline-block; }

.project-cta{ padding:52px 0; text-align:center; }
.project-cta h2{ font-size:24px; margin-bottom:10px; }
.project-cta p{ color:var(--text-dim); margin-bottom:22px; }
.project-cta a{ display:inline-block; background:var(--cyan); color:#04141a; font-weight:600; padding:13px 28px; border-radius:7px; font-size:14.5px; transition:transform .15s ease; }
.project-cta a:hover{ transform:translateY(-2px); }

.related-projects{ padding:40px 0 64px; }
.related-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:16px; margin-top:20px; }
.related-grid--2{ grid-template-columns:repeat(2,1fr); }
.project-section h3{ font-size:16px; margin:22px 0 6px; }
.project-section ul, .project-section ol{ margin:14px 0 0 22px; color:var(--text-dim); font-size:15.5px; max-width:75ch; }
.project-section li{ margin-bottom:7px; padding-left:4px; }
.project-section li::marker{ color:var(--cyan); }
.related-card{ display:block; border-radius:var(--radius); overflow:hidden; border:1px solid var(--line); background:var(--bg-panel); transition:transform .15s ease, border-color .15s ease; }
.related-card:hover{ transform:translateY(-3px); border-color:var(--cyan-dim); }
.related-card img{ width:100%; aspect-ratio:4/3; object-fit:cover; }
.related-card div{ padding:12px 14px; }
.related-card strong{ display:block; font-size:13.5px; font-weight:600; margin-bottom:2px; }
.related-card span{ font-family:var(--mono); font-size:11px; color:var(--text-faint); }

footer{ padding:28px 0; border-top:1px solid var(--line); color:var(--text-faint); font-size:13px; text-align:center; }
footer a{ color:var(--cyan); }

.bringup-gallery{ display:grid; grid-template-columns:1fr 1fr; gap:16px; margin-top:24px; }
@media (max-width:880px){
  .project-hero{ grid-template-columns:1fr; }
  .project-hero .project-image{ order:-1; }
  .related-grid{ grid-template-columns:1fr 1fr; }
}
@media (max-width:560px){
  .wrap, .project-container{ padding:0 20px; }
  .project-hero h1{ font-size:26px; }
  .related-grid{ grid-template-columns:1fr; }
  .bringup-gallery{ grid-template-columns:1fr; }
}

.blog-list{ display:grid; grid-template-columns:1fr; gap:16px; margin:20px 0 64px; }
.related-card.blog-card{ display:flex; gap:20px; padding:18px; }
.blog-card .blog-card-img, .blog-card .blog-card-tile{ width:200px; aspect-ratio:4/3; flex-shrink:0; border-radius:8px; object-fit:cover; }
.blog-card .blog-card-tile{ background:var(--bg-panel-2); border:1px solid var(--line); display:flex; align-items:center; justify-content:center; padding:12px; text-align:center; font-family:var(--serif-display); font-size:13px; color:var(--text-faint); }
.blog-card .blog-card-text{ padding:0; }
.blog-card .blog-card-kicker{ font-family:var(--mono); font-size:11px; color:var(--cyan); text-transform:uppercase; letter-spacing:0.08em; }
.blog-card .blog-card-title{ display:block; font-size:17px; margin-top:6px; }
.blog-card .blog-card-blurb{ display:block; margin-top:6px; color:var(--text-dim); font-size:13.5px; }
@media (max-width:560px){
  .related-card.blog-card{ flex-direction:column; }
  .blog-card .blog-card-img, .blog-card .blog-card-tile{ width:100%; }
}

.case-figure{ margin:24px 0 0; max-width:680px; }
.case-figure img, .case-figure svg{ width:100%; height:auto; border-radius:var(--radius); border:1px solid var(--line); display:block; background:var(--bg-panel-2); }
.post-hero-art{ margin:36px 0 0; border-radius:var(--radius); border:1px solid var(--line); background:var(--bg-panel-2); overflow:hidden; }
.post-hero-art svg{ display:block; width:100%; height:auto; }
.case-figure figcaption{ font-size:12.5px; color:var(--text-faint); margin-top:8px; line-height:1.5; }
.table-scroll{ overflow-x:auto; margin-top:16px; max-width:75ch; }
.wiring-table{ width:100%; border-collapse:collapse; font-size:14.5px; }
.wiring-table th{ text-align:left; font-family:var(--mono); font-size:11px; text-transform:uppercase; letter-spacing:0.08em; color:var(--text-faint); padding:8px 12px; border-bottom:1px solid var(--line-bright); }
.wiring-table td{ padding:10px 12px; border-bottom:1px solid var(--line); color:var(--text-dim); }
.wiring-table td:first-child{ white-space:nowrap; color:var(--text); }
.wire-dot{ display:inline-block; width:12px; height:12px; border-radius:50%; margin-right:10px; vertical-align:middle; border:1px solid rgba(255,255,255,0.25); }

.hero-figure{ margin:0; padding:36px 0 0; }
.hero-figure a{ display:block; }
.hero-figure figcaption{ font-size:12px; color:var(--text-faint); margin-top:8px; line-height:1.5; }

.photo-trio{ display:grid; grid-template-columns:repeat(3,1fr); gap:16px; margin-top:20px; }
.photo-trio figure{ margin:0; }
.photo-trio a{ display:block; }
.photo-trio img{ width:100%; height:auto; border-radius:var(--radius); border:1px solid var(--line); display:block; background:var(--bg-panel-2); }
.photo-trio figcaption{ font-size:12.5px; color:var(--text-faint); margin-top:8px; line-height:1.5; }
@media (max-width:880px){ .photo-trio{ grid-template-columns:1fr 1fr; } }
@media (max-width:560px){ .photo-trio{ grid-template-columns:1fr; } }

.photo-duo{ display:grid; grid-template-columns:repeat(2,1fr); gap:16px; margin-top:20px; align-items:start; }
.photo-duo figure{ margin:0; }
.photo-duo a{ display:block; }
.photo-duo img{ width:100%; height:auto; border-radius:var(--radius); border:1px solid var(--line); display:block; background:var(--bg-panel-2); }
.photo-duo figcaption{ font-size:12.5px; color:var(--text-faint); margin-top:8px; line-height:1.5; }
@media (max-width:560px){ .photo-duo{ grid-template-columns:1fr; } }
.case-figure a{ display:block; }
.case-figure--portrait{ max-width:440px; }
