:root {
  color-scheme:dark;
  --bg:#151719;
  --panel:#1c1f22;
  --line:#35393e;
  --text:#eeefeb;
  --muted:#a6adb4;
  --accent:#f1a36e;
  --mono:ui-monospace,SFMono-Regular,Consolas,monospace;
  font-family:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  background:var(--bg);
  color:var(--text);
  font-synthesis:none
}
* {
  box-sizing:border-box
}
html {
  scroll-behavior:smooth;
  scroll-padding-top:24px
}
body {
  margin:0;
  font-size:16px;
  line-height:1.65
}
a {
  color:inherit;
  text-decoration:none
}
button {
  font:inherit
}
a,button,summary {
  -webkit-tap-highlight-color:transparent
}
button,summary {
  cursor:pointer
}
a:focus-visible,button:focus-visible,summary:focus-visible {
  outline:2px solid var(--accent);
  outline-offset:5px;
  border-radius:3px
}
a:hover {
  color:var(--accent)
}
[hidden] {
  display:none!important
}
.wrap {
  max-width:1180px;
  margin-inline:auto;
  padding-inline:32px
}
.muted {
  color:var(--muted)
}
.accent {
  color:var(--accent)
}
.skip-link {
  position:absolute;
  top:-80px;
  left:16px;
  padding:12px;
  background:var(--text);
  color:var(--bg);
  z-index:10
}
.skip-link:focus {
  top:10px
}
.site-header {
  min-height:94px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  border-bottom:1px solid var(--line);
  gap:20px
}
.brand {
  display:flex;
  align-items:center;
  font-weight:750;
  font-size:23px;
  letter-spacing:-1px
}
.brand-mark {
  display:grid;
  place-items:center;
  width:35px;
  height:35px;
  background:var(--accent);
  color:var(--bg);
  font:700 17px var(--mono);
  margin-right:12px;
  border-radius:5px
}
.site-header nav {
  display:flex;
  gap:28px;
  align-items:center;
  font-size:14px
}
.site-header nav a {
  display:inline-flex;
  align-items:center;
  min-height:44px;
  gap:5px
}
.intro {
  padding-block:58px 51px;
  max-width:790px
}
.eyebrow,.section-label,.count,.lab-tag,.version {
  font-family:var(--mono);
  font-size:11px;
  letter-spacing:.06em
}
.eyebrow {
  color:var(--muted);
  text-transform:uppercase;
  display:flex;
  align-items:center;
  gap:9px;
  margin:0 0 16px
}
.tiny-square {
  width:6px;
  height:6px;
  background:var(--accent)
}
h1,h2,h3,p {
  margin-top:0
}
h1 {
  font-size:clamp(32px,4.1vw,49px);
  line-height:1.15;
  letter-spacing:-1.8px;
  font-weight:650;
  margin-bottom:22px
}
h1 span {
  color:var(--accent)
}
.intro p:not(.eyebrow) {
  margin-bottom:5px;
  font-size:16px
}
h2 {
  font-size:24px;
  letter-spacing:-.6px;
  line-height:1.3;
  margin-bottom:0;
  font-weight:600
}
.section-heading {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px
}
.section-label {
  color:var(--muted);
  white-space:nowrap
}
.filter-bar {
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:12px;
  margin:23px 0 21px
}
.filters {
  display:flex;
  gap:7px;
  flex-wrap:wrap
}
.filter {
  border:1px solid transparent;
  background:transparent;
  color:var(--muted);
  padding:8px 17px;
  border-radius:5px;
  font-size:13px;
  min-height:44px
}
.filter:hover {
  background:#25292d;
  color:var(--text)
}
.filter[aria-pressed=true] {
  border-color:#575148;
  background:#322a24;
  color:#f4ba92
}
.count {
  margin:0;
  color:var(--muted);
  white-space:nowrap
}
.project-grid {
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:16px;
  align-items:start
}
.project-card {
  position:relative;
  padding:23px 23px 0;
  background:var(--panel);
  border:1px solid var(--line);
  border-radius:8px;
  min-width:0;
  overflow-wrap:anywhere
}
.card-top {
  display:flex;
  justify-content:space-between;
  align-items:center;
  margin-bottom:24px;
  gap:12px
}
.project-icon {
  display:grid;
  place-items:center;
  background:#292c30;
  border:1px solid #41454a;
  border-radius:7px;
  width:43px;
  height:43px;
  color:var(--accent);
  font:26px var(--mono)
}
.status {
  font:10px var(--mono);
  letter-spacing:.01em;
  border:1px solid #43494d;
  border-radius:4px;
  padding:4px 7px;
  color:#bbc7c9
}
.project-card h3 {
  font-size:19px;
  line-height:1.35;
  font-weight:600;
  letter-spacing:-.4px;
  margin-bottom:11px
}
.description {
  font-size:14px;
  line-height:1.7;
  color:var(--muted);
  min-height:72px;
  margin-bottom:19px
}
.tags {
  display:flex;
  gap:7px;
  flex-wrap:wrap;
  list-style:none;
  padding:0;
  margin:0 0 20px;
  min-height:23px
}
.tags li {
  font:10px/1.5 var(--mono);
  padding:3px 6px;
  background:#25292c;
  color:#bac0c6;
  border-radius:3px
}
.actions {
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  justify-content:space-between;
  gap:8px;
  min-height:44px;
  margin-bottom:12px
}
.button {
  display:inline-flex;
  align-items:center;
  min-height:44px;
  font-size:12px;
  padding:7px 10px;
  border:1px solid #4b5056;
  border-radius:4px
}
.launch {
  color:var(--bg);
  background:var(--accent);
  border-color:var(--accent)
}
.launch:hover {
  background:#ffc298;
  color:var(--bg)
}
.unavailable {
  font-size:11px;
  color:var(--muted)
}
.project-details {
  border-top:1px solid var(--line)
}
.project-details summary {
  min-height:44px;
  font-size:12px;
  color:#c0c5cb;
  display:flex;
  align-items:center;
  justify-content:space-between;
  list-style:none
}
.project-details summary::-webkit-details-marker {
  display:none
}
.project-details summary::after {
  content:'+';
  font:18px var(--mono);
  color:var(--muted)
}
.project-details[open] summary::after {
  content:'−'
}
.project-details p {
  font-size:13px;
  color:var(--muted);
  padding:5px 0 10px;
  margin-bottom:10px
}
.text-link {
  color:var(--accent);
  font-size:14px;
  display:inline-flex;
  align-items:center;
  min-height:44px;
  gap:8px
}
.details-link {
  margin-bottom:10px
}
.shelf-note {
  color:var(--muted);
  font-size:12px;
  margin:21px 0 0
}
.lab {
  margin-top:61px;
  padding-block:30px 34px;
  border-block:1px solid var(--line)
}
.lab>.muted {
  font-size:14px;
  margin:11px 0 26px
}
.lab-grid {
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:32px
}
.lab-grid article {
  border-left:2px solid #45423d;
  padding-left:18px
}
.lab-number {
  font:11px var(--mono);
  color:var(--accent)
}
.lab h3 {
  font-weight:550;
  font-size:16px;
  margin:7px 0
}
.lab-grid p {
  color:var(--muted);
  font-size:13px;
  line-height:1.7;
  margin-bottom:13px
}
.lab-tag {
  color:var(--muted);
  font-size:10px;
  letter-spacing:0
}
.about {
  display:grid;
  grid-template-columns:1fr 2fr;
  gap:32px;
  padding-block:45px 48px
}
.about h2 {
  margin-top:12px
}
.about p {
  font-size:14px;
  margin-bottom:12px;
  max-width:650px
}
footer {
  border-top:1px solid var(--line);
  padding-block:24px;
  display:flex;
  justify-content:space-between;
  gap:20px;
  font-size:12px
}
.version {
  margin-left:15px;
  font-size:10px
}
@media(min-width:850px) {
  .project-card {
    min-height:337px
  }
  .project-card h3 {
    min-height:26px
  }
}
@media(max-width:950px) {
  .project-grid {
    grid-template-columns:repeat(2,minmax(0,1fr))
  }
  .description {
    min-height:72px
  }
}
@media(max-width:600px) {
  .wrap {
    padding-inline:20px
  }
  .site-header {
    flex-wrap:wrap;
    gap:7px;
    padding-block:17px 8px
  }
  .site-header nav {
    width:100%;
    gap:0;
    justify-content:space-between
  }
  .brand {
    font-size:22px
  }
  .intro {
    padding-block:35px 32px
  }
  h1 {
    letter-spacing:-1px
  }
  .intro p:not(.eyebrow) {
    font-size:15px
  }
  .eyebrow {
    font-size:9px
  }
  .section-heading {
    align-items:baseline
  }
  h2 {
    font-size:21px
  }
  .section-label {
    font-size:9px
  }
  .filter-bar {
    flex-wrap:wrap;
    margin-block:18px
  }
  .filter {
    padding-inline:13px
  }
  .count {
    font-size:10px
  }
  .project-grid {
    grid-template-columns:1fr
  }
  .project-card {
    padding:20px 20px 0
  }
  .description {
    min-height:0
  }
  .card-top {
    margin-bottom:18px
  }
  .lab {
    margin-top:40px
  }
  .lab-grid {
    grid-template-columns:1fr;
    gap:25px
  }
  .about {
    grid-template-columns:1fr;
    gap:21px;
    padding-block:32px
  }
  footer {
    flex-direction:column;
    gap:7px
  }
  .version {
    margin-left:9px
  }
}
@media(prefers-reduced-motion:reduce) {
  html {
    scroll-behavior:auto
  }
}
