/* ==========================================================================
   VichSI brand layer for Yusho's landing page: the full vichsi.com look, dark only
   (the landing is locked to dark: html[data-theme-lock]). Source the VichSI site's source
   site.css + hues.css. The night field #0A0C11 with lifted rooms and raised surfaces,
   white type. Yusho's hue is violet #A594FF: primary buttons (ink text), lit frame
   edges, link underlines, the "A" markers, focus. Signal cyan #23D5D5 is kept for the
   one thing that means "live" (--v-live). Square corners everywhere.
   The faces are self-hosted (vichsi.com's files, SIL Open Font License) and the fallbacks
   are sized to them, so nothing moves when they arrive.
   ========================================================================== */
@font-face { font-family: 'Archivo'; font-style: normal; font-weight: 400 700; font-display: swap;
    src: url(../fonts/archivo-400-700-normal-latin.woff2) format('woff2');
    unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: 'Archivo'; font-style: normal; font-weight: 400 700; font-display: swap;
    src: url(../fonts/archivo-400-700-normal-latin-ext.woff2) format('woff2');
    unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF; }
@font-face { font-family: 'JetBrains Mono'; font-style: normal; font-weight: 400 600; font-display: swap;
    src: url(../fonts/jetbrains-mono-400-600-normal-latin.woff2) format('woff2');
    unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: 'JetBrains Mono'; font-style: normal; font-weight: 400 600; font-display: swap;
    src: url(../fonts/jetbrains-mono-400-600-normal-latin-ext.woff2) format('woff2');
    unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF; }
/* Fallbacks measured against the real faces (Arial for Archivo, Menlo for JetBrains Mono) */
@font-face { font-family: 'Archivo Fallback'; src: local('Arial'), local('ArialMT');
    size-adjust: 96.65%; ascent-override: 91.05%; descent-override: 21.73%; line-gap-override: 0%; }
@font-face { font-family: 'JetBrains Mono Fallback'; src: local('Menlo'), local('Menlo-Regular');
    size-adjust: 99.66%; ascent-override: 102.35%; descent-override: 30.10%; line-gap-override: 0%; }

:root {
    color-scheme: dark;
    --v-bg: #0A0C11;           /* the field */
    --v-room: #0F121A;         /* lifted chambers: panels */
    --v-raised: #151925;       /* cards, nodes */
    --v-raised-2: #1B2030;     /* the same, under the pointer */
    --v-line: #252B3A;
    --v-line-strong: #363D50;
    --v-text: #FFFFFF;
    --v-text-soft: #CFD3D2;    /* leads */
    --v-muted: #AEB4B3;        /* secondary text, 9:1 */
    --v-muted-2: #7D8496;      /* quiet text, 5:1 */
    --v-lavender: #D2C3F6;     /* the setup half of a two-tone heading (owner, 2026-11-02) */
    --v-ink: #0E0E0E;          /* text on the hue */
    --v-hue: #A594FF;          /* Yusho violet */
    --v-hue-rgb: 165, 148, 255;
    --v-accent: #A594FF;
    --v-on-accent: #0E0E0E;
    --v-signal: #A594FF;       /* focus, progress, chosen, selection */
    --v-live: #23D5D5;         /* the one live thing */
    --v-hover: #A594FF;
    --v-hover-fill: #B6A3FF;   /* the hue at brightness 1.1 */
    --v-on-hover-fill: #0E0E0E;
    --v-selection-bg: #A594FF;
    --v-selection-text: #0E0E0E;
    --v-danger: #FF5C5C;
    --v-warn: #FFB020;
    --v-overlay: rgba(10, 12, 17, 0.86);
    --v-nav: rgba(10, 12, 17, 0.82);
    --v-particle: #FFFFFF;
    --v-particle-dot: 0.26;
    --v-particle-line: 0.09;
    --v-grain: 0.045;
    /* One light, everywhere (as MM and RECC): a 0.15 violet peak behind what matters, one lit edge on frames */
    --v-lit-edge: rgba(165, 148, 255, 0.45);
    --v-lit-shadow: 0 0 0 1px rgba(165, 148, 255, 0.08), 0 30px 90px -36px rgba(165, 148, 255, 0.45);
    --v-glow: radial-gradient(circle closest-side, rgba(165, 148, 255, 0.15), rgba(165, 148, 255, 0.045) 55%, transparent);
    --v-radius: 0;
    --v-font-sans: 'Archivo', 'Archivo Fallback', 'Helvetica Neue', Arial, sans-serif;
    --v-font-mono: 'JetBrains Mono', 'JetBrains Mono Fallback', Menlo, Consolas, monospace;
}

::selection { background: var(--v-selection-bg); color: var(--v-selection-text); }
::-moz-selection { background: var(--v-selection-bg); color: var(--v-selection-text); }

/* Brand marks: inline SVG, colour follows the text */
.vichsi-logo, .vichsi-mark { display: block; height: auto; color: var(--v-text); }

/* The hue's small touch: link underlines in violet at 60% on the dark (they win over a later
   `text-decoration` shorthand). On the white footer links underline in ink. */
a { text-decoration-color: rgba(var(--v-hue-rgb), 0.6) !important; }
.sf a { text-decoration-color: currentColor !important; }

