@charset "UTF-8";
/* AlanHogan.com © ajh */
html, body, div, span, applet, object, iframe, h1, h2, h3, h4, h5, h6, p, blockquote, pre, a, abbr, acronym, address, big, cite, code, del, dfn, em, img, ins, kbd, q, s, samp, small, strike, strong, sub, sup, tt, var, b, u, i, center, dl, dt, dd, ol, ul, li, fieldset, form, label, legend, table, caption, tbody, tfoot, thead, tr, th, td, article, aside, canvas, details, embed, figure, figcaption, footer, header, hgroup, menu, nav, output, ruby, section, summary, time, mark, audio, video { margin: 0; padding: 0; border: 0; font: inherit; font-size: 100%; vertical-align: baseline; }

html { line-height: 1; }

ol, ul { list-style: none; }

table { border-collapse: collapse; border-spacing: 0; }

caption, th, td { text-align: left; font-weight: normal; vertical-align: middle; }

q, blockquote { quotes: none; }
q:before, q:after, blockquote:before, blockquote:after { content: ""; content: none; }

a img { border: none; }

article, aside, details, figcaption, figure, footer, header, hgroup, main, menu, nav, section { display: block; }

small { 
    font-size: 87.5%;
}

/* Default theme */
b, strong, dt, h1, h2, h3, h4, h5, h6 { font-weight: bold; }

em, var, i, cite, dfn { font-style: italic; }

a:link, .u-link { color: #0f3e90; }

a:visited { color: #700eb4; }

a:link:hover, .u-link:hover { color: #1f52aa; }

a:visited:hover { color: #8725cc; }

sub { vertical-align: sub; font-size: .7em; }

sup { vertical-align: top; font-size: .7em; margin-top: -0.4em; display: inline-block; }

/* Button */
.button:link, .button:visited, .button { display: inline-block; vertical-align: middle; *vertical-align: auto; *zoom: 1; *display: inline; -webkit-appearance: none; border: none; font-size: 15px; line-height: 24px; color: white; text-decoration: none; text-shadow: #000, 0, -1px; background: #1934cb; box-shadow: 0 3px 0 0 #060d5e; padding: 12px 24px; border-radius: 4px; cursor: pointer; transform: translateY(-1px); }

.button:hover, .button:link:hover, .button:visited:hover, .button:focus { color: #fff; background: #2758db; }

.button:active, .button:link:active, .button:visited:active { color: #fff; transform: translateY(0); box-shadow: 0 2px 0 0 #060d5e; }

.button--skinny { padding-top: 0.1em; padding-bottom: 0.1em; }

.button--download::before {
    content: "\2B07\FE0E\00A0"; /* ⬇︎ & nbsp */
}
.button:disabled {
    opacity: 0.5;
    transform: translateY(2px);
    box-shadow: none;
    cursor: not-allowed;
}
.button:disabled:hover {
    background-color: #1934cb;
}
.button.button--busy {
    cursor: wait;
}

.button code, .button code.code--bad-example { color: inherit; }

.alr { transition: opacity ease-in 500ms; }
.alr--success {color: #119914; opacity: 1; }
.alr--fadeout { opacity: 0;}

.u-fg-gray-0 { color: #000; }

.u-fg-gray-10 { color: #18181b; }

.u-fg-gray-20 { color: #2f3036; }

.u-fg-gray-30 { color: #474852; }

.u-fg-gray-40 { color: #5e606d; }

.u-fg-gray-50 { color: #767888; }

.u-fg-gray-60 { color: #9193a0; }

.u-fg-gray-70 { color: #adaeb8; }

.u-fg-gray-80 { color: #c8c9cf; }

.u-fg-gray-90 { color: #e4e4e7; }

.u-fg-gray-100 { color: #fff; }

.u-bg-gray-0 { background-color: #000; }

.u-bg-gray-10 { background-color: #18181b; }

.u-bg-gray-20 { background-color: #2f3036; }

.u-bg-gray-30 { background-color: #474852; }

.u-bg-gray-40 { background-color: #5e606d; }

.u-bg-gray-50 { background-color: #767888; }

.u-bg-gray-60 { background-color: #9193a0; }

.u-bg-gray-70 { background-color: #adaeb8; }

.u-bg-gray-80 { background-color: #c8c9cf; }

.u-bg-gray-90 { background-color: #e4e4e7; }

.u-bg-gray-100 { background-color: #fff; }

.center { text-align: center; }

.clear { clear: both; }

.floatLeftPhoto { float: left; margin: 0 .5em .2em 0; }

.floatLeftPhoto img { border: 2px solid #505d64; }

.floatLeftPhoto p { margin: .5em 0; padding: 0 .5em; font-size: 90%; font-style: italic; }

.tinyClear { overflow: hidden; clear: both; width: 0px; height: 0px; background: transparent none; border-width: 0; opacity: 0.0; margin: 0 !important; }

.deemphasized, .footnotes, #site_middle .after-authored-content { color: #5e606d; }
.deemphasized a:link, .footnotes a:link, #site_middle .after-authored-content a:link, .deemphasized .u-link, .footnotes .u-link, #site_middle .after-authored-content .u-link { color: #33528d; }
.deemphasized a:visited, .footnotes a:visited, #site_middle .after-authored-content a:visited { color: hsl(275, 36%, 38%); }
.deemphasized a:link:hover, .footnotes a:link:hover, #site_middle .after-authored-content a:link:hover, .deemphasized .u-link:hover, .footnotes .u-link:hover, #site_middle .after-authored-content .u-link:hover { color: #3d5f9e; }
.deemphasized a:visited:hover, .footnotes a:visited:hover, #site_middle .after-authored-content a:visited:hover { color: hsl(275, 35%, 43%); }

.u-link { -webkit-appearance: none; display: inline; border: none; background: transparent; font-size: 100%; text-decoration: underline; font-family: inherit; line-height: inherit; padding: 0; cursor: pointer; }

html sup[id^=fnref] a:link, html sup[id^=fnref] a:visited, html sup a[rel=footnote] { text-decoration: none; font-weight: bold; }

html sup[id^=fnref] a:before, html sup[id^=fnref] a::before, html sup a[rel=footnote]::before, html sup a[rel=footnote]:before { content: "\200A"; }

.footnotes { font-size: 87.5%; color: #5a5c5e; }
.footnotes ol:first-of-type::before {
    content: "Footnotes";
    display: block;
    padding: 0.4rem 0 1.4rem 0;
    line-height: 2rem;
    text-indent: -1rem;
    font-size: 3.2rem;
    font-weight: 500;
    /* opacity: 0.5; */
    color: #B4B7BD; /* 2nd of 5 midpoints between HR and footer text colors */
    font-style: italic;
    text-align: center;
}

/* Return arrow in footnotes, per http://tinyurl.com/mkdnextra */
a[rev=footnote] { text-decoration: none; }

.site-rss { background: transparent url(/hs_public/images/feed-icon-16x16.png) no-repeat top left; text-decoration: none; }

.clickable { cursor: pointer; }

.commentIndent { padding-left: 2em; }

.commentIndent .commentIndent .commentIndent { padding-left: 1.3em; }

.comment { padding: .625em .625em 0 .625em; border: 1px solid #505d64; margin: .625em 0; }

#comments .comment .commentPermalink { float: right; color: #505d64; text-decoration: none; padding: 0 2px 6px 0; }

#comments .commentPermalink:hover { color: black; }

.authorComment { background-color: #e1f8e0; border-color: black; }

.comment h4 { font-weight: normal; color: #505d64; }

.authorComment h4 { color: #308036; }

.commentInfo { padding: 0 0 .15em 0; border-bottom: 1px solid #c1c3c9; font-weight: bold; font-size: 0.85em; }

.authorComment .commentInfo { border-bottom: 1px solid #a0a8a3; }

#comments .js-poweredBy { display: none; }

#tagsSection h3, #tagsSection p { display: inline; }

#tagsSection h3 { font-size: 100%; }

div.critical, div.important { padding: 24px 20px; }
#site_middle div.critical :last-child, div.critical :last-child, #site_middle div.important :last-child, div.important :last-child { margin-bottom: 0; }

div.critical { color: #f8eeee; text-shadow: 0 1px 0 #000; background-color: #a01111; }
div.critical :link, div.critical :visited { color: white; }

div.important {
    color: #221; text-shadow: 0 1px 1px rgba(255, 255, 255, 0.3);
    background-color: #f8f890;
    background: repeating-linear-gradient(-45deg, rgba(0, 0, 0, 0.25), rgba(0, 0, 0, 0.25) 5px, transparent 5px, transparent 10px) no-repeat top center / 100% 5px, repeating-linear-gradient(-45deg, rgba(0, 0, 0, 0.25), rgba(0, 0, 0, 0.25) 5px, transparent 5px, transparent 10px) no-repeat bottom center / 100% 5px, #f8f890;
    position: relative; 
}

/* For errors shown from HSCMS, changed to match our style */
#hs_notices,
#hs_errors {
    width: 100%;
    box-sizing: border-box;
    padding: 24px 20px;
    margin-bottom: 24px;
    position: relative;
}
#hs_errors::after,
#hs_notices::after {
    display: block;
    position: absolute;
    bottom: 0.2em;
    right: 0.4em;
    width: 40%;
    text-align: right;
    content: "HS-CMS";
    opacity: 0.3;
    font-size: 0.8em;
    line-height: 1.5;
}
#hs_notices::after {
    bottom: calc(5px + 0.2em);
}
#hs_errors :last-child,
#hs_notices :last-child {
    margin-bottom: 0;
}
#hs_errors {
    color: #f8eeee;
    text-shadow: 0 1px 0 #000;
    background-color: #a01111;
}
#hs_errors :link,
#hs_errors :visited {
    color: white;
}
#hs_notices {
    color: #221;
    text-shadow: 0 1px 1px rgba(255, 255, 255, 0.3);
    background-color: #f8f890;
    background: repeating-linear-gradient(-45deg, rgba(0, 0, 0, 0.25), rgba(0, 0, 0, 0.25) 5px, transparent 5px, transparent 10px) no-repeat top center / 100% 5px, repeating-linear-gradient(-45deg, rgba(0, 0, 0, 0.25), rgba(0, 0, 0, 0.25) 5px, transparent 5px, transparent 10px) no-repeat bottom center / 100% 5px, #f8f890;
}
/* end hogansystem errors and notices */

html a.in_page_anchor_link, html a.in_page_anchor_link:link, html a.in_page_anchor_link:visited { text-decoration: none; color: #93a4ba; font-weight: normal; }

dt a.in_page_anchor_link, h2 a.in_page_anchor_link, h3 a.in_page_anchor_link, h4 a.in_page_anchor_link { float: right; }

h3 a.in_page_anchor_link { font-size: 0.69em; }

.small-caps { font-variant: small-caps; }

.all-cap-abbr { font-size: 90%; }

table.data { border-collapse: collapse; }
table.data td, table.data th { border: 1px solid black; padding: 0.15em; }

table.text { border-collapse: collapse; border-width: 0; -moz-box-shadow: 0 1px 0 0 rgba(0, 0, 0, 0.2); -webkit-box-shadow: 0 1px 0 0 rgba(0, 0, 0, 0.2); box-shadow: 0 1px 0 0 rgba(0, 0, 0, 0.2); }
table.text td, table.text th { border-width: 0; padding: 0 0.5em; -moz-box-shadow: 0 1px 0 0 rgba(0, 0, 0, 0.2) inset; -webkit-box-shadow: 0 1px 0 0 rgba(0, 0, 0, 0.2) inset; box-shadow: 0 1px 0 0 rgba(0, 0, 0, 0.2) inset; }
table.text td:first-of-type, table.text th:first-of-type { padding-left: 0; }

table.formLayout { border-collapse: collapse; }
table.formLayout td, table.formLayout th { padding: 12px 0; }
table.formLayout td + td, table.formLayout td + th, table.formLayout th + th, table.formLayout th + td { padding-left: 24px; }

table.thRight th, th.thRight { text-align: right; }

table.first-col-right tr td:first-of-type, table.first-col-right tr th:first-of-type { text-align: right; }

.ah-highlight { background: #fbfba6 none; padding-left: 0.13em; padding-right: 0.13em; border-radius: 0.25em; }

.u-fine-print { font-size: 80%; }

.u-header-color { color: #1934cb; }

#site_header, #site_middle, #site_footer { padding: 0 20px; transition: all 0.3s ease; }
@media (max-width: 480px) { #site_header, #site_middle, #site_footer { padding: 0 12px; } }
@media (max-width: 320px) { #site_header, #site_middle, #site_footer { padding: 0 10px; } }

#site_header { margin-bottom: 36px; background-color: #1934cb; background-image: linear-gradient(45deg, #ffffff, #ffffff 50%, rgba(0, 0, 0, 0) 50%, rgba(0, 0, 0, 0)), linear-gradient(-45deg, #ffffff, #ffffff 50%, rgba(0, 0, 0, 0) 50%, rgba(0, 0, 0, 0)), linear-gradient(#ffffff, #ffffff), linear-gradient(#ffffff, #ffffff); background-position: calc(50% - 20em - 48px) 0, calc(50% + 20em + 48px) 0, top left, top right; background-size: calc(48px * 1.1) 48px, calc(48px * 1.1) 48px, calc(50% - 20em - 72px) 48px, calc(50% - 20em - 72px) 48px; background-repeat: no-repeat; height: 48px; }
@media (max-width: 480px) { #site_header { margin-bottom: 24px; } }
#site_header .container { position: relative; }
#site_header .container .page-search { position: absolute; right: 0; top: 9.6px; color-scheme: dark; }
@media (max-width: 480px) { #site_header .container .page-search { max-width: 40%; } }
#site_header .container .page-search input { -webkit-appearance: textfield; margin: 0; padding: 5px 12px; border-radius: 15px; border: 2px solid white; color: white; background: #1934cb; max-width: 100%; }
#site_header .container .page-search input::-webkit-input-placeholder { color: rgba(255, 255, 255, 0.75); }
#site_header .container .page-search input:-moz-placeholder { color: rgba(255, 255, 255, 0.75); }
#site_header .container .page-search input ::-moz-placeholder { color: rgba(255, 255, 255, 0.75); }
#site_header .container .page-search input:-ms-input-placeholder { color: rgba(255, 255, 255, 0.75); }
#site_header .container .page-search input :input-placeholder { color: rgba(255, 255, 255, 0.75); }
@media (min-width: 481px) { #site_header .container .page-search input { font-size: 12px; } }
#site_header .container .page-search input:hover:not(:focus)::-webkit-input-placeholder { color: rgba(255, 255, 255, 0.85); }
#site_header .container .page-search input:hover:not(:focus):-moz-placeholder { color: rgba(255, 255, 255, 0.85); }
#site_header .container .page-search input:hover:not(:focus) ::-moz-placeholder { color: rgba(255, 255, 255, 0.85); }
#site_header .container .page-search input:hover:not(:focus):-ms-input-placeholder { color: rgba(255, 255, 255, 0.85); }
#site_header .container .page-search input:hover:not(:focus) :input-placeholder { color: rgba(255, 255, 255, 0.85); }
#site_header .container .page-search input:focus { outline: none; -moz-box-shadow: 0 0 4px 2px #77b0f6; -webkit-box-shadow: 0 0 4px 2px #77b0f6; box-shadow: 0 0 4px 2px #77b0f6; }
#site_header .container .page-site-url { display: none; }
#site_header .container .page-site-name-wrap { position: absolute; left: 0; top: 6px; }
#site_header .container .page-site-name-wrap .page-site-name { display: block; padding-top: 1px; }

.container { max-width: 40em; margin: 0 auto; }

#site_footer { padding-top: 36px; padding-bottom: 24px; }
@media (max-width: 480px) { #site_footer { padding-top: 24px; } }
#site_footer .ftr-copyright { float: right; }
#site_footer .ftr-nav { float: left; }
@media (max-width: 480px) { #site_footer .ftr-copyright, #site_footer .ftr-nav { float: none; text-align: center; } }
#site_footer .container { overflow: hidden; *zoom: 1; }

body, input, .sans-serif { font-family: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", Arial, sans-serif; }

.monospaced, textarea, code, kbd, tt, .code, pre {
    font-family: "JetBrains Mono", "IBM Plex Mono", "Source Code Pro", "Cascadia Code", ui-monospace, Menlo, "Ubuntu Monospace", "Inconsolata", "Fira Code", "Deja Vu Sans Mono", "Bitstream Vera Sans Mono", Monaco, "Segoe UI Mono", "Roboto Mono", "Oxygen Mono", Consolas, monospace;
}

code, tt, kbd, pre { padding: 0.2em; margin: 0; font-size: 95%; color: #107236; background-color: rgb(20 107 54 / 7%); border-radius: 3px; }

.code--bad-example {
    color: #670d29;
    background-color: rgba(92, 13, 47, 0.07);
}
pre.code--bad-example {
    background-color: #d9afbc;
}
pre.code--bad-example > code {
    color: #670d29;
    mix-blend-mode: luminosity;
}

pre > code {
    background: none;
    padding-left: 0;
    padding-right: 0;
}
/* pre > code.code--bad-example { background: none; } */

pre { white-space: pre-wrap; padding: 0.5em; }

body { font-size: 15px; line-height: 24px; -webkit-text-size-adjust: 100%; }

/** EVERYTHING WITH SERIF FONT STACK **/
#site_middle h1,
#site_middle hgroup h1 + h2, #site_middle h1:first-child + h2, #site_middle h1 + h1.subtitle,
.footnotes ol:first-of-type::before,
.home-additional-bio,
.home-big-bio { font-family: Palatino, "Palatino Linotype", "Palatino LT STD", "Book Antiqua", Georgia, serif;
}

#site_middle h1 { /*serif*/ font-weight: normal; font-size: 200%; line-height: 48px; margin-bottom: 24px; }
@media (max-width: 480px) { #site_middle h1 { font-size: 20.25px; line-height: 36px; margin-bottom: 12px; } }
#site_middle hgroup :first-child { margin: 0 0 0 0; }
#site_middle hgroup :last-child { margin-top: 0; margin-bottom: 24px; font-style: italic; font-weight: bold; }
@media (max-width: 480px) { #site_middle hgroup :last-child { font-size: 18px; line-height: 24px; } }
#site_middle hgroup h1 + h2, #site_middle h1:first-child + h2, #site_middle h1 + h1.subtitle { /*serif*/ font-size: 135%; font-weight: bold; line-height: 48px; font-style: italic; }
@media (max-width: 480px) { #site_middle hgroup h1 + h2, #site_middle h1:first-child + h2, #site_middle h1 + h1.subtitle { font-size: 18px; line-height: 24px; margin-bottom: 24px; } }
#site_middle h2 { /*serif*/ font-weight: 600; font-size: 24px; line-height: 48px; }
#site_middle h3 { font-size: 18.75px; font-weight: 600; margin-bottom: 24px; }
@media (max-width: 480px) { #site_middle h3 { font-size: 16.5px; } }
#site_middle h4 { font-size: 17.25px; margin-bottom: 24px; }
@media (max-width: 480px) { #site_middle h4 { font-size: 15px; } }
#site_middle h6 { font-weight: normal; font-style: italic; }
#site_middle h2 + h3, #site_middle h3 + h4, #site_middle h5 + h6, #site_middle h2 + section h3, #site_middle h3 + section h4, #site_middle h5 + section h6, #site_middle h2 + div h3, #site_middle h3 + div h4, #site_middle h5 + div h6 { margin-top: 24px; }
#site_middle h1:not(:first-child) + h2, #site_middle h1:not(:first-child) + section h2, #site_middle h1:not(:first-child) + div h2 { margin-top: 24px; }
#site_middle p, #site_middle dd, #site_middle dt, #site_middle pre, #site_middle ul, #site_middle ol, #site_middle table.text, #site_middle div.critical, #site_middle div.important, #site_middle .bottom-spaced { margin-bottom: 24px; }
#site_middle th > p:last-child, #site_middle th > dd:last-child, #site_middle th > dt:last-child, #site_middle th > pre:last-child, #site_middle th > ul:last-child, #site_middle th > ol:last-child,
#site_middle td > p:last-child, #site_middle td > dd:last-child, #site_middle td > dt:last-child, #site_middle td > pre:last-child, #site_middle td > ul:last-child, #site_middle td > ol:last-child {
    margin-bottom: 0;
}
#site_middle ul, #site_middle ol { padding-left: 20px; }
#site_middle ul ul, #site_middle ul ol, #site_middle ol ul, #site_middle ol ol { margin-bottom: 0; }
#site_middle ul { list-style-type: square; }
#site_middle ol { list-style-type: decimal; }
#site_middle dt { font-weight: bold; }
#site_middle dd { padding-left: 20px; }
#site_middle img { max-width: 100%; height: auto; }
#site_middle blockquote { border-left: 3px solid #dbdbdb; margin-left: 9px; padding: 0 10px 0 8px; color: #4d4d4d; }
#site_middle :not(.footnotes) > div.hr { border: none; display: block; text-align: center; margin: 24px auto; }
#site_middle :not(.footnotes) > div.hr hr { display: none; }
#site_middle :not(.footnotes) > div.hr::before { display: inline; content: "⁂"; color: #9193a0; font-size: 2em; font-weight: 400; }
#site_middle .footnotes > div.hr, #site_middle .after-content-hr { margin: 23px auto; height: 2px; background: #e1e5ec; }
#site_middle .footnotes > div.hr hr, #site_middle .after-content-hr hr { display: none; }
#site_middle .after-authored-content { font-size: 13.5px; color: #4a4c4e; }
#site_middle .after-authored-content input { border: none; -moz-box-shadow: none; -webkit-box-shadow: none; box-shadow: none; font-size: inherit; color: #2d2e30; padding: 0; margin: 0; outline: none; }
#site_middle .after-authored-content_unit { display: table-row; }
#site_middle .after-authored-content_label { display: table-cell; color: #2d2e2f; min-width: 6em; }
#site_middle .after-authored-content_datum { display: table-cell; }

#site_footer .container #btmFinePrint { font-size: 85%; }
#site_footer .container { color: #727578; }
#site_footer nav li { display: inline-block; }
#site_footer nav li + li:before { content: "\00B7\A0"; display: inline; }
#site_footer nav li a { text-decoration: none; }
#site_footer nav li a:hover { text-decoration: underline; }

.search-box { margin-bottom: 24px; color: #777; }

.site-search-404 { display: inline-block; vertical-align: middle; *vertical-align: auto; *zoom: 1; *display: inline; width: 60%; min-width: 15em; padding: 0.1em 12px; -webkit-appearance: none; border: 1px solid #4d4d4d; border-radius: 4px; font-size: 15px; line-height: 24px; }

#search_results .search-result { text-decoration: none; cursor: pointer; margin-bottom: 1em; }
#search_results .search-result .search-result-title { text-decoration: underline; font-size: 120%; }
#search_results .search-result .search-result-dispurl { color: green; font-size: 85%; }
#search_results .search-result .search-result-desc { color: #333; }

/* Tweaks to Google site search (normal/light theme) */
.gsc-search-button-v2 {
    background-color: #1934cb !important;
    color: white !important;
    cursor: pointer;
}
.gsc-search-button-v2:hover, .gsc-search-button-v2:focus {
    background-color: #364ed8 !important;
}

.gsc-results .gsc-cursor-box .gsc-cursor-page {
    /* link color */
    color: #0f3e90 !important;
    background-color: transparent !important;
}
.gsc-results .gsc-cursor-box .gsc-cursor-page:hover {
    color: #1f52aa !important;
}

.gsc-results .gsc-cursor-box .gsc-cursor-page.gsc-cursor-current-page {
    /* normal text */
    color: #222 !important;
}
.gsc-input-box {
    border-radius: 1.2em !important;
}
/* End GSS */

#site_middle .sitemap { padding-left: 0; list-style-type: none; }
#site_middle .written-date { font-size: 15px; font-weight: normal; color: #777; white-space: nowrap; font-variant-numeric: tabular-nums; }
@media (min-width: 481px) { #site_middle .written-date { margin-left: 0.5em; } }
@media (max-width: 480px) { #site_middle .written-date { display: block; font-size: 85%; } }
#site_middle .sitemap_page { margin-bottom: 24px; list-style-type: none; color: #333; }
#site_middle .sitemap_page h4 { font-weight: 600; display: flex; margin-bottom: 0; }
@media (min-width: 481px) { #site_middle .sitemap_page h4 { font-size: 120%; } }
#site_middle .sitemap_page h4 a { text-decoration: underline; flex: 1; }
@media (max-width: 480px) { #site_middle .sitemap_page .more-info { font-size: 85%; } }
#site_middle .sitemap_page_tags { font-size: 85%; color: #999; }
#site_middle .sitemap_page--small h4 { font-size: 100%; font-weight: 500; }
#site_middle .sitemap_page--small .more-info { color: #555; }
#site_middle .cse .gsc-control-cse, #site_middle .gsc-control-cse { padding: 0 !important; border-width: 0 !important; }

.home-h1 { font-size: 22.5px; line-height: 48px; margin-top: 12px; }

.home-big-bio { font-size: 27px; line-height: 48px; color: #434749; /*serif*/ font-style: italic; }
@media (max-width: 480px) { .home-big-bio { font-size: 24px; line-height: 36px; color: inherit; } }
@media (max-width: 320px) { .home-big-bio { font-size: 21px; } }

.home-additional-bio { /*serif*/ font-size: 21px; line-height: 36px; }
@media (max-width: 480px) { .home-additional-bio { font-size: 18px; line-height: 24px; } }

.home-big-bio :link, .home-big-bio :visited, .home-additional-bio :link, .home-additional-bio :visited { text-decoration: none; border-bottom: 1px solid currentColor; }

.home-blog-section {
    position: relative; /* positioning root */
    padding-left: 52px;
}

.blog-wordmark {
    color: #1934cb;
}

.blog-wordmark--home {
    width: 103px;
}

#site_middle .home-blog-section-title {
    margin: 0;
    display: inline-block;
    transform: rotate(-90deg);
    position: absolute;
    top: 0;
    left: 0;
    top: 86px;
    left: 22px;
    transform-origin: center left;
}
@media (min-width: 481px) { 
    .home-blog-section {
        padding-right: 52px;
    }
}


.me-elsewhere { display: flex; justify-content: space-between; width: 100%; max-width: 100%; }
#site_middle .me-elsewhere { list-style-type: none; padding: 0 0 0 0; }
@media (max-width: 480px) { #site_middle .me-elsewhere { margin-bottom: 19.2px; } }
.me-elsewhere li { background-repeat: no-repeat; background-position: 0 4px; }
#site_middle .me-elsewhere li a { color: #333; text-decoration: none; display: block; line-height: 32px; padding: 0 0 0 36px; }
#site_middle .me-elsewhere li a:hover { color: black; text-decoration: underline; }

.sml-twitter, .sml-github, .sml-alanhogan { background-size: 24px 24px; }

.sml-twitter { background-image: url(/images/ah-2011/tuidder_48.png); }

.sml-github { background-image: url(/images/ah-2011/github_48.png); }

.sml-alanhogan { background-image: url(/images/ah-2011/myblog_48.png); }

.ktkt__item { margin: 12px 0; }

.ktkt__one-line-item { margin: 12px 0; }

.ktkt__multiline-item { margin: 12px 0; }

.ktkt__label { font-size: 85%; line-height: 1.25; font-weight: 600; text-transform: uppercase; }

.ktkt__text-input,
.ktkt__text-area {
    -webkit-appearance: none;
    font-family: inherit;
    font-size: 16px;
    line-height: 24px;
    box-sizing: border-box;
    width: 100%;
    padding: 0.2em 0.4em;
    border: 1px solid #6b6e70;
    border-radius: 4px;
}
.ktkt__text-input:focus {
    border-color: #525456;
}

.ktkt__text-area:focus {
    border-color: #525456;
}

.check { display: flex; cursor: pointer; }

.check__input { display: none; /* TODO, make accessible */ }

.check__visual { display: block; height: 24px; width: 24px; color: rgba(0, 0, 0, 0.2); border: 1px solid gray; border-radius: 50%; overflow: hidden; text-align: center; }
.check__visual::before { display: inline; content: "✓"; }
.check:hover > .check__visual { color: rgba(0, 0, 0, 0.32); border-color: #666666; }
.check:active > .check__visual { color: rgba(0, 0, 0, 0.48); background-color: rgba(0, 0, 0, 0.08); border-color: #525252; }

.check__input:checked + .check__visual { color: white; background: #119914; border-color: #119914; }
.check:active > .check__input:checked + .check__visual { background: #0f8812; border-color: #0f8812; }

.check__input:checked ~ .check__text { color: #119914; }

.check__spacer { width: 12px; }

a.bml, a.bml:link, a.bml:visited, a.bml:hover { display: inline-block; padding: 0 .6em .1em; color: #000; font-weight: 500; text-decoration: none; border: solid thin #9193a0; border-radius: .4em; background: #e4e4e7; }

a.bml:hover { border-color: #767888; background: #c8c9cf; }

a.bml:active { opacity: 0.6; }

.large-picture-wrap { text-align: center; -webkit-transform-origin: 0 0; -moz-transform-origin: 0 0; -ms-transform-origin: 0 0; transform-origin: 0 0; }

.large-picture-wrap > * { margin-left: auto; margin-right: auto; text-align: left; }

/* big but not full */
@media (max-width: 960px) { .large-picture-wrap.large-picture-wrap_866 { -webkit-transform: scale(0.66667); -moz-transform: scale(0.66667); -ms-transform: scale(0.66667); transform: scale(0.66667); height: 420px; } }
/* 433+ */
@media (max-width: 600px) { .large-picture-wrap.large-picture-wrap_866 { -webkit-transform: scale(0.5); -moz-transform: scale(0.5); -ms-transform: scale(0.5); transform: scale(0.5); height: 314px; } }
/* mob */
@media (max-width: 456px) { .large-picture-wrap.large-picture-wrap_866 { -webkit-transform: scale(0.369); -moz-transform: scale(0.369); -ms-transform: scale(0.369); transform: scale(0.369); height: 234px; } }
/* wide screens */
@media (min-width: 961px) { .large-picture-wrap { margin-left: -35%; margin-right: -35%; } }
#man-waiting-for-network { height: 624px; width: 866px; position: relative; }

#man-waiting-for-network_fg, #man-waiting-for-network_bg { position: absolute; }

#man-waiting-for-network_fg { top: 54px; left: 120px; width: 221px; height: 239px; background-image: url(/images/slow-net/t2.gif); -webkit-mask-image: url(/images/slow-net/mask.png); mask-image: url(/images/slow-net/mask.png); }

#man-waiting-for-network_bg { top: 0; left: 0; width: 100% !important; height: 100%; }

.swatch { border-radius: 2px; border: 1px solid black; box-shadow: inset -1px -1px #fff; color: white; text-shadow: 1px 1px 0 #000; display: inline-block; margin: 5px; min-width: 6em; min-height: 3em; box-sizing: border-box; padding: 0.2em; }



/* DARK COLOR SCHEME */
@media (prefers-color-scheme: dark) {
    html {
        color-scheme: dark;
    }
    html, body, input, textarea {
        color: rgb(202, 208, 211);
        background: rgb(6%, 7%, 8%);
    }

    a:link, .u-link { color: #7ca4e9; transition: color 100ms linear; }

    a:visited { color: hsl(275, 58%, 68%); transition: color 100ms linear; }

    a:link:hover, .u-link:hover { color: #97bbf8; }

    a:visited:hover { color: hsl(275, 76%, 75%); }

    .button:link, .button:visited, .button { background-color: #102079; color: white; box-shadow: 0 3px 0 0 #2832b6; }

    .button:hover, .button:link:hover, .button:visited:hover, .button:focus { color: #fff; background: #123596; box-shadow: 0 3px 0 0 #3842d8;  }

    .button:active, .button:link:active, .button:visited:active { color: #fff; box-shadow: 0 2px 0 0 #3842d8; }

    .button:disabled {
        box-shadow: none;
    }
    .button:disabled:hover {
      background: #102079;
    }


    .alr--success {color: #38b93b; }

    /* skipping u-fg-* and u-bg-* utilities */

    .floatLeftPhoto img { border-color: #505d64; }
    .deemphasized, .footnotes, #site_middle .after-authored-content { color: #9e9fa8; }
    .deemphasized a:link, .footnotes a:link, #site_middle .after-authored-content a:link, .deemphasized .u-link, .footnotes .u-link, #site_middle .after-authored-content .u-link { color: #6f91cf; }
    .deemphasized a:visited, .footnotes a:visited, #site_middle .after-authored-content a:visited { color: hsl(275, 33%, 62%); }
    .deemphasized a:link:hover, .footnotes a:link:hover, #site_middle .after-authored-content a:link:hover, .deemphasized .u-link:hover, .footnotes .u-link:hover, #site_middle .after-authored-content .u-link:hover { color: #769bdf; }
    .deemphasized a:visited:hover, .footnotes a:visited:hover, #site_middle .after-authored-content a:visited:hover { color: hsl(275, 60%, 72%); }

    .footnotes { color: #adb1b4; }

    .footnotes ol:first-of-type::before {
        color: #6A6C6F; /* 2nd of 5 midpoints between HR and footer text colors */
    }

    /* skipping comments */

    div.critical, #hs_errors { color: #f8eeee; text-shadow: 0 1px 0 #000; background-color: #a01111; }
    div.critical :link,
    div.critical :visited,
    #hs_errors :link,
    #hs_errors :visited{ color: white; }

    div.important, #hs_notices {
        color: rgb(228, 228, 156);
        text-shadow: 0 1px 0 #000;
        background-color: #1f2119;
        background: repeating-linear-gradient(-45deg, rgb(228, 228, 156), rgb(228, 228, 156) 5px, transparent 5px, transparent 10px) no-repeat top center / 100% 5px, repeating-linear-gradient(-45deg, rgb(228, 228, 156), rgb(228, 228, 156) 5px, transparent 5px, transparent 10px) no-repeat bottom center / 100% 5px, #1f2119;
    }
    div.important :link, div.important :visited, #hs_notices :link, #hs_notices :visited {
        color: rgb(238, 238, 91);
    }
    

    html a.in_page_anchor_link, html a.in_page_anchor_link:link, html a.in_page_anchor_link:visited { color: #464e58; }

    table.data td, table.data th { border: 1px solid rgb(204, 204, 204); }

    table.text { -moz-box-shadow: 0 1px 0 0 rgba(0, 0, 0, 0.2); -webkit-box-shadow: 0 1px 0 0 rgba(0, 0, 0, 0.2); box-shadow: 0 1px 0 0 rgba(0, 0, 0, 0.2); }
    table.text td, table.text th { -moz-box-shadow: 0 1px 0 0 rgba(0, 0, 0, 0.2) inset; -webkit-box-shadow: 0 1px 0 0 rgba(0, 0, 0, 0.2) inset; box-shadow: 0 1px 0 0 rgba(0, 0, 0, 0.2) inset; }

    .ah-highlight { background: #5e5003 none; color: rgb(253, 246, 204); }

    .u-header-color { color: #1934cb; }

    #site_header { margin-bottom: 36px; background-color: #1934cb; background-image: linear-gradient(45deg, rgb(6%, 7%, 8%), rgb(6%, 7%, 8%) 50%, rgba(0, 0, 0, 0) 50%, rgba(0, 0, 0, 0)), linear-gradient(-45deg, rgb(6%, 7%, 8%), rgb(6%, 7%, 8%) 50%, rgba(0, 0, 0, 0) 50%, rgba(0, 0, 0, 0)), linear-gradient(rgb(6%, 7%, 8%), rgb(6%, 7%, 8%)), linear-gradient(rgb(6%, 7%, 8%), rgb(6%, 7%, 8%)); background-position: calc(50% - 20em - 48px) 0, calc(50% + 20em + 48px) 0, top left, top right; background-size: calc(48px * 1.1) 48px, calc(48px * 1.1) 48px, calc(50% - 20em - 72px) 48px, calc(50% - 20em - 72px) 48px; background-repeat: no-repeat; height: 48px; }
    @media (max-width: 480px) { #site_header { margin-bottom: 24px; } }
    #site_header .container { position: relative; }
    #site_header .container .page-search { position: absolute; right: 0; top: 9.6px; }
    @media (max-width: 480px) { #site_header .container .page-search { max-width: 40%; } }
    #site_header .container .page-search input { -webkit-appearance: textfield; margin: 0; padding: 5px 12px; border-radius: 15px; border: 2px solid white; color: white; background: #1934cb; max-width: 100%; }
    #site_header .container .page-search input::-webkit-input-placeholder { color: rgba(255, 255, 255, 0.75); }
    #site_header .container .page-search input:-moz-placeholder { color: rgba(255, 255, 255, 0.75); }
    #site_header .container .page-search input ::-moz-placeholder { color: rgba(255, 255, 255, 0.75); }
    #site_header .container .page-search input:-ms-input-placeholder { color: rgba(255, 255, 255, 0.75); }
    #site_header .container .page-search input :input-placeholder { color: rgba(255, 255, 255, 0.75); }
    @media (min-width: 481px) { #site_header .container .page-search input { font-size: 12px; } }
    #site_header .container .page-search input:hover:not(:focus)::-webkit-input-placeholder { color: rgba(255, 255, 255, 0.85); }
    #site_header .container .page-search input:hover:not(:focus):-moz-placeholder { color: rgba(255, 255, 255, 0.85); }
    #site_header .container .page-search input:hover:not(:focus) ::-moz-placeholder { color: rgba(255, 255, 255, 0.85); }
    #site_header .container .page-search input:hover:not(:focus):-ms-input-placeholder { color: rgba(255, 255, 255, 0.85); }
    #site_header .container .page-search input:hover:not(:focus) :input-placeholder { color: rgba(255, 255, 255, 0.85); }
    #site_header .container .page-search input:focus { outline: none; -moz-box-shadow: 0 0 4px 2px #77b0f6; -webkit-box-shadow: 0 0 4px 2px #77b0f6; box-shadow: 0 0 4px 2px #77b0f6; }
    #site_header .container .page-site-url { display: none; }
    #site_header .container .page-site-name-wrap { position: absolute; left: 0; top: 6px; }
    #site_header .container .page-site-name-wrap .page-site-name { display: block; padding-top: 1px; }

    code, tt, kbd, pre { color: rgb(162 221 93); background-color: rgb(55 217 63 / 7%); }
    .code--bad-example {
        color: #ea6a87;
        background-color: rgba(232, 121, 152, 0.07);
    }
    pre.code--bad-example {
        background-color: #560c1d;
    }
    pre.code--bad-example > code {
        color: #ea6a87;
    }
    pre > code {
        background: none;
    }

    /* Darken images for comfort */
    #site_middle img:not(:hover) { filter: brightness(0.7); }

    #site_middle blockquote { border-left: 3px solid #3b3e47; color: #a8afc5; }
    #site_middle :not(.footnotes) > div.hr::before { /*content: "⁂";*/ color: #6d7081; }
    #site_middle .footnotes > div.hr, #site_middle .after-content-hr { background: #484a4d; }
    #site_middle .after-authored-content {
        font-size: 87.5%; /* 14px at 16px base */
        color: #c3c9cf;
    }
    #site_middle .after-authored-content input { color: #dce3f0; }
    #site_middle .after-authored-content_label { color: #c3ccd6; }

    #site_footer .container { color: #9ba0a5; }

    .search-box { color: #777; }

    .site-search-404 { border: 1px solid #adb0bb; }
    #search_results .search-result .search-result-dispurl { color: rgb(63, 204, 63); }
    #search_results .search-result .search-result-desc { color: rgb(169, 177, 190); }

    /* for google site search */
    .gs-webResult.gs-result a.gs-title:link, .gs-webResult.gs-result a.gs-title:link b, .gs-imageResult a.gs-title:link, .gs-imageResult a.gs-title:link b, .gs-spelling a {
        color: #7ca4e9 !important; 
    }
    .gs-webResult.gs-result a.gs-title:visited, .gs-webResult.gs-result a.gs-title:visited b, .gs-imageResult a.gs-title:visited, .gs-imageResult a.gs-title:visited b {
        color: #ca80dd !important; 
    }
    .gs-webResult.gs-result a.gs-title:link:hover, .gs-webResult.gs-result a.gs-title:link:hover b, .gs-imageResult a.gs-title:link:hover, .gs-imageResult a.gs-title:link:hover b, .gs-spelling:hover a {
        color: #97bbf8 !important; 
    }
    .gs-webResult.gs-result a.gs-title:visited:hover, .gs-webResult.gs-result a.gs-title:visited:hover b, .gs-imageResult a.gs-title:visited:hover, .gs-imageResult a.gs-title:visited:hover b {
        color: #da91f0 !important; 
    }
    .gs-webResult div.gs-visibleUrl { color: rgb(137, 190, 137) !important; }
    .gs-webResult:not(.gs-no-results-result):not(.gs-error-result) .gs-snippet, .gs-fileFormatType {
        color: #d0d4d8 !important;
    }
    .gsc-control-cse, .gsc-input-box {
        color: inherit !important;
        background: inherit !important;
    }
    .gsc-webResult.gsc-result, .gsc-results .gsc-imageResult {
        border-color: transparent !important;
        background: inherit !important;
    }
    .gsc-search-button-v2 {
        background-color: #1934cb !important;
        color: white !important;
    }
    .gsc-search-button-v2:hover, .gsc-search-button-v2:focus {
        background-color: #364ed8 !important;
    }
    .gsc-result-info, .gs-spelling {
        color:rgb(133, 138, 148) !important;
    }
    .gsc-above-wrapper-area {
        border-bottom-color:rgb(29, 32, 34) !important;
    }
    .gcsc-find-more-on-google {
        color: inherit !important;
    }
    .gcsc-find-more-on-google-magnifier {
        fill: currentColor !important;
    }
    .gsc-results .gsc-cursor-box .gsc-cursor-page {
        /* link color */
        color: #7ca4e9 !important;
    }
    .gsc-results .gsc-cursor-box .gsc-cursor-page:hover {
        color: #97bbf8 !important;
    }
    .gsc-results .gsc-cursor-box .gsc-cursor-page.gsc-cursor-current-page {
        /* normal text */
        color: #d0d4d8 !important;
    }
    /* end google site search */

    #site_middle .written-date { color: rgb(136, 140, 146); }
    #site_middle .sitemap_page { margin-bottom: 24px; list-style-type: none; color: rgb(189, 197, 204); }
    #site_middle .sitemap_page_tags { font-size: 85%; color: rgb(133, 138, 148); }
    #site_middle .sitemap_page--small .more-info { color: rgb(154, 159, 173); }

    .home-big-bio { font-size: 27px; line-height: 48px; color: #aeb5bb; }


    .blog-wordmark {
        color: inherit;
    }

    #site_middle .me-elsewhere li a { color: rgb(175, 179, 189); }
    #site_middle .me-elsewhere li a:hover { color: rgb(255, 255, 255); }

    .ktkt__text-input { border-color: #989ca0; }
    .ktkt__text-input:focus { border-color: #b3c6d6; }

    .ktkt__text-area { border: 1px solid #989ca0; }
    .ktkt__text-area:focus { border-color: #b3c6d6; }

    .check__visual { color: rgba(255, 255, 255, 0.2); border-color: gray; }
    .check:hover > .check__visual { color: rgba(255, 255, 255, 0.32); border-color: #9b9b9b; }
    .check:active > .check__visual { color: rgba(255, 255, 255, 0.48); background-color: rgba(255, 255, 255, 0.08); border-color: #b3b8c0; }

    .check__input:checked + .check__visual { color: rgb(0, 0, 0); background: #38b93b; border-color: #38b93b; }
    .check:active > .check__input:checked + .check__visual { background: #72ca73; border-color: #72ca73; }

    .check__input:checked ~ .check__text { color: #38b93b; }

    
    a.bml, a.bml:link, a.bml:visited, a.bml:hover { color: #eee; border-color: #6e7079; background: #4c4c50; }

    a.bml:hover { border-color: #767888; background: #5f5f63; }


    #man-waiting-for-network:not(:hover) {
        filter: brightness(0.7);
    }
    #man-waiting-for-network img {
        filter: none;
    }
}
