:root {
    --home-header-gallery-width: calc(min(900px, 92vw));
    --home-grid-pad: var(--medium-space);
    --home-header-gallery-image-height: calc((var(--home-header-gallery-width) - ((var(--home-columns) - 1) * var(--home-grid-pad))) / var(--home-columns));
    --gallery-image-height: calc((var(--content-width) - ((var(--gallery-columns) - 1) * var(--home-grid-pad))) / var(--gallery-columns));
    /* --home-header-gallery-image-height: calc(var(--home-header-gallery-width) / 2); */
    --content-width: calc(min(900px, 92vw));
}
/* media queries are broken until https://caniuse.com/css-media-range-syntax */
/* so override everything at each breakpoint */
                                    :root { --home-columns: 1; --gallery-columns: 1; --font-size: 12px; --big-space: 29px; --medium-space: 16px; --small-space: 6px; }
@media all and (min-width: 360px) { :root { --home-columns: 2; --gallery-columns: 2; --font-size: 14px; --big-space: 32px; --medium-space: 18px; --small-space: 7px; } }
@media all and (min-width: 540px) { :root { --home-columns: 2; --gallery-columns: 3; --font-size: 14px; --big-space: 35px; --medium-space: 20px; --small-space: 8px; } }
@media all and (min-width: 720px) { :root { --home-columns: 3; --gallery-columns: 4; --font-size: 14px; --big-space: 38px; --medium-space: 22px; --small-space: 9px; } }
/* @media all and (min-width: 900px) { :root { --home-columns: 5; } } */

body {
    margin: 0;
    padding-top: calc(min(10vh, var(--big-space)));
    padding-bottom: calc(min(10vh, var(--big-space)));
    font: 16px montserrat;
    font: var(--font-size) montserrat;
    color: black;
    background: white;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: var(--big-space);
}
:where(body > *) {
    width: var(--content-width);
}
header {
    text-align: center;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: var(--medium-space);
}
header h1 {
    font-size: 23px;
    font-size: calc(var(--font-size) * 1.4375);
    letter-spacing: 1px;
    font-weight: 500;
    margin: 0;
}
header h1 a, header h1 a:link, header h1 a:visited {
    color: black;
    text-decoration: none;
}
header > nav ul {
    list-style: none;
    display: flex;
    flex-wrap: wrap;
    /* align-items: center; */
    justify-content: center;
    gap: 1em;
    padding: 0;
    margin: 0;
}
header > nav a:link, header > nav a:visited, header > nav a:active {
    color: black;
    text-decoration: none;
}
header > nav a:hover {
    color: #495c8b;
}

hr {
    height: 1px;
    border: none;
    background: linear-gradient(to right, transparent, black 50%, transparent);
}

.gallery-outer {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    width: var(--content-width);
    gap: var(--home-grid-pad);
}
.gallery-outer.home-header-gallery {
    width: var(--home-header-gallery-width);
}
.post-outer {
    width: var(--gallery-image-height);
    text-align: center;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: var(--small-space);
}
.home-header-gallery .post-outer {
    width: var(--home-header-gallery-image-height);
}
.post-image {
    display: block;
    height: var(--gallery-image-height);
    width: var(--gallery-image-height);
    margin-left: auto; margin-right: auto;
}
.home-header-gallery .post-image {
    height: var(--home-header-gallery-image-height);
    width: var(--home-header-gallery-image-height);
}
.post-image > img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.big-image {
    max-width: 100%;
    height: auto;
}
.big-image-layout {
    display: flex;
    flex-direction: column;
    gap: var(--big-space);
}
@media screen and (min-width: 700px) {
    .big-image-layout {
        flex-direction: row;
        align-items: flex-start;
    }
    .big-image-layout > * {
        min-width: 0;
        flex: 1 1 0;
    }
}




/* everything below here was pasted from another project. mostly wfpl stuff probably */

.icon {
    display: inline-block;
    width: 40%;
}

.top_button {
    display: inline-block;
    width: 30%;
}

html {
    overflow-y: scroll;
}

img {
    display: block;
}

code.html {
    display: block;
    font: 12px monospace;
    border: 1px solid #000;
    background: #ccc;
}

code {
    font-family: monospace;
    padding: 0 2px;
    display: inline-block;
    box-shadow: 0 0 2px rgba(0, 0, 0, 0.6);
    border-radius: 2px;
}

.caption {
    font-weight: bold;
}

*+.caption {
    margin-top: 15px;
}

.field {
    padding-top: 3px;
}

div.field_notes {
    font-size: 12px;
    line-height: 16px;
}

fieldset {
    border: 1px dotted #000;
    padding: 0 15px 15px 15px;
    margin-top: 15px;
    margin-bottom: 15px;
    position: relative;
}

legend {
    padding: 0 6px;
    font-weight: bold;
}

div.error {
    border: 2px solid #f00;
    padding: 13px;
    margin: 20px;
    background: #fdd;
}

h1 {
    font-size: 23px;
    margin-top: 20px;
    margin-bottom: 10px;
}

h1+h4.tagline {
    margin-top: -10px;
    margin-bottom: 10px;
}

h2 {
    font-size: 19px;
    font-weight: bold;
    margin-top: 16px;
    margin-bottom: 4px;
}

h2+h4.tagline {
    margin-top: -8px;
    margin-bottom: 8px;
}

h3 {
    font-size: 16px;
    margin-top: 12px;
    margin-bottom: 5px;
}

h3+h4.tagline {
    margin-top: -5px;
    margin-bottom: 5px;
}

h4 {
    font-size: 14px;
    margin-top: 10px;
    margin-bottom: 3px;
}

h4+h4.tagline {
    margin-top: -3px;
    margin-bottom: 3px;
}

h1,
h2,
h3,
h4 {
    font-weight: bold;
}

h4.tagline {
    font-weight: normal;
}

p.quote {
    font-size: 14px;
    font-weight: bold;
    padding-bottom: 1px;
    margin: 15px 15px 0 15px;
}

p.quote:before,
p.quote:after {
    font-size: 40px;
    line-height: 0;
    color: #777;
    font-weight: bold;
    display: inline-block;
    height: 10px;
    position: relative;
}

p.quote:before {
    content: '“';
    top: 10px;
}

p.quote:after {
    content: '”';
    top: 20px;
    width: 0;
}

p.attrib,
p.attribution {
    margin: 0 0 15px 20px;
    margin-top: 1px;
    padding-left: 30px;
    font-size: 12px;
    font-weight: normal;
}

p.attrib:before,
p.attribution:before {
    content: "— ";
}

#admin_pages_body #cke_content {
    width: 1180px;
    margin-right: -30px;
}

#admin_pages_wysiwyg_content_full_main {
    background: #fff;
    width: 1150px;
    margin: 0 auto;
    min-width: 0;
    width: 1150px;
    margin: 0 auto;
    border: 5px solid #eee;
    min-height: 50px;
}

#admin_pages_wysiwyg_content_with_sidebar_main {
    background: #fff;
    width: 870px;
    margin: 0 auto;
    min-width: 0;
    width: 870px;
    margin: 0 auto;
    border: 5px solid #eee;
    min-height: 50px;
}

#admin_pages_body #cke_sidebar_content {
    width: 1180px;
    margin-right: -30px;
}

#admin_pages_wysiwyg_content_with_sidebar_sidebar_plain {
    background: #fff;
    width: 250px;
    margin: 0 auto;
    min-width: 0;
    width: 250px;
    margin: 0 auto;
    border: 5px solid #eee;
    min-height: 50px;
}

#admin_pages_wysiwyg_content_with_sidebar_sidebar_bordered {
    background: #fff;
    width: 218px;
    margin: 0 auto;
    min-width: 0;
    width: 218px;
    margin: 0 auto;
    border: 5px solid #eee;
    min-height: 50px;
}

body>.centerer {
    position: relative;
}

#site_header {
    margin: 0 auto 15px auto;
    position: relative;
}

#site_header:before {
    display: block;
    background-size: 100%;
}

#site_header:after {
    display: block;
    position: absolute;
    bottom: 0;
    right: 0;
    padding: 4px;
    text-align: right;
}

body>.centerer>.nav {
    margin-bottom: 15px;
}

body>.centerer>.nav ul {
    margin: 0;
    padding: 0;
    list-style: none;
    text-align: justify;
}

body>.centerer>.nav ul>* {
    display: inline-block;
    position: relative;
    top: 1.2em;
}

body>.centerer>.nav ul:before {
    content: '';
    display: block;
    width: 100%;
    margin-bottom: -1.2em;
}

body>.centerer>.nav ul:after {
    content: '';
    display: inline-block;
    width: 100%;
}

footer#site_footer {
    clear: both;
    padding-top: 40px;
    font-size: 13px;
}

#wfpl_messages {
    background: #ffd;
    padding: 5px 12px;
    margin-top: 20px;
    margin-bottom: 20px;
    -webkit-box-shadow: 2px 2px 6px rgba(0, 0, 0, 0.4);
    box-shadow: 2px 2px 6px rgba(0, 0, 0, 0.4);
    -webkit-border-radius: 4px;
    border-radius: 4px;
}

#wfpl_messages p {
    font-size: 120%;
    padding: 5px 0;
    margin: 0px;
}

#wfpl_messages hr {
    display: block;
    height: 1px;
    border: 0;
    border-top: 1px dotted #ddc;
    margin: 0;
    padding: 0;
}

#admin_links {
    font-size: 13px;
    background: rgba(255, 244, 244, 0.5);
    border: 1px dotted #000;
    padding: 3px;
    position: absolute;
    top: 0;
    right: 0;
}

span.wfpl_ifl {
    display: block;
    float: left;
    clear: left;
    font-size: 10px;
    color: #000;
    text-align: right;
    background-repeat: no-repeat;
    background-position: left top;
    margin: 0 10px 2px 0;
}

span.wfpl_ifr {
    display: block;
    float: right;
    clear: right;
    font-size: 10px;
    color: #000;
    font-weight: normal;
    text-align: right;
    background-repeat: no-repeat;
    background-position: left top;
    margin: 0 0 2px 10px;
}

div.wfpl_ic {
    margin: 15px auto;
    font-size: 10px;
    font-weight: normal;
    text-align: right;
    background-repeat: no-repeat;
    background-position: center top;
}

td> :first-child,
th> :first-child,
legend+*,
article> :first-child,
aside> :first-child,
section> :first-child,
nav> :first-child,
div> :first-child,
.first {
    margin-top: 0px;
}

td> :last-child,
th> :last-child,
fieldset> :last-child,
article> :last-child,
aside> :last-child,
section> :last-child,
nav> :last-child,
div> :last-child,
.last {
    margin-bottom: 0px;
}

table.evenodd td,
table.evenodd th {
    padding: 6px 12px;
    text-align: left;
}

table.evenodd>tbody>tr:nth-child(2n+1)>td {
    background: rgba(0, 0, 0, 0.02);
}

table.evenodd>tbody>tr:nth-child(2n+0)>td,
table.evenodd thead>tr>th {
    background: rgba(0, 0, 0, 0.09);
}

table.evenodd>tbody>tr:hover {
    -webkit-box-shadow: inset 0 0 3px rgba(0, 0, 255, 0.4);
    box-shadow: inset 0 0 3px rgba(0, 0, 255, 0.4);
}

.field_error input {
    border: 1px solid #f00;
}

.password_suggestion+.password_suggestion {
    margin-left: 10px;
}

.wfpl_li,
.wfpl_ci,
.wfpl_ri,
.wfpl_fi {
    display: block;
    margin-bottom: 1%;
    clear: both;
    font-size: 80%;
    text-align: right;
}

.wfpl_li .wfpl_i,
.wfpl_ci .wfpl_i,
.wfpl_ri .wfpl_i,
.wfpl_fi .wfpl_i {
    display: block;
    width: 100%;
    background-size: 100% auto;
    background-repeat: no-repeat;
    background-position: 50% top;
    margin-bottom: 3px;
    height: 0;
    overflow: hidden;
}

.wfpl_li,
.wfpl_ci,
.wfpl_ri {
    width: 38.19660112501052%;
}

.wfpl_li {
    float: left;
    margin-right: 2%;
}

.wfpl_ci,
.wfpl_fi {
    margin-left: auto;
    margin-right: auto;
}

.wfpl_ri {
    float: right;
    margin-left: 2%;
}

.wfpl_thumb {
    display: inline-block;
    width: 70px;
    height: 70px;
    background-size: contain;
    background-position: 50% 50%;
    background-repeat: no-repeat;
}

.wfpl_li,
.wfpl_ci,
.wfpl_ri,
.wfpl_fi,
.wfpl_thumb {
    max-width: 100%;
}

body>.centerer {
    margin: 15px;
    width: 1150px;
}

body>.centerer.with_sidebar>.main {
    float: left;
    width: 870px;
}

body>.centerer.with_sidebar>.gap {
    width: 30px;
}

body>.centerer.with_sidebar>.gap .wfpl_li,
body>.centerer.with_sidebar>.gap .wfpl_ri {
    width: 50%;
}

body>.centerer.with_sidebar>.gap .wfpl_ci {
    width: 70%;
}

body>.centerer.with_sidebar>.sidebar.plain {
    float: right;
    width: 250px;
}

body>.centerer.with_sidebar>.sidebar.plain .wfpl_li,
body>.centerer.with_sidebar>.sidebar.plain .wfpl_ri {
    width: 50%;
}

body>.centerer.with_sidebar>.sidebar.plain .wfpl_ci {
    width: 70%;
}

body>.centerer.with_sidebar>.sidebar.bordered {
    border-width: 1px;
    border-style: solid;
    border-color: #f00;
    padding: 15px;
    float: right;
    width: 218px;
}

body>.centerer.with_sidebar>.sidebar.bordered .wfpl_li,
body>.centerer.with_sidebar>.sidebar.bordered .wfpl_ri {
    width: 50%;
}

body>.centerer.with_sidebar>.sidebar.bordered .wfpl_ci {
    width: 70%;
}

body>.centerer {
    margin-left: auto;
    margin-right: auto;
}

@media screen and (max-width: 1180px) {
    body>.centerer {
        margin: 1.2711%;
        width: 97.4576%;
    }

    body>.centerer.with_sidebar>.main {
        width: 75.6521%;
    }

    body>.centerer.with_sidebar>.gap {
        width: 2.6086%;
    }

    body>.centerer.with_sidebar>.sidebar.plain {
        width: 21.7391%;
    }

    body>.centerer.with_sidebar>.sidebar.bordered {
        padding: 1.3043%;
        width: 18.9565%;
    }

    body>.centerer {
        width: auto;
    }

    body>.centerer .wfpl_li,
    body>.centerer .wfpl_ri {
        width: calc(64.38905411933365px + 32.59755294072063%);
    }

    body>.centerer .wfpl_ci {
        width: 439.2609129376209px;
    }

    body>.centerer.full>.main .wfpl_li,
    body>.centerer.full>.main .wfpl_ri {
        width: calc(64.38905411933365px + 32.59755294072063%);
    }

    body>.centerer.full>.main .wfpl_ci {
        width: 439.2609129376209px;
    }

    body>.centerer.with_sidebar>.main .wfpl_li,
    body>.centerer.with_sidebar>.main .wfpl_ri {
        width: calc(75.99028195718233px + 29.462085957518298%);
    }

    body>.centerer.with_sidebar>.main .wfpl_ci {
        width: 332.3104297875915px;
    }
}

body {
    color: #001;
    background-position: 1180px 870px;
    background-position: 370px 501.83908045977006px;
}

@media screen and (max-width: 501.83908045977006px) {
    body>.centerer.full>.main {
        border: none;
        float: none;
        width: auto;
        margin-left: 0;
        margin-right: 0;
        padding-left: 0;
        padding-right: 0;
        margin-top: 1.2711%;
    }

    body>.centerer.full>.main .wfpl_li,
    body>.centerer.full>.main .wfpl_ri {
        width: calc(64.38905411933365px + 32.59755294072063%);
    }

    body>.centerer.full>.main .wfpl_ci {
        width: 439.2609129376209px;
    }

    body>.centerer.with_sidebar>.main {
        border: none;
        float: none;
        width: auto;
        margin-left: 0;
        margin-right: 0;
        padding-left: 0;
        padding-right: 0;
        margin-top: 1.2711%;
    }

    body>.centerer.with_sidebar>.main .wfpl_li,
    body>.centerer.with_sidebar>.main .wfpl_ri {
        width: calc(64.38905411933365px + 32.59755294072063%);
    }

    body>.centerer.with_sidebar>.main .wfpl_ci {
        width: 439.2609129376209px;
    }

    body>.centerer.with_sidebar>.gap {
        border: none;
        float: none;
        width: auto;
        margin-left: 0;
        margin-right: 0;
        padding-left: 0;
        padding-right: 0;
        margin-top: 1.2711%;
    }

    body>.centerer.with_sidebar>.gap .wfpl_li,
    body>.centerer.with_sidebar>.gap .wfpl_ri {
        width: calc(64.38905411933365px + 32.59755294072063%);
    }

    body>.centerer.with_sidebar>.gap .wfpl_ci {
        width: 439.2609129376209px;
    }

    body>.centerer.with_sidebar>.sidebar.plain {
        display: none;
    }

    body>.centerer.with_sidebar>.sidebar.bordered {
        display: none;
    }
}

@media screen and (max-width: 379.6521739130435px) {

    body>.centerer .wfpl_li,
    body>.centerer .wfpl_ci,
    body>.centerer .wfpl_ri {
        float: none;
        width: 439.2609129376209px;
        margin-right: auto;
        margin-left: auto;
    }
}

@media screen and (max-width: 379.6521739130435px) {

    body>.centerer.full>.main .wfpl_li,
    body>.centerer.full>.main .wfpl_ci,
    body>.centerer.full>.main .wfpl_ri {
        float: none;
        width: 439.2609129376209px;
        margin-right: auto;
        margin-left: auto;
    }
}

@media screen and (max-width: 379.6521739130435px) {

    body>.centerer.with_sidebar>.main .wfpl_li,
    body>.centerer.with_sidebar>.main .wfpl_ci,
    body>.centerer.with_sidebar>.main .wfpl_ri {
        float: none;
        width: 332.3104297875915px;
        margin-right: auto;
        margin-left: auto;
    }
}

#mobile_menu_button {
    display: none;
}

#mobile_menu_check {
    display: none;
}

@media screen and (max-width: 600px) {
    body nav.nav>form {
        margin-top: 0;
    }

    #mobile_menu_check:not(:checked)+div {
        display: none;
    }

    #mobile_menu_check:checked+div {
        display: block;
        position: relative;
    }

    #mobile_menu_check:checked+div>ul {
        z-index: 1000;
        background: #fff;
        background: rgba(255, 255, 255, 0.95);
        display: block;
        position: absolute;
        top: 100%;
        width: 96%;
        left: 2%;
        margin: 0;
        padding: 0;
        border-bottom-left-radius: 4px;
        border-bottom-right-radius: 4px;
        -webkit-box-shadow: 0px 3px 3px rgba(0, 0, 0, 0.1);
        box-shadow: 0px 3px 3px rgba(0, 0, 0, 0.1);
    }

    #mobile_menu_check:checked+div>ul li {
        padding: 15px;
        white-space: nowrap;
    }

    #mobile_menu_check:checked+div>ul li+li {
        padding-top: 0;
    }

    #mobile_menu_check:checked+div>ul li a {
        font-size: 18px;
    }

    #mobile_menu_check:checked+div>ul:before,
    #mobile_menu_check:checked+div>ul:after {
        display: none;
        content: none;
        margin: 0;
        padding: 0;
    }

    #mobile_menu_check:checked+div>ul>* {
        position: static;
        top: 0;
    }

    body>.centerer>.nav ul>li,
    #mobile_menu_button {
        display: block;
        padding: 0px 10px 0px 17px;
        font-size: 18px;
    }
}

#admin_images_body .th_toggle_buttons {
    font-weight: normal;
    color: #777;
    text-align: justify;
}

#admin_images_body .th_toggle_buttons>* {
    display: inline-block;
    position: relative;
    top: 1.2em;
}

#admin_images_body .th_toggle_buttons:before {
    content: '';
    display: block;
    width: 100%;
    margin-bottom: -1.2em;
}

#admin_images_body .th_toggle_buttons:after {
    content: '';
    display: inline-block;
    width: 100%;
}

table.evenodd td.num,
table.evenodd td.cap {
    text-align: right;
}

table.evenodd>tbody>tr>td.cap {
    background: transparent;
}

ul.just_indent {
    margin: 0;
    padding: 0;
    margin: 0;
    padding: 0;
    list-style: none;
}

ul.just_indent li {
    padding-left: 30px;
}

ul.just_indent li+li {
    margin-top: 4px;
}

a:link,
a:hover,
a:visited {
    color: #00d;
}