/* Landing motion layer. Hidden states exist only under html.lm-js, which the
   inline head snippet sets when the visitor has not asked for reduced motion. */
:root{--lm-ease:cubic-bezier(.22,1,.36,1);--lm-green:#3E522D;--lm-sage:#9DB57C;--lm-mark:rgba(176,201,140,.5)}

.lm-progress{position:fixed;inset:0 0 auto 0;height:3px;z-index:9999;pointer-events:none;transform-origin:0 50%;transform:scaleX(0);background:linear-gradient(90deg,var(--lm-sage),var(--lm-green))}

@keyframes lm-rise{from{opacity:0;transform:translate3d(0,26px,0)}to{opacity:1;transform:none}}
@keyframes lm-zoom{from{opacity:0;transform:scale(1.06)}to{opacity:1;transform:none}}
@keyframes lm-line{from{background-size:0 3px}to{background-size:72px 3px}}
@keyframes lm-glow{0%{box-shadow:0 0 0 0 rgba(157,181,124,.55)}70%{box-shadow:0 0 0 14px rgba(157,181,124,0)}100%{box-shadow:0 0 0 0 rgba(157,181,124,0)}}
@keyframes lm-shine{from{transform:translateX(-120%) skewX(-18deg)}to{transform:translateX(260%) skewX(-18deg)}}
@keyframes lm-open{from{opacity:0;transform:translate3d(0,-6px,0)}to{opacity:1;transform:none}}

.lm-js [data-lm-hero] p:not(h1 ~ p),.lm-js [data-lm-hero] nav{animation:lm-rise .8s var(--lm-ease) .05s both}
.lm-js [data-lm-hero] h1{animation:lm-rise 1s var(--lm-ease) .14s both,lm-line .9s var(--lm-ease) .95s both;background:linear-gradient(var(--lm-sage),var(--lm-sage)) no-repeat 0 100%/72px 3px;padding-bottom:.32em}
.lm-js [data-lm-hero] h1 ~ p{animation:lm-rise .95s var(--lm-ease) .3s both}
.lm-js [data-lm-hero] h1 ~ div{animation:lm-rise .95s var(--lm-ease) .46s both}
.lm-js [data-lm-hero] h1 ~ div:has(>strong:first-child){animation:lm-rise .95s var(--lm-ease) .46s both,lm-glow 1.6s ease-out 1.6s 1}
.lm-js [data-lm-hero] figure{animation:lm-zoom 1.4s var(--lm-ease) .2s both}

.lm-js .lm-r{opacity:0;transform:translate3d(0,28px,0);transition:opacity .85s var(--lm-ease),transform .95s var(--lm-ease)}
.lm-js .lm-r.lm-in{opacity:1;transform:none}
.lm-js h2.lm-r{transform:translate3d(0,18px,0);filter:blur(6px);transition:opacity .9s var(--lm-ease),transform 1s var(--lm-ease),filter .9s var(--lm-ease)}
.lm-js h2.lm-r.lm-in{filter:none;transform:none}
.lm-js tr.lm-r{transform:translate3d(-14px,0,0)}
.lm-js tr.lm-r.lm-in{transform:none}

.lm-js .lm-hl{background-image:linear-gradient(transparent 58%,var(--lm-mark) 58%,var(--lm-mark) 92%,transparent 92%);background-repeat:no-repeat;background-size:0 100%;transition:background-size 1.1s var(--lm-ease);-webkit-box-decoration-break:clone;box-decoration-break:clone}
.lm-js .lm-hl.lm-hl-on{background-size:100% 100%}

.lm-js .lm-cta{position:relative;overflow:hidden;isolation:isolate}
.lm-js .lm-cta::after{content:"";position:absolute;inset:-2px auto -2px 0;width:42%;z-index:-1;pointer-events:none;background:linear-gradient(90deg,transparent,rgba(255,255,255,.38),transparent);transform:translateX(-120%) skewX(-18deg)}
.lm-js .lm-cta.lm-cta-on::after{animation:lm-shine 1.25s var(--lm-ease) .25s 2}

.lm-js main section details[open]>:not(summary){animation:lm-open .45s var(--lm-ease) both}

@media (prefers-reduced-motion:reduce){
  .lm-progress{display:none}
  .lm-js [data-lm-hero] *,.lm-js .lm-cta::after,.lm-js main section details[open]>*{animation:none!important}
  .lm-js .lm-r{opacity:1!important;transform:none!important;filter:none!important;transition:none!important}
  .lm-js .lm-hl{background-size:100% 100%;transition:none}
}
@media print{.lm-js .lm-r{opacity:1!important;transform:none!important;filter:none!important}.lm-progress{display:none}}
