:root {
    --eternal-gold: #443512;
    --golden-dusk: #574a2a;
    --gold-soul: #745714;
    --golden-earth: #926c15;
    --royal-gold: #ffcb05; 




    --platinum: #ededed;
    --onyx: #060606;
    --new-gold: #ffe000;
    --golden-vanilla: #ffebcd;
    

    
    --back-background: var(--onyx);
    --back-tech-popup: var(--onyx);
    --back-crystal: var(--platinum);
    --back-section-title: var(--platinum);
    --back-crystal-border: var(--new-gold);

    --text-base: var(--golden-vanilla);
    --text-section-titles: var(--golden-vanilla);
    --text-card-titles: var(--platinum);
    --text-subtext: var(--platinum);

    --deco-card-hr: var(--platinum);
    --deco-subtle-hover: var(--platinum);
    --deco-cube: var(--new-gold);

    --card-background: var(--new-gold);
    --card-guard: var(--new-gold);
    --card-hover: var(--new-gold);

    --tech: var(--new-gold);
    --tech--alt: var(--onyx);

    --cube-height: 1.25em;
}

/*
█ Fuck it, no hidden margin/padding anywhere.
█ Include in the margins and paddings in the items themselves.
*/
* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}

/*
█ So cute.
*/
.open-sans-font {
    font-family: "Open Sans", sans-serif;
    font-optical-sizing: auto;
    font-weight: 400;
    font-style: normal;
    font-variation-settings:
    "wdth" 100;
}

/*
█ Full dynamic-viewport so it has all the screen on every device.
█ Stupid mobile viewport substandart.
*/
body {
    height: 100lvh;
    width: 100lvw;
    color: var(--text-base);

}

/*
█ Make it 100% of parent (body{}).
█ This is the real bg, a single level over body.
*/
#underground {
    height: 100lvh;
    width: 100lvw;
    display: flex;
}

/*
█ This is the bg a level over undeground.
█ In paralel with whatever the bakground is.
█ If something overflows the side, don't.
*/
#background{
    height: 100lvh;
    width: 100lvw;
    display: flex;
    flex-direction: column;
    overflow: scroll;
}

/*
█ This the ever on whatever the bakground is.
*/
#particle-background {
    position: absolute;
    
    height: 100lvh;
    width: 100lvw;
    
    z-index: -1;
    background-color: var(--back-background);
}

#main-section {
    position: relative;
    display: flex;
    flex-direction: column;
    justify-content: space-evenly;
    align-items: center;
    width: 100%;
    min-width: 100%;
}

/*
█ Maths yay!
*/
#logo-section {
    width: 80%;
    max-width: 20em;
    aspect-ratio: cos(30deg);
    margin: 10em 0;
}

#main-avatar-outer-border {
    height: 100%;
    background-color: var(--gold-soul);
}

/*
█ There are some interesting maths in this percentages.
█ Maths that I'm not doing.
*/
#main-avatar-inter-border {
    height: 98%;
    background-color: var(--back-background);
}

#main-avatar-inner-border {
    height: 97%;
    background-color: var(--gold-soul);
}

#main-avatar {
    height: 98%;
    object-fit: cover;
}

.hexagon {
    aspect-ratio: cos(30deg);
    clip-path: polygon(-50% 50%,50% 100%,150% 50%,50% 0);
    pointer-events: none;
    user-select: none;

    /*
    █ This bad boys are here just for accesibility.
    █ If img fails, alt needs to be visible.
    █ If not centered, clip-path fucks it.
    */
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    text-align: center;
}

.main-quote-card {
    margin-bottom: 5em;
    padding: 1rem;
    width: 80%;
    max-width: 20em;
    height: 6em;
    
    border-radius: 5px;
    
    background-color: rgba(from var(--back-crystal) r g b / 0.01);
    border: 1px solid rgba(from var(--back-crystal-border) r g b / 0.05);
    backdrop-filter: blur(3px);
    
    text-align: center;

    align-content: center;

    font-weight: 800;
}

.socials {
    display: flex;
    flex-direction: row;
    margin-bottom: 5em;
    width: 80%;
    max-width: 20em;
    height: 6em;

    justify-content: space-evenly;
}

.contact-box {
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;

    padding: 1em;

    height: 3em;
    width: 3em;

    backdrop-filter: blur(3px);
    border-radius: 100%;
    background-color: rgba(from var(--back-crystal) r g b / 0.01);
    border: 1px solid rgba(from var(--back-crystal-border) r g b / 0.05);

    transition: 0.4s;
}

.contact-box > a {
    user-select: none;
}

.contact-box:hover {
    background-color: rgba(from var(--deco-subtle-hover) r g b / 0.04);
}

@keyframes spin {
    0%, 20% {
        transform: rotateX(0deg);
    }

    25%, 45% {
        transform: rotateX(-90deg);
    }

    50%, 70% {
        transform: rotateX(-180deg);
    }

    75%, 95% {
        transform: rotateX(-270deg);
    }

    100% {
        transform: rotateX(-360deg);
    }
}

.main-quote-card > p {
    display: inline;
    vertical-align: middle;
}

.cube {
    display: inline-block;

    width: 7em;
    height: var(--cube-height);
    transform-style: preserve-3d;
    animation: spin 10s linear infinite;
    
    margin: 0 auto;
    vertical-align: middle;
}

.cube-face {
    backface-visibility: hidden;
    position: absolute;
    width: 100%;
    height: var(--cube-height);
    color: rgba(from var(--deco-cube) r g b / 0.6);
    
    background-color: rgba(from var(--deco-cube) r g b / 0.02);
    border-top: 1px solid rgba(from var(--deco-cube) r g b / 0.2);
    border-bottom: 1px solid rgba(from var(--deco-cube) r g b / 0.2);
    
    display: flex;
    align-items: center;
    justify-content: center;
    
    box-sizing: content-box;
    padding: 0 0.25em;
}

.cube-face-front {
    transform: rotateX(0deg) translateZ(calc(var(--cube-height) / 2));
}

.cube-face-top {
    transform: rotateX(90deg) translateZ(calc(var(--cube-height) / 2));
}

.cube-face-back {
    transform: rotateX(180deg) translateZ(calc(var(--cube-height) / 2));
}


.cube-face-bottom {
    transform: rotateX(270deg) translateZ(calc(var(--cube-height) / 2));
}

.sub-section {
    display: flex;
    
    flex-direction: row;
    justify-content: start;
    align-items: start;
    width: 100%;
    min-width: 100%;

    max-height: fit-content;

    flex-wrap: wrap;
}

.columnable {
    display: flex;
    flex-direction: column;
    align-items: center;
    width: 100%;
    height: fit-content;
    min-width: 100%;

    padding: 2em;
}

@media only screen and (min-width: 1000px) {
    .sub-section {
        padding: 2em;
    }

    .columnable {
        width: 50%;
        min-width: 50%;   
    }

    .columnable-left {
        align-items: start;
        
    }

    .columnable-right {
        align-items: end;
        
    }

    
}

.sub-section-title {
    backdrop-filter: blur(3px);
    background-color: rgba(from var(--back-section-title) r g b / 0.01);
    border: 1px solid rgba(from var(--back-section-title) r g b / 0.02);
    border-radius: 5px;
    margin-bottom: 1em;
    padding: 0.25em;
    font-size: 1.25em;
    color: var(--text-section-titles);
}

.cardholder {
    margin-bottom: 10px;
    width: 100%;
    max-width: 800px;

    padding: 5px;
    border: 1px solid rgba(from var(--card-guard) r g b / 0.3);
    border-radius: 5px;
    
    backdrop-filter: blur(5px);
}

.card {
    margin: 5px;
    padding: 10px;
    border-radius: 5px;
    background-color: rgba(from var(--card-background) r g b / 0.06);
    
    transition: 0.2s;
}

.card > .card-descriptor {
    color: rgba(from var(--text-base) r g b / 0.9);
}

.card:hover {
    background-color: rgba(from var(--card-hover) r g b / 0.075);
}

.card > h3 {
    color: var(--text-card-titles)
}
.card-descriptor {
    text-align: justify;
    font-size: 0.9rem;
}

.tech-container {
    display: flex;
    flex-wrap: wrap;
}

.tech-hr {
    color: rgba(from var(--deco-card-hr) r g b / 0.15);
    margin: 5px 0px;
}

.tech-title {
    font-size: 0.6rem;
    color: rgba(from var(--text-subtext) r g b / 0.4);
    margin: 2px;
}

.tech {
    background-color: rgba(from var(--tech--alt) r g b / 0.3);
    border: 1px solid rgba(from var(--tech) r g b / 0.15);
    border-radius: 4px;

    padding: 4px;
    margin: 2px;

    display: flex;
    text-wrap: nowrap;
    user-select: none;

    font-size: 0.75rem;
}

.popup-togle:hover {
    background-color: rgba(from var(--tech) r g b / 0.075);
    border: 1px solid rgba(from var(--tech) r g b / 0.175);
    cursor: pointer;
}

.tech > p {
    font-weight: 700;
}

.tech > * {
    align-self: center;
    margin: 0px 2px;
}

.tech-popup {
    position: absolute;
    z-index: 2;

    height: 100%;
    width: 100%;
    left: -2px;
    top: 0;

    border-radius: 5px;
    background-color: rgba(from var(--back-tech-popup) r g b / 0.95);
    backdrop-filter: blur(3px);

    
    visibility: hidden;
    opacity: 0;
    transition: visibility 0s 0.15s, opacity 0.15s linear;

    padding: 1em;
    display: flex;
    justify-content: flex-start;
    align-content: flex-start;
    flex-direction: row;
    flex-wrap: wrap;
    overflow: scroll;
}

.tech-popup > p {
    text-wrap: wrap;
    text-align: justify;
    margin: 2px;
}

.popup-togle {
    cursor: pointer;
    display: flex;
    justify-content: center;
    align-items: center;

    transition: 0.2s;
}

.fuck-off {
    display: none;
}

input[type=checkbox]:checked ~ .tech-popup {
    visibility: visible;
    opacity: 1;
    transition: opacity 0.15s linear;
}

.tech-square {
    margin: 2px;
    padding: 4px;
    font-size: 0.75rem;

    background-color: rgba(from var(--tech) r g b / 0.05);
    border: 1px solid rgba(from var(--tech) r g b / 0.15);
    border-radius: 4px;
    height: fit-content;
    width: fit-content;

    font-weight: 700;

    display: flex;
    justify-content: center;
    align-items: center;
    text-wrap: nowrap;
    user-select: none;
}

.tech-square > * {
    align-self: center;
    margin: 0px 2px;
}

/*
█ Don't
*/
a {
    text-decoration: none;
    color: inherit;
}