:root {
    --fg-color: #333;
    --bg-color: #eee;
    --secondary-color: #ccc;
    --comment-color: #aaa;
    --subtitle-color: #bbb;
}

html {
    box-sizing: border-box;
    font-size: 16px;
}
  
*, *:before, *:after {
    box-sizing: inherit;
    margin: 0;
}

.container {
    color: var(--fg-color);
    padding: .5em;
}

.biocard {
    max-width: 768px;
    padding: 1em;
}

.biocard > .name {
    border-left: 0.25em solid var(--fg-color);
    padding-left: 0.25em;
    font-family: 'PT Mono', monospace;
    font-size: 2em;
    font-weight: bold;
    margin-bottom: 0.5em;
}

.section {
    position: relative;
    background-color: #eee;
    padding: 1em;
}

.section:not(:last-child) {
    margin-bottom: 1em;
}

.section > .name {
    position: absolute;
    bottom: 0;
    right: 1.5rem;
    color: var(--secondary-color);
    font-family: 'PT Serif', monospace;
    font-size: 1.5em;
    font-weight: bold;
    margin-bottom: 0.5em;
}

.groups {
    display: flex;
    flex-wrap: wrap;
}

.group {
    width: 310px;
}

.group.wide {
    flex: 0 0 100%;
}

.group:not(:last-child) {
    margin-bottom: 0.5em;
}

.group > .name {
    font-size: 1.25em;
    font-family: 'PT Serif', serif;
    font-weight: bold;
}

.member {
    font-family: 'PT Mono', monospace;
}

.member.body, .footer {
    font-family: 'PT Serif', monospace;
}

a, a:visited {
    color: var(--fg-color);
}

.comment {
    color: var(--comment-color);
}

.comment::before {
    padding-right: .25em;
    content: '//';
}

.copyleft {
    display: inline-block;
    top: 2px;
    position: relative;
    transform: rotate(180deg);
}

.subtitle {
    color: var(--subtitle-color);
    font-size: 16px;
    margin-bottom: 1em;
}
