/* [project]/src/styles/globals.scss.css [app-client] (css) */
*, :before, :after {
  box-sizing: border-box;
}

* {
  margin: 0;
}

html {
  -moz-text-size-adjust: 100%;
  text-size-adjust: 100%;
  scroll-behavior: smooth;
}

body {
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizelegibility;
  min-height: 100vh;
  line-height: 1.5;
}

img, picture, video, canvas, svg {
  max-width: 100%;
  display: block;
}

input, button, textarea, select {
  font: inherit;
  color: inherit;
}

button {
  cursor: pointer;
  background: none;
  border: none;
}

a {
  color: inherit;
  text-decoration: none;
}

ul, ol {
  padding: 0;
  list-style: none;
}

h1, h2, h3, h4 {
  font-weight: 700;
  line-height: 1.15;
}

p {
  text-wrap: pretty;
}

:focus-visible {
  outline: 2px solid var(--color-accent);
  outline-offset: 2px;
}

:root {
  --color-accent: #2563eb;
  --color-accent-hover: #1d4ed8;
  --color-accent-soft: #eff4ff;
  --color-ink: #0a0a0a;
  --color-ink-2: #475467;
  --color-muted: #667085;
  --color-bg: #fff;
  --color-bg-2: #f5f7fa;
  --color-card: #f4f6f9;
  --color-border: #e4e7ec;
  --color-white: #fff;
  --container: 1180px;
  --radius-md: 14px;
  --radius-lg: 22px;
  --fs-h1: clamp(1.9rem, 1.3rem + 2.4vw, 3rem);
  --fs-h2: clamp(1.6rem, 1.2rem + 1.6vw, 2.25rem);
}

body {
  color: #0a0a0a;
  background-color: #fff;
  font-family: Inter, -apple-system, BlinkMacSystemFont, Segoe UI, Roboto, Helvetica Neue, Arial, sans-serif;
  font-size: 1rem;
}

::selection {
  color: #fff;
  background: #2563eb;
}

@media (prefers-reduced-motion: no-preference) {
  [data-reveal] {
    opacity: 0;
    transition: opacity .6s, transform .6s cubic-bezier(.22, 1, .36, 1);
    transition-delay: var(--reveal-delay, 0s);
    will-change: opacity,transform;
    transform: translateY(22px);
  }

  [data-reveal].is-in {
    opacity: 1;
    transform: none;
  }
}

.livePulse {
  background: #16a34a;
  border-radius: 50%;
  width: 8px;
  height: 8px;
  display: inline-block;
  position: relative;
}

.livePulse:after {
  content: "";
  opacity: .5;
  border: 1px solid #16a34a;
  border-radius: 50%;
  position: absolute;
  inset: -4px;
}

@media (prefers-reduced-motion: no-preference) {
  .livePulse:after {
    animation: 2.2s ease-out infinite livePulse;
  }
}

@keyframes livePulse {
  0% {
    opacity: .5;
    transform: scale(1);
  }

  100% {
    opacity: 0;
    transform: scale(2.2);
  }
}

