/* Skamlös visual tokens v0.3, evolved 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-on-accent: #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: "Segoe UI Variable Text", "SF Pro Text", Aptos, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  --nc-font-display: "Aptos Display", "Segoe UI Variable Display", "SF Pro Display", system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  --nc-font-mono: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
  --nc-weight-heading: 690;
  --nc-weight-title: 740;
  --nc-tracking-heading: -0.028em;
  --nc-tracking-title: -0.042em;
  --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-control-height-sm: 2.5rem;
  --nc-control-height-md: 2.75rem;
  --nc-touch-target-min: 2.75rem;
  --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;

  /* Semantic foundations used by every authenticated surface. */
  --nc-background-base: var(--nc-canvas);
  --nc-background-elevated: var(--nc-paper);
  --nc-background-muted: var(--nc-ink-50);
  --nc-text-primary: var(--nc-ink-950);
  --nc-text-secondary: var(--nc-ink-700);
  --nc-text-muted: var(--nc-ink-600);
  --nc-accent-primary: var(--nc-brand-800);
  --nc-accent-secondary: var(--nc-coral-500);
  --nc-accent-soft: var(--nc-brand-50);
  --nc-success: var(--nc-sage-700);
  --nc-warning: var(--nc-amber-700);
  --nc-danger: var(--nc-red-700);
  --nc-info: var(--nc-blue-700);
  --nc-border-subtle: var(--nc-ink-200);
  --nc-focus-ring: var(--nc-focus);

  /* Compatibility aliases remove local fallbacks from older member styles. */
  --nc-accent: var(--nc-brand-700);
  --nc-muted: var(--nc-text-muted);
  --nc-surface-warm: var(--nc-canvas);
  --nc-shadow-soft: var(--nc-shadow-sm);
  --nc-danger-700: var(--nc-red-700);
  --nc-amber-500: #b47a20;
  --nc-coral-800: #8e3835;
  --nc-coral-400: #df8b84;
  --nc-coral-200: #f3c7c3;
  --nc-coral-50: #fdf3f2;
  --member-accent: var(--nc-focus-ring);
  --color-surface: var(--nc-background-elevated);
  --color-border: var(--nc-border-subtle);
  --color-text-muted: var(--nc-text-muted);

  /* Typography roles. */
  --nc-type-display-size: var(--nc-text-3xl);
  --nc-type-display-line: 1.02;
  --nc-type-display-weight: 740;
  --nc-type-display-tracking: -.045em;
  --nc-type-page-title-size: clamp(2rem, 4vw, 3.5rem);
  --nc-type-page-title-line: 1.06;
  --nc-type-page-title-weight: 740;
  --nc-type-page-title-tracking: -.04em;
  --nc-type-section-title-size: clamp(1.45rem, 2.5vw, 2rem);
  --nc-type-section-title-line: 1.12;
  --nc-type-section-title-weight: 690;
  --nc-type-section-title-tracking: -.028em;
  --nc-type-card-title-size: 1.25rem;
  --nc-type-card-title-line: 1.2;
  --nc-type-card-title-weight: 690;
  --nc-type-card-title-tracking: -.018em;
  --nc-type-eyebrow-size: .75rem;
  --nc-type-eyebrow-line: 1.25;
  --nc-type-eyebrow-weight: 800;
  --nc-type-eyebrow-tracking: .1em;
  --nc-type-body-size: 1rem;
  --nc-type-body-line: 1.6;
  --nc-type-body-weight: 450;
  --nc-type-body-tracking: -.006em;
  --nc-type-body-small-size: .875rem;
  --nc-type-body-small-line: 1.5;
  --nc-type-body-small-weight: 450;
  --nc-type-body-small-tracking: 0;
  --nc-type-label-size: .875rem;
  --nc-type-label-line: 1.35;
  --nc-type-label-weight: 700;
  --nc-type-label-tracking: 0;
  --nc-type-meta-size: .75rem;
  --nc-type-meta-line: 1.4;
  --nc-type-meta-weight: 550;
  --nc-type-meta-tracking: .01em;
  --nc-type-button-size: .9375rem;
  --nc-type-button-line: 1.2;
  --nc-type-button-weight: 750;
  --nc-type-button-tracking: 0;
  --nc-type-inline-action-size: .875rem;
  --nc-type-inline-action-line: 1.4;
  --nc-type-inline-action-weight: 700;
  --nc-type-inline-action-tracking: 0;

  /* Shape, depth and readable content widths. */
  --nc-radius-control: var(--nc-radius-md);
  --nc-radius-card: var(--nc-radius-lg);
  --nc-radius-panel: var(--nc-radius-xl);
  --nc-radius-hero: 2rem;
  --nc-radius-circle: 50%;
  --nc-shadow-none: none;
  --nc-shadow-raised: var(--nc-shadow-md);
  --nc-shadow-floating: var(--nc-shadow-lg);
  --nc-width-narrow: 40rem;
  --nc-width-standard: 52rem;
  --nc-width-wide: 72rem;
  --nc-width-full: 100%;
}

/* MEDIUM keeps hierarchy without carrying desktop display sizes into a tablet. */
@media (max-width: 1024px) {
  :root {
    --nc-type-page-title-size: clamp(1.875rem, 3vw, 2.125rem);
    --nc-type-section-title-size: clamp(1.25rem, 2.2vw, 1.5rem);
    --nc-type-card-title-size: 1.125rem;
  }
}

/* COMPACT uses bounded rem-based type. UI labels do not grow with the viewport. */
@media (max-width: 620px) {
  :root {
    --nc-type-page-title-size: clamp(1.5rem, calc(1.1rem + 2vw), 1.75rem);
    --nc-type-section-title-size: clamp(1.125rem, calc(.95rem + 1vw), 1.375rem);
    --nc-type-body-size: .9375rem;
    --nc-type-body-line: 1.5;
    --nc-type-meta-size: .8125rem;
    --nc-type-button-size: .875rem;
  }
}

* { 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; background: var(--nc-bg); font-size: var(--nc-text-md); line-height: var(--nc-leading-normal); letter-spacing: -.006em; text-rendering: optimizeLegibility; }
h1, h2, h3 { text-wrap: balance; }
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: var(--nc-weight-title); line-height: var(--nc-leading-tight); letter-spacing: var(--nc-tracking-title); color: var(--nc-brand-950); }
.nc-section-title { margin: 0; font-family: var(--nc-font-display); font-size: var(--nc-text-2xl); font-weight: var(--nc-weight-heading); line-height: 1.12; letter-spacing: var(--nc-tracking-heading); 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; }
}
