/* ==================================
   MY LITTLE CORNER OF THE INTERNET
   ================================== */

* {
    box-sizing: border-box;
}

html {
    background: #08080b;
}

body {
    margin: 0;
    padding: 30px 15px;

    background:
        radial-gradient(
            circle at 20% 10%,
            #24151d 0,
            transparent 30%
        ),
        radial-gradient(
            circle at 80% 90%,
            #17151d 0,
            transparent 30%
        ),
        #08080b;

    color: #c9c5ca;

    font-family: Verdana, Arial, sans-serif;
    font-size: 13px;

    line-height: 1.6;
}


/* ==================================
   MAIN PAGE
   ================================== */

.page {
    width: 760px;
    max-width: 100%;

    margin: auto;
    padding: 18px;

    background: #111116;

    border: 1px solid #3c3940;

    box-shadow:
        0 0 0 5px #0c0c10,
        0 0 25px #000;
}


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

header {
    display: flex;
    align-items: center;

    gap: 25px;

    padding: 15px;
    margin-bottom: 10px;

    background: #17171d;

    border: 1px solid #4a464d;

    border-bottom: 3px solid #7e1f36;
}


/* ==================================
   PROFILE PICTURE
   ================================== */

.pfp-frame {
    width: 155px;
    height: 155px;

    flex-shrink: 0;

    padding: 7px;

    background: #050507;

    border: 2px solid #d5cfd3;

    box-shadow:
        6px 6px 0 #7e1f36,
        -3px -3px 0 #28252b;

    transform: rotate(-1deg);
}

.pfp-frame img {
    display: block;

    width: 100%;
    height: 100%;

    object-fit: cover;

    border: 1px solid #6d6870;

    filter:
        contrast(1.05)
        saturate(0.85);
}


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

.title h1 {
    margin: 0;

    color: #e7dfe3;

    font-family: Georgia, serif;

    font-size: 27px;

    font-weight: normal;

    text-shadow: 2px 2px #000;
}

.title p {
    margin: 7px 0 0;

    color: #918b92;
}


/* ==================================
   STATUS BAR
   ================================== */

.status {
    margin: 12px 0;

    padding: 6px 10px;

    overflow: hidden;

    color: #d84b69;

    background: #09090c;

    border-top: 1px dotted #504b52;
    border-bottom: 1px dotted #504b52;

    text-align: center;

    font-family: "Courier New", monospace;

    font-size: 11px;
}


/* ==================================
   CONTENT BOXES
   ================================== */

.box {
    margin: 15px 0;

    padding: 16px 18px;

    background: #15151a;

    border: 1px solid #39363c;

    box-shadow:
        inset 0 0 20px rgba(0, 0, 0, .25);
}

.box h2 {
    margin: 0 0 12px;

    padding-bottom: 5px;

    color: #d63d5b;

    font-family: Georgia, serif;

    font-size: 19px;

    font-weight: normal;

    border-bottom: 1px dashed #48434a;
}

.box p {
    margin: 8px 0;
}


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

.red {
    color: #e04462;

    text-shadow:
        0 0 5px rgba(224, 68, 98, .15);
}

.white {
    color: #eee8ec;
}

.big {
    color: #d52e50;

    font-size: 20px;
}


/* ==================================
   PERSONALITY COLUMNS
   ================================== */

.columns {
    display: grid;

    grid-template-columns: 1fr 1fr;

    gap: 30px;
}

.columns h3 {
    margin: 4px 0;

    color: #aaa3aa;

    font-size: 13px;

    font-weight: bold;
}

ul {
    margin-top: 5px;

    padding-left: 20px;
}

li::marker {
    color: #a82c47;
}

li {
    margin: 2px 0;
}


/* ==================================
   LIKES
   ================================== */

.likes {
    display: grid;

    grid-template-columns: 1fr 1fr;

    gap: 8px;
}

.like {
    min-height: 115px;

    padding: 12px;

    background: #0d0d11;

    border: 1px solid #333037;

    transition: .15s;
}

.like:hover {
    background: #121217;

    border-color: #7e1f36;

    box-shadow:
        inset 0 0 15px rgba(126, 31, 54, .08);
}

.like span {
    float: right;

    color: #9e2944;

    font-size: 20px;
}

.like b {
    color: #d0c9cf;

    font-family: "Courier New", monospace;

    letter-spacing: 1px;
}

.like p {
    color: #89838a;

    font-size: 12px;
}


/* ==================================
   LINKS / WHERE TO FIND ME
   ================================== */

.links-box {
    position: relative;

    background:
        linear-gradient(
            135deg,
            #15151a 0%,
            #111116 50%,
            #171219 100%
        );

    border-color: #44373d;
}

.links-intro {
    margin: 0 0 15px !important;

    color: #8d858c;

    font-family: "Courier New", monospace;

    font-size: 11px;

    line-height: 1.7;
}

.links-intro .symbol {
    color: #d63d5b;

    font-size: 14px;
}

.links-list {
    display: flex;

    flex-direction: column;

    gap: 8px;

    margin-top: 12px;
}

.link-card {
    display: flex;

    align-items: center;

    gap: 12px;

    padding: 11px 13px;

    color: inherit;

    background: #0c0c10;

    border: 1px solid #302d33;

    text-decoration: none;

    transition:
        background .15s ease,
        border-color .15s ease,
        transform .15s ease;
}

.link-card:hover {
    color: inherit;

    background: #171015;

    border-color: #7e1f36;

    transform: translateX(3px);

    box-shadow:
        inset 4px 0 0 #7e1f36;
}

.link-icon {
    display: flex;

    align-items: center;
    justify-content: center;

    width: 32px;
    height: 32px;

    flex-shrink: 0;

    color: #d84b69;

    background: #151016;

    border: 1px solid #4a353d;

    font-size: 15px;
}

.link-content {
    min-width: 0;

    flex: 1;
}

.link-name {
    display: block;

    color: #ddd5da;

    font-family: "Courier New", monospace;

    font-size: 12px;

    font-weight: bold;

    letter-spacing: .5px;
}

.link-description {
    display: block;

    margin-top: 2px;

    color: #777178;

    font-size: 10px;

    line-height: 1.5;
}

.link-arrow {
    color: #71404d;

    font-family: "Courier New", monospace;

    font-size: 13px;
}

.link-card:hover .link-arrow {
    color: #f06a84;
}

.link-card:hover .link-name {
    color: #f06a84;
}


/* ==================================
   SOCIALS LINK
   ================================== */

.socials-card {
    background:
        linear-gradient(
            90deg,
            #0c0c10 0%,
            #120d12 50%,
            #0c0c10 100%
        );

    border-color: #49343d;
}

.socials-card .socials-icon {
    color: #f06a84;

    background:
        linear-gradient(
            135deg,
            #180d13,
            #0d0c10
        );

    border-color: #6a3546;

    text-shadow:
        0 0 7px rgba(240, 106, 132, .35);

    font-size: 16px;
}

.socials-card .link-name {
    color: #e5d8de;

    text-transform: lowercase;
}

.socials-card .link-description {
    color: #81757d;
}

.socials-card .link-arrow {
    color: #8d3b52;
}

.socials-card:hover {
    background:
        linear-gradient(
            90deg,
            #120c11 0%,
            #1b1017 50%,
            #120c11 100%
        );

    border-color: #8b2947;

    box-shadow:
        inset 4px 0 0 #8b2947,
        0 0 12px rgba(126, 31, 54, .12);
}

.socials-card:hover .socials-icon {
    color: #ff7d97;

    border-color: #8b3d55;

    box-shadow:
        0 0 8px rgba(240, 106, 132, .12);
}

.socials-card:hover .link-name {
    color: #ff7893;
}

.socials-card:hover .link-arrow {
    color: #ff7893;
}


.links-footer {
    margin: 14px 0 0 !important;

    color: #625b62;

    font-family: "Courier New", monospace;

    font-size: 9px;

    text-align: right;
}


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

.music {
    background:
        linear-gradient(
            135deg,
            #17171c 25%,
            #131318 25%,
            #131318 50%,
            #17171c 50%,
            #17171c 75%,
            #131318 75%
        );

    background-size: 8px 8px;
}


/* ==================================
   MUSIC GENRES
   ================================== */

.music-genres {
    padding: 3px 0 15px;
}

.music-genres p {
    color: #aaa3aa;
}

.genre-list {
    display: flex;

    flex-wrap: wrap;

    gap: 5px;

    margin-top: 10px;
}

.genre-list span {
    padding: 3px 7px;

    color: #d9d0d5;

    background: #0b0b0e;

    border: 1px solid #463b40;

    font-family: "Courier New", monospace;

    font-size: 10px;

    letter-spacing: .5px;
}

.genre-list span:first-child,
.genre-list span:nth-child(2) {
    color: #f06a84;

    border-color: #7e1f36;
}

.genre-note {
    color: #777178 !important;

    font-size: 11px;
}


/* ==================================
   MUSIC PLAYER
   ================================== */

.music-player {
    display: flex;

    gap: 17px;

    padding: 13px;

    background:
        linear-gradient(
            135deg,
            #09090c,
            #131116
        );

    border: 1px solid #40373d;

    box-shadow:
        0 4px 15px rgba(0, 0, 0, .45);
}


/* ALBUM COVER */

.album-art {
    width: 125px;
    height: 125px;

    flex-shrink: 0;

    padding: 4px;

    background: #050507;

    border: 1px solid #70666c;

    box-shadow:
        3px 3px 0 #651b30;
}

.album-art img {
    display: block;

    width: 100%;
    height: 100%;

    object-fit: cover;

    filter:
        contrast(1.08)
        saturate(.9);
}


/* PLAYER INFORMATION */

.player-info {
    display: flex;

    flex-direction: column;

    justify-content: center;

    flex: 1;

    min-width: 0;
}

.now-playing {
    margin-bottom: 3px;

    color: #b83250;

    font-family: "Courier New", monospace;

    font-size: 9px;

    letter-spacing: 2px;
}

.song-title {
    color: #eee7eb;

    font-family: Georgia, serif;

    font-size: 16px;

    line-height: 1.3;
}

.artist {
    margin-top: 3px;

    color: #d34a65;

    font-size: 12px;

    font-weight: bold;
}

.album {
    margin-top: 2px;

    color: #777178;

    font-size: 10px;
}


/* PROGRESS BAR */

.progress-area {
    margin-top: 15px;
}

.progress-bar {
    width: 100%;
    height: 5px;

    overflow: hidden;

    background: #29242a;

    border-radius: 3px;
}

.progress {
    width: 34%;
    height: 100%;

    background:
        linear-gradient(
            90deg,
            #7e1f36,
            #d63d5b
        );

    border-radius: 3px;
}

.time {
    display: flex;

    justify-content: space-between;

    margin-top: 4px;

    color: #686168;

    font-family: "Courier New", monospace;

    font-size: 9px;
}


/* PLAYER BUTTONS */

.player-controls {
    display: flex;

    align-items: center;

    gap: 7px;

    margin-top: 7px;
}

.player-controls button {
    width: 25px;
    height: 25px;

    padding: 0;

    color: #aaa1a8;

    background: #121116;

    border: 1px solid #494047;

    cursor: pointer;

    font-size: 10px;
}

.player-controls button:hover {
    color: #f06a84;

    background: #1c1217;

    border-color: #7e1f36;
}

.player-controls .play-button {
    width: 31px;
    height: 31px;

    color: #eee7eb;

    background: #7e1f36;

    border-color: #a62c49;

    font-size: 12px;
}

.player-controls .play-button:hover {
    color: white;

    background: #9a2947;
}


/* MUSIC NOTE */

.music-note {
    margin-top: 10px !important;

    color: #777178 !important;

    font-family: "Courier New", monospace;

    font-size: 10px;

    text-align: right;
}


/* ==================================
   LITTLE NOTE
   ================================== */

.note {
    border-left: 4px solid #7e1f36;
}


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

footer {
    padding: 15px 5px 5px;

    color: #676269;

    font-family: "Courier New", monospace;

    font-size: 10px;

    text-align: center;
}

footer p {
    margin: 3px;
}


/* ==================================
   LINKS
   ================================== */

a {
    color: #d23d5a;
}

a:hover {
    color: #f0788e;
}


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

@media (max-width: 600px) {

    body {
        padding: 10px 5px;
    }

    .page {
        padding: 10px;
    }

    header {
        flex-direction: column;

        text-align: center;
    }

    .title h1 {
        font-size: 22px;
    }

    .columns,
    .likes {
        grid-template-columns: 1fr;
    }

    .pfp-frame {
        width: 135px;
        height: 135px;
    }

    .music-player {
        flex-direction: column;

        align-items: center;

        text-align: center;
    }

    .album-art {
        width: 150px;
        height: 150px;
    }

    .player-controls {
        justify-content: center;
    }

    .genre-list {
        justify-content: center;
    }

    .link-card {
        padding: 10px;
    }

    .link-icon {
        width: 29px;
        height: 29px;
    }

    .link-name {
        font-size: 11px;
    }

    .link-description {
        font-size: 9px;
    }
}
