:root{
  --ink:#14120F;
  --panel:#1C1914;
  --panel-edge:#2A2620;
  --parchment:#E9E2D0;
  --muted:#9C8E76;
  --muted-dim:#6E6455;
  --brass:#B08D57;
  --brass-bright:#CBA871;
  --terminal-glass: rgba(28,33,28,0.55);
  --terminal-edge: rgba(143,187,160,0.25);
  --terminal-text:#8FBBA0;
  --rule: rgba(176,141,87,0.25);
}
*{margin:0;padding:0;box-sizing:border-box;}
html{background:var(--ink);}
body{
  background:
    radial-gradient(ellipse 80% 50% at 50% -10%, rgba(176,141,87,0.06), transparent),
    var(--ink);
  color:var(--parchment);
  font-family:'Literata', serif;
  font-optical-sizing:auto;
  line-height:1.75;
  -webkit-font-smoothing:antialiased;
}
.wrap{max-width:760px;margin:0 auto;padding:0 32px;}

/* Header */
header.hero{
  padding:120px 0 90px;
  border-bottom:1px solid var(--rule);
}
.byline{
  font-family:'IBM Plex Mono', monospace;
  font-size:12.5px;
  color:var(--muted);
  letter-spacing:0.02em;
  margin-bottom:20px;
}
.byline .dot-sep{color:var(--muted-dim); margin:0 10px;}
.byline a{
  color:var(--muted);
  text-decoration:none;
  border-bottom:1px solid var(--rule);
  transition:color .2s, border-color .2s;
}
.byline a:hover{color:var(--brass-bright); border-color:var(--brass);}
.eyebrow{
  font-family:'IBM Plex Mono', monospace;
  font-size:12px;
  letter-spacing:0.18em;
  text-transform:uppercase;
  color:var(--muted-dim);
  margin-bottom:28px;
}
.eyebrow::before{content:"§ "; color:var(--brass);}
h1.identity{
  font-family:'Fraunces', serif;
  font-weight:400;
  font-style:italic;
  font-size:clamp(28px, 4vw, 40px);
  line-height:1.42;
  color:var(--parchment);
  letter-spacing:0.002em;
}
h1.identity em{
  font-style:normal;
  color:var(--brass-bright);
  font-weight:500;
}
.role-line{
  margin-top:36px;
  font-family:'IBM Plex Mono', monospace;
  font-size:13px;
  color:var(--muted);
  letter-spacing:0.02em;
}
.role-line .div{color:var(--muted-dim); margin:0 10px;}

/* Chapter */
.chapter{
  padding:96px 0;
  border-bottom:1px solid var(--rule);
}
.chapter:last-of-type{border-bottom:none;}
.chapter-mark{
  font-family:'Fraunces', serif;
  font-style:italic;
  font-size:15px;
  color:var(--muted-dim);
  margin-bottom:18px;
  letter-spacing:0.04em;
}
.chapter-mark span{color:var(--brass);}
h2.chapter-title{
  font-family:'Fraunces', serif;
  font-weight:500;
  font-size:clamp(26px, 3.4vw, 34px);
  color:var(--parchment);
  margin-bottom:8px;
  line-height:1.3;
}
.chapter-sub{
  font-family:'IBM Plex Mono', monospace;
  font-size:12.5px;
  color:var(--muted);
  margin-bottom:40px;
  letter-spacing:0.02em;
}

p{margin-bottom:22px; color:var(--parchment); font-size:17px;}
p.lede{
  font-size:19px;
  color:var(--parchment);
}
p.lede::first-letter{
  font-family:'Fraunces', serif;
  font-size:64px;
  font-weight:500;
  color:var(--brass-bright);
  float:left;
  line-height:0.8;
  padding-right:12px;
  padding-top:6px;
}
.muted{color:var(--muted); font-size:15.5px;}

blockquote{
  font-family:'Fraunces', serif;
  font-style:italic;
  font-size:20px;
  color:var(--brass-bright);
  border-left:2px solid var(--brass);
  padding-left:24px;
  margin:36px 0;
  line-height:1.6;
}

/* Terminal plate — signature element */
.plate{
  margin:44px 0;
  background:var(--terminal-glass);
  border:1px solid var(--terminal-edge);
  border-radius:6px;
  backdrop-filter: blur(6px);
  -webkit-backdrop-filter: blur(6px);
  overflow:hidden;
  box-shadow: 0 20px 50px -20px rgba(0,0,0,0.6);
}
.plate-header{
  display:flex;
  align-items:center;
  gap:8px;
  padding:12px 16px;
  border-bottom:1px solid var(--terminal-edge);
  font-family:'IBM Plex Mono', monospace;
  font-size:11.5px;
  color:var(--muted-dim);
}
.dot{width:8px;height:8px;border-radius:50%;background:var(--muted-dim); opacity:0.5;}
.plate-body{
  padding:22px 20px;
  font-family:'IBM Plex Mono', monospace;
  font-size:13.5px;
  color:var(--terminal-text);
  line-height:1.9;
  white-space:pre-wrap;
}
.plate-body .comment{color:var(--muted-dim);}
.plate-body .metric{color:var(--brass-bright);}
.plate-body .before{color:#B98368;}
.plate-body .arrow{color:var(--muted);}

.metric-row{
  display:flex;
  gap:40px;
  margin-top:44px;
  flex-wrap:wrap;
}
.metric-item{flex:1; min-width:140px;}
.metric-num{
  font-family:'Fraunces', serif;
  font-weight:500;
  font-size:30px;
  color:var(--brass-bright);
  display:block;
}
.metric-label{
  font-family:'IBM Plex Mono', monospace;
  font-size:11px;
  color:var(--muted-dim);
  text-transform:uppercase;
  letter-spacing:0.06em;
  margin-top:6px;
  display:block;
}

.further-reading{
  margin-top:28px;
}
.further-reading a{
  font-family:'IBM Plex Mono', monospace;
  font-size:12px;
  color:var(--muted);
  text-decoration:none;
  border-bottom:1px solid var(--rule);
  transition:color .2s, border-color .2s;
}
.further-reading a:hover{color:var(--brass-bright); border-color:var(--brass);}

.epilogue{
  padding:16px 0 88px;
  text-align:center;
  border-bottom:1px solid var(--rule);
}
.epilogue-quote{
  font-family:'Fraunces', serif;
  font-style:italic;
  font-size:22px;
  color:var(--brass-bright);
  line-height:1.6;
  max-width:560px;
  margin:0 auto;
}

.prior-roles{
  padding:64px 0 96px;
}
.prior-roles .chapter-mark{
  margin-bottom:24px;
}

.contact{
  padding:80px 0 32px;
  border-top:1px solid var(--rule);
}
.contact .chapter-title{
  margin-bottom:20px;
}
.contact-links{
  display:flex;
  flex-wrap:wrap;
  gap:12px;
  margin-top:32px;
}
.contact-links a{
  min-width:108px;
  padding:10px 14px;
  border:1px solid var(--rule);
  border-radius:6px;
  color:var(--parchment);
  font-family:'IBM Plex Mono', monospace;
  font-size:12px;
  text-align:center;
  text-decoration:none;
  transition:border-color .2s, color .2s, background .2s;
}
.contact-links a:hover{
  border-color:var(--brass);
  color:var(--brass-bright);
  background:rgba(176,141,87,0.08);
}

footer{
  padding:64px 0 100px;
  text-align:center;
}
footer .sign{
  font-family:'Fraunces', serif;
  font-style:italic;
  font-size:16px;
  color:var(--muted);
}

/* Chapter TOC — fixed left margin rail */
html{scroll-behavior:smooth;}
.chapter{scroll-margin-top:64px;}
.toc{
  position:fixed;
  left:40px;
  top:50%;
  transform:translateY(-50%);
  display:flex;
  flex-direction:column;
  align-items:center;
  z-index:10;
}
.toc-item{
  position:relative;
  display:flex;
  align-items:center;
  justify-content:center;
  width:30px;
  height:30px;
  border-radius:50%;
  border:1px solid var(--rule);
  background:var(--panel);
  font-family:'IBM Plex Mono', monospace;
  font-size:11px;
  color:var(--muted-dim);
  text-decoration:none;
  transition:border-color .2s, color .2s;
}
.toc-item::before{
  content:"";
  position:absolute;
  left:50%;
  top:100%;
  width:1px;
  height:26px;
  background:var(--rule);
  transform:translateX(-50%);
}
.toc-item:last-child::before{display:none;}
.toc-item:not(:last-child){margin-bottom:26px;}
.toc-item::after{
  content:attr(data-label);
  position:absolute;
  left:calc(100% + 14px);
  top:50%;
  transform:translateY(-50%);
  white-space:nowrap;
  font-family:'IBM Plex Mono', monospace;
  font-size:11px;
  color:var(--muted);
  background:var(--panel);
  border:1px solid var(--panel-edge);
  padding:6px 10px;
  border-radius:4px;
  opacity:0;
  pointer-events:none;
  transition:opacity .15s;
}
.toc-item:hover::after{opacity:1;}
.toc-item:hover, .toc-item.active{
  border-color:var(--brass);
  color:var(--brass-bright);
}
@media (max-width: 1180px){
  .toc{display:none;}
}

/* Language switch — fixed top-right */
.lang-switch{
  position:fixed;
  top:28px;
  right:32px;
  z-index:10;
  display:flex;
  align-items:center;
  gap:8px;
  font-family:'IBM Plex Mono', monospace;
  font-size:12px;
  letter-spacing:0.04em;
  padding:6px 10px;
  border:1px solid var(--rule);
  border-radius:20px;
  background:var(--panel);
}
.lang-switch .lang-sep{color:var(--muted-dim);}
.lang-switch .lang-item{
  appearance:none;
  background:none;
  border:none;
  padding:0;
  font:inherit;
  color:var(--muted-dim);
  cursor:pointer;
  transition:color .2s;
}
.lang-switch .lang-item:hover{color:var(--brass-bright);}
.lang-switch .lang-item.active{
  color:var(--brass-bright);
  pointer-events:none;
}
