*,
*::before,
*::after {
    box-sizing: border-box;
}
html {
    scroll-behavior: smooth;
    scroll-padding-top: 110px;
}
body {
    margin: 0;
    color: var(--pp-ink);
    background: var(--pp-white);
    font-family: var(--pp-body);
    font-size: 15px;
    line-height: 1.7;
    -webkit-font-smoothing: antialiased;
}
body.pp-dialog-open {
    overflow: hidden;
}
h1,
h2,
h3,
h4 {
    margin: 0;
    font-family: var(--pp-heading);
    font-weight: 500;
    line-height: 1.1;
    letter-spacing: -0.035em;
}
h1 {
    font-size: clamp(44px, 6vw, 80px);
}
h2 {
    font-size: clamp(34px, 3.7vw, 49px);
}
h3 {
    font-size: 25px;
    letter-spacing: -0.025em;
}
p {
    margin: 0 0 1em;
}
a {
    color: inherit;
    text-decoration: none;
    text-underline-offset: 5px;
}
button,
input,
select,
textarea {
    font: inherit;
    color: inherit;
}
button,
a,
input,
select,
summary,
textarea {
    -webkit-tap-highlight-color: transparent;
}
button,
summary {
    cursor: pointer;
}
button {
    border: 0;
}
button:disabled {
    cursor: wait;
    opacity: 0.45;
}
:focus-visible {
    outline: 2px solid var(--pp-focus);
    outline-offset: 5px;
}
img {
    display: block;
    max-width: 100%;
    height: auto;
}
svg {
    width: 24px;
    height: 24px;
    flex-shrink: 0;
}
::selection {
    background: #e5def4;
}
.pp-wrap {
    width: min(var(--pp-wrap), calc(100% - var(--pp-gutter) * 2));
    margin-inline: auto;
}
.pp-section {
    padding-block: clamp(68px, 8vw, 112px);
}
.pp-lead {
    color: var(--pp-muted);
    font-size: 16px;
    line-height: 1.85;
}
.pp-skip,
.screen-reader-text {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
}
.pp-skip:focus {
    position: fixed;
    top: 10px;
    left: 10px;
    width: auto;
    height: auto;
    margin: 0;
    padding: 12px 20px;
    clip: auto;
    color: #fff;
    background: var(--pp-ink);
    z-index: 99999;
}
.pp-content,
.pp-page {
    padding-block: 64px 100px;
    min-height: 50vh;
}
.pp-content > h1,
.pp-page > h1 {
    margin-bottom: 40px;
}
.pp-content .entry-content {
    max-width: 100%;
}
.pp-content .entry-content a:not([class]) {
    text-decoration: underline;
}
.pp-content .entry-content p,
.pp-content .entry-content ul {
    margin-bottom: 1.5em;
}
@media (prefers-reduced-motion: reduce) {
    html {
        scroll-behavior: auto;
    }
    *,
    *::before,
    *::after {
        animation-duration: 0.01ms !important;
        transition-duration: 0.01ms !important;
    }
}
