.heart-icon {
    transform-origin: center;
}

.group:hover .heart-icon {
    animation: heartbeat 1.5s ease-in-out infinite;
}

@keyframes heartbeat {
    0% {
        transform: scale(1);
    }
    15% {
        transform: scale(1.5);
    }
    30% {
        transform: scale(1.1);
    }
    100% {
        transform: scale(1);
    }
}


/* Text cutting to two lines */
.line-clamp-2 {
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}


/* JetBrains Mono font for code blocks */
@font-face {
    font-display: swap;
    font-family: 'JetBrains Mono';
    src: url('JetBrainsMono-Regular.woff2') format('woff2');
    font-weight: normal;
    font-style: normal;
}

/* Code highlighting */
pre {
    tab-size: 4;
    background: #000000;
    color: lightgreen;
    padding: 8px;
    white-space: pre-wrap;
    overflow-x: auto;
    font-family: "JetBrains Mono", "Lucida Console", serif;
    font-size: 12px;
}

code {
    font-size: 0.88em !important;
}
