html
{
	height:100vh;
}

body
{
	margin:0;
	padding:0;
	font-family:"Georgia", "Times New Roman", serif;
    line-height:1.7;
    color:#222;
    font-size: 1rem;
}

.nav
{
	box-sizing:border-box;
	background-color:#f9f9f9;
	padding:16px;
	text-align:center;
}

.logo
{
	margin-bottom:1rem;
}

.logo-inner
{
	display:inline-flex;
	flex-direction:row;
	align-items:center;
	justify-content:center;
	gap:8px;
	max-width:200px;
}

.logo img
{
	max-width:64px;
}

.logo h1
{
	display:inline-block;
	text-align:center;
}

.nav-links ul
{
	margin:0;
	padding:0;
	list-style-type:none;
}

.main
{
	flex:1;
	overflow-y:auto;
}

.main-inner
{
	box-sizing:border-box;
	padding:16px;
	overflow-x:hidden;
}

@media ( min-width: 481px )
{
	.nav
	{
		position:fixed;
		top:0;
		left:0;
		width:240px;
		height:100%;
		overflow-y:auto;
		direction:rtl;
	}

	.nav-inner
	{
		direction:ltr;
	}

	.main
	{
		margin-left:240px;
		width:calc(100vw-240px);
	}
}

@media ( min-width:calc( 720px + 240px * 2 ) )
{
	.main
	{
		margin:0 auto;
		width:100%;
		max-width:720px;
	}

}

/* content styles */

.section
{
	margin-bottom:32px;
    transition: background-color 1s ease;
}

.section.highlight
{
    animation:highlightFade 1.2s ease forwards;
}

@keyframes highlightFade
{
    0% { background-color: rgba(200, 200, 200, 0); }
    20% { background-color: rgba(200, 200, 200, 0.25); }
    100% { background-color: rgba(200, 200, 200, 0); }
}

.subsection
{
	border:solid 1px #5cc272;
	padding:8px;
	margin-bottom:16px;
}

/* All default styles after this point */

/* Slight indent for symmetry */
h1, h2, h3, p, table, ul
{
	margin-left:4px;
}

/* Headings */
h1, h2, h3
{
    font-family: "Merriweather", "Georgia", serif;
    color: #1a1a1a;
	margin:0;
	padding:0;
    margin-bottom: 1rem;
    line-height: 1.2;
}

h1
{
    font-size:1.6rem;
    margin:0;
	padding:0;
}

h2
{
    font-size: 1.8rem;
    border-bottom: 1px solid #eee;
    padding-bottom: 0.2rem;
}

h3
{
    font-size: 1.4rem;
    font-weight: 600;
}

/* Paragraphs */
p
{
    margin-bottom: 1.2rem;
}

p:last-child
{
	margin-bottom:0;
}

/* Links */
a
{
    color: #0077cc;
    text-decoration: none;
    border-bottom: 1px dotted #0077cc;
    transition: color 0.2s ease, border-bottom-color 0.2s ease;
}

a:has(img)
{
	transition:none;
	border-bottom:0;
}

a:hover
{
    color: #005fa3;
    border-bottom-color: #005fa3;
}

/* Lists */
ul, ol
{
    margin-left: 2rem;
    margin-bottom: 1.2rem;
}

li
{
    margin-bottom: 0.5rem;
}

/* Tables */
table
{
    border-collapse: collapse;
    width: 100%;
    margin-bottom: 1.5rem;
    font-size: 0.95rem;
}

th, td
{
    border: 1px solid #ccc;
    padding: 0.6rem 1rem;
    text-align: left;
}

th
{
    background-color: #f9f9f9;
    font-weight: 600;
}

/* Subtle zebra stripes */
tr:nth-child(even)
{
    background-color: #fafafa;
}

/* Blockquotes */
blockquote
{
    font-style: italic;
    color: #555;
    border-left: 4px solid #eee;
    padding-left: 1rem;
    margin: 1rem 0;
}

/* Code */
pre
{
	margin-top:0;
	margin-left:0;
	margin-right:0;
	margin-bottom:1rem;
	tab-size:4;
	font-size:1rem;
	line-height:1.1rem;
	font-family:'Courier New', Courier, monospace;
}

code
{
	display:inline-block;
	border:solid 1px grey;
	padding:0 4px;
	overflow-x:auto;
}

pre code
{
	display:block;
	padding:8px;
}

details h3
{
	margin:0;
	padding:0;
	display:inline-block;
	margin-left:8px;
}

summary
{
	cursor:pointer;
}