/* zerkersec.io theme for the KrakenHashes docs: true black, crimson accents,
   self-hosted Inter and JetBrains Mono. Loaded after extra.css. */
@font-face { font-family: "Inter Variable"; font-style: normal; font-weight: 100 900; font-display: swap; src: url("../assets/fonts/inter-latin-wght-normal.woff2") format("woff2"); }
@font-face { font-family: "JetBrains Mono Variable"; font-style: normal; font-weight: 100 800; font-display: swap; src: url("../assets/fonts/jetbrains-mono-latin-wght-normal.woff2") format("woff2"); }

:root, [data-md-color-scheme="slate"], [data-md-color-scheme="default"], [data-md-color-primary="red"], [data-md-color-accent="red"] {
  --zs-ink: #000;
  --zs-ink-1: #0a0a0a;
  --zs-ink-2: #111;
  --zs-ink-3: #181818;
  --zs-ink-4: #222;
  --zs-ink-5: #2e2e2e;
  --zs-chalk: #ededed;
  --zs-chalk-dim: #a3a3a3;
  --zs-crimson: #b3001b;
  --zs-crimson-bright: #e5243b;
  --zs-crimson-deep: #7a0012;
  --zs-red-dim: rgba(229, 36, 59, .12);
  --zs-glow: 0 0 18px rgba(229, 36, 59, .4);

  --md-text-font: "Inter Variable", Inter, ui-sans-serif, system-ui, sans-serif;
  --md-code-font: "JetBrains Mono Variable", "JetBrains Mono", ui-monospace, Menlo, monospace;

  --md-default-bg-color: var(--zs-ink);
  --md-default-bg-color--light: var(--zs-ink-1);
  --md-default-bg-color--lighter: var(--zs-ink-2);
  --md-default-bg-color--lightest: var(--zs-ink-3);
  --md-default-fg-color: var(--zs-chalk);
  --md-default-fg-color--light: var(--zs-chalk-dim);
  --md-default-fg-color--lighter: #777;
  --md-default-fg-color--lightest: var(--zs-ink-4);
  --md-primary-fg-color: var(--zs-ink);
  --md-primary-fg-color--light: var(--zs-ink-2);
  --md-primary-fg-color--dark: var(--zs-ink);
  --md-primary-bg-color: var(--zs-chalk);
  --md-primary-bg-color--light: var(--zs-chalk-dim);
  --md-accent-fg-color: var(--zs-crimson-bright);
  --md-accent-fg-color--transparent: var(--zs-red-dim);
  --md-accent-bg-color: #fff;
  --md-typeset-a-color: var(--zs-crimson-bright);
  --md-code-bg-color: var(--zs-ink-1);
  --md-code-fg-color: var(--zs-chalk);
  --md-code-hl-color: rgba(229, 36, 59, .25);
  --md-admonition-bg-color: var(--zs-ink-1);
  --md-footer-bg-color: var(--zs-ink);
  --md-footer-bg-color--dark: var(--zs-ink);
  --md-footer-fg-color: var(--zs-chalk-dim);
  --md-footer-fg-color--light: var(--zs-chalk-dim);
  --md-footer-fg-color--lighter: #777;
  --md-typeset-table-color: var(--zs-ink-4);
  --md-typeset-kbd-color: var(--zs-ink-2);
  --md-typeset-kbd-accent-color: var(--zs-ink-3);
  --md-typeset-kbd-border-color: var(--zs-ink-5);
  --md-typeset-mark-color: rgba(229, 36, 59, .3);
  --md-shadow-z1: 0 4px 10px rgba(0, 0, 0, .6);
  --md-shadow-z2: 0 6px 20px rgba(0, 0, 0, .7);
  --md-shadow-z3: 0 10px 40px rgba(0, 0, 0, .8);
}
/* extra.css brand colours, re-pointed to the site palette */
:root { --kh-primary: var(--zs-crimson); --kh-accent: var(--zs-crimson-bright); }

/* palette toggle: the site is black-only */
.md-header__button[for^="__palette"], form[data-md-component="palette"] { display: none !important; }

/* alpha banner injected by older builds' extra.js: gone since 3.x */
.alpha-warning-banner { display: none !important; }

/* header, tabs, search */
.md-header { background: rgba(0, 0, 0, .92); border-bottom: 1px solid var(--zs-crimson-deep); box-shadow: none; backdrop-filter: blur(6px); position: relative; }
.md-header::after { content: ""; position: absolute; inset: 0; pointer-events: none; background: repeating-linear-gradient(to bottom, rgba(255, 255, 255, .03) 0 1px, transparent 1px 3px); }
.md-header__title, .md-header__topic { font-family: var(--md-code-font); font-weight: 700; letter-spacing: .04em; }
.md-header__topic:first-child { font-weight: 800; }
.md-tabs { background: rgba(10, 10, 10, .92); border-bottom: 1px solid var(--zs-ink-4); }
.md-tabs__link { font-family: var(--md-code-font); font-size: .68rem; opacity: .8; }
.md-tabs__link--active, .md-tabs__link:hover { color: var(--zs-crimson-bright); opacity: 1; }
.md-search__form { background: var(--zs-ink-2); border: 1px solid var(--zs-ink-4); border-radius: 6px; }
.md-search__form:hover { background: var(--zs-ink-3); }
.md-search__input { font-family: var(--md-code-font); font-size: .7rem; }
.md-search__input::placeholder { color: var(--zs-chalk-dim); }
[data-md-toggle="search"]:checked ~ .md-header .md-search__form { background: var(--zs-ink-2); border-color: var(--zs-crimson-deep); }
.md-search__output { background: var(--zs-ink-1); border: 1px solid var(--zs-ink-4); }
.md-search-result__meta { background: var(--zs-ink-2); color: var(--zs-chalk-dim); font-family: var(--md-code-font); }
.md-search-result__item { box-shadow: 0 -1px var(--zs-ink-4); }

/* announcement bar: the way back to the site */
.md-banner { background: var(--zs-ink-1); color: var(--zs-chalk-dim); border-bottom: 1px solid var(--zs-ink-4); font-family: var(--md-code-font); font-size: .62rem; }
.md-banner__inner { margin: .3rem auto; display: flex; gap: .7rem; flex-wrap: wrap; align-items: center; }
.md-banner a { color: var(--zs-chalk-dim); }
.md-banner a::before { content: "./"; color: var(--zs-crimson-deep); }
.md-banner a:hover { color: var(--zs-chalk); }
.md-banner .zs-brand { color: var(--zs-chalk); font-weight: 700; letter-spacing: .06em; text-transform: uppercase; display: inline-flex; align-items: center; margin-right: .3rem; }
.md-banner .zs-brand::before { content: ""; width: .4rem; height: .4rem; border-radius: 50%; background: var(--zs-crimson-bright); box-shadow: 0 0 10px var(--zs-crimson); margin-right: .35rem; }
.md-banner .zs-brand b { color: var(--zs-crimson-bright); font-weight: 700; }

/* version selector */
.md-version__current { font-family: var(--md-code-font); font-size: .62rem; color: var(--zs-crimson-bright); border: 1px solid var(--zs-crimson-deep); border-radius: 4px; padding: .15rem .5rem; background: var(--zs-red-dim); }
.md-version__current::before { content: "v:"; color: var(--zs-chalk-dim); margin-right: .25rem; }
.md-version__current::after { background-color: var(--zs-crimson-bright); }
.md-version__list { background: var(--zs-ink-1); border: 1px solid var(--zs-ink-4); box-shadow: var(--md-shadow-z2); max-height: 60vh; overflow-y: auto; }
.md-version__item { font-family: var(--md-code-font); font-size: .62rem; }
.md-version__link { color: var(--zs-chalk-dim); }
.md-version__link:hover, .md-version__link:focus { color: var(--zs-crimson-bright); background: var(--zs-red-dim); }
.md-version__link--active { color: var(--zs-chalk); }

/* sidebars */
.md-nav__title { font-family: var(--md-code-font); font-size: .65rem; letter-spacing: .08em; text-transform: uppercase; color: var(--zs-crimson-bright); box-shadow: none; }
.md-nav__link { font-size: .7rem; }
.md-nav__link--active, .md-nav__link:hover { color: var(--zs-crimson-bright); }
.md-nav__item--nested > .md-nav__link { font-family: var(--md-code-font); font-size: .66rem; }
.md-sidebar__scrollwrap { scrollbar-color: var(--zs-ink-4) transparent; }
.md-nav--primary .md-nav__title[for="__drawer"] { background: var(--zs-ink); border-bottom: 1px solid var(--zs-crimson-deep); font-family: var(--md-code-font); }

/* typeset */
.md-typeset h1, .md-typeset h2, .md-typeset h3, .md-typeset h4 { font-family: var(--md-code-font); font-weight: 700; letter-spacing: -.01em; color: var(--zs-chalk); }
.md-typeset h1 { font-weight: 800; }
.md-typeset h1::before { content: "$ "; color: var(--zs-crimson-bright); }
.md-typeset h2::before { content: "## "; color: var(--zs-crimson-deep); }
.md-typeset h3::before { content: "### "; color: var(--zs-crimson-deep); }
.md-typeset h4::before { content: "#### "; color: var(--zs-crimson-deep); }
.md-typeset a { color: var(--zs-crimson-bright); }
.md-typeset a:hover { color: #ff6b7a; }
.md-typeset code { background: var(--zs-ink-2); border: 1px solid var(--zs-ink-4); border-radius: 4px; padding: .05em .35em; }
.md-typeset pre { position: relative; }
.md-typeset pre > code { background: var(--zs-ink-1); border: 1px solid var(--zs-ink-4); border-left: 3px solid var(--zs-crimson); border-radius: 8px; }
.md-typeset .highlight .filename { background: var(--zs-ink-2); border: 1px solid var(--zs-ink-4); border-bottom: 0; font-family: var(--md-code-font); font-size: .62rem; color: var(--zs-chalk-dim); border-radius: 8px 8px 0 0; }
.md-typeset .highlight .filename::before { content: "~ "; color: var(--zs-crimson-bright); }
.md-clipboard { color: var(--zs-chalk-dim); }
.md-clipboard:hover { color: var(--zs-crimson-bright); }
.md-typeset .admonition, .md-typeset details { background: var(--zs-ink-1); border: 1px solid var(--zs-ink-4); border-left-width: 3px; border-radius: 8px; box-shadow: none; font-size: .7rem; }
.md-typeset .admonition-title, .md-typeset summary { font-family: var(--md-code-font); font-size: .66rem; letter-spacing: .02em; background: rgba(0, 0, 0, .5); border-radius: 8px 8px 0 0; }
.md-typeset .admonition.note, .md-typeset details.note, .md-typeset .admonition.info, .md-typeset details.info, .md-typeset .admonition.tip, .md-typeset details.tip, .md-typeset .admonition.abstract { border-left-color: var(--zs-crimson); }
.md-typeset .admonition.warning, .md-typeset details.warning { border-left-color: #ffb020; }
.md-typeset .admonition.danger, .md-typeset details.danger, .md-typeset .admonition.failure { border-left-color: var(--zs-crimson-bright); }
.md-typeset .admonition.success, .md-typeset details.success { border-left-color: #3ddc84; }
.md-typeset table:not([class]) { border: 1px solid var(--zs-ink-4); border-radius: 8px; background: rgba(10, 10, 10, .85); }
.md-typeset table:not([class]) th { background: var(--zs-ink-2); color: var(--zs-crimson-bright); font-family: var(--md-code-font); font-size: .62rem; letter-spacing: .06em; text-transform: uppercase; }
.md-typeset table:not([class]) td { border-top: 1px solid var(--zs-ink-3); }
.md-typeset .tabbed-set > .tabbed-labels { border-bottom: 1px solid var(--zs-ink-4); }
.md-typeset .tabbed-labels > label { font-family: var(--md-code-font); font-size: .62rem; color: var(--zs-chalk-dim); }
.md-typeset .tabbed-labels > label:hover, .md-typeset .tabbed-set > input:checked + .tabbed-labels > label, .md-typeset .tabbed-labels > label[aria-selected="true"] { color: var(--zs-crimson-bright); }
.md-typeset .tabbed-labels::before { background: var(--zs-crimson-bright); }
.md-typeset blockquote { border-left: 3px solid var(--zs-crimson); color: var(--zs-chalk-dim); }
.md-typeset hr { border-bottom: 1px solid var(--zs-ink-4); }
.md-typeset .md-button { font-family: var(--md-code-font); border: 1px solid var(--zs-ink-5); border-radius: 6px; color: var(--zs-chalk); }
.md-typeset .md-button--primary { background: var(--zs-crimson); border-color: var(--zs-crimson-bright); color: #fff; }
.md-typeset .md-button:hover { border-color: var(--zs-crimson-bright); box-shadow: var(--zs-glow); color: var(--zs-chalk); background: var(--zs-red-dim); }
.md-typeset .md-button--primary:hover { background: var(--zs-crimson-bright); color: #fff; }
.grid.cards > div, .md-typeset .grid.cards > ul > li { background: rgba(10, 10, 10, .85); border: 1px solid var(--zs-ink-4) !important; border-radius: 8px; }
.grid.cards > div:hover, .md-typeset .grid.cards > ul > li:hover { border-color: var(--zs-crimson-deep) !important; box-shadow: var(--zs-glow); }
.md-typeset img { border: 1px solid var(--zs-ink-4); border-radius: 8px; }
.md-typeset .task-list-control .task-list-indicator::before { background: var(--zs-crimson-bright); }
.md-typeset .headerlink, .md-typeset .header-anchor { color: var(--zs-ink-5); }
.md-typeset .headerlink:hover, .md-typeset .header-anchor:hover { color: var(--zs-crimson-bright); }
.md-top { background: var(--zs-ink-2); border: 1px solid var(--zs-ink-4); color: var(--zs-chalk); font-family: var(--md-code-font); }
.md-top:hover { background: var(--zs-crimson); color: #fff; }
.md-source-file, .md-source-file__fact { font-family: var(--md-code-font); font-size: .6rem; color: var(--zs-chalk-dim); }
.md-tag { background: var(--zs-red-dim); color: var(--zs-crimson-bright); border: 1px solid rgba(229, 36, 59, .25); font-family: var(--md-code-font); font-size: .58rem; }

/* footer */
.md-footer { border-top: 1px solid var(--zs-ink-4); }
.md-footer__inner { font-family: var(--md-code-font); }
.md-footer__link:hover .md-footer__title { color: var(--zs-crimson-bright); }
.md-footer-meta { font-family: var(--md-code-font); font-size: .6rem; }
.md-copyright { color: var(--zs-chalk-dim); }
.md-social__link:hover svg { fill: var(--zs-crimson-bright); }
.zs-footer { max-width: 61rem; margin: 0 auto; padding: .4rem .8rem .8rem; font-family: var(--md-code-font); font-size: .6rem; color: #777; display: flex; flex-wrap: wrap; gap: .6rem 1.2rem; }
.zs-footer a { color: var(--zs-chalk-dim); }
.zs-footer a::before { content: "// "; color: var(--zs-crimson-deep); }
.zs-footer a:hover { color: var(--zs-chalk); }

/* selection, scrollbars, focus */
::selection { background: rgba(229, 36, 59, .35); }
.md-typeset :focus-visible, .md-header :focus-visible { outline: 2px solid var(--zs-crimson-bright); outline-offset: 2px; }
@media (prefers-reduced-motion: reduce) { .md-header::after { display: none; } }
