/* Ordis AI v2: design tokens and font faces.
   Every other stylesheet consumes these custom properties; none redefines them.
   Layer order for the whole site is declared here, so this file loads first on every page. */
@layer reset, tokens, base, layout, components, motion, pages, utilities;

/* Geist and Geist Mono, variable weight (SIL OFL 1.1, Vercel). Files: Fontsource 5.3.0. */
@font-face{font-family:"Geist";font-style:normal;font-weight:100 900;font-display:swap;src:url("../fonts/geist-latin-wght-normal.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:"Geist";font-style:normal;font-weight:100 900;font-display:swap;src:url("../fonts/geist-latin-ext-wght-normal.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:100 900;font-display:swap;src:url("../fonts/geist-mono-latin-wght-normal.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:"Geist Mono";font-style:normal;font-weight:100 900;font-display:swap;src:url("../fonts/geist-mono-latin-ext-wght-normal.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}

/* Metric-matched fallbacks: Arial / Courier New resized to Geist's measurements, so text does not
   reflow when the web fonts arrive. Values measured per weight with _tools/fontmetrics.py. */
@font-face{font-family:"Geist Fallback";font-weight:100 350;src:local("Arial"),local("ArialMT");size-adjust:103.93%;ascent-override:96.70%;descent-override:28.38%;line-gap-override:0%}
@font-face{font-family:"Geist Fallback";font-weight:351 450;src:local("Arial"),local("ArialMT");size-adjust:105.50%;ascent-override:95.26%;descent-override:27.96%;line-gap-override:0%}
@font-face{font-family:"Geist Fallback";font-weight:451 900;src:local("Arial"),local("ArialMT");size-adjust:107.84%;ascent-override:93.20%;descent-override:27.36%;line-gap-override:0%}
@font-face{font-family:"Geist Mono Fallback";font-weight:100 900;src:local("Courier New"),local("CourierNewPSMT");size-adjust:99.98%;ascent-override:100.52%;descent-override:29.50%;line-gap-override:0%}

@layer tokens{
  :root{
    color-scheme:dark;

    /* Surfaces: warm graphite */
    --bg-0:#0B0A09; /* page */
    --bg-1:#131210; /* raised sections */
    --bg-2:#1B1A17; /* cards */
    --bg-3:#25231F; /* hover, inputs */

    /* Ink. ink-4 is for decorative lines only, never text (2.90:1). */
    --ink:#F3EEE6;
    --ink-2:#BFB8AD;
    --ink-3:#948D82;
    --ink-4:#5F5A53;

    /* One signal orange. Text on an accent fill is always dark (white would be 2.76:1). */
    --accent:#F27A30;
    --accent-hover:#FF8E4A;
    --accent-press:#D9651E;
    --accent-ink:#0B0A09;
    --accent-text:#F27A30; /* orange used as text colour; darker on paper */

    --line-1:rgba(243,238,230,.08);
    --line-2:rgba(243,238,230,.14);
    --line-3:rgba(243,238,230,.24);

    --focus:#F27A30;
    --glass:rgba(11,10,9,.72); /* the sticky header only */
    --grain:.045;

    --success:#4CC38A;
    --warning:#F2C744;
    --danger:#FF5A6E;
    --info:#6AA8FF;

    /* Type */
    --font-sans:"Geist","Geist Fallback",system-ui,sans-serif;
    --font-mono:"Geist Mono","Geist Mono Fallback",ui-monospace,monospace;
    --fs-display:clamp(3rem,1.694rem + 5.806vw,7.5rem);   /* 48 -> 120px, 360 -> 1600px viewport */
    --fs-h2:clamp(1.875rem,1.403rem + 2.097vw,3.5rem);    /* 30 -> 56px */
    --fs-h3:clamp(1.125rem,1.07rem + .24vw,1.3125rem);    /* 18 -> 21px */
    --fs-body:clamp(1rem,.9819rem + .08065vw,1.0625rem);  /* 16 -> 17px */
    --fs-small:.875rem;
    --fs-eyebrow:clamp(.6875rem,.6694rem + .08065vw,.75rem); /* 11 -> 12px */

    /* Motion grammar: five eases, five durations. JS reads the same values (see motion.js). */
    --ease-out:cubic-bezier(.16,1,.3,1);       /* default: entrances, reveals */
    --ease-inout:cubic-bezier(.645,.045,.355,1); /* wipes, layout moves */
    --ease-in:cubic-bezier(.55,0,1,.45);       /* exits */
    --ease-ui:cubic-bezier(.4,0,.2,1);         /* toggles, tabs, menus */
    --ease-spring:cubic-bezier(.34,1.56,.64,1); /* button arrows only */
    --d-xs:.15s; /* hover, press */
    --d-sm:.3s;  /* interface state */
    --d-md:.6s;  /* components entering */
    --d-lg:.8s;  /* heading reveals */
    --d-xl:1.2s; /* hero, page moments */

    /* Space and shape */
    --py-s:clamp(64px,8vw,96px);   /* section padding */
    --py-l:clamp(96px,12vw,160px); /* hero and closing CTA */
    --gutter:clamp(16px,4vw,40px);
    --max:1280px;
    --header-h:64px;
    --r-1:4px;
    --r-2:8px;
    --r-3:16px;
    --r-4:24px;
  }

  /* Paper: light sections for long reading (docs, legal). Apply to <html> or any section. */
  [data-theme="light"]{
    color-scheme:light;
    --bg-0:#F1EDE6;
    --bg-1:#FBFAF7;
    --bg-2:#E7E2D9;
    --bg-3:#E7E2D9;
    --ink:#14120F;
    --ink-2:#4A453E;
    --ink-3:#6A645B;
    --ink-4:#A39C92;
    --accent-ink:#14120F;
    --accent-text:#A3410A;
    --line-1:rgba(20,18,15,.08);
    --line-2:rgba(20,18,15,.14);
    --line-3:rgba(20,18,15,.24);
    --focus:#14120F;
    --glass:rgba(241,237,230,.78);
    --grain:0;
  }
}
