/* WIP Main Stylesheet for CPTKRB.net */

/* TABLE OF CONTENTS
    0. body - universal <body> style unless specified inline
    1. major inline elements - <h1>, <h2>, <p> etc.
    2. main boxes - <main> elements for most pages
    3. useful divs - variety of <div> elements
    4. unique elements - each subcategory is a collection of styles for a particular site element with multiple parts
        4a. toolbar - sticky toolbar at the top of (most) pages
        4b. music list - full list of music on music page
        4c. docs list - full list of docs on docs page
            4c1. formatting for individual docs - all styles for docs pages
    5. specific images - unique formatting for certain images that may recur
    6. custom buttons - exactly what it says on the tin
    7. custom links - same as above, but for links
    8. specialty/utility - miscellaneous bin
 */

body {
    background-color: black;
    background-image: url("resources/stars_bg.gif");
    background-attachment: fixed;
    margin: 0;
    padding: 0;
}

body.with-toolbar {
    margin-top: 50px;
}







/* ##################################### */
/* ####### Major inline elements ####### */
/* ##################################### */

h1 {
    font-family: "Courier New", sans-serif;
    color: white;
    text-align: center;
    font-size: calc(24px + 1vw);
}

h2 {
    font-family: "Courier New", sans-serif;
    color: white;
    text-align: center;
    font-size: calc(16px + 1vw);
}

h3 {
    font-family: "Rockwell", serif;
    font-weight: lighter;
    color: white;
    text-align: center;
    font-size: calc(12px + 0.8vw);
}

h4 {
    font-family: "Rockwell", serif;
    font-weight: lighter;
    letter-spacing: -0.5px;
    color: white;
    text-align: center;
    font-size: calc(10px + 0.6vw);
}

p {
    font-family: "Arial", sans-serif;
    color: white;
    font-size: 16px;
}

p.note {
    font-style: italic;
    text-decoration: underline;
}

p.subtitle {
    font-style: italic;
    color: yellow;
    text-align: center;
}

p.splash {
    padding: 10% 30px 0 30px;
    display: block;
    font-family: "Courier New", serif;
    font-size: calc(11px + 0.4vw);
    font-style: italic;
    text-align: center;
}

a {
    font-family: "Arial", sans-serif;
    color: yellow;
    text-shadow: -1px 1px white;
}

a.quicklink {
    font-weight: bold;
    text-decoration: none;
    font-size: max(1.3vw, 8px)
}

a.quicklink:hover {
    text-decoration: underline;
}

a.youtube {
    color: red;
    text-shadow: -1px 1px darkred;
}

a.bandcamp {
    color: deepskyblue;
    text-shadow: -1px 1px royalblue;
}

a.merch {
    color: mediumpurple;
    text-shadow: -1px 1px purple;
}

span.aside {
    font-style: italic;
    color: yellow;
}

.important {
    font-weight: bold;
    text-decoration: underline;
}

.purple-glow {
    color: mediumorchid;
    text-shadow: 0px 0px 5px magenta;
}

.center-pad {
    text-align: center;
    padding: 2px 8px 2px 8px;
}







/* ########################################### */
/* ####### Main 'boxes' for most pages ####### */
/* ########################################### */

main.in_progress {
    width: 40%;
    min-width: 400px;
    margin: 12% auto 2% auto;
    padding: 12px;
    border: double white 4px;
    background-color: black;
}

main.index-box {
    width: 65%;
    margin: 4% auto auto auto;
    display: flex;
}

main.index-wrapper {
    width: 73%;
    min-width: 300px;
    margin: auto auto auto 0%;
    padding: 0 1px 0 1px;
}

main.index {
    width: 100%;
    border: double white 2px;
    background-color: black;
    justify-content: center;
    padding: 0 1px 0 1px;
}

/* small screens only */
@media only screen and (max-width: 800px) {
    main.index-box {
        display: initial;
        width: 100%;

    }

    main.index-wrapper {
        width: auto;
        margin: 4% 5% auto 5%;
    }

    #site-updates {
        width: auto !important;
        margin: 30px 8% auto 8%;
    }

}

main.large {
    width: 80%;
    min-width: 600px;
    margin: 2% auto 2% auto;
    border: double white 4px;
    background-color: black;
}

@media only screen and (max-width: 800px) {

    main.large {
        min-width: 350px;
    }

}

main.full {
    width: 94%;
    margin: 2% auto 2% auto;
    border: double white 4px;
    padding: 25px;
    background-color: black;
}

@media only screen and (max-width: 800px) {

    main.full {
        width: 90%;
    }

}

main.doc {
    width: 70%;
    min-width: 300px;
    margin: 2% auto 2% auto;
    padding: 0 20px 0 20px;
    border: double white 4px;
    background-color: black;
}






/* ########################### */
/* ####### Useful divs ####### */
/* ########################### */

div.spacer {
    margin: 20%;
}

div.brief {
    width: 70%;
    margin: 2% auto 2% auto;
}

div.footer {
    width: 100%;
    height: 100px;
    background-color: black;
    border-top: 4px white double;
    margin: 0 auto;
}

div.trinkets {
    width: 60%;
    margin: 5% 0 5% 20%;
    padding: 12px;
    border: double white 4px;
    background-color: black;
    display: inline-block;
    text-align: center;
}

div.button_box {
    width: 100%;
    display: inline-block;
}

div.footer_border {
    width:100%;
    height: 0;
    border-top: 4px white double;
    margin: 10px 0 10px 0;
}

div.index-block {
    width: 100%;
    margin: 2px auto 2px auto;
    display: flex;
}

div.index-section {
    border: solid white 1px;
    padding: 2px;
    margin: 0 1px 0 1px;
}

div.notice {
    width: 90%;
    margin: 20px auto auto auto;
    height: 100px;
    border: 4px double red;
}






/* ############################### */
/* ####### Unique elements ####### */
/* ############################### */




/* ##### Toolbar ##### */

div.toolbar {
    width: 95%;
    margin: 10px auto auto auto;
    background-color: black;
    border: 2px white double;
    position: sticky;
    top: 20px;
    box-shadow: -10px 10px rgba(0, 0, 0, 0.6);
}

div.toolbar > ul {
    height:100%;
    width:100%;
    display:flex;
    justify-content: space-between;
    list-style-type: none;
    padding: 0;
    margin: 0;
}

div.toolbar > ul > li {
    text-align: center;
    align-content: center;
    border-right: solid white 1px;
    padding: 0;
    width:100%;
    line-height: 0.05em;
}

div.toolbar > ul > li.spacer {
    text-align: left;
    border:none;
    width:100%;
}

div.toolbar > ul > li:not(.no-hover):hover {
    background-color: yellow;
    cursor: pointer;
}

div.toolbar > ul > li > a {
    text-decoration: none;
    text-shadow: none;
}

div.toolbar > ul > li:not(.no-hover):hover > p {
    color: black;
}

div.toolbar > ul > li:not(.no-hover):hover > a > p {
    color: black;
}

div.toolbar > ul > li > .dropdown {
    display: none;
    position: absolute;
    left: 2px;
    background-color: black;
    min-width: 15%;
    border: 2px white double;
    z-index: 1;
    box-shadow: -10px 10px rgba(0, 0, 0, 0.6);
}

div.toolbar > ul > li:hover > .dropdown {
    display: block;
}

div.toolbar > ul > li:hover > .dropdown > ul {
    padding: 0;
    list-style-type: none;
}

div.toolbar > ul > li:hover > .dropdown > ul > li {
    border-bottom: solid white 1px;
    text-align: left;
    width:100%;
}

div.toolbar > ul > li:hover > .dropdown > ul > li:last-child {
    border-bottom: none;
}

div.toolbar > ul > li:hover > .dropdown > ul > li > a {
    text-decoration: none;
    text-shadow: none;
}

div.toolbar > ul > li:hover > .dropdown > ul > li > a > p {
    margin-left: 10px;
}

div.toolbar > ul > li:hover > .dropdown > ul > li:hover > a > p {
    color: orange;
}

/* small screens only */
@media only screen and (max-width: 800px){
    div.toolbar {
        width: 15%;
        min-width: 80px;
        margin: auto auto auto 15px;
    }
    div.toolbar > ul {
        display: initial;
        width: 100%;
    }
    div.toolbar > ul > li:not(:first-child) {
        display: none;
    }
    div.toolbar > ul:hover > li {
        display: block;
    }
    div.toolbar > ul:hover > li:first-child {
        background-color: yellow;
    }
    div.toolbar > ul > li > .dropdown {
        left: 100% !important;
        bottom: 10%;
        width: 200%;
    }
}


/* ##### Music List ##### */

ul.music_list {
    list-style-type: none;
    padding: 0;
    margin: 0;
    width: 100%;
    line-height: 0.8em;
}

ul.music_list > li {
    color:white;
    height:40px;
    border-bottom: solid white 2px;
    align-items: center;
    display:flex;
}



/* Small screens only */
@media only screen and (max-width: 1040px){
    ul.music_list > li {
        height:170px;
    }
    ul.music_list > li:first-child {
        display: none;
    }
}


ul.music_list > li:last-child {
    border-bottom: none;
}

ul.music_list > li > ul {
    height:100%;
    width:100%;
    display:flex;
    justify-content: space-between;
    list-style-type: none;
    padding: 0;
    margin: 0;
}




/* Small screens only */
@media only screen and (max-width: 1040px){
    ul.music_list > li > ul {
        display:inline;
    }
}

ul.music_list > li > ul > li {
    padding-left: 10px;
    text-align: left;
    border-right: solid white 2px;
    width:100%;
}




/* Small screens only */
@media only screen and (max-width: 1040px){

    ul.music_list > li > ul > li {
        border-right: none;
        margin-left: 15px;
        padding-top: 5px;
        align-content: center;
        text-align: left;
    }

    ul.music_list > li > ul > li:first-child > p {
        font-weight: bold;
        text-decoration: underline;
    }

    ul.music_list > li > ul > li:not(:first-child) > p {
        font-style: italic;
        margin-top: 0;
        margin-bottom: 0;
    }

    ul.music_list > li > ul > li:last-child > p {
        font-style: italic;
    }

    ul.music_list > li > ul > li:last-child {
        padding-left: 15px;
        padding-top: 15px;
        border-bottom: none;
    }
}

ul.music_list > li > ul > li > p {
    height:15px;
    width: inherit;
    word-wrap: break-word;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

ul.music_list > li > ul > li:last-child {
    padding-left: 0;
    width: 100px;
    text-align: center;
    border-right: none;
}




/* ##### Docs List ##### */

ul.docs_list {
    list-style-type: none;
    padding: 0;
    margin: 0;
    width: 100%;
    line-height: 1em;
}

ul.docs_list > li {
    color:white;
    height:60px;
    border-bottom: solid white 2px;
    align-items: center;
    display:flex;
}

ul.docs_list > li:last-child {
    border-bottom: none;
    background-color: dimgrey;
}

ul.docs_list > li:first-child {
    outline: solid yellow 3px;
}

ul.docs_list > li > ul {
    height:100%;
    width:100%;
    display:flex;
    justify-content: space-between;
    list-style-type: none;
    padding: 0;
    margin: 0;
}

ul.docs_list > li > ul > li {
    padding-left: 10px;
    padding-top: 4px;
    text-align: left;
    border-right: solid white 2px;
    width:150px;
}

ul.docs_list > li > ul > li:first-child {
    width:100%;
}

ul.docs_list > li > ul > li:last-child {
    border-right: none;
}

ul.docs_list > li > ul > li > p {
    height:20px;
    width: inherit;
    word-wrap: break-word;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

ul.docs_list > li > ul > li:not(:first-child) > span {
    display: none;
    font-family: Arial, serif;
    font-size: 16px;
}

@media only screen and (max-width: 800px){

    ul.docs_list > li {
        height:auto;
    }

    ul.docs_list > li:first-child {
        display: none;
    }

    ul.docs_list > li > ul {
        display: inline-block;
        list-style-type: none;
        list-style-position: inside;
    }

    ul.docs_list > li > ul > li {
        border: none;
        margin-left: 10px;
        width: 100%;
    }

    ul.docs_list > li > ul > li:first-child {
        height: auto;
    }

    ul.docs_list > li > ul > li:last-child {
        margin-bottom: 15px;
    }

    ul.docs_list > li > ul > li:not(:first-child) > p {
        display: none;
    }

    ul.docs_list > li > ul > li:not(:first-child) > span {
        display: initial;
    }

    ul.docs_list > li > ul > li:not(:first-child)::before {
        content: ">> ";
        display: inline;
    }

}

/* ### Formatting for Individual Docs ### */

main.doc > h1 {
    font-family: "Courier New", sans-serif;
    font-weight: normal;
    color: white;
    text-align: center;
    text-decoration: underline;
    font-size: calc(24px + 1vw);
    margin: 40px 10px 0 10px;
}
main.doc > h2 {
    font-family: "Courier New", sans-serif;
    font-weight: bold;
    color: yellow;
    text-align: center;
    font-size: calc(12px + 0.7vw);
    margin: 5px 10px 50px 10px;
}

main.doc > p {
    font-family: "Courier New", sans-serif;
    color: white;
    font-size: 16px;
    text-indent: 32px;
}

main.doc > p.hey {
    text-indent: 0px;
}

main.doc > div.citations {
    width: 100%;
    border-top: solid white 2px;
}

main.doc > div.citations > p {
    width: 100%;
    margin: 20px 0 10px 0;
}

main.doc > div.citations > p > span:first-child {
    vertical-align: super;
    font-size: 12px;
    color: yellow;
    font-weight: bold;

}



/* ### Site Updates Scroll ### */

p.update-date {
    padding-left: 16px;
    margin-bottom: 4px;
    color: lime;
    text-decoration: underline;
    font-weight: bold;
}

p.update-content {
    padding-left: 16px;
    margin-top: 6px;
    color: yellowgreen;
}




/* ### About Me ### */

div.about-me-box {
    display: flex;
    width: 100%;
}

div.about-me-box > div:first-child {
    width: 20%;
    display: block;
}

div.about-me-box > div:first-child > img {
    width: 90%;
    border: 2px double white;
    object-fit: cover;
}

div.about-me-box > div:last-child {
    width:80%;
    padding-left: 15px;
}

@media only screen and (max-width: 800px) {
    div.about-me-box {
        display: block;
        width: 100%;
    }
    div.about-me-box > div:first-child {
        width: 100%;
        display: flex;
        padding-bottom: 30px;
    }

    div.about-me-box > div:first-child > img {
        width: 60%;
    }

    div.about-me-box > div:first-child > div {
        padding-left: 25px;
    }

    div.about-me-box > div:last-child {
        width:100%;
        padding-left: 0;
    }
}

p.about-me {
    text-align: left;
    font-family: Rockwell, serif;
    margin: 10px auto auto 0px;
}

p.about-me > span.row {
    font-weight: bold;
    color: gold;
    text-decoration: underline;
}

p.about-me > span.entry {
    color: yellow;
}

div.about-lists {
    width: 100%;
    display: flex;
}

div.about-lists > div.about-list {
    margin: 0 20px auto 20px;
    width: 100%;
    padding-right: 30px;
}

@media only screen and (max-width: 800px) {
    div.about-lists {
        display: block;
    }

    div.about-lists > div.about-list {
        width: 85%;
    }
}

div.about-lists > div.about-list > ul{
    width: 100%;
    border: 1px white solid;
    padding: 15px;
}

div.about-lists > div.about-list > ul > li {
    font-family: "Arial", sans-serif;
    color: violet;
    font-size: 16px;
    padding-bottom: 5px;
    list-style-type: none;
}

/* ### About Site ### */

@media only screen and (max-width: 800px) {
    main.has-inserts > div {
        display: block !important;
    }

    main.has-inserts > div > div {
        width: auto !important;
        padding: 0 !important;
    }
}

/* for list of 'done' things */
div.about-lists > div.about-list > ul.done > li {
    color: grey;
    text-decoration: line-through;
}

div.about-lists > div.about-list > ul > li::before {
    content: ">> ";
    color: white;
}

div.about-lists > div.about-list > ul > li > ul{
    width: 100%;
    padding-left: 18px;
    list-style-type: none;
}

div.about-lists > div.about-list > ul > li > ul > li {
    color: plum;
}

div.about-lists > div.about-list > ul > li > ul > li::before {
    content: "> ";
    color: white;
}




/* ### Links Page ### */

ul.links {
    width: 100%;
    padding: 15px;
    list-style-type: none;
}

ul.links > li {
    font-family: "Arial", sans-serif;
    font-size: 16px;
    padding-bottom: 5px;
    list-style-type: none;
}

ul.links > li::before {
    content: ">> ";
    color: inherit;
}

ul.links > li > a {
    color: inherit;
    text-decoration: none;
}

ul.links > li > a:hover {
    text-decoration: underline;
}

ul.links > li > span {
    font-family: "Arial", sans-serif;
    font-size: 16px;
    font-style: italic;
    color: white;
    visibility: hidden;
    padding-left: 15px;
}

ul.links > li:hover > span {
    visibility: visible;
}




/* ################################################## */
/* ####### Specific images that may be reused #######
/* (some of these may be deleted soon-ish if they prove unnecessary) */
/* ################################################## */

img.logo {
    width: 90%;
    margin: auto;
    display: block;
}

img.loading {
    width:100%;
    margin: auto;
    display: block;
}

img.button {
    margin: 5px;
    height: 45px;
    width: auto;
}

img.icon_small {
    height: 50px;
    display: inline-block;
}

img.icon_small_variant {
    width: 60%;
    margin: 10px auto 0 auto;
    display: block;
}

img.icon_full {
    width: 100%;
    display: block;
    margin: 20% auto 20% auto;
}


/* Citation Toggle */
div.citation_toggle_container {
    position: sticky;
    top: 80px;
    width: 95%;
}
div.citation_toggle {
    width: 16%;
    height: 100%;
    min-width: 200px;
    min-height: 75px;
    border: solid white 2px;
    background-color: black;
    margin-left: auto;
    margin-right: 30px;
    padding: 5px;
    padding-bottom: 15px;
    justify-content: center;
    text-align: center;
    opacity: 30%;
    transition-duration: 0.2s;
}

@media only screen and (max-width: 800px) {
    div.citation_toggle {
        display: flex;
        min-height: initial;
        padding-bottom: 5px;
    }
    div.citation_toggle > h4 {
        width: 50%;
        margin-top: 10px;
        margin-bottom: 0 !important;
    }
    div.citation_toggle > button {
        width: 50% !important;
        height: 100%;
    }
}

div.citation_toggle:hover {
    opacity: 100%;
}






/* ############################## */
/* ####### Custom buttons ####### */
/* ############################## */

button.trinket_button {
    font-family: "Courier New", serif;
    background-color: black;
    color: white;
    border: white outset 6px;
    height: 50px;
    width:45%;
    margin: 5px 5px 5px 5px;
    cursor: pointer;
}

button.trinket_button:hover {
    color:yellow;
}

button.trinket_button:active {
    border: white inset 6px;
    background-color: yellow;
    color: black;
}

button.download-button {
    font-family: "Courier New", serif;
    font-weight: bold;
    background-color: black;
    color:mediumorchid;
    display: inline-block;
    height: 100%;
    width: 100px;
    border: white outset 6px;
    cursor: pointer;
    transition-duration: 0.3s;
}

button.download-button:hover {
    color: fuchsia;
    text-shadow: 0px 0px 5px magenta;
    transition-duration: 0.3s;
}

button.download-button:active {
    border: white inset 6px;
    background-color: fuchsia;
    color: black;
    text-shadow: none;
    transition-duration: 0s;
}

@media screen and (max-width: 850px){
    button.trinket_button {
        width: 100%;
    }
}

button.toggle {
    font-family: "Courier New", serif;
    font-weight: bold;
    background-color: black;
    color:yellow;
    display: inline-block;
    height: 100%;
    width: 100px;
    border: white solid 2px;
    cursor: pointer;
    padding-top: 10px;
    padding-bottom: 10px;
}

button.toggle:hover {
    color: black;
    background-color: white;
}

button.toggle:active {
    background-color: black;
}






/* ################################## */
/* ####### Custom Links (<a>) ####### */
/* ################################## */


a.citation {
    vertical-align: super;
    font-weight: bold;
    font-size: 12px;
    text-shadow: none;
    text-decoration: none;
}

a.citation:hover {
    color: red;
    text-shadow: 0px 0px 5px red;
    transition-duration: 0.2s;
}







/* Specialty / Utility */

::selection {
    color: black;
    background-color: white;
}

.construction span {
    color: darkgray;
    text-shadow: -2px 2px gray;
}

.construction span:nth-of-type(even) {
    color: yellow;
    text-shadow: -2px 2px gray;
}

.caesar-box {
    width: 30%;
    height: 400px;
    min-width: 400px;
    margin: 4% auto 2% auto;
    padding: 12px;
    border: double white 4px;
    background-color: black;
}

#site-updates {
    opacity: 35%;
    transition-duration: 0.1s;
}

#site-updates:hover {
    opacity: 100%;
}

@media only screen and (max-width: 800px) {
    #site-updates {
        opacity: 100%;
    }
}

.asterisk > .tooltip {
    visibility: hidden;
    background-color: black;
    text-align: center;
    padding: 5px 0;
    border: 1px white solid;
    position: absolute;
    z-index: 1;
    left: 10%;
}

.asterisk:hover > .tooltip {
    visibility: visible;
}

.tooltip-inline {
    position: relative;
}

.tooltip-inline > span {
    background-color: black;
    text-align: center;
    top: 1.5em;
    left: -50px;
    width: 15vw;
    padding: 5px;
    border: 1px white solid;
    box-shadow: -10px 10px rgba(0, 0, 0, 0.6);
    position: absolute;
    visibility: hidden;
}

.tooltip-inline:hover > span {
    visibility: visible;
}