/* ===== Self-hosted fonts (latin + latin-ext, incl. Polish) ===== */
@font-face{font-family:"Hanken Grotesk";font-style:normal;font-weight:400;font-display:swap;src:url("/fonts/hanken-grotesk-400-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:"Hanken Grotesk";font-style:normal;font-weight:400;font-display:swap;src:url("/fonts/hanken-grotesk-400-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:"Hanken Grotesk";font-style:normal;font-weight:500;font-display:swap;src:url("/fonts/hanken-grotesk-500-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:"Hanken Grotesk";font-style:normal;font-weight:500;font-display:swap;src:url("/fonts/hanken-grotesk-500-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:"Hanken Grotesk";font-style:normal;font-weight:600;font-display:swap;src:url("/fonts/hanken-grotesk-600-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:"Hanken Grotesk";font-style:normal;font-weight:600;font-display:swap;src:url("/fonts/hanken-grotesk-600-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:"Hanken Grotesk";font-style:normal;font-weight:700;font-display:swap;src:url("/fonts/hanken-grotesk-700-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:"Hanken Grotesk";font-style:normal;font-weight:700;font-display:swap;src:url("/fonts/hanken-grotesk-700-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:"Hanken Grotesk";font-style:normal;font-weight:800;font-display:swap;src:url("/fonts/hanken-grotesk-800-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:"Hanken Grotesk";font-style:normal;font-weight:800;font-display:swap;src:url("/fonts/hanken-grotesk-800-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:"IBM Plex Mono";font-style:normal;font-weight:400;font-display:swap;src:url("/fonts/ibm-plex-mono-400-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:"IBM Plex Mono";font-style:normal;font-weight:400;font-display:swap;src:url("/fonts/ibm-plex-mono-400-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:"IBM Plex Mono";font-style:normal;font-weight:500;font-display:swap;src:url("/fonts/ibm-plex-mono-500-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:"IBM Plex Mono";font-style:normal;font-weight:500;font-display:swap;src:url("/fonts/ibm-plex-mono-500-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:"Space Grotesk";font-style:normal;font-weight:400;font-display:swap;src:url("/fonts/space-grotesk-400-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:"Space Grotesk";font-style:normal;font-weight:400;font-display:swap;src:url("/fonts/space-grotesk-400-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:"Space Grotesk";font-style:normal;font-weight:500;font-display:swap;src:url("/fonts/space-grotesk-500-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:"Space Grotesk";font-style:normal;font-weight:500;font-display:swap;src:url("/fonts/space-grotesk-500-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:"Space Grotesk";font-style:normal;font-weight:600;font-display:swap;src:url("/fonts/space-grotesk-600-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:"Space Grotesk";font-style:normal;font-weight:600;font-display:swap;src:url("/fonts/space-grotesk-600-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:"Space Grotesk";font-style:normal;font-weight:700;font-display:swap;src:url("/fonts/space-grotesk-700-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:"Space Grotesk";font-style:normal;font-weight:700;font-display:swap;src:url("/fonts/space-grotesk-700-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;}

/* ============================================================================
   Crawlbot — site design system  (load LAST in <head>, after tailwind.css)
   impeccable-informed: tinted OKLCH neutrals (no pure black), one disciplined
   accent + meaningful signal colors, hairline-first surfaces (no glow / no
   glassmorphism), distinctive non-Inter type, restrained motion (no bounce).
   This file re-skins the whole site by overriding the legacy utility classes
   and custom classes already used across the pages.
   ============================================================================ */

:root {
    /* Surfaces — cool graphite-navy lacquer, never pure black */
    --ground:        oklch(16% 0.015 256);   /* page background            */
    --deep:          oklch(12% 0.013 256);   /* nav, inset wells           */
    --raised:        oklch(21% 0.015 256);   /* cards / panels             */
    --raised-2:      oklch(25% 0.016 256);   /* nested wells, inputs       */

    /* Hairlines (borders before shadows) */
    --line:          oklch(85% 0 0 / 0.10);  /* default neutral hairline   */
    --line-strong:   oklch(85% 0 0 / 0.18);  /* hover / structural         */
    --line-accent:   oklch(70% 0.17 256 / 0.45);

    /* Text — neutral ramp, zero warmth */
    --text-strong:   oklch(97% 0 0);         /* headlines                  */
    --text:          oklch(89% 0 0);         /* body                       */
    --text-muted:    oklch(74% 0 0);         /* secondary                  */
    --text-faint:    oklch(62% 0 0);         /* captions / labels          */
    --text-disabled: oklch(50% 0 0);

    /* Accent — single brand azure */
    --accent:        oklch(72% 0.16 256);
    --accent-hover:  oklch(80% 0.13 256);
    --accent-active: oklch(64% 0.17 256);
    --accent-ink:    oklch(18% 0.04 256);    /* text on accent fill        */

    /* Signal colors — used sparingly, they carry meaning */
    --live:          oklch(76% 0.15 162);    /* live / up / positive       */
    --down:          oklch(66% 0.17 28);     /* down / error / warning     */

    /* Motion */
    --ease:          cubic-bezier(0.4, 0, 0.2, 1);
    --dur:           160ms;

    /* Type */
    --font-display: "Space Grotesk", "Hanken Grotesk", ui-sans-serif, system-ui, sans-serif;
    --font-body:    "Hanken Grotesk", ui-sans-serif, system-ui, -apple-system, sans-serif;
    --font-mono:    "IBM Plex Mono", ui-monospace, "SFMono-Regular", Consolas, monospace;

    --radius: 8px;
}

/* ---- Base ---------------------------------------------------------------- */
html { scroll-behavior: smooth; }
body {
    background: var(--ground);
    color: var(--text);
    font-family: var(--font-body);
    -webkit-font-smoothing: antialiased;
    text-rendering: optimizeLegibility;
}
::selection { background: var(--accent); color: var(--accent-ink); }

h1, h2, h3, .font-display {
    font-family: var(--font-display);
    letter-spacing: -0.02em;
}
h1 { font-weight: 600; line-height: 1.06; }
h2 { font-weight: 600; }
.font-sans { font-family: var(--font-body); }
.font-mono, .stat-number, [class*="font-mono"] { font-family: var(--font-mono); }

/* Fluid display sizing for the hero / section heads (kept light, not heavy) */
.text-7xl { font-size: clamp(2.9rem, 5.6vw, 4.6rem) !important; font-weight: 600 !important; }
.text-6xl { font-size: clamp(2.5rem, 4.6vw, 3.6rem) !important; font-weight: 600 !important; }
.text-5xl { font-size: clamp(2.1rem, 3.6vw, 3rem)   !important; font-weight: 600 !important; }
.font-extrabold, .font-black { font-weight: 600 !important; }  /* tame the heavy weights */

/* ---- Re-tint legacy neutral utilities (Tailwind, overridden by load order) */
.text-white   { color: var(--text-strong) !important; }
.text-gray-300{ color: var(--text); }
.text-gray-400{ color: var(--text-muted); }
.text-gray-500{ color: var(--text-faint); }
.text-gray-600{ color: var(--text-faint); }

/* ---- Collapse the old rainbow palette into one disciplined accent -------- */
.text-accent-blue, .text-accent-cyan, .text-accent-purple, .text-accent-pink,
.text-nanoCyan, .text-nanoBlue, .text-nanoPurple, .text-nanoPink { color: var(--accent) !important; }
.bg-nanoDark { background-color: var(--ground) !important; }
.bg-accent-blue, .bg-accent-cyan, .bg-accent-purple, .bg-accent-pink,
.bg-nanoCyan { background-color: var(--accent) !important; }
.border-accent-blue, .border-accent-cyan, .border-accent-purple,
.border-accent-pink, .border-nanoCyan { border-color: var(--line-accent) !important; }
/* opacity tints used for chips / icon wells */
[class*="bg-accent-"][class*="/10"], [class*="bg-accent-"][class*="/20"]
    { background-color: oklch(72% 0.16 256 / 0.12) !important; }
[class*="border-accent-"][class*="/20"] { border-color: var(--line-accent) !important; }
.text-green-400 { color: var(--live) !important; }
.bg-green-400\/20, .bg-green-400\/30, .bg-green-400\/40 { background-color: oklch(76% 0.15 162 / 0.28) !important; }
.text-red-400, .bg-red-400\/30 { color: var(--down) !important; }

/* ---- Surfaces & wells ---------------------------------------------------- */
.bg-surface-overlay { background-color: var(--deep) !important; }
.bg-white { background-color: var(--text-strong); }   /* keeps high-contrast CTA */

/* ---- Cards: hairline-first, flat, sharply bounded (no glow, tiny lift) --- */
.bento-card {
    background: var(--raised) !important;
    border: 1px solid var(--line) !important;
    border-radius: var(--radius) !important;
    overflow: hidden;
    box-shadow: none !important;
    transition: border-color var(--dur) var(--ease), transform var(--dur) var(--ease);
}
.bento-card:hover {
    border-color: var(--line-strong) !important;
    transform: translateY(-1px) !important;
}
.glow-blue, .glow-purple { box-shadow: none !important; }   /* kill AI-glow */

/* Gradient text → single flat accent (no purple→pink, no blue→cyan) */
.text-gradient, .text-gradient-purple {
    background: none !important;
    -webkit-text-fill-color: var(--accent) !important;
    color: var(--accent) !important;
}

/* Decorative dot grid → drop to near-nothing (impeccable: no fake rails) */
.dot-grid { background-image: none !important; }

/* Rounded utilities pulled in to the system radius (subtle) */
.rounded-2xl { border-radius: 12px !important; }
.rounded-xl  { border-radius: 10px !important; }

/* ============================================================================
   Canonical site header  (.site-nav)  — replaces .nav-glass everywhere
   Solid tinted surface + bottom hairline. No backdrop blur.
   ============================================================================ */
.site-nav {
    position: fixed; top: 0; left: 0; width: 100%; z-index: 50;
    background: var(--deep);
    border-bottom: 1px solid var(--line);
}
.site-nav__inner {
    max-width: 80rem; margin: 0 auto; padding: 0 1.5rem;
    height: 4rem; display: flex; align-items: center; justify-content: space-between;
}
.site-nav__brand { display: flex; align-items: center; gap: 0.6rem; }
.site-nav__brand img { width: 1.85rem; height: 1.85rem; object-fit: contain; }
.site-nav__brand span {
    font-family: var(--font-display); font-weight: 600; font-size: 1.15rem;
    color: var(--text-strong); letter-spacing: -0.02em;
}
.site-nav__links { display: none; align-items: center; gap: 2rem; }
.site-nav__links a {
    font-size: 0.875rem; color: var(--text-muted);
    transition: color var(--dur) var(--ease); white-space: nowrap;
}
.site-nav__links a:hover { color: var(--text-strong); }
.site-nav__links a.is-active { color: var(--text-strong); }
.site-nav__links a.is-accent { color: var(--accent); }
.site-nav__links a.is-accent:hover { color: var(--accent-hover); }

.site-nav__cta { display: flex; align-items: center; gap: 0.85rem; }
.site-nav__login {
    font-size: 0.875rem; color: var(--text-muted);
    transition: color var(--dur) var(--ease);
}
.site-nav__login:hover { color: var(--text-strong); }

.btn-accent {
    display: inline-flex; align-items: center; justify-content: center;
    padding: 0.55rem 1.05rem; border-radius: var(--radius);
    background: var(--accent); color: var(--accent-ink);
    font-size: 0.875rem; font-weight: 600; border: 1px solid transparent;
    transition: background var(--dur) var(--ease), transform var(--dur) var(--ease);
}
.btn-accent:hover { background: var(--accent-hover); transform: translateY(-1px); }
.btn-ghost {
    display: inline-flex; align-items: center; justify-content: center;
    padding: 0.55rem 1.05rem; border-radius: var(--radius);
    color: var(--text); border: 1px solid var(--line-strong);
    font-size: 0.875rem; font-weight: 500;
    transition: border-color var(--dur) var(--ease), color var(--dur) var(--ease);
}
.btn-ghost:hover { border-color: var(--accent); color: var(--text-strong); }

/* Hamburger + mobile sheet */
.site-nav__burger {
    display: inline-flex; align-items: center; justify-content: center;
    width: 2.5rem; height: 2.5rem; border-radius: var(--radius);
    border: 1px solid var(--line); color: var(--text);
    background: transparent; cursor: pointer;
}
.site-nav__burger:hover { border-color: var(--line-strong); }
.site-mobile {
    display: none; border-top: 1px solid var(--line);
    background: var(--deep); padding: 0.5rem 1.5rem 1.25rem;
}
.site-mobile.is-open { display: block; }
.site-mobile a {
    display: block; padding: 0.7rem 0; font-size: 0.95rem;
    color: var(--text-muted); border-bottom: 1px solid var(--line);
    transition: color var(--dur) var(--ease);
}
.site-mobile a:hover { color: var(--text-strong); }
.site-mobile a.is-accent { color: var(--accent); }
.site-mobile .site-mobile__cta { display: flex; gap: 0.75rem; margin-top: 1rem; }
.site-mobile .site-mobile__cta a { flex: 1; text-align: center; border-bottom: 0; padding: 0; }

@media (min-width: 768px) {
    .site-nav__links { display: flex; }
    .site-nav__burger { display: none; }
    .site-mobile { display: none !important; }
}

/* ---- Accessibility & motion --------------------------------------------- */
a:focus-visible, button:focus-visible, .btn-accent:focus-visible,
.btn-ghost:focus-visible {
    outline: 2px solid var(--accent); outline-offset: 3px; border-radius: 4px;
}
@media (prefers-reduced-motion: reduce) {
    * { animation: none !important; transition: none !important; scroll-behavior: auto !important; }
}
