/* Ny Community visual tokens v0.1, adopted from the supplied style guide. */
:root {
  color-scheme: light;
  --nc-brand-950: #35162b;
  --nc-brand-900: #4a1e3b;
  --nc-brand-800: #61284d;
  --nc-brand-700: #7a365f;
  --nc-brand-600: #934873;
  --nc-brand-500: #ad5d88;
  --nc-brand-400: #c77aa0;
  --nc-brand-300: #dea0bd;
  --nc-brand-200: #efc7d9;
  --nc-brand-100: #f8e8ef;
  --nc-brand-50: #fcf5f8;
  --nc-coral-700: #a7433f;
  --nc-coral-600: #bf554f;
  --nc-coral-500: #d66f67;
  --nc-coral-300: #eca9a3;
  --nc-coral-100: #f9e3e0;
  --nc-sage-800: #315b4d;
  --nc-sage-700: #3d7060;
  --nc-sage-600: #4f8875;
  --nc-sage-100: #e4f0eb;
  --nc-blue-700: #35667b;
  --nc-blue-100: #e4f1f5;
  --nc-amber-700: #8a5a12;
  --nc-amber-100: #fff1d6;
  --nc-red-700: #9a3338;
  --nc-red-100: #fbe3e5;
  --nc-ink-950: #211a1f;
  --nc-ink-900: #2c2329;
  --nc-ink-800: #3d3339;
  --nc-ink-700: #554a50;
  --nc-ink-600: #6d6268;
  --nc-ink-500: #847a7f;
  --nc-ink-400: #a29a9e;
  --nc-ink-300: #c2bbbe;
  --nc-ink-200: #ddd8da;
  --nc-ink-150: #e8e4e6;
  --nc-ink-100: #f1edef;
  --nc-ink-50: #f8f5f6;
  --nc-paper: #fffdfb;
  --nc-canvas: #faf6f3;
  --nc-white: #ffffff;
  --nc-bg: var(--nc-canvas);
  --nc-surface: var(--nc-paper);
  --nc-surface-raised: var(--nc-white);
  --nc-surface-soft: var(--nc-brand-50);
  --nc-text: var(--nc-ink-950);
  --nc-text-muted: var(--nc-ink-600);
  --nc-text-subtle: var(--nc-ink-500);
  --nc-border: var(--nc-ink-200);
  --nc-border-strong: var(--nc-ink-300);
  --nc-focus: #6f4bb8;
  --nc-link: var(--nc-brand-700);
  --nc-link-hover: var(--nc-brand-900);
  --nc-font-sans: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  --nc-font-display: Georgia, "Times New Roman", serif;
  --nc-font-mono: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
  --nc-text-xs: 0.75rem;
  --nc-text-sm: 0.875rem;
  --nc-text-md: 1rem;
  --nc-text-lg: 1.125rem;
  --nc-text-xl: 1.375rem;
  --nc-text-2xl: clamp(1.75rem, 3vw, 2.25rem);
  --nc-text-3xl: clamp(2.5rem, 6vw, 5.25rem);
  --nc-leading-tight: 1.08;
  --nc-leading-normal: 1.55;
  --nc-leading-relaxed: 1.7;
  --nc-space-1: 0.25rem;
  --nc-space-2: 0.5rem;
  --nc-space-3: 0.75rem;
  --nc-space-4: 1rem;
  --nc-space-5: 1.25rem;
  --nc-space-6: 1.5rem;
  --nc-space-8: 2rem;
  --nc-space-10: 2.5rem;
  --nc-space-12: 3rem;
  --nc-space-16: 4rem;
  --nc-radius-sm: 0.5rem;
  --nc-radius-md: 0.875rem;
  --nc-radius-lg: 1.25rem;
  --nc-radius-xl: 1.75rem;
  --nc-radius-pill: 999px;
  --nc-shadow-sm: 0 1px 2px rgb(53 22 43 / 6%), 0 2px 8px rgb(53 22 43 / 4%);
  --nc-shadow-md: 0 8px 24px rgb(53 22 43 / 9%), 0 2px 6px rgb(53 22 43 / 5%);
  --nc-shadow-lg: 0 18px 50px rgb(53 22 43 / 12%), 0 5px 14px rgb(53 22 43 / 6%);
  --nc-ease: cubic-bezier(.2, .75, .25, 1);
  --nc-fast: 120ms;
  --nc-normal: 200ms;
  --nc-slow: 320ms;
  --nc-content: 72rem;
  --nc-reading: 45rem;
  --nc-header-height: 4.75rem;
}

* { box-sizing: border-box; }
html { background: var(--nc-bg); color: var(--nc-text); font-family: var(--nc-font-sans); scroll-behavior: smooth; }
body { margin: 0; font-size: var(--nc-text-md); line-height: var(--nc-leading-normal); }
a { color: var(--nc-link); text-decoration-thickness: .08em; text-underline-offset: .18em; }
a:hover { color: var(--nc-link-hover); }
:focus-visible { outline: 3px solid color-mix(in srgb, var(--nc-focus) 70%, white); outline-offset: 3px; }
::selection { background: var(--nc-brand-200); color: var(--nc-brand-950); }
.nc-container { width: min(100% - 2rem, var(--nc-content)); margin-inline: auto; }
.nc-reading { width: min(100%, var(--nc-reading)); }
.nc-stack { display: flex; flex-direction: column; gap: var(--nc-space-4); }
.nc-row { display: flex; align-items: center; gap: var(--nc-space-3); flex-wrap: wrap; }
.nc-title { margin: 0; max-width: 12ch; font-family: var(--nc-font-display); font-size: var(--nc-text-3xl); font-weight: 500; line-height: var(--nc-leading-tight); letter-spacing: -.045em; color: var(--nc-brand-950); }
.nc-section-title { margin: 0; font-family: var(--nc-font-display); font-size: var(--nc-text-2xl); font-weight: 500; line-height: 1.16; letter-spacing: -.025em; color: var(--nc-brand-950); }
.nc-kicker { margin: 0; color: var(--nc-brand-700); font-size: var(--nc-text-sm); font-weight: 800; letter-spacing: .09em; text-transform: uppercase; }
.nc-lead { margin: 0; max-width: 42rem; color: var(--nc-ink-700); font-size: var(--nc-text-lg); line-height: 1.65; }
.nc-muted { color: var(--nc-text-muted); }
.nc-button { min-height: 2.75rem; display: inline-flex; align-items: center; justify-content: center; gap: var(--nc-space-2); border: 1px solid transparent; border-radius: var(--nc-radius-pill); padding: .7rem 1.15rem; font: inherit; font-weight: 750; text-decoration: none; cursor: pointer; transition: background var(--nc-fast) var(--nc-ease), border-color var(--nc-fast) var(--nc-ease), transform var(--nc-fast) var(--nc-ease); }
.nc-button:active { transform: translateY(1px); }
.nc-button--primary { background: var(--nc-brand-800); color: white; box-shadow: var(--nc-shadow-sm); }
.nc-button--primary:hover { background: var(--nc-brand-900); color: white; }
.nc-button--secondary { background: var(--nc-white); color: var(--nc-brand-900); border-color: var(--nc-brand-300); }
.nc-button--secondary:hover { background: var(--nc-brand-50); }
.nc-button--quiet { background: transparent; color: var(--nc-ink-700); border-color: var(--nc-border); }
.nc-button--quiet:hover { background: var(--nc-white); }
.nc-badge { display: inline-flex; align-items: center; min-height: 1.8rem; border-radius: var(--nc-radius-pill); padding: .25rem .7rem; font-size: var(--nc-text-xs); line-height: 1; font-weight: 750; background: var(--nc-ink-100); color: var(--nc-ink-700); }
.nc-notice { display: grid; gap: .25rem; border-radius: var(--nc-radius-md); border: 1px solid var(--nc-border); padding: var(--nc-space-4); }
.nc-notice--info { background: var(--nc-blue-100); border-color: color-mix(in srgb, var(--nc-blue-700) 20%, white); }

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