/* Vukeldosta — rail-scale */

:root{
  --bg:#1e1a20;
  --bg-alt:#272229;
  --bg-contrast:#e9e6e1;
  --ink:#e9e6e1;
  --ink-dim:#9c949c;
  --ink-dark:#1e1a20;
  --brass:#c9a24b;
  --steel:#a9b2bd;
  --serif:Georgia,'Times New Roman',Times,serif;
  --sans:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Arial,sans-serif;
  --step:80px;
}

*{box-sizing:border-box}

html{-webkit-text-size-adjust:100%}

body{
  margin:0;
  background:var(--bg);
  color:var(--ink);
  font-family:var(--serif);
  font-size:18px;
  line-height:1.65;
  overflow-x:hidden;
}

img{max-width:100%;height:auto;display:block}

a{color:var(--brass);text-decoration:none;border-bottom:1px solid rgba(201,162,75,.45)}
a:hover{border-bottom-color:var(--brass)}
a:focus-visible{outline:2px solid var(--brass);outline-offset:3px;border-bottom-color:transparent}
:focus-visible{outline:2px solid var(--brass);outline-offset:3px}

/* ---------- grid ---------- */
.grid{
  display:grid;
  grid-template-columns:repeat(12,1fr);
  gap:0 24px;
  width:100%;
  max-width:1240px;
  margin:0 auto;
  padding:0 32px;
}

.rail{grid-column:1 / span 2}
.body-col{grid-column:3 / span 7}
.wide-col{grid-column:3 / span 9}

/* ---------- rail marks ---------- */
.rail-mark{
  font-family:var(--sans);
  font-size:12px;
  letter-spacing:.14em;
  text-transform:uppercase;
  color:var(--steel);
  padding-top:.5em;
}
.rail-mark .num{display:block;color:var(--brass);margin-bottom:10px}
.rail-ticks{
  margin-top:14px;
  display:flex;
  flex-direction:column;
  gap:8px;
}
.rail-ticks span{
  display:block;
  width:1px;
  height:24px;
  background:rgba(169,178,189,.4);
}

/* ---------- header / nav ---------- */
.site-head{
  border-bottom:1px solid rgba(169,178,189,.22);
  padding:22px 0 20px;
}
.site-head .grid{align-items:baseline}
.brand{
  grid-column:1 / span 3;
  font-family:var(--serif);
  font-size:20px;
  letter-spacing:.06em;
  color:var(--ink);
  border-bottom:0;
}
.brand:hover{color:var(--brass)}
.site-nav{grid-column:5 / span 8;justify-self:end}
.site-nav ul{
  list-style:none;margin:0;padding:0;
  display:flex;flex-wrap:wrap;gap:8px 26px;
}
.site-nav a{
  font-family:var(--sans);
  font-size:12px;
  letter-spacing:.14em;
  text-transform:uppercase;
  color:var(--ink-dim);
  border-bottom:1px solid transparent;
  padding-bottom:2px;
}
.site-nav a:hover,.site-nav a[aria-current="page"]{color:var(--ink);border-bottom-color:var(--brass)}

/* ---------- hero ---------- */
.hero{padding:calc(var(--step) * 1.1) 0 var(--step)}
.hero h1{
  grid-column:3 / span 8;
  font-size:clamp(34px,5.2vw,58px);
  line-height:1.12;
  font-weight:400;
  margin:0 0 26px;
  letter-spacing:-.01em;
}
.hero h1 .brk{display:block}
.hero-lede{grid-column:3 / span 6;margin:0;color:var(--ink)}
.hero-lede + .hero-lede{margin-top:18px;color:var(--ink-dim)}

/* ---------- sections ---------- */
section{padding:var(--step) 0}
.band-alt{background:var(--bg-alt)}
.band-contrast{background:var(--bg-contrast);color:var(--ink-dark)}
.band-contrast a{color:#7a5a12;border-bottom-color:rgba(122,90,18,.4)}
.band-contrast .rail-mark{color:#6c6570}
.band-contrast .rail-mark .num{color:#8a6a1c}
.band-contrast .rail-ticks span{background:rgba(30,26,32,.28)}
.band-contrast .caption{color:#5f5962}

h2{
  font-size:clamp(24px,3vw,32px);
  font-weight:400;
  line-height:1.25;
  margin:0 0 22px;
  letter-spacing:-.005em;
}
h3{
  font-style:italic;
  font-size:21px;
  font-weight:400;
  margin:34px 0 10px;
}
p{margin:0 0 22px}
p:last-child{margin-bottom:0}

.dash{
  width:38px;height:1px;background:var(--brass);
  border:0;margin:30px 0;
}

/* ---------- lists ---------- */
.list-block{grid-column:3 / span 9}
.cols-2{
  columns:2;
  column-gap:48px;
}
ul.marked,ol.marked{
  list-style:none;
  margin:0;padding:0;
}
ul.marked li,ol.marked li{
  position:relative;
  padding-left:22px;
  margin-bottom:14px;
  break-inside:avoid;
}
ul.marked li::before{
  content:"";
  position:absolute;left:0;top:.62em;
  width:10px;height:1px;background:var(--brass);
}
ol.marked{counter-reset:step}
ol.marked li{counter-increment:step;padding-left:34px}
ol.marked li::before{
  content:counter(step,decimal-leading-zero);
  position:absolute;left:0;top:.15em;
  font-family:var(--sans);font-size:12px;
  letter-spacing:.1em;color:var(--brass);
}

/* ---------- figures ---------- */
.figure-main{
  grid-column:4 / span 9;
  margin:0;
}
.figure-main img{width:100%}
.figure-main .caption{margin-top:14px}
.caption{
  font-family:var(--sans);
  font-size:12px;
  line-height:1.6;
  letter-spacing:.06em;
  color:var(--ink-dim);
}

.detail-fig{grid-column:3 / span 4;margin:0}
.detail-fig .caption{margin-top:12px}
.detail-text{grid-column:8 / span 5}

/* ---------- footer ---------- */
.site-foot{
  border-top:1px solid rgba(169,178,189,.22);
  padding:34px 0 40px;
  background:var(--bg);
}
.patchbay{
  grid-column:1 / span 12;
  display:flex;
  align-items:baseline;
  justify-content:space-between;
  gap:20px 40px;
  flex-wrap:wrap;
}
.patchbay .f-name{font-size:19px;letter-spacing:.06em}
.patchbay ul{
  list-style:none;margin:0;padding:0;
  display:flex;flex-wrap:wrap;gap:8px 24px;
}
.patchbay ul a{
  font-family:var(--sans);font-size:12px;
  letter-spacing:.14em;text-transform:uppercase;
  color:var(--ink-dim);border-bottom:1px solid transparent;
}
.patchbay ul a:hover{color:var(--ink);border-bottom-color:var(--brass)}
.foot-rule{
  grid-column:1 / span 12;
  height:1px;background:rgba(169,178,189,.22);
  margin:24px 0 14px;
}
.foot-note{grid-column:1 / span 12;font-family:var(--sans);font-size:12px;color:var(--ink-dim);line-height:1.7}

/* ---------- responsive ---------- */
@media (max-width:900px){
  :root{--step:48px}
  body{font-size:17px}
  .grid{gap:0 16px;padding:0 20px}
  .brand{grid-column:1 / span 12}
  .site-nav{grid-column:1 / span 12;justify-self:start;margin-top:12px}
  .rail{grid-column:1 / span 12}
  .rail-mark{padding-top:0;margin-bottom:14px}
  .rail-mark .num{display:inline;margin-right:10px}
  .rail-ticks{flex-direction:row;margin-top:12px}
  .rail-ticks span{height:14px}
  .body-col,.wide-col,.list-block,
  .hero h1,.hero-lede,.figure-main,
  .detail-fig,.detail-text{grid-column:1 / span 12}
  .detail-text{margin-top:28px}
  .cols-2{columns:1}
  .patchbay{flex-direction:column;align-items:flex-start}
}
