:root{
  --canvas:#f4f0e6; --sheet:#fffdf8; --ink:#1d1b18; --muted:#5a544a;
  --navy:#2a3f5f; --dark:#23211d; --rule:#cfc6b2; --gold:#9c7f3d;
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--canvas);color:var(--ink);
  font:17px/1.66 Georgia,"Times New Roman",serif}
a{color:var(--navy)}
a:focus-visible,button:focus-visible{outline:2px solid var(--gold);outline-offset:2px}
img{max-width:100%;height:auto;display:block}
.skip{position:absolute;left:-9999px;top:0}
.skip:focus{left:8px;top:8px;background:var(--sheet);padding:8px 12px;z-index:9;
  border:1px solid var(--ink)}
.shell{max-width:1140px;margin:0 auto;background:var(--sheet);
  border-left:1px solid var(--rule);border-right:1px solid var(--rule)}
.util,.kind,.crumb,nav.menu a,.rail h2,.groups h2,.pubs h2,th{
  font-family:Arial,Helvetica,sans-serif;text-transform:uppercase;
  font-size:11px;letter-spacing:.09em;font-weight:700}

/* identity */
.identity{display:flex;align-items:flex-end;justify-content:space-between;
  gap:24px;padding:24px 32px 16px;border-bottom:1px solid var(--gold)}
.identity .mark{display:flex;align-items:center;gap:14px}
.identity .mark img{width:44px;height:44px}
.sitename{font-size:34px;line-height:1.1;margin:0;letter-spacing:.01em}
.sitename a{color:var(--ink);text-decoration:none}
.util{color:var(--muted);text-align:right;max-width:34ch;line-height:1.7;
  margin:0 0 4px}

/* menu */
nav.menu{background:var(--dark)}
nav.menu ul{list-style:none;margin:0;padding:0 20px;display:flex;flex-wrap:wrap}
nav.menu a{display:block;padding:12px 16px;color:#efe9dc;text-decoration:none;
  border-right:1px solid rgba(255,255,255,.14)}
nav.menu li:first-child a{border-left:1px solid rgba(255,255,255,.14)}
nav.menu a:hover,nav.menu a[aria-current="page"]{background:#3a3730;color:#fff}
.strip{border-bottom:1px solid var(--rule)}
.strip img{width:100%;height:auto}

/* homepage columns */
.opening{display:grid;grid-template-columns:minmax(0,55fr) minmax(0,25fr) minmax(0,20fr);
  padding:28px 32px 40px;gap:0 32px}
.intro{grid-column:1;grid-row:1}
.pubs{grid-column:2;grid-row:1;border-left:1px solid var(--rule);
  padding-left:32px}
.rail{grid-column:3;grid-row:1;border-left:1px solid var(--rule);
  padding-left:32px}
.subjects{grid-column:1 / -1;grid-row:2}
.directory{grid-column:1 / -1;grid-row:3}
.intro h1{font-size:40px;line-height:1.16;margin:0 0 18px;font-weight:400}
.intro p{margin:0 0 16px;max-width:68ch}
.lede{font-size:18px}
h2.ruled{font-size:20px;font-weight:400;margin:36px 0 14px;padding-bottom:7px;
  border-bottom:1px solid var(--rule);display:flex;align-items:center;gap:10px}
h2.ruled::before{content:"";width:7px;height:7px;background:var(--navy);
  flex:0 0 auto}
.subjects ul{list-style:none;margin:0;padding:0;display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));gap:0 32px}
.directory ol{column-count:2;column-gap:40px}
.directory li{break-inside:avoid}
.subjects li{border-bottom:1px solid var(--rule);padding:9px 0}
.subjects a{font-size:17px;text-decoration:none;border-bottom:1px solid transparent}
.subjects a:hover{border-bottom-color:var(--navy)}
.subjects span{display:block;font-size:14.5px;color:var(--muted);line-height:1.5}
.directory ol{list-style:none;margin:0;padding:0}
.directory li{border-bottom:1px solid var(--rule);padding:14px 0;
  display:grid;grid-template-columns:1fr 90px;gap:4px 16px}
.directory h3{margin:0;font-size:18px;font-weight:400}
.directory h3 a{text-decoration:none}
.directory h3 a:hover{text-decoration:underline}
.kind{grid-column:2;grid-row:1;text-align:right;color:var(--muted);
  align-self:center}
.directory p{grid-column:1 / -1;margin:0;font-size:15px;color:#3c3830;
  max-width:62ch}
.pubs h2,.rail h2{margin:0 0 10px;padding-bottom:6px;
  border-bottom:1px solid var(--rule);color:var(--muted)}
.pubs h2+*,.rail h2+*{margin-top:0}
.pubs section,.rail section{margin-bottom:30px}
.pubs article{border-bottom:1px solid var(--rule);padding:10px 0}
.pubs h3{margin:0 0 4px;font-size:17px;font-weight:400}
.pubs h3 a{text-decoration:none}
.pubs p{margin:0;font-size:14.5px;color:var(--muted);line-height:1.55}
.pubs p.afterword{margin:14px 0 0;font-size:15px;color:#3c3830;line-height:1.6}
.rail ol,.rail ul{margin:0;padding:0;list-style:none}
.rail li{border-bottom:1px solid var(--rule);padding:7px 0;font-size:15px}
.rail p{font-size:14.5px;color:var(--muted);margin:0 0 12px;line-height:1.6}
.terms li{display:inline-block;border:0;padding:0;margin:0 10px 6px 0;
  font-size:14.5px;color:var(--muted)}

/* inner pages */
.page{display:grid;grid-template-columns:minmax(0,72fr) minmax(0,28fr);
  padding:28px 32px 44px;gap:0 32px}
.body-col{grid-column:1}
.side-col{grid-column:2;border-left:1px solid var(--rule);padding-left:32px}
.side-col h2:not(:first-child){margin-top:26px}
.crumb{color:var(--muted);margin:0 0 14px}
.crumb a{color:var(--muted)}
.body-col h1{font-size:34px;line-height:1.2;font-weight:400;margin:0 0 16px}
.stand{font-size:19px;line-height:1.6;margin:0 0 26px;max-width:66ch;
  border-left:3px solid var(--gold);padding-left:16px}
.body-col p{max-width:68ch;margin:0 0 15px}
table{border-collapse:collapse;width:100%;margin:6px 0 8px;font-size:15px}
th,td{border-bottom:1px solid var(--rule);padding:8px 10px;text-align:right}
th:first-child,td:first-child{text-align:left}
th{color:var(--muted);vertical-align:bottom}
caption{caption-side:bottom;text-align:left;font-size:14px;color:var(--muted);
  padding-top:10px;line-height:1.55}
figure{margin:22px 0}
figure img{border:1px solid var(--rule);background:#fff;width:100%}
figcaption{font-size:14px;color:var(--muted);padding-top:8px;line-height:1.55}
.related{margin-top:34px;border-top:1px solid var(--rule);padding-top:8px}
.related ul{list-style:none;margin:0;padding:0}
.related li{border-bottom:1px solid var(--rule);padding:9px 0}
.gloss{margin:0;padding:0}
.gloss div{border-bottom:1px solid var(--rule);padding:11px 0;
  display:grid;grid-template-columns:minmax(0,240px) minmax(0,1fr);gap:4px 24px}
.gloss dt{font-size:17px}
.gloss dd{margin:0;font-size:15.5px;color:#3c3830;line-height:1.6}

/* footer */
footer.legal{background:var(--dark);color:#d9d3c6;padding:30px 32px 34px}
footer.legal .groups{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));
  gap:24px 32px}
footer.legal h2{color:#a49b88;margin:0 0 8px;padding-bottom:6px;
  border-bottom:1px solid rgba(255,255,255,.16)}
footer.legal ul{list-style:none;margin:0;padding:0}
footer.legal li{padding:5px 0;font-size:15px}
footer.legal a{color:#e8e2d5;text-decoration:none}
footer.legal a:hover{text-decoration:underline}
footer.legal .colophon{margin-top:26px;padding-top:16px;
  border-top:1px solid rgba(255,255,255,.16);font-size:14.5px;color:#a49b88;
  display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap}
footer.legal .colophon p{margin:0;max-width:70ch}

@media (max-width:880px){
  .shell{border-left:0;border-right:0}
  .identity{flex-direction:column;align-items:flex-start;gap:10px;
    padding:18px 20px 14px}
  .util{text-align:left;max-width:46ch}
  nav.menu ul{display:block;padding:0}
  nav.menu a{border-right:0;border-bottom:1px solid rgba(255,255,255,.14);
    padding:13px 20px}
  nav.menu li:first-child a{border-left:0}
  .opening,.page{display:block;padding:20px 20px 34px}
  .intro h1{font-size:30px}
  .body-col h1{font-size:28px}
  .subjects ul{grid-template-columns:1fr}
  .directory ol{column-count:1}
  .pubs,.rail,.side-col{border-left:0;padding-left:0;margin-top:30px;
    border-top:1px solid var(--rule);padding-top:18px}
  .directory li{grid-template-columns:1fr}
  .kind{grid-column:1;grid-row:auto;text-align:left}
  .gloss div{grid-template-columns:1fr}
  footer.legal .groups{grid-template-columns:1fr}
  table{display:block;overflow-x:auto}
}
