
@font-face {
    font-family: CrimsonText;
    src: url('/css/fonts/CrimsonText-Regular.ttf');
}
@font-face {
    font-family: CrimsonTextItalic;
    src: url('/css/fonts/CrimsonText-Italic.ttf');
}
@font-face {
    font-family: CrimsonTextBold;
    src: url('/css/fonts/CrimsonText-Bold.ttf');
}
@font-face {
    font-family: CrimsonTextBoldItalic;
    src: url('/css/fonts/CrimsonText-BoldItalic.ttf');
}
@font-face {
    font-family: CrimsonTextBoldItalic;
    src: url('/css/fonts/CrimsonText-BoldItalic.ttf');
}
@font-face {
    font-family: Headline;
    src: url('/css/fonts/BebasNeue-Regular.ttf');
}

:root {
    --color-link: #0083db;
    --color-white: #ffffff;
    --color-black: #262626;
    --color-gray: #bbbbbb;
    --color-superlightgray: #e3e3e3;
    --color-lightgray: #ddd;
    --color-darkgray: #888;

    --max-desktop-width: 52em;
    --max-content-width: 52em;
}

html, .button, input, textarea, button {
    font-family: helvetica, serif;
}

h1, h2, h3, .jqte_format_1, .jqte_format_2, .jqte_format_3, .bold_inline {
    font-family: Headline, helvetica, sans-serif;
    font-weight: normal;
    letter-spacing: -0.01em;
}

.bold_inline {
    font-size: 1.5em;
    line-height: 1;
    display: inline-block;
    margin-top: 0.55em;
}


html, body {
    font-size: 16px;
    background-color: var(--color-white);
    color: var(--color-black);
}

main, .main {
    min-height: none;
}

#page_wrapper { /* This keeps the footer at the bottom. */
    min-height: 100vh;
}



.button_basic_2023, .button_action_2023, .button_dummy_2023 {
    -webkit-user-select: none; -moz-user-select: none; -ms-user-select: none; user-select: none;
    padding: 0.88em 1.3em 0.82em 1.3em;
    border-radius: 8em;
    display: inline-block;
    margin: 0 0.75em 0.75em 0;
    line-height: 1.3;
    box-shadow: none;
    transition: all .1s ease-in-out;
    -webkit-appearance: none;
    -moz-appearance: none;
    border: 0;
    min-width: 5em;
    text-align: center;
    -moz-box-sizing: content-box; /* or `border-box` */
    -webkit-box-sizing: content-box;
    box-sizing: content-box;
}

.button_basic_2023:hover, .button_action_2023:hover {
    box-shadow: 0.03em 0.2em 0.5em rgba(0, 0, 0, 0.25);
    transform: scale(1.07);
}

.button_red_2023 {
    background-color: var(--color-red) !important;
}

.button_dummy_2023 {
    border: 0.25em solid var(--color-red);
    padding: 0.63em 1em 0.67em 1em; /* offset for border */
    color: var(--color-red);
}

.button_basic_2023 {
    background-color: var(--color-superlightgray);
    color: black;
    cursor: pointer;
}

.button_basic_2023:hover {
    background-color: var(--color-gray);
}

.button_basic_2023 .icon, .button_action_2023 .icon {
    display: block;
    width: auto;
    height: 1.25em;
    float: left;
    margin-right: 0.5em;
}

.button_action_2023 {
    background-color: var(--color-link);
    color: white;
    cursor: pointer;
}

.button_action_2023:hover {
    background-color: var(--color-black);
}




.small {
    font-size: 0.8em;
}

a {
    color: var(--color-link);
}
a:hover {
    text-decoration: none;
}

h1 { font-size: 2.8em; line-height: 1; letter-spacing: 0.0025em; }
h2 { font-size: 2.25em; line-height: 1.1; }
h3 { font-size: 1.5em; line-height: 1.2; }
h4 { font-size: 1.75em; }
h5 { font-size: 1.5em; }
h6 { font-size: 1.00em; }

p { margin: 1em 0 1em 0; }

.allcaps {
    text-transform: uppercase;
    line-height: 1.125;
}

.admin_link {
    font-family: Headline, helvetica, sans-serif;
    font-weight: normal;
    letter-spacing: 0.02em;
    color: black;
    display: block;
    width: min-content;
    white-space: nowrap;
    margin: 0 auto;
    font-size: 1.125em;
}

.text_content, .jqte_editor {
    line-height: 1.5;
}

.text_content h1, .jqte_editor h1 {
    margin-top: 1em;
    margin-bottom: 0.25em;
}

.text_content h2, .jqte_editor h2 {
    margin-top: 1em;
    margin-bottom: 0.125em;
}

.text_content h3, .jqte_editor h3 {
    margin-top: 1em;
    margin-bottom: 0.125em;
}

.text_content h4 {
    line-height: 1.3;
    font-size: 1.2em;
    margin: 0.75em 0 0.1em 0;
}

.text_content h5 {
    font-size: 1em;
    font-weight: normal;
    margin: 0;
    max-width: var(--max-content-width);
}

.text_content h6, .jqte_editor {
    font-weight: normal;
    font-size: 0.8em;
    margin: 0 0 1em 0;
    line-height: 1.4;
    max-width: var(--max-content-width);
}

.text_content p {
    max-width: var(--max-content-width);
    margin: 0 0 1em 0;
}

.text_content ol, .text_content ul {
    margin: 0.125em 0 0.75em 0;
    max-width: var(--max-content-width);
}

.text_content li {
    margin: 0.25em 0;
    line-height: 1.4;
}

.text_content hr {
    border: none;
    height: 1px;
    margin: 1em 0;
    background-color: var(--color-gray);
}






.blog_main {
    box-sizing: border-box;
    padding: 2em 4em;
    margin: 0 auto;
    width: 100%;
    max-width: var(--max-desktop-width);
    flex-grow: 1;
}







.blog_main .page_block_title {
    margin-bottom: 0.35em;
}

.blog_headline {
    font-size: 3.25em;
    margin-bottom: 0.25em;
    font-weight: normal;
    text-align: center;
}

.blogs_headline {
    display: inline-block;
    font-size: 2em;
    margin-top: 0;
    margin-bottom: 0;
    line-height: 1.1;
    font-weight: normal;
    letter-spacing: 0.005em;
    font-family: Headline, helvetica, sans-serif;
    color: black;
}

.text_dateline {
    padding-top: 0.25em;
    padding-bottom: 0.25em;
    text-align: center;
    font-family: CrimsonText, times, serif;
}

.blogs_year {
    color: #c30909;
    margin: 0.9em 0 0.25em 0;
    font-weight: normal;
    font-size: 3.75em;
}

.blogs_year:first-child {
    margin-top: -0.25em;
}

.blogs_dateline {
    margin-top: 0;
    font-family: CrimsonText, times, serif;
    line-height: 1.2;
}

.blog_wrapper p, .blog_wrapper ul, .blog_wrapper ol {
    margin-top: 0.9em;
    line-height: 1.55;
    font-family: CrimsonText, times, serif;
    font-size: 1.25em;
}

.blog_wrapper .blog_b {
    font-weight: normal;
    font-family: CrimsonTextBold, times, serif;
}

.blog_wrapper .blog_i {
    font-style: normal;
    font-family: CrimsonTextItalic, times, serif;
}

.blog_i .blog_b, .blog_b .blog_i {
    font-style: normal;
    font-weight: normal;
    font-family: CrimsonTextBoldItalic, times, serif;
}

#blog_nav {
    width: fit-content;
    display: grid;
    gap: 1em;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    margin: 3em auto;
}

#blog_nav .blogs_headline {
    padding: 0.5em;
}

.tag_bar a {
    font-size: 0.8rem;
    padding: 0.5em 1.25em 0.6em 1.25em;
    -webkit-user-select: none; -moz-user-select: none; -ms-user-select: none; user-select: none;
}



.caption {
    font-style: normal;
    font-family: CrimsonText, times, serif;
    line-height: 1.4;
    font-size: 1em;
    padding: 0.75em 0 0.5em 0;
    text-align: left;
    max-width: 33em;
}




.edit_wrapper_right {
    position: absolute;
    right: 1.75em;
    margin-top: 1.5em;
    z-index: 1500;
}

.edit_wrapper_right .button_basic_2023 {
    min-width: 3.5em;
    opacity: 0.75;
}

.edit_wrapper_right .button_basic_2023:hover {
    opacity: 1.0;
    background: white;
}

/*
.snippet_outer {
    border: 3px dashed red;
    overflow: auto;
    min-height: 4em;
}
*/

.snippet {
    position: relative;
    overflow: auto;
}

.snippet_name {
    position: absolute;
    z-index: 1510;
    margin-top: -3em;
}

/*
.input_code {
    background: #111;
    color: #fff;
    padding: 1em;
    font-size: 14px;
    font-family: Menlo, monospace;
}
*/



.jqte_editor p, .jqte_editor ul, .jqte_editor ol {
    line-height: 1.6;
    font-family: CrimsonText, times, serif;
}

.jqte_format_0 { font-family: CrimsonText, times, serif; font-size: 1.25em; }
.jqte_format_1, .jqte_editor h1 { font-size: 2.8em; line-height: 1; letter-spacing: 0.0025em; }
.jqte_format_2, .jqte_editor h2 { font-size: 2.25em; line-height: 1.1; }
.jqte_format_3, .jqte_editor h3 { font-size: 1.5em; line-height: 1.2; }
.jqte_format_4, .jqte_editor h6 { font-family: CrimsonText, times, serif; font-weight: normal; font-size: 0.8em; line-height: 1.4; max-width: var(--max-content-width); }

.jqte_editor { font-size: 1.25em; }






#footer_door_wrapper {
    padding-top: 6em;
    position: relative;
}

#footer_door_fg, #footer_door_bg {
    display: block;
    position: absolute;
    bottom: 0;
    right: 10%;
    max-height: 8em;
}

#footer_door_fg {
    transition: all .15s;
    transform-origin:left bottom;
    cursor: pointer;
}

#footer_door_fg:hover {
    transition: all 0.22s;
    transform: scale(0.97, 1);
}












#dhnav {
    position: fixed;
    inset: 0;
    z-index: 2000;
    background-color: #111111;
    background-repeat: no-repeat;
    background-size: cover;
    background-position: center;
    color: white;
    display: none;
}

#dhnav_inner {
    display: flex;
    align-items: flex-end;
    justify-content: center;
    flex-direction: column;
    position: absolute;
    inset: 3vw;
}

#dhnav_button_wrapper {
    text-align: right;
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    gap: 1em;
}

#dhnav_button_wrapper a {
    transition: all 0.08s ease-in-out;
    display: block;
    width: fit-content;
    color: #fff;
    background-color: black;
    font-family: Headline;
    font-weight: normal;
    font-size: 7vh;
    letter-spacing: 0.01em;
    padding: 0.1em 0.5em 0em 0.5em;
    line-height: 1.2;
    z-index: 2210;
}

#dhnav_button_wrapper a:hover {
    color: #fff;
}

#dhnav_button_wrapper .dhnav_close_trigger {
    background: #c30909;
}

.dhnav_close_trigger {
    /* reusable trigger to close nav */
    cursor: pointer;
}









/* Responsive */

@media screen and (min-width: 1200px) {

    /* Large desktop */

    
    
}

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

    
}

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

    h1, h2, h3, h4, h5 {
        letter-spacing: -0.02em;
    }
    
    .blog_main {
        padding: 1.5em 1.25em;
        font-size: 18px;
    }
    
    .caption {
        padding: 0.75em 1.25em 0.5em 1.25em;
        font-size: 1.1em;
    }
    
    .blog_main .page_block_text {
        font-size: 1.18em;
        line-height: 1.5;
    }
    
    .blogs_year:first-child {
        margin-top: 0em;
    }
    
    #blog_nav {
        gap: 0.25em;
    }
    
    #footer_door_wrapper {
        padding-top: 6em;
    }
    
    #dhnav_button_wrapper a {
        font-size: 6vh;
    }
    
    .tag_bar {
        margin-top: 2.25em;
    }
    
    .tag_bar a {
        padding: 0.4em 1em 0.5em 1em;
        margin-right: 0.65em;
    }
        
}


@media screen and (max-width: 767px) {
    /* Handle iPhone address bar at bottom */
    _::-webkit-full-page-media, _:future, :root #page_wrapper {
        min-height: 100dvh;
    }
}





