html, body {
    height: 100%;
}

html {
	margin: 0;
	padding: 0;

	background-color: white; /* temp */
}

body {
	margin: 0;
	padding: 0;

	line-height: 1.8em;
    font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Ubuntu, Cantarell, "Helvetica Neue", sans-serif;
}

a, a:visited {
    color: inherit;
	text-decoration: underline;
	text-decoration-style: solid;
}

a:hover {
	text-decoration-style: solid;
}

h1, h2 {
	font-family: 'Rokkitt', Roboto, Ubuntu, sans-serif;
}

h1 {
	font-weight: 700;
	font-size: 1.8em;
    line-height: 1.2;
}

h2 {
	font-weight: 500;
	font-size: 1.5em;	
    line-height: 1;
	margin-top: 28px;
}

hr {
    border-top: 1px solid #aaa; 
    border-block-end-style: none;
    margin: 2em 0 2em 0;
}

table {
    border: 1px solid #ddd;
    border-collapse: collapse;
}

table td, table th {
    padding: .75rem;
    vertical-align: top;
    border-bottom: 1px solid #dee2e6;
}

/* Hack since you can't have an empty header in Hugo Markdown */ 
table tr th:empty {
    display: none;
}

.infotext {
	display: inline;
	font-variant: small-caps;
	color: rgb(211, 211, 211);
}

.moretext {
	font-family: 'Roboto', sans-serif;
	font-variant: small-caps;
	font-size: 0.8em;
}

#content-container {
	display: flex;
	flex-direction: row;
	flex-wrap: nowrap;
	align-items: stretch;
	align-content: stretch;
    min-height: 100%;
}

#left-container {
	display: flex;
	flex: 0 0 auto;

	flex-direction: column;
	justify-content: flex-start;

    width: 30%;
    min-width: 240px;
    max-width: 350px;

	background-color: black;
	color: rgb(200, 200, 200);
}

#left-container > #contents {
	flex-grow: 1;

	padding: 1em;
	font-size: 1.2em;

	font-family: 'Rokkitt', sans-serif;
}

.centered-container {
    display: flex;
    align-items: center;
}

.edge-to-edge, .edge-to-edge-top {
	/* TODO: Sucks that this has to be hard coded. Better way? */
	margin: 0 -30px;
	width: calc(100% + 60px) !important;
    vertical-align: bottom;
}

/* edge-to-edge-top is used for images at the very top of the page, where they need to underlap the 16px
   padding added by the paragraph tag as well */
.edge-to-edge-top {
	margin: -48px -30px 16px -30px;
}

#right-container {
	flex: 1 1 100%;
}

#right-container > :not(.bleed) {
    /* 1024 - max-width(left-container) */
    /* max-width: 674px; */
    max-width: 880px;
}

.withlogo {
	background-color: #9900ff;
}

#townportal {
	height: 200px;
}

.sidebar-link {
	font-variant: small-caps;
}

#townportal #logo {
	height: 100px;
}

#logo {
	position: relative;
	top: 50%;
	left: 50%;
	transform: translate(-50%, -50%);
}

#desc {
	margin-top: 0.5em;
    margin-bottom: 1.5em;
}

#nav {
	color: white;
	font-size: 1.5em;
	flex-grow: 1;
}

#nav a, a:visited {
	text-decoration: none;
}

#nav a:hover {
	text-decoration: underline;
}

#nav ul {
	padding: 0;
	list-style-type: none;
    line-height: 1.25em;
}

#nav-bottom {
	margin: 1em;
}

#webring {
    height: 30px;
    float: right;
}

.padded-container {
	padding: 0px 30px 60px 30px;
}

.mono {
	font-family: 'Menlo', 'Input Mono', 'Courier', monospace;
}

#terminal_spot {
	background-color: black;
	font-size: 2em;
	color: white;
	padding: 1em;
}

.blinkyboy {
	animation: blink-animation 2s infinite;
}

@keyframes blink-animation {
	0% {
		opacity: 0;
	}
	50% {
		opacity: 1;
	}
	100% {
		opacity: 0;
	}
}

.subcontext {
	display: inline;
	padding-left: 1em;
	color: lightslategray;
}

/* Overrides for mobile */

@media only screen and (max-width: 768px) {
    #left-container {
        width: auto;
        min-width: none;
        max-width: none;
        z-index: 100;
    }

    #right-container {
        z-index: 50;
    }

    #content-container {
        flex-direction: column;
    }

    #content-container.inverted {
        flex-direction: column-reverse;
    }

    .withlogo {
        display: flex;
        align-items: center;
        justify-content: center;
    }

    #logo {
        transform: none;
        top: auto;
        left: auto;
		max-width: 100%;
    }

    .logolink {
        /* on home page only */
        width: 60%;
		display: inline-block;
		text-align: center;
    }

}

/* Pagination */ 

.pagination {
    display: flex;
    justify-content: center;
    list-style: none;
    padding: 0;
}

.pagination li {
    margin: 0 8px;
}

.pagination a {
    color: #666;
    text-decoration: underline;
}

.pagination .active a {
    color: #000;
    text-decoration: none;
}

.pagination .disabled a {
    color: #999;
    text-decoration: none;
}

.pagination :not(.disabled) a:hover {
    color: #444;
}

figure {
    margin: 2em 0 2em 0;
}

figcaption {
    padding-top: 1.2em;
    text-align: center;
    font-style: italic;
}

