/*!*************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[14].oneOf[12].use[2]!./node_modules/next/dist/build/webpack/loaders/postcss-loader/src/index.js??ruleSet[1].rules[14].oneOf[12].use[3]!./app/globals.css ***!
  \*************************************************************************************************************************************************************************************************************************************************************/
@import url('https://fonts.googleapis.com/css2?family=Geist:wght@300;400;500;600;700&family=Geist+Mono:wght@400;500;600&family=Inter:wght@400;500;600&display=swap');

/* vote-n-build design tokens — accent uses go through --accent so the agent
   can swap primary colors mid-demo and the system stays correct. */
:root {
  /* surfaces */
  --bg:        #0a0a0a;
  --bg-1:      #0e0e10;
  --bg-2:      #131316;
  --bg-3:      #18181c;
  --bg-inset:  #060607;

  /* foreground */
  --fg:        #fafafa;
  --fg-2:      #c7c7cc;
  --fg-3:      #8a8a93;
  --fg-4:      #5a5a63;
  --fg-5:      #3a3a42;

  /* lines */
  --line-1:    rgba(255,255,255,0.06);
  --line-2:    rgba(255,255,255,0.10);
  --line-3:    rgba(255,255,255,0.16);

  /* accent — dynamic, defaults to cyan */
  --accent:        #22d3ee;
  --accent-soft:   rgba(34,211,238,0.20);
  --accent-line:   rgba(34,211,238,0.33);
  --accent-glow:   rgba(34,211,238,0.45);
  --accent-faint:  rgba(34,211,238,0.08);

  /* status */
  --ok:        #4ade80;
  --ok-soft:   rgba(74,222,128,0.16);
  --warn:      #f59e0b;
  --warn-soft: rgba(245,158,11,0.16);
  --danger:    #f87171;
  --danger-soft: rgba(248,113,113,0.16);
  --info:      #a78bfa;
  --info-soft: rgba(167,139,250,0.16);

  /* type */
  --font-display: "Geist", "Inter", ui-sans-serif, system-ui, -apple-system, "Helvetica Neue", sans-serif;
  --font-mono:    "Geist Mono", "JetBrains Mono", ui-monospace, "SFMono-Regular", Menlo, monospace;

  --tracking-tight: -0.025em;
  --tracking-display: -0.04em;
  --tracking-eyebrow: 0.14em;

  /* radii / spacing / motion */
  --r-2: 6px; --r-3: 10px; --r-4: 14px;
  --ease: cubic-bezier(.2,.7,.2,1);
  --t-fast: 120ms;
  --t-med:  250ms;
  --t-slow: 420ms;
}

* { box-sizing: border-box; }
html, body { margin: 0; padding: 0; }
body {
  background: var(--bg);
  color: var(--fg);
  font-family: var(--font-display);
  font-size: 15px;
  line-height: 1.45;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  font-feature-settings: "ss01", "cv11";
}
button, input, textarea { font: inherit; color: inherit; }
button { cursor: pointer; }
a { color: inherit; text-decoration: none; }

.mono { font-family: var(--font-mono); letter-spacing: 0; }
.eyebrow {
  font-family: var(--font-mono);
  font-size: 11px;
  letter-spacing: var(--tracking-eyebrow);
  text-transform: uppercase;
  color: var(--fg-3);
}

/* motion primitives */
@keyframes vnb-pulse {
  0%, 100% { opacity: 1; transform: scale(1); }
  50%      { opacity: 0.55; transform: scale(0.94); }
}
@keyframes vnb-shimmer {
  0%   { background-position: -200% 0; }
  100% { background-position:  200% 0; }
}
@keyframes vnb-travel {
  0%   { transform: translateX(-100%); }
  100% { transform: translateX(400%); }
}
@keyframes vnb-blink {
  0%, 49%   { opacity: 1; }
  50%, 100% { opacity: 0; }
}
@keyframes vnb-slidein {
  from { transform: translateY(-8px); opacity: 0; }
  to   { transform: translateY(0);    opacity: 1; }
}
@keyframes vnb-travel-down {
  0%   { top: 0; opacity: 0; }
  20%  { opacity: 1; }
  100% { top: 100%; opacity: 0; }
}

.vnb-shimmer {
  background:
    linear-gradient(90deg,
      transparent 0%,
      var(--accent-soft) 35%,
      var(--accent-glow) 50%,
      var(--accent-soft) 65%,
      transparent 100%) 0 0 / 200% 100%,
    var(--bg-2);
  animation: vnb-shimmer 2.4s linear infinite;
}

.vnb-livedot {
  width: 8px; height: 8px; border-radius: 50%;
  background: var(--accent);
  box-shadow: 0 0 8px var(--accent-glow);
  animation: vnb-pulse 1.6s var(--ease) infinite;
}

/* Shipped micro-moment */
@keyframes vnb-burst {
  0%   { opacity: 0; transform: scale(0.6); }
  18%  { opacity: 1; transform: scale(1.04); }
  35%  { transform: scale(1); }
  78%  { opacity: 1; }
  100% { opacity: 0; transform: scale(1); }
}
@keyframes vnb-radiate {
  0%   { opacity: 0; transform: scale(0.4); }
  20%  { opacity: 0.9; }
  100% { opacity: 0; transform: scale(2.4); }
}
@keyframes vnb-fade-out {
  0%   { opacity: 1; }
  100% { opacity: 0; }
}

