/* Optional webfont; all pages remain usable offline with the local fallback. */
@import url('https://fonts.googleapis.com/css2?family=Newsreader:ital,opsz,wght@0,6..72,300..500;1,6..72,300..400&family=Geist:wght@400;500;600&display=swap');
*,*::before,*::after{box-sizing:border-box}
html{font-family:var(--font-body);font-size:100%;line-height:var(--line-height);letter-spacing:var(--letter-spacing);font-weight:var(--weight-regular);color:var(--fg);background:var(--bg);-webkit-text-size-adjust:100%}
body{margin:0} h1,h2,h3,h4,h5,h6,p,figure{margin:0} h1,h2,h3,h4,h5,h6{font-family:var(--font-display);font-weight:var(--weight-light);line-height:var(--line-height-snug);overflow-wrap:anywhere;text-wrap:balance}
h1{font-size:var(--text-4xl);line-height:var(--line-height-tight);letter-spacing:var(--letter-spacing-tight)}h2{font-size:var(--text-2xl)}h3{font-size:var(--text-lg);font-weight:var(--weight-regular)}h4{font-family:var(--font-body);font-size:var(--text-md);font-weight:var(--weight-medium)}
a{color:var(--fg-brand-primary);text-underline-offset:.2em}button,input,select,textarea{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed}
img,svg{max-width:100%;vertical-align:middle}img{height:auto}button,a,input,select,textarea{-webkit-tap-highlight-color:transparent}
:focus-visible{outline:var(--focus-width) solid var(--focus);outline-offset:var(--focus-offset)}
::selection{background:var(--brand-primary-800);color:var(--fg)}html{caret-color:var(--accent);scrollbar-color:var(--neutral-700) transparent;accent-color:var(--accent)}
[hidden]{display:none!important}button svg,.icon{width:1.25rem;height:1.25rem;flex:none}svg{fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.muted{color:var(--fg-muted)}.small{font-size:var(--text-sm)}.text-label,.eyebrow{font:var(--weight-bold) var(--text-2xs)/var(--line-height-normal) var(--font-body);letter-spacing:var(--letter-spacing-wide);text-transform:uppercase}.eyebrow{color:var(--fg-muted)}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}
.skip-link{position:fixed;top:var(--space-2);left:var(--space-2);z-index:100;background:var(--bg);padding:var(--space-3);transform:translateY(-200%)}.skip-link:focus{transform:none}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}

/* Shared text styles: thirteen sizes, three weights, four line-height options. */
.text-2xs,.text-xs,.text-sm,.text-md,.text-lg,.text-xl,.text-2xl,.text-3xl,.text-4xl,.text-5xl,.text-6xl,.text-7xl,.text-8xl,.text-body-lg{line-height:var(--line-height);letter-spacing:var(--letter-spacing)}
.text-2xs{font-size:var(--text-2xs)}.text-xs{font-size:var(--text-xs)}.text-sm{font-size:var(--text-sm)}.text-md{font-size:var(--text-md)}.text-lg{font-size:var(--text-lg)}.text-xl{font-size:var(--text-xl)}.text-2xl{font-size:var(--text-2xl)}
.font-light{font-weight:var(--weight-light)}.font-regular{font-weight:var(--weight-regular)}.font-medium{font-weight:var(--weight-medium)}.font-bold,strong,b{font-weight:var(--weight-bold)}
code,kbd,samp,pre{font-family:var(--font-mono);font-size:inherit}

.text-body-lg{font-size:var(--text-body-lg)}.text-3xl{font-size:var(--text-3xl)}.text-4xl{font-size:var(--text-4xl)}

.text-5xl{font-size:var(--text-5xl)}.text-6xl{font-size:var(--text-6xl)}.text-7xl{font-size:var(--text-7xl)}.text-8xl{font-size:var(--text-8xl)}

/* Size recipes supply defaults; leading utilities allow deliberate overrides. */
.text-lg,.text-xl{line-height:var(--line-height-snug)}
.text-2xl,.text-3xl,.text-4xl,.text-5xl,.text-6xl,.text-7xl,.text-8xl{line-height:var(--line-height-tight)}
.font-display{font-family:var(--font-display)}.font-body{font-family:var(--font-body)}.italic{font-style:italic}.tracking-tight{letter-spacing:var(--letter-spacing-tight)}
.leading-none{line-height:var(--line-height-none)}.leading-tight{line-height:var(--line-height-tight)}.leading-snug{line-height:var(--line-height-snug)}.leading-normal{line-height:var(--line-height-normal)}.leading-relaxed{line-height:var(--line-height-relaxed)}

/* Phosphor SVGs use filled paths, including regular outlines and duotone layers. */
svg.ph-icon{fill:currentColor;stroke:none}
