@layer base, utils, specific;

@layer base {
    :root{
        /* COLORS */
        --custom_acid: #00fa00;
        --custom_green: #636732;
        --custom_oldcream: #93998b;
        --custom_dark_oldcream: #747b6d;
        --custom_black: #0b0b0b;
        --custom_gray: #535353;
        --custom_white: #ffffff;

        color-scheme: light only;
    }

    @font-face{
        font-family: 'OCRa';
        size-adjust: 110%;
        line-gap-override: 12%;
        src:  url('../font/OCRAStd.otf');
    }
    @font-face{
        font-family: 'lazen';
        src:  url('../font/lazenbycomputer/LazenbyCompLiquid.ttf');
    }

    html {
        color: var(--custom_black);
        font-family: 'OCRa';
        text-align: left;
        font-size: 1rem;
        /* background-color: var(--custom_oldcream); */
        min-height: 100vh;
        display: flex;
        justify-content: center;

        background-image: url('../imgs/texture.png');
        background-size: 100px;
    }

    body::before {
      content: " ";
      display: block;
      position: fixed;
      top: 0;
      left: 0;
      bottom: 0;
      right: 0;
      background: linear-gradient(rgba(18, 16, 16, 0) 50%, rgba(0, 0, 0, 0.25) 50%), linear-gradient(90deg, rgba(255, 0, 0, 0.06), rgba(0, 255, 0, 0.02), rgba(0, 0, 255, 0.06));
      z-index: 2;
      background-size: 100% 2px, 3px 100%;
      pointer-events: none;
    }

    body {
        max-width: 1100px;
        margin: 0 20px;
        width: 100%;
        display: flex;
        flex-direction: column;
    }

    *:focus-visible {
        outline: 4px solid #00ff00;
        text-decoration: underline;
    }

    h1 {
        font-size: 2.4rem;
        font-family: 'lazen';
        font-weight: normal;
        line-height: 1.3;
        color: var(--custom_acid);
    }

    h2 {
        font-family: 'OCRa';
        font-weight: normal;
        color: var(--custom_acid);
    }

    h3,
    h4,
    h5,
    h6 {
        text-align: left;
        line-height: 1.2;
    }

    a {
        font-size: 1rem;
    }

    a:link {
        text-decoration: underline;
    }

    a.noStyle{
        text-decoration: none;
        color: var(--custom_black);
    }

    a:visited,
    a:active,
    a{
        color: var(--custom_black);
    }

    a:hover {
        text-decoration: underline;
        color: var(--custom_acid);
        cursor: pointer;
    }

    .noselect {
        -webkit-user-select: none;
        -khtml-user-select: none;
        -moz-user-select: none;
        -o-user-select: none;
        user-select: none;
    }

    .hide {
        display: none;
        visibility: hidden;
        opacity: 0;
        -webkit-transition: visibility 0s, opacity 0.4s linear;
        /* Safari */
        transition: visibility 0s, opacity 0.4s linear;
    }

    @media only screen and (max-width: 767px) {

        iframe {
            max-width: 100%;
        }

        p,
        a,
        span,
        i,
        footer,
        figure,
        figcaption,
        li {
            font-size: 0.9rem;
        }

        h1 {
            font-size: 1.9rem;
        }

        h2 {
            font-size: 1.4rem;
        }
    }
}

.tag-effect>a{
    background: var(--custom_white);
    color: var(--custom_black);
    text-decoration: none;
    text-shadow: 0px 0px 3px #7e7e7e;
    padding: 6px 7px 1px;
    transition-property: text-shadow, background;
    transition-duration: 0.3s;
    margin-bottom: 10px;
}
.tag-effect>a ~ a{
    margin-left: 1rem;
}
.tag-effect>a:hover{
    background-color: var(--custom_acid);
    color: var(--custom_black);
    border-radius: 1px;
    box-shadow: 0px 0px 7px 0px var(--custom_acid);
    transition-property: text-shadow, background;
    transition-duration: 0.3s;
}

.pagination{
    margin-top: 2rem;
    text-align: center;
}

.pagination strong{
    color: var(--custom_acid);
}

.pagination a, .pagination strong{
    font-size: 1.2rem;
}

.pagination a{
    text-decoration-thickness: 0.2rem;
}

.pagination a:hover{
    background: none;
    text-decoration-color: var(--custom_acid)
}

/* === Gallery === */
.gallery-with-thumbs {
    text-align: center;
}
.gallery-with-thumbs #main-image img {
    width: 100%;
    height: 300px;
    object-fit: contain;
    margin-bottom: 10px;
}
.gallery-with-thumbs .thumbnails {
    display: flex;
    justify-content: center;
    flex-wrap: wrap;
}
.gallery-with-thumbs .thumbnails .thumb {
    opacity: 0.6;
    transition: opacity 0.3s ease;
    border: 2px solid transparent;
}
.gallery-with-thumbs .thumbnails .thumb.active,
.gallery-with-thumbs .thumbnails .thumb:hover {
    opacity: 1;
    border-color: var(--custom_acid);
}

#credits {
    width: 100%;
    background-color: var(--custom_black);
    color: var(--custom_white);
    padding: 8px 8px 6px;
    box-sizing: border-box;
    margin-bottom: 1rem;
    margin-top: auto;
}
#credits>a{
    color: #fa0000;
    padding: 3px;
}
#credits>a:hover{
    background: yellow;
}

@media screen and (max-width: 888px) {
    body{
        margin: 1rem;
    }
}

/* ================================================================================================================================================
   ================================================================================================================================================
        NAV
*/

#nav{
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin: 1rem 0;
    background: #737b6d7a;
}

.nav-links{
    list-style: none;
    display: flex;
    align-items: center;
}

.nav-links li + li{
    padding-left: 1rem;
}

.nav-links a{
    font-size: 1.2rem;
}

.nav-links a:link{
    color: var(--custom_white);
    text-shadow: none;
    transition-property: text-shadow;
    transition-duration: 0.3s;
}

.nav-links a:hover{
    background: none;
}

#nav a:hover img, #nav a:hover gif{
    box-shadow: 1px 1px 20px 0px var(--custom_acid);
    background: #00fa0078;
    transition-property: box-shadow, background;
    transition-duration: 0.2s;
}

#nav img, #nav gif{
    border-radius: 20px;
    transition-property: box-shadow, background;
    transition-duration: 0.3s;
    background: none;
    box-shadow: none;
}

#nav li img{
    height: 63px;
}

img.logo{
    width: 200px;
}

#body{
    display: flex;
    flex-direction: row-reverse;
    margin-bottom: 2rem;
}

.popular-tags ul{
    padding-inline-start: 1rem;
}

.popular-tags li {
    padding: 7px 3px 2px 5px;
    display: flex;
}

.popular-tags li label{
    padding-top: 1px;
}

.popular-tags li *:hover {
    cursor: pointer;
}

.popular-tags li:has(input:checked)::marker {
    color:var(--custom_black);
}

.popular-tags li:has(input:checked) {
    color: var(--custom_acid);
    background:var(--custom_black);
}

.popular-tags input[type="checkbox"] {
    margin: 0 10px 0 0;
    appearance: none;
    background-color: #fff;
    font: inherit;
    color: currentColor;
    width: 1.15em;
    height: 1.15em;
    border: 0.15em solid var(--custom_black);
    border-radius: 0.15em;
    transform: translateY(-0.075em);
    display: grid;
    place-content: center;
}

.popular-tags  input[type="checkbox"]::before {
  content: "";
  width: 0.65em;
  height: 0.65em;
  transform: scale(0);
  transition: 120ms transform ease-in-out;
  box-shadow: inset 1em 1em var(--custom_acid);
}

.popular-tags  input[type="checkbox"]:checked::before {
  transform: scale(1);
}

@media screen and (max-width: 888px) {
    #body{
        flex-direction: column-reverse;
    }
    #nav{
        flex-direction: column;
        align-items: center;
        margin-top: 0;
    }
    #nav .nav-links{
        flex-direction: column;
        align-items: center;
        padding-inline-start: 0;
    }
    #nav img.logo{
        width: 240px;
        padding: 0;
    }
    .nav-links li + li::before{
        content: "";
    }
}


/* ================================================================================================================================================
   ================================================================================================================================================
        Right
*/

#left{
    max-width: 800px;
    width: 100%;
}

#right{
    padding: 1rem;
    min-width: 300px;
    max-width: 300px;
    background: var(--custom_black);
    color: var(--custom_white);
    margin-left: 1rem;
    height: fit-content;
}

#right .welcome h1:first-child{
    margin-top: 0;
}

#right strong{
    color: var(--custom_acid);
}

#right h1{
    line-height: 1.1;
    margin: 1rem 0;
    color: var(--custom_white);
}

#search{
    width: 100%;
    font-size: 1rem;
    padding: 0.7rem 0.7rem 0.3rem;
    border: none;
    font-family: 'OCRa';
}


@media screen and (max-width: 888px) {

    #right{
        padding: 1rem;
        max-width: 100%;
        margin: 1rem 0 0 0;
    }
}

/* ================================================================================================================================================
   ================================================================================================================================================
        BLOG
*/

.article h1{
    padding: 5px 10px;
    margin-bottom: 0;
    transition-property: text-shadow;
    transition-duration: 0.5s;
}

.article a:hover{
    text-decoration: none;
}

.article a:hover h1{
    text-decoration: underline;
    text-decoration-thickness: 0.2rem;
    text-shadow: 0px 1px 9px var(--custom_acid);
    transition-property: text-shadow;
    transition-duration: 0.3s;
}

.article.preview{
    margin-bottom: 1rem;
    background-color: var(--custom_dark_oldcream);
}

.article .preview-content p{
    font-size: 1.1rem;
}

.article .preview-content:hover p{
    color: var(--custom_black);
}

.article.preview h1{
    margin-top: 0;
}

.article .preview-content{
    padding: 1rem;
}

.article .preview-content.cover{
    display: flex;
}

.article .preview-content.cover p{
    padding-right: 1rem;
}

.article .preview-content.cover img{
    width: 300px;
    padding-top: 1rem;
}

.article.preview .metadata .stamp{
    background-color: var(--custom_black);
    color:var(--custom_white);
    padding: 8px 8px 2px;
    display: flex;
}

.article.preview .authors{
    display: flex;
    flex-wrap: wrap;
}

.article .authors span + span::before{
    content: ", ";
}

.article.preview .authors + .date::before{
    content: "-";
    padding: 0 1ch;
}

.article.preview .tags{
    padding: 0 10px;
    display: flex;
    justify-content: flex-end;
    flex-wrap: wrap;
}

.article.preview .metadata, .article.preview .preview-content{
    transition-property: text-shadow;
    transition-duration: 0.5s;
}

.article.preview:hover .metadata, .article.preview:hover .preview-content{
    text-shadow: 0px 0px 19px #3c3c3c;
    transition-property: text-shadow;
    transition-duration: 0.3s;
}



@media screen and (max-width: 1100px) {
    .article .preview-content.cover{
        flex-direction: column;
    }
}

@media screen and (max-width: 888px) {
    .article.preview .metadata .stamp{
        flex-direction: column;;
    }

    .article.preview .authors + .date::before{
        content: "";
        padding: 0;
    }

    .article.preview .authors + .date{
        padding-bottom: 3px;
    }
}

/* ================================================================================================================================================
   ================================================================================================================================================
        INFOS
*/

.infos-body{
    padding: 1rem;
    background: var(--custom_dark_oldcream);
}

.infos-body h1{
    padding: 5px 10px;
    margin: 0;
}

/* ================================================================================================================================================
   ================================================================================================================================================
        Perfos
*/

.perfos-body{
    padding: 1rem;
    background: var(--custom_dark_oldcream);
}

.perfos-body h1{
    padding: 5px 10px;
    margin: 0;
}

/* ================================================================================================================================================
   ================================================================================================================================================
        LOCATION
*/

.location-body{
    background-color: var(--custom_dark_oldcream);
    padding: 1rem;
}

.location-body h1{
    padding: 5px 10px;
    margin: 0;
}

.location-body h1 a{
    font-size: 2rem;
    text-decoration: none;
    color:var(--custom_black);
}

.location-body h1 a:hover{
    color: var(--custom_acid);
    background: none;
}

.location-list{
    display: flex;
    flex-wrap: wrap;
}

.location-list>a{
    width: calc(100% / 3);
}

.location-list>a:hover p{
    background: none;
  color: black;
}

.location-item{
    padding: 0.5rem;
    margin: 0.25rem;
    background: var(--custom_acid);
    box-shadow: 0px 0px 0px #7e7e7e;
    transition-property: box-shadow;
    transition-duration: 0.3s;
}
.location-item:hover{
    box-shadow: 0px 0px 20px 4px var(--custom_acid);
    transition-property: box-shadow;
    transition-duration: 0.3s;
}

.location-item img{
    width: 100%;
    max-height: 180px;
    object-fit: contain;
}

.location-item p{
    margin: 0;
    padding: 7px 0 3px;
}

@media screen and (max-width: 888px) {
    .location-list>a{
        width: calc(100% / 2);
    }
}


/* ================================================================================================================================================
   ================================================================================================================================================
        blog-article
*/

.article-body{
    padding: 0;
    background-color: var(--custom_dark_oldcream);
}
.article-body .content{
    word-break: break-word;
    padding: 1rem;
    padding-top: 0;
}

.article-body>h1{
    margin-top: 0;
}

.article-body .authors + .date{
    padding-left: 1ch;
}

.article-body .tags{
    display: flex;;
}

.article-body .stamp{
    background-color:var(--custom_black);
    color:var(--custom_white);
    padding: 8px 1rem 2px;
    display: flex;
}

.article-body .authors{
    display: flex;;
}

.article-body .authors span + span::before{
    content: ", ";
}

.article-body .authors + .date::before{
    content: "-";
    padding-right: 1ch;
}

.article-body .content h1{
        margin-top: 1rem;
}

@media screen and (max-width: 888px) {

    .article-body .stamp{
        flex-direction: column;;
    }

    .article-body .authors{
        display: flex;
    }

    .article-body .authors + .date::before{
        content: "";
        padding: 0;
    }

    .article-body .authors + .date{
        padding-bottom: 3px;
        padding-left: 0;
    }

    .article-body .content h1{
        margin-top: 0.5rem;
    }
}

/* ================================================================================================================================================
   ================================================================================================================================================
        Blocks general
*/

.blocks * {
    max-width: 100%;
}

.blocks a {
    word-break: break-all;
}

.blocks figure{
    text-align: center;
    display: flex;
    flex-direction: column;
    align-items: center;
}
.blocks figcaption{
    max-width: 500px;
    width: 100%;
    padding: 0.5rem;
    background: #ffffff57;
    box-sizing: border-box;
}

.blocks.article{
    margin-top: 0;
}

.blocks img{
    padding: 20px;
    padding-bottom: 0;
    width: 500px;
    max-width: 100%;
}

.blocks iframe {
  width: 500px;
  max-width: 100%;
  aspect-ratio: 16 / 9;
  height: auto;
}

.blocks ul{
    padding-inline-start: 1rem;
}

.blocks h1{
    padding: 5px 10px;
    margin-top: 1.5rem;
    margin-bottom: 0;
}

@media screen and (max-width: 888px) {

    .blocks img {
        width: 100%;
        padding: 0;
    }
    .blocks figure{
        margin: 0;
        margin-bottom: 1rem;
    }

}

/* ================================================================================================================================================
   ================================================================================================================================================
        Animations
*/


@keyframes textShadow {
  0% {
    text-shadow: 0.4389924193300864px 0 1px rgba(0,30,255,0.5), -0.4389924193300864px 0 1px rgba(255,0,80,0.3), 0 0 3px;
  }
  5% {
    text-shadow: 2.7928974010788217px 0 1px rgba(0,30,255,0.5), -2.7928974010788217px 0 1px rgba(255,0,80,0.3), 0 0 3px;
  }
  10% {
    text-shadow: 0.02956275843481219px 0 1px rgba(0,30,255,0.5), -0.02956275843481219px 0 1px rgba(255,0,80,0.3), 0 0 3px;
  }
  15% {
    text-shadow: 0.40218538552878136px 0 1px rgba(0,30,255,0.5), -0.40218538552878136px 0 1px rgba(255,0,80,0.3), 0 0 3px;
  }
  20% {
    text-shadow: 3.4794037899852017px 0 1px rgba(0,30,255,0.5), -3.4794037899852017px 0 1px rgba(255,0,80,0.3), 0 0 3px;
  }
  25% {
    text-shadow: 1.6125630401149584px 0 1px rgba(0,30,255,0.5), -1.6125630401149584px 0 1px rgba(255,0,80,0.3), 0 0 3px;
  }
  30% {
    text-shadow: 0.7015590085143956px 0 1px rgba(0,30,255,0.5), -0.7015590085143956px 0 1px rgba(255,0,80,0.3), 0 0 3px;
  }
  35% {
    text-shadow: 3.896914047650351px 0 1px rgba(0,30,255,0.5), -3.896914047650351px 0 1px rgba(255,0,80,0.3), 0 0 3px;
  }
  40% {
    text-shadow: 3.870905614848819px 0 1px rgba(0,30,255,0.5), -3.870905614848819px 0 1px rgba(255,0,80,0.3), 0 0 3px;
  }
  45% {
    text-shadow: 2.231056963361899px 0 1px rgba(0,30,255,0.5), -2.231056963361899px 0 1px rgba(255,0,80,0.3), 0 0 3px;
  }
  50% {
    text-shadow: 0.08084290417898504px 0 1px rgba(0,30,255,0.5), -0.08084290417898504px 0 1px rgba(255,0,80,0.3), 0 0 3px;
  }
  55% {
    text-shadow: 2.3758461067427543px 0 1px rgba(0,30,255,0.5), -2.3758461067427543px 0 1px rgba(255,0,80,0.3), 0 0 3px;
  }
  60% {
    text-shadow: 2.202193051050636px 0 1px rgba(0,30,255,0.5), -2.202193051050636px 0 1px rgba(255,0,80,0.3), 0 0 3px;
  }
  65% {
    text-shadow: 2.8638780614874975px 0 1px rgba(0,30,255,0.5), -2.8638780614874975px 0 1px rgba(255,0,80,0.3), 0 0 3px;
  }
  70% {
    text-shadow: 0.48874025155497314px 0 1px rgba(0,30,255,0.5), -0.48874025155497314px 0 1px rgba(255,0,80,0.3), 0 0 3px;
  }
  75% {
    text-shadow: 1.8948491305757957px 0 1px rgba(0,30,255,0.5), -1.8948491305757957px 0 1px rgba(255,0,80,0.3), 0 0 3px;
  }
  80% {
    text-shadow: 0.0833037308038857px 0 1px rgba(0,30,255,0.5), -0.0833037308038857px 0 1px rgba(255,0,80,0.3), 0 0 3px;
  }
  85% {
    text-shadow: 0.09769827255241735px 0 1px rgba(0,30,255,0.5), -0.09769827255241735px 0 1px rgba(255,0,80,0.3), 0 0 3px;
  }
  90% {
    text-shadow: 3.443339761481782px 0 1px rgba(0,30,255,0.5), -3.443339761481782px 0 1px rgba(255,0,80,0.3), 0 0 3px;
  }
  95% {
    text-shadow: 2.1841838852799786px 0 1px rgba(0,30,255,0.5), -2.1841838852799786px 0 1px rgba(255,0,80,0.3), 0 0 3px;
  }
  100% {
    text-shadow: 2.6208764473832513px 0 1px rgba(0,30,255,0.5), -2.6208764473832513px 0 1px rgba(255,0,80,0.3), 0 0 3px;
  }
}
.crt {
  animation: textShadow 1.6s infinite;
}
