/* these are the main colors and bg images
   replace them with anything you want! */
:root {
    --header-bg: url('images/velvetHeader.jpg');
    --site-bg: url("images/vintage-wallpaper.webp");
    --accent-color: #a200ff;
    --select-color: #bb91fd;
    --link-color: #5083C1;
    --bg-color: #b8c7de;
    --bg-color2: #dfeaff;
    --text-color: #191919;
    /* #B8BFDE*/
    --border-color: #2C505E;
    /*--gradient-bg: linear-gradient(0deg, #CADCFF00 0%, #fff 100%);*/
    --post-header-color: white;
    --post-shadow-color: #21569760;
    --outline-color: #6EAAD6;
    --outline-color2: #CEEAFF;
}

/* you can get hex codes from sites like this:
   https://palettes.shecodes.io/
   i just looked up "css color templates" to find that link! */

/* this applies to all the content */
* {
    box-sizing: border-box;
    /* change the font here, it's set up to all use the same one */
    font-family: Verdana, Geneva, Tahoma, sans-serif;
}

/* this is for when you select text on the page */
::selection {
    background: var(--select-color);
    color: var(--border-color);
}

body {
    background-color: var(--bg-color);
    background-image: var(--site-bg);
    margin: 0;
    /*this is the default font size! headings and stuff are adjusted based on this number.*/
    font-size: 14px;
    /*and the default text color! it's dark grey here.*/
    color: var(--text-color);
}

/* i think having better line spacing helps text to be more readable, but you can remove it if you want */
p {
    line-height: 1.5em;
}

h1 {
    font-size: 1.5em;
    color: var(--post-header-color);
    filter: drop-shadow(2px 0 0 var(--outline-color)) drop-shadow(0 2px 0 var(--outline-color)) drop-shadow(-2px 0 0 var(--outline-color)) drop-shadow(0 -2px 0 var(--outline-color))drop-shadow(0 1px 1px var(--outline-color2)) drop-shadow(1px 0 1px var(--outline-color2));
}

h4,
h5,
h6 {
    color: var(--border-color);
}

header {
    background-color: var(--accent-color);
    /* you can add the image url in :root (at the top) if you want */
    background: var(--header-bg);
    background-size: 100%;
    background-position: 0% 76%;
    /* change the minimum height if you want it to take up more/less space */
    min-height: 250px;
    /* can also limit the size of the header if you don't want to fill up the top. i recommend at least 800px tho! */
    /*max-width: 980px;*/
    /*this centers it*/
    margin: 0 auto;
    /*i gave it some borders, you can change the colors or remove them, but having the borders there keeps it glued to the top of the page all nice, so i recommend keeping them!*/
    border-top: 12px solid var(--bg-color2);
    border-bottom: 12px solid var(--bg-color2);
    /*to align the header block to the bottom, uncomment the line below*/
    /*align-content: flex-end;*/
}

/* this is your site title displayed at the top of the page */
header>h1 {
    background-color: var(--bg-color2);
    color: var(--border-color);
    margin: 1em auto;
    font-size: 2em;
    /*uncomment this line if you want the header text to not take up the full length of the div*/
    /*width: fit-content;*/
    max-width: 600px;
    padding: 6px 12px;
    border-radius: 1em;
    border: 4px double var(--outline-color);
    /*normal headers have a filter, so we gotta turn it off for this special heading*/
    filter: none;
    /* you can change the text-align to center or right if you want it placed differently */
    text-align: center;
}

/*this is for lists*/
li {
    /*you can change the normal dot to anything you want :)*/
    /*list-style-type: "💙 ";*/
    /*i used a flower since i already drew it for another page haha*/
    list-style-image: url("images/flower.png");
}

nav {
    margin: 1em;
}

nav>ul {
    max-width: 960px;
    margin: auto;
    line-height: 3rem;
    /* this line takes away the dot in front of the list items */
    list-style-type: none;
    /* list items have default padding but we don't need it for these */
    padding-left: 0;
    /* and this spaces out the buttons so they're not touching */
    justify-content: space-evenly;
}

nav li {
    text-align: center;
    list-style-image: none;
}

nav li>a {
    font-weight: bold;
    background-color: var(--bg-color2);
    border: 4px double var(--outline-color);
    padding: .5em 3em;
    /* this takes away the link underline */
    text-decoration: none;
}

nav li>a:visited {
    color: var(--link-color);
}

nav li>a:hover {
    color: var(--accent-color);
    background-color: var(--select-color);
}

a {
    color: var(--link-color);
    border-radius: .3em;
    transition: .2s ease-out;
}

a:visited {
    color: var(--text-color);
}

a:hover {
    color: var(--accent-color);
    border-color: var(--accent-color);
    transition: .2s ease;
}

#sidebar {
    background-color: var(--bg-color);
    color: var(--border-color);
    height: fit-content;
    min-width: 320px;
    margin-top: 1em;
    margin-right: 2em;
    border-radius: .5em;
}

.small-box {
    background-color: var(--bg-color2);
    max-width: 240px;
    margin: auto;
    border: 2px solid var(--bg-color);
    /*i gave this one small text cuz i think it looks cute, but you can remove this line to make it normal*/
    font-size: 11px;
    /*making sure the list items are spaced correctly cuz it's hard to read when they're squished together*/
    line-height: 1.5rem;
}

#avatar {
    margin: auto;
    padding-top: 0.5em;
    /*this line will limit the image size if you decide not to use the flower shape below*/
    max-width: 320px;
}

/*flower shape generated from here: https://css-generators.com/flower-shapes/ */
.flower {
    width: 320px;
    /* adjust to control the size */
    aspect-ratio: 1;
    --g: /37.02% 37.02% radial-gradient(#000 calc(71% - 1px), #0000 71%) no-repeat;
    mask: 90.078% 79.895% var(--g), 33.953% 97.355% var(--g), 0.004% 49.372% var(--g), 35.148% 2.257% var(--g), 90.817% 21.121% var(--g), radial-gradient(100% 100%, #000 25.476%, #0000 calc(25.476% + 1px));
}

.icon {
    width: 300px;
    border-radius: 20px;
    display: block;
    margin: auto;


}

#bio {
    margin: 20px;
    padding: .2em;
    background: var(--bg-color2);
    border: 4px double var(--bg-color);
    border-radius: 2em;
    /*made the text slightly smaller again here since periwinkle's bio was a little lengthy*/
    font-size: small;
}

#bio p {
    margin: 1em;
}

#content {
    display: flex;
    max-width: 1100px;
    margin: auto;
}

main {
    padding: 1em;
}

/*this is the top post on the blog. you can treat it like a pinned post if you want!*/
#top {
    background-color: var(--bg-color);
}

/*this bit gives it a white background*/
#top section {
    background-color: var(--bg-color2);
    border-radius: .5em;
    margin-bottom: 10px;
    padding: .2em 1em;
    width: fit-content;
}

/*these are the regular blog post styles!*/
article {
    background-color: var(--bg-color2);
    padding: 1em;
    border: 2px solid var(--border-color);
    border-radius: .3em;
    margin-bottom: 1em;
    box-shadow: var(--post-shadow-color) 5px 5px;
}

article img {
    /*make sure large images get resized to fit in the post*/
    max-width: 100%;
}

/*you should always use this line if you have details/summary blocks cuz it makes it more obviously clickable*/
details>summary {
    cursor: pointer;
}

.readmore summary {
    font-weight: bold;
    color: var(--border-color);
    list-style: none;
}

.readmore summary::-webkit-details-marker {
    display: none;
}

.readmore[open]>summary {
    border-bottom: 2px dashed var(--bg-color);
    padding-bottom: .6em;
    margin-bottom: .6em;
}

/*this is the top line for each post, with the name on the left and date/time on the right*/
/*you can put a post title instead of a name/handle, i just set it up that way as an example haha*/
.post-header {
    color: var(--border-color);
    font-weight: bold;
    padding: .5rem 0;
    border-bottom: 4px double var(--outline-color);
}

.timestamp {
    font-weight: normal;
    font-size: smaller;
    margin: .2em;
    /*this keeps it to the right edge*/
    float: right;
}

/*these set up tumblr-style photoset grids*/
.photosetx2,
.photosetx3 {
    display: grid;
    gap: 4px;
    align-items: center;
}

.photosetx2 {
    grid-template-columns: 1fr 1fr;
}

.photosetx3 {
    grid-template-columns: 1fr 1fr 1fr;
}

/*adjust this to your liking! it crops images that are too tall*/
.cropped {
    width: 156px;
    height: 156px;
    overflow: hidden;
    object-position: 25% 25%;
}

/*this makes sure the image doesn't get distorted when cropped*/
.photosetx2 img,
.photosetx3 img {
    object-fit: cover;
}

/* a class for centering text and images */
.center {
    text-align: center;
}

.img-right {
    float: right;
}

/*this stops the float image from overflowing out of its container*/
.clearfix::after {
    content: "";
    clear: both;
    display: table;
}

/*you can use the <small> tag in html, or make a class like this. up to you!*/
.small-text {
    font-size: 11px;
    /*i gave it a shadow cuz i think it looks nice... yayyy*/
    text-shadow: var(--bg-color) 1px 1px;
}

footer {
    text-align: center;
    font-size: small;
    margin: auto;
    padding: .5em;
    background: var(--bg-color2);
}

/* these are the mobile styles! */
@media only screen and (max-width: 800px) {
    #content {
        flex-wrap: wrap;
    }

    #sidebar {
        margin: 0;
        width: 100%;
        display: flex;
        flex-wrap: wrap;
        justify-content: center;
        align-items: center;
        border: none;
        border-radius: 0;
    }

    header {
        min-height: 160px;
    }

    header>h1 {
        width: fit-content;
        padding: .3em 1em;
    }

    nav>ul {
        /* this stuff makes it wrap around on mobile */
        display: flex;
        flex-wrap: wrap;
        flex-direction: row;
    }

    #bio {
        width: 50%;
    }

    #sidebar ul {
        line-height: 2em;
        display: flex;
        flex-wrap: wrap;
        gap: 1em;
    }

    #sidebar li {
        margin: .3em 1em;
    }
}

article img {
    display: block;
    margin: auto;
}