:root
{
    --headerbgcolor:#480082;
    --headercolor:#ffd700;
    --headerborder:#dc143c;
    --contentbgcolor:#fff3b5;
    --contentcolor:#480082;
    --linkcolor:#dc143c;
    --navlinkcolor:#ff4e4e;
    --linkhovercolor:lightcoral;
    --linkvisitedcolor:rgb(173, 0, 0);
    --griditemborder:indigo;
    --griditemshadow:slategray;
    --headerheight:200px;
    --headerpadding:20px;
}
*
{
    box-sizing:border-box;
}
html
{
    scroll-padding-top:40px;
}
body
{
    margin:0;
    font-family:Arial, Helvetica, sans-serif;
    font-family: Cambria, Cochin, Georgia, Times, 'Times New Roman', serif;
    background-color: #fffff0;
}
.block, .show
{
    display:block;
}
.none, .hide
{
    display:none;
}
.left
{
    text-align:left;
}
.center
{
    text-align:center;;
}
.right
{
    text-align:right;
}
a
{
    color:var(--linkcolor);
    text-decoration:none;
}
a:visited
{
    color:var(--linkvisitedcolor);
}
a:hover
{
    color:var(--linkhovercolor);
}
.nav
{
    background-color:var(--headerbgcolor);
    color:var(--headercolor);
    position:fixed;
    top:0;
    width:100%;
}
.nav ul
{
    list-style-type:none;
    margin:0;
    padding:0;
    overflow:hidden;
}
.nav ul li
{
    display:inline-block;
}
.nav-item, .nav-item-active
{
    padding:10px 20px 10px 20px;
    font-size:24px;
}
.nav-item
{
    background-color:var(--headerbgcolor);
}
.nav-item-active
{
    background-color:var(--headercolor);
    color:var(--linkcolor);
}
.nav-item a
{
    text-decoration:none;
    color:var(--headercolor);
}
.nav-item a:visited
{
    color:var(--headercolor);
}
.nav-item a:hover
{
    color:var(--linkcolor);
}
.menu-item a:visited
{
    color:var(--headercolor);
}
.menu-item a:hover
{
    color:var(--linkcolor);
}
.nav ul li.flex-show
{
    display:none;
}
.header, .tagline
{
    background-color:var(--headerbgcolor);
    color:var(--headercolor);
    text-align:center;
}
.header
{
    padding:20px 0 10px 0;
    margin-top:40px;
}
.header img
{
    max-width:25%;
}
.tagline
{
    font-size:32px;
    padding:10px 0 20px 0;
    border-bottom:4px solid var(--headerborder);
}
.output
{
    text-align:center;
    padding:4px;
    width:100%;
    display:none;
}
.heading
{
    text-align:center;
    margin-bottom:-10px;
}
.heading-left
{
    text-align:left;
    margin-bottom:-10px;
    margin-left:20px;
}
.intro
{
    padding:0 20px 0 20px;
    font-size:20px;
    user-select:none;
}
.quote
{
    padding:0 20px 0 20px;
    font-style:italic;
    font-size:30px;
    text-align:center;
    color:#480082;
}
.content
{
    display:grid;
    margin-bottom:90px;
    font-size:20px;
}
.grid-item
{
    background-color:var(--contentbgcolor);
    color:var(--contentcolor);
    padding:20px;
    margin:10px 10px 10px 10px;
    border:4px solid var(--griditemborder);
    box-shadow:8px 8px var(--griditemshadow);
}
.charname
{
    font-size:30px;
    color:var(--headerborder);
    font-variant-caps:small-caps;
    font-weight:bold;
    font-style:italic;
}
.trilogy-heading 
{
    margin:20px;
    text-align:center;
}
.trilogy-heading img 
{
    width:30%;
}
@media screen and (max-width:800px)
{
    .trilogy-heading img 
    {
        width:50%;
    }
}
@media screen and (max-width:600px)
{
    .trilogy-heading img 
    {
        width:80%;
    }
}
.footer
{
    position:fixed;
    bottom:0;
    width:100%;
    border-top:4px solid var(--headerborder);
    overflow-x:hidden;
    background-color:var(--headerbgcolor);
    color:var(--headercolor);
    font-size:14px;
    text-align:center;
    padding:10px;
    display:grid;
    grid-template-columns:auto auto;
    justify-content:center;
    align-items:center;
}
.footer-item
{
    display:inline-block;
    padding-left:10px;
    padding-right:10px;
}
.menu-container
{
    display:none;
    position:absolute;
    z-index:99;
    top:0;
    text-align:center;
    width:100%;
    background-color:var(--headerbgcolor);
    padding:20px 20px 40px 20px;
}
.menu-item
{
    font-size:24px;
    padding:4px;
}
.menu-close
{
    text-align:right;
    cursor:pointer;
    margin-top:-10px;
    margin-right:-6px;
}
@media screen and (max-width:1210px)
{
    .nav-item-active, .menu-btn
    {
        vertical-align:middle;
    }
    .menu-open
    {
        float:right;
        cursor:pointer;
    }
    .nav ul li.flex-hide
    {
        display:none;
    }
    .nav ul li.flex-show
    {
        display:inline-block;
    }
}
@media screen and (max-width:800px)
{
    .menu-container
    {
        max-height:calc(100%-20px);
        overflow-y:auto;
        overflow-x:hidden;
    }
    .footer
    {
        z-index:1;
    }
    .header
    {
        padding-top:10px;
    }
    .header img
    {
        max-width:30%;
    }
    .tagline
    {
        font-size:18px;
        padding:6px;
    }
}
@media screen and (max-width:500px)
{
    .header img
    {
        max-width:40%;
    }
    .tagline
    {
        font-size:16px;
        padding:0 0 4px 0;
    }
}