/* Limbo docs: Material, re-grounded in the site's instrument-bench world.
   Graphite and slate, bone text, live blue for links and activity,
   amber reserved for emphasis that means cost. */

:root {
    --md-text-font: "Manrope";
    --md-code-font: "Spline Sans Mono";
}

[data-md-color-scheme="slate"] {
    --md-hue: 220;
    --md-default-bg-color:        #16181c;
    --md-default-fg-color:        #e8e6e2;
    --md-default-fg-color--light: #b6b8bd;
    --md-default-fg-color--lighter: #8d9199;
    --md-default-fg-color--lightest: #343841;
    --md-primary-fg-color:        #16181c;
    --md-primary-bg-color:        #e8e6e2;
    --md-accent-fg-color:         #f0a92e;
    --md-typeset-color:           #d9d7d2;
    --md-typeset-a-color:         #7cc4ff;
    --md-code-bg-color:           #0f1114;
    --md-code-fg-color:           #e8e6e2;
    --md-footer-bg-color:         #0f1114;
    --md-footer-bg-color--dark:   #0b0c0f;
    --limbo-line:                 #343841;
    --limbo-line-soft:            #24272d;
    --limbo-raised:               #22252b;
    --limbo-signal:               #f0a92e;
}

[data-md-color-scheme="default"] {
    --md-default-bg-color:        #f6f7f9;
    --md-default-fg-color:        #0e1116;
    --md-default-fg-color--light: #3a414b;
    --md-default-fg-color--lighter: #525a66;
    --md-default-fg-color--lightest: #d5d9df;
    --md-primary-fg-color:        #f6f7f9;
    --md-primary-bg-color:        #0e1116;
    --md-accent-fg-color:         #f0a92e;
    --md-typeset-color:           #1d232b;
    --md-typeset-a-color:         #0e1116;
    --md-code-bg-color:           #ffffff;
    --md-code-fg-color:           #0e1116;
    --md-footer-bg-color:         #eceef2;
    --md-footer-bg-color--dark:   #e4e6ea;
    --md-footer-fg-color:         #0e1116;
    --md-footer-fg-color--light:  #3a414b;
    --md-footer-fg-color--lighter: #525a66;
    --limbo-line:                 #9aa1ab;
    --limbo-line-soft:            #d5d9df;
    --limbo-raised:               #eceef2;
    --limbo-signal:               #f0a92e;
}

/* Header: a hairline-ruled instrument edge, not a coloured bar. */
.md-header { box-shadow: none; border-bottom: 1px solid var(--limbo-line-soft); }
.md-header__title { font-variation-settings: "wght" 700, "wdth" 87; text-transform: uppercase; letter-spacing: 0.14em; font-size: 0.8rem; }
.md-tabs { background: var(--md-default-bg-color); border-bottom: 1px solid var(--limbo-line-soft); }
.md-search__form { background: var(--limbo-raised); border-radius: 0; }

/* Headings in the site's condensed legend voice. */
.md-typeset h1, .md-typeset h2 {
    font-variation-settings: "wght" 700, "wdth" 87;
    text-transform: uppercase;
    letter-spacing: -0.01em;
    color: var(--md-default-fg-color);
}
.md-typeset h1 { font-size: 2.1em; line-height: 1.02; margin-bottom: 0.9em; }
.md-typeset h2 { font-size: 1.35em; margin-top: 2.2em; padding-top: 1em; border-top: 2px solid var(--limbo-line); }
.md-typeset h3 { font-variation-settings: "wght" 650, "wdth" 92; letter-spacing: 0.01em; }

/* Nav: quiet steel, active item in bone with an amber keyline. */
.md-nav__link { color: var(--md-default-fg-color--lighter); }
.md-nav__link--active, .md-nav__link:hover { color: var(--md-default-fg-color) !important; }
.md-nav__item--section > .md-nav__link {
    font-variation-settings: "wght" 650, "wdth" 87;
    text-transform: uppercase; letter-spacing: 0.1em; font-size: 0.66rem;
}
.md-nav--secondary .md-nav__link--active { box-shadow: inset 2px 0 0 var(--limbo-signal); padding-left: 0.6em; }

/* Code: sunk wells with a keyline, no rounded chrome. */
.md-typeset pre > code, .md-typeset code { border-radius: 0; }
.md-typeset .highlight { border: 2px solid var(--limbo-line-soft); }
.md-typeset :not(pre) > code { border: 1px solid var(--limbo-line-soft); padding: 0.05em 0.35em; }
.md-clipboard { color: var(--md-default-fg-color--lighter); }

/* Tables as drill tables. */
.md-typeset table:not([class]) { border: 0; border-top: 2px solid var(--limbo-line); border-radius: 0; box-shadow: none; font-size: 0.72rem; }
.md-typeset table:not([class]) th {
    background: transparent;
    font-variation-settings: "wght" 650, "wdth" 87;
    text-transform: uppercase; letter-spacing: 0.08em; font-size: 0.62rem;
    color: var(--md-default-fg-color--lighter);
    border-bottom: 1px solid var(--limbo-line);
}
.md-typeset table:not([class]) td { border-top: 1px solid var(--limbo-line-soft); }

/* Admonitions: a rule on top, not a coloured side stripe. */
.md-typeset .admonition, .md-typeset details {
    border: 0; border-top: 2px solid var(--limbo-signal);
    border-radius: 0; box-shadow: none;
    background: var(--limbo-raised);
    font-size: 0.72rem;
}
.md-typeset .admonition-title, .md-typeset summary {
    background: transparent !important;
    font-variation-settings: "wght" 650, "wdth" 92;
    text-transform: uppercase; letter-spacing: 0.08em; font-size: 0.64rem;
}
.md-typeset .admonition-title::before, .md-typeset summary::before { background-color: var(--limbo-signal) !important; }

/* Tabs for vendor code samples. */
.md-typeset .tabbed-labels > label { font-variation-settings: "wght" 600, "wdth" 92; text-transform: uppercase; letter-spacing: 0.08em; font-size: 0.62rem; }
.md-typeset .tabbed-labels::before { background: var(--limbo-signal); }

/* API reference: signatures in drill-table wells. */
.doc-signature, .md-typeset .doc-signature { border-left: 0 !important; }
.md-typeset .doc-heading code { border: 0; }
.md-typeset .doc-heading { border-top: 1px solid var(--limbo-line-soft); padding-top: 0.6em; }

::selection { background: var(--limbo-signal); color: #14100a; }

/* Search field legible in both schemes. */
.md-search__input { color: var(--md-default-fg-color); }
.md-search__input::placeholder { color: var(--md-default-fg-color--lighter); }
.md-search__icon { color: var(--md-default-fg-color--lighter); }

/* Syntax colours from the site's palette: blue keywords, amber numbers,
   mint strings, steel comments. No default purples. */
[data-md-color-scheme="slate"] {
    --md-code-hl-keyword-color:  #7cc4ff;
    --md-code-hl-name-color:     #e8e6e2;
    --md-code-hl-function-color: #e8e6e2;
    --md-code-hl-constant-color: #7cc4ff;
    --md-code-hl-number-color:   #f0a92e;
    --md-code-hl-special-color:  #f0a92e;
    --md-code-hl-string-color:   #4fd1a5;
    --md-code-hl-comment-color:  #8d9199;
    --md-code-hl-generic-color:  #b6b8bd;
    --md-code-hl-variable-color: #e8e6e2;
    --md-code-hl-operator-color: #b6b8bd;
    --md-code-hl-punctuation-color: #b6b8bd;
}
[data-md-color-scheme="default"] {
    --md-code-hl-keyword-color:  #0369a1;
    --md-code-hl-name-color:     #0e1116;
    --md-code-hl-function-color: #0e1116;
    --md-code-hl-constant-color: #0b63e5;
    --md-code-hl-number-color:   #b45309;
    --md-code-hl-special-color:  #b45309;
    --md-code-hl-string-color:   #0b7a5a;
    --md-code-hl-comment-color:  #525a66;
    --md-code-hl-generic-color:  #3a414b;
    --md-code-hl-variable-color: #0e1116;
    --md-code-hl-operator-color: #3a414b;
    --md-code-hl-punctuation-color: #3a414b;
}

/* =============================================================
   Ambient field — slow floating colour behind every page.
   Two fixed layers of soft radial light in the site's own hues
   (the four chip colours and live blue) drift on long, offset
   loops. Transform-only animation, so it stays on the compositor.
   It sits under all content (z-index -1 on the root canvas) and
   holds still for reduced motion.
   ============================================================= */

[data-md-color-scheme="slate"] {
    --field-a: 0.30;   /* dark theme strength */
    --field-b: 0.24;
}
[data-md-color-scheme="default"] {
    --field-a: 0.32;
    --field-b: 0.24;
}

body::before,
body::after {
    content: "";
    position: fixed;
    inset: -25vmax;
    z-index: -1;
    pointer-events: none;
    will-change: transform;
}

body::before {
    background:
        radial-gradient(38vmax 38vmax at 22% 28%, rgb(79 209 165 / var(--field-a)), transparent 70%),
        radial-gradient(34vmax 34vmax at 78% 18%, rgb(124 196 255 / var(--field-a)), transparent 70%),
        radial-gradient(30vmax 30vmax at 60% 82%, rgb(255 122 138 / var(--field-b)), transparent 70%);
    animation: field-drift-a 46s ease-in-out infinite alternate;
}

body::after {
    background:
        radial-gradient(32vmax 32vmax at 84% 64%, rgb(90 209 240 / var(--field-b)), transparent 70%),
        radial-gradient(28vmax 28vmax at 16% 76%, rgb(195 230 107 / var(--field-b)), transparent 70%),
        radial-gradient(26vmax 26vmax at 46% 40%, rgb(124 196 255 / calc(var(--field-b) * 0.8)), transparent 70%);
    animation: field-drift-b 62s ease-in-out infinite alternate;
}

@keyframes field-drift-a {
    0%   { transform: translate3d(0, 0, 0) rotate(0deg) scale(1); }
    50%  { transform: translate3d(6vmax, -4vmax, 0) rotate(8deg) scale(1.08); }
    100% { transform: translate3d(-5vmax, 5vmax, 0) rotate(-6deg) scale(0.96); }
}
@keyframes field-drift-b {
    0%   { transform: translate3d(0, 0, 0) rotate(0deg) scale(1.04); }
    50%  { transform: translate3d(-7vmax, 3vmax, 0) rotate(-10deg) scale(0.95); }
    100% { transform: translate3d(5vmax, -6vmax, 0) rotate(7deg) scale(1.1); }
}


.md-main, .md-content, .md-sidebar, .md-container { background: transparent; }
@media (prefers-reduced-motion: reduce) { body::before, body::after { animation: none; } }

/* Serif pass: sentence-case headings, softer weights. */
.md-typeset h1, .md-typeset h2, .md-typeset h3, .md-header__title {
    text-transform: none; font-variation-settings: normal; font-weight: 600; letter-spacing: -0.01em;
}
.md-header__title { letter-spacing: 0.02em; font-size: 0.95rem; }

/* Light scheme: links in ink with a bright sky underline, matching the site. */
[data-md-color-scheme="default"] .md-typeset a { text-decoration: underline; text-decoration-color: #38bdf8; text-decoration-thickness: 2px; text-underline-offset: 3px; }
