html {
    --c_blue: #004263;
    --c_light_gray: #dedede;
    --c_dark_gray: #484848;

    --site_title_height: 1.5rem;
    --site_logo_dimension: calc(2 * var(--site_title_height));
    --tabs_gap: 2rem;
    --tabs_gap_site_image: .5rem;

    scrollbar-gutter: stable both-edges;
}

body {
    font-family: "Roboto", sans-serif;

    display: flex;
    flex-direction: column;
    justify-content: flex-start;
    align-items: flex-start;
    height: 100vh;

    /* set display width */
    width: 940px;
    margin: 0 auto;
    position: relative;
}

table {
  border-collapse: collapse;
}

a:link    { text-decoration: none; color: var(--c_blue); }
a:hover   { text-decoration: underline; }
a:hover   { color: var(--c_blue) !important; }
a:visited { color: var(--c_blue); }
/* a:active  { color: #999999; } */

header {
    flex-grow: 0;

    width: 100%;
    margin-top: 1rem;
    margin-bottom: 1rem;
}

footer {
    width: 100%;
    flex-grow: 0;
    padding-top: 4rem;
    padding-bottom: 1rem;
}

.tabs {
    width: calc(100% + calc(var(--site_logo_dimension) + var(--tabs_gap_site_image)));

    display: flex;
    flex-direction: row;
    justify-content: flex-start;
    align-items: flex-end;

    /* make grumples hang off the left margin */
    position: relative;
    left: calc(-1 * calc(var(--site_logo_dimension) + var(--tabs_gap_site_image)));
}

.tab {
    flex-grow: 0;
    position: relative;
}
.tab > a {
    line-height: var(--site_title_height);
}
.tab:not(:last-of-type) {
    padding-right: var(--tabs_gap);
}

.tab.site_image {
    padding-right: var(--tabs_gap_site_image);
}
.tab.site_image img {
    position: relative;
    height: var(--site_logo_dimension);
    width: var(--site_logo_dimension);
    top: calc(.5 * calc(var(--site_logo_dimension) - var(--site_title_height)));
}

.tab.site_title {
    font-size: var(--site_title_height);
    padding-right: 4rem;
}

.tab.rss {
    flex-grow: 1;
    text-align: right;
}

.tab.selected > a:before {
    content: "\27A4";
    position: absolute;
    left: -1.2em;

    /* text-decoration: underline; */
}

.projects {
    display: grid;
    grid-template-columns: [image] 0fr [description] 11fr;
    column-gap: 4rem;

    --image_height: 144px;
}

.project_image,
.project_details {
    padding-top: 3rem;
}

.project_image {
    height: var(--image_height);
    width: var(--image_height);
    text-align: center;
    justify-self: right;
    direction: rtl;
}

.project_image img {
    height: var(--image_height);
}

.project_details {
    justify-self: left;
    width: 100%;
}

.project_details .info {
    position: relative;
    line-height: 2rem;
}

.project_details .title {
  font-size: 2rem;
}

.project_details .date {
    position: absolute;
    right: 0px;
    bottom: 0px;
    font-size: 1.1rem;
    color: #666666;
}

.content {
    flex-grow: 1;
    width: 100%;
}

.content h1 {
    margin-bottom: 1rem;
}

.essays_list {
    width: 100%;
}

.essays_list td {
    padding-top: .5rem;
    padding-bottom: .5rem;
    vertical-align: top;
}

.essay_entry .counter {
    width: 3em;
}
.essay_entry .title {
}
.essay_entry .date {
}
.essay_entry .tags {
    display: flex;
    flex-direction: row;
    justify-content: flex-start;
    gap: .5rem;
}

.essay_entry .tag {
    color: var(--c_dark_gray);
    font-size: .9rem;
}

span.separator:before {
    content: "\2022"; /* bullet */
    padding-left: .5em;
    padding-right: .5em;
}

.essay_text {
    line-height: 1.5;
}

p + p {
    margin-top: 1rem;
    margin-bottom: 1rem;
}

.essay_text img {
    border: 2px solid #888888;
    border-radius: .75rem;
    margin-left: 2rem;
    width: 50%;
    float: right;
}

.essay_text pre {
  background-color: var(--c_light_gray);
  border: 1px solid var(--c_dark_gray);
  padding: 1em;
}

.essay_text code {
  font-family: "Roboto Mono";
  font-size: 90%;
}

pre {
  background-color: var(--c_light_gray);
  border: 1px solid var(--c_dark_gray);
  padding: 1em;
}

code {
  font-family: "Roboto Mono";
  font-size: 90%;
}
