/* The chosen personality sketch direction. Cards and controls stay still;
   only the character rig and its small props move. */
.team-portrait{position:relative;isolation:isolate}
.team-portrait:before{content:'';position:absolute;bottom:10px;left:calc(50% - 49px);width:98px;height:8px;border-radius:50%;background:#15343e14;z-index:0}
.team-portrait .portrait{position:relative;z-index:1}
.team-portrait .toon-story .toon-body{transform-origin:50px 103px;animation:cast-breathe 3.3s ease-in-out infinite;animation-delay:var(--toon-delay)}
.toon-story .toon-head{transform-origin:48px 50px;animation:cast-look 6s ease-in-out infinite;animation-delay:var(--toon-delay)}
.toon-story .story-left{transform-origin:34px 73px}
.toon-story .story-right{transform-origin:64px 73px}
.toon-story .story-steam{animation:cast-steam 2.6s ease-in-out infinite;animation-delay:var(--toon-delay)}
.toon-story .story-check{opacity:0;animation:cast-check 4.5s ease-in-out infinite;animation-delay:var(--toon-delay)}
.toon-story .story-idea{transform-origin:87px 17px;opacity:0;animation:cast-idea 5.1s ease-in-out infinite;animation-delay:var(--toon-delay)}
.toon-story[data-personality=note] .story-right{animation:cast-note 4.5s ease-in-out infinite;animation-delay:var(--toon-delay)}
.toon-story[data-personality=note] .toon-head{animation:cast-nod 4.5s ease-in-out infinite;animation-delay:var(--toon-delay)}
.toon-story[data-personality=scan] .toon-head{animation:cast-scan 5.6s ease-in-out infinite;animation-delay:var(--toon-delay)}
.toon-story[data-personality=scan] .story-right{animation:cast-note 3.9s ease-in-out infinite;animation-delay:var(--toon-delay)}
.toon-story[data-personality=coffee] .story-right{animation:cast-coffee 5.4s ease-in-out infinite;animation-delay:var(--toon-delay)}
.toon-story[data-personality=coffee] .toon-head{animation:cast-side-eye 5.4s ease-in-out infinite;animation-delay:var(--toon-delay)}
.toon-story[data-personality=present] .story-right{animation:cast-present 5.1s ease-in-out infinite;animation-delay:var(--toon-delay)}
.team-portrait .toon-story[data-personality=present] .toon-body{animation:cast-tip 5.1s ease-in-out infinite;animation-delay:var(--toon-delay)}
.toon-story[data-personality=tinker] .story-right{animation:cast-tinker 4.2s ease-in-out infinite;animation-delay:var(--toon-delay)}
.toon-story[data-personality=shrug] .story-left,.toon-story[data-personality=shrug] .story-right{animation:cast-shrug 5.8s ease-in-out infinite;animation-delay:var(--toon-delay)}
.toon-story[data-personality=listen] .toon-head{animation:cast-listen 5.5s ease-in-out infinite;animation-delay:var(--toon-delay)}
.toon-story[data-personality=stretch] .story-left,.toon-story[data-personality=stretch] .story-right{animation:cast-stretch 6.4s ease-in-out infinite;animation-delay:var(--toon-delay)}
.team-lock-stamp{position:absolute;z-index:3;right:12px;bottom:16px;background:#ffdb80;border:2px solid var(--ink);padding:4px 8px;font-size:12px;font-weight:900;border-radius:3px 5px;transform:rotate(-11deg);opacity:0;pointer-events:none}
.team-card.locked .team-lock-stamp{opacity:1}
.team-card .ability-bars b{transition:width .45s cubic-bezier(.2,.8,.3,1)}
.team-card .lock-button{transition:translate .1s,background-color .15s;box-shadow:1px 2px #15343e20}
.team-card .lock-button:active{translate:0 2px;box-shadow:none}
#app[data-phase=team] .team-portrait .toon-story *{animation-play-state:running!important}
@keyframes cast-breathe{50%{transform:translateY(-1.6px) scaleY(1.015)}}
@keyframes cast-look{30%{transform:rotate(-2deg)}60%{transform:rotate(2deg)}}
@keyframes cast-note{0%,55%,100%{transform:rotate(0)}20%,35%{transform:rotate(-10deg) translate(0,-2px)}28%,43%{transform:rotate(2deg)}}
@keyframes cast-nod{0%,60%,100%{transform:rotate(0)}20%{transform:rotate(6deg) translateY(2px)}40%{transform:rotate(-3deg)}}
@keyframes cast-check{0%,45%,100%{opacity:0;transform:translateY(3px)}55%,80%{opacity:1;transform:translateY(-3px)}}
@keyframes cast-scan{0%,60%,100%{transform:rotate(0)}20%,40%{transform:translateY(3px) rotate(9deg)}}
@keyframes cast-coffee{0%,65%,100%{transform:rotate(0)}25%,45%{transform:rotate(-24deg) translate(-2px,-2px)}}
@keyframes cast-side-eye{0%,55%,100%{transform:rotate(0)}20%,40%{transform:rotate(-7deg) translateX(-1px)}}
@keyframes cast-steam{0%{opacity:0;transform:translateY(2px)}40%{opacity:.7}100%{opacity:0;transform:translateY(-9px)}}
@keyframes cast-present{0%,65%,100%{transform:rotate(0)}20%,45%{transform:rotate(-22deg)}}
@keyframes cast-tip{0%,65%,100%{transform:translateY(0)}25%,40%{transform:translateY(-4px) rotate(-2deg)}}
@keyframes cast-idea{0%,40%,95%,100%{opacity:0;transform:scale(.7)}50%,80%{opacity:1;transform:scale(1)}}
@keyframes cast-tinker{0%,65%,100%{transform:rotate(0)}25%{transform:rotate(-14deg)}35%{transform:rotate(5deg)}50%{transform:rotate(-14deg)}}
@keyframes cast-shrug{0%,60%,100%{transform:translateY(0)}20%,40%{transform:translateY(-5px)}}
@keyframes cast-listen{0%,65%,100%{transform:rotate(0)}20%,45%{transform:rotate(8deg) translate(2px,1px)}}
@keyframes cast-stretch{0%,60%,100%{transform:translateY(0)}25%,40%{transform:translateY(-4px) scaleX(1.07)}}
html.reduced-motion .toon-story *,html.reduced-motion .team-card *{animation:none!important;transition:none!important}
@media(prefers-reduced-motion:reduce){.toon-story *,.team-card *{animation:none!important;transition:none!important}}
@media(max-width:560px){.team-lock-stamp{right:5px;bottom:27px;padding:3px 5px;font-size:10px}.team-portrait:before{left:calc(50% - 35px);width:70px}}
