/* ============================================================
   Atypically — shared left rail for interior pages.
   The homepage frames everything in a fixed ink rail; interior
   pages used a top nav, so opening one felt like a different
   site. This restyles the existing <nav> into that same rail
   and insets the page. Each page keeps its own ground colour —
   only the chrome is held constant.
   ============================================================ */

body.has-rail {
  --rail-w: 260px;
  --rail-pad: 60px;
  --rail-logo: clamp(200px, 17vw, 268px);
  /* content clears the rail plus whatever the wordmark overhangs by */
  --rail-inset: max(var(--rail-w), calc(var(--rail-pad) + var(--rail-logo) + 24px));
}
body.has-rail nav {
  position: fixed;
  top: 0; left: 0; bottom: 0;
  width: var(--rail-w);
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  padding: 52px 0 46px var(--rail-pad);
  height: auto;
  min-height: 100vh;
  background: var(--ink);
  backdrop-filter: none;
  border: none;
  z-index: 60;
}
body.has-rail nav .nav-logo {
  display: block;
  flex: none;
  width: auto !important;
  height: auto !important;
  max-width: none !important;
  max-height: none !important;
  overflow: visible !important;
}
body.has-rail nav .nav-logo img {
  width: var(--rail-logo) !important;
  height: auto !important;
  max-width: none !important;
  max-height: none !important;
  display: block;
}

body.has-rail .nav-links {
  list-style: none;
  margin: auto 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 11px;
}
body.has-rail .nav-links a {
  display: block;
  font-family: var(--mono);
  font-size: 13px;
  font-weight: 500;
  letter-spacing: 0.13em;
  text-transform: uppercase;
  color: rgba(232,227,220,0.42);
  text-decoration: none;
  background: none;
  transition: color 0.2s;
}
body.has-rail .nav-links a:hover { color: var(--bone); }
body.has-rail .nav-links a.is-current { color: var(--bone); }

/* the case being read sits at the top of the list, in plum */
body.has-rail .rail-case {
  font-family: var(--mono);
  font-size: 13px;
  font-weight: 500;
  letter-spacing: 0.13em;
  text-transform: uppercase;
  color: var(--plum-lift);
  margin: 0 0 16px;
}
body.has-rail .rail-back {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-family: var(--mono);
  font-size: 12px;
  font-weight: 600;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  text-decoration: none;
  color: var(--green);
  margin-bottom: 26px;
  transition: gap 0.22s ease;
}
body.has-rail .rail-back:hover { gap: 12px; }

body.has-rail .cta-headline { max-width: 26ch; }

body.has-rail .rail-meta {
  flex: none;
  display: flex;
  flex-direction: column;
  gap: 5px;
  font-family: var(--mono);
  font-size: 11px;
  letter-spacing: 0.06em;
  color: rgba(232,227,220,0.4);
}
body.has-rail .rail-mark { display: block; flex: none; margin: auto 0 22px; }
body.has-rail .rail-mark img { width: 34px; height: auto; display: block; }
body.has-rail .rail-meta a { color: rgba(232,227,220,0.4); text-decoration: none; }
body.has-rail .rail-meta a:hover { color: var(--green); }

/* inset every band of page content past the rail */
body.has-rail .page-head,
body.has-rail .sec,
body.has-rail .cta-section,
body.has-rail footer,
body.has-rail .post-hero,
body.has-rail .article-body,
body.has-rail .post-hero-figure,
body.has-rail .post-back,
body.has-rail article { margin-left: var(--rail-inset); }

@media (max-width: 860px) {
  body.has-rail nav {
    position: sticky;
    inset: auto;
    width: auto;
    flex-direction: row;
    align-items: center;
    flex-wrap: wrap;
    gap: 12px 20px;
    padding: 16px clamp(18px, 5vw, 28px);
    height: auto;
    min-height: 0;
    border-bottom: 1px solid rgba(232,227,220,0.12);
  }
  body.has-rail nav .nav-logo img { width: 148px !important; }
  body.has-rail .nav-links { margin: 0; flex-direction: row; flex-wrap: wrap; gap: 8px 16px; }
  body.has-rail .nav-links a { font-size: 11px; }
  body.has-rail .rail-case { margin: 0; }
  body.has-rail .rail-back { margin: 0; }
  body.has-rail .rail-mark,
  body.has-rail .rail-meta { display: none; }
  body.has-rail .page-head,
  body.has-rail .sec,
  body.has-rail .cta-section,
  body.has-rail footer,
  body.has-rail .post-hero,
  body.has-rail .article-body,
  body.has-rail .post-hero-figure,
  body.has-rail .post-back,
  body.has-rail article { margin-left: 0; }
}
