* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}

body {
    min-height: 100vh;
    overflow: hidden;
    background-color: #111;
    background-image: linear-gradient(to right, #333 1px, transparent 1px),
    linear-gradient(to bottom, #333 1px, transparent 1px);
    background-size: 50px 50px;
    cursor: none;
}

#cursor {
    position: fixed;
    width: 30px;
    height: 30px;
    border-top: 5px solid #00ff2b;
    border-left: 5px solid #00ff2b;
    transform-origin: top;
    transition: transform 0.1s;
    pointer-events: none;
    filter: drop-shadow(0 0 5px #00ff2b) drop-shadow(0 0 15px #00ff2b) hue-rotate(60deg);
}

#cursor::before {
    content: '';
    position: absolute;
    top: -2px;
    left: -3px;
    width: 5px;
    height: 50px;
    background: #00ff2b;
    transform-origin: top;
    transform: rotate(320deg);
}

body:hover #cursor {
    transform: translate(-1px, 5px) rotate(15deg) scale(1);
}

.element {
    position: absolute;
    transform: translate(-50%, -50%);
    font-size: 2em;
    color: #00ff2b;
    pointer-events: none;
    width: 50px;
    height: 50px;
    transition: 1s;
    filter: drop-shadow(0 0 5px #00ff2b) hue-rotate(60deg);
}
