:root{
  --bg:#04110e;
  --bg-2:#0a1e1a;
  --bg-3:#0f2a25;
  --ink:#e9f7ef;
  --ink-dim:#9bb5ad;
  --ink-faint:#5d7872;
  --accent:#3ff5a3;
  --accent-2:#46e6c8;
  --rule:#1a3a33;
  --rule-soft:#13302a;
  --quote:#d6f5e3;
  --serif:'Newsreader',Georgia,serif;
  --sans:'Space Grotesk',-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;
  --mono:'JetBrains Mono',ui-monospace,monospace;
  --sidebar-w:280px;
}
*{box-sizing:border-box;margin:0;padding:0}
html,body{background:var(--bg);color:var(--ink);font-family:var(--sans);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;font-weight:300}
body{min-height:100vh;line-height:1.6}
a{color:var(--accent);text-decoration:none;border-bottom:1px solid transparent;transition:border-color .15s}
a:hover{border-bottom-color:var(--accent)}

/* sidebar */
#sidebar{
  position:fixed;top:0;left:0;width:var(--sidebar-w);height:100vh;
  background:linear-gradient(180deg,#04110e 0%,#06181450 60%,#04110e 100%);
  border-right:1px solid var(--rule);
  display:flex;flex-direction:column;padding:24px 0;z-index:50;
  overflow-y:auto;scrollbar-width:thin;scrollbar-color:#1a3a33 transparent;
}
#sidebar::-webkit-scrollbar{width:6px}
#sidebar::-webkit-scrollbar-thumb{background:#1a3a33;border-radius:3px}
.brand{display:flex;align-items:center;gap:10px;padding:0 24px 20px;font-weight:600;letter-spacing:.02em;font-size:18px;color:var(--ink);border-bottom:1px solid var(--rule-soft)}
.brand:hover{border-bottom-color:var(--rule-soft)}
.brand span{font-family:var(--sans)}

#docnav{display:flex;flex-direction:column;padding:18px 14px 8px;gap:4px}
.doc-tab{
  background:transparent;border:1px solid transparent;color:var(--ink-dim);
  font-family:var(--sans);font-size:13px;font-weight:400;
  text-align:left;padding:9px 12px;border-radius:6px;cursor:pointer;
  transition:all .15s;letter-spacing:.01em;
}
.doc-tab:hover{background:#0a1e1a;color:var(--ink)}
.doc-tab.active{background:#0d2620;color:var(--accent);border-color:#1a3a33}

#toc{padding:8px 14px;flex:1;min-height:0}
#toc h4{font-size:11px;text-transform:uppercase;letter-spacing:.12em;color:var(--ink-faint);margin:14px 12px 6px;font-weight:500}
#toc a{
  display:block;padding:5px 12px;border-radius:4px;
  font-size:12.5px;color:var(--ink-dim);border:none;
  line-height:1.4;transition:all .1s;
}
#toc a:hover{background:#0a1e1a;color:var(--ink)}
#toc a.active{color:var(--accent);background:#0d2620}
#toc a.h3{padding-left:22px;font-size:12px;color:var(--ink-faint)}

.sidefoot{padding:18px 24px;border-top:1px solid var(--rule-soft);font-size:11px;color:var(--ink-faint);line-height:1.7}

/* main */
#main{margin-left:var(--sidebar-w);min-height:100vh}

/* cover */
#cover{
  position:relative;min-height:100vh;padding:80px 80px;
  display:flex;align-items:center;justify-content:space-between;gap:60px;
  border-bottom:1px solid var(--rule);overflow:hidden;
}
.cover-inner{max-width:680px;position:relative;z-index:2}
.eyebrow{font-size:12px;letter-spacing:.18em;text-transform:uppercase;color:var(--accent);font-weight:500;margin-bottom:30px}
.cover-title{
  font-family:var(--serif);font-weight:400;font-size:clamp(40px,5.5vw,72px);line-height:1.05;
  letter-spacing:-.02em;margin-bottom:28px;
}
.cover-title .accent{color:var(--accent);font-style:italic}
.cover-lede{font-size:18px;line-height:1.55;color:var(--ink-dim);max-width:580px;margin-bottom:36px;font-weight:300}
.cover-meta{margin-bottom:40px}
.cover-meta>div:first-child{
  display:flex;gap:12px;align-items:center;font-family:var(--mono);font-size:12px;
  letter-spacing:.1em;color:var(--accent-2);margin-bottom:18px;
}
.arr{color:var(--ink-faint)}
.quote{font-family:var(--serif);font-style:italic;color:var(--quote);font-size:16px;border-left:2px solid var(--accent);padding-left:14px}
.cover-actions{display:flex;gap:12px;flex-wrap:wrap}
.cta{
  font-family:var(--sans);font-size:13px;font-weight:500;letter-spacing:.02em;
  padding:12px 20px;border-radius:6px;cursor:pointer;transition:all .15s;
  background:var(--accent);color:#04110e;border:1px solid var(--accent);
}
.cta:hover{background:#5cffb0;border-color:#5cffb0;transform:translateY(-1px)}
.cta.secondary{background:transparent;color:var(--ink);border-color:var(--rule)}
.cta.secondary:hover{border-color:var(--accent);color:var(--accent);background:transparent;transform:translateY(-1px)}
.cover-mark{position:relative;flex:0 0 400px;max-width:400px;opacity:.85}
.cover-mark svg{width:100%;height:auto;animation:spin 120s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}

/* article */
#doc{padding:80px 80px 160px;max-width:880px;margin:0 auto}
.doc-loading{color:var(--ink-faint);font-size:14px;text-align:center;padding:120px 0}

#doc h1{
  font-family:var(--serif);font-weight:400;font-size:clamp(34px,4vw,52px);
  line-height:1.1;letter-spacing:-.015em;margin:0 0 18px;
}
#doc h1:not(:first-child){margin-top:80px;padding-top:40px;border-top:1px solid var(--rule)}
#doc h2{
  font-family:var(--serif);font-weight:400;font-size:clamp(26px,2.6vw,34px);
  line-height:1.2;letter-spacing:-.01em;margin:56px 0 16px;color:var(--ink);
}
#doc h3{
  font-family:var(--sans);font-weight:500;font-size:18px;letter-spacing:.005em;
  margin:40px 0 12px;color:var(--accent-2);text-transform:none;
}
#doc h4{
  font-family:var(--sans);font-weight:500;font-size:13px;letter-spacing:.1em;
  text-transform:uppercase;color:var(--accent);margin:28px 0 10px;
}
#doc p{margin:0 0 16px;color:var(--ink);font-size:16px;line-height:1.7;font-weight:300}
#doc ul,#doc ol{margin:0 0 18px 22px;color:var(--ink);font-size:16px;line-height:1.7;font-weight:300}
#doc li{margin-bottom:6px}
#doc li>p{margin-bottom:8px}
#doc strong{color:var(--ink);font-weight:600}
#doc em{color:var(--quote)}
#doc hr{border:none;border-top:1px solid var(--rule);margin:48px 0}
#doc blockquote{
  border-left:2px solid var(--accent);padding:6px 0 6px 22px;margin:24px 0;
  font-family:var(--serif);font-style:italic;color:var(--quote);font-size:18px;line-height:1.5;
}
#doc blockquote p{font-size:18px;color:var(--quote)}
#doc code{
  font-family:var(--mono);font-size:.88em;background:#0d2620;
  padding:2px 6px;border-radius:3px;color:var(--accent-2);
}
#doc pre{
  background:#0a1e1a;border:1px solid var(--rule);border-radius:6px;
  padding:16px 18px;overflow-x:auto;margin:18px 0;
}
#doc pre code{background:transparent;padding:0;color:var(--ink)}
#doc table{
  width:100%;border-collapse:collapse;margin:24px 0;font-size:14px;
  border:1px solid var(--rule);
}
#doc th,#doc td{
  padding:10px 14px;text-align:left;border-bottom:1px solid var(--rule-soft);
  vertical-align:top;line-height:1.5;
}
#doc th{background:#0a1e1a;color:var(--accent-2);font-weight:500;font-size:12px;letter-spacing:.05em;text-transform:uppercase}
#doc tr:last-child td{border-bottom:none}
#doc tr:hover td{background:#06181450}
#doc a{color:var(--accent);border-bottom:1px solid transparent}
#doc a:hover{border-bottom-color:var(--accent)}

/* scroll anchor offset */
#doc :is(h1,h2,h3,h4){scroll-margin-top:24px}

/* menu toggle */
#menu-toggle{
  position:fixed;top:18px;right:18px;z-index:60;
  width:42px;height:42px;border:1px solid var(--rule);border-radius:6px;
  background:#0a1e1a;cursor:pointer;display:none;
  flex-direction:column;justify-content:center;align-items:center;gap:4px;
}
#menu-toggle span{display:block;width:18px;height:1.5px;background:var(--accent);transition:transform .2s}
#menu-toggle[aria-expanded=true] span:nth-child(1){transform:translateY(5.5px) rotate(45deg)}
#menu-toggle[aria-expanded=true] span:nth-child(2){opacity:0}
#menu-toggle[aria-expanded=true] span:nth-child(3){transform:translateY(-5.5px) rotate(-45deg)}

/* responsive */
@media (max-width:1024px){
  #cover{padding:60px 48px;flex-direction:column;text-align:left;align-items:flex-start}
  .cover-mark{flex:0 0 auto;max-width:280px;align-self:center;opacity:.5}
  #doc{padding:60px 48px 120px}
}
@media (max-width:768px){
  #sidebar{transform:translateX(-100%);transition:transform .25s}
  #sidebar.open{transform:translateX(0)}
  #menu-toggle{display:flex}
  #main{margin-left:0}
  #cover{padding:48px 24px;min-height:auto}
  .cover-title{font-size:36px}
  .cover-lede{font-size:16px}
  #doc{padding:40px 24px 80px}
  #doc h1{font-size:30px}
  #doc h2{font-size:22px}
  #doc table{font-size:13px;display:block;overflow-x:auto}
}

/* print */
@media print{
  #sidebar,#menu-toggle,.cover-mark,.cover-actions{display:none}
  #main{margin-left:0}
  body{background:#fff;color:#000}
  #doc{max-width:none;padding:0}
}
