:root {
  /* PlusU Loyalty — website redesign tokens */

  --pu-ivory: #F4F1E9;
  --pu-paper: #ECE8DF;
  --pu-graphite-950: #141514;
  --pu-graphite-900: #1B1C1B;
  --pu-graphite-800: #252725;

  --pu-ink: #111311;
  --pu-ink-soft: #52544F;
  --pu-text-on-dark: #F4F1E9;
  --pu-text-on-dark-muted: #BFC0BA;

  --pu-silver: #C9C8C1;
  --pu-champagne: #B7A88F;
  --pu-teal: #4F7770;
  --pu-danger: #A85D59;

  --pu-border-light: rgba(17, 19, 17, 0.12);
  --pu-border-dark: rgba(244, 241, 233, 0.14);

  --pu-page-pad-desktop: clamp(1.75rem, 3.2vw, 3.5rem);
  --pu-page-pad-tablet: 1.75rem;
  --pu-page-pad-mobile: 1.25rem;

  --pu-max-width: 97.5rem;

  --pu-display-xl: clamp(4rem, 7.3vw, 8.25rem);
  --pu-display-lg: clamp(3rem, 5.2vw, 5.25rem);
  --pu-display-md: clamp(2.25rem, 4vw, 3.75rem);

  --pu-body-lg: 1.125rem;
  --pu-body: 1rem;
  --pu-body-sm: 0.875rem;
  --pu-micro: 0.6875rem;

  --pu-radius-button: 62.4375rem;
  --pu-radius-card: 0.875rem;
  --pu-radius-panel: 0.625rem;

  --pu-shadow-device: 0 1.75rem 5rem rgba(0, 0, 0, 0.12);

  --pu-ease-out: cubic-bezier(0.22, 1, 0.36, 1);
  --pu-ease-in-out: cubic-bezier(0.65, 0, 0.35, 1);
  --pu-ease-snap: cubic-bezier(0.2, 0.8, 0.2, 1);

  --pu-duration-micro: 160ms;
  --pu-duration-ui: 280ms;
  --pu-duration-section: 620ms;
  --pu-duration-cinematic: 1000ms;

  --pu-section-space: clamp(7rem, 11vw, 11.25rem);
  --pu-section-space-mobile: 5.25rem;
}

@media (prefers-reduced-motion: reduce) {
  :root {
    --pu-duration-micro: 1ms;
    --pu-duration-ui: 1ms;
    --pu-duration-section: 1ms;
    --pu-duration-cinematic: 1ms;
  }
}
