/* Home page. */
.hero{padding-block:clamp(2rem,5vw,4.5rem) clamp(2rem,4vw,3.5rem);overflow:clip}
.hero__grid{display:grid;grid-template-columns:1.1fr .9fr;gap:clamp(1.5rem,4vw,4rem);align-items:center}
.hero__title{margin-block-end:.5em;max-inline-size:14ch;animation:rise .9s var(--ease) both}
.hero__lead{font-size:clamp(1.05rem,1rem + .5vw,1.3rem);max-inline-size:44ch;color:#2b4034;animation:rise .9s .12s var(--ease) both}
.hero__cta{display:flex;gap:.8rem;flex-wrap:wrap;margin-block-start:1.8rem;animation:rise .9s .24s var(--ease) both}
.hero__art{position:relative;justify-self:center;inline-size:min(100%,30rem);aspect-ratio:480/560}
.hero__art::before{content:"";position:absolute;inset:6% 4% 8%;background:var(--ts-mist);border-radius:var(--shape-a);z-index:-1;animation:morph 14s ease-in-out infinite alternate}
.hero-art{inline-size:100%;block-size:100%;overflow:visible}
.hero-art .soil{fill:none;stroke:var(--ts-ink);stroke-width:2;stroke-linecap:round;opacity:.5}
.hero-art .seed{fill:var(--ts-accent);stroke:var(--ts-ink);stroke-width:2.4}
.hero-art .trace{fill:none;stroke:var(--ts-ink);stroke-width:2.6;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:1;stroke-dashoffset:1;animation:draw 1.6s var(--ease) forwards;animation-delay:var(--d,0s)}
.hero-art .trace--main{animation-duration:2.2s;stroke-width:3.2}
.hero-art .pad{fill:var(--ts-paper);stroke:var(--ts-ink);stroke-width:2.4;transform-box:fill-box;transform-origin:center;opacity:0;transform:scale(.2);animation:pop .6s var(--ease) forwards;animation-delay:var(--d,0s)}
.hero-art .leaf{fill:var(--ts-primary);opacity:0;transform-box:fill-box;transform-origin:0 100%;transform:scale(.2);animation:pop .7s var(--ease) forwards,sway 7s ease-in-out infinite alternate;animation-delay:var(--d,0s),calc(var(--d,0s) + .8s)}
.hero-art g:nth-of-type(even) .leaf{fill:var(--ts-secondary)}
.hero-art g:nth-of-type(5) .leaf{fill:var(--ts-accent)}
.hero__phrase{position:absolute;inset-inline:0;inset-block-end:-.2rem;margin:0;text-align:center;font-weight:700;font-size:clamp(.95rem,.9rem + .3vw,1.1rem);animation:rise .9s 1.2s var(--ease) both}
.hero__phrase::before{content:"";display:inline-block;inline-size:.55rem;block-size:1.05em;background:var(--ts-accent);margin-inline-end:.6rem;vertical-align:-.15em;animation:blink 1.1s steps(1) infinite}
@keyframes draw{to{stroke-dashoffset:0}}
@keyframes pop{to{opacity:1;transform:scale(1)}}
@keyframes sway{from{rotate:-3deg}to{rotate:3deg}}
@keyframes rise{from{opacity:0;transform:translateY(18px)}to{opacity:1;transform:none}}
@keyframes blink{50%{opacity:0}}
@keyframes morph{to{border-radius:var(--shape-b)}}

.section{padding-block:clamp(3rem,6vw,5.5rem)}
.section--tight{padding-block:clamp(1.5rem,3vw,2.5rem) clamp(2.5rem,5vw,4rem)}
.section-head{display:grid;grid-template-columns:1fr auto;gap:.4rem 2rem;align-items:end;margin-block-end:2.2rem}
.section-head h2{grid-column:1;margin:0}
.section-head p{grid-column:1;margin:0;max-inline-size:52ch;color:#35493c}
.section-head .link-arrow{grid-column:2;grid-row:1/3;align-self:end}
@media (max-width:40em){.section-head{grid-template-columns:1fr}.section-head .link-arrow{grid-column:1;grid-row:auto;justify-self:start;margin-block-start:.6rem}}

.section--values{background:var(--ts-mist);border-radius:clamp(1.5rem,4vw,3.5rem);margin-inline:clamp(.4rem,1.5vw,1.2rem)}
.section--values h2{margin-block-end:2rem}
.values{display:grid;grid-template-columns:repeat(auto-fit,minmax(16rem,1fr));gap:1.8rem 2.4rem}
.value{position:relative;padding-inline-start:2.4rem}
.value::before{content:"";position:absolute;inset-inline-start:0;inset-block-start:.55rem;inline-size:1.35rem;block-size:1.35rem;border-radius:0 100% 0 100%;background:var(--ts-primary);transform:rotate(-8deg);transition:transform .5s var(--ease),border-radius .5s var(--ease)}
.value:nth-child(3n+2)::before{background:var(--ts-secondary)}
.value:nth-child(3n)::before{background:var(--ts-accent)}
.value:hover::before{transform:rotate(28deg) scale(1.15);border-radius:100% 0 100% 0}
.value h3{margin-block-end:.2em}
.value p{margin:0;color:#35493c}

.cta{background:var(--ts-forest);color:#fff;margin-block-start:clamp(2rem,4vw,4rem);padding-block:clamp(3.5rem,7vw,6rem);position:relative;overflow:hidden;border-radius:clamp(1.5rem,4vw,3.5rem) clamp(1.5rem,4vw,3.5rem) 0 0}
.cta::before,.cta::after{content:"";position:absolute;border-radius:var(--shape-a);background:var(--ts-primary);opacity:.35;animation:morph 16s ease-in-out infinite alternate}
.cta::before{inline-size:26rem;block-size:26rem;inset-inline-start:-8rem;inset-block-end:-12rem}
.cta::after{inline-size:16rem;block-size:16rem;inset-inline-end:-4rem;inset-block-start:-6rem;background:var(--ts-secondary);opacity:.3}
.cta__inner{position:relative;z-index:1;max-inline-size:44rem}
.cta h2{color:#fff;font-size:clamp(1.9rem,1.2rem + 3vw,3.2rem)}
.cta p{color:#cfdcc8;font-size:1.1rem;max-inline-size:48ch}
.cta__phrase{margin-block-start:2rem;color:var(--ts-accent)!important;font-weight:700}
.site-footer{margin-block-start:0}
.site-footer::before{display:none}

@media (max-width:52em){
	.hero__grid{grid-template-columns:1fr}
	.hero__art{inline-size:min(100%,22rem);order:2}
	.hero__title{max-inline-size:none}
}
@media (prefers-reduced-motion:reduce){
	.hero-art .trace{stroke-dashoffset:0;animation:none}
	.hero-art .pad,.hero-art .leaf{opacity:1;transform:none;animation:none}
	.hero__title,.hero__lead,.hero__cta,.hero__phrase{animation:none}
	.hero__art::before,.cta::before,.cta::after,.hero__phrase::before{animation:none}
}
.hero__art{isolation:isolate}
