@import url('https://fonts.googleapis.com/css2?family=Poppins:ital,wght@1,900&family=Roboto:wght@300&display=swap');

:root{
    --card-bg-color: rgb(40, 40, 40);
    --dark-card-bg-color: rgb(25, 25, 25);
    --error-color: rgba(182, 37, 37, 0.933);
    --popup-bg-color: rgb(180, 180, 180);
    --main-card-width: 100vmin;
    --bg-color: rgb(10, 10, 10);
    --card-height: 70vmin; 
    --padding: 2vmin;
    --icon-font-size: clamp(1rem, 4vmin, 1.5rem);
    --grad-purple: rgb(123, 31, 162);
    --grad-violet: rgb(103, 58, 183);
    --grad-pink: rgb(244, 143, 177);
    --text-color: rgb(170, 170, 170);
}

*,
*::before,
*::after{
    box-sizing: border-box;
    position: relative;
    padding: 0;
    margin: 0;
}
::selection{
    background-color: var(--grad-purple);
}

::-webkit-scrollbar {
    width: 1.5vmin;
}

/* Track */
::-webkit-scrollbar-track {
    background-color: rgba(0, 0, 0, .1);
    border-radius: 10px;
}

/* Handle */
::-webkit-scrollbar-thumb {
    background-color: rgba(0, 0, 0, .4  );
    border-radius: 1vmin;
}

@keyframes onclick {
    0%{transform: scale(1);}
    33%{transform: scale(1.5); opacity: 1;}
    66%{transform: scale(.5); opacity: .5;}
    100%{transform: scale(1); opacity: .7;}
}

@keyframes popUp {
    0%{transform: scale(.5); opacity: 0;}
    33%{transform: scale(1);}
    100%{opacity: 1;}
}

@keyframes background-pan {
    from{
        background-position: 0% center;
    }
    to{
        background-position: -200% center;
    }
}

html,
body{
    font-family: "Rubik", sans-serif;
    background-color: var(--bg-color);
    word-wrap: break-word; 
    color: var(--text-color);
    min-height: 100vh;
}

.error, .correct{
    box-shadow:var(--shadow-color) 0px 0px 2vmin; 
}

.error{
    --shadow-color: var(--error-color);
}

.correct{
    --shadow-color: var(--correct-color);
}

.title{
    padding: 2vmin;
    padding-top: 4vmin;
    font-size: 4rem;
    text-align: center;
    height: fit-content;
    color: var( --text-color);
    text-transform: uppercase;
}

.gradient-text > *{
    animation: background-pan 3s linear infinite;
    background: linear-gradient(
        to right,
        var(--grad-purple),
        var(--grad-violet),
        var(--grad-pink),
        var(--grad-purple)
    );
    background-clip: text; -webkit-background-clip: text;
    color: transparent; -webkit-text-fill-color: transparent;
    background-size: 200%;
    white-space: nowrap;
    font-size: .9em;
}

.gradient-text::before{
    animation: background-pan 1s linear infinite;
    content: '';
    position: absolute;
    height: 0.125em;
    width: 100%;
    left: 0%; bottom: -0em;
    border-radius: 0.2em;
    background: linear-gradient(
        to right,
        var(--grad-purple),
        var(--grad-violet),
        var(--grad-pink),
        var(--grad-purple)
    );
}

.function-footer{
    --bg-color: var(--color);
    font-size: var(--icon-font-size);
    color: var(--dark-card-bg-color);
    position: absolute;
    top: calc(var(--gap)); right:calc(var(--gap)); 
    display: flex; flex-direction: column;
    gap: max(.5vmin,.5em);
}

.animation-onclick{
    animation: .5s  onclick;
    animation-direction:alternate;
}

.function-footer > *{
    -webkit-user-select: none;
    -ms-user-select: none; 
    user-select: none;
    color: var(--grad-violet);
    opacity: .7;
}

.function-footer > *:hover{
    transition: opacity .2s ease-in-out;
    opacity: 1;
}


.main-page{
    --gap: 2vmin;
    position: relative;
    top: 7vmin; bottom: 23vmin;
    width: 100%; height: 70vmin;
    display: grid;
    grid-template-columns: 66% 33%;
    gap: max(1em, var(--gap));
    padding: var(--gap);
}


.json-card , .schema-card, .pop-up{
    position: relative;
    padding: var(--padding);
    background-color: var(--card-bg-color);
    border-radius: 3vmin;
}

.json-card , .schema-card{
    min-height: 6rem;
    max-width: 100%;
}

.schema-card{
    background-color: var(--dark-card-bg-color);
}

.pop-up{
    position: absolute;
    display: inline-block;
    bottom: 4vmin; right: 4vmin;
    text-align: center;
    width: auto; height: fit-content;
    animation: popUp 1.7s;
    animation-iteration-count: 1;
    background-color: var(--popup-bg-color);
    color: var(--bg-color);
    font-weight: bold;
}

* > .card-text{
    height: 100%;
    width: calc(100% - var(--icon-font-size) - var(--gap)/4);
    overflow-wrap: break-word;
    outline: none;
    direction:ltr; 
    overflow-y: auto;
}

@media screen and (max-width: 900px) {
    .main-page{
        grid-template-columns: 100%;
        height: 70vh;
        gap: 2vh;
        padding: 2vh;
    }
    .title{
        font-size: max(1rem,6vmin);
        padding-top: 8vmin;
    }
}



@media (orientation: portrait) {
    .main-page{
        top: 3vh;
        grid-template-columns: 100%;
    }
  }