* { box-sizing: border-box; }
html { font-size: 16px; scroll-padding-top: 6rem; }
body { margin: 0; font-family: var(--jl-font-ui); background: var(--jl-color-bg-canvas); color: var(--jl-color-text-primary); line-height: 1.5; }
a { color: var(--jl-color-text-link); text-underline-offset: .2em; }
button, input, select, textarea { font: inherit; }
h1, h2, h3, p { overflow-wrap: anywhere; }
h1, h2, h3 { letter-spacing: -.03em; }
h1 { font-size: clamp(1.875rem, 4vw, 2.25rem); line-height: 1.22; font-weight: 700; }
h2 { font-size: 1.75rem; line-height: 1.29; font-weight: 600; }
:focus-visible { outline: 2px solid var(--jl-color-border-focus); outline-offset: 4px; }
.jl-skip-link { position: fixed; left: 1rem; top: -100px; z-index: 2000; padding: 12px 20px; background: var(--jl-color-bg-surface); }
.jl-skip-link:focus { top: 1rem; }
.jl-eyebrow { font-size: .75rem; font-weight: 600; letter-spacing: .15em; text-transform: uppercase; color: var(--jl-color-text-brand); }
.jl-badges { display: flex; flex-wrap: wrap; gap: var(--jl-space-2); }
@media (prefers-reduced-motion: reduce) {
    *, *::before, *::after { animation-duration: .01ms !important; transition-duration: .01ms !important; scroll-behavior: auto !important; }
}
