/* gsage — document pages (license, docs) */
.doc-wrap{
  display:grid;
  grid-template-columns:260px minmax(0,1fr);
  gap:64px;
  max-width:1200px;margin:0 auto;padding:64px 28px 120px;
}
.doc-side{position:sticky;top:88px;align-self:start;max-height:calc(100vh - 110px);overflow:auto;padding-right:8px}
.doc-side-title{
  font-family:'JetBrains Mono',monospace;font-size:10px;letter-spacing:.2em;
  text-transform:uppercase;color:var(--muted);margin:0 0 14px;
}
.toc{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:2px;border-left:1.5px solid var(--rule)}
.toc a{
  display:block;padding:7px 0 7px 14px;font-size:13.5px;color:var(--ink-3);
  border-left:2px solid transparent;margin-left:-1.5px;line-height:1.35;
  transition:color .12s, border-color .12s, background .12s;
}
.toc a:hover{color:var(--wine)}
.toc a.active{color:var(--wine);border-left-color:var(--wine);font-weight:600}
.toc a.sub{padding-left:28px;font-size:12.5px;color:var(--muted)}

.doc-main{min-width:0}
.doc-header{padding-bottom:32px;border-bottom:1px solid var(--rule);margin-bottom:40px}
.doc-header .eyebrow{margin-bottom:14px}
.doc-header h1{
  font-size:clamp(34px,4.2vw,56px);
  line-height:1.05;letter-spacing:-.025em;font-weight:700;
  margin:0 0 16px;color:var(--ink);
}
.doc-header h1 em{font-style:italic;color:var(--wine);font-weight:600}
.doc-header .lead{font-size:18px;color:var(--ink-2);max-width:56ch;line-height:1.5;margin:0}
.doc-meta{
  display:flex;gap:20px;flex-wrap:wrap;margin-top:24px;
  font-family:'JetBrains Mono',monospace;font-size:11px;color:var(--muted);letter-spacing:.04em;
}
.doc-meta b{color:var(--ink)}

/* body */
.doc-body{font-size:16px;line-height:1.7;color:var(--ink-2)}
.doc-body h2{
  font-size:26px;letter-spacing:-.018em;margin:56px 0 14px;
  color:var(--ink);font-weight:700;scroll-margin-top:88px;
}
.doc-body h2 .num{
  font-family:'JetBrains Mono',monospace;font-size:14px;
  color:var(--wine);margin-right:10px;letter-spacing:.04em;
}
.doc-body h3{
  font-size:18px;margin:32px 0 10px;color:var(--ink);font-weight:600;
  letter-spacing:-.01em;scroll-margin-top:88px;
}
.doc-body p{margin:0 0 14px;max-width:68ch}
.doc-body ul,.doc-body ol{margin:0 0 16px;padding-left:22px;max-width:68ch}
.doc-body li{margin:6px 0}
.doc-body strong{color:var(--ink);font-weight:600}
.doc-body em{font-style:italic}
.doc-body code{
  font-family:'JetBrains Mono',monospace;font-size:13.5px;
  background:var(--paper-2);padding:1px 6px;border-radius:4px;
  color:var(--ink);
}
.doc-body a{color:var(--wine);border-bottom:1px solid rgba(107,29,29,.3)}
.doc-body a:hover{border-bottom-color:var(--wine)}
.doc-body hr{border:0;border-top:1px dashed var(--rule);margin:48px 0}

.callout{
  background:var(--surface);border:1px solid var(--rule);
  border-left:3px solid var(--wine);border-radius:6px;
  padding:16px 20px;margin:20px 0;font-size:14.5px;
}
.callout b{color:var(--wine);font-weight:600}
.callout.dark{background:var(--ink);color:var(--paper);border-color:var(--ink);border-left-color:var(--wine-soft)}
.callout.dark b{color:var(--wine-soft)}

.code-block{
  background:var(--ink);color:var(--paper);
  border-radius:8px;padding:20px 22px;margin:20px 0;
  font-family:'JetBrains Mono',monospace;font-size:13px;line-height:1.6;
  overflow-x:auto;
}
.code-block .kw{color:var(--wine-soft)}
.code-block .str{color:var(--highlight)}
.code-block .cm{color:#8c7f6b;font-style:italic}
.code-block .fn{color:#c8beaa}
.code-block .var{color:#e0c78a}

.doc-summary{
  background:var(--paper);border:1px solid var(--rule);border-radius:10px;
  padding:24px 28px;margin-bottom:40px;
}
.doc-summary h3{margin:0 0 12px;font-family:'JetBrains Mono',monospace;font-size:11px;letter-spacing:.2em;text-transform:uppercase;color:var(--muted);font-weight:600}
.doc-summary ul{margin:0;padding-left:20px}
.doc-summary li{margin:6px 0;color:var(--ink-2);font-size:15px}

/* docs landing specific */
.docs-hero-cards{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin:40px 0 56px}
.docs-hero-card{
  background:var(--white);border:1px solid var(--rule);border-radius:12px;
  padding:26px 28px;display:flex;flex-direction:column;gap:12px;
  transition:border-color .15s, transform .15s;
}
.docs-hero-card:hover{border-color:var(--wine);transform:translateY(-2px)}
.docs-hero-card .repo{
  font-family:'JetBrains Mono',monospace;font-size:12px;color:var(--wine);
  display:flex;align-items:center;gap:8px;
}
.docs-hero-card h3{font-size:22px;margin:0;font-weight:700;letter-spacing:-.018em;color:var(--ink)}
.docs-hero-card p{margin:0;font-size:14.5px;color:var(--ink-3);line-height:1.5}
.docs-hero-card .links{display:flex;gap:14px;margin-top:6px;font-size:13px;font-weight:500;flex-wrap:wrap}
.docs-hero-card .links a{color:var(--wine);border-bottom:1px solid rgba(107,29,29,.3)}

.docs-section-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin:24px 0 40px}
.docs-link-card{
  background:var(--white);border:1px solid var(--rule);border-radius:10px;
  padding:20px 22px;transition:border-color .15s, background .15s;
  display:flex;flex-direction:column;gap:8px;
}
.docs-link-card:hover{border-color:var(--wine);background:var(--surface)}
.docs-link-card .kind{font-family:'JetBrains Mono',monospace;font-size:10px;letter-spacing:.15em;color:var(--muted);text-transform:uppercase}
.docs-link-card h4{margin:0;font-size:16px;font-weight:600;color:var(--ink);letter-spacing:-.01em}
.docs-link-card p{margin:0;font-size:13.5px;color:var(--ink-3);line-height:1.5}
.docs-link-card .go{font-family:'JetBrains Mono',monospace;font-size:11px;color:var(--wine);margin-top:auto;padding-top:6px}

.steps-list{counter-reset:step;list-style:none;padding:0;margin:24px 0}
.steps-list li{
  counter-increment:step;padding:18px 0 18px 56px;position:relative;
  border-top:1px solid var(--rule);
}
.steps-list li:last-child{border-bottom:1px solid var(--rule)}
.steps-list li::before{
  content:counter(step,decimal-leading-zero);
  position:absolute;left:0;top:18px;
  font-family:'JetBrains Mono',monospace;font-size:14px;font-weight:600;
  color:var(--wine);letter-spacing:.02em;
}
.steps-list h4{margin:0 0 6px;font-size:16px;font-weight:600;color:var(--ink)}
.steps-list p{margin:0 0 10px;font-size:14.5px;color:var(--ink-3)}
.steps-list .code-block{margin:10px 0 0;font-size:12.5px;padding:14px 16px}

@media (max-width: 960px){
  .doc-wrap{grid-template-columns:1fr;gap:32px}
  .doc-side{position:static;max-height:none;padding-right:0;border-bottom:1px solid var(--rule);padding-bottom:20px}
  .toc{display:flex;flex-direction:row;flex-wrap:wrap;border-left:0;gap:8px}
  .toc a{border-left:0;border-radius:4px;padding:4px 10px;border:1px solid var(--rule)}
  .toc a.active{border-color:var(--wine)}
  .toc a.sub{display:none}
  .docs-hero-cards{grid-template-columns:1fr}
  .docs-section-grid{grid-template-columns:1fr}
}
