:root{--ease-out:cubic-bezier(.23,1,.32,1);--ease-in-out:cubic-bezier(.77,0,.175,1)}
/* Separate the face from its illustration so the drawing can emerge from behind it. */
.block{border:0;padding:0;background:transparent;box-shadow:none;overflow:visible;touch-action:manipulation;transition:transform 250ms var(--ease-out)}
.cube-face{position:absolute;inset:0;display:grid;place-items:center;border-radius:inherit;box-shadow:inset 1px 2px 2px #fff9,inset -4px -8px 12px #0002,9px 18px 20px #253b3515;z-index:2;transition:transform 250ms var(--ease-out)}
.speech .cube-face{background:var(--red)}.skills .cube-face{background:var(--yellow)}.move .cube-face{background:var(--blue)}
.cube-face>svg{transition:transform 250ms var(--ease-out),opacity 180ms ease}
.peek-symbol{position:absolute;inset:8px 15px;display:grid;place-items:center;z-index:1;transform:translateY(0) rotate(0);transition:transform 650ms var(--ease-out)}
.peek-symbol svg{stroke:var(--ink);filter:drop-shadow(0 3px 0 #fff)}.move .peek-symbol svg circle{fill:var(--ink)}
.block[aria-pressed=true] .peek-symbol{transform:translateY(-105px) rotate(12deg)}
.block[aria-pressed=true] .cube-face{transform:translateY(9px) rotate(-3deg)}
.block[aria-pressed=true] .cube-face>svg{transform:scale(.9);opacity:.6}
.block.skills[aria-pressed=true] .peek-symbol{transform:translate(-50px,-100px) rotate(-20deg)}
.block.move[aria-pressed=true] .peek-symbol{transform:translate(38px,-120px) rotate(15deg)}
.block:active .cube-face{transform:translateY(10px) scale(.96)}
.button,.service-tabs button,.menu,.text-link,.therapy-strip a,.header nav a,summary{touch-action:manipulation;transition:transform 160ms var(--ease-out),background-color 180ms ease,color 180ms ease}
.button{position:relative;isolation:isolate;overflow:hidden}.button>span{display:inline-block;transition:transform 200ms var(--ease-out)}
.button::before{content:'';position:absolute;inset:0;background:#ffffff14;transform:translateX(-102%);transition:transform 250ms var(--ease-out);z-index:-1}
.button:active,.service-tabs button:active,.menu:active,.therapy-strip a:active{transform:scale(.96)}
.text-link:active,.header nav a:active,summary:active{transform:translateY(2px)}
.tab-icon{transition:transform 250ms var(--ease-out)}
.service-tabs button[aria-selected=true] .tab-icon{transform:rotate(-8deg) scale(1.08)}
.faq summary span{transition:transform 200ms var(--ease-out)}
.text-link>span{transition:transform 200ms var(--ease-out)}
@media(hover:hover) and (pointer:fine){
 .button:hover{transform:translateY(-3px)}.button:hover::before{transform:translateX(0)}.button:hover>span{transform:translate(3px,-3px)}
 .button:active{transform:scale(.96)}
 .service-tabs button:hover{transform:translateY(-3px)}.service-tabs button:active{transform:scale(.96)}
 .service-tabs button:hover .tab-icon{transform:rotate(-10deg) scale(1.1)}
 .text-link:hover>span{transform:translate(3px,-2px)}.header nav a:hover{transform:translateY(-2px)}
 .therapy-strip a:hover{transform:translateY(-2px)}
 .block:hover .peek-symbol{transform:translateY(-105px) rotate(12deg)}
 .block.skills:hover .peek-symbol{transform:translate(-50px,-100px) rotate(-20deg)}
 .block.move:hover .peek-symbol{transform:translate(38px,-120px) rotate(15deg)}
 .block:hover .cube-face{transform:translateY(9px) rotate(-3deg)}
 .block:hover .cube-face>svg{transform:scale(.9);opacity:.6}
}
@media(hover:none){.button:hover{transform:none}.button:active{transform:scale(.96)}}
.motion-controls{position:absolute;bottom:-35px;left:0;right:0;display:flex;justify-content:center;gap:10px}.motion-controls button{border:1px solid #cbd4bf;border-radius:30px;background:#f8f7f2;color:var(--ink);font-size:11px;padding:7px 13px;transition:transform 160ms var(--ease-out)}.motion-controls button:active{transform:scale(.96)}
.hero-film{position:absolute;inset:0;z-index:8;border-radius:25px;overflow:hidden;background:var(--paper)}.hero-film[hidden]{display:none}.hero-film video{height:100%;width:100%;object-fit:contain}.hero-film .close-film{position:absolute;right:14px;top:14px;z-index:2;border:1px solid #cbd4bf;background:var(--paper);padding:8px 14px;border-radius:25px;color:var(--ink)}
@media(prefers-reduced-motion:reduce){.block .peek-symbol,.block:hover .peek-symbol,.block[aria-pressed=true] .peek-symbol{transform:none!important}.block .cube-face,.block:hover .cube-face,.block[aria-pressed=true] .cube-face,.block .cube-face>svg{transform:none!important;opacity:1!important}.button:hover,.button:active,.service-tabs button:hover,.service-tabs button:active,.menu:active,.text-link:active,.header nav a:hover,.header nav a:active,.therapy-strip a:hover,.therapy-strip a:active,summary:active,.tab-icon,.button>span,.text-link>span{transform:none!important}.button::before{display:none}.block[aria-pressed=true]{outline:3px solid var(--ink);outline-offset:7px}}

/* Footsteps replace the running figure; both marks move as one complete symbol. */
.move svg ellipse,.move svg circle{fill:currentColor;stroke:none}.move .cube-face svg{color:white}.move .peek-symbol svg{color:var(--ink)}

.move svg path{fill:currentColor;stroke:none}

/* A simple play ball replaces footprints in both cube layers. */
.move svg circle,.move svg path,.move .peek-symbol svg circle{fill:none;stroke:currentColor;stroke-width:5;stroke-linecap:round;stroke-linejoin:round}.move .cube-face svg{color:white}.move .peek-symbol svg{color:var(--ink)}
/* Therapy icons and direct feedback use the same brand shapes as the hero. */
.tab-icon{width:48px;height:48px;flex-shrink:0;border-radius:14px}.tab-icon svg{width:34px;height:34px}.service-tabs button{position:relative;overflow:hidden;padding:20px;min-height:90px}.service-tabs button[aria-selected=true]{border-color:#829274;background:#fff;box-shadow:0 5px 0 #dce2d4}.service-tabs button[aria-selected=true]>.tab-icon{transform:rotate(-5deg)}
.tap-wave{position:absolute;pointer-events:none;border-radius:50%;background:currentColor;opacity:0;z-index:0}.tap-response{position:relative;overflow:hidden}.tap-response>svg,.tap-response>span{position:relative}.service-art[data-art=occupational] .bubble{border-radius:18px;font-size:0;width:110px;height:110px;padding:0;display:grid;place-items:center}.service-art[data-art=occupational] .bubble:after{display:none}.service-art[data-art=occupational] .bubble:before{content:'';width:50px;height:50px;border:5px solid currentColor;border-radius:10px}.service-art[data-art=occupational] .bubble.two:before{border-radius:50%}.service-art[data-art=physical] .bubble.one{border-radius:50%;width:135px;height:135px;padding:0;display:grid;place-items:center;background:#58c7d1;overflow:hidden}.service-art[data-art=physical] .bubble.one svg{width:105px;height:105px}.service-art[data-art=physical] .bubble:after{display:none}.service-art[data-art=physical] .bubble.two{font-size:25px;background:#e3d24e}.service-art[data-art=physical] .art-star{color:#299ba6}
@media(max-width:760px){.service-tabs button{padding:15px 5px;min-height:105px}.tab-icon{width:42px;height:42px}.tab-icon svg{width:30px;height:30px}}
@media(prefers-reduced-motion:reduce){.tap-wave{display:none}}
