@import url('https://fonts.googleapis.com/css2?family=IBM+Plex+Sans:ital,wght@0,400;0,500;0,600;0,700;1,400&family=IBM+Plex+Mono:wght@400;500;600&display=swap');

:root {

  --nc-red:        #DF1B25;
  --nc-red-700:    #B5141C;
  --nc-red-050:    #FCEEEE;
  --nc-ink:        #2C211B;
  --nc-ink-900:    #1E1611;
  --nc-ink-700:    #4A3D34;
  --nc-green:      #00B575;
  --nc-green-600:  #009A63;
  --nc-green-050:  #E8F7F0;

  --nc-bg:         #FFFFFF;
  --nc-bg-alt:     #F3F6F8;
  --nc-bg-warm:    #FAF8F5;

  --nc-n-900: #2C211B;
  --nc-n-700: #564B43;
  --nc-n-500: #837972;
  --nc-n-400: #A39A93;
  --nc-n-300: #CFC8C2;
  --nc-n-200: #E7E2DC;
  --nc-n-100: #F2EEE9;

  --nc-fg:    var(--nc-ink);
  --nc-fg-2:  #564B43;
  --nc-fg-3:  #837972;
  --nc-on-dark:   #FFFFFF;
  --nc-on-dark-2: rgba(255,255,255,0.72);

  --nc-sans: "IBM Plex Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif;
  --nc-mono: "IBM Plex Mono", ui-monospace, "SF Mono", Menlo, Consolas, monospace;

  --nc-display:  clamp(2.6rem, 5.2vw, 4.6rem);
  --nc-h1:       clamp(2.1rem, 3.6vw, 3.25rem);
  --nc-h2:       clamp(1.6rem, 2.4vw, 2.25rem);
  --nc-h3:       1.375rem;
  --nc-lead:     clamp(1.05rem, 1.4vw, 1.3rem);
  --nc-body:     1rem;
  --nc-small:    0.875rem;
  --nc-eyebrow:  0.78rem;

  --nc-r-sm: 6px;
  --nc-r-md: 10px;
  --nc-r-lg: 16px;
  --nc-r-xl: 24px;
  --nc-r-pill: 999px;

  --nc-sh-sm: 0 1px 2px rgba(44,33,27,0.06), 0 1px 3px rgba(44,33,27,0.05);
  --nc-sh-md: 0 4px 14px rgba(44,33,27,0.08), 0 2px 6px rgba(44,33,27,0.05);
  --nc-sh-lg: 0 18px 50px rgba(44,33,27,0.14), 0 6px 18px rgba(44,33,27,0.08);

  --nc-maxw: 1240px;
  --nc-maxw-wide: 1600px;
  --nc-gutter: clamp(20px, 4vw, 56px);

  --nc-ease: cubic-bezier(0.22, 1, 0.36, 1);
  --nc-ease-out: cubic-bezier(0.16, 1, 0.3, 1);
  --nc-dur: 0.5s;
}

*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; }
body {
  margin: 0;
  font-family: var(--nc-sans);
  color: var(--nc-fg);
  background: var(--nc-bg);
  line-height: 1.55;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}
img, svg, video { display: block; max-width: 100%; }
a { color: inherit; text-decoration: none; }
h1,h2,h3,h4 { line-height: 1.08; letter-spacing: -0.02em; margin: 0; font-weight: 700; }
p { margin: 0; }

.nc-eyebrow {
  font-size: var(--nc-eyebrow);
  letter-spacing: 0.16em;
  text-transform: uppercase;
  font-weight: 600;
  color: var(--nc-red);
  display: inline-flex;
  align-items: center;
  gap: 9px;
}
.nc-btn {
  display: inline-flex; align-items: center; justify-content: center; gap: 9px;
  font-family: var(--nc-sans); font-weight: 600; font-size: 0.97rem;
  padding: 0.85em 1.6em; border-radius: var(--nc-r-pill);
  border: 1px solid transparent; cursor: pointer;
  transition: background var(--nc-dur) var(--nc-ease), color var(--nc-dur) var(--nc-ease),
              transform 0.15s var(--nc-ease), box-shadow var(--nc-dur) var(--nc-ease);
  white-space: nowrap;
}
.nc-btn:active { transform: translateY(1px); }

.nc-btn--primary { background: var(--nc-ink); color: #fff; }
.nc-btn--primary:hover { background: var(--nc-green); color: #fff; }

.nc-btn--green { background: var(--nc-green); color: #fff; }
.nc-btn--green:hover { background: var(--nc-green-600); }

.nc-btn--ghost { background: var(--nc-bg); color: var(--nc-ink); border-color: var(--nc-n-300); }
.nc-btn--ghost:hover { background: var(--nc-n-100); border-color: var(--nc-n-100); }

.nc-btn--on-dark { background: #fff; color: var(--nc-ink); }
.nc-btn--on-dark:hover { background: var(--nc-green); color: #fff; }
.nc-btn--ghost-dark { background: transparent; color: #fff; border-color: rgba(255,255,255,0.34); }
.nc-btn--ghost-dark:hover { background: rgba(255,255,255,0.22); border-color: transparent; }

.nc-btn .ic { width: 16px; height: 16px; stroke-width: 2; transition: transform 0.2s var(--nc-ease); }
.nc-btn--primary:hover .ic, .nc-btn--on-dark:hover .ic, .nl-btn:hover .ic, .nc-btn--green:hover .ic { transform: translateX(3px); }

.reveal-group.armed > * { opacity: 0; transform: translateY(30px); transition: opacity .85s var(--nc-ease) .08s, transform .85s var(--nc-ease) .08s; }
.reveal-group.armed.in > * { opacity: 1; transform: none; }
@media (prefers-reduced-motion: reduce) { .reveal-group.armed > * { opacity: 1; transform: none; } }

.nc-rise { transition: opacity 0.7s var(--nc-ease), transform 0.7s var(--nc-ease); }
.nc-rise.d1 { transition-delay: 0.04s; }
.nc-rise.d2 { transition-delay: 0.12s; }
.nc-rise.d3 { transition-delay: 0.20s; }
.nc-rise.d4 { transition-delay: 0.30s; }
.nc-rise.d5 { transition-delay: 0.42s; }
@starting-style {
  .nc-rise { opacity: 0; transform: translateY(20px); }
}

@media (prefers-reduced-motion: reduce) {
  * { animation-duration: 0.001ms !important; animation-iteration-count: 1 !important; transition-duration: 0.001ms !important; }
}
