.tmp-cursor {
position: fixed;
top: 0;
left: 0;
z-index: 10000;
contain: layout style size;
pointer-events: none;
will-change: transform;
-webkit-transition: opacity 0.3s, color 0.4s;
transition: opacity 0.3s, color 0.4s;
}
.tmp-cursor::before {
content: "";
position: absolute;
top: -24px;
left: -24px;
display: block;
width: 48px;
height: 48px;
-webkit-transform: scale(0);
-ms-transform: scale(0);
transform: scale(0);
background: #000;
border-radius: 50%;
-webkit-transition: opacity 0.1s, -webkit-transform 0.3s ease-in-out;
transition: opacity 0.1s, -webkit-transform 0.3s ease-in-out;
transition: transform 0.3s ease-in-out, opacity 0.1s;
transition: transform 0.3s ease-in-out, opacity 0.1s, -webkit-transform 0.3s ease-in-out;
}
.tmp-cursor-text {
position: absolute;
top: -18px;
left: -18px;
width: 36px;
height: 36px;
display: -webkit-box;
display: -webkit-flex;
display: -ms-flexbox;
display: flex;
-webkit-box-align: center;
-webkit-align-items: center;
-ms-flex-align: center;
align-items: center;
-webkit-box-pack: center;
-webkit-justify-content: center;
-ms-flex-pack: center;
justify-content: center;
-webkit-transform: scale(0) rotate(10deg);
-ms-transform: scale(0) rotate(10deg);
transform: scale(0) rotate(10deg);
opacity: 0;
color: #fff;
font-size: 16px;
line-height: 20px;
text-align: center;
letter-spacing: -0.01em;
-webkit-transition: opacity 0.4s, -webkit-transform 0.3s;
transition: opacity 0.4s, -webkit-transform 0.3s;
transition: opacity 0.4s, transform 0.3s;
transition: opacity 0.4s, transform 0.3s, -webkit-transform 0.3s;
font-weight: 400;
}
@supports (mix-blend-mode: exclusion) {
.tmp-cursor.exclusion,
.tmp-cursor.opaque {
mix-blend-mode: exclusion;
}
.tmp-cursor.exclusion::before,
.tmp-cursor.opaque::before {
background: #fff;
}
}
.tmp-cursor.normal,
.tmp-cursor.text {
mix-blend-mode: normal;
}
.tmp-cursor.inverse-text .tmp-cursor-text {
color: #000;
}
.tmp-cursor.normal::before,
.tmp-cursor.text::before {
background: #03041c;
}
.tmp-cursor.inverse {
color: #fff;
}
.tmp-cursor.transparent {
color: transparent;
}
.tmp-cursor.difference {
mix-blend-mode: difference;
}
.tmp-cursor.visible::before {
-webkit-transform: scale(0.2);
-ms-transform: scale(0.2);
transform: scale(0.2);
}
.tmp-cursor.visible.active::before {
-webkit-transform: scale(0.23);
-ms-transform: scale(0.23);
transform: scale(0.23);
-webkit-transition-duration: 0.2s;
transition-duration: 0.2s;
}
.tmp-cursor.default::before {
opacity: 0.15;
-webkit-transform: scale(1.5);
-ms-transform: scale(1.5);
transform: scale(1.5);
}
.tmp-cursor.default.active::before {
opacity: 0.2;
-webkit-transform: scale(1.3);
-ms-transform: scale(1.3);
transform: scale(1.3);
}
.tmp-cursor.pointer::before {
-webkit-transform: scale(0.15);
-ms-transform: scale(0.15);
transform: scale(0.15);
}
.tmp-cursor.text::before {
-webkit-transform: scale(1.7);
-ms-transform: scale(1.7);
transform: scale(1.7);
}
.tmp-cursor.text .tmp-cursor-text {
opacity: 1;
-webkit-transform: scale(1);
-ms-transform: scale(1);
transform: scale(1);
}
.tmp-cursor.text.active::before {
-webkit-transform: scale(1.6);
-ms-transform: scale(1.6);
transform: scale(1.6);
-webkit-transition-duration: 0.2s;
transition-duration: 0.2s;
}
.tmp-cursor.opaque::before {
-webkit-transform: scale(1.32);
-ms-transform: scale(1.32);
transform: scale(1.32);
}
.tmp-cursor.opaque.active::before {
-webkit-transform: scale(1.2);
-ms-transform: scale(1.2);
transform: scale(1.2);
}
.tmp-cursor.xs::before {
-webkit-transform: scale(0.3);
-ms-transform: scale(0.3);
transform: scale(0.3);
}
.tmp-cursor.sm::before {
-webkit-transform: scale(0.75);
-ms-transform: scale(0.75);
transform: scale(0.75);
}
.tmp-cursor.md::before {
-webkit-transform: scale(1.25);
-ms-transform: scale(1.25);
transform: scale(1.25);
}
.tmp-cursor.lg::before {
-webkit-transform: scale(1.75);
-ms-transform: scale(1.75);
transform: scale(1.75);
}
.tmp-cursor.xl::before {
-webkit-transform: scale(2.25);
-ms-transform: scale(2.25);
transform: scale(2.25);
}
.tmp-cursor.hidden::before {
-webkit-transform: scale(0);
-ms-transform: scale(0);
transform: scale(0);
}