/* testbesplatno.ru — знаки отдельных тестов и их анимации.
   Подключать после icons.css. Знак теста = предмет из его содержания;
   тон и категорийный знак остаются от раздела, знак теста работает поверх.
   Все анимации — только от :hover/:focus-visible ближайшей карточки, и все
   выключаются в prefers-reduced-motion (WCAG 2.3.3: анимацию, запускаемую
   взаимодействием, пользователь должен уметь отключить). */
.tb-ti{display:block;width:26px;height:26px;color:currentColor;overflow:hidden}
.tb-ti path{transform-box:fill-box;transform-origin:center}
.tb-ti--sm{width:18px;height:18px;stroke-width:2.1}
.tb-ti--lg{position:absolute;right:5%;bottom:8%;height:74%;width:auto;aspect-ratio:1;stroke-width:1.15;opacity:.24;color:#fff}

/* ei */
:is(a,.tb-cat,.tb-hub,.tb-card,.tb-tcard,.tb-cover,.tb-hero,.tb-preview):is(:hover,:focus-visible,:active,.is-live) .tb-ti[data-test="ei"] path:first-child{animation:tb-bub 1.1s var(--tb-ease) infinite}
:is(a,.tb-cat,.tb-hub,.tb-card,.tb-tcard,.tb-cover,.tb-hero,.tb-preview):is(:hover,:focus-visible,:active,.is-live) .tb-ti[data-test="ei"] path[data-p="h"]{animation:tb-beat .9s cubic-bezier(.3,0,.3,1) infinite}
@keyframes tb-bub{0%,100%{transform:scale(1)}45%{transform:scale(1.06)}}

/* feeling */
:is(a,.tb-cat,.tb-hub,.tb-card,.tb-tcard,.tb-cover,.tb-hero,.tb-preview):is(:hover,:focus-visible,:active,.is-live) .tb-ti[data-test="feeling"] path[data-p="drop"]{animation:tb-fall 1.3s var(--tb-ease) infinite}
:is(a,.tb-cat,.tb-hub,.tb-card,.tb-tcard,.tb-cover,.tb-hero,.tb-preview):is(:hover,:focus-visible,:active,.is-live) .tb-ti[data-test="feeling"] path[data-p="ring"]{animation:tb-ripple 1.3s var(--tb-ease) infinite}
@keyframes tb-fall{0%{transform:translateY(-3px) scaleY(1.1)}45%{transform:translateY(1px) scaleY(.94)}70%,100%{transform:none}}
@keyframes tb-ripple{0%,40%{transform:scaleX(.6);opacity:.3}60%{transform:scaleX(1.1);opacity:1}100%{transform:scaleX(1.3);opacity:0}}

/* risk */
:is(a,.tb-cat,.tb-hub,.tb-card,.tb-tcard,.tb-cover,.tb-hero,.tb-preview):is(:hover,:focus-visible,:active,.is-live) .tb-ti[data-test="risk"]{animation:tb-dice 1.1s var(--tb-ease) infinite}
:is(a,.tb-cat,.tb-hub,.tb-card,.tb-tcard,.tb-cover,.tb-hero,.tb-preview):is(:hover,:focus-visible,:active,.is-live) .tb-ti[data-test="risk"] path[data-p="d3"]{animation:tb-fade-in .55s var(--tb-ease) infinite alternate}
@keyframes tb-dice{0%,100%{transform:translateY(0) rotate(0)}30%{transform:translateY(-3px) rotate(-14deg)}60%{transform:translateY(0) rotate(10deg)}}

/* humor */
:is(a,.tb-cat,.tb-hub,.tb-card,.tb-tcard,.tb-cover,.tb-hero,.tb-preview):is(:hover,:focus-visible,:active,.is-live) .tb-ti[data-test="humor"] path[data-p="sm"]{animation:tb-laugh .8s var(--tb-ease) infinite}
:is(a,.tb-cat,.tb-hub,.tb-card,.tb-tcard,.tb-cover,.tb-hero,.tb-preview):is(:hover,:focus-visible,:active,.is-live) .tb-ti[data-test="humor"] path[data-p^="r"]{animation:tb-fly .8s var(--tb-ease) infinite}
:is(a,.tb-cat,.tb-hub,.tb-card,.tb-tcard,.tb-cover,.tb-hero,.tb-preview):is(:hover,:focus-visible,:active,.is-live) .tb-ti[data-test="humor"] path[data-p="r2"]{animation-delay:.1s}
:is(a,.tb-cat,.tb-hub,.tb-card,.tb-tcard,.tb-cover,.tb-hero,.tb-preview):is(:hover,:focus-visible,:active,.is-live) .tb-ti[data-test="humor"] path[data-p="r3"]{animation-delay:.2s}
@keyframes tb-laugh{0%,100%{transform:scaleY(1)}45%{transform:scaleY(1.5)}}

/* temperament */
:is(a,.tb-cat,.tb-hub,.tb-card,.tb-tcard,.tb-cover,.tb-hero,.tb-preview):is(:hover,:focus-visible,:active,.is-live) .tb-ti[data-test="temperament"] path[data-p^="t"]{animation:tb-quad 1.6s var(--tb-ease) infinite}
:is(a,.tb-cat,.tb-hub,.tb-card,.tb-tcard,.tb-cover,.tb-hero,.tb-preview):is(:hover,:focus-visible,:active,.is-live) .tb-ti[data-test="temperament"] path[data-p="t2"]{animation-delay:.2s}
:is(a,.tb-cat,.tb-hub,.tb-card,.tb-tcard,.tb-cover,.tb-hero,.tb-preview):is(:hover,:focus-visible,:active,.is-live) .tb-ti[data-test="temperament"] path[data-p="t4"]{animation-delay:.4s}
:is(a,.tb-cat,.tb-hub,.tb-card,.tb-tcard,.tb-cover,.tb-hero,.tb-preview):is(:hover,:focus-visible,:active,.is-live) .tb-ti[data-test="temperament"] path[data-p="t3"]{animation-delay:.6s}
@keyframes tb-quad{0%,60%,100%{opacity:.4}20%{opacity:1;filter:drop-shadow(0 0 4px currentColor)}}

/* socionics */
:is(a,.tb-cat,.tb-hub,.tb-card,.tb-tcard,.tb-cover,.tb-hero,.tb-preview):is(:hover,:focus-visible,:active,.is-live) .tb-ti[data-test="socionics"] path[data-p="cell"]{animation:tb-cell 1.8s steps(1,end) infinite}
@keyframes tb-cell{0%{transform:translate(0,0)}25%{transform:translate(5.4px,0)}50%{transform:translate(5.4px,5.4px)}75%{transform:translate(0,5.4px)}100%{transform:translate(0,0)}}

/* archetypes */
:is(a,.tb-cat,.tb-hub,.tb-card,.tb-tcard,.tb-cover,.tb-hero,.tb-preview):is(:hover,:focus-visible,:active,.is-live) .tb-ti[data-test="archetypes"] path[data-p="spokes"]{animation:tb-step 1.6s cubic-bezier(.3,1.5,.4,1) infinite}
@keyframes tb-step{0%,20%{transform:rotate(0)}45%,100%{transform:rotate(45deg)}}

/* larkowl */
:is(a,.tb-cat,.tb-hub,.tb-card,.tb-tcard,.tb-cover,.tb-hero,.tb-preview):is(:hover,:focus-visible,:active,.is-live) .tb-ti[data-test="larkowl"] path[data-p="sun"]{animation:tb-day 2.4s var(--tb-ease) infinite}
:is(a,.tb-cat,.tb-hub,.tb-card,.tb-tcard,.tb-cover,.tb-hero,.tb-preview):is(:hover,:focus-visible,:active,.is-live) .tb-ti[data-test="larkowl"] path[data-p="moon"]{animation:tb-night 2.4s var(--tb-ease) infinite}
@keyframes tb-day{0%,40%{opacity:1;transform:translateY(0)}60%,100%{opacity:.2;transform:translateY(3px)}}
@keyframes tb-night{0%,40%{opacity:.25;transform:translateY(3px)}60%,100%{opacity:1;transform:translateY(0)}}

/* imposter */
:is(a,.tb-cat,.tb-hub,.tb-card,.tb-tcard,.tb-cover,.tb-hero,.tb-preview):is(:hover,:focus-visible,:active,.is-live) .tb-ti[data-test="imposter"] path[data-p="ribbon"]{animation:tb-pole 1.2s var(--tb-ease) infinite}
:is(a,.tb-cat,.tb-hub,.tb-card,.tb-tcard,.tb-cover,.tb-hero,.tb-preview):is(:hover,:focus-visible,:active,.is-live) .tb-ti[data-test="imposter"] path[data-p="q"],:is(a,.tb-cat,.tb-hub,.tb-card,.tb-tcard,.tb-cover,.tb-hero,.tb-preview):is(:hover,:focus-visible,:active,.is-live) .tb-ti[data-test="imposter"] path[data-p="dot"]{animation:tb-blinky 1.2s steps(1,end) infinite}
@keyframes tb-blinky{0%,49%{opacity:1}50%,100%{opacity:.25}}

/* complexes */
:is(a,.tb-cat,.tb-hub,.tb-card,.tb-tcard,.tb-cover,.tb-hero,.tb-preview):is(:hover,:focus-visible,:active,.is-live) .tb-ti[data-test="complexes"] path[data-p^="knot"]{animation:tb-tighten 1.4s var(--tb-ease) infinite}
@keyframes tb-tighten{0%,100%{transform:scaleX(1)}45%{transform:scaleX(.72)}}

/* selflove */
:is(a,.tb-cat,.tb-hub,.tb-card,.tb-tcard,.tb-cover,.tb-hero,.tb-preview):is(:hover,:focus-visible,:active,.is-live) .tb-ti[data-test="selflove"] path[data-p="heart"]{animation:tb-rise-h 1.4s var(--tb-ease) infinite}
:is(a,.tb-cat,.tb-hub,.tb-card,.tb-tcard,.tb-cover,.tb-hero,.tb-preview):is(:hover,:focus-visible,:active,.is-live) .tb-ti[data-test="selflove"] path[data-p="palm"]{animation:tb-breathe-s 1.9s ease-in-out infinite}
@keyframes tb-rise-h{0%{transform:translateY(3px) scale(.85);opacity:.5}50%{transform:translateY(-1px) scale(1.1);opacity:1}100%{transform:none;opacity:1}}

/* optimist */
:is(a,.tb-cat,.tb-hub,.tb-card,.tb-tcard,.tb-cover,.tb-hero,.tb-preview):is(:hover,:focus-visible,:active,.is-live) .tb-ti[data-test="optimist"] path[data-p="level"]{animation:tb-level 2s var(--tb-ease) infinite}
@keyframes tb-level{0%,100%{transform:translateY(0)}50%{transform:translateY(-3.5px)}}

/* aggression */
:is(a,.tb-cat,.tb-hub,.tb-card,.tb-tcard,.tb-cover,.tb-hero,.tb-preview):is(:hover,:focus-visible,:active,.is-live) .tb-ti[data-test="aggression"] path[data-p="bolt"]{animation:tb-zap .7s steps(1,end) infinite}
@keyframes tb-zap{0%,60%{opacity:1;filter:drop-shadow(0 0 6px currentColor)}65%{opacity:.25;filter:none}75%{opacity:1}85%{opacity:.4}100%{opacity:1}}

/* procrastination */
:is(a,.tb-cat,.tb-hub,.tb-card,.tb-tcard,.tb-cover,.tb-hero,.tb-preview):is(:hover,:focus-visible,:active,.is-live) .tb-ti[data-test="procrastination"]{animation:tb-turn180 2.6s steps(1,end) infinite}
:is(a,.tb-cat,.tb-hub,.tb-card,.tb-tcard,.tb-cover,.tb-hero,.tb-preview):is(:hover,:focus-visible,:active,.is-live) .tb-ti[data-test="procrastination"] path[data-p="sand"]{animation:tb-sand 2.6s linear infinite}
@keyframes tb-turn180{0%,49%{transform:rotate(0)}50%,100%{transform:rotate(180deg)}}
@keyframes tb-sand{0%{transform:scaleX(.2);opacity:.3}45%{transform:scaleX(1);opacity:1}50%,100%{transform:scaleX(.2);opacity:.3}}

/* capacity */
:is(a,.tb-cat,.tb-hub,.tb-card,.tb-tcard,.tb-cover,.tb-hero,.tb-preview):is(:hover,:focus-visible,:active,.is-live) .tb-ti[data-test="capacity"] path[data-p="ch"]{animation:tb-charge 1.8s var(--tb-ease) infinite}
@keyframes tb-charge{0%{transform:scaleX(.35);opacity:.5}100%{transform:scaleX(3.1);opacity:1}}
.tb-ti[data-test="capacity"] path[data-p="ch"]{transform-origin:left center}

/* satisfaction */
:is(a,.tb-cat,.tb-hub,.tb-card,.tb-tcard,.tb-cover,.tb-hero,.tb-preview):is(:hover,:focus-visible,:active,.is-live) .tb-ti[data-test="satisfaction"] path[data-p="knob"]{animation:tb-slide 1.8s var(--tb-ease) infinite}
:is(a,.tb-cat,.tb-hub,.tb-card,.tb-tcard,.tb-cover,.tb-hero,.tb-preview):is(:hover,:focus-visible,:active,.is-live) .tb-ti[data-test="satisfaction"] path[data-p="sm"]{animation:tb-laugh 1.8s var(--tb-ease) infinite}
@keyframes tb-slide{0%,100%{transform:translateX(-8px)}50%{transform:translateX(0)}}

/* method-card */
:is(a,.tb-cat,.tb-hub,.tb-card,.tb-tcard,.tb-cover,.tb-hero,.tb-preview):is(:hover,:focus-visible,:active,.is-live) .tb-ti[data-test="method-card"] path[data-p^="l"]{animation:tb-line 1.4s var(--tb-ease) infinite}
:is(a,.tb-cat,.tb-hub,.tb-card,.tb-tcard,.tb-cover,.tb-hero,.tb-preview):is(:hover,:focus-visible,:active,.is-live) .tb-ti[data-test="method-card"] path[data-p="l2"]{animation-delay:.16s}
:is(a,.tb-cat,.tb-hub,.tb-card,.tb-tcard,.tb-cover,.tb-hero,.tb-preview):is(:hover,:focus-visible,:active,.is-live) .tb-ti[data-test="method-card"] path[data-p="l3"]{animation-delay:.32s}
.tb-ti[data-test="method-card"] path[data-p^="l"]{transform-origin:left center}
@keyframes tb-line{0%{transform:scaleX(.1);opacity:.3}40%,100%{transform:scaleX(1);opacity:1}}

/* drawing */
:is(a,.tb-cat,.tb-hub,.tb-card,.tb-tcard,.tb-cover,.tb-hero,.tb-preview):is(:hover,:focus-visible,:active,.is-live) .tb-ti[data-test="drawing"] path[data-p="house"]{animation:tb-pop-in 1.5s var(--tb-ease) infinite}
:is(a,.tb-cat,.tb-hub,.tb-card,.tb-tcard,.tb-cover,.tb-hero,.tb-preview):is(:hover,:focus-visible,:active,.is-live) .tb-ti[data-test="drawing"] path[data-p="tree"]{animation:tb-pop-in 1.5s var(--tb-ease) .25s infinite}
@keyframes tb-pop-in{0%{transform:scaleY(.2);opacity:.2}45%,100%{transform:scaleY(1);opacity:1}}
.tb-ti[data-test="drawing"] path[data-p="house"],.tb-ti[data-test="drawing"] path[data-p="tree"]{transform-origin:bottom center}

/* fatigue */
:is(a,.tb-cat,.tb-hub,.tb-card,.tb-tcard,.tb-cover,.tb-hero,.tb-preview):is(:hover,:focus-visible,:active,.is-live) .tb-ti[data-test="fatigue"] path[data-p="low"]{animation:tb-drain 2s var(--tb-ease) infinite}
:is(a,.tb-cat,.tb-hub,.tb-card,.tb-tcard,.tb-cover,.tb-hero,.tb-preview):is(:hover,:focus-visible,:active,.is-live) .tb-ti[data-test="fatigue"] path[data-p="z"]{animation:tb-float 2s var(--tb-ease) infinite}
@keyframes tb-drain{0%{transform:scaleX(2.6);opacity:1}100%{transform:scaleX(.6);opacity:.45}}
.tb-ti[data-test="fatigue"] path[data-p="low"]{transform-origin:left center}
@keyframes tb-float{0%{transform:translateY(3px);opacity:0}40%{opacity:1}100%{transform:translateY(-3px);opacity:0}}

/* jealousy */
:is(a,.tb-cat,.tb-hub,.tb-card,.tb-tcard,.tb-cover,.tb-hero,.tb-preview):is(:hover,:focus-visible,:active,.is-live) .tb-ti[data-test="jealousy"] path:first-child{animation:tb-beat 1.1s cubic-bezier(.3,0,.3,1) infinite}
:is(a,.tb-cat,.tb-hub,.tb-card,.tb-tcard,.tb-cover,.tb-hero,.tb-preview):is(:hover,:focus-visible,:active,.is-live) .tb-ti[data-test="jealousy"] path[data-p="crack"]{animation:tb-crack 1.1s steps(1,end) infinite}
@keyframes tb-crack{0%,45%{opacity:.2}55%,100%{opacity:1}}

/* pair */
:is(a,.tb-cat,.tb-hub,.tb-card,.tb-tcard,.tb-cover,.tb-hero,.tb-preview):is(:hover,:focus-visible,:active,.is-live) .tb-ti[data-test="pair"] path[data-p="p1"],:is(a,.tb-cat,.tb-hub,.tb-card,.tb-tcard,.tb-cover,.tb-hero,.tb-preview):is(:hover,:focus-visible,:active,.is-live) .tb-ti[data-test="pair"] path[data-p="b1"]{animation:tb-join .9s var(--tb-ease) infinite}
:is(a,.tb-cat,.tb-hub,.tb-card,.tb-tcard,.tb-cover,.tb-hero,.tb-preview):is(:hover,:focus-visible,:active,.is-live) .tb-ti[data-test="pair"] path[data-p="p2"],:is(a,.tb-cat,.tb-hub,.tb-card,.tb-tcard,.tb-cover,.tb-hero,.tb-preview):is(:hover,:focus-visible,:active,.is-live) .tb-ti[data-test="pair"] path[data-p="b2"]{animation:tb-join-r .9s var(--tb-ease) infinite}

/* loneliness */
:is(a,.tb-cat,.tb-hub,.tb-card,.tb-tcard,.tb-cover,.tb-hero,.tb-preview):is(:hover,:focus-visible,:active,.is-live) .tb-ti[data-test="loneliness"] path[data-p="ring"]{animation:tb-spin 6s linear infinite}
:is(a,.tb-cat,.tb-hub,.tb-card,.tb-tcard,.tb-cover,.tb-hero,.tb-preview):is(:hover,:focus-visible,:active,.is-live) .tb-ti[data-test="loneliness"] path[data-p="one"]{animation:tb-breathe-s 2s ease-in-out infinite}

/* hairstyle */
:is(a,.tb-cat,.tb-hub,.tb-card,.tb-tcard,.tb-cover,.tb-hero,.tb-preview):is(:hover,:focus-visible,:active,.is-live) .tb-ti[data-test="hairstyle"] path[data-p="hair"]{animation:tb-wave 1.4s ease-in-out infinite}
.tb-ti[data-test="hairstyle"] path[data-p="hair"]{transform-origin:center top}

/* style */
:is(a,.tb-cat,.tb-hub,.tb-card,.tb-tcard,.tb-cover,.tb-hero,.tb-preview):is(:hover,:focus-visible,:active,.is-live) .tb-ti[data-test="style"] path[data-p="body"]{animation:tb-wobble 1.2s var(--tb-ease) infinite}
.tb-ti[data-test="style"] path[data-p="body"]{transform-origin:center top}

/* alcohol */
:is(a,.tb-cat,.tb-hub,.tb-card,.tb-tcard,.tb-cover,.tb-hero,.tb-preview):is(:hover,:focus-visible,:active,.is-live) .tb-ti[data-test="alcohol"] path[data-p="glass"]{animation:tb-tip 1.4s var(--tb-ease) infinite}
@keyframes tb-tip{0%,100%{transform:rotate(0)}40%{transform:rotate(-13deg)}70%{transform:rotate(7deg)}}

/* nutrition */
:is(a,.tb-cat,.tb-hub,.tb-card,.tb-tcard,.tb-cover,.tb-hero,.tb-preview):is(:hover,:focus-visible,:active,.is-live) .tb-ti[data-test="nutrition"] path[data-p="seg"]{animation:tb-slice 1.8s var(--tb-ease) infinite}
.tb-ti[data-test="nutrition"] path[data-p="seg"]{transform-origin:left bottom}
@keyframes tb-slice{0%,100%{transform:translate(0,0)}50%{transform:translate(2px,-2px)}}

/* numeric */
:is(a,.tb-cat,.tb-hub,.tb-card,.tb-tcard,.tb-cover,.tb-hero,.tb-preview):is(:hover,:focus-visible,:active,.is-live) .tb-ti[data-test="numeric"] path[data-p="n1"]{animation:tb-count 1.2s steps(1,end) infinite}
@keyframes tb-count{0%{opacity:.35}30%{opacity:1}60%{opacity:.6}100%{opacity:1}}

/* verbal */
:is(a,.tb-cat,.tb-hub,.tb-card,.tb-tcard,.tb-cover,.tb-hero,.tb-preview):is(:hover,:focus-visible,:active,.is-live) .tb-ti[data-test="verbal"] path[data-p="ab"]{animation:tb-type 1.4s steps(1,end) infinite}
@keyframes tb-type{0%{opacity:.2}35%{opacity:.7}70%,100%{opacity:1}}

/* memory */
:is(a,.tb-cat,.tb-hub,.tb-card,.tb-tcard,.tb-cover,.tb-hero,.tb-preview):is(:hover,:focus-visible,:active,.is-live) .tb-ti[data-test="memory"] path[data-p^="c"]{animation:tb-flip-card 2s var(--tb-ease) infinite}
:is(a,.tb-cat,.tb-hub,.tb-card,.tb-tcard,.tb-cover,.tb-hero,.tb-preview):is(:hover,:focus-visible,:active,.is-live) .tb-ti[data-test="memory"] path[data-p="c2"]{animation-delay:.18s}
:is(a,.tb-cat,.tb-hub,.tb-card,.tb-tcard,.tb-cover,.tb-hero,.tb-preview):is(:hover,:focus-visible,:active,.is-live) .tb-ti[data-test="memory"] path[data-p="c3"]{animation-delay:.36s}
:is(a,.tb-cat,.tb-hub,.tb-card,.tb-tcard,.tb-cover,.tb-hero,.tb-preview):is(:hover,:focus-visible,:active,.is-live) .tb-ti[data-test="memory"] path[data-p="c4"]{animation-delay:.54s}
@keyframes tb-flip-card{0%,70%,100%{transform:rotateY(0);opacity:1}35%{transform:rotateY(72deg);opacity:.5}}

/* film */
:is(a,.tb-cat,.tb-hub,.tb-card,.tb-tcard,.tb-cover,.tb-hero,.tb-preview):is(:hover,:focus-visible,:active,.is-live) .tb-ti[data-test="film"] path[data-p="p1"],:is(a,.tb-cat,.tb-hub,.tb-card,.tb-tcard,.tb-cover,.tb-hero,.tb-preview):is(:hover,:focus-visible,:active,.is-live) .tb-ti[data-test="film"] path[data-p="p2"]{animation:tb-reel 1.1s linear infinite}
@keyframes tb-reel{0%{transform:translateY(0)}100%{transform:translateY(-4.5px)}}

/* creature */
:is(a,.tb-cat,.tb-hub,.tb-card,.tb-tcard,.tb-cover,.tb-hero,.tb-preview):is(:hover,:focus-visible,:active,.is-live) .tb-ti[data-test="creature"] path[data-p="wing"]{animation:tb-flap .8s var(--tb-ease) infinite}
@keyframes tb-flap{0%,100%{transform:scaleY(1)}45%{transform:scaleY(.55) translateY(-1.5px)}}

/* scent */
:is(a,.tb-cat,.tb-hub,.tb-card,.tb-tcard,.tb-cover,.tb-hero,.tb-preview):is(:hover,:focus-visible,:active,.is-live) .tb-ti[data-test="scent"] path[data-p="wave"]{animation:tb-diffuse 1.6s var(--tb-ease) infinite}
@keyframes tb-diffuse{0%{transform:scale(.6) translateX(-2px);opacity:.2}50%{opacity:1}100%{transform:scale(1.2) translateX(2px);opacity:0}}

/* angel */
:is(a,.tb-cat,.tb-hub,.tb-card,.tb-tcard,.tb-cover,.tb-hero,.tb-preview):is(:hover,:focus-visible,:active,.is-live) .tb-ti[data-test="angel"] path[data-p="halo"]{animation:tb-halo 1.8s var(--tb-ease) infinite}
:is(a,.tb-cat,.tb-hub,.tb-card,.tb-tcard,.tb-cover,.tb-hero,.tb-preview):is(:hover,:focus-visible,:active,.is-live) .tb-ti[data-test="angel"] path[data-p="wing1"],:is(a,.tb-cat,.tb-hub,.tb-card,.tb-tcard,.tb-cover,.tb-hero,.tb-preview):is(:hover,:focus-visible,:active,.is-live) .tb-ti[data-test="angel"] path[data-p="wing2"]{animation:tb-flap 1.1s var(--tb-ease) infinite}
@keyframes tb-halo{0%,100%{transform:translateY(0);opacity:1}50%{transform:translateY(-2px);opacity:.55}}

/* country */
:is(a,.tb-cat,.tb-hub,.tb-card,.tb-tcard,.tb-cover,.tb-hero,.tb-preview):is(:hover,:focus-visible,:active,.is-live) .tb-ti[data-test="country"] path[data-p="mer"],:is(a,.tb-cat,.tb-hub,.tb-card,.tb-tcard,.tb-cover,.tb-hero,.tb-preview):is(:hover,:focus-visible,:active,.is-live) .tb-ti[data-test="country"] path[data-p="par"]{animation:tb-globe 3s linear infinite}
@keyframes tb-globe{0%{transform:scaleX(1)}50%{transform:scaleX(.35)}100%{transform:scaleX(1)}}

/* profession */
:is(a,.tb-cat,.tb-hub,.tb-card,.tb-tcard,.tb-cover,.tb-hero,.tb-preview):is(:hover,:focus-visible,:active,.is-live) .tb-ti[data-test="profession"] path[data-p="handle"]{animation:tb-pole 1.3s var(--tb-ease) infinite}
:is(a,.tb-cat,.tb-hub,.tb-card,.tb-tcard,.tb-cover,.tb-hero,.tb-preview):is(:hover,:focus-visible,:active,.is-live) .tb-ti[data-test="profession"] path[data-p="lock"]{animation:tb-line 1.3s var(--tb-ease) infinite}

/* drawing-skill */
:is(a,.tb-cat,.tb-hub,.tb-card,.tb-tcard,.tb-cover,.tb-hero,.tb-preview):is(:hover,:focus-visible,:active,.is-live) .tb-ti[data-test="drawing-skill"] path[data-p="pen"]{animation:tb-stroke 1.3s var(--tb-ease) infinite}
@keyframes tb-stroke{0%,100%{transform:translate(0,0)}45%{transform:translate(2.5px,-2.5px)}}

/* law-book */
:is(a,.tb-cat,.tb-hub,.tb-card,.tb-tcard,.tb-cover,.tb-hero,.tb-preview):is(:hover,:focus-visible,:active,.is-live) .tb-ti[data-test="law-book"] path[data-p="spine"]{animation:tb-open 1.6s var(--tb-ease) infinite}
:is(a,.tb-cat,.tb-hub,.tb-card,.tb-tcard,.tb-cover,.tb-hero,.tb-preview):is(:hover,:focus-visible,:active,.is-live) .tb-ti[data-test="law-book"] path[data-p="st"]{animation:tb-line 1.6s var(--tb-ease) infinite}
@keyframes tb-open{0%,100%{transform:scaleX(1)}50%{transform:scaleX(.4)}}

/* safety */
:is(a,.tb-cat,.tb-hub,.tb-card,.tb-tcard,.tb-cover,.tb-hero,.tb-preview):is(:hover,:focus-visible,:active,.is-live) .tb-ti[data-test="safety"] path[data-p="helmet"]{animation:tb-vital 1.5s ease-in-out infinite}
:is(a,.tb-cat,.tb-hub,.tb-card,.tb-tcard,.tb-cover,.tb-hero,.tb-preview):is(:hover,:focus-visible,:active,.is-live) .tb-ti[data-test="safety"] path[data-p="rib"]{animation:tb-blinky 1.5s steps(1,end) infinite}

/* leadership-style */
:is(a,.tb-cat,.tb-hub,.tb-card,.tb-tcard,.tb-cover,.tb-hero,.tb-preview):is(:hover,:focus-visible,:active,.is-live) .tb-ti[data-test="leadership-style"] path[data-p="top"]{animation:tb-hop .9s var(--tb-ease) infinite}
:is(a,.tb-cat,.tb-hub,.tb-card,.tb-tcard,.tb-cover,.tb-hero,.tb-preview):is(:hover,:focus-visible,:active,.is-live) .tb-ti[data-test="leadership-style"] path[data-p="l"]{animation:tb-hop .9s var(--tb-ease) .14s infinite}
:is(a,.tb-cat,.tb-hub,.tb-card,.tb-tcard,.tb-cover,.tb-hero,.tb-preview):is(:hover,:focus-visible,:active,.is-live) .tb-ti[data-test="leadership-style"] path[data-p="r"]{animation:tb-hop .9s var(--tb-ease) .28s infinite}

/* money-skill */
:is(a,.tb-cat,.tb-hub,.tb-card,.tb-tcard,.tb-cover,.tb-hero,.tb-preview):is(:hover,:focus-visible,:active,.is-live) .tb-ti[data-test="money-skill"] path[data-p="coin"]{animation:tb-flip 1.6s var(--tb-ease) infinite}
:is(a,.tb-cat,.tb-hub,.tb-card,.tb-tcard,.tb-cover,.tb-hero,.tb-preview):is(:hover,:focus-visible,:active,.is-live) .tb-ti[data-test="money-skill"] path[data-p="up"]{animation:tb-float 1.6s var(--tb-ease) infinite}

/* owner */
:is(a,.tb-cat,.tb-hub,.tb-card,.tb-tcard,.tb-cover,.tb-hero,.tb-preview):is(:hover,:focus-visible,:active,.is-live) .tb-ti[data-test="owner"] path[data-p="shackle"]{animation:tb-lock 1.4s var(--tb-ease) infinite}
.tb-ti[data-test="owner"] path[data-p="shackle"]{transform-origin:center bottom}
@keyframes tb-lock{0%,100%{transform:translateY(0)}45%{transform:translateY(-3px) scaleY(1.15)}}

/* society */
:is(a,.tb-cat,.tb-hub,.tb-card,.tb-tcard,.tb-cover,.tb-hero,.tb-preview):is(:hover,:focus-visible,:active,.is-live) .tb-ti[data-test="society"] path[data-p="r1"]{animation:tb-spin 7s linear infinite}
:is(a,.tb-cat,.tb-hub,.tb-card,.tb-tcard,.tb-cover,.tb-hero,.tb-preview):is(:hover,:focus-visible,:active,.is-live) .tb-ti[data-test="society"] path[data-p="r2"]{animation:tb-spin-rev 10s linear infinite}
:is(a,.tb-cat,.tb-hub,.tb-card,.tb-tcard,.tb-cover,.tb-hero,.tb-preview):is(:hover,:focus-visible,:active,.is-live) .tb-ti[data-test="society"] path[data-p="me"]{animation:tb-breathe-s 2s ease-in-out infinite}

/* conscience */
:is(a,.tb-cat,.tb-hub,.tb-card,.tb-tcard,.tb-cover,.tb-hero,.tb-preview):is(:hover,:focus-visible,:active,.is-live) .tb-ti[data-test="conscience"]{animation:tb-tip 1.5s var(--tb-ease) infinite}

/* daydream */
:is(a,.tb-cat,.tb-hub,.tb-card,.tb-tcard,.tb-cover,.tb-hero,.tb-preview):is(:hover,:focus-visible,:active,.is-live) .tb-ti[data-test="daydream"] path[data-p="cloud"]{animation:tb-float-x 2.4s ease-in-out infinite}
:is(a,.tb-cat,.tb-hub,.tb-card,.tb-tcard,.tb-cover,.tb-hero,.tb-preview):is(:hover,:focus-visible,:active,.is-live) .tb-ti[data-test="daydream"] path[data-p^="d"]{animation:tb-fly 1.6s var(--tb-ease) infinite}
:is(a,.tb-cat,.tb-hub,.tb-card,.tb-tcard,.tb-cover,.tb-hero,.tb-preview):is(:hover,:focus-visible,:active,.is-live) .tb-ti[data-test="daydream"] path[data-p="d2"]{animation-delay:.2s}
@keyframes tb-float-x{0%,100%{transform:translateX(-2px)}50%{transform:translateX(2px)}}

/* locus */
:is(a,.tb-cat,.tb-hub,.tb-card,.tb-tcard,.tb-cover,.tb-hero,.tb-preview):is(:hover,:focus-visible,:active,.is-live) .tb-ti[data-test="locus"] path[data-p="spokes"]{animation:tb-wheel 1.8s cubic-bezier(.3,1.3,.4,1) infinite}
@keyframes tb-wheel{0%,15%{transform:rotate(0)}55%,100%{transform:rotate(38deg)}}

/* selfid */
:is(a,.tb-cat,.tb-hub,.tb-card,.tb-tcard,.tb-cover,.tb-hero,.tb-preview):is(:hover,:focus-visible,:active,.is-live) .tb-ti[data-test="selfid"] path[data-p="q"]{animation:tb-blinky 1.3s steps(1,end) infinite}
:is(a,.tb-cat,.tb-hub,.tb-card,.tb-tcard,.tb-cover,.tb-hero,.tb-preview):is(:hover,:focus-visible,:active,.is-live) .tb-ti[data-test="selfid"] path[data-p="sil"]{animation:tb-hop 1.3s var(--tb-ease) infinite}

/* loveability */
:is(a,.tb-cat,.tb-hub,.tb-card,.tb-tcard,.tb-cover,.tb-hero,.tb-preview):is(:hover,:focus-visible,:active,.is-live) .tb-ti[data-test="loveability"] path[data-p^="l"]{animation:tb-unfold 1.6s var(--tb-ease) infinite}
:is(a,.tb-cat,.tb-hub,.tb-card,.tb-tcard,.tb-cover,.tb-hero,.tb-preview):is(:hover,:focus-visible,:active,.is-live) .tb-ti[data-test="loveability"] path[data-p="l2"]{animation-delay:.16s}
:is(a,.tb-cat,.tb-hub,.tb-card,.tb-tcard,.tb-cover,.tb-hero,.tb-preview):is(:hover,:focus-visible,:active,.is-live) .tb-ti[data-test="loveability"] path[data-p="h"]{animation:tb-rise-h 1.6s var(--tb-ease) infinite}
@keyframes tb-unfold{0%{transform:scale(.4);opacity:.3}55%,100%{transform:none;opacity:1}}

/* lovelang */
:is(a,.tb-cat,.tb-hub,.tb-card,.tb-tcard,.tb-cover,.tb-hero,.tb-preview):is(:hover,:focus-visible,:active,.is-live) .tb-ti[data-test="lovelang"] path[data-p="flap"]{animation:tb-open 1.5s var(--tb-ease) infinite}
.tb-ti[data-test="lovelang"] path[data-p="flap"]{transform-origin:center top}

/* infatuation */
:is(a,.tb-cat,.tb-hub,.tb-card,.tb-tcard,.tb-cover,.tb-hero,.tb-preview):is(:hover,:focus-visible,:active,.is-live) .tb-ti[data-test="infatuation"] path[data-p="h"]{animation:tb-beat 1s cubic-bezier(.3,0,.3,1) infinite}
:is(a,.tb-cat,.tb-hub,.tb-card,.tb-tcard,.tb-cover,.tb-hero,.tb-preview):is(:hover,:focus-visible,:active,.is-live) .tb-ti[data-test="infatuation"] path[data-p^="sp"]{animation:tb-fly 1s var(--tb-ease) infinite}
:is(a,.tb-cat,.tb-hub,.tb-card,.tb-tcard,.tb-cover,.tb-hero,.tb-preview):is(:hover,:focus-visible,:active,.is-live) .tb-ti[data-test="infatuation"] path[data-p="sp2"]{animation-delay:.12s}
:is(a,.tb-cat,.tb-hub,.tb-card,.tb-tcard,.tb-cover,.tb-hero,.tb-preview):is(:hover,:focus-visible,:active,.is-live) .tb-ti[data-test="infatuation"] path[data-p="sp3"]{animation-delay:.24s}

/* kids */
:is(a,.tb-cat,.tb-hub,.tb-card,.tb-tcard,.tb-cover,.tb-hero,.tb-preview):is(:hover,:focus-visible,:active,.is-live) .tb-ti[data-test="kids"] path[data-p="balloon"]{animation:tb-float-y 2s ease-in-out infinite}
:is(a,.tb-cat,.tb-hub,.tb-card,.tb-tcard,.tb-cover,.tb-hero,.tb-preview):is(:hover,:focus-visible,:active,.is-live) .tb-ti[data-test="kids"] path[data-p="string"]{animation:tb-wave 2s ease-in-out infinite}
@keyframes tb-float-y{0%,100%{transform:translateY(1.5px)}50%{transform:translateY(-2.5px)}}

/* parents */
:is(a,.tb-cat,.tb-hub,.tb-card,.tb-tcard,.tb-cover,.tb-hero,.tb-preview):is(:hover,:focus-visible,:active,.is-live) .tb-ti[data-test="parents"] path[data-p="h"]{animation:tb-beat 1.1s cubic-bezier(.3,0,.3,1) infinite}
:is(a,.tb-cat,.tb-hub,.tb-card,.tb-tcard,.tb-cover,.tb-hero,.tb-preview):is(:hover,:focus-visible,:active,.is-live) .tb-ti[data-test="parents"] path[data-p="roof"]{animation:tb-hop 1.1s var(--tb-ease) infinite}

/* childhood */
:is(a,.tb-cat,.tb-hub,.tb-card,.tb-tcard,.tb-cover,.tb-hero,.tb-preview):is(:hover,:focus-visible,:active,.is-live) .tb-ti[data-test="childhood"] path[data-p="seat"],:is(a,.tb-cat,.tb-hub,.tb-card,.tb-tcard,.tb-cover,.tb-hero,.tb-preview):is(:hover,:focus-visible,:active,.is-live) .tb-ti[data-test="childhood"] path[data-p^="rope"]{animation:tb-swing 1.8s ease-in-out infinite}
.tb-ti[data-test="childhood"] path[data-p^="rope"],.tb-ti[data-test="childhood"] path[data-p="seat"]{transform-origin:center top}
@keyframes tb-swing{0%,100%{transform:rotate(-7deg)}50%{transform:rotate(7deg)}}

/* friendstyle */
:is(a,.tb-cat,.tb-hub,.tb-card,.tb-tcard,.tb-cover,.tb-hero,.tb-preview):is(:hover,:focus-visible,:active,.is-live) .tb-ti[data-test="friendstyle"] path[data-p="cup1"]{animation:tb-clink 1.2s var(--tb-ease) infinite}
:is(a,.tb-cat,.tb-hub,.tb-card,.tb-tcard,.tb-cover,.tb-hero,.tb-preview):is(:hover,:focus-visible,:active,.is-live) .tb-ti[data-test="friendstyle"] path[data-p="cup2"]{animation:tb-clink-r 1.2s var(--tb-ease) infinite}
@keyframes tb-clink{0%,100%{transform:rotate(0) translateX(0)}45%{transform:rotate(8deg) translateX(2px)}}
@keyframes tb-clink-r{0%,100%{transform:rotate(0) translateX(0)}45%{transform:rotate(-8deg) translateX(-2px)}}

/* leary */
:is(a,.tb-cat,.tb-hub,.tb-card,.tb-tcard,.tb-cover,.tb-hero,.tb-preview):is(:hover,:focus-visible,:active,.is-live) .tb-ti[data-test="leary"] path[data-p="sect"]{animation:tb-sector 2s steps(1,end) infinite}
@keyframes tb-sector{0%{transform:rotate(0)}25%{transform:rotate(90deg)}50%{transform:rotate(180deg)}75%{transform:rotate(270deg)}100%{transform:rotate(360deg)}}

/* colortype */
:is(a,.tb-cat,.tb-hub,.tb-card,.tb-tcard,.tb-cover,.tb-hero,.tb-preview):is(:hover,:focus-visible,:active,.is-live) .tb-ti[data-test="colortype"] path[data-p^="p"]:not([data-p="pal"]){animation:tb-blinky 1.5s steps(1,end) infinite}
:is(a,.tb-cat,.tb-hub,.tb-card,.tb-tcard,.tb-cover,.tb-hero,.tb-preview):is(:hover,:focus-visible,:active,.is-live) .tb-ti[data-test="colortype"] path[data-p="p2"]{animation-delay:.2s}
:is(a,.tb-cat,.tb-hub,.tb-card,.tb-tcard,.tb-cover,.tb-hero,.tb-preview):is(:hover,:focus-visible,:active,.is-live) .tb-ti[data-test="colortype"] path[data-p="p3"]{animation-delay:.4s}
:is(a,.tb-cat,.tb-hub,.tb-card,.tb-tcard,.tb-cover,.tb-hero,.tb-preview):is(:hover,:focus-visible,:active,.is-live) .tb-ti[data-test="colortype"] path[data-p="pal"]{animation:tb-tip 1.8s var(--tb-ease) infinite}

/* iqlevel */
:is(a,.tb-cat,.tb-hub,.tb-card,.tb-tcard,.tb-cover,.tb-hero,.tb-preview):is(:hover,:focus-visible,:active,.is-live) .tb-ti[data-test="iqlevel"] path[data-p="merc"]{animation:tb-mercury 1.8s var(--tb-ease) infinite}
.tb-ti[data-test="iqlevel"] path[data-p="merc"]{transform-origin:bottom center}
@keyframes tb-mercury{0%{transform:scaleY(.25)}60%,100%{transform:scaleY(1)}}

/* kidlogic */
:is(a,.tb-cat,.tb-hub,.tb-card,.tb-tcard,.tb-cover,.tb-hero,.tb-preview):is(:hover,:focus-visible,:active,.is-live) .tb-ti[data-test="kidlogic"] path[data-p^="l"]{animation:tb-stack 1.6s var(--tb-ease) infinite}
:is(a,.tb-cat,.tb-hub,.tb-card,.tb-tcard,.tb-cover,.tb-hero,.tb-preview):is(:hover,:focus-visible,:active,.is-live) .tb-ti[data-test="kidlogic"] path[data-p="l2"]{animation-delay:.14s}
:is(a,.tb-cat,.tb-hub,.tb-card,.tb-tcard,.tb-cover,.tb-hero,.tb-preview):is(:hover,:focus-visible,:active,.is-live) .tb-ti[data-test="kidlogic"] path[data-p="l3"]{animation-delay:.28s}
@keyframes tb-stack{0%{transform:translateY(-4px);opacity:.35}45%,100%{transform:none;opacity:1}}

/* cognitive */
:is(a,.tb-cat,.tb-hub,.tb-card,.tb-tcard,.tb-cover,.tb-hero,.tb-preview):is(:hover,:focus-visible,:active,.is-live) .tb-ti[data-test="cognitive"] path[data-p="links"]{animation:tb-blinky 1.2s steps(1,end) infinite}
:is(a,.tb-cat,.tb-hub,.tb-card,.tb-tcard,.tb-cover,.tb-hero,.tb-preview):is(:hover,:focus-visible,:active,.is-live) .tb-ti[data-test="cognitive"] path[data-p^="n"]{animation:tb-node 1.8s ease-in-out infinite}
:is(a,.tb-cat,.tb-hub,.tb-card,.tb-tcard,.tb-cover,.tb-hero,.tb-preview):is(:hover,:focus-visible,:active,.is-live) .tb-ti[data-test="cognitive"] path[data-p="n2"]{animation-delay:.2s}
:is(a,.tb-cat,.tb-hub,.tb-card,.tb-tcard,.tb-cover,.tb-hero,.tb-preview):is(:hover,:focus-visible,:active,.is-live) .tb-ti[data-test="cognitive"] path[data-p="n3"]{animation-delay:.4s}
@keyframes tb-node{0%,100%{transform:scale(1)}50%{transform:scale(1.25);filter:drop-shadow(0 0 4px currentColor)}}

/* attention-switch */
:is(a,.tb-cat,.tb-hub,.tb-card,.tb-tcard,.tb-cover,.tb-hero,.tb-preview):is(:hover,:focus-visible,:active,.is-live) .tb-ti[data-test="attention-switch"] path[data-p="a1"],:is(a,.tb-cat,.tb-hub,.tb-card,.tb-tcard,.tb-cover,.tb-hero,.tb-preview):is(:hover,:focus-visible,:active,.is-live) .tb-ti[data-test="attention-switch"] path[data-p="t1"]{animation:tb-shift 1.4s var(--tb-ease) infinite}
:is(a,.tb-cat,.tb-hub,.tb-card,.tb-tcard,.tb-cover,.tb-hero,.tb-preview):is(:hover,:focus-visible,:active,.is-live) .tb-ti[data-test="attention-switch"] path[data-p="a2"],:is(a,.tb-cat,.tb-hub,.tb-card,.tb-tcard,.tb-cover,.tb-hero,.tb-preview):is(:hover,:focus-visible,:active,.is-live) .tb-ti[data-test="attention-switch"] path[data-p="t2"]{animation:tb-shift-r 1.4s var(--tb-ease) infinite}
@keyframes tb-shift{0%,100%{transform:translateX(-2px);opacity:.55}50%{transform:translateX(2px);opacity:1}}
@keyframes tb-shift-r{0%,100%{transform:translateX(2px);opacity:1}50%{transform:translateX(-2px);opacity:.55}}

/* thinking */
:is(a,.tb-cat,.tb-hub,.tb-card,.tb-tcard,.tb-cover,.tb-hero,.tb-preview):is(:hover,:focus-visible,:active,.is-live) .tb-ti[data-test="thinking"] path[data-p="fork"]{animation:tb-branch 1.6s var(--tb-ease) infinite}
.tb-ti[data-test="thinking"] path[data-p="fork"]{transform-origin:center bottom}
@keyframes tb-branch{0%,100%{transform:scaleX(1)}50%{transform:scaleX(1.18)}}

/* proverbs */
:is(a,.tb-cat,.tb-hub,.tb-card,.tb-tcard,.tb-cover,.tb-hero,.tb-preview):is(:hover,:focus-visible,:active,.is-live) .tb-ti[data-test="proverbs"] path[data-p="ln"]{animation:tb-line 1.5s var(--tb-ease) infinite}
:is(a,.tb-cat,.tb-hub,.tb-card,.tb-tcard,.tb-cover,.tb-hero,.tb-preview):is(:hover,:focus-visible,:active,.is-live) .tb-ti[data-test="proverbs"] path[data-p="roll"]{animation:tb-open 1.5s var(--tb-ease) infinite}

/* cinema */
:is(a,.tb-cat,.tb-hub,.tb-card,.tb-tcard,.tb-cover,.tb-hero,.tb-preview):is(:hover,:focus-visible,:active,.is-live) .tb-ti[data-test="cinema"] path[data-p="star"]{animation:tb-pop 1.2s var(--tb-ease) infinite}
:is(a,.tb-cat,.tb-hub,.tb-card,.tb-tcard,.tb-cover,.tb-hero,.tb-preview):is(:hover,:focus-visible,:active,.is-live) .tb-ti[data-test="cinema"] path[data-p="perf"]{animation:tb-blinky 1.2s steps(1,end) infinite}

/* whois */
:is(a,.tb-cat,.tb-hub,.tb-card,.tb-tcard,.tb-cover,.tb-hero,.tb-preview):is(:hover,:focus-visible,:active,.is-live) .tb-ti[data-test="whois"] path[data-p="sil"],:is(a,.tb-cat,.tb-hub,.tb-card,.tb-tcard,.tb-cover,.tb-hero,.tb-preview):is(:hover,:focus-visible,:active,.is-live) .tb-ti[data-test="whois"] path[data-p="sh"]{animation:tb-reveal 1.8s steps(1,end) infinite}
:is(a,.tb-cat,.tb-hub,.tb-card,.tb-tcard,.tb-cover,.tb-hero,.tb-preview):is(:hover,:focus-visible,:active,.is-live) .tb-ti[data-test="whois"] path[data-p="frame"]{animation:tb-vital 1.8s ease-in-out infinite}
@keyframes tb-reveal{0%,45%{opacity:.25}55%,100%{opacity:1}}

/* patronus */
:is(a,.tb-cat,.tb-hub,.tb-card,.tb-tcard,.tb-cover,.tb-hero,.tb-preview):is(:hover,:focus-visible,:active,.is-live) .tb-ti[data-test="patronus"] path[data-p="glow"]{animation:tb-blinky 1.4s steps(1,end) infinite}
:is(a,.tb-cat,.tb-hub,.tb-card,.tb-tcard,.tb-cover,.tb-hero,.tb-preview):is(:hover,:focus-visible,:active,.is-live) .tb-ti[data-test="patronus"] path[data-p^="ant"]{animation:tb-fly 1.4s var(--tb-ease) infinite}
:is(a,.tb-cat,.tb-hub,.tb-card,.tb-tcard,.tb-cover,.tb-hero,.tb-preview):is(:hover,:focus-visible,:active,.is-live) .tb-ti[data-test="patronus"] path[data-p="head"]{animation:tb-breathe-s 1.4s ease-in-out infinite}

/* pastlife */
:is(a,.tb-cat,.tb-hub,.tb-card,.tb-tcard,.tb-cover,.tb-hero,.tb-preview):is(:hover,:focus-visible,:active,.is-live) .tb-ti[data-test="pastlife"] path[data-p="ring"]{animation:tb-spin 4s linear infinite}
:is(a,.tb-cat,.tb-hub,.tb-card,.tb-tcard,.tb-cover,.tb-hero,.tb-preview):is(:hover,:focus-visible,:active,.is-live) .tb-ti[data-test="pastlife"] path[data-p="inner"]{animation:tb-spin-rev 3s linear infinite}
:is(a,.tb-cat,.tb-hub,.tb-card,.tb-tcard,.tb-cover,.tb-hero,.tb-preview):is(:hover,:focus-visible,:active,.is-live) .tb-ti[data-test="pastlife"] path[data-p="arrow"]{animation:tb-spin 4s linear infinite}

/* whoareyou */
:is(a,.tb-cat,.tb-hub,.tb-card,.tb-tcard,.tb-cover,.tb-hero,.tb-preview):is(:hover,:focus-visible,:active,.is-live) .tb-ti[data-test="whoareyou"] path[data-p="gl"]{animation:tb-sweep-o 1.6s var(--tb-ease) infinite}
:is(a,.tb-cat,.tb-hub,.tb-card,.tb-tcard,.tb-cover,.tb-hero,.tb-preview):is(:hover,:focus-visible,:active,.is-live) .tb-ti[data-test="whoareyou"] path[data-p="mir"]{animation:tb-breathe-s 1.9s ease-in-out infinite}
@keyframes tb-sweep-o{0%{opacity:0;transform:translate(-2px,2px)}45%{opacity:1}100%{opacity:0;transform:translate(2px,-2px)}}

/* game */
:is(a,.tb-cat,.tb-hub,.tb-card,.tb-tcard,.tb-cover,.tb-hero,.tb-preview):is(:hover,:focus-visible,:active,.is-live) .tb-ti[data-test="game"] path[data-p="dpad"]{animation:tb-press 1s steps(1,end) infinite}
:is(a,.tb-cat,.tb-hub,.tb-card,.tb-tcard,.tb-cover,.tb-hero,.tb-preview):is(:hover,:focus-visible,:active,.is-live) .tb-ti[data-test="game"] path[data-p="btn"]{animation:tb-press 1s steps(1,end) .2s infinite}
@keyframes tb-press{0%,60%{opacity:1;transform:none}70%{opacity:.4;transform:translateY(1px)}100%{opacity:1}}

/* totem */
:is(a,.tb-cat,.tb-hub,.tb-card,.tb-tcard,.tb-cover,.tb-hero,.tb-preview):is(:hover,:focus-visible,:active,.is-live) .tb-ti[data-test="totem"] path[data-p="pad"]{animation:tb-step-p 1.4s var(--tb-ease) infinite}
:is(a,.tb-cat,.tb-hub,.tb-card,.tb-tcard,.tb-cover,.tb-hero,.tb-preview):is(:hover,:focus-visible,:active,.is-live) .tb-ti[data-test="totem"] path[data-p^="t"]{animation:tb-step-p 1.4s var(--tb-ease) .12s infinite}
@keyframes tb-step-p{0%{opacity:.3;transform:scale(.9)}40%{opacity:1;transform:none}100%{opacity:1}}

/* truemyth */
:is(a,.tb-cat,.tb-hub,.tb-card,.tb-tcard,.tb-cover,.tb-hero,.tb-preview):is(:hover,:focus-visible,:active,.is-live) .tb-ti[data-test="truemyth"] path[data-p="ok"]{animation:tb-draw-ok 1.6s var(--tb-ease) infinite}
:is(a,.tb-cat,.tb-hub,.tb-card,.tb-tcard,.tb-cover,.tb-hero,.tb-preview):is(:hover,:focus-visible,:active,.is-live) .tb-ti[data-test="truemyth"] path[data-p="no"]{animation:tb-draw-ok 1.6s var(--tb-ease) .3s infinite}
@keyframes tb-draw-ok{0%{opacity:.2;transform:scale(.7)}45%{opacity:1;transform:scale(1.1)}60%,100%{transform:none;opacity:1}}

/* psychologist */
:is(a,.tb-cat,.tb-hub,.tb-card,.tb-tcard,.tb-cover,.tb-hero,.tb-preview):is(:hover,:focus-visible,:active,.is-live) .tb-ti[data-test="psychologist"] path[data-p="pil"]{animation:tb-hop 1.5s var(--tb-ease) infinite}
:is(a,.tb-cat,.tb-hub,.tb-card,.tb-tcard,.tb-cover,.tb-hero,.tb-preview):is(:hover,:focus-visible,:active,.is-live) .tb-ti[data-test="psychologist"] path[data-p="couch"]{animation:tb-breathe-s 2.2s ease-in-out infinite}

@media (prefers-reduced-motion:reduce){
  .tb-ti,.tb-ti path{animation:none!important;opacity:1!important;transform:none!important}
}
