/* Pulse — shared brand tokens. Used by the website (/) and the dashboard (/dashboard). */
/* Fonts are self-hosted (no requests to Google: visitors' IPs never leave our server). SIL OFL — see /shared/fonts/LICENSE-*.txt */
@font-face { font-family: 'Unbounded'; font-style: normal; font-display: swap; font-weight: 200 900; src: url('/shared/fonts/unbounded-latin-ext-wght-normal.woff2') format('woff2-variations'), url('/shared/fonts/unbounded-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: 'Unbounded'; font-style: normal; font-display: swap; font-weight: 200 900; src: url('/shared/fonts/unbounded-latin-wght-normal.woff2') format('woff2-variations'), url('/shared/fonts/unbounded-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: 'Manrope'; font-style: normal; font-display: swap; font-weight: 200 800; src: url('/shared/fonts/manrope-latin-ext-wght-normal.woff2') format('woff2-variations'), url('/shared/fonts/manrope-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: 'Manrope'; font-style: normal; font-display: swap; font-weight: 200 800; src: url('/shared/fonts/manrope-latin-wght-normal.woff2') format('woff2-variations'), url('/shared/fonts/manrope-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: 'JetBrains Mono'; font-style: normal; font-display: swap; font-weight: 100 800; src: url('/shared/fonts/jetbrains-mono-latin-ext-wght-normal.woff2') format('woff2-variations'), url('/shared/fonts/jetbrains-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; }
@font-face { font-family: 'JetBrains Mono'; font-style: normal; font-display: swap; font-weight: 100 800; src: url('/shared/fonts/jetbrains-mono-latin-wght-normal.woff2') format('woff2-variations'), url('/shared/fonts/jetbrains-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; }

:root {
  /* surfaces */
  --ink-950: #05060d;
  --ink-900: #090b16;
  --ink-850: #0e1120;
  --ink-800: #131729;
  --ink-700: #1b2036;
  --ink-600: #262c47;
  --line: rgba(160, 170, 255, 0.10);
  --line-strong: rgba(160, 170, 255, 0.20);
  --glass: rgba(19, 23, 41, 0.62);

  /* text */
  --text: #eef0ff;
  --text-2: #a7adcf;
  --text-3: #6d7398;

  /* signal colors */
  --violet: #7c5cff;
  --violet-2: #a18bff;
  --mint: #3df5b0;
  --ember: #ff5d73;
  --amber: #ffc44d;
  --sky: #4cc9ff;
  --blurple: #5865f2;   /* Discord's own color — only for "Login with Discord" / Discord UI mocks */

  --grad-signal: linear-gradient(120deg, #7c5cff 0%, #4cc9ff 55%, #3df5b0 100%);
  --glow-violet: 0 0 0 1px rgba(124, 92, 255, .35), 0 10px 40px -10px rgba(124, 92, 255, .55);

  /* type */
  --font-display: 'Unbounded', system-ui, sans-serif;
  --font-body: 'Manrope', system-ui, sans-serif;
  --font-mono: 'JetBrains Mono', ui-monospace, monospace;

  /* shape & motion */
  --r-sm: 8px; --r-md: 14px; --r-lg: 22px; --r-xl: 32px;
  --ease-out: cubic-bezier(.2, .8, .2, 1);
  --ease-spring: cubic-bezier(.34, 1.56, .64, 1);
  --dur-1: 140ms; --dur-2: 260ms; --dur-3: 520ms;

  color-scheme: dark;
}

*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; }
body { margin: 0; background: var(--ink-900); color: var(--text); font-family: var(--font-body); line-height: 1.55; -webkit-font-smoothing: antialiased; }
:focus-visible { outline: 2px solid var(--mint); outline-offset: 2px; border-radius: 4px; }
::selection { background: rgba(124, 92, 255, .45); }

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation-duration: .001ms !important; animation-iteration-count: 1 !important; transition-duration: .001ms !important; scroll-behavior: auto !important; }
}
