:root {
    --OLDbg-color: #3a3535;
    --bg-color: #cfcfcf;
    --post-color: white;
    --text-color: black;
    --text-color-invert: white;
    --accent: #c70000;
    --drop-shadow: 5px 5px 0px var(--text-color);
    --std-margin: 30px 0;

    --shape-outline: drop-shadow(2px 2px 0 var(--text-color)) 
    drop-shadow(-2px 2px 0 var(--text-color)) 
    drop-shadow(2px -2px 0 var(--text-color)) 
    drop-shadow(-2px -2px 0 var(--text-color)); 
}

@font-face {
    font-family: "Home Video";
    src: url('/fonts/home-video/HomeVideo.ttf') format('truetype');
    font-weight: normal;
}
  
@font-face {
    font-family: "Home Video Dark";
    src: url('/fonts/home-video/HomeVideoBold.ttf') format('truetype');
    font-weight: normal;
}

@font-face {
    font-family: 'Silkscreen';
    src: url('/fonts/silkscreen/slkscr.ttf') format('truetype');
    font-weight: normal;
}

* {
    cursor: url('/i/cursor.png'), auto;
}

*::selection {
    color: var(--text-color-invert);
    background-color: var(--accent);
}

*:focus {
    outline: solid 2px var(--accent);
    outline-offset: 2px;
}

html {
    height: 100%;
}

body {
    background-color: var(--bg-color);
    background-image: url('/i/clouds.png');
    background-size: cover;
    background-attachment: fixed;
    margin-left: 90px;
    margin-top: 10px;
    font-family: "Home Video", Courier, monospace;
    font-size: 14px;
    cursor: url('/i/cursor.png'), auto;
}

/* ========= Left Side ========= */
body > header {
    position: fixed;
    margin-top: 40px;
    width: 300px;
    padding: 20px 0px;
    z-index: 3;
    
    display: flex;
    flex-direction: column;
    gap: 5px;
    align-items: center;

    background-color: var(--post-color);
    box-shadow: var(--drop-shadow);
}

body > header a {
    display: block;
}

a:has(h1) {
    width: 100%;
    text-align: center;
    text-decoration: none;
    margin: 5px 0;
}

a h1 {
    font-size: 1.25em;
    line-height: 1.5em;
    letter-spacing: 10px;
}

a:has(h1):hover {
    background-color: var(--accent);
    color: var(--post-color);
    font-family: "Home Video", Courier, monospace;
}

a:hover h1 {
    text-decoration: none;
}

h1 {
    margin: 0;
}

#pfp {
    width: 85%;
}

header > nav {
    display: flex;
    flex-flow: column nowrap;
    align-items: center;
    gap: 10px;
}

/* ========= Center/Posts ========= */
main {
    display: flex;
    flex-direction: column;
    position: absolute;
    width: 800px;
    margin-left: 340px;
}

.entry, article {
    background-color: var(--post-color);
    padding: 20px;
    margin: var(--std-margin);
    box-shadow: var(--drop-shadow);
}

h2 {
    font-family:"Home Video Dark", monospace;
    font-size: 1.75em;
}

h3 {
    color: var(--accent);
    letter-spacing: 1px;
}

.entry p, article p {
    text-indent: 25px;
}

/* ========= Extra Site-wide Formatting ========= */
a {
    color: var(--accent);
    text-decoration-style: dotted;
}

a:hover {
    font-family: "Home Video Dark", monospace;
    cursor: url(/i/cursor3.png), auto;
}

a.external, header > nav > a {
    text-decoration-style: solid;
}

mark {
    color: var(--accent);
    background-color: unset;
    font-weight: bold;
    letter-spacing: 1px;
}

.hidden, .mobile {
    display: none;
}

.centered p, p.centered {
    text-align: center;
    text-indent: 0;
}

.uncentered p {
    text-align: left;
    text-indent: 25px;
}

time {
    font-family:"Home Video Dark", monospace;
    text-align: right;
    display: block;
}

cite {
    text-align: right !important;
    display: inline-block;
    width: 100%;
}

.emoji {
    height: 1.25em;
    margin-bottom: -0.25em;
}

.entry > a > img, article > a > img {
    max-height: 80vh;
    max-width: 100%;
    display: block;
}

.entry > a:has(img), article > a:has(img) {
    width: fit-content;
    display: block;
    margin: 1em auto;
}

ul {
    list-style-type: square;
}

li {
    padding: 4px 0;
}

ul > ul {
    list-style-type: circle;
}

/* ========= HOME Item Formatting ========= */
#webrings {
    position: fixed;
    z-index: 3;
    top: 565px;
    display: flex;
    flex-direction: column;
    gap: 0.5em;
}

#webrings > div {
    filter: drop-shadow(var(--drop-shadow));
}

#webrings img:hover {
    box-shadow: none;
}

.no-ai img {
    width: 300px;
    filter: invert(100%)
}

.ditherring {
    display: flex; 
    align-items: center; 
    justify-content: center; 
    gap: 1em; 
    padding: 0.5em;
    background-color: var(--text-color-invert);
    border-radius: 5px;
    border: 2px solid var(--text-color);
}

.ditherring img {
    width: 88px; 
    height: 31px; 
    display: inline-block; 
}

#microblog p {
    text-indent: 0;
    padding: 0 25px;
    color: var(--accent);
}

a > img:hover {
    box-shadow: var(--drop-shadow);
}

.shaped:hover {
    box-shadow: none !important;
    filter: var(--shape-outline);
}

#changelog {
    border: 1px solid;
    width: 100%;
}

th, td {
    padding: 4px;
    border: 1px solid;
}

table ul {
    margin: 0;
    padding-left: 1.5em;
}

/* ========= ABOUT ========= */

#questions > article > ol > li, dt {
    color: var(--accent);
    font-weight: bold;
    letter-spacing: 1px;
}

#questions li > p {
    color: var(--text-color);
    font-weight: normal;
    letter-spacing: normal;
}

dd {
    text-indent: 25px;
    margin: 1em 0;
}

/* ========= LINKS - Site Buttons ========= */
.btn-container > textarea {
    width: 250px;
    height: 90px;
}

.btn-container {
    display: flex;
    gap: 20px;
    flex-flow: row wrap;
    margin-bottom: 1em;
    justify-content: center;
    align-items: center;
}

.btn-container a {
    height: 31px;
    width: 88px;
    text-align: center;
    border: 2px solid var(--accent);
}

.btn-container a:has(img){
    border: none; 
}

.btn-container img {
    height: 31px;
    width: 88px;
    image-rendering: pixelated;
}

.btn-container img:hover {
    box-shadow: none;
}

.btn-container > a:has(img):hover {
    filter: drop-shadow(1px 1px 0 var(--accent)) 
    drop-shadow(-1px 1px 0 var(--accent)) 
    drop-shadow(1px -1px 0 var(--accent)) 
    drop-shadow(-1px -1px 0 var(--accent));
}

/* ========= Sortable entry page styling ========= */
/* Colored sorting buttons (tags) */
.categories button, #show-all, #toggle-chrono { 
  font-family: "Silkscreen", monospace;
  background-color: var(--accent);
  color: var(--text-color-invert);
  border: none;
  margin: 0 0.25rem;
  font-size: 1em;
}

.categories button:hover {
    background-color: var(--text-color);
}

h3 > button:hover {
    color: var(--accent);
}

button:hover, area:hover, a > img:hover {
    cursor: url('/i/cursor2.png'), auto;
}

h3.categories {
    margin: 0.25em 0;
}

div.categories {
    margin: 0.5rem 0;
    display: flex;
    flex-flow: row wrap;
    row-gap: 0.5rem;
    align-items: center;
}

.categories h3 {
    color: var(--text-color);
    margin: unset;
}

#show-all, #toggle-chrono {
    display: none;
    margin: 1rem auto 0.5rem;
    background-color: var(--text-color);
}

#toggle-chrono {
    display: block;
}

#show-all:hover, #toggle-chrono:hover {
    background-color: var(--accent);
    cursor: url('/i/cursor.png'), auto;
}

/* ========= JOURNAL ========= */
#journal h2 {
    font-family: 'Home Video', Courier, monospace;
    font-size: 1.25em;
    color: var(--accent);
    letter-spacing: 1px;
}


.float-images a:has(img), .float-images .invert-photos a:has(img):nth-of-type(2n) {
    max-width: 250px;
    float: left;
    margin-right: 1em;
}

.float-images a:has(img):nth-of-type(2n), .float-images .invert-photos a:has(img) {
    float: right;
    margin-left: 1em;
    margin-right: 0; 
}

.mood {
    display: flex;
    align-items: center;
    gap: 0.5em;
    margin-top: 2.5em;
}

.mood .emoji {
    margin-bottom: 0;
}

/* ========= COOKBOOK ========= */
.recipe h3 {
    color: var(--text-color);
}

/* Extra text "+" button */
h3 > button {
  font: inherit;
  background-color: inherit;
  border: none;
  padding: 0;
}

.recipe-txt, .recipe-notes {
    display: none;
}

/* ========= MEDIA LOG ========= */
article.media {
    display: grid;
    grid-template-columns: 1 3fr;
    gap: 0 2em;
}

article.media > time {
    grid-column-start: 2;
}

article.media > h2 {
    grid-column-start: 1;
    grid-column-end: 3;
}

.media-left > img {
    width: 210px;
    margin-top: 4em;
    filter: saturate(0.75);
    border: 5px solid transparent;
    box-sizing: border-box; 

}

.media-left > img:hover {
    filter: saturate(1);
    border: var(--accent) 5px solid;
}

.placeholder-img {
    visibility: hidden;
}

/* ========= Star Ratings ========= */
.rating {
    font-size: 1.5em;
    margin: auto;
    width: fit-content;
}

.half-star {
    color: var(--bg-color);
    background: linear-gradient(
        to right,
        var(--accent),
        var(--accent) 50%,
        var(--bg-color) 50%,
        var(--bg-color)
    );
    -webkit-background-clip: text;
    background-clip: text;
    -webkit-text-fill-color: transparent;
}

.full-star {
    color: var(--accent);
}

.empty-star {
    color: var(--bg-color);
}

/* ========= TELEVISION ========= */
#tv-wrapper {
    position: relative;
    width: 100%;
    height: 645px;
    margin: var(--std-margin);
}

#tv {
    width: 95%;
    position: absolute;
    top: 0;
    right: 0;
}

#video {
    position: absolute;
    top: 205px;
    right: 218px;
    width: 460px;
    height: 350px;
    border-radius: 45px;
}

/* ========= CHAT ========= */
#chattable {
    width: 100%;
    height: 400px;
}

/* ========= SITEMAP ========= */
#sitemap > ul {
    border: var(--text-color) 3px double;
    padding: 1em 2em;
}

/* Shorter screens like laptops */
@media screen and (max-height: 700px) {
    body > #webrings {
        display: none;
    }

    #webrings-mobile {
        display: block;
    }
    
    #webrings-mobile img {
        display: block;
        margin: auto;
    }

    .ditherring {
        border: none;
    }
}

/* ========= MOBILE FORMATTING ========= */

@media screen and (max-width: 1200px) {
    .mobile {
        display: block;
    }

    body {
        margin: auto;
        width: 85vw;
    }

    main {
        position: relative;
        width: 85vw;
        margin: auto;
        margin-top: 175px;
    } 

    h1 a {
        font-size: 0.8em;
    }

    h1 a:hover {
        font-size: 1em;
    }

    h2 {
        font-size: 1.5em;
    }
    
    body > header {
        top: 0;
        width: 85vw;
        box-shadow: var(--drop-shadow);
    }

    body > #webrings {
        display: none;
    }

    #webrings-mobile {
        display: block;
    }
    
    #webrings-mobile #no-ai-link {
        text-align: center;
        display: block;
        margin: auto;
    }

    #webrings-mobile .no-ai img {
        display: none;
    }

    .ditherring {
        border: none;
    }

    #pfp {
        display: none;
    }

    #pfp-mobile {
        margin: auto;
        width: 80%;
    }

    header > nav {
        flex-flow: row wrap;
        justify-content: center;
    }

    .art > article img, #art {
        max-width: 100%;
    }

    #journal > article > a:has(img), #journal > article > a:has(img):nth-of-type(2n) {
        margin: 1em;
    }
    
    #tv-wrapper {
        height: fit-content;
    }

    #tv {
        display: none;
    }

    #video {
        position: revert;
        display: block;
        margin: 0 auto;
        max-width: 100%;
    }

    #tv-credit {
        display: none;
    }

    .categories > button, #show-all, #toggle-chrono {
        font-size: 0.75em;
    }

    article.media {
        display: block;
    }

    .media-left > img {
        display: block;
        margin: auto;
    }
}

/* SCREEN READER */

.sr-only {
    position:absolute;
    left:-10000px;
    top:auto;
    width:1px;
    height:1px;
    overflow:hidden;
}