:root {
  --bg: #121417;
  --bg-elev: #1a1d22;
  --bg-elev-2: #22262c;
  --font: "Outfit", "Segoe UI", sans-serif;
  --display: "Oswald", "Arial Narrow", sans-serif;
  --rail: 300px;
}
body { background: var(--bg); }
.shell { display: grid; grid-template-columns: var(--rail) 1fr; min-height: 100vh; }
.rail {
  position: sticky;
  top: 0;
  height: 100vh;
  padding: 28px 22px;
  background: #0c0d10;
  border-right: 1px solid var(--line);
  display: flex;
  flex-direction: column;
  gap: 18px;
}
.rail-top { display: flex; align-items: center; justify-content: space-between; gap: 8px; }
.brand img { height: 52px; width: auto; }
.rail-est { margin: 0; color: var(--muted); letter-spacing: 0.14em; text-transform: uppercase; font-size: 12px; }
.rail nav { display: flex; flex-direction: column; gap: 4px; }
.rail nav a {
  text-decoration: none;
  color: var(--silver);
  padding: 8px 0;
  border-bottom: 1px solid rgba(199, 201, 206, 0.08);
  letter-spacing: 0.08em;
  text-transform: uppercase;
  font-size: 14px;
  font-family: var(--display);
}
.rail nav a[aria-current="page"] { color: #fff; padding-left: 10px; box-shadow: inset 3px 0 0 var(--blue); }
.rail .btn { margin-top: 12px; }
.rail-contact { margin-top: auto; display: grid; gap: 10px; color: var(--muted); font-size: 0.92rem; }
.rail-contact p { margin: 0; display: flex; justify-content: space-between; gap: 8px; align-items: center; }
.rail-contact a { color: var(--silver); }
.stage { min-width: 0; }
.hero { padding: 64px var(--pad) 20px; max-width: 860px; }
.hero h1 { font-size: clamp(44px, 6vw, 78px); max-width: 14ch; }
.essay { font-size: 1.15rem; max-width: 62ch; }
.page-hero .wrap { max-width: 820px; }
.section .wrap, .site-footer .wrap { max-width: 980px; }
@media (max-width: 900px) {
  .nav-toggle { display: inline-flex; }
  .shell { grid-template-columns: 1fr; }
  .rail { position: sticky; height: auto; z-index: 30; }
  .rail nav { display: none; }
  .rail nav.is-open { display: flex; }
  .rail-contact { display: none; }
  .rail nav.is-open + .rail-contact, .rail.is-open .rail-contact { display: grid; }
}
.rail nav a.btn,
.rail nav a.btn:hover { color: #0a0a0a; text-decoration: none; }
