/*==================================================
        NYKO PORTFOLIO - DARK WORLD
                STYLE.CSS
                PARTE 1 / 4
==================================================*/

/*==============================
        GOOGLE FONT
==============================*/

@import url('https://fonts.googleapis.com/css2?family=VT323&display=swap');

/*==============================
        VARIABLES
==============================*/

:root{

    --bg:#040404;
    --panel:#090909;
    --panel2:#0e0e0e;

    --border:#d7d7d7;
    --border-dark:#777;

    --text:#eeeeee;
    --gray:#9a9a9a;

    --red:#ff2d2d;
    --red2:#c30000;
    --redGlow:#ff0000;

    --shadow:
        0 0 8px rgba(255,0,0,.18),
        0 0 20px rgba(255,0,0,.08);

    --transition:.25s;

}


/*==============================
            RESET
==============================*/

*{

    margin:0;
    padding:0;
    box-sizing:border-box;

}

html{

    scroll-behavior:smooth;

}

body{

    background:var(--bg);

    color:var(--text);

    font-family:'VT323', monospace;

    overflow-x:hidden;

}


/*==============================
        SCROLLBAR
==============================*/

::-webkit-scrollbar{

    width:10px;

}

::-webkit-scrollbar-track{

    background:#000;

}

::-webkit-scrollbar-thumb{

    background:var(--red);

}

::-webkit-scrollbar-thumb:hover{

    background:#ff4d4d;

}


/*==============================
        BACKGROUND
==============================*/

body::before{

    content:"";

    position:fixed;

    inset:0;

    background:

    radial-gradient(circle at 50% 50%,
    rgba(255,0,0,.09),
    transparent 65%),

    radial-gradient(circle at top,
    rgba(255,0,0,.05),
    transparent 50%),

    linear-gradient(#000,#050505);

    z-index:-5;

}


/*==============================
        RED LIGHT
==============================*/

body::after{

    content:"";

    position:fixed;

    inset:0;

    background:

    radial-gradient(circle,
    rgba(255,0,0,.05),
    transparent 70%);

    animation:ambientGlow 6s ease-in-out infinite;

    z-index:-4;

}


/*==============================
        CRT SCANLINES
==============================*/

.scanlines{

    position:fixed;

    inset:0;

    pointer-events:none;

    background:

    repeating-linear-gradient(

        to bottom,

        rgba(255,255,255,.02),

        rgba(255,255,255,.02) 1px,

        transparent 2px,

        transparent 4px

    );

    opacity:.25;

    animation:scanMove .7s linear infinite;

    z-index:999;

}


/*==============================
        PIXEL PARTICLES
==============================*/

.particles{

    position:fixed;

    inset:0;

    overflow:hidden;

    pointer-events:none;

    z-index:-2;

}

.particles span{

    position:absolute;

    width:6px;
    height:6px;

    background:var(--red);

    box-shadow:
        0 0 12px red;

    animation:floatPixel linear infinite;

}


/*==============================
        MAIN WRAPPER
==============================*/

.wrapper{

    width:min(1350px,90%);

    margin:18px auto;

}


/*==============================
        PLAYER INFO
==============================*/

.player{

    display:flex;

    align-items:center;

    gap:20px;

}

.player h1{

    font-size:34px;

    letter-spacing:2px;

}

.player span{

    color:var(--red);

}




/*==============================
        WORLD TITLE
==============================*/

.world{

    font-size:30px;

    letter-spacing:2px;

    color:white;

}


/*==============================
        GRID LAYOUT
==============================*/

.layout{

    display:grid;

    grid-template-columns:
        240px
        minmax(0,1fr);

    gap:18px;

    align-items:start;

}


/*==============================
        PIXEL PANEL
==============================*/

.panel{

    padding:12px;

}


/*==============================
        INNER BORDER
==============================*/

.panel::before{

    content:"";

    position:absolute;

    inset:7px;

    border:1px solid rgba(255,255,255,.18);

    pointer-events:none;

}


/*==============================
        PANEL HOVER
==============================*/

.panel:hover{

    border-color:var(--red);

    box-shadow:

    0 0 12px rgba(255,0,0,.45),

    0 0 35px rgba(255,0,0,.15);

}


/*==============================
            TITLES
==============================*/

.title{

    font-size:46px;

    color:white;

    margin-bottom:20px;

    letter-spacing:2px;

}

.title span{

    color:var(--red);

    text-shadow:

        0 0 12px red;

}


/*==============================
            TEXT
==============================*/

p{

    font-size:31px;

    line-height:1.45;

    color:#dddddd;

}

a{

    color:white;

    text-decoration:none;

}


/*==============================
        BUTTON BASE
==============================*/

.btn{

    display:inline-flex;

    justify-content:center;

    align-items:center;

    padding:

        12px
        26px;

    border:2px solid white;

    background:#090909;

    color:white;

    font-size:28px;

    transition:.25s;

}

.btn:hover{

    color:var(--red);

    border-color:var(--red);

    box-shadow:

    0 0 12px rgba(255,0,0,.4);

}


/*==============================
        SECTIONS
==============================*/

section{

    margin-bottom:24px;

}


/*==============================
        ANIMATIONS
==============================*/

@keyframes ambientGlow{

    0%{

        opacity:.45;

    }

    50%{

        opacity:1;

    }

    100%{

        opacity:.45;

    }

}

@keyframes hpGlow{

    0%{

        filter:brightness(.9);

    }

    50%{

        filter:brightness(1.25);

    }

    100%{

        filter:brightness(.9);

    }

}

@keyframes scanMove{

    from{

        transform:translateY(0);

    }

    to{

        transform:translateY(4px);

    }

}

@keyframes floatPixel{

    from{

        transform:translateY(105vh);

        opacity:0;

    }

    15%{

        opacity:1;

    }

    90%{

        opacity:1;

    }

    to{

        transform:translateY(-20vh);

        opacity:0;

    }

}


/*==============================
        RESPONSIVE BASE
==============================*/

@media(max-width:1100px){

    .layout{

        grid-template-columns:1fr;

    }

    .topbar{

        flex-direction:column;

        height:auto;

        gap:10px;

        padding:18px;

    }

}

/*==================================================
        NYKO PORTFOLIO - DARK WORLD
                STYLE.CSS
                PARTE 2 / 4
==================================================*/


/*=========================================
            SIDEBAR
=========================================*/

.sidebar{

    width:240px;

    display:flex;
    flex-direction:column;

    gap:12px;

    position:sticky;

    top:12px;

    align-self:start;

    height:max-content;

}

/*=========================================
            SPRITE PANEL
=========================================*/

.sprite-panel{

    text-align:center;

}

.sprite{

    width:120px;

}

.sprite:hover{

    transform:scale(1.06);

    filter:

        drop-shadow(0 0 15px red);

}


/*=========================================
        PIXEL FRAME
=========================================*/

.pixel-frame{

    position:relative;

    border:3px solid white;

    padding:18px;

    background:#070707;

}

.pixel-frame::before{

    content:"";

    position:absolute;

    inset:8px;

    border:1px solid rgba(255,255,255,.18);

}


/*=========================================
            MENU
=========================================*/

.menu{

    list-style:none;

    display:flex;

    flex-direction:column;

    gap:6px;

}


.menu li{

    position:relative;

}


.menu a{

    font-size:25px;

    padding:6px 10px;

    gap:8px;

}

.menu a:hover{

    padding-left:18px;

}


.menu a:hover::before{

    color:var(--red);

}


.menu .active{

    color:var(--red);

}


.menu .active::before{

    color:var(--red);

}


/*=========================================
        HEART SELECTOR
=========================================*/

.selector{

    position:absolute;

    left:0;

    width:16px;

    height:16px;

    background:red;

    animation:

        selectorBeat
        .8s
        infinite;

}


/*=========================================
        PLAYER CARD
=========================================*/

.player-card{

    display:flex;

    flex-direction:column;

    gap:10px;

}


.player-name{
    font-size:30px;
}

.player-level{
    font-size:20px;
}


/*=========================================
            STATS
=========================================*/

.stats{

    display:flex;

    flex-direction:column;

    gap:15px;

}


.stat{

    font-size:21px;

}


.stat-name{

    color:#ddd;

}


.stat-value{

    color:var(--red);

}


/*=========================================
        PIXEL BAR
=========================================*/

.pixel-bar{

    height:10px;

}


.pixel-fill{

    width:90%;

    height:100%;

    background:

        repeating-linear-gradient(

        90deg,

        var(--red),

        var(--red) 8px,

        #ff5757 8px,

        #ff5757 16px

    );

}


/*=========================================
        EXP
=========================================*/

.exp{

    margin-top:10px;

}


.exp-text{

    font-size:18px;

}


/*=========================================
            SOUL PANEL
=========================================*/

.soul{

    display:flex;

    justify-content:center;

    align-items:center;

    flex-direction:column;

    gap:15px;

}


.soul-heart{

    font-size:35px;

}

.soul-title{

    font-size:25px;

}

.soul-type{

    font-size:20px;

}


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

.location{

    display:flex;

    flex-direction:column;

    gap:15px;

}


.location-row{

    display:flex;

    justify-content:space-between;

    align-items:center;

    font-size:27px;

}


.location-map{

    width:90px;

    image-rendering:pixelated;

    filter:

        drop-shadow(0 0 10px red);

}


/*=========================================
            CLOCK
=========================================*/

.clock{

    text-align:center;

}


.clock-time{

    font-size:28px;

}

.clock-date{

    font-size:17px;

}

/*=========================================
        BADGES
=========================================*/

.badges{

    display:grid;

    grid-template-columns:

        repeat(2,1fr);

    gap:10px;

}


.badge{

    text-align:center;

    border:2px solid #444;

    padding:12px;

    transition:.25s;

}


.badge:hover{

    border-color:red;

    box-shadow:

        0 0 12px rgba(255,0,0,.35);

}


.badge img{

    width:46px;

    image-rendering:pixelated;

}


.badge p{

    font-size:24px;

}


/*=========================================
        SOCIAL MINI
=========================================*/

.social-mini{

    display:flex;

    justify-content:center;

    gap:15px;

}


.social-mini a{

    width:34px;

    height:34px;

    font-size:17px;

}


.social-mini a:hover{

    border-color:red;

    color:red;

    transform:translateY(-3px);

}


/*=========================================
        PANEL TITLE
=========================================*/

.panel-title{

    font-size:25px;

    margin-bottom:10px;

}


.panel-title span{

    color:red;

}


/*=========================================
        HOVER EFFECT
=========================================*/

.sidebar .panel{

    transition:

        transform .25s,

        border-color .25s,

        box-shadow .25s;

}


.sidebar .panel:hover{

    transform:

        translateY(-4px);

}


/*=========================================
        ANIMATIONS
=========================================*/

@keyframes heartbeat{

    0%{

        transform:scale(1);

    }

    50%{

        transform:scale(1.18);

    }

    100%{

        transform:scale(1);

    }

}


@keyframes selectorBeat{

    0%{

        transform:scale(1);

    }

    50%{

        transform:scale(1.25);

    }

    100%{

        transform:scale(1);

    }

}

/*==================================================
        NYKO PORTFOLIO - DARK WORLD
                STYLE.CSS
                PARTE 3 / 4
==================================================*/


/*=========================================
            MAIN CONTENT
=========================================*/

.content{

    min-width:0;

    display:flex;
    flex-direction:column;

    gap:22px;

}


/*=========================================
                HERO
=========================================*/

.hero{

    margin-top:0;

}


/*=========================================
        HERO RED LIGHT
=========================================*/

.hero::after{

    content:"";

    position:absolute;

    width:420px;
    height:420px;

    right:-80px;
    top:50%;

    transform:translateY(-50%);

    background:

        radial-gradient(
            circle,
            rgba(255,0,0,.22),
            rgba(255,0,0,.08) 34%,
            transparent 70%
        );

    filter:blur(6px);

    z-index:-1;

    animation:heroLight 4s ease-in-out infinite;

}


/*=========================================
        HERO DECORATIVE HEART
=========================================*/
.hero-character{

    position:absolute;

    right:-10px;
    bottom:0;
    top:10;

    width:340px;

    display:flex;
    justify-content:center;
    align-items:flex-end;

    pointer-events:none;

    z-index:1;

}

.hero-character img{

    width:100%;

    image-rendering:pixelated;

    filter:
        drop-shadow(10px 0 0 rgba(120,0,0,.7))
        drop-shadow(0 0 25px rgba(255,0,0,.5));

    animation:heroFloat 4s ease-in-out infinite;

}

/*=========================================
            HERO TEXT
=========================================*/

.hero-text{

    position:relative;

    z-index:2;

}


.hero-intro{

    font-size:31px;

    margin-bottom:12px;

    color:#f3f3f3;

}


.hero-title{

    font-size:70px;

    line-height:.95;

    margin-bottom:24px;

    letter-spacing:2px;

}


.hero-title span{

    color:var(--red);

    text-shadow:

        4px 0 0 #6d0000,

        0 0 14px rgba(255,0,0,.65);

}


.hero-description{

    max-width:640px;

    margin-bottom:26px;

    font-size:29px;

    color:#d5d5d5;

}


.hero-actions{

    display:flex;

    flex-wrap:wrap;

    gap:14px;

}


/*=========================================
            HERO IMAGE
=========================================*/

.hero-image{

    display:flex;

    justify-content:center;

    align-items:flex-end;

    position:relative;

    min-height:340px;

}


.hero-image img{

    width:min(100%, 520px);

    max-height:390px;

    object-fit:contain;

    image-rendering:pixelated;

    filter:

        drop-shadow(8px 0 0 rgba(120,0,0,.7))

        drop-shadow(0 0 14px rgba(255,0,0,.55));

    animation:heroFloat 4s ease-in-out infinite;

}


/*=========================================
        HERO PIXEL DECORATIONS
=========================================*/

.hero-pixel{

    position:absolute;

    width:9px;
    height:9px;

    background:var(--red);

    box-shadow:

        0 0 9px rgba(255,0,0,.9);

    animation:heroPixelFloat 3s ease-in-out infinite;

}


.hero-pixel:nth-child(1){

    left:10%;
    top:15%;

}


.hero-pixel:nth-child(2){

    right:8%;
    top:26%;

    width:15px;
    height:15px;

    animation-delay:.8s;

}


.hero-pixel:nth-child(3){

    left:20%;
    bottom:16%;

    animation-delay:1.4s;

}


.hero-pixel:nth-child(4){

    right:27%;
    bottom:12%;

    width:6px;
    height:6px;

    animation-delay:2s;

}


/*=========================================
        SECTION HEADER
=========================================*/

.section-header{

    display:flex;

    align-items:center;

    justify-content:center;

    gap:18px;

    margin-bottom:22px;

    text-align:center;

}


.section-header::before,
.section-header::after{

    content:"";

    flex:1;

    height:2px;

    background:

        linear-gradient(
            90deg,
            transparent,
            #555,
            white
        );

}


.section-header::after{

    background:

        linear-gradient(
            90deg,
            white,
            #555,
            transparent
        );

}


.section-header h2{

    font-size:42px;

    letter-spacing:3px;

    white-space:nowrap;

}


.section-symbol{

    color:var(--red);

    font-size:24px;

    animation:heartbeat 1s infinite;

}


/*=========================================
            ABOUT SECTION
=========================================*/

.about-grid{

    display:grid;

    grid-template-columns:

        repeat(6, 1fr);

    gap:14px;

}


.about-card{

    position:relative;

    min-height:195px;

    border:2px solid transparent;

    padding:20px 12px;

    text-align:center;

    background:

        linear-gradient(#090909,#090909)
        padding-box,

        linear-gradient(
            135deg,
            #444,
            #fff,
            #333
        )
        border-box;

    transition:

        transform .25s,

        box-shadow .25s,

        background .25s;

}


.about-card:hover{

    transform:translateY(-7px);

    background:

        linear-gradient(#0c0606,#0c0606)
        padding-box,

        linear-gradient(
            135deg,
            #fff,
            var(--red),
            #7d0000
        )
        border-box;

    box-shadow:

        0 0 15px rgba(255,0,0,.28);

}


.about-icon{

    min-height:68px;

    display:flex;

    justify-content:center;

    align-items:center;

    margin-bottom:10px;

    font-size:48px;

    color:var(--red);

    filter:

        drop-shadow(0 0 6px rgba(255,0,0,.5));

}


.about-icon img{

    width:55px;
    height:55px;

    object-fit:contain;

    image-rendering:pixelated;

}


.about-card h3{

    font-size:28px;

    margin-bottom:8px;

    color:#fff;

}


.about-card p{

    font-size:22px;

    line-height:1.35;

    color:#cfcfcf;

}


/*=========================================
            TWO COLUMN ROW
=========================================*/

.double-section{

    display:grid;

    grid-template-columns:

        minmax(0, .95fr)
        minmax(0, 1.45fr);

    gap:22px;

}


/*=========================================
            FOOTBALL SECTION
=========================================*/

.football{

    min-height:460px;

}


.favorite-player{

    text-align:center;

    margin-bottom:18px;

}


.favorite-player p{

    font-size:26px;

}


.favorite-player h3{

    color:var(--red);

    font-size:39px;

    margin-top:4px;

    text-shadow:

        0 0 10px rgba(255,0,0,.45);

}


.player-gallery{

    display:grid;

    grid-template-columns:

        repeat(3, 1fr);

    gap:8px;

    margin:18px 0;

}


.player-photo{

    position:relative;

    aspect-ratio:1 / 1;

    overflow:hidden;

    border:2px solid white;

    background:#111;

    transition:.25s;

}


.player-photo::before{

    content:"";

    position:absolute;

    inset:4px;

    border:1px solid rgba(255,255,255,.3);

    z-index:2;

    pointer-events:none;

}


.player-photo:hover{

    transform:translateY(-5px);

    border-color:var(--red);

    box-shadow:

        0 0 14px rgba(255,0,0,.45);

}


.player-photo img{

    width:100%;
    height:100%;

    object-fit:cover;

    transition:.3s;

}


.player-photo:hover img{

    transform:scale(1.08);

}


.football-description{

    font-size:23px;

    line-height:1.45;

    margin-bottom:18px;

    color:#d0d0d0;

}


/*=========================================
            MUSIC SECTION
=========================================*/

.music{

    min-height:460px;

}


.playlist-header{

    display:flex;

    justify-content:space-between;

    align-items:center;

    margin-bottom:12px;

    padding-bottom:10px;

    border-bottom:1px solid #555;

}


.playlist-header h3{

    font-size:29px;

}


.playlist-count{

    font-size:23px;

    color:#aaa;

}


.playlist{

    display:flex;

    flex-direction:column;

    border:2px solid #444;

    background:#050505;

}


.song{

    min-height:55px;

    display:grid;

    grid-template-columns:

        46px
        minmax(0, 1fr)
        auto
        30px
        38px;

    align-items:center;

    gap:10px;

    padding:6px 8px;

    border-bottom:1px solid #393939;

    transition:.2s;

}


.song:last-child{

    border-bottom:none;

}


.song:hover{

    background:#160606;

    padding-left:13px;

}


.song-cover{

    width:42px;
    height:42px;

    object-fit:cover;

    image-rendering:pixelated;

    border:1px solid #666;

}


.song-data{

    min-width:0;

}


.song-title{

    display:block;

    font-size:23px;

    color:#fff;

    overflow:hidden;

    white-space:nowrap;

    text-overflow:ellipsis;

}


.song-artist{

    display:block;

    font-size:18px;

    color:#aaa;

    overflow:hidden;

    white-space:nowrap;

    text-overflow:ellipsis;

}


.song-time{

    font-size:19px;

    color:#ddd;

}


.song-heart{

    color:var(--red);

    font-size:20px;

    animation:smallHeart 1.5s infinite;

}


.song-play{

    width:31px;
    height:31px;

    border:2px solid white;

    background:#070707;

    color:#fff;

    display:flex;

    justify-content:center;

    align-items:center;

    cursor:pointer;

    font-family:inherit;

    font-size:18px;

    transition:.2s;

}


.song-play:hover{

    background:var(--red);

    border-color:var(--red);

    color:#000;

}


.playlist-footer{

    display:flex;

    justify-content:center;

    margin-top:14px;

}


.playlist-link{

    font-size:24px;

    transition:.2s;

}


.playlist-link::after{

    content:" ▶";

    color:var(--red);

}


.playlist-link:hover{

    color:var(--red);

}


/*=========================================
            WORKS AND PROJECTS
=========================================*/

.works-projects{

    display:grid;

    grid-template-columns:

        repeat(2, minmax(0, 1fr));

    gap:22px;

}


.list-panel{

    display:flex;

    flex-direction:column;

}


.item-list{

    display:flex;

    flex-direction:column;

}


.list-item{

    display:grid;

    grid-template-columns:

        55px
        minmax(0, 1fr)
        auto;

    align-items:center;

    gap:14px;

    padding:14px 8px;

    border-bottom:1px solid #444;

    transition:.25s;

}


.list-item:last-child{

    border-bottom:none;

}


.list-item:hover{

    background:rgba(255,0,0,.055);

    padding-left:14px;

}


.item-icon{

    width:48px;
    height:48px;

    display:flex;

    justify-content:center;

    align-items:center;

    border:2px solid var(--red);

    color:var(--red);

    font-size:29px;

    image-rendering:pixelated;

}


.item-icon img{

    width:44px;
    height:44px;

    object-fit:contain;

    image-rendering:pixelated;

}


.item-info{

    min-width:0;

}


.item-info h3{

    font-size:27px;

    margin-bottom:3px;

    color:white;

}


.item-info p{

    font-size:21px;

    line-height:1.25;

    color:#c4c4c4;

}


.item-button{

    padding:8px 16px;

    border:2px solid white;

    background:#080808;

    font-family:inherit;

    font-size:21px;

    color:white;

    cursor:pointer;

    white-space:nowrap;

    transition:.2s;

}


.item-button:hover{

    border-color:var(--red);

    color:var(--red);

    box-shadow:

        0 0 10px rgba(255,0,0,.3);

}


/*=========================================
        PROJECT COLOR VARIANTS
=========================================*/

.project-purple .item-icon{

    border:none;

    color:#a45cff;

}


.project-blue .item-icon{

    border:none;

    color:#5dcfff;

}


.project-red .item-icon{

    border:none;

    color:var(--red);

}


/*=========================================
        REVEAL ANIMATION BASE
=========================================*/

.reveal{

    opacity:0;

    transform:translateY(24px);

    transition:

        opacity .7s ease,

        transform .7s ease;

}


.reveal.visible{

    opacity:1;

    transform:translateY(0);

}


/*=========================================
            ANIMATIONS
=========================================*/

@keyframes heroFloat{

    0%,
    100%{

        transform:translateY(0);

    }

    50%{

        transform:translateY(-10px);

    }

}


@keyframes heroLight{

    0%,
    100%{

        opacity:.55;

        transform:
            translateY(-50%)
            scale(.94);

    }

    50%{

        opacity:1;

        transform:
            translateY(-50%)
            scale(1.08);

    }

}


@keyframes heroHeartBeat{

    0%,
    100%{

        transform:
            translateY(-50%)
            scale(1);

    }

    50%{

        transform:
            translateY(-50%)
            scale(1.07);

    }

}


@keyframes heroPixelFloat{

    0%,
    100%{

        transform:translateY(0);

        opacity:.4;

    }

    50%{

        transform:translateY(-12px);

        opacity:1;

    }

}


@keyframes smallHeart{

    0%,
    100%{

        transform:scale(1);

    }

    50%{

        transform:scale(1.18);

    }

}


/*=========================================
        TABLET RESPONSIVE
=========================================*/

@media(max-width:1350px){

    .about-grid{

        grid-template-columns:

            repeat(3, 1fr);

    }


    .double-section{

        grid-template-columns:1fr;

    }

}


/*=========================================
        SMALL TABLET RESPONSIVE
=========================================*/

@media(max-width:900px){

    .hero{

        grid-template-columns:1fr;

        text-align:center;

    }


    .hero-description{

        margin-left:auto;

        margin-right:auto;

    }


    .hero-actions{

        justify-content:center;

    }


    .hero-image{

        order:-1;

        min-height:240px;

    }


    .hero-image img{

        max-height:300px;

    }


    .works-projects{

        grid-template-columns:1fr;

    }

}


/*=========================================
            MOBILE
=========================================*/

@media(max-width:650px){

    .hero{

        padding:24px 16px;

    }


    .hero-title{

        font-size:52px;

    }


    .hero-intro{

        font-size:25px;

    }


    .hero-description{

        font-size:24px;

    }


    .about-grid{

        grid-template-columns:

            repeat(2, 1fr);

    }


    .about-card{

        min-height:175px;

        padding:17px 9px;

    }


    .about-card p{

        font-size:19px;

    }


    .player-gallery{

        grid-template-columns:

            repeat(3, minmax(0,1fr));

    }


    .song{

        grid-template-columns:

            42px
            minmax(0,1fr)
            auto
            30px;

    }


    .song-heart{

        display:none;

    }


    .list-item{

        grid-template-columns:

            48px
            minmax(0,1fr);

    }


    .item-button{

        grid-column:1 / -1;

        width:100%;

    }


    .section-header h2{

        font-size:34px;

    }

}


/*=========================================
        VERY SMALL MOBILE
=========================================*/

@media(max-width:430px){

    .about-grid{

        grid-template-columns:1fr;

    }


    .hero-title{

        font-size:44px;

    }


    .song-time{

        display:none;

    }


    .song{

        grid-template-columns:

            42px
            minmax(0,1fr)
            32px;

    }

}

/*==================================================
        NYKO PORTFOLIO - DARK WORLD
                STYLE.CSS
                PARTE 4 / 4
==================================================*/


/*=========================================
            TECHNOLOGIES
=========================================*/

.technologies-panel{

    padding:26px;

}


.technologies-description{

    max-width:850px;

    margin:

        -5px auto
        28px;

    text-align:center;

    font-size:25px;

    color:#bdbdbd;

}


.technologies-grid{

    display:grid;

    grid-template-columns:

        repeat(4, minmax(0, 1fr));

    gap:14px;

}


.technology-card{

    position:relative;

    min-height:145px;

    display:flex;

    flex-direction:column;

    justify-content:center;

    align-items:center;

    gap:11px;

    padding:18px;

    overflow:hidden;

    border:2px solid #555;

    background:

        linear-gradient(
            145deg,
            #0c0c0c,
            #050505
        );

    text-align:center;

    transition:

        transform .25s ease,

        border-color .25s ease,

        box-shadow .25s ease;

}


.technology-card::before{

    content:"";

    position:absolute;

    width:110px;
    height:110px;

    left:50%;
    top:50%;

    transform:

        translate(-50%, -50%)
        scale(.5);

    background:

        radial-gradient(
            circle,
            rgba(255,0,0,.22),
            transparent 67%
        );

    opacity:0;

    transition:

        opacity .25s,

        transform .25s;

}


.technology-card::after{

    content:"";

    position:absolute;

    left:0;
    bottom:0;

    width:0;
    height:3px;

    background:var(--red);

    box-shadow:

        0 0 10px var(--red);

    transition:width .3s ease;

}


.technology-card:hover{

    transform:

        translateY(-7px);

    border-color:var(--red);

    box-shadow:

        0 0 16px rgba(255,0,0,.28),

        inset 0 0 20px rgba(255,0,0,.04);

}


.technology-card:hover::before{

    opacity:1;

    transform:

        translate(-50%, -50%)
        scale(1.35);

}


.technology-card:hover::after{

    width:100%;

}


.technology-icon{

    position:relative;

    z-index:2;

    width:62px;
    height:62px;

    display:flex;

    justify-content:center;

    align-items:center;

    color:var(--red);

    font-size:51px;

    transition:

        transform .25s,

        filter .25s;

}


.technology-icon img{

    width:100%;
    height:100%;

    object-fit:contain;

    image-rendering:pixelated;

}


.technology-card:hover .technology-icon{

    transform:

        translateY(-4px)
        scale(1.08);

    filter:

        drop-shadow(
            0 0 8px
            rgba(255,0,0,.75)
        );

}


.technology-card h3{

    position:relative;

    z-index:2;

    color:white;

    font-size:28px;

    letter-spacing:1px;

}


.technology-card p{

    position:relative;

    z-index:2;

    font-size:20px;

    line-height:1.25;

    color:#aaa;

}


/*=========================================
            LANGUAGE SECTION
=========================================*/

.languages-grid{

    display:grid;

    grid-template-columns:

        repeat(2, minmax(0, 1fr));

    gap:18px;

}


.language-card{

    position:relative;

    padding:22px;

    border:2px solid #555;

    background:#080808;

    transition:

        border-color .25s,

        transform .25s,

        box-shadow .25s;

}


.language-card:hover{

    transform:translateY(-5px);

    border-color:var(--red);

    box-shadow:

        0 0 14px rgba(255,0,0,.25);

}


.language-header{

    display:flex;

    justify-content:space-between;

    align-items:center;

    gap:16px;

    margin-bottom:12px;

}


.language-name{

    display:flex;

    align-items:center;

    gap:12px;

}


.language-flag{

    font-size:36px;

}


.language-name h3{

    font-size:32px;

    color:white;

}


.language-level{

    color:var(--red);

    font-size:27px;

}


.language-card p{

    min-height:65px;

    margin-bottom:17px;

    font-size:22px;

    color:#bbb;

}


.language-progress{

    width:100%;

    height:19px;

    padding:3px;

    border:2px solid white;

    background:#050505;

}


.language-progress-fill{

    width:var(--language-level, 100%);

    height:100%;

    background:

        repeating-linear-gradient(
            90deg,
            var(--red) 0,
            var(--red) 10px,
            #9d0000 10px,
            #9d0000 13px
        );

    box-shadow:

        0 0 8px rgba(255,0,0,.5);

    transform-origin:left;

    animation:

        languageLoad
        1.4s ease both;

}


/*=========================================
            CONTACT SECTION
=========================================*/

.contact-layout{

    display:grid;

    grid-template-columns:

        minmax(270px, .85fr)
        minmax(0, 1.3fr);

    gap:20px;

}


.contact-message{

    display:flex;

    flex-direction:column;

    justify-content:center;

    align-items:flex-start;

    min-height:320px;

    padding:28px;

}


.contact-heart{

    margin-bottom:12px;

    color:var(--red);

    font-size:64px;

    text-shadow:

        0 0 15px rgba(255,0,0,.8);

    animation:

        heartbeat
        1s infinite;

}


.contact-message h3{

    margin-bottom:14px;

    color:white;

    font-size:38px;

}


.contact-message p{

    max-width:520px;

    font-size:25px;

    color:#c7c7c7;

}


.contact-status{

    display:flex;

    align-items:center;

    gap:10px;

    margin-top:21px;

    color:#bbb;

    font-size:23px;

}


.status-light{

    width:11px;
    height:11px;

    background:#ff2424;

    box-shadow:

        0 0 9px red;

    animation:

        statusBlink
        1.5s infinite;

}


.contact-grid{

    display:grid;

    grid-template-columns:

        repeat(2, minmax(0, 1fr));

    gap:13px;

}


.contact-card{

    position:relative;

    min-height:150px;

    display:grid;

    grid-template-columns:

        50px
        minmax(0, 1fr);

    align-items:center;

    gap:14px;

    padding:18px;

    overflow:hidden;

    border:2px solid #555;

    background:#070707;

    transition:

        transform .25s,

        border-color .25s,

        box-shadow .25s;

}


.contact-card::before{

    content:"";

    position:absolute;

    width:90px;
    height:90px;

    right:-45px;
    bottom:-45px;

    background:

        rgba(255,0,0,.07);

    transform:rotate(45deg);

    transition:

        width .3s,

        height .3s,

        opacity .3s;

}


.contact-card:hover{

    transform:

        translateY(-5px);

    border-color:var(--red);

    box-shadow:

        0 0 14px rgba(255,0,0,.25);

}


.contact-card:hover::before{

    width:145px;
    height:145px;

    opacity:1;

}


.contact-icon{

    position:relative;

    z-index:2;

    width:48px;
    height:48px;

    display:flex;

    justify-content:center;

    align-items:center;

    border:2px solid var(--red);

    color:var(--red);

    font-size:28px;

}


.contact-icon img{

    width:34px;
    height:34px;

    object-fit:contain;

    image-rendering:pixelated;

}


.contact-information{

    position:relative;

    z-index:2;

    min-width:0;

}


.contact-information h3{

    margin-bottom:5px;

    color:white;

    font-size:27px;

}


.contact-information p{

    margin-bottom:7px;

    color:#aaa;

    font-size:19px;

    line-height:1.2;

}


.contact-link{

    display:inline-flex;

    align-items:center;

    gap:7px;

    color:#eee;

    font-size:21px;

    transition:

        color .2s,

        transform .2s;

}


.contact-link::before{

    content:">";

    color:var(--red);

}


.contact-link:hover{

    color:var(--red);

    transform:translateX(4px);

}


/*=========================================
            DIALOGUE BOX
=========================================*/

.dialogue-box{

    position:relative;

    min-height:140px;

    display:grid;

    grid-template-columns:

        90px
        minmax(0, 1fr);

    gap:18px;

    align-items:center;

    padding:21px;

    border:4px solid white;

    background:#000;

    box-shadow:

        0 0 20px rgba(255,0,0,.14);

}


.dialogue-portrait{

    width:90px;
    height:90px;

    display:flex;

    justify-content:center;

    align-items:center;

    border:2px solid #777;

    background:#0b0b0b;

    overflow:hidden;

}


.dialogue-portrait img{

    width:100%;
    height:100%;

    object-fit:contain;

    image-rendering:pixelated;

}


.dialogue-content{

    min-width:0;

}


.dialogue-name{

    margin-bottom:4px;

    color:var(--red);

    font-size:25px;

}


.dialogue-text{

    color:white;

    font-size:27px;

    line-height:1.3;

}


.dialogue-text::before{

    content:"* ";

    color:white;

}


.dialogue-next{

    position:absolute;

    right:16px;
    bottom:9px;

    color:var(--red);

    font-size:23px;

    animation:

        dialogueArrow
        .75s infinite;

}


/*=========================================
            FOOTER
=========================================*/

.footer{

    position:relative;

    padding:

        34px
        20px;

    margin-top:4px;

    overflow:hidden;

    border:3px solid white;

    background:#030303;

    text-align:center;

    box-shadow:var(--shadow);

}


.footer::before{

    content:"";

    position:absolute;

    width:460px;
    height:140px;

    left:50%;
    bottom:-105px;

    transform:translateX(-50%);

    background:

        radial-gradient(
            ellipse,
            rgba(255,0,0,.24),
            transparent 70%
        );

    pointer-events:none;

}


.footer-logo{

    position:relative;

    z-index:2;

    color:white;

    font-size:48px;

    letter-spacing:5px;

}


.footer-logo span{

    color:var(--red);

    text-shadow:

        0 0 10px red;

}


.footer-quote{

    position:relative;

    z-index:2;

    margin-top:9px;

    color:#ddd;

    font-size:27px;

}


.footer-roles{

    position:relative;

    z-index:2;

    margin-top:10px;

    color:#999;

    font-size:22px;

}


.footer-links{

    position:relative;

    z-index:2;

    display:flex;

    justify-content:center;

    flex-wrap:wrap;

    gap:19px;

    margin-top:20px;

}


.footer-links a{

    font-size:23px;

    color:#ddd;

    transition:

        color .2s,

        transform .2s;

}


.footer-links a::before{

    content:"♥ ";

    color:var(--red);

}


.footer-links a:hover{

    color:var(--red);

    transform:translateY(-3px);

}


.footer-copyright{

    position:relative;

    z-index:2;

    margin-top:22px;

    color:#666;

    font-size:20px;

}


/*=========================================
            BACK TO TOP
=========================================*/

.back-to-top{

    position:fixed;

    right:24px;
    bottom:24px;

    width:48px;
    height:48px;

    display:flex;

    justify-content:center;

    align-items:center;

    border:3px solid white;

    background:#050505;

    color:var(--red);

    font-family:inherit;

    font-size:28px;

    cursor:pointer;

    opacity:0;

    visibility:hidden;

    transform:translateY(15px);

    transition:

        opacity .25s,

        visibility .25s,

        transform .25s,

        border-color .25s,

        box-shadow .25s;

    z-index:700;

}


.back-to-top.visible{

    opacity:1;

    visibility:visible;

    transform:translateY(0);

}


.back-to-top:hover{

    border-color:var(--red);

    box-shadow:

        0 0 13px rgba(255,0,0,.5);

}


/*=========================================
            CUSTOM CURSOR
=========================================*/

.cursor-heart{

    position:fixed;

    left:0;
    top:0;

    color:var(--red);

    font-size:17px;

    pointer-events:none;

    opacity:0;

    transform:

        translate(-50%, -50%);

    text-shadow:

        0 0 7px red;

    transition:

        opacity .2s;

    z-index:2000;

}


.cursor-heart.active{

    opacity:1;

}


/*=========================================
            IMAGE MODAL
=========================================*/

.modal{

    position:fixed;

    inset:0;

    display:flex;

    justify-content:center;

    align-items:center;

    padding:22px;

    background:

        rgba(0,0,0,.92);

    opacity:0;

    visibility:hidden;

    transition:

        opacity .25s,

        visibility .25s;

    z-index:1500;

}


.modal.open{

    opacity:1;

    visibility:visible;

}


.modal-content{

    position:relative;

    width:min(900px, 95%);

    max-height:90vh;

    padding:12px;

    border:3px solid white;

    background:#050505;

    box-shadow:

        0 0 28px rgba(255,0,0,.28);

    transform:scale(.9);

    transition:

        transform .25s;

}


.modal.open .modal-content{

    transform:scale(1);

}


.modal-content img{

    display:block;

    width:100%;

    max-height:80vh;

    object-fit:contain;

    image-rendering:pixelated;

}


.modal-close{

    position:absolute;

    right:-13px;
    top:-13px;

    width:38px;
    height:38px;

    display:flex;

    justify-content:center;

    align-items:center;

    border:2px solid white;

    background:#000;

    color:var(--red);

    font-family:inherit;

    font-size:26px;

    cursor:pointer;

}


.modal-close:hover{

    background:var(--red);

    color:#000;

}


/*=========================================
            LOADING SCREEN
=========================================*/

.loading-screen{

    position:fixed;

    inset:0;

    display:flex;

    flex-direction:column;

    justify-content:center;

    align-items:center;

    gap:17px;

    background:#000;

    opacity:1;

    visibility:visible;

    transition:

        opacity .7s ease,

        visibility .7s ease;

    z-index:5000;

}


.loading-screen.hidden{

    opacity:0;

    visibility:hidden;

}


.loading-heart{

    color:var(--red);

    font-size:65px;

    text-shadow:

        0 0 17px red;

    animation:

        heartbeat
        .8s infinite;

}


.loading-title{

    color:white;

    font-size:38px;

    letter-spacing:4px;

}


.loading-text{

    color:#888;

    font-size:25px;

}


.loading-bar{

    width:230px;
    height:17px;

    padding:3px;

    border:2px solid white;

    background:black;

}


.loading-fill{

    width:0;
    height:100%;

    background:var(--red);

    box-shadow:

        0 0 9px red;

    animation:

        loadingProgress
        1.8s ease forwards;

}


/*=========================================
            TEXT SELECTION
=========================================*/

::selection{

    color:white;

    background:#9c0000;

}


/*=========================================
            FOCUS ACCESSIBILITY
=========================================*/

a:focus-visible,
button:focus-visible{

    outline:3px solid var(--red);

    outline-offset:4px;

}


/*=========================================
        DISABLE IMAGE DRAG APPEARANCE
=========================================*/

img{

    user-select:none;

    -webkit-user-drag:none;

}


/*=========================================
            ANIMATIONS
=========================================*/

@keyframes languageLoad{

    from{

        transform:scaleX(0);

    }

    to{

        transform:scaleX(1);

    }

}


@keyframes statusBlink{

    0%,
    100%{

        opacity:.35;

    }

    50%{

        opacity:1;

    }

}


@keyframes dialogueArrow{

    0%,
    100%{

        transform:translateY(0);

    }

    50%{

        transform:translateY(5px);

    }

}


@keyframes loadingProgress{

    0%{

        width:0;

    }

    35%{

        width:37%;

    }

    68%{

        width:72%;

    }

    100%{

        width:100%;

    }

}


/*=========================================
        LARGE SCREEN ADJUSTMENTS
=========================================*/

@media(min-width:1700px){

    .wrapper{

        width:1660px;

    }


    .hero{

        min-height:465px;

    }


    .hero-title{

        font-size:78px;

    }

}


/*=========================================
            LAPTOP
=========================================*/

@media(max-width:1250px){

    .technologies-grid{

        grid-template-columns:

            repeat(3, minmax(0, 1fr));

    }


    .contact-layout{

        grid-template-columns:1fr;

    }


    .contact-message{

        min-height:auto;

        align-items:center;

        text-align:center;

    }

}


/*=========================================
            TABLET
=========================================*/

@media(max-width:900px){

    .technologies-grid{

        grid-template-columns:

            repeat(2, minmax(0, 1fr));

    }


    .languages-grid{

        grid-template-columns:1fr;

    }


    .contact-grid{

        grid-template-columns:

            repeat(2, minmax(0, 1fr));

    }


    .dialogue-box{

        grid-template-columns:

            75px
            minmax(0, 1fr);

    }


    .dialogue-portrait{

        width:75px;
        height:75px;

    }

}


/*=========================================
            MOBILE
=========================================*/

@media(max-width:650px){

    body{

        font-size:16px;

    }


    .wrapper{

        width:100%;

        padding:8px;

    }


    .panel{

        padding:15px;

    }


    .technologies-panel{

        padding:18px 13px;

    }


    .technologies-grid{

        grid-template-columns:

            repeat(2, minmax(0, 1fr));

        gap:9px;

    }


    .technology-card{

        min-height:130px;

        padding:13px 8px;

    }


    .technology-icon{

        width:50px;
        height:50px;

        font-size:43px;

    }


    .technology-card h3{

        font-size:24px;

    }


    .technology-card p{

        font-size:17px;

    }


    .language-header{

        align-items:flex-start;

        flex-direction:column;

        gap:4px;

    }


    .contact-grid{

        grid-template-columns:1fr;

    }


    .contact-message{

        padding:20px;

    }


    .contact-message h3{

        font-size:32px;

    }


    .contact-message p{

        font-size:22px;

    }


    .dialogue-box{

        grid-template-columns:1fr;

        text-align:center;

    }


    .dialogue-portrait{

        margin:auto;

    }


    .dialogue-text{

        font-size:24px;

        text-align:left;

    }


    .footer{

        padding:

            27px
            14px;

    }


    .footer-logo{

        font-size:40px;

    }


    .footer-quote{

        font-size:23px;

    }


    .footer-roles{

        font-size:19px;

    }


    .back-to-top{

        right:13px;
        bottom:13px;

        width:43px;
        height:43px;

    }


    .cursor-heart{

        display:none;

    }

}


/*=========================================
        VERY SMALL MOBILE
=========================================*/

@media(max-width:430px){

    .technologies-grid{

        grid-template-columns:1fr;

    }


    .technology-card{

        min-height:120px;

    }


    .contact-card{

        min-height:135px;

    }


    .language-card{

        padding:17px;

    }


    .footer-links{

        flex-direction:column;

        gap:8px;

    }

}


/*=========================================
        TOUCH DEVICES
=========================================*/

@media(hover:none){

    .panel:hover,
    .about-card:hover,
    .technology-card:hover,
    .contact-card:hover,
    .language-card:hover,
    .player-photo:hover{

        transform:none;

    }


    .cursor-heart{

        display:none;

    }

}


/*=========================================
        REDUCED MOTION
=========================================*/

@media(prefers-reduced-motion:reduce){

    html{

        scroll-behavior:auto;

    }


    *,
    *::before,
    *::after{

        animation-duration:.01ms !important;

        animation-iteration-count:1 !important;

        transition-duration:.01ms !important;

    }

}


/*==================================================
                END OF STYLE.CSS
==================================================*/

/*==================================================
        ART GALLERY - FINAL
==================================================*/

.gallery-section{
    scroll-margin-top:24px;
}

.gallery-description{
    max-width:860px;
    margin:-4px auto 24px;
    color:#bdbdbd;
    font-size:24px;
    line-height:1.4;
    text-align:center;
}

.art-gallery{
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:16px;
}

.art-card{
    position:relative;
    min-width:0;
    overflow:hidden;
    border:2px solid #555;
    background:#070707;
    transition:transform .22s ease,border-color .22s ease,box-shadow .22s ease;
}

.art-card:hover,
.art-card:focus-within{
    transform:translateY(-5px);
    border-color:var(--red);
    box-shadow:0 0 16px rgba(255,0,0,.3);
}

.art-image-button{
    position:relative;
    width:100%;
    aspect-ratio:1 / 1;
    display:block;
    padding:0;
    overflow:hidden;
    border:0;
    border-bottom:1px solid #444;
    background:#111;
    color:white;
    cursor:pointer;
    font:inherit;
}

.art-image-button::before{
    content:"";
    position:absolute;
    inset:6px;
    border:1px solid rgba(255,255,255,.25);
    z-index:2;
    pointer-events:none;
}

.art-image-button img{
    width:100%;
    height:100%;
    display:block;
    object-fit:cover;
    transition:transform .3s ease,filter .3s ease;
}

.art-view-label{
    position:absolute;
    left:50%;
    top:50%;
    z-index:3;
    padding:8px 13px;
    border:2px solid white;
    background:rgba(0,0,0,.86);
    color:white;
    font-size:21px;
    letter-spacing:1px;
    opacity:0;
    transform:translate(-50%,-40%);
    transition:opacity .22s ease,transform .22s ease;
    pointer-events:none;
}

.art-card:hover .art-image-button img,
.art-image-button:focus-visible img{
    transform:scale(1.055);
    filter:brightness(.62) saturate(1.08);
}

.art-card:hover .art-view-label,
.art-image-button:focus-visible .art-view-label{
    opacity:1;
    transform:translate(-50%,-50%);
}

.art-info{
    padding:13px 14px 15px;
}

.art-info h3{
    margin-bottom:4px;
    color:white;
    font-size:26px;
}

.art-info p{
    color:#aaa;
    font-size:19px;
    line-height:1.3;
}

.gallery-note{
    margin:20px auto 0;
    padding:12px 14px;
    border-left:3px solid var(--red);
    background:rgba(255,0,0,.045);
    color:#aaa;
    font-size:19px;
    line-height:1.35;
}

/* Faster and earlier section reveals */
.reveal{
    transform:translateY(12px);
    transition:opacity .35s ease,transform .35s ease;
}

/* Compact sticky sidebar */
.layout{
    grid-template-columns:240px minmax(0,1fr);
    gap:18px;
}

.sidebar{
    width:240px;
    gap:12px;
    top:12px;
}

.sidebar .panel{
    padding:12px;
}

.sidebar .panel-title{
    margin-bottom:10px;
    font-size:25px;
}

.sidebar .menu{
    gap:2px;
}

.sidebar .menu a{
    gap:8px;
    padding:6px 9px;
    font-size:25px;
}

.sidebar .menu a:hover{
    padding-left:17px;
}

@media(max-width:1100px){
    .layout{grid-template-columns:1fr;}
    .sidebar{
        position:relative;
        top:0;
        width:100%;
    }
}

@media(max-width:1000px){
    .art-gallery{grid-template-columns:repeat(2,minmax(0,1fr));}
}

@media(max-width:600px){
    .art-gallery{grid-template-columns:1fr;}
    .gallery-description{font-size:21px;}
    .art-info h3{font-size:24px;}
}
