/* Documentation layout (Scripting API, Handbook): calm, readable, static. Loaded after site.css. */
.docs-body { background: #0b0c10; }
.docs-body .wrap { max-width: 1440px; }
.doc code, .entry .sig, pre.code code, .docs-nav a.mono { font-variant-ligatures: none; }
.docs-hero { padding: calc(var(--header) + 48px) 0 34px; border-bottom: 1px solid var(--line); background:
  radial-gradient(ellipse at 85% -40%, rgba(255, 122, 48, .16), transparent 60%), linear-gradient(180deg, #0f1117, #0b0c10); }
.docs-hero h1 { font-size: clamp(40px, 5.5vw, 64px); text-transform: uppercase; margin-top: 12px; }
.docs-hero p { margin-top: 12px; color: var(--muted); max-width: 720px; font-size: 18px; }
.docs-hero .meta { margin-top: 18px; }
.docs-hero .meta code { font: 500 13px var(--f-mono); letter-spacing: 0; text-transform: none; color: #cfcac3; }
.docs-tabs { display: flex; flex-wrap: wrap; gap: 4px; margin-top: 26px; }
.docs-tabs a { font: 600 15px/1 var(--f-head); letter-spacing: .14em; text-transform: uppercase; color: var(--muted); text-decoration: none; padding: 13px 16px; border: 1px solid var(--line); background: rgba(255, 255, 255, .02); }
.docs-tabs a:hover { color: #fff; border-color: var(--line-2); }
.docs-tabs a[aria-current="page"] { color: #1a0a02; background: var(--ember-2); border-color: var(--ember-2); }

.docs-layout { display: grid; grid-template-columns: 260px minmax(0, 1fr) 220px; gap: 48px; align-items: start; padding-top: 40px; padding-bottom: 96px; }
.docs-layout.no-toc { grid-template-columns: 260px minmax(0, 1fr); }
.docs-side { position: sticky; top: calc(var(--header) + 24px); max-height: calc(100vh - var(--header) - 48px); overflow: auto; padding-right: 6px; scrollbar-width: thin; }
.docs-side label { display: block; font: 600 12px/1 var(--f-head); letter-spacing: .22em; text-transform: uppercase; color: var(--faint); margin-bottom: 8px; }
.docs-side input { width: 100%; min-height: 42px; padding: 0 12px; background: #07080b; border: 1px solid var(--line-2); color: var(--text); font: 400 15px var(--f-body); }
.docs-side input:focus { outline: none; border-color: var(--ember); box-shadow: 0 0 0 3px rgba(255, 122, 48, .2); }
.docs-side .hint { font-size: 12px; color: var(--faint); margin-top: 6px; }
.docs-nav { margin-top: 18px; }
.docs-nav .group + .group { margin-top: 18px; }
.docs-nav h2 { font: 600 12px/1 var(--f-head); letter-spacing: .22em; text-transform: uppercase; color: var(--faint); margin: 0 0 6px; }
.docs-nav a { display: block; padding: 6px 10px; border-left: 2px solid var(--line); color: #c9c5bf; text-decoration: none; font-size: 14px; line-height: 1.4; overflow-wrap: anywhere; }
.docs-nav a.mono { font: 450 13px/1.45 var(--f-mono); }
.docs-nav a:hover { color: #fff; border-left-color: var(--line-2); }
.docs-nav a[aria-current="page"] { color: #fff; border-left-color: var(--ember); background: rgba(255, 122, 48, .07); }
.docs-nav a[hidden], .docs-nav .group[hidden] { display: none; }

.toc { position: sticky; top: calc(var(--header) + 24px); font-size: 13px; }
.toc h2 { font: 600 12px/1 var(--f-head); letter-spacing: .22em; text-transform: uppercase; color: var(--faint); margin-bottom: 10px; }
.toc a { display: block; padding: 5px 0 5px 12px; border-left: 1px solid var(--line); color: var(--muted); text-decoration: none; }
.toc a:hover { color: #fff; }
.toc a[aria-current="true"] { color: var(--ember-2); border-left-color: var(--ember); }

.doc { min-width: 0; max-width: 820px; font-size: 16.5px; line-height: 1.72; color: #d9d5ce; }
.doc > * + * { margin-top: 1em; }
.doc h2 { font-size: 32px; text-transform: uppercase; color: #fff; margin-top: 1.9em; padding-top: 6px; }
.doc h3 { font-size: 23px; color: #fff; margin-top: 1.6em; letter-spacing: .02em; }
.doc h2:first-child, .doc h3:first-child { margin-top: 0; }
.doc a.anchor { color: inherit; text-decoration: none; }
.doc a.anchor:hover::after { content: " #"; color: var(--ember); }
.doc ul, .doc ol { padding-left: 1.4em; }
.doc li + li { margin-top: .35em; }
.doc li::marker { color: var(--ember); }
.doc strong { color: #fff; font-weight: 600; }
.doc :not(pre) > code { font: 500 .86em var(--f-mono); color: #ffd7ad; background: rgba(255, 179, 94, .08); border: 1px solid rgba(255, 179, 94, .14); padding: 1px 6px; border-radius: 4px; overflow-wrap: anywhere; }
.doc table { width: 100%; border-collapse: collapse; font-size: 15px; display: block; overflow-x: auto; }
.doc th, .doc td { text-align: left; padding: 9px 12px; border-bottom: 1px solid var(--line); vertical-align: top; }
.doc th { font: 600 13px/1.3 var(--f-head); letter-spacing: .14em; text-transform: uppercase; color: var(--muted); }
.doc blockquote { margin: 1.2em 0; padding: 12px 18px; border-left: 3px solid var(--ember); background: rgba(255, 255, 255, .03); }
.doc hr { border: 0; height: 1px; background: var(--line); margin: 2em 0; }
.callout { padding: 16px 20px; border: 1px solid rgba(255, 122, 48, .35); background: rgba(255, 122, 48, .06); }
.callout strong { color: var(--ember-2); }

.codebox { margin: 1.2em 0; background: #07080b; border: 1px solid var(--line-2); border-radius: 6px; overflow: hidden; }
.codebox .bar { display: flex; justify-content: space-between; gap: 12px; padding: 8px 14px; border-bottom: 1px solid var(--line); background: #0f1117; font: 500 12px/1.4 var(--f-mono); color: var(--faint); }
pre.code { position: relative; margin: 0; }
pre.code code { display: block; padding: 16px 18px; overflow-x: auto; font: 450 14px/1.65 var(--f-mono); color: #e6e1d8; tab-size: 4; background: none; border: 0; }
pre.code .copy { position: absolute; top: 8px; right: 8px; min-height: 30px; padding: 0 10px; background: #1a1d26; color: var(--muted); border: 1px solid var(--line-2); font: 600 12px var(--f-head); letter-spacing: .14em; text-transform: uppercase; cursor: pointer; opacity: 0; transition: opacity .2s; }
pre.code:hover .copy, pre.code .copy:focus-visible { opacity: 1; }
.tk-k { color: #ff9a5c; } .tk-s { color: #a7d38b; } .tk-c { color: #7f8696; font-style: italic; } .tk-n { color: #e8b86d; } .tk-f { color: #8fc3ff; } .tk-t { color: #d6a8ff; }

.entry { margin-top: 18px; border: 1px solid var(--line); background: #0f1117; border-radius: 6px; scroll-margin-top: calc(var(--header) + 20px); }
.entry > header { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: 6px 16px; padding: 14px 18px; border-bottom: 1px solid var(--line); }
.entry h3 { font: 600 17px/1.3 var(--f-mono); color: #fff; margin: 0; text-transform: none; letter-spacing: 0; overflow-wrap: anywhere; }
.entry h3 a { color: inherit; text-decoration: none; }
.entry .kind { font: 600 11px/1 var(--f-head); letter-spacing: .2em; text-transform: uppercase; color: var(--faint); }
.entry .sig { display: block; margin: 0; padding: 12px 18px; font: 450 14px/1.6 var(--f-mono); color: #8fc3ff; background: #0a0b0f; border-bottom: 1px solid var(--line); overflow-x: auto; white-space: pre; }
.entry .desc { padding: 14px 18px 4px; }
.entry .bounds { padding: 4px 18px 16px; font-size: 14px; color: var(--muted); }
.entry .bounds b { font: 600 11px/1 var(--f-head); letter-spacing: .2em; text-transform: uppercase; color: var(--faint); margin-right: 8px; }

.limit-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(170px, 1fr)); gap: 10px; }
.limit { padding: 16px 18px; border: 1px solid var(--line); background: #0f1117; }
.limit b { display: block; font: 700 30px/1 var(--f-head); color: #fff; }
.limit span { font-size: 13px; color: var(--muted); }
.cards { display: grid; grid-template-columns: repeat(auto-fit, minmax(230px, 1fr)); gap: 12px; }
.card { display: block; padding: 20px; border: 1px solid var(--line); background: #0f1117; text-decoration: none; color: var(--text); transition: border-color .25s, transform .25s var(--ease); }
.card:hover { color: var(--text); border-color: rgba(255, 122, 48, .5); transform: translateY(-2px); }
.card strong { display: block; font: 700 22px/1.1 var(--f-head); letter-spacing: .04em; text-transform: uppercase; color: #fff; }
.card span { display: block; margin-top: 8px; font-size: 14px; color: var(--muted); }
.card .count { color: var(--ember-2); font: 600 13px var(--f-head); letter-spacing: .16em; }

.stat-block { display: grid; grid-template-columns: auto 1fr; gap: 6px 22px; padding: 16px 20px; border: 1px solid var(--line); background: #0f1117; font-size: 15px; }
.stat-block dt { font: 600 13px/1.65 var(--f-head); letter-spacing: .14em; text-transform: uppercase; color: var(--muted); }
.stat-block dd { margin: 0; }
.pill { display: inline-block; font: 600 11px/1 var(--f-head); letter-spacing: .2em; text-transform: uppercase; padding: 5px 8px 4px; border: 1px solid var(--line-2); color: var(--muted); }
.pill.is-game { color: #0b1a10; background: var(--ok); border-color: var(--ok); }
.ogc { margin-top: 2.4em; padding-top: 16px; border-top: 1px solid var(--line); font-size: 13px; color: var(--faint); }

@media (max-width: 1180px) { .docs-layout { grid-template-columns: 240px minmax(0, 1fr); } .toc { display: none; } }
@media (max-width: 860px) {
  .docs-layout, .docs-layout.no-toc { grid-template-columns: 1fr; gap: 28px; }
  .docs-side { position: static; max-height: none; }
  .docs-nav { max-height: 320px; overflow: auto; border: 1px solid var(--line); padding: 10px; }
}
