:root{
  --c-paper:            #FCFDFE;
  --c-paper-blue:       #F1F6FA;
  --c-ice:              #E2ECF4;
  --c-white:            #FFFFFF;

  --c-deep:             #071726;
  --c-corp:             #0E2E4F;

  --c-ink:              #12263C;
  --c-muted:            #55697C;
  --c-ink-invert:       #C6DAEA;

  --c-line:             #D7E0E8;
  --c-line-strong:      #A9BBC9;
  --c-line-interactive: #6E8598;
  --c-line-invert-weak:   rgba(255,255,255,.10);
  --c-line-invert:        rgba(255,255,255,.15);
  --c-line-invert-strong: rgba(255,255,255,.24);

  --c-brand:            #12518A;
  --c-action:           #1E77C6;
  --c-copper:           #A2612F;
  --c-copper-invert:    #E7C8AE;
  --c-danger:           #963B3B;
  --c-focus:            #1E77C6;
  --c-focus-invert:     #7FB6E6;

  --img-filter-face:    saturate(.90) contrast(1.02);
  --img-filter-env:     saturate(.78) contrast(1.03);
  --img-tint:           #0E2E4F;
  --img-tint-op:        .10;
  --img-scrim:          linear-gradient(to top, rgba(7,23,38,.55) 0%, rgba(7,23,38,0) 55%);

  --ff-head: "IBM Plex Serif", "Charter", Georgia, serif;
  --ff-body: "IBM Plex Sans", "Segoe UI", system-ui, -apple-system, sans-serif;
  --ff-mono: "IBM Plex Mono", "Consolas", ui-monospace, monospace;

  --fs-h1:      clamp(2.375rem, 1.35rem + 3.4vw, 4rem);
  --fs-h2:      clamp(1.75rem, 1.15rem + 1.9vw, 2.625rem);
  --fs-h3:      clamp(1.3125rem, 1.08rem + 0.8vw, 1.625rem);
  --fs-h4:      1.25rem;
  --fs-h5:      1.1875rem;
  --fs-num:     clamp(1.75rem, 1.2rem + 1.8vw, 2.375rem);
  --fs-lead:    clamp(1.0625rem, 1rem + .35vw, 1.1875rem);
  --fs-body:    1rem;
  --fs-sm:      .9375rem;
  --fs-xs:      .875rem;
  --fs-mono:    .6875rem;
  --fs-mono-sm: .625rem;
  --fs-mono-md: .75rem;

  --lh-h1: 1.05;  --lh-h2: 1.12;  --lh-h3: 1.22;
  --lh-body: 1.70; --lh-lead: 1.62; --lh-tight: 1.35;

  --ls-h1: -.021em; --ls-h2: -.017em; --ls-h3: -.012em;
  --ls-mono: .17em; --ls-mono-tight: .06em;

  --fw-reg: 400; --fw-med: 500; --fw-semi: 600;

  --measure-body: 68ch;
  --measure-lead: 56ch;
  --measure-h1:   13ch;
  --measure-h2:   17ch;

  --sp-1: 4px;   --sp-2: 8px;   --sp-3: 12px;  --sp-4: 16px;
  --sp-5: 20px;  --sp-6: 24px;  --sp-7: 32px;  --sp-8: 40px;
  --sp-9: 48px;  --sp-10: 56px; --sp-11: 64px; --sp-12: 80px;
  --sp-13: 96px; --sp-14: 128px; --sp-15: 160px;

  --section-y:       clamp(64px, 8vw, 112px);
  --section-y-dark:  clamp(48px, 6vw, 72px);
  --section-y-split: clamp(48px, 6.5vw, 88px);

  --container:       1320px;
  --container-read:  760px;
  --pad-x:           clamp(20px, 4vw, 40px);
  --gutter:          24px;
  --cols:            12;

  --radius-0: 0;
  --radius-1: 2px;
  --radius-2: 3px;

  --bw-hair: 1px;
  --bw-emph: 2px;
  --bw-mark: 3px;

  --h-header:        88px;
  --h-header-compact:64px;
  --h-header-tablet: 72px;
  --h-header-mobile: 64px;
  --h-btn:           52px;
  --h-btn-sm:        46px;
  --h-btn-xs:        40px;
  --h-input:         48px;
  --tap-min:         44px;
  --sticky-top:      104px;

  --z-header: 100; --z-megapanel: 110; --z-stickybar: 150;
  --z-mobilemenu: 200; --z-cookie: 300; --z-skiplink: 400;

  --dur-fast: 140ms; --dur: 180ms; --dur-slow: 260ms;
  --ease: cubic-bezier(.2,.6,.2,1);

  --focus-ring: 2px solid var(--c-focus);
  --focus-offset: 2px;
}

@media (min-width: 1200px){ :root{ --gutter: 32px; } }

@media (prefers-reduced-motion: reduce){
  :root{ --dur-fast: 0ms; --dur: 0ms; --dur-slow: 0ms; }
}
