/* One font, one weight across all surfaces. */
:where(body,h1,h2,h3,h4,p,a,button,input,select,textarea,summary,strong,b,small,label,span,li){font-family:var(--serif);font-weight:400;font-synthesis:none}
:root{--ease-spring:cubic-bezier(.22,1,.36,1)}
.hero{background:radial-gradient(ellipse at 50% 88%,#dbe7cd65,transparent 63%)}
.hero-highlight:after{content:'';position:absolute;bottom:1px;left:7%;width:85%;height:7px;border-bottom:1px solid #78886b75;border-radius:50%;transform:scaleX(0);transform-origin:left;animation:underline-grow 1s var(--ease-spring) .4s forwards}
.recruit-badge i{animation:breathe 3s ease-in-out infinite}
.hero-meta,.hero h1,.hero-copy,.hero-actions{animation:arrive .8s var(--ease-spring) both}
.hero h1{animation-delay:.06s}.hero-copy{animation-delay:.12s}.hero-actions{animation-delay:.18s}
.hero-scene{--scene-x:0px;--scene-y:0px;isolation:isolate;margin-bottom:14px}
.cat-button{display:block;position:relative;z-index:2;background:transparent;border:0;padding:0;width:610px;max-width:90%;margin:auto;transform:translate(var(--scene-x),var(--scene-y));transition:transform .7s var(--ease-spring);border-radius:45%;-webkit-tap-highlight-color:transparent}
.cat-button:focus-visible{outline-offset:-18px}.cat-button:hover+.cat-hint{color:var(--olive)}
.cat-button .studio-cat{width:100%;max-width:100%;margin:0;transform-origin:50% 85%;animation:cat-float 5.8s ease-in-out infinite;will-change:transform}
.cat-button.is-greeting .studio-cat{animation:cat-greet .72s var(--ease-spring)}
.cat-hint{display:block;position:relative;z-index:3;margin:-20px auto 0;font-size:13px;line-height:1.7;color:#818879;transition:color .2s}
.cat-bubble{position:absolute;z-index:5;left:50%;top:3%;transform:translate(-50%,8px) scale(.96);padding:9px 17px;border-radius:17px 17px 17px 3px;background:#ffffffee;border:1px solid #e7ecdf;color:var(--olive);box-shadow:0 8px 25px #475b4b0e;white-space:nowrap;font-size:16px;opacity:0;pointer-events:none;transition:opacity .25s,transform .4s var(--ease-spring)}
.cat-bubble.is-visible{opacity:1;transform:translate(-50%,0) scale(1)}
.scene-topics{position:absolute;inset:0;z-index:4;pointer-events:none}.topic{position:absolute;display:flex;align-items:center;gap:9px;pointer-events:auto;background:#ffffffbb;border:1px solid #ffffffd9;padding:10px 17px;border-radius:14px;box-shadow:0 8px 30px #475b4b07;font-size:16px;color:var(--olive);animation:topic-float 7s ease-in-out infinite;transition:background .25s,box-shadow .25s}
.topic span{font-size:19px;color:#83946b}.topic:hover,.topic:focus-visible{background:#fff;box-shadow:0 12px 28px #475b4b12}.topic-content{left:7%;top:26%;rotate:-8deg}.topic-lab{right:7%;top:20%;rotate:8deg;animation-delay:-2.3s}.topic-product{right:4%;bottom:20%;rotate:-5deg;animation-delay:-4.2s}
.scene-spark{animation:spark-turn 5s ease-in-out infinite}.spark-two{animation-delay:-2.5s}.scene-glow{animation:glow-breathe 8s ease-in-out infinite}
.cat-sparks{position:absolute;inset:0;z-index:6;pointer-events:none;overflow:hidden}.greeting-spark{position:absolute;left:var(--spark-left);top:var(--spark-top);color:var(--spark-color);font-size:var(--spark-size);animation:spark-burst .9s var(--ease-spring) forwards;opacity:0}
.practice-grid article,.role,.apply-simple{transition:transform .4s var(--ease-spring),box-shadow .4s,border-color .3s}.practice-grid article:target{border-color:#a9bd94;box-shadow:0 0 0 4px #dce7d17a}.practice-grid article:target h3{color:var(--olive)}
.role{animation:card-arrive .45s var(--ease-spring) both;animation-delay:calc(var(--card-index,0)*35ms)}.role[open] .role-detail{animation:arrive .3s var(--ease-spring)}
.people-strip>div{position:relative;padding-left:17px}.people-strip>div:before{content:'';position:absolute;left:0;top:15px;width:5px;height:5px;border-radius:50%;background:#a7b595;transition:transform .3s var(--ease-spring)}.people-strip>div:hover:before{transform:scale(1.8)}
.motion-ready .reveal{opacity:0;transform:translateY(24px);transition:opacity .7s var(--ease-spring),transform .7s var(--ease-spring);transition-delay:var(--reveal-delay,0ms)}.motion-ready .reveal.is-visible{opacity:1;transform:none}.motion-ready .reveal.is-visible:hover{transition-delay:0ms}
.compact-process[open] p{animation:arrive .3s var(--ease-spring)}.hero-button>span{transition:transform .4s var(--ease-spring)}.hero-button:hover>span{transform:rotate(-10deg)}
@media(hover:hover) and (pointer:fine){.practice-grid article:hover{transform:translateY(-7px);box-shadow:0 18px 45px #475b4b0d}.role:not([open]):hover{transform:translateY(-4px);box-shadow:0 12px 28px #475b4b0d}.people-strip>div:hover strong{color:#72815e}.brand:hover img{transform:rotate(-8deg)}.brand img{transition:transform .4s var(--ease-spring)}}
@keyframes arrive{from{opacity:0;translate:0 12px}to{opacity:1;translate:0 0}}
@keyframes underline-grow{to{transform:scaleX(1)}}
@keyframes breathe{50%{box-shadow:0 0 0 6px #475b4b09;opacity:.65}}
@keyframes cat-float{0%,100%{transform:translateY(0) rotate(-.7deg)}50%{transform:translateY(-9px) rotate(.7deg)}}
@keyframes cat-greet{0%{transform:translateY(0) rotate(0)}25%{transform:translateY(-12px) rotate(-3deg)}55%{transform:translateY(-4px) rotate(2deg)}100%{transform:translateY(0) rotate(0)}}
@keyframes topic-float{0%,100%{translate:0 0}50%{translate:0 -11px}}
@keyframes spark-turn{0%,100%{transform:rotate(0) scale(.9);opacity:.6}50%{transform:rotate(35deg) scale(1.1);opacity:1}}
@keyframes glow-breathe{50%{transform:scale(1.07);opacity:.7}}
@keyframes card-arrive{from{opacity:0;translate:0 8px}to{opacity:1;translate:0 0}}
@keyframes spark-burst{0%{opacity:0;transform:translateY(5px) scale(.5)}20%{opacity:1}100%{opacity:0;transform:translate(var(--spark-drift),-75px) rotate(50deg) scale(1.1)}}
@media(max-width:760px){.cat-button{width:112%;max-width:112%;margin-left:-6%}.cat-button .studio-cat{max-width:100%;margin:0}.hero-scene{margin-bottom:18px}.cat-hint{margin-top:-8px;font-size:12px}.topic{font-size:13px;padding:7px 11px;gap:5px}.topic span{font-size:16px}.topic-content{left:0;top:22%;rotate:-10deg}.topic-lab{right:-1%;top:15%}.topic-product{right:-1%;bottom:13%}.cat-bubble{font-size:14px;top:-1%}.people-strip>div{padding-left:10px}.people-strip>div:before{width:3px;height:3px;top:12px}.nav-links{font-size:13px}.role-tag{font-size:12px}.role-list-heading{font-size:12px}.hero-button{font-size:14px}.hero-actions .text-link{font-size:14px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important}.motion-ready .reveal{opacity:1;transform:none}.hero-highlight:after{transform:scaleX(1)}.cat-button{transform:none!important}.greeting-spark{display:none}}

.footer-links{display:flex;gap:24px}.open-source-link{display:inline-flex;font-size:14px;color:var(--olive);padding-bottom:10px}.open-source-link:hover{text-decoration:underline;text-underline-offset:4px}
