:root{--font-base-mobile:16px;--font-base-desktop:18px;--font-display:clamp(3rem,2rem + 4vw,5.5rem);--line-display:1.1;--weight-display:700;--tracking-display:-0.02em;--font-h1:clamp(2.5rem,1.75rem + 3vw,4.25rem);--line-h1:1.15;--weight-h1:700;--tracking-h1:-0.02em;--font-h2:clamp(2rem,1.5rem + 2vw,3.25rem);--line-h2:1.2;--weight-h2:700;--tracking-h2:-0.015em;--font-h3:clamp(1.625rem,1.25rem + 1.5vw,2.5rem);--line-h3:1.25;--weight-h3:600;--tracking-h3:-0.01em;--font-h4:clamp(1.25rem,1rem + 1vw,1.875rem);--line-h4:1.3;--weight-h4:600;--tracking-h4:-0.005em;--font-h5:clamp(1.125rem,0.95rem + 0.75vw,1.5rem);--line-h5:1.35;--weight-h5:600;--tracking-h5:0;--font-h6:clamp(1rem,0.9rem + 0.5vw,1.25rem);--line-h6:1.4;--weight-h6:600;--tracking-h6:0;--font-body-lg:clamp(1.125rem,1rem + 0.5vw,1.375rem);--line-body-lg:1.6;--weight-body-lg:400;--font-body-md:clamp(1rem,0.9rem + 0.5vw,1.125rem);--line-body-md:1.65;--weight-body-md:400;--font-body-sm:clamp(0.875rem,0.8rem + 0.25vw,1rem);--line-body-sm:1.55;--weight-body-sm:400;--font-caption:clamp(0.75rem,0.7rem + 0.2vw,0.875rem);--line-caption:1.5;--weight-caption:500;--tracking-caption:0.01em;--font-overline:clamp(0.625rem,0.6rem + 0.1vw,0.75rem);--line-overline:1.5;--weight-overline:700;--tracking-overline:0.15em;--font-code:clamp(0.875rem,0.8rem + 0.25vw,1rem);--line-code:1.7;--weight-code:450;--space-text-tight:0.5rem;--space-text-normal:1rem;--space-text-relaxed:1.5rem;--space-text-loose:2rem}.text-display{font-size:var(--font-display);line-height:var(--line-display);font-weight:var(--weight-display);letter-spacing:var(--tracking-display);margin-bottom:var(--space-text-loose)}.text-h1,h1{font-size:var(--font-h1);line-height:var(--line-h1);font-weight:var(--weight-h1);letter-spacing:var(--tracking-h1);margin-bottom:var(--space-text-relaxed)}.text-h2,h2{font-size:var(--font-h2);line-height:var(--line-h2);font-weight:var(--weight-h2);letter-spacing:var(--tracking-h2)}.text-h2,.text-h3,h2,h3{margin-bottom:var(--space-text-normal)}.text-h3,h3{font-size:var(--font-h3);line-height:var(--line-h3);font-weight:var(--weight-h3);letter-spacing:var(--tracking-h3)}.text-h4,h4{font-size:var(--font-h4);line-height:var(--line-h4);font-weight:var(--weight-h4);letter-spacing:var(--tracking-h4)}.text-h4,.text-h5,h4,h5{margin-bottom:var(--space-text-tight)}.text-h5,h5{font-size:var(--font-h5);line-height:var(--line-h5);font-weight:var(--weight-h5);letter-spacing:var(--tracking-h5)}.text-h6,h6{font-size:var(--font-h6);line-height:var(--line-h6);font-weight:var(--weight-h6);letter-spacing:var(--tracking-h6);margin-bottom:var(--space-text-tight)}.lead,.text-body-lg{font-size:var(--font-body-lg);line-height:var(--line-body-lg);font-weight:var(--weight-body-lg)}.text-body,.text-body-md,body,p{font-size:var(--font-body-md);line-height:var(--line-body-md);font-weight:var(--weight-body-md)}.text-body-sm,.text-sm{font-size:var(--font-body-sm);line-height:var(--line-body-sm);font-weight:var(--weight-body-sm)}.caption,.text-caption{font-size:var(--font-caption);line-height:var(--line-caption);font-weight:var(--weight-caption);letter-spacing:var(--tracking-caption)}.overline,.text-overline{font-size:var(--font-overline);line-height:var(--line-overline);font-weight:var(--weight-overline);letter-spacing:var(--tracking-overline);text-transform:uppercase}.text-code,code{font-size:var(--font-code);line-height:var(--line-code);font-weight:var(--weight-code);font-family:SF Mono,Monaco,Inconsolata,Fira Code,monospace}.font-light{font-weight:300}.font-normal{font-weight:400}.font-medium{font-weight:500}.font-semibold{font-weight:600}.font-bold{font-weight:700}.tracking-tighter{letter-spacing:-.02em}.tracking-tight{letter-spacing:-.01em}.tracking-normal{letter-spacing:0}.tracking-wide{letter-spacing:.01em}.tracking-wider{letter-spacing:.05em}.tracking-widest{letter-spacing:.15em}.leading-none{line-height:1}.leading-tight{line-height:1.25}.leading-snug{line-height:1.4}.leading-normal{line-height:1.5}.leading-relaxed{line-height:1.65}.leading-loose{line-height:1.8}.mb-text-tight{margin-bottom:var(--space-text-tight)}.mb-text-normal{margin-bottom:var(--space-text-normal)}.mb-text-relaxed{margin-bottom:var(--space-text-relaxed)}.mb-text-loose{margin-bottom:var(--space-text-loose)}.no-margin{margin:0}@media (prefers-reduced-motion:reduce){*{transition-duration:.01ms!important}}@media print{.text-h1,h1{font-size:24pt}.text-h2,h2{font-size:20pt}.text-h3,h3{font-size:16pt}.text-h4,h4{font-size:14pt}.text-h5,h5{font-size:12pt}.text-body,.text-h6,h6,p{font-size:11pt}.text-caption{font-size:9pt}}