.home { padding: clamp(5rem, 10vw, 9rem) 0 clamp(4rem, 8vw, 7rem); }
.hero { max-width: 58rem; padding-bottom: clamp(5rem, 10vw, 8rem); }
.hero-label { margin: 0 0 1.4rem; }
.handle { display: inline-block; padding: .25rem 0; color: var(--dim); cursor: text; font: 600 .76rem/1.4 var(--mono); letter-spacing: .04em; user-select: all; }
.hero h1 { margin-bottom: 1.5rem; white-space: nowrap; }
.hero .lede { max-width: 48rem; margin: 0; }
.directory { display: grid; grid-template-columns: 13rem minmax(0, 1fr); gap: clamp(2rem, 6vw, 5rem); border-top: 1px solid var(--line); }
.directory > h2 { padding: 1.65rem 0; color: var(--quiet); font-size: 1rem; letter-spacing: -.01em; }
.links a, .links .entry { display: grid; grid-template-columns: 2.5rem minmax(11rem, .8fr) minmax(15rem, 1.2fr); gap: 1.25rem; align-items: baseline; min-height: 5.5rem; padding: 1.55rem 0; border-bottom: 1px solid var(--line); color: var(--paper); text-decoration: none; }
.links a:hover .service-name { color: var(--red); }
.index, .service-host { color: var(--dim); font: .68rem var(--mono); }
.service-name { font-weight: 700; }
.service-detail { color: var(--quiet); font-size: .9rem; }
.service-host { display: block; margin-top: .1rem; }
@media (max-width: 45rem) {
  .home { padding-top: 4rem; }
  .hero { padding-bottom: 4rem; }
  .hero h1 { font-size: clamp(2.2rem, 10.5vw, 3rem); overflow-wrap: normal; white-space: normal; }
  .directory { grid-template-columns: 1fr; gap: 0; }
  .directory > h2 { padding-bottom: .15rem; }
  .links a, .links .entry { grid-template-columns: 2rem 1fr; }
  .service-detail { grid-column: 2; }
}
