/* release.bar "terminal" tokens — studied DNA from release.bar/steipete.
   Near-black paper with a faint green cast · phosphor-green primary ink
   (numbers, links, nodes, status) · ONE amber registration accent used
   < 5% of any viewport (ticks, caret, section codes) · a cool blue kept
   in reserve for numeric variety (stats/languages). Mono-forward: the
   whole set is Geist Mono — display, body, and labels — the way release.bar
   sets everything in one monospace face. Every colour/font/space in
   styles.css references these by name. Token NAMES are shared with
   resume.html; changing a name here changes it there. */

:root {
    /* ---- Colour: release.bar terminal — near-black green-cast paper ---- */
    --paper:      #0a0e0c;  /* page / console field */
    --paper-2:    #121714;  /* cards, panels */
    --paper-3:    #1b221e;  /* chips, hover fill, deeper tint */
    --ink:        #e7ede9;  /* headings — bright */
    --ink-2:      #aab4ad;  /* body */
    --ink-3:      #778579;  /* muted / labels / dates */
    --rule:       rgba(155, 178, 165, 0.12);  /* hairline */
    --rule-2:     rgba(155, 178, 165, 0.24);  /* stronger divider */

    /* interactive accent — phosphor green: links, focus, nodes, numbers */
    --signal:      #7ee787;   /* bright mark / node / KPI number */
    --signal-2:    #a6f0ac;   /* AA link text on near-black paper */
    --signal-deep: #64d873;   /* pressed / hover-deep */
    --signal-ink:  #07130a;   /* text on green fill */
    --signal-soft: rgba(126, 231, 135, 0.12);
    --signal-line: rgba(126, 231, 135, 0.40);
    --glow:        rgba(126, 231, 135, 0.30); /* soft bloom around marks */
    --glow-soft:   rgba(126, 231, 135, 0.13);
    --focus:       #a6f0ac;
    --selection:   rgba(126, 231, 135, 0.24);

    /* registration accent — amber: ticks, caret, section codes (< 5%) */
    --mark:      #f2b544;
    --mark-2:    #f5c264;   /* small amber text, legible on near-black */
    --mark-soft: rgba(242, 181, 68, 0.15);
    --mark-line: rgba(242, 181, 68, 0.42);

    /* reserve cool accent — blue: numeric variety (stats, star counts) */
    --info:      #8ab4f8;
    --info-soft: rgba(138, 180, 248, 0.14);

    /* dotted leader — the neofetch key·····value fill */
    --leader:    rgba(170, 190, 180, 0.30);

    /* live status — availability dot (green, same family as signal) */
    --live:      #7ee787;
    --live-soft: rgba(126, 231, 135, 0.22);

    /* faint console grid — screen only */
    --grid:      rgba(155, 178, 165, 0.05);

    /* shadows — pure black, tokenised (dark UI reads depth by black, not ink) */
    --shadow:      oklch(0% 0 0 / 0.50);
    --shadow-weak: oklch(0% 0 0 / 0.30);

    /* ---- Type — Geist Mono throughout (single-font, terminal) ---- */
    --font-display: "Geist Mono", ui-monospace, "SF Mono", Menlo, monospace;
    --font-body:    "Geist Mono", ui-monospace, "SF Mono", Menlo, monospace;
    --font-mono:    "Geist Mono", ui-monospace, "SF Mono", Menlo, monospace;

    /* ---- Type scale ---- */
    --text-xs:   0.75rem;
    --text-sm:   0.8125rem;
    --text-base: 0.9375rem;
    --text-md:   1rem;
    --text-lg:   1.125rem;
    --text-xl:   1.35rem;
    --text-2xl:  1.75rem;
    --text-display-s: clamp(1.75rem, 3.4vw + 0.5rem, 2.5rem);
    --text-display:   clamp(2.2rem, 4.6vw + 0.5rem, 3.5rem);

    /* ---- Spacing (4pt) ---- */
    --space-3xs: 0.25rem;
    --space-2xs: 0.5rem;
    --space-xs:  0.75rem;
    --space-sm:  1rem;
    --space-md:  1.5rem;
    --space-lg:  2rem;
    --space-xl:  3rem;
    --space-2xl: 4.5rem;
    --space-3xl: 7rem;

    /* ---- Measure / layout ---- */
    --measure:   44rem;                       /* single-column reading width */
    --page-pad:  clamp(1.25rem, 5vw, 2.5rem); /* gutter */

    /* ---- Radii — soft, minimal ---- */
    --radius-control: 8px;
    --radius-card:    12px;
    --radius-chip:    999px;

    /* ---- Motion ---- */
    --ease-out:    cubic-bezier(0.16, 1, 0.3, 1);
    --ease-in-out: cubic-bezier(0.65, 0, 0.35, 1);
    --dur-short:   180ms;
    --dur-mid:     340ms;
    --dur-reveal:  560ms;

    /* ---- Z scale ---- */
    --z-nav:     50;
    --z-overlay: 80;
}

/* honour a user who explicitly asks for a light UI: flip to a light
   terminal palette (same token names) so nothing downstream needs to change. */
@media (prefers-color-scheme: light) {
    :root.auto-theme {
        --paper:      #f6f8f6;  /* near-white console paper */
        --paper-2:    #ffffff;
        --paper-3:    #eef2ee;
        --ink:        #14201a;
        --ink-2:      #3b463f;
        --ink-3:      #6b766f;
        --rule:       rgba(20, 32, 26, 0.12);
        --rule-2:     rgba(20, 32, 26, 0.24);
        --signal:      #1f8a3d;
        --signal-2:    #197233;
        --signal-deep: #135c28;
        --signal-ink:  #ffffff;
        --signal-soft: rgba(31, 138, 61, 0.10);
        --signal-line: rgba(31, 138, 61, 0.30);
        --glow:        rgba(31, 138, 61, 0.14);
        --glow-soft:   rgba(31, 138, 61, 0.07);
        --focus:       #1f8a3d;
        --selection:   rgba(31, 138, 61, 0.16);
        --mark:        #b9791a;
        --mark-2:      #9c6413;
        --mark-soft:   rgba(185, 121, 26, 0.12);
        --mark-line:   rgba(185, 121, 26, 0.34);
        --info:        #2f6fd6;
        --info-soft:   rgba(47, 111, 214, 0.12);
        --leader:      rgba(20, 32, 26, 0.24);
        --grid:        rgba(20, 32, 26, 0.05);
        --shadow:      rgba(20, 32, 26, 0.12);
        --shadow-weak: rgba(20, 32, 26, 0.06);
    }
}
