/* Geist / Geist Mono — the typefaces the Eagle Eye Prism opening page is set in.
   Extracted from the Claude Design bundle into wwwroot/fonts and served locally:
   the app must make no external requests at runtime, so no Google Fonts link.

   @font-face cannot live in a scoped .razor.css (Blazor rewrites selectors, and
   a font face has none), which is why this is a plain stylesheet linked from
   index.html rather than part of OpenModel.razor.css.

   Both families are variable, so every weight points at the same file per
   unicode-range subset — 11 files, ~143 KB total. */

/* ============================== Geist ============================== */

@font-face {
    font-family: 'Geist';
    font-style: normal;
    font-weight: 400 700;
    font-display: swap;
    src: url('../fonts/geist-cyrillic-ext.woff2') format('woff2');
    unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
}

@font-face {
    font-family: 'Geist';
    font-style: normal;
    font-weight: 400 700;
    font-display: swap;
    src: url('../fonts/geist-cyrillic.woff2') format('woff2');
    unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}

@font-face {
    font-family: 'Geist';
    font-style: normal;
    font-weight: 400 700;
    font-display: swap;
    src: url('../fonts/geist-vietnamese.woff2') format('woff2');
    unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}

@font-face {
    font-family: 'Geist';
    font-style: normal;
    font-weight: 400 700;
    font-display: swap;
    src: url('../fonts/geist-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-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

@font-face {
    font-family: 'Geist';
    font-style: normal;
    font-weight: 400 700;
    font-display: swap;
    src: url('../fonts/geist-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;
}

/* ============================ Geist Mono =========================== */

@font-face {
    font-family: 'Geist Mono';
    font-style: normal;
    font-weight: 400 500;
    font-display: swap;
    src: url('../fonts/geist-mono-cyrillic-ext.woff2') format('woff2');
    unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
}

@font-face {
    font-family: 'Geist Mono';
    font-style: normal;
    font-weight: 400 500;
    font-display: swap;
    src: url('../fonts/geist-mono-cyrillic.woff2') format('woff2');
    unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}

@font-face {
    font-family: 'Geist Mono';
    font-style: normal;
    font-weight: 400 500;
    font-display: swap;
    src: url('../fonts/geist-mono-symbols2.woff2') format('woff2');
    unicode-range: U+2000-2001, U+2004-2008, U+200A, U+23B8-23BD, U+2500-259F;
}

@font-face {
    font-family: 'Geist Mono';
    font-style: normal;
    font-weight: 400 500;
    font-display: swap;
    src: url('../fonts/geist-mono-vietnamese.woff2') format('woff2');
    unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}

@font-face {
    font-family: 'Geist Mono';
    font-style: normal;
    font-weight: 400 500;
    font-display: swap;
    src: url('../fonts/geist-mono-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-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

@font-face {
    font-family: 'Geist Mono';
    font-style: normal;
    font-weight: 400 500;
    font-display: swap;
    src: url('../fonts/geist-mono-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;
}

/* ============================ First paint ==========================
   The design's fifth state. It lives here rather than in the component because
   it has to be on screen BEFORE Blazor exists — the WASM runtime download plus
   ~3.5 MB of engine staging is a few seconds of otherwise-blank page on a cold
   cache. Blazor replaces #app's contents on first render, so this disappears on
   its own. Palette is inlined (the component's tokens aren't loaded yet). */

.eev-boot {
    position: fixed;
    inset: 0;
    z-index: 60;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 20px;
    background: #0a0b0d;
    color: #e8ebef;
    font-family: 'Geist', system-ui, -apple-system, sans-serif;
    -webkit-font-smoothing: antialiased;
}

.eev-boot-mark { color: #2a7b8c; }
.eev-boot-text { display: flex; flex-direction: column; align-items: center; gap: 6px; }
.eev-boot-name { font-size: 14px; font-weight: 700; letter-spacing: .08em; }
.eev-boot-note { font-size: 13px; color: #8a9099; }
.eev-boot-bar { width: 200px; height: 2px; overflow: hidden; background: #1b1f25; }
.eev-boot-bar > div {
    width: 25%;
    height: 100%;
    background: #3593a8;
    animation: eev-indet 2.1s cubic-bezier(.4, 0, .2, 1) infinite;
}

/* The opening page defaults to the OS scheme, so the boot screen has to as
   well — otherwise a light-mode user gets a dark flash before the page paints. */
@media (prefers-color-scheme: light) {
    .eev-boot { background: #f5f6f8; color: #0d1117; }
    .eev-boot-note { color: #5f666e; }
    .eev-boot-bar { background: #e4e8ed; }
}

@keyframes eev-indet {
    0% { transform: translateX(-100%); }
    100% { transform: translateX(400%); }
}
