/* Motion is progressive enhancement: all content is visible before scripts load. */
.motion-control{display:inline-flex;align-items:center;gap:9px;min-height:44px;padding:8px 0;border:0;background:transparent;color:inherit;font:700 .875rem/1.4 var(--sans);text-decoration:underline;text-underline-offset:4px;cursor:pointer}
.motion-control[hidden]{display:none}
.utility .motion-control{font-size:.875rem;min-height:38px;margin-left:auto;white-space:nowrap}
.header{transition:box-shadow .25s ease}
.header.is-scrolled{box-shadow:0 6px 26px #102e2814}
.header:after{content:"";position:absolute;bottom:-1px;left:0;right:0;height:3px;background:var(--green);transform:scaleX(var(--reading-progress,0));transform-origin:left;pointer-events:none}
.hero-line{display:block;font-weight:inherit;transform-origin:left bottom}
.hero h1{perspective:900px}
.hero-image{overflow:hidden}
.button>span,.text-link>span,.hero-link>span{transition:transform .25s ease}
@media(hover:hover) and (pointer:fine){
 html[data-motion="full"] .hero-image{transform:translate3d(var(--hero-shift-x,0px),var(--hero-shift-y,0px),0) scale(1.035);transition:transform .8s cubic-bezier(.2,.8,.2,1)}
 html:not([data-motion="reduced"]) .button:hover>span,html:not([data-motion="reduced"]) .text-link:hover>span{transform:translate(3px,-3px)}
 html:not([data-motion="reduced"]) .hero-link:hover>span{transform:translateY(4px)}
}
/* Adapted from React Bits SpotlightCard; see vendor/REACT-BITS-LICENSE.txt. */
.activity-card{position:relative;isolation:isolate;overflow:hidden;box-shadow:0 0 0 1px #113f3407;transition:box-shadow .3s ease}
.activity-card:after{content:"";position:absolute;inset:0;pointer-events:none;z-index:1;opacity:0;background:radial-gradient(340px circle at var(--mouse-x,50%) var(--mouse-y,50%),#ffe34b28,transparent 70%);transition:opacity .3s ease}
.activity-card{transform:perspective(1100px) rotateX(var(--tilt-x,0deg)) rotateY(var(--tilt-y,0deg));transition:transform .2s ease-out,box-shadow .3s ease}
.activity-card>img{transition:scale .7s cubic-bezier(.2,.8,.2,1)}
@media(hover:hover) and (pointer:fine){
 html[data-motion="full"] .activity-card:hover{box-shadow:0 16px 38px #102e2817}
 html[data-motion="full"] .activity-card:hover:after{opacity:1}
 html[data-motion="full"] .activity-card:hover>img{scale:1.06}
}
.values-ribbon{position:relative;overflow:hidden;border-top:1px solid #102e2830;padding-block:18px;user-select:none}
.ribbon-pause{position:absolute;right:16px;top:50%;translate:0 -50%;width:44px;height:44px;border:1px solid var(--deep);background:var(--yellow);color:var(--deep);font-size:1.2rem;font-weight:700;z-index:1}
.values-ribbon.is-paused .values-track{animation-play-state:paused!important}
html[data-motion="reduced"] .ribbon-pause{display:none}
.values-track{display:flex;width:max-content;transform:translateX(0)}
.values-group{display:flex;align-items:center;gap:32px;padding-right:32px;flex-shrink:0;font-size:clamp(1.15rem,2.2vw,2rem);font-weight:900;letter-spacing:.03em;line-height:1.1}
.values-group i{font-size:1.4rem;font-style:normal}
html[data-motion="full"] .values-ribbon.motion-inview .values-track{animation:values-travel 32s linear infinite}
html[data-motion="full"] .hero.motion-inview .hero-link>span{animation:scroll-invitation 2.4s ease-in-out infinite}
@keyframes values-travel{to{transform:translateX(-50%)}}
@keyframes scroll-invitation{0%,100%{transform:translateY(0)}50%{transform:translateY(7px)}}
.values-ribbon:hover .values-track{animation-play-state:paused!important}
html.page-inactive .values-track,html.page-inactive .hero-link>span{animation-play-state:paused!important}
.quote-tabs{display:flex;gap:10px;margin-bottom:20px;flex-wrap:wrap}
.quote-tabs button{border:1px solid var(--green);background:white;color:var(--green);font-weight:700;min-height:48px;padding:12px 24px;transition:background .25s,color .25s}
.quote-tabs button[aria-selected="true"]{background:var(--green);color:white}
.quote-stage{display:block;min-height:355px}
.quote-stage .quote{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(200px,1fr);column-gap:60px;min-height:355px;padding:44px 48px;background:var(--yellow);color:var(--deep);border-left:6px solid var(--green)}
.quote-stage .quote-mark{grid-column:1;font-size:6rem;height:48px}
.quote-stage blockquote{grid-column:1;grid-row:2 / span 2;font-size:clamp(1.8rem,3vw,2.9rem);margin:15px 0 0;max-width:770px}
.quote-stage figcaption{grid-column:2;grid-row:2;align-self:end;margin:0 0 20px}
.quote-stage figcaption strong{font-size:1.5rem}
.quote-stage .quote>p{grid-column:2;grid-row:3;align-self:start;border-top:1px solid #102e2845;color:var(--deep)}
.gallery-toolbar{display:flex;justify-content:space-between;align-items:center;gap:20px;flex-wrap:wrap;margin:24px 0 14px}
.gallery-view{display:flex;gap:6px;padding:5px;background:var(--paper);border:1px solid var(--line)}
.gallery-view button{min-height:44px;border:0;background:none;padding:9px 20px;color:var(--green);font-weight:700}
.gallery-view button[aria-pressed="true"]{background:var(--green);color:white}
.gallery-directions{display:flex;gap:10px}
.gallery-directions button{display:grid;place-items:center;width:50px;height:50px;border:1px solid var(--green);background:white;color:var(--green);font-size:1.5rem;transition:background .2s,color .2s}
.gallery-directions button:hover:not(:disabled){background:var(--green);color:white}
.gallery-directions button:disabled{opacity:.35;cursor:default}
.gallery-instruction{font-size:.94rem;color:var(--muted);margin-bottom:20px}
.gallery-grid.gallery-rail{display:flex;overflow-x:auto;overflow-y:hidden;gap:22px;padding:8px 2px 22px;margin-inline:-2px;scroll-snap-type:x mandatory;overscroll-behavior-x:contain;scrollbar-width:thin;scrollbar-color:var(--green) var(--paper);touch-action:pan-x pan-y}
.gallery-rail .gallery-item{flex:0 0 clamp(280px,39vw,500px);height:390px;scroll-snap-align:start;cursor:grab;user-select:none}
.gallery-rail .gallery-item img{pointer-events:none}
.gallery-rail.is-dragging{scroll-snap-type:none}
.gallery-rail.is-dragging,.gallery-rail.is-dragging .gallery-item{cursor:grabbing}
.gallery-rail .gallery-item:focus-visible{outline-offset:-4px}
#lightbox-image{touch-action:pan-y;user-select:none}
.health-target strong{font-variant-numeric:tabular-nums;min-width:4.6ch}
.health-target strong>span:not(.sr-only){font:inherit;line-height:inherit}
.highlight{background-size:100% 100%;background-repeat:no-repeat}
.clean{position:relative;isolation:isolate;overflow:hidden}
.clean-ambient{position:absolute;inset:0;z-index:-2;pointer-events:none;opacity:.8}
.clean:after{content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;background:linear-gradient(90deg,#113f34bb 0%,#113f34d9 60%,#113f34eb 100%)}
.clean-grid{position:relative}
.clean-motion-row{display:flex;justify-content:flex-end;margin-top:28px}
.clean .motion-control{color:#e7efe8;text-decoration-thickness:1px}
html[data-motion="reduced"]{scroll-behavior:auto!important}
html[data-motion="reduced"] *,html[data-motion="reduced"] *:before,html[data-motion="reduced"] *:after{animation:none!important;transition:none!important}
html[data-motion="reduced"] .clean-ambient{display:none}
html[data-motion="reduced"] .activity-card{transform:none}
@media(max-width:950px){.quote-stage .quote{column-gap:30px;padding:32px;grid-template-columns:1.4fr 1fr}.quote-stage blockquote{font-size:2rem}}
@media(max-width:700px){.quote-stage{min-height:0}.quote-stage .quote{display:block;min-height:0;padding:28px}.quote-stage blockquote{font-size:1.8rem;margin:18px 0 28px}.quote-stage figcaption{margin-bottom:20px}.quote-tabs{gap:7px}.quote-tabs button{padding:11px 16px}.gallery-toolbar{gap:10px}.gallery-view button{padding:9px 12px}.gallery-directions{gap:6px}.gallery-directions button{width:44px;height:44px}.gallery-grid.gallery-rail{gap:15px}.gallery-rail .gallery-item{flex-basis:clamp(255px,78vw,380px);height:330px}.values-ribbon{padding-block:15px}.values-group{gap:24px;padding-right:24px}.values-group i{font-size:1rem}}
@media(max-width:700px){.utility>.wrap{flex-wrap:wrap;gap:0 12px;padding-block:5px}.utility>.wrap>span{flex:1;min-width:150px}.utility .motion-control{order:3;width:100%;justify-content:flex-start;min-height:30px;font-weight:400}.clean-motion-row{display:none}}
@media(prefers-reduced-motion:reduce){.clean-ambient{display:none}.activity-card:after{display:none}}
