/* ================================
   GENERAL
================================ */

* {
    box-sizing: border-box;
}

body {
    margin: 0;
    padding: 30px 15px;

    background-color: #fff7fa;
    color: #725565;

    font-family: "Trebuchet MS", "Arial", sans-serif;
    font-size: 14px;
    line-height: 1.6;
}


/* ================================
   LITTLE BACKGROUND PATTERN
================================ */

body::before {
    content: "";
    position: fixed;
    inset: 0;

    pointer-events: none;

    opacity: 0.35;

    background-image:
        radial-gradient(#f2b8ce 1px, transparent 1px);

    background-size: 14px 14px;

    z-index: -1;
}


/* ================================
   MAIN SITE
================================ */

.site {
    width: 760px;
    max-width: 95%;

    margin: auto;

    background: #fffafb;

    border: 1px solid #e9abc2;

    border-radius: 10px;

    padding: 12px;

    box-shadow:
        0 0 0 4px #fffafb,
        0 0 0 5px #f0bfd1;
}


/* ================================
   HEADER
================================ */

.header {
    text-align: center;

    padding: 18px 10px 12px;

    border-bottom: 1px dotted #e4a1bb;
}

.header h1 {
    margin: 0;

    color: #e99bbb;

    font-family: Georgia, serif;

    font-size: 32px;

    font-weight: normal;
}

.header p {
    margin: 2px 0 0;

    color: #b9879c;

    font-size: 12px;
}


/* ================================
   NAVIGATION
================================ */

.nav {
    display: flex;

    justify-content: center;

    gap: 8px;

    padding: 12px 0;
}

.nav a {
    padding: 4px 13px;

    color: #a85f7d;

    background: #fff1f6;

    border: 1px solid #edb4c9;

    border-radius: 20px;

    text-decoration: none;

    font-size: 12px;

    transition: 0.2s;
}

.nav a:hover {
    background: #f9d6e4;

    color: #87455f;
}


/* ================================
   BOXES
================================ */

.box {
    background: #fff7fa;

    border: 1px solid #edb7ca;

    border-radius: 8px;

    padding: 16px;

    margin-bottom: 14px;
}

.box h2 {
    margin: 0 0 10px;

    color: #df8eae;

    font-family: Georgia, serif;

    font-size: 18px;

    font-weight: normal;
}

.box h2::before {
    content: "♡ ";
}


/* ================================
   HOME LAYOUT
================================ */

.home-grid {
    display: grid;

    grid-template-columns: 190px 1fr;

    gap: 14px;
}


/* ================================
   PROFILE
================================ */

.profile {
    text-align: center;
}

.profile img {
    width: 125px;
    height: 125px;

    object-fit: cover;

    border-radius: 50%;

    border: 3px solid #f1bfd1;

    padding: 3px;

    background: white;
}

.profile p {
    margin: 8px 0;
}

.small {
    font-size: 12px;

    color: #a77b8f;
}


/* ================================
   LINKS
================================ */

.link {
    display: block;

    margin: 5px 0;

    padding: 5px 8px;

    background: #fff;

    border: 1px dotted #e4a1bb;

    border-radius: 5px;

    color: #b15e80;

    text-decoration: none;
}

.link:hover {
    background: #ffeaf2;
}


/* ================================
   INTERESTS
================================ */

.tags {
    display: flex;

    flex-wrap: wrap;

    gap: 6px;
}

.tag {
    padding: 3px 9px;

    background: #fde7ef;

    border: 1px solid #edb6c9;

    border-radius: 15px;

    color: #a8667f;

    font-size: 12px;
}


/* ================================
   CHARACTERS
================================ */

.characters {
    display: flex;

    flex-wrap: wrap;

    gap: 12px;
}

.character {
    width: 85px;

    text-align: center;
}

.character img {
    width: 75px;
    height: 75px;

    object-fit: cover;

    border-radius: 50%;

    border: 2px solid #f0bfd0;
}

.character span {
    display: block;

    margin-top: 3px;

    font-size: 11px;

    color: #9c647c;
}

/* ================================
   CURRENTLY
================================ */

aside .box p {
    font-size: 11px;
    line-height: 1.8;
    margin: 0;
    color: #765667;
}

/* ================================
   FOOTER
================================ */

.footer {
    padding: 12px;

    text-align: center;

    color: #c08ba1;

    font-size: 11px;

    border-top: 1px dotted #e4a1bb;
}


/* ================================
   PHOTO PAGE
================================ */

.gallery {
    display: grid;

    grid-template-columns: repeat(3, 1fr);

    gap: 12px;
}

.photo {
    padding: 6px;

    background: white;

    border: 1px solid #e5b1c4;

    border-radius: 6px;

    transition: 0.2s;
}

.photo:hover {
    transform: rotate(-1deg);

    box-shadow: 3px 3px 0 #f1cfdb;
}

.photo img {
    width: 100%;

    aspect-ratio: 1 / 1;

    object-fit: cover;

    display: block;
}

.photo p {
    margin: 5px 2px 1px;

    text-align: center;

    font-size: 11px;

    color: #a67589;
}


/* ================================
   MOBILE
================================ */

@media (max-width: 650px) {

    body {
        padding: 15px 8px;
    }

    .site {
        max-width: 100%;
    }

    .home-grid {
        grid-template-columns: 1fr;
    }

    .gallery {
        grid-template-columns: repeat(2, 1fr);
    }

    .nav {
        flex-wrap: wrap;
    }
}