/* HTML */
html{
    scroll-behavior: smooth;
}

/* Body */
body{
    font-family: var(--font-text);
    background: var(--color-bg);
    color: var(--color-text);
    line-height: 1.6;
    overflow-x: hidden;
}

/* Site */
.site{
    position: relative;
    width: 100%;
    min-height: 100vh;
    z-index: 2;
}

/* Container */
.container{
    width: min(100% - 48px, var(--container));
    margin: 0 auto;
}

/* Links */
a{
    color: inherit;
    text-decoration: none;
}

/* Icons */
.icon{
    display: block;
    width: 24px;
    height: 24px;
    flex-shrink: 0;
    fill: currentColor;
    color: var(--color-text);
    transition:
        color var(--transition-fast),
        transform var(--transition-fast);
}

/* Images */
img{
    display: block;
    max-width: 100%;
}

/* Buttons */
button{
    font: inherit;
    border: none;
    background: none;
    cursor: pointer;
}

/* Text Selection */
::selection{
    background: var(--color-primary);
    color: #000;
}

/* Scrollbar */
::-webkit-scrollbar{
    width: 10px;
}

::-webkit-scrollbar-track{
    background: #070707;
}

::-webkit-scrollbar-thumb{
    background: var(--color-primary);
    border-radius: 20px;
}

::-webkit-scrollbar-thumb:hover{
    background: var(--color-primary-light);
}

/* Cursor Glow */
body::before{
    content: "";
    position: fixed;
    inset: 0;
    pointer-events: none;
    background:
        radial-gradient(
            circle 220px at var(--cursor-x) var(--cursor-y),
            rgba(0,255,136,.20),
            rgba(0,255,136,.04) 40%,
            transparent 75%
        );
    z-index: -1;
    transition: background .08s linear;
}

/* Card Spotlight */
.card-glow{
    position: relative;
    overflow: hidden;
}

.card-glow::before{
    content:"";
    position:absolute;
    inset:0;
    background:
        radial-gradient(
            260px circle at var(--mx,50%) var(--my,50%),
            rgba(255,255,255,.08),
            transparent 70%
        );
    opacity:0;
    transition:opacity .35s ease;
    pointer-events:none;
}

.card-glow:hover::before{
    opacity:1;
}