
.buttonSpec {
    pointer-events: auto;
    cursor: pointer;
    background: #e7e7e7;
    border: none;
    padding: 1.5rem 3rem;
    margin: 0;
    font-family: inherit;
    font-size: inherit;
    position: relative;
    display: inline-block;
}

.buttonSpec::before,
.buttonSpec::after {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
}

.button--mimas {
    text-transform: uppercase;
    letter-spacing: 0.05rem;
    font-weight: 700;
    font-size: 0.85rem;
    border-radius: 0.5rem;
    overflow: hidden;
    color: var(--btn-text);
    background: var(--btn-hover);
}

.button--mimas span {
    position: relative;
}

.button--mimas:hover {
    color: var(--btn-hover-text); 
}

.button--mimas::before {
    content: '';
    background: var(--btn-color);
    width: 120%;
    left: -10%;
    transform: skew(30deg);
    transition: transform 0.4s cubic-bezier(0.3, 1, 0.8, 1);
}

.button--mimas:hover::before {
    transform: translate3d(100%, 0, 0);
}





.button--greip {
	overflow: hidden;
	color: #fff;
	font-family: input-mono-narrow, monospace;
	font-weight: 500;
	padding: 1rem 2rem;
}

.button--greip span {
	display: block;
	position: relative;
}

.button--greip > span {
	overflow: hidden;
	mix-blend-mode: difference;
}

.button--greip:hover > span > span {
	animation: MoveUpInitial 0.2s forwards, MoveUpEnd 0.2s forwards 0.2s;
}

.button--greip::before {
	content: '';
	color: #fff;
	background: #000;
	width: 100%;
	height: 100%;
	transform-origin: 50% 100%;
	-webkit-clip-path: polygon(0 0, 100% 0, 100% 100%, 0% 100%);
	clip-path: polygon(0 0, 100% 0, 100% 100%, 0% 100%);
	transition: clip-path 0.2s, -webkit-clip-path 0.2s;
	transition-timing-function: cubic-bezier(0.7, 0, 0.2, 1);
}

.button--greip:hover::before {
	transition-duration: 0.3s;
	-webkit-clip-path: polygon(0 0, 100% 0, 0 0, 0% 100%);
	clip-path: polygon(0 0, 100% 0, 0 0, 0% 100%);
}