/* Base: reset, body, layout primitives and type utilities. Scoped resets so plugin markup keeps its own styling. */
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-padding-top:calc(var(--lpd-nav-h) + 16px)}
body{margin:0;background:var(--lpd-paper);color:var(--lpd-ink);font-family:var(--lpd-font-body);font-size:var(--lpd-text-body);line-height:1.55;-webkit-font-smoothing:antialiased;overflow-x:clip}
img,svg,video{max-width:100%;height:auto}
.lpd-site :where(h1,h2,h3,h4,p,blockquote,figure){margin:0}
.lpd-site :where(ul.lpd-list-reset){list-style:none;margin:0;padding:0}
.lpd-site :where(a){color:inherit;text-decoration:none}
.lpd-site :where(button){font:inherit;color:inherit;background:none;border:0;padding:0;cursor:pointer}
:focus-visible{outline:3px solid var(--lpd-green);outline-offset:3px;border-radius:6px}
.lpd-skip{position:absolute;left:16px;top:-60px;z-index:100;padding:10px 16px;border-radius:var(--lpd-pill);background:var(--lpd-ink);color:var(--lpd-paper)}
.lpd-skip:focus{top:12px}
.screen-reader-text{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}

/* layout */
.lpd-container{max-width:var(--lpd-max);margin:0 auto;padding:0 var(--lpd-gutter)}
.lpd-section{padding:var(--lpd-section) 0}
.lpd-section--tight{padding-block:calc(var(--lpd-section) * .5)}
.lpd-block{margin:0 16px;border-radius:var(--lpd-r-xl)}
.lpd-block--top{border-radius:var(--lpd-r-xl) var(--lpd-r-xl) 0 0}
@media (max-width:767px){.lpd-block{margin:0 8px}}

/* type */
.lpd-display{font-family:var(--lpd-font-display);font-weight:700;letter-spacing:-.04em;line-height:.95}
.lpd-h2{font-family:var(--lpd-font-display);font-weight:700;font-size:var(--lpd-text-h2);line-height:.98;letter-spacing:-.045em;max-width:14ch}
.lpd-h3{font-family:var(--lpd-font-display);font-weight:700;font-size:var(--lpd-text-h3);line-height:1;letter-spacing:-.035em}
.lpd-lede{font-size:var(--lpd-text-lede);color:var(--tone-soft,var(--lpd-ink-2));max-width:52ch;margin-top:20px}
.lpd-muted{color:var(--tone-soft,var(--lpd-ink-2))}

/* reveal: elements fade up on scroll once JS is running (see lp.js reveal module).
   .lpd-js is set in <head>, so these start states apply from the first paint. */
.lpd-js .lpd-rv{opacity:0;transform:translateY(28px)}
.lpd-js .lpd-hero-deck .lpd-ln>span{transform:translateY(110%)}
.lpd-js .lpd-hero-deck .lpd-deck__card,.lpd-js .lpd-hero-deck .lpd-badge{opacity:0}
@media (prefers-reduced-motion:reduce){.lpd-js .lpd-rv,.lpd-js .lpd-hero-deck .lpd-ln>span{opacity:1;transform:none}.lpd-js .lpd-hero-deck .lpd-deck__card,.lpd-js .lpd-hero-deck .lpd-badge{opacity:1}}
