@charset "UTF-8";
/* ========================================================================== SHARED THEME SETTINGS ========================================================================== */
/* ========================================================================== TYPOGRAPHY ========================================================================== */
/* Used to set the size for <em> */
/* Paragraph indention */
/* System typefaces */
/* Sans serif typefaces */
/* Serif typefaces */
/* Type scale */
/* ========================================================================== Breakpoints ========================================================================== */
/* ========================================================================== Grid ========================================================================== */
/* ========================================================================== BRAND COLORS ========================================================================== */
/* ========================================================================== DEFAULT THEME - LIGHT VERSION ========================================================================== */
/* Color codes used for the theme */
/* Color codes used for the site */
/* Other basic settings for the template */
/* Default light theme for the site */
:root { --global-base-color: #2f7f93; --global-bg-color: #fff; --global-footer-bg-color: #f2f3f3; --global-border-color: #f2f3f3; --global-dark-border-color: #bdc1c4; --global-code-background-color: #fafafa; --global-code-text-color: #313436; --global-fig-caption-color: mix(#fff, #494e52, 25%); --global-link-color: #52adc8; --global-link-color-hover: mix(#000, #2f7f93, 25%); --global-link-color-visited: mix(#fff, #2f7f93, 25%); --global-masthead-link-color: #494e52; --global-masthead-link-color-hover: mix(#000, #7a8288, 25%); --global-text-color: #494e52; --global-text-color-light: #bdc1c4; --global-thead-color: #f2f3f3; }

/* ========================================================================== DEFAULT THEME - DARK VERSION ========================================================================== */
/* Color codes used for the theme */
/* Color codes used for the site */
/* Other basic settings for the template */
/* Dark theme for the site */
html[data-theme="dark"] { --global-base-color: #0ea1c5; --global-bg-color: #474747; --global-footer-bg-color: #474747; --global-border-color: #bdc1c4; --global-dark-border-color: #dadada; --global-code-background-color: #fafafa; --global-code-text-color: #313436; --global-fig-caption-color: #bdc1c4; --global-link-color: #0ea1c5; --global-link-color-hover: #0b7994; --global-link-color-visited: #4ab9d4; --global-masthead-link-color: #ffffff; --global-masthead-link-color-hover: #0ea1c5; --global-text-color: #ffffff; --global-text-color-light: #f3f3f3; --global-thead-color: #ededed; }

/* ========================================================================== MIXINS ========================================================================== */
a:focus { /* Default*/ outline: thin dotted #f89406; /* Webkit*/ outline: 5px auto #f89406; outline-offset: -2px; }

/* em function ========================================================================== */
/* Bourbon clearfix ========================================================================== */
/* Provides an easy way to include a clearfix for containing floats. link http://cssmojo.com/latest_new_clearfix_so_far/  example scss - Usage  .element { @include clearfix; }  example css - CSS Output  .element::after { clear: both; content: ""; display: table; }
*/
/* ========================================================================== STYLE RESETS ========================================================================== */
*, *:before, *:after { -moz-box-sizing: border-box; -webkit-box-sizing: border-box; box-sizing: border-box; }

html { /* apply a natural box layout model to all elements */ box-sizing: border-box; background-color: var(--global-bg-color); font-size: 16px; -webkit-text-size-adjust: 100%; -ms-text-size-adjust: 100%; }
@media (min-width: 48em) { html { font-size: 18px; } }

/* Remove margin */
body { margin: 0; }

/* Selected elements */
::-moz-selection { color: #fff; background: #000; }

::selection { color: #fff; background: #000; }

/* Display HTML5 elements in IE6-9 and FF3 */
article, aside, details, figcaption, figure, footer, header, hgroup, main, nav, section { display: block; }

/* Display block in IE6-9 and FF3 */
audio, canvas, video { display: inline-block; *display: inline; *zoom: 1; }

/* Prevents modern browsers from displaying 'audio' without controls */
audio:not([controls]) { display: none; }

a { color: var(--global-link-color); }

/* Apply focus state */
/* Remove outline from links */
a:hover, a:active { outline: 0; }

/* Prevent sub and sup affecting line-height in all browsers */
sub, sup { position: relative; font-size: 75%; line-height: 0; vertical-align: baseline; }

sup { top: -0.5em; }

sub { bottom: -0.25em; }

/* img border in anchor's and image quality */
img { /* Responsive images (ensure images don't scale beyond their parents) */ max-width: 100%; /* part 1: Set a maximum relative to the parent*/ width: auto\9; /* IE7-8 need help adjusting responsive images*/ height: auto; /* part 2: Scale the height according to the width, otherwise you get stretching*/ vertical-align: middle; border: 0; -ms-interpolation-mode: bicubic; }

/* Prevent max-width from affecting Google Maps */
#map_canvas img, .google-maps img { max-width: none; }

/* Consistent form font size in all browsers, margin changes, misc */
button, input, select, textarea { margin: 0; font-size: 100%; vertical-align: middle; }

button, input { *overflow: visible; /* inner spacing ie IE6/7*/ line-height: normal; /* FF3/4 have !important on line-height in UA stylesheet*/ }

button::-moz-focus-inner, input::-moz-focus-inner { /* inner padding and border oddities in FF3/4*/ padding: 0; border: 0; }

button, html input[type="button"], input[type="reset"], input[type="submit"] { -webkit-appearance: button; /* corrects inability to style clickable `input` types in iOS*/ cursor: pointer; /* improves usability and consistency of cursor style between image-type `input` and others*/ }

label, select, button, input[type="button"], input[type="reset"], input[type="submit"], input[type="radio"], input[type="checkbox"] { cursor: pointer; /* improves usability and consistency of cursor style between image-type `input` and others*/ }

input[type="search"] { /* Appearance in Safari/Chrome*/ box-sizing: content-box; -webkit-appearance: textfield; }

input[type="search"]::-webkit-search-decoration, input[type="search"]::-webkit-search-cancel-button { -webkit-appearance: none; /* inner-padding issues in Chrome OSX, Safari 5*/ }

textarea { overflow: auto; /* remove vertical scrollbar in IE6-9*/ vertical-align: top; /* readability and alignment cross-browser*/ }

/* ========================================================================== BASE ELEMENTS ========================================================================== */
html { /* sticky footer fix */ position: relative; min-height: 100%; scroll-behavior: smooth; }

body { /* Set via _themes.scss */ color: var(--global-text-color); background-color: var(--global-bg-color); margin: 0; padding: 70px 0 0; padding-bottom: 9em; font-family: -apple-system, ".SFNSText-Regular", "San Francisco", "Roboto", "Segoe UI", "Helvetica Neue", "Lucida Grande", Arial, sans-serif; line-height: 1.5; }
body.overflow--hidden { /* when primary navigation is visible, the content in the background won't scroll */ overflow: hidden; }

h1, h2, h3, h4, h5, h6 { margin: 2em 0 0.5em; line-height: 1.2; font-family: -apple-system, ".SFNSText-Regular", "San Francisco", "Roboto", "Segoe UI", "Helvetica Neue", "Lucida Grande", Arial, sans-serif; font-weight: bold; }

h1 { margin-top: 0; font-size: 1.563em; }

h2 { font-size: 1.25em; }

h3 { font-size: 1em; }

h4 { font-size: 0.75em; }

h5 { font-size: 0.75em; }

h6 { font-size: 0.75em; }

small, .small { font-size: 0.75em; }

p { margin-bottom: 1.3em; }

u, ins { text-decoration: none; border-bottom: 1px solid var(--global-text-color); }
u a, ins a { color: inherit; }

del a { color: inherit; }

/* reduce orphans and widows when printing */
p, pre, blockquote, ul, ol, dl, figure, table, fieldset { orphans: 3; widows: 3; }

/* abbreviations */
abbr[title], abbr[data-original-title] { text-decoration: none; cursor: help; border-bottom: 1px dotted var(--global-text-color); }

/* blockquotes */
blockquote { margin: 2em 1em 2em 0; padding-left: 1em; padding-right: 1em; font-style: italic; border-left: 0.25em solid var(--global-border-color); }
blockquote cite { font-style: italic; }
blockquote cite:before { content: "\2014"; padding-right: 5px; }

/* links */
a:hover, a:active { outline: 0; }

/* code */
tt, code, kbd, samp, pre { font-family: Monaco, Consolas, "Lucida Console", monospace; }

pre { overflow-x: auto; /* add scrollbars to wide code blocks*/ }

a > code, figcaption > code, li > code, p > code, td > code { color: var(--global-code-text-color); padding-top: 0.1rem; padding-bottom: 0.1rem; font-size: 0.75em; background: var(--global-code-background-color); border: 1px solid var(--global-thead-color); border-radius: 4px; box-shadow: 0 1px 1px rgba(0, 0, 0, 0.125); }
a > code:before, a > code:after, figcaption > code:before, figcaption > code:after, li > code:before, li > code:after, p > code:before, p > code:after, td > code:before, td > code:after { letter-spacing: -0.2em; content: "\00a0"; /* non-breaking space*/ }

a > code { color: inherit; }

pre > code { color: var(--global-code-text-color); }

/* horizontal rule */
hr { display: block; margin: 1em 0; border: 0; border-top: 1px solid var(--global-border-color); }

/* lists */
ul li, ol li { margin-bottom: 0.5em; }

li ul, li ol { margin-top: 0.5em; }

/* Media and embeds ========================================================================== */
/* Figures and images */
figure { display: -webkit-box; display: flex; -webkit-box-pack: justify; justify-content: space-between; -webkit-box-align: start; align-items: flex-start; flex-wrap: wrap; margin: 2em 0; }
figure img, figure iframe, figure .fluid-width-video-wrapper { margin-bottom: 1em; }
figure img { width: 100%; border-radius: 4px; -webkit-transition: all 0.2s ease-in-out; transition: all 0.2s ease-in-out; }
figure > a { display: block; }
@media (min-width: 37.5em) { figure.half > a, figure.half > img { width: calc(50% - 0.5em); } }
figure.half figcaption { width: 100%; }
@media (min-width: 37.5em) { figure.third > a, figure.third > img { width: calc(33.3333% - 0.5em); } }
figure.third figcaption { width: 100%; }

/* Figure captions */
figcaption { margin-bottom: 0.5em; color: var(--global-fig-caption-color); font-family: Georgia, Times, serif; font-size: 0.75em; }
figcaption a { color: inherit; text-decoration: none; border-bottom: 1px solid var(--global-border-color); -webkit-transition: all 0.2s ease-in-out; transition: all 0.2s ease-in-out; }
figcaption a:hover { color: #000; border-bottom-color: #000; }

/* Fix IE9 SVG bug */
svg:not(:root) { overflow: hidden; }

/* Navigation lists ========================================================================== */
/** Removes margins, padding, and bullet points from navigation lists  Example usage: <nav> <ul> <li><a href="#link-1">Link 1</a></li> <li><a href="#link-2">Link 2</a></li> <li><a href="#link-3">Link 3</a></li> </ul> </nav> */
nav { /* override white-space for nested lists */ }
nav ul { margin: 0; padding: 0; }
nav li { list-style: none; }
nav a { text-decoration: none; }
nav ul li, nav ol li { margin-bottom: 0; }
nav li ul, nav li ol { margin-top: 0; }

/* ========================================================================== ANIMATIONS ========================================================================== */
@-webkit-keyframes intro { 0% { opacity: 0; }
  100% { opacity: 1; } }
@keyframes intro { 0% { opacity: 0; }
  100% { opacity: 1; } }
/* Global animation transition */
b, i, strong, em, blockquote, p, q, span, figure, img, h1, h2, header, input, a, tr, td, form button, input[type="submit"], .btn, #goog-wm-sb, .highlight, .archive__item-teaser { -webkit-transition: all 0.2s ease-in-out; transition: all 0.2s ease-in-out; }

/* ========================================================================== PRINT STYLES ========================================================================== */
/* Hide the following elements on print ========================================================================== */
@media print { .masthead, .toc, .page__share, .page__related, .ads, .page__footer { display: none; } }
/* ========================================================================== UTILITY CLASSES ========================================================================== */
/* Visibility ========================================================================== */
/* http://www.456bereastreet.com/archive/200711/screen_readers_sometimes_ignore_displaynone/ */
.hidden { display: none; visibility: hidden; }

/* for preloading images */
.load { display: none; }

.transparent { opacity: 0; }

/* https://developer.yahoo.com/blogs/ydn/clip-hidden-content-better-accessibility-53456.html */
.visually-hidden, .screen-reader-text, .screen-reader-text span, .screen-reader-shortcut { position: absolute !important; clip: rect(1px, 1px, 1px, 1px); height: 1px !important; width: 1px !important; border: 0 !important; overflow: hidden; }

body:hover .visually-hidden a, body:hover .visually-hidden input, body:hover .visually-hidden button { display: none !important; }

/* screen readers */
.screen-reader-text:focus, .screen-reader-shortcut:focus { clip: auto !important; height: auto !important; width: auto !important; display: block; font-size: 1em; font-weight: bold; padding: 15px 23px 14px; background: var(--global-text-color); z-index: 100000; text-decoration: none; box-shadow: 0 0 2px 2px rgba(0, 0, 0, 0.6); }

/* Skip links ========================================================================== */
.skip-link { position: fixed; z-index: 20; margin: 0; font-family: -apple-system, ".SFNSText-Regular", "San Francisco", "Roboto", "Segoe UI", "Helvetica Neue", "Lucida Grande", Arial, sans-serif; white-space: nowrap; }

.skip-link li { height: 0; width: 0; list-style: none; }

/* Type ========================================================================== */
.text-left { text-align: left; }

.text-center { text-align: center; }

.text-right { text-align: right; }

.text-justify { text-align: justify; }

.text-nowrap { white-space: nowrap; }

/* Alignment ========================================================================== */
/* clearfix */
.cf { clear: both; }

.wrapper { max-width: 925px; margin-left: auto; margin-right: auto; }
.wrapper:after { content: " "; display: block; clear: both; }

/* Source: http://snipplr.com/view/10979/css-cross-browser-word-wrap */
.wordwrap { white-space: pre-wrap; /* CSS3 */ white-space: -moz-pre-wrap; /* Firefox */ white-space: -pre-wrap; /* Opera <7 */ white-space: -o-pre-wrap; /* Opera 7 */ word-wrap: break-word; /* IE */ }

/* Images ========================================================================== */
/* image align left */
.align-left { display: block; margin-left: auto; margin-right: auto; }
@media (min-width: 37.5em) { .align-left { float: left; margin-right: 1em; } }

/* image align right */
.align-right { display: block; margin-left: auto; margin-right: auto; }
@media (min-width: 37.5em) { .align-right { float: right; margin-left: 1em; } }

/* image align center */
.align-center { display: block; margin-left: auto; margin-right: auto; }

/* file page content container */
@media (min-width: 57.8125em) { .full { margin-right: -19.4915254237% !important; } }

/* Icons ========================================================================== */
.icon { display: inline-block; fill: currentColor; width: 1em; height: 1.1em; line-height: 1; position: relative; top: -0.1em; vertical-align: middle; }

/* Adjust this setting to control the space between an icon and text in the sidebar */
.icon-pad-right { padding-right: 0.5em; margin-right: 0.5em; }

/* social icons*/
.social-icons .fa { color: #000; }
.social-icons .fa-bluesky, .social-icons .fa-bluesky-square { color: #1184fe; }
.social-icons .fa-behance, .social-icons .fa-behance-square { color: #1769FF; }
.social-icons .fa-dribbble { color: #ea4c89; }
.social-icons .fa-facebook, .social-icons .fa-facebook-square { color: #3b5998; }
.social-icons .fa-flickr { color: #ff0084; }
.social-icons .fa-foursquare { color: #0072b1; }
.social-icons .fa-google-plus, .social-icons .fa-google-plus-square { color: #dd4b39; }
.social-icons .fa-instagram { color: #517fa4; }
.social-icons .fa-kaggle, .social-icons .fa-kaggle-square { color: #20c0ff; }
.social-icons .fa-lastfm, .social-icons .fa-lastfm-square { color: #d51007; }
.social-icons .fa-linkedin, .social-icons .fa-linkedin-square { color: #007bb6; }
.social-icons .fa-mastodon, .social-icons .fa-mastodon-square { color: #6364ff; }
.social-icons .ai-orcid, .social-icons .ai-orcid-square { color: #a6ce39; }
.social-icons .fa-pinterest, .social-icons .fa-pinterest-p, .social-icons .fa-pinterest-square { color: #cb2027; }
.social-icons .fa-rss, .social-icons .fa-rss-square { color: #fa9b39; }
.social-icons .fa-soundcloud { color: #ff3300; }
.social-icons .fa-stack-exchange, .social-icons .fa-stack-overflow { color: #fe7a15; }
.social-icons .fa-tumblr, .social-icons .fa-tumblr-square { color: #32506d; }
.social-icons .fa-twitter, .social-icons .fa-twitter-square { color: #55acee; }
.social-icons .fa-vimeo, .social-icons .fa-vimeo-square { color: #1ab7ea; }
.social-icons .fa-vine { color: #00bf8f; }
.social-icons .fa-youtube, .social-icons .fa-youtube-square, .social-icons .fa-youtube-play { color: #bb0000; }
.social-icons .fa-xing, .social-icons .fa-xing-square { color: #006567; }

/* Navicons ========================================================================== */
.navicon { position: relative; display: inline-block; vertical-align: middle; width: 28px; height: 4px; background: var(--global-masthead-link-color); margin: auto; -webkit-transition: 0.3s; transition: 0.3s; }
.navicon:before, .navicon:after { content: ""; position: absolute; left: 0; width: 28px; height: 4px; background: var(--global-masthead-link-color); -webkit-transition: 0.3s; transition: 0.3s; }
.navicon:before { top: -8px; }
.navicon:after { bottom: -8px; }

.close .navicon { /* hide the middle line*/ background: transparent; /* overlay the lines by setting both their top values to 0*/ /* rotate the lines to form the x shape*/ }
.close .navicon:before, .close .navicon:after { -webkit-transform-origin: 50% 50%; -ms-transform-origin: 50% 50%; transform-origin: 50% 50%; top: 0; width: 28px; }
.close .navicon:before { -webkit-transform: rotate3d(0, 0, 1, 45deg); transform: rotate3d(0, 0, 1, 45deg); }
.close .navicon:after { -webkit-transform: rotate3d(0, 0, 1, -45deg); transform: rotate3d(0, 0, 1, -45deg); }

/* Sticky, fixed to top content ========================================================================== */
@media (min-width: 57.8125em) { .sticky { clear: both; position: -webkit-sticky; position: sticky; top: 2em; }
  .sticky::after { clear: both; content: ""; display: table; }
  .sticky > * { display: block; } }

/* Wells ========================================================================== */
.well { min-height: 20px; padding: 19px; margin-bottom: 20px; background-color: #f5f5f5; border: 1px solid #e3e3e3; border-radius: 4px; box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.05); }

/* Modals ========================================================================== */
.show-modal { overflow: hidden; position: relative; }
.show-modal:before { position: absolute; content: ""; top: 0; left: 0; width: 100%; height: 100%; z-index: 999; background-color: rgba(255, 255, 255, 0.85); }
.show-modal .modal { display: block; }

.modal { display: none; position: fixed; width: 300px; top: 50%; left: 50%; margin-left: -150px; margin-top: -150px; min-height: 0; z-index: 9999; background: var(--global-text-color); border: 1px solid var(--global-border-color); border-radius: 4px; box-shadow: 0 1px 1px rgba(0, 0, 0, 0.125); }
.modal__title { margin: 0; padding: 0.5em 1em; }
.modal__supporting-text { padding: 0 1em 0.5em 1em; }
.modal__actions { padding: 0.5em 1em; border-top: 1px solid var(--global-border-color); }

/* Footnotes ========================================================================== */
.footnote { color: var(--global-text-color-light); text-decoration: none; }

.footnotes { color: var(--global-text-color-light); }
.footnotes ol, .footnotes li, .footnotes p { margin-bottom: 0; font-size: 0.75em; }

a.reversefootnote { color: var(--global-text-color-light); text-decoration: none; }
a.reversefootnote:hover { text-decoration: underline; }

/* Required ========================================================================== */
.required { color: #ee5f5b; font-weight: bold; }

/* ========================================================================== TABLES ========================================================================== */
table { margin-bottom: 1em; width: 100%; font-family: -apple-system, ".SFNSText-Regular", "San Francisco", "Roboto", "Segoe UI", "Helvetica Neue", "Lucida Grande", Arial, sans-serif; font-size: 0.75em; border-collapse: collapse; border: 1px solid var(--global-border-color); }
table + table { margin-top: 1em; }

thead { background-color: var(--global-border-color); border-bottom: 1px solid var(--global-border-color); }

th { padding: 0.5em; font-weight: bold; text-align: left; border-right: 1px solid var(--global-border-color); }

td { padding: 0.5em; border-bottom: 1px solid var(--global-border-color); border-right: 1px solid var(--global-border-color); }

tr, td, th { vertical-align: middle; }

/* ========================================================================== BUTTONS ========================================================================== */
/* Default button ========================================================================== */
.btn, #goog-wm-sb { /* default button */ display: inline-block; margin-bottom: 0.25em; padding: 0.5em 1em; color: #fff !important; font-family: -apple-system, ".SFNSText-Regular", "San Francisco", "Roboto", "Segoe UI", "Helvetica Neue", "Lucida Grande", Arial, sans-serif; font-size: 0.75em; font-weight: bold; text-align: center; text-decoration: none; background-color: var(--global-base-color); border: 0 !important; border-radius: 4px; cursor: pointer; /* fills width of parent container */ /* for dark backgrounds */ /* light outline */ /* information */ /* warning */ /* success */ /* danger */ /* disabled */ /* social buttons */ /* extra large button */ /* large button */ /* small button */ }
.btn:hover, #goog-wm-sb:hover { background-color: #333333; }
.btn .icon, #goog-wm-sb .icon { margin-right: 0.5em; }
.btn .icon + .hidden, #goog-wm-sb .icon + .hidden { margin-left: -0.5em; /* override for hidden text*/ }
.btn--block { display: block; width: 100%; }
.btn--block + .btn--block { margin-top: 0.25em; }
.btn--inverse { color: var(--global-text-color-light) !important; border: 1px solid var(--global-border-color) !important; /* override*/ background-color: var(--global-bg-color); }
.btn--inverse:hover { color: #fff !important; border-color: var(--global-text-color-light); }
.btn--light-outline { border: 1px solid #fff !important; /* override*/ background-color: transparent; }
.btn--info { background-color: #2f7f93; }
.btn--info:hover { background-color: #266676; }
.btn--warning { background-color: #f89406; }
.btn--warning:hover { background-color: #c67605; }
.btn--success { background-color: #62c462; }
.btn--success:hover { background-color: #4e9d4e; }
.btn--danger { background-color: #ee5f5b; }
.btn--danger:hover { background-color: #be4c49; }
.btn--disabled { pointer-events: none; cursor: not-allowed; filter: alpha(opacity=65); box-shadow: none; opacity: 0.65; }
.btn--bluesky { background-color: #1184fe; }
.btn--bluesky:hover { background-color: #0e6acb; }
.btn--facebook { background-color: #3b5998; }
.btn--facebook:hover { background-color: #2f477a; }
.btn--google-plus { background-color: #dd4b39; }
.btn--google-plus:hover { background-color: #b13c2e; }
.btn--linkedin { background-color: #007bb6; }
.btn--linkedin:hover { background-color: #006292; }
.btn--mastodon { background-color: #6364ff; }
.btn--mastodon:hover { background-color: #4f50cc; }
.btn--twitter { background-color: #55acee; }
.btn--twitter:hover { background-color: #448abe; }
.btn--x-large { font-size: 1.25em; }
.btn--large { font-size: 1em; }
.btn--small { font-size: 0.6875em; }

/* ========================================================================== NOTICE TEXT BLOCKS ========================================================================== */
/** Default Kramdown usage (no indents!): <div class="notice" markdown="1"> #### Headline for the Notice Text for the notice </div> */
/* Default notice */
.notice { margin: 2em 0 !important; /* override*/ padding: 1em; font-family: -apple-system, ".SFNSText-Regular", "San Francisco", "Roboto", "Segoe UI", "Helvetica Neue", "Lucida Grande", Arial, sans-serif; font-size: 0.75em !important; text-indent: initial; /* override*/ background-color: #f2f3f3; border-radius: 4px; box-shadow: 0 1px 1px rgba(122, 130, 136, 0.25); color: var(--global-code-text-color); }
.notice h4 { margin-top: 0 !important; /* override*/ margin-bottom: 0.75em; }
.page__content .notice h4 { /* using at-root to override .page-content h4 font size*/ margin-bottom: 0; font-size: 1em; }
.notice p:last-child { margin-bottom: 0 !important; /* override*/ }
.notice h4 + p { /* remove space above paragraphs that appear directly after notice headline*/ margin-top: 0; padding-top: 0; }
.notice a { color: #7a8288; }
.notice a:hover { color: #494e52; }
.notice code { background-color: #f8f9f9; }
.notice ul:last-child { margin-bottom: 0; /* override*/ }

/* Primary notice */
.notice--primary { margin: 2em 0 !important; /* override*/ padding: 1em; font-family: -apple-system, ".SFNSText-Regular", "San Francisco", "Roboto", "Segoe UI", "Helvetica Neue", "Lucida Grande", Arial, sans-serif; font-size: 0.75em !important; text-indent: initial; /* override*/ background-color: #f2f3f3; border-radius: 4px; box-shadow: 0 1px 1px rgba(122, 130, 136, 0.25); color: var(--global-code-text-color); }
.notice--primary h4 { margin-top: 0 !important; /* override*/ margin-bottom: 0.75em; }
.page__content .notice--primary h4 { /* using at-root to override .page-content h4 font size*/ margin-bottom: 0; font-size: 1em; }
.notice--primary p:last-child { margin-bottom: 0 !important; /* override*/ }
.notice--primary h4 + p { /* remove space above paragraphs that appear directly after notice headline*/ margin-top: 0; padding-top: 0; }
.notice--primary a { color: #7a8288; }
.notice--primary a:hover { color: #494e52; }
.notice--primary code { background-color: #f8f9f9; }
.notice--primary ul:last-child { margin-bottom: 0; /* override*/ }

/* Info notice */
.notice--info { margin: 2em 0 !important; /* override*/ padding: 1em; font-family: -apple-system, ".SFNSText-Regular", "San Francisco", "Roboto", "Segoe UI", "Helvetica Neue", "Lucida Grande", Arial, sans-serif; font-size: 0.75em !important; text-indent: initial; /* override*/ background-color: #eaf2f4; border-radius: 4px; box-shadow: 0 1px 1px rgba(47, 127, 147, 0.25); color: var(--global-code-text-color); }
.notice--info h4 { margin-top: 0 !important; /* override*/ margin-bottom: 0.75em; }
.page__content .notice--info h4 { /* using at-root to override .page-content h4 font size*/ margin-bottom: 0; font-size: 1em; }
.notice--info p:last-child { margin-bottom: 0 !important; /* override*/ }
.notice--info h4 + p { /* remove space above paragraphs that appear directly after notice headline*/ margin-top: 0; padding-top: 0; }
.notice--info a { color: #2f7f93; }
.notice--info a:hover { color: #1c4c58; }
.notice--info code { background-color: #f5f9fa; }
.notice--info ul:last-child { margin-bottom: 0; /* override*/ }

/* Warning notice */
.notice--warning { margin: 2em 0 !important; /* override*/ padding: 1em; font-family: -apple-system, ".SFNSText-Regular", "San Francisco", "Roboto", "Segoe UI", "Helvetica Neue", "Lucida Grande", Arial, sans-serif; font-size: 0.75em !important; text-indent: initial; /* override*/ background-color: #fef4e6; border-radius: 4px; box-shadow: 0 1px 1px rgba(248, 148, 6, 0.25); color: var(--global-code-text-color); }
.notice--warning h4 { margin-top: 0 !important; /* override*/ margin-bottom: 0.75em; }
.page__content .notice--warning h4 { /* using at-root to override .page-content h4 font size*/ margin-bottom: 0; font-size: 1em; }
.notice--warning p:last-child { margin-bottom: 0 !important; /* override*/ }
.notice--warning h4 + p { /* remove space above paragraphs that appear directly after notice headline*/ margin-top: 0; padding-top: 0; }
.notice--warning a { color: #f89406; }
.notice--warning a:hover { color: #955904; }
.notice--warning code { background-color: #fffaf3; }
.notice--warning ul:last-child { margin-bottom: 0; /* override*/ }

/* Success notice */
.notice--success { margin: 2em 0 !important; /* override*/ padding: 1em; font-family: -apple-system, ".SFNSText-Regular", "San Francisco", "Roboto", "Segoe UI", "Helvetica Neue", "Lucida Grande", Arial, sans-serif; font-size: 0.75em !important; text-indent: initial; /* override*/ background-color: #eff9ef; border-radius: 4px; box-shadow: 0 1px 1px rgba(98, 196, 98, 0.25); color: var(--global-code-text-color); }
.notice--success h4 { margin-top: 0 !important; /* override*/ margin-bottom: 0.75em; }
.page__content .notice--success h4 { /* using at-root to override .page-content h4 font size*/ margin-bottom: 0; font-size: 1em; }
.notice--success p:last-child { margin-bottom: 0 !important; /* override*/ }
.notice--success h4 + p { /* remove space above paragraphs that appear directly after notice headline*/ margin-top: 0; padding-top: 0; }
.notice--success a { color: #62c462; }
.notice--success a:hover { color: #3b763b; }
.notice--success code { background-color: #f7fcf7; }
.notice--success ul:last-child { margin-bottom: 0; /* override*/ }

/* Danger notice */
.notice--danger { margin: 2em 0 !important; /* override*/ padding: 1em; font-family: -apple-system, ".SFNSText-Regular", "San Francisco", "Roboto", "Segoe UI", "Helvetica Neue", "Lucida Grande", Arial, sans-serif; font-size: 0.75em !important; text-indent: initial; /* override*/ background-color: #fdefef; border-radius: 4px; box-shadow: 0 1px 1px rgba(238, 95, 91, 0.25); color: var(--global-code-text-color); }
.notice--danger h4 { margin-top: 0 !important; /* override*/ margin-bottom: 0.75em; }
.page__content .notice--danger h4 { /* using at-root to override .page-content h4 font size*/ margin-bottom: 0; font-size: 1em; }
.notice--danger p:last-child { margin-bottom: 0 !important; /* override*/ }
.notice--danger h4 + p { /* remove space above paragraphs that appear directly after notice headline*/ margin-top: 0; padding-top: 0; }
.notice--danger a { color: #ee5f5b; }
.notice--danger a:hover { color: #8f3937; }
.notice--danger code { background-color: #fef7f7; }
.notice--danger ul:last-child { margin-bottom: 0; /* override*/ }

/* ========================================================================== MASTHEAD ========================================================================== */
.masthead { position: fixed; background: var(--global-bg-color); height: fit-content; top: 0; width: 100%; -webkit-animation: intro 0.3s both; animation: intro 0.3s both; -webkit-animation-delay: 0.15s; animation-delay: 0.15s; z-index: 20; }
.masthead::after { content: ""; position: absolute; bottom: 0; height: 1px; background: var(--global-border-color); width: 100%; }
.masthead__inner-wrap { max-width: 925px; margin-left: auto; margin-right: auto; clear: both; padding: 0.5em 1em; font-family: -apple-system, ".SFNSText-Regular", "San Francisco", "Roboto", "Segoe UI", "Helvetica Neue", "Lucida Grande", Arial, sans-serif; }
.masthead__inner-wrap:after { content: " "; display: block; clear: both; }
.masthead__inner-wrap::after { clear: both; content: ""; display: table; }
@media (min-width: 80em) { .masthead__inner-wrap { max-width: 1280px; } }
.masthead__inner-wrap nav { z-index: 10; }
.masthead__inner-wrap a { text-decoration: none; }

.masthead__menu ul { margin: 0; padding: 0; clear: both; list-style-type: none; }

.masthead__menu-item { background-color: var(--global-bg-color); display: block; list-style-type: none; white-space: nowrap; }
.masthead__menu-item--lg { padding-right: 2em; font-weight: 700; }

.masthead__menu-item.selected a { color: var(--global-text-color); font-weight: 700; border-bottom: 2px solid var(--global-text-color); pointer-events: none; /* Move this here */ cursor: default; /* Move this here too */ }

.masthead__menu-item.selected a:hover { color: var(--global-text-color); border-bottom: 2px solid var(--global-text-color); /* No need to repeat pointer-events and cursor here */ }

/* ========================================================================== NAVIGATION ========================================================================== */
/* Breadcrumb navigation links ========================================================================== */
.breadcrumbs { max-width: 925px; margin-left: auto; margin-right: auto; clear: both; margin-top: 0; margin-bottom: 0; padding-left: 2em; padding-right: 2em; font-family: -apple-system, ".SFNSText-Regular", "San Francisco", "Roboto", "Segoe UI", "Helvetica Neue", "Lucida Grande", Arial, sans-serif; -webkit-animation: intro 0.3s both; animation: intro 0.3s both; -webkit-animation-delay: 0.30s; animation-delay: 0.30s; }
.breadcrumbs:after { content: " "; display: block; clear: both; }
.breadcrumbs::after { clear: both; content: ""; display: table; }
@media (min-width: 57.8125em) { .breadcrumbs { padding-left: 1em; padding-right: 1em; } }
@media (min-width: 80em) { .breadcrumbs { max-width: 1280px; } }
.breadcrumbs ol { padding: 0; list-style: none; font-size: 0.75em; }
@media (min-width: 57.8125em) { .breadcrumbs ol { width: 83.0508474576%; float: right; margin-right: 0; } }
@media (min-width: 80em) { .breadcrumbs ol { padding-left: 4.2372881356%; } }
.breadcrumbs li { display: inline; }
.breadcrumbs .current { font-weight: bold; }

/* Post pagination navigation links ========================================================================== */
.pagination { clear: both; width: 100%; float: left; margin-left: 0; margin-right: 0; clear: both; margin-top: 1em; padding-top: 1em; /* next/previous buttons */ }
.pagination::after { clear: both; content: ""; display: table; }
.pagination ul { margin: 0; padding: 0; list-style-type: none; font-family: -apple-system, ".SFNSText-Regular", "San Francisco", "Roboto", "Segoe UI", "Helvetica Neue", "Lucida Grande", Arial, sans-serif; }
.pagination li { display: block; float: left; margin-left: -1px; }
.pagination li a { margin-bottom: 0.25em; padding: 0.5em 1em; font-family: -apple-system, ".SFNSText-Regular", "San Francisco", "Roboto", "Segoe UI", "Helvetica Neue", "Lucida Grande", Arial, sans-serif; font-size: 14px; font-weight: bold; line-height: 1.5; text-align: center; text-decoration: none; color: var(--global-text-color-light); border: 1px solid var(--global-border-color); border-radius: 0; }
.pagination li a:hover { color: var(--global-link-color-hover); }
.pagination li a.current { color: #fff; background: var(--global-base-color); }
.pagination li a.disabled { color: var(--global-text-color-light); pointer-events: none; cursor: not-allowed; }
.pagination li:first-child { margin-left: 0; }
.pagination li:first-child a { border-top-left-radius: 4px; border-bottom-left-radius: 4px; }
.pagination li:last-child a { border-top-right-radius: 4px; border-bottom-right-radius: 4px; }
.pagination--pager { display: block; padding: 1em 2em; float: left; width: 50%; font-family: -apple-system, ".SFNSText-Regular", "San Francisco", "Roboto", "Segoe UI", "Helvetica Neue", "Lucida Grande", Arial, sans-serif; font-size: 1em; font-weight: bold; text-align: center; text-decoration: none; color: var(--global-text-color-light); border: 1px solid var(--global-border-color); border-radius: 4px; }
.pagination--pager:hover { color: var(--global-link-color-hover); }
.pagination--pager:first-child { border-top-right-radius: 0; border-bottom-right-radius: 0; }
.pagination--pager:last-child { margin-left: -1px; border-top-left-radius: 0; border-bottom-left-radius: 0; }
.pagination--pager.disabled { color: var(--global-text-color-light); pointer-events: none; cursor: not-allowed; }

.page__content + .pagination, .page__meta + .pagination, .comment__date + .pagination, .page__share + .pagination, .page__comments + .pagination { margin-top: 2em; padding-top: 2em; border-top: 1px solid var(--global-border-color); }

/* Priority plus navigation ========================================================================== */
.greedy-nav { position: relative; min-width: 250px; background: var(--global-bg-color); }
.greedy-nav a { display: block; margin: 0 1rem; padding: 0.5rem 0; color: var(--global-masthead-link-color); text-decoration: none; }
.greedy-nav a:hover { color: var(--global-masthead-link-color-hover); }
.greedy-nav button { position: absolute; height: 2.5rem; right: 0; padding: 0 0.5rem; border: 0; outline: none; background-color: var(--global-bg-color); color: var(--global-text-color); cursor: pointer; z-index: 100; }
.greedy-nav .visible-links { display: table; }
.greedy-nav .visible-links li { display: table-cell; vertical-align: middle; }
.greedy-nav .visible-links li:first-child { font-weight: bold; text-wrap: wrap; }
.greedy-nav .visible-links li:first-child a { margin-left: 0; }
.greedy-nav .visible-links li:last-child a { margin-right: 0; }
.greedy-nav .visible-links #theme-toggle a { width: 25px; display: flex; justify-content: center; cursor: pointer; }
.greedy-nav .visible-links a { position: relative; }
.greedy-nav .visible-links a:before { content: ""; position: absolute; left: 0; bottom: 0; height: 4px; background: var(--global-border-color); width: 100%; -webkit-transition: all 0.2s ease-in-out; transition: all 0.2s ease-in-out; -webkit-transform: scaleX(0); -ms-transform: scaleX(0); transform: scaleX(0); /* hide*/ }
.greedy-nav .visible-links a:hover:before { -webkit-transform: scaleX(1); -ms-transform: scaleX(1); transform: scaleX(1); /* reveal*/ }
.greedy-nav .hidden-links { position: absolute; top: 100%; right: 0; margin-top: 15px; padding: 5px; border: 1px solid var(--global-border-color); border-radius: 4px; background: var(--global-bg-color); box-shadow: 0 0 10px rgba(0, 0, 0, 0.25); }
.greedy-nav .hidden-links a { margin: 0; padding: 10px 20px; font-size: 1em; }
.greedy-nav .hidden-links a:hover { color: var(--global-masthead-link-color-hover); background: var(--global-border-color); }
.greedy-nav .hidden-links:before { content: ""; position: absolute; top: -11px; right: 10px; width: 0; border-style: solid; border-width: 0 10px 10px; border-color: var(--global-border-color) transparent; display: block; z-index: 0; }
.greedy-nav .hidden-links:after { content: ""; position: absolute; top: -10px; right: 10px; width: 0; border-style: solid; border-width: 0 10px 10px; border-color: var(--global-bg-color) transparent; display: block; z-index: 1; }
.greedy-nav .hidden-links li { display: block; border-bottom: 1px solid var(--global-border-color); }
.greedy-nav .hidden-links li:last-child { border-bottom: none; }

/* Navigation list ========================================================================== */
.nav__list { font-size: 1.25rem; }
.nav__list ul { margin-bottom: 1em; }
.nav__list a { display: block; padding: 0.125em 0; color: inherit; }
.nav__list a:hover { text-decoration: underline; }
.nav__list .active { margin-left: -0.5em; padding-left: 0.5em; padding-right: 0.5em; color: #fff; font-weight: bold; background: var(--global-base-color); border-radius: 4px; }
.nav__list .active:hover { color: #fff; }

.nav__title { margin: 0; padding: 0.5rem 1rem; font-family: -apple-system, ".SFNSText-Regular", "San Francisco", "Roboto", "Segoe UI", "Helvetica Neue", "Lucida Grande", Arial, sans-serif; font-size: 1em; font-weight: bold; }

.nav__sub-title { display: block; margin: 0.5rem 0; padding: 0.5rem 0; font-family: -apple-system, ".SFNSText-Regular", "San Francisco", "Roboto", "Segoe UI", "Helvetica Neue", "Lucida Grande", Arial, sans-serif; font-size: 0.75em; font-weight: bold; text-transform: uppercase; border-bottom: 1px solid var(--global-border-color); }

/* Table of contents navigation ========================================================================== */
.toc { font-family: -apple-system, ".SFNSText-Regular", "San Francisco", "Roboto", "Segoe UI", "Helvetica Neue", "Lucida Grande", Arial, sans-serif; color: var(--global-text-color-light); text-transform: uppercase; letter-spacing: 1px; background-color: #fff; border: 1px solid var(--global-border-color); border-radius: 4px; box-shadow: 0 1px 1px rgba(0, 0, 0, 0.125); }
.toc .nav__title { color: #fff; font-size: 0.75em; background: var(--global-base-color); border-top-left-radius: 4px; border-top-right-radius: 4px; }

.toc__menu { margin: 0; padding: 0; width: 100%; list-style: none; font-size: 0.8rem; /* hide sub sub links on small screens*/ }
.toc__menu a { display: block; padding: 0.5rem 1rem; color: var(--global-code-text-color); font-size: 0.6875em; font-weight: bold; line-height: 1.5; border-bottom: 1px solid var(--global-border-color); text-decoration-line: none !important; }
.toc__menu a:hover { color: #000; background: var(--global-link-color-hover); }
.toc__menu > li:last-child a { border-bottom: none; }
.toc__menu li ul > li a { padding-left: 2rem; font-weight: normal; }
.toc__menu li > ul li { display: none; }
@media (min-width: 48em) { .toc__menu li > ul li { display: block; } }

/* ========================================================================== FOOTER ========================================================================== */
.page__footer { clear: both; background-color: var(--global-footer-bg-color); color: var(--global-text-color-light); float: left; margin-left: 0; margin-right: 0; margin-top: 3em; width: 100%; clear: both; /* keep footer in normal document flow so custom widgets do not overlap content */ height: auto; /* keep the footer on the bottom of the page */ position: fixed; bottom: 0; -webkit-animation: intro 0.3s both; animation: intro 0.3s both; -webkit-animation-delay: 0.45s; animation-delay: 0.45s; border-top: 1px solid var(--global-dark-border-color); }
.page__footer::after { clear: both; content: ""; display: table; }
.page__footer footer { clear: both; margin-left: auto; margin-right: auto; margin-top: 1em; max-width: 100%; padding: 0 1em 1em; }
.page__footer footer::after { clear: both; content: ""; display: table; }
@media (min-width: 80em) { .page__footer footer { max-width: 1280px; } }
.page__footer a { color: inherit; text-decoration: none; }
.page__footer a:hover { text-decoration: underline; }
.page__footer .fas, .page__footer .fab, .page__footer .far, .page__footer .fal { color: var(--global-text-color-light); }

@media screen and (max-width: 768px) { /* don't pin the footer on mobile devices */
  .page__footer { position: relative; bottom: auto; } }
.page__footer-copyright { font-family: -apple-system, ".SFNSText-Regular", "San Francisco", "Roboto", "Segoe UI", "Helvetica Neue", "Lucida Grande", Arial, sans-serif; font-size: 0.6875em; }

.page__footer-follow ul { margin: 0; padding: 0; list-style-type: none; }
.page__footer-follow li { display: inline-block; padding-top: 5px; padding-bottom: 5px; font-family: -apple-system, ".SFNSText-Regular", "San Francisco", "Roboto", "Segoe UI", "Helvetica Neue", "Lucida Grande", Arial, sans-serif; font-size: 0.75em; text-transform: uppercase; }
.page__footer-follow li + li:before { content: ""; padding-right: 5px; }
.page__footer-follow a { padding-right: 10px; font-weight: bold; }
.page__footer-follow .social-icons a { white-space: nowrap; }

/* ========================================================================== Syntax highlighting ========================================================================== */
div.highlighter-rouge, figure.highlight { position: relative; margin-bottom: 1em; padding: 1em; border: 1px solid var(--global-border-color); border-radius: 4px; background-color: var(--global-code-background-color); box-shadow: 0 1px 1px rgba(0, 0, 0, 0.125); font-size: 1.25em; }
div.highlighter-rouge:before, figure.highlight:before { position: absolute; top: 0; right: 0; padding: 0.5em; background-color: #f2f3f3; content: "\f121"; font-family: "Font Awesome 6 Free" !important; font-size: 0.75em; line-height: 1; text-transform: none; speak: none; }
div.highlighter-rouge .highlight, figure.highlight .highlight { margin: 0; font-family: Monaco, Consolas, "Lucida Console", monospace; font-size: 0.75em; line-height: 1.8; }

.highlight table td { padding: 5px; }

.highlight table pre { margin: 0; }

/* Solarized Light http://ethanschoonover.com/solarized
 SOLARIZED HEX      ROLE --------- -------- ------------------------------------------ base01    #586e75  body text / default code / primary content base1     #93a1a1  comments / secondary content base3     #fdf6e3  background orange    #cb4b16  constants red       #dc322f  regex, special keywords blue      #22b3eb  reserved keywords cyan      #2aa198  strings, numbers green     #859900  operators, other keywords ========================================================================== */
.highlight .c { color: #93a1a1; }

/* Comment */
.highlight .err { color: #586e75; }

/* Error */
.highlight .g { color: #586e75; }

/* Generic */
.highlight .k { color: #859900; }

/* Keyword */
.highlight .l { color: #586e75; }

/* Literal */
.highlight .n { color: #586e75; }

/* Name */
.highlight .o { color: #859900; }

/* Operator */
.highlight .x { color: #cb4b16; }

/* Other */
.highlight .p { color: #586e75; }

/* Punctuation */
.highlight .cm { color: #93a1a1; }

/* Comment.Multiline */
.highlight .cp { color: #859900; }

/* Comment.Preproc */
.highlight .c1 { color: #93a1a1; }

/* Comment.Single */
.highlight .cs { color: #859900; }

/* Comment.Special */
.highlight .gd { color: #2aa198; }

/* Generic.Deleted */
.highlight .ge { color: #586e75; font-style: italic; }

/* Generic.Emph */
.highlight .gr { color: #dc322f; }

/* Generic.Error */
.highlight .gh { color: #cb4b16; }

/* Generic.Heading */
.highlight .gi { color: #859900; }

/* Generic.Inserted */
.highlight .go { color: #586e75; }

/* Generic.Output */
.highlight .gp { color: #586e75; }

/* Generic.Prompt */
.highlight .gs { color: #586e75; font-weight: bold; }

/* Generic.Strong */
.highlight .gu { color: #cb4b16; }

/* Generic.Subheading */
.highlight .gt { color: #586e75; }

/* Generic.Traceback */
.highlight .kc { color: #cb4b16; }

/* Keyword.Constant */
.highlight .kd { color: #22b3eb; }

/* Keyword.Declaration */
.highlight .kn { color: #859900; }

/* Keyword.Namespace */
.highlight .kp { color: #859900; }

/* Keyword.Pseudo */
.highlight .kr { color: #22b3eb; }

/* Keyword.Reserved */
.highlight .kt { color: #dc322f; }

/* Keyword.Type */
.highlight .ld { color: #586e75; }

/* Literal.Date */
.highlight .m { color: #2aa198; }

/* Literal.Number */
.highlight .s { color: #2aa198; }

/* Literal.String */
.highlight .na { color: #586e75; }

/* Name.Attribute */
.highlight .nb { color: #B58900; }

/* Name.Builtin */
.highlight .nc { color: #22b3eb; }

/* Name.Class */
.highlight .no { color: #cb4b16; }

/* Name.Constant */
.highlight .nd { color: #22b3eb; }

/* Name.Decorator */
.highlight .ni { color: #cb4b16; }

/* Name.Entity */
.highlight .ne { color: #cb4b16; }

/* Name.Exception */
.highlight .nf { color: #22b3eb; }

/* Name.Function */
.highlight .nl { color: #586e75; }

/* Name.Label */
.highlight .nn { color: #586e75; }

/* Name.Namespace */
.highlight .nx { color: #586e75; }

/* Name.Other */
.highlight .py { color: #586e75; }

/* Name.Property */
.highlight .nt { color: #22b3eb; }

/* Name.Tag */
.highlight .nv { color: #22b3eb; }

/* Name.Variable */
.highlight .ow { color: #859900; }

/* Operator.Word */
.highlight .w { color: #586e75; }

/* Text.Whitespace */
.highlight .mf { color: #2aa198; }

/* Literal.Number.Float */
.highlight .mh { color: #2aa198; }

/* Literal.Number.Hex */
.highlight .mi { color: #2aa198; }

/* Literal.Number.Integer */
.highlight .mo { color: #2aa198; }

/* Literal.Number.Oct */
.highlight .sb { color: #93a1a1; }

/* Literal.String.Backtick */
.highlight .sc { color: #2aa198; }

/* Literal.String.Char */
.highlight .sd { color: #586e75; }

/* Literal.String.Doc */
.highlight .s2 { color: #2aa198; }

/* Literal.String.Double */
.highlight .se { color: #cb4b16; }

/* Literal.String.Escape */
.highlight .sh { color: #586e75; }

/* Literal.String.Heredoc */
.highlight .si { color: #2aa198; }

/* Literal.String.Interpol */
.highlight .sx { color: #2aa198; }

/* Literal.String.Other */
.highlight .sr { color: #dc322f; }

/* Literal.String.Regex */
.highlight .s1 { color: #2aa198; }

/* Literal.String.Single */
.highlight .ss { color: #2aa198; }

/* Literal.String.Symbol */
.highlight .bp { color: #22b3eb; }

/* Name.Builtin.Pseudo */
.highlight .vc { color: #22b3eb; }

/* Name.Variable.Class */
.highlight .vg { color: #22b3eb; }

/* Name.Variable.Global */
.highlight .vi { color: #22b3eb; }

/* Name.Variable.Instance */
.highlight .il { color: #2aa198; }

/* Literal.Number.Integer.Long */
/* ========================================================================== Forms ========================================================================== */
form { margin: 0 0 5px 0; }
form fieldset { margin-bottom: 5px; padding: 0; border-width: 0; }
form legend { display: block; width: 100%; margin-bottom: 10px; *margin-left: -7px; padding: 0; color: var(--global-text-color); border: 0; border-bottom: 1px solid #cccccc; white-space: normal; }
form p { margin-bottom: 5px / 2; }
form ul { list-style-type: none; margin: 0 0 5px 0; padding: 0; }
form br { display: none; }

label, input, button, select, textarea { vertical-align: baseline; *vertical-align: middle; }

input, button, select, textarea { box-sizing: border-box; font-family: -apple-system, ".SFNSText-Regular", "San Francisco", "Roboto", "Segoe UI", "Helvetica Neue", "Lucida Grande", Arial, sans-serif; }

label { display: block; margin-bottom: 0.25em; color: var(--global-text-color); cursor: pointer; }
label small { font-size: 0.75em; }
label input, label textarea, label select { display: block; }

input, textarea, select { display: inline-block; width: 100%; padding: 0.25em; margin-bottom: 0.5em; color: var(--global-text-color); background-color: #fff; border: 1px solid #cccccc; border-radius: 4px; box-shadow: 0 1px 1px rgba(0, 0, 0, 0.125); }
input:hover, textarea:hover, select:hover { border-color: var(--global-base-color); }

.input-mini { width: 60px; }

.input-small { width: 90px; }

input[type="image"], input[type="checkbox"], input[type="radio"] { width: auto; height: auto; padding: 0; margin: 3px 0; *margin-top: 0; line-height: normal; cursor: pointer; border-radius: 0; border: 0 \9; }

input[type="checkbox"], input[type="radio"] { box-sizing: border-box; padding: 0; *width: 13px; *height: 13px; }

input[type="image"] { border: 0; box-shadow: none; }

input[type="file"] { width: auto; padding: initial; line-height: initial; border: initial; background-color: transparent; background-color: initial; box-shadow: none; }

input[type="button"], input[type="reset"], input[type="submit"] { width: auto; height: auto; cursor: pointer; *overflow: visible; }

select, input[type="file"] { *margin-top: 4px; }

select { width: auto; background-color: #fff; }

select[multiple], select[size] { height: auto; }

textarea { resize: vertical; height: auto; overflow: auto; vertical-align: top; }

input[type="hidden"] { display: none; }

.form { position: relative; }

.radio, .checkbox { padding-left: 18px; font-weight: normal; }

.radio input[type="radio"], .checkbox input[type="checkbox"] { float: left; margin-left: -18px; }

.radio.inline, .checkbox.inline { display: inline-block; padding-top: 5px; margin-bottom: 0; vertical-align: middle; }

.radio.inline + .radio.inline, .checkbox.inline + .checkbox.inline { margin-left: 10px; }

/* Disabled state ========================================================================== */
input[disabled], select[disabled], textarea[disabled], input[readonly], select[readonly], textarea[readonly] { opacity: 0.5; cursor: not-allowed; }

/* Focus & active state ========================================================================== */
input:focus, textarea:focus { border-color: var(--global-border-color); outline: 0; outline: thin dotted \9; }

input[type="file"]:focus, input[type="radio"]:focus, input[type="checkbox"]:focus, select:focus { box-shadow: none; }

/* Help text ========================================================================== */
.help-block, .help-inline { color: #2f7f93; }

.help-block { display: block; margin-bottom: 1em; line-height: 1em; }

.help-inline { display: inline-block; vertical-align: middle; padding-left: 5px; }

/* .form-inline ========================================================================== */
.form-inline input, .form-inline textarea, .form-inline select { display: inline-block; margin-bottom: 0; }

.form-inline label { display: inline-block; }

.form-inline .radio, .form-inline .checkbox, .form-inline .radio { padding-left: 0; margin-bottom: 0; vertical-align: middle; }

.form-inline .radio input[type="radio"], .form-inline .checkbox input[type="checkbox"] { float: left; margin-left: 0; margin-right: 3px; }

/* .form-search ========================================================================== */
.form-search input, .form-search textarea, .form-search select { display: inline-block; margin-bottom: 0; }

.form-search .search-query { padding-left: 14px; padding-right: 14px; margin-bottom: 0; border-radius: 14px; }

.form-search label { display: inline-block; }

.form-search .radio, .form-search .checkbox, .form-inline .radio { padding-left: 0; margin-bottom: 0; vertical-align: middle; }

.form-search .radio input[type="radio"], .form-search .checkbox input[type="checkbox"] { float: left; margin-left: 0; margin-right: 3px; }

/* .form--loading ========================================================================== */
.form--loading:before { content: ''; }

.form--loading .form__spinner { display: block; }

.form:before { position: absolute; top: 0; left: 0; width: 100%; height: 100%; background-color: rgba(255, 255, 255, 0.7); z-index: 10; }

.form__spinner { display: none; position: absolute; top: 50%; left: 50%; z-index: 11; }

/* Google search form ========================================================================== */
#goog-fixurl ul { list-style: none; margin-left: 0; padding-left: 0; }
#goog-fixurl ul li { list-style-type: none; }

#goog-wm-qt { width: auto; margin-right: 10px; margin-bottom: 20px; padding: 8px 20px; display: inline-block; font-size: 0.75em; background-color: #fff; color: #000; border-width: 2px !important; border-style: solid !important; border-color: gray; border-radius: 4px; }

/* ========================================================================== SINGLE PAGE/POST ========================================================================== */
#main { max-width: 925px; margin-left: auto; margin-right: auto; clear: both; margin-top: 2em; padding-left: 1em; padding-right: 1em; animation: intro 0.3s both; animation-delay: 0.35s; }
#main:after { content: " "; display: block; clear: both; }
#main::after { clear: both; content: ""; display: table; }
@media (min-width: 80em) { #main { max-width: 1280px; } }

@media (min-width: 57.8125em) { .page { width: 83.0508474576%; float: right; margin-right: 0; padding-left: 4.2372881356%; padding-right: 16.9491525424%; } }
.page .page__inner-wrap { clear: both; width: 100%; float: left; margin-left: 0; margin-right: 0; }
.page .page__inner-wrap .page__content, .page .page__inner-wrap .page__meta, .page .page__inner-wrap .comment__date, .page .page__inner-wrap .page__share { clear: both; width: 100%; float: left; margin-left: 0; margin-right: 0; }

.page__title { margin-top: 0; line-height: 1; }
.page__title + .page__meta, .page__title + .comment__date { margin-top: -0.5em; }

.page__lead { font-family: -apple-system, ".SFNSText-Regular", "San Francisco", "Roboto", "Segoe UI", "Helvetica Neue", "Lucida Grande", Arial, sans-serif; font-size: 1.25em; }

.page__content { /* paragraph indents */ /* blockquote citations */ }
.page__content h2 { padding-bottom: 0.5em; border-bottom: 1px solid var(--global-border-color); }
.page__content p, .page__content li, .page__content dl { font-size: 1em; }
.page__content p { margin: 0 0 1.3em; /* sibling indentation*/ }
.page__content a { text-decoration: underline; }
.page__content a:hover { text-decoration: underline; }
.page__content a:hover img { box-shadow: 0 0 10px rgba(0, 0, 0, 0.25); }
.page__content dt { margin-top: 1em; font-family: -apple-system, ".SFNSText-Regular", "San Francisco", "Roboto", "Segoe UI", "Helvetica Neue", "Lucida Grande", Arial, sans-serif; font-weight: bold; }
.page__content dd { margin-left: 1em; font-family: -apple-system, ".SFNSText-Regular", "San Francisco", "Roboto", "Segoe UI", "Helvetica Neue", "Lucida Grande", Arial, sans-serif; font-size: 0.75em; }
.page__content .small { font-size: 0.75em; }
.page__content blockquote + .small { margin-top: -1.5em; padding-left: 1.25rem; }

.page__hero { position: relative; margin-bottom: 2em; clear: both; animation: intro 0.3s both; animation-delay: 0.25s; }
.page__hero::after { clear: both; content: ""; display: table; }
.page__hero--overlay { position: relative; margin-bottom: 2em; padding: 3em 0; clear: both; background-size: cover; background-repeat: no-repeat; background-position: center; animation: intro 0.3s both; animation-delay: 0.25s; }
.page__hero--overlay::after { clear: both; content: ""; display: table; }
.page__hero--overlay a { color: #fff; }
.page__hero--overlay .wrapper { padding-left: 1em; padding-right: 1em; }
@media (min-width: 80em) { .page__hero--overlay .wrapper { max-width: 1280px; } }
.page__hero--overlay .page__title, .page__hero--overlay .page__meta, .page__hero--overlay .comment__date, .page__hero--overlay .page__lead, .page__hero--overlay .btn, .page__hero--overlay #goog-wm-sb { color: #fff; text-shadow: 1px 1px 4px rgba(0, 0, 0, 0.5); }
.page__hero--overlay .page__lead { max-width: 768px; }
.page__hero--overlay .page__title { font-size: 1.953em; }
@media (min-width: 37.5em) { .page__hero--overlay .page__title { font-size: 2.441em; } }

.page__hero-image { width: 100%; height: auto; -ms-interpolation-mode: bicubic; }

.page__hero-caption { position: absolute; bottom: 0; right: 0; margin: 0 auto; padding: 2px 5px; color: #fff; font-family: Georgia, Times, serif; font-size: 0.6875em; background: #000; text-align: right; z-index: 5; opacity: 0.5; border-radius: 4px 0 4px 0; }
@media (min-width: 57.8125em) { .page__hero-caption { padding: 5px 10px; } }
.page__hero-caption a { color: #fff; text-decoration: none; }

/* Social sharing ========================================================================== */
.page__share { margin-top: 2em; padding-top: 1em; border-top: 1px solid var(--global-border-color); }
@media (max-width: 37.5em) { .page__share .btn span, .page__share #goog-wm-sb span { border: 0; clip: rect(0 0 0 0); height: 1px; margin: -1px; overflow: hidden; padding: 0; position: absolute; width: 1px; } }

.page__share-title { margin-bottom: 10px; font-size: 0.75em; text-transform: uppercase; }

/* Page meta ========================================================================== */
.page__meta, .comment__date { margin-top: 2em; color: var(--global-text-color-light); font-family: -apple-system, ".SFNSText-Regular", "San Francisco", "Roboto", "Segoe UI", "Helvetica Neue", "Lucida Grande", Arial, sans-serif; font-size: 0.75em; }
.page__meta p, .comment__date p { margin: 0; }
.page__meta a, .comment__date a { color: inherit; }

.page__meta-title { margin-bottom: 10px; font-size: 0.75em; text-transform: uppercase; }

/* Page taxonomy ========================================================================== */
.page__taxonomy .sep { display: none; }
.page__taxonomy strong { margin-right: 10px; }

.page__taxonomy-item { display: inline-block; margin-right: 5px; margin-bottom: 8px; padding: 5px 10px; text-decoration: none; border: 1px solid var(--global-border-color); border-radius: 4px; }
.page__taxonomy-item:hover { text-decoration: none; color: var(--global-link-color-hover); }

/* Comments ========================================================================== */
.page__comments { clear: both; width: 100%; float: left; margin-left: 0; margin-right: 0; }

.page__comments-title { margin-top: 2rem; margin-bottom: 10px; padding-top: 2rem; font-size: 0.75em; border-top: 1px solid var(--global-border-color); text-transform: uppercase; }

.page__comments-form { padding: 1em; background: var(--global-border-color); transition: all 0.2s ease-in-out; }
.page__comments-form.disabled input, .page__comments-form.disabled button, .page__comments-form.disabled textarea, .page__comments-form.disabled label { pointer-events: none; cursor: not-allowed; filter: alpha(opacity=65); box-shadow: none; opacity: 0.65; }

.comment { clear: both; margin: 1em 0; }
.comment::after { clear: both; content: ""; display: table; }
.comment:not(:last-child) { border-bottom: 1px solid var(--global-border-color); }

.comment__avatar-wrapper { float: left; width: 60px; height: 60px; }
@media (min-width: 57.8125em) { .comment__avatar-wrapper { width: 100px; height: 100px; } }

.comment__avatar { width: 40px; height: 40px; border-radius: 50%; }
@media (min-width: 57.8125em) { .comment__avatar { width: 80px; height: 80px; padding: 5px; border: 1px solid var(--global-border-color); } }

.comment__content-wrapper { float: right; width: calc(100% - 60px); }
@media (min-width: 57.8125em) { .comment__content-wrapper { width: calc(100% - 100px); } }

.comment__author { margin: 0; }
.comment__author a { text-decoration: none; }

.comment__date { margin: 0; }
.comment__date a { text-decoration: none; }

/* Related ========================================================================== */
.page__related { margin-top: 2em; padding-top: 1em; border-top: 1px solid var(--global-border-color); clear: both; float: left; }
.page__related::after { clear: both; content: ""; display: table; }
@media (min-width: 57.8125em) { .page__related { margin-left: 21.186440678%; } }
.page__related a { color: inherit; text-decoration: none; }

.page__related-title { margin-bottom: 10px; font-size: 0.75em; text-transform: uppercase; }

/* ========================================================================== ARCHIVE ========================================================================== */
.archive { margin-bottom: 2em; }
@media (min-width: 48em) { .archive { width: 100%; float: left; margin-left: 0; margin-right: 0; } }
@media (min-width: 57.8125em) { .archive { width: 83.0508474576%; float: right; margin-right: 0; padding-left: 4.2372881356%; } }
.archive a { text-decoration: underline; }
.archive a:hover { text-decoration: underline; }
.archive a:hover img { box-shadow: 0 0 10px rgba(0, 0, 0, 0.25); }

.archive__subtitle { margin: 1.414em 0 0; padding-bottom: 0.5em; font-size: 1em; color: var(--global-text-color-light); border-bottom: 1px solid var(--global-border-color); }
.archive__subtitle + .list__item .archive__item-title { margin-top: 0.5em; }

.archive__item-title { margin-bottom: 0.25em; font-family: -apple-system, ".SFNSText-Regular", "San Francisco", "Roboto", "Segoe UI", "Helvetica Neue", "Lucida Grande", Arial, sans-serif; }
.archive__item-title a + a { opacity: 0.5; }

/* remove border*/
.page__content .archive__item-title { margin-top: 1em; border-bottom: none; }

.archive__item-excerpt { margin-top: 0; font-size: 0.75em; }
.archive__item-excerpt + p { text-indent: 0; }

.archive__item-teaser { border-radius: 4px; overflow: hidden; }
.archive__item-teaser img { width: 100%; }

.archive__item:hover .archive__item-teaser { box-shadow: 0 0 10px rgba(0, 0, 0, 0.25); }
.archive__item:hover .archive__item-title { text-decoration: underline; }

/* List view ========================================================================== */
@media (min-width: 48em) { .list__item { padding-right: auto; } }
@media (min-width: 57.8125em) { .list__item { padding-right: auto; } }
@media (min-width: 80em) { .list__item { padding-right: auto; } }
.list__item .page__meta, .list__item .comment__date { margin: 0 0 4px; }

/* Grid view ========================================================================== */
.grid__item { margin-bottom: 2em; }
.grid__item .page__meta, .grid__item .comment__date { margin: 0 0 4px; }
.grid__item .archive__item-title { margin-top: 0.5em; font-size: 1em; }
.grid__item .archive__item-excerpt { display: none; }
@media (min-width: 37.5em) { .grid__item { width: 48.9795918367%; float: left; }
  .grid__item:nth-child(2n + 1) { margin-left: 0; margin-right: -100%; clear: both; margin-left: 0; }
  .grid__item:nth-child(2n + 2) { margin-left: 51.0204081633%; margin-right: -100%; clear: none; }
  .grid__item .archive__item-teaser { max-height: 200px; } }
@media (min-width: 48em) { .grid__item { margin-left: 0; /* reset before mixin does its thing*/ margin-right: 0; /* reset before mixin does its thing*/ width: 23.4693877551%; float: left; }
  .grid__item:nth-child(4n + 1) { margin-left: 0; margin-right: -100%; clear: both; margin-left: 0; }
  .grid__item:nth-child(4n + 2) { margin-left: 25.5102040816%; margin-right: -100%; clear: none; }
  .grid__item:nth-child(4n + 3) { margin-left: 51.0204081633%; margin-right: -100%; clear: none; }
  .grid__item:nth-child(4n + 4) { margin-left: 76.5306122449%; margin-right: -100%; clear: none; }
  .grid__item .archive__item-teaser { max-height: 120px; }
  .grid__item .archive__item-excerpt { display: block; font-size: 0.75em; } }

/* Features ========================================================================== */
.feature__wrapper { clear: both; margin-bottom: 2em; border-bottom: 1px solid var(--global-border-color); }
.feature__wrapper::after { clear: both; content: ""; display: table; }

.feature__item { margin-bottom: 2em; font-size: 1.25rem; }
@media (min-width: 37.5em) { .feature__item { margin-bottom: 0; width: 32.2033898305%; float: left; }
  .feature__item:nth-child(3n + 1) { margin-left: 0; margin-right: -100%; clear: both; margin-left: 0; }
  .feature__item:nth-child(3n + 2) { margin-left: 33.8983050847%; margin-right: -100%; clear: none; }
  .feature__item:nth-child(3n + 3) { margin-left: 67.7966101695%; margin-right: -100%; clear: none; }
  .feature__item .feature__item-teaser { max-height: 200px; overflow: hidden; } }
.feature__item--left { clear: both; width: 100%; float: left; margin-left: 0; margin-right: 0; font-size: 1.25rem; }
.feature__item--left .archive__item-teaser { margin-bottom: 2em; }
@media (min-width: 37.5em) { .feature__item--left .archive__item-teaser { width: 40.6779661017%; float: left; margin-right: 1.6949152542%; }
  .feature__item--left .archive__item-body { width: 57.6271186441%; float: right; margin-right: 0; padding-left: 4.2372881356%; padding-right: 8.4745762712%; } }
.feature__item--right { clear: both; width: 100%; float: left; margin-left: 0; margin-right: 0; font-size: 1.25rem; }
.feature__item--right .archive__item-teaser { margin-bottom: 2em; }
@media (min-width: 37.5em) { .feature__item--right { text-align: right; }
  .feature__item--right .archive__item-teaser { width: 40.6779661017%; float: right; margin-left: 1.6949152542%; }
  .feature__item--right .archive__item-body { width: 57.6271186441%; float: left; margin-left: 0; padding-left: 4.2372881356%; padding-right: 8.4745762712%; } }
.feature__item--center { clear: both; width: 100%; float: left; margin-left: 0; margin-right: 0; font-size: 1.25rem; }
.feature__item--center .archive__item-teaser { margin-bottom: 2em; }
@media (min-width: 37.5em) { .feature__item--center { text-align: center; }
  .feature__item--center .archive__item-teaser { margin: 0 auto; width: 40.6779661017%; }
  .feature__item--center .archive__item-body { margin: 0 auto; width: 57.6271186441%; } }

/* ========================================================================== SIDEBAR ========================================================================== */
/* Default ========================================================================== */
.sidebar { -webkit-transform: translate3d(0, 0, 0); transform: translate3d(0, 0, 0); clear: both; margin-bottom: 1em; }
.sidebar::after { clear: both; content: ""; display: table; }
@media (orientation: portrait) { .sidebar { margin-top: 1em; } }
@media screen and (min-width: 1024px) { .sidebar { height: 100vh; overflow-y: auto; position: fixed; padding-top: 70px; } }
@media (min-width: 57.8125em) { .sidebar { width: 15.2542372881%; float: left; margin-right: 1.6949152542%; opacity: 1; -webkit-transition: opacity 0.2s ease-in-out; transition: opacity 0.2s ease-in-out; }
  .sidebar:hover { opacity: 1; } }
@media (min-width: 80em) { .sidebar { max-width: 250px; padding-right: 0; } }
.sidebar h2, .sidebar h3, .sidebar h4, .sidebar h5, .sidebar h6 { margin-bottom: 0; font-family: -apple-system, ".SFNSText-Regular", "San Francisco", "Roboto", "Segoe UI", "Helvetica Neue", "Lucida Grande", Arial, sans-serif; }
.sidebar h3, .sidebar h4 { font-size: 1em; }
.sidebar p, .sidebar li { font-family: -apple-system, ".SFNSText-Regular", "San Francisco", "Roboto", "Segoe UI", "Helvetica Neue", "Lucida Grande", Arial, sans-serif; font-size: 0.75em; line-height: 1.5; }
.sidebar img { width: 100%; }

.sidebar__right { margin-bottom: 1em; }
@media (min-width: 57.8125em) { .sidebar__right { position: relative; float: right; width: auto; margin-left: 2.5423728814%; z-index: 10; } }
@media (min-width: 80em) { .sidebar__right { width: auto; } }

/* Table of contents ========================================================================== */
.toc { background-color: var(--global-bg-color); border: 1px solid var(--global-border-color); border-radius: 4px; box-shadow: 0 1px 1px rgba(0, 0, 0, 0.125); padding: 1em; }
.toc .nav__title { color: var(--global-text-color); font-size: 0.75em; background: transparent; border: 0; padding: 0; }
.toc .toc__menu { margin: 0; padding: 0; width: 100%; list-style: none; font-size: 0.75em; }
.toc .toc__menu a { display: block; padding: 0.25rem 0; color: var(--global-text-color); font-size: 0.6875em; font-weight: normal; line-height: 1.5; border-bottom: 0; }
.toc .toc__menu a:hover { text-decoration: underline; }
.toc .toc__menu > li > a { font-weight: bold; }
.toc .toc__menu li ul > li a { padding-left: 1rem; font-weight: normal; }
.toc .toc__menu li ul li ul > li a { padding-left: 2rem; }
.toc .toc__menu li ul li ul li ul > li a { padding-left: 3rem; }

/* Author profile and links ========================================================================== */
.author__avatar { display: table-cell; vertical-align: top; width: 36px; }
@media (min-width: 57.8125em) { .author__avatar { display: block; width: auto; height: auto; } }
.author__avatar img { max-width: 175px; border-radius: 50%; }
@media (min-width: 57.8125em) { .author__avatar img { padding: 5px; border: 1px solid var(--global-border-color); } }

.author__content { display: table-cell; vertical-align: top; padding-left: 15px; padding-right: 25px; line-height: 1; }
@media (min-width: 57.8125em) { .author__content { display: block; width: 100%; padding-left: 0; padding-right: 0; } }

.author__name { margin: 0; }
@media (min-width: 57.8125em) { .author__name { margin-top: 10px; margin-bottom: 10px; } }

.sidebar .author__name { font-family: -apple-system, ".SFNSText-Regular", "San Francisco", "Roboto", "Segoe UI", "Helvetica Neue", "Lucida Grande", Arial, sans-serif; font-size: 1em; }

.sidebar .author__desktop { display: none; }
@media screen and (min-width: 1024px) { .sidebar .author__desktop { display: block; } }

.author__pronouns { margin: 0; }
@media (min-width: 57.8125em) { .author__pronouns { margin-top: 10px; margin-bottom: 10px; } }

.author__bio { margin: 0; }
@media (min-width: 57.8125em) { .author__bio { margin-top: 10px; margin-bottom: 20px; } }

.author__urls-wrapper { position: relative; display: table-cell; vertical-align: middle; font-family: -apple-system, ".SFNSText-Regular", "San Francisco", "Roboto", "Segoe UI", "Helvetica Neue", "Lucida Grande", Arial, sans-serif; z-index: 10; position: relative; cursor: pointer; }
.author__urls-wrapper li:last-child a { margin-bottom: 0; }
@media (min-width: 57.8125em) { .author__urls-wrapper { display: block; } }
.author__urls-wrapper button { margin-bottom: 0; }
@media (min-width: 57.8125em) { .author__urls-wrapper button { display: none; } }

.author__urls { display: none; position: absolute; right: 0; margin-top: 15px; padding: 10px; list-style-type: none; border: 1px solid var(--global-border-color); border-radius: 4px; background: var(--global-bg-color); z-index: -1; box-shadow: 0 0 10px rgba(0, 0, 0, 0.25); cursor: default; }
@media (min-width: 57.8125em) { .author__urls { display: block; position: relative; margin: 0; padding: 0; border: 0; background: transparent; box-shadow: none; } }
.author__urls:before { display: block; content: ""; position: absolute; top: -11px; left: calc(50% - 10px); width: 0; border-style: solid; border-width: 0 10px 10px; border-color: var(--global-border-color) transparent; z-index: 0; }
@media (min-width: 57.8125em) { .author__urls:before { display: none; } }
.author__urls:after { display: block; content: ""; position: absolute; top: -10px; left: calc(50% - 10px); width: 0; border-style: solid; border-width: 0 10px 10px; border-color: #fff transparent; z-index: 1; }
@media (min-width: 57.8125em) { .author__urls:after { display: none; } }
.author__urls li { white-space: nowrap; }
.author__urls a { display: block; margin-bottom: 5px; padding-right: 5px; padding-top: 2px; padding-bottom: 2px; color: inherit; font-size: 1em; text-decoration: none; }
.author__urls a:hover { text-decoration: underline; }

/* ========================================================================== JSON CV ========================================================================== */
/* CV Template Styles */
.cv-container { max-width: 1000px; margin: 0 auto; font-family: 'Roboto', 'Helvetica Neue', Helvetica, Arial, sans-serif; color: var(--global-text-color); line-height: 1.6; }

/* Header Styles */
.cv-header { margin-bottom: 2rem; border-bottom: 2px solid var(--global-thead-color); padding-bottom: 1rem; }

.cv-header h1 { margin-bottom: 0.5rem; color: var(--global-text-color); }

.cv-contact-info { display: flex; flex-wrap: wrap; gap: 1rem; margin-bottom: 0.5rem; }

.cv-contact-item { display: flex; align-items: center; gap: 0.5rem; }

.cv-profiles { display: flex; gap: 1rem; margin-top: 0.5rem; }

.cv-profile-item { display: flex; align-items: center; gap: 0.5rem; }

.cv-profile-item a { color: var(--global-link-color); text-decoration: none; }

.cv-profile-item a:hover { text-decoration: underline; }

/* Section Styles */
.cv-section { margin-bottom: 2rem; }

.cv-section h2 { border-bottom: 1px solid var(--global-border-color); padding-bottom: 0.5rem; margin-bottom: 1rem; display: flex; align-items: center; gap: 0.5rem; color: var(--global-text-color); }

.cv-section h2 i { color: var(--global-text-color); }

/* Item Styles */
.cv-item { margin-bottom: 1.5rem; }

.cv-list { list-style-type: none; }

.cv-item-header { display: flex; justify-content: space-between; margin-bottom: 0.5rem; }

.cv-item-title { font-weight: bold; font-size: 1.1rem; }

.cv-item-date { color: var(--global-text-color); }

.cv-item-subtitle { color: var(--global-text-color); margin-bottom: 0.5rem; }

.cv-item-summary { margin-bottom: 0.5rem; }

.cv-item-highlights { margin-top: 0.5rem; padding-left: 1.5rem; }

.cv-item-highlights li { margin-bottom: 0.25rem; }

.cv-item-courses li { margin-bottom: 0.25rem; }

/* Skills Styles */
.cv-skills { display: grid; grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); gap: 1.5rem; }

.cv-skill-category h3 { margin-bottom: 0.5rem; color: var(--global-text-color); }

.cv-skill-keywords { display: flex; flex-wrap: wrap; gap: 0.5rem; }

.cv-skill-keyword { background-color: var(--global-bg-color); padding: 0.25rem 0.5rem; border-radius: 4px; font-size: 0.9rem; }

/* Project Styles */
.cv-project-keywords { display: flex; flex-wrap: wrap; gap: 0.5rem; margin-top: 0.5rem; }

.cv-project-keyword { background-color: var(--global-bg-color); color: var(--global-thead-color); padding: 0.25rem 0.5rem; border-radius: 4px; font-size: 0.9rem; }

/* Languages Styles */
.cv-languages { display: flex; flex-wrap: wrap; gap: 1rem; }

.cv-language { display: flex; flex-direction: column; }

.cv-language-name { font-weight: bold; }

.cv-language-fluency { color: var(--global-text-color); font-size: 0.9rem; }

/* Interests Styles */
.cv-interests { display: grid; grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); gap: 1.5rem; }

.cv-interest h3 { margin-bottom: 0.5rem; color: var(--global-text-color); }

.cv-interest-keywords { display: flex; flex-wrap: wrap; gap: 0.5rem; }

.cv-interest-keyword { background-color: var(--global-bg-color); padding: 0.25rem 0.5rem; border-radius: 4px; font-size: 0.9rem; }

/* References Styles */
.cv-references { font-style: italic; color: var(--global-text-color); }

/* Print Styles */
@media print { .cv-container { max-width: 100%; }
  .cv-header { border-bottom-color: var(--global-border-color); }
  .cv-section h2 { border-bottom-color: var(--global-border-color); }
  .cv-skill-keyword, .cv-project-keyword, .cv-interest-keyword { border: 1px solid var(--global-border-color); background-color: transparent; } }
/* ========================================================================== FenLynn Academic — Apple × Google inspired visual layer ========================================================================== */
:root { --academic-bg: #f7f8fb; --academic-surface: rgba(255, 255, 255, 0.82); --academic-surface-solid: #ffffff; --academic-surface-soft: #f3f6fb; --academic-text: #202124; --academic-text-2: #5f6368; --academic-border: rgba(60, 64, 67, 0.12); --academic-blue: #4285f4; --academic-blue-2: #0a84ff; --academic-green: #34a853; --academic-yellow: #fbbc05; --academic-pink: #ff6b9a; --academic-purple: #8b5cf6; --academic-shadow: 0 18px 50px rgba(32, 33, 36, 0.08); --academic-shadow-soft: 0 8px 28px rgba(32, 33, 36, 0.06); --academic-radius-xl: 28px; --academic-radius-lg: 22px; --academic-radius-md: 16px; --academic-radius-sm: 12px; --global-bg-color: var(--academic-bg); --global-text-color: var(--academic-text); --global-text-color-light: var(--academic-text-2); --global-border-color: var(--academic-border); --global-link-color: var(--academic-blue); --global-link-color-hover: var(--academic-blue-2); --global-masthead-link-color: var(--academic-text); --global-masthead-link-color-hover: var(--academic-blue); }

html[data-theme="dark"] { --academic-bg: #101114; --academic-surface: rgba(28, 29, 32, 0.82); --academic-surface-solid: #1c1d20; --academic-surface-soft: #222429; --academic-text: #f4f7fb; --academic-text-2: #aeb4bf; --academic-border: rgba(255, 255, 255, 0.10); --academic-blue: #7db2ff; --academic-blue-2: #9bc3ff; --academic-green: #65c47b; --academic-yellow: #ffd666; --academic-pink: #ff8ab1; --academic-purple: #b49cff; --academic-shadow: 0 20px 60px rgba(0, 0, 0, 0.32); --academic-shadow-soft: 0 8px 30px rgba(0, 0, 0, 0.24); --global-bg-color: var(--academic-bg); --global-text-color: var(--academic-text); --global-text-color-light: var(--academic-text-2); --global-border-color: var(--academic-border); --global-link-color: var(--academic-blue); --global-link-color-hover: var(--academic-blue-2); --global-masthead-link-color: var(--academic-text); --global-masthead-link-color-hover: var(--academic-blue); }

html { background: var(--academic-bg); }

body { color: var(--academic-text); background: radial-gradient(circle at 10% -10%, rgba(66, 133, 244, 0.12), transparent 34rem), radial-gradient(circle at 88% 8%, rgba(255, 107, 154, 0.09), transparent 30rem), var(--academic-bg); font-family: -apple-system, BlinkMacSystemFont, "SF Pro Text", "Inter", "Segoe UI", Roboto, Helvetica, Arial, sans-serif; letter-spacing: -0.012em; }

h1, h2, h3, h4, h5, h6, .page__title, .archive__item-title { font-family: -apple-system, BlinkMacSystemFont, "SF Pro Display", "Inter", "Segoe UI", Roboto, Helvetica, Arial, sans-serif; color: var(--academic-text); letter-spacing: -0.035em; }

a { transition: color 160ms ease, opacity 160ms ease, transform 160ms ease, background 160ms ease; }

::selection { background: rgba(66, 133, 244, 0.22); }

/* Masthead ---------------------------------------------------------------- */
.masthead { background: rgba(247, 248, 251, 0.78); border-bottom: 1px solid var(--academic-border); backdrop-filter: saturate(180%) blur(18px); -webkit-backdrop-filter: saturate(180%) blur(18px); box-shadow: 0 1px 0 rgba(255, 255, 255, 0.45); }

html[data-theme="dark"] .masthead { background: rgba(16, 17, 20, 0.76); box-shadow: 0 1px 0 rgba(255, 255, 255, 0.03); }

.masthead::after { display: none; }

.masthead__inner-wrap { padding-top: 0.55rem; padding-bottom: 0.55rem; }

.greedy-nav { background: transparent; }

.greedy-nav a { margin: 0 0.14rem; padding: 0.62rem 0.82rem; border-radius: 999px; font-weight: 520; letter-spacing: -0.01em; }

.greedy-nav .visible-links a::before { display: none; }

.greedy-nav .visible-links li:first-child a { padding-left: 0.15rem; padding-right: 1.1rem; font-weight: 720; }

.masthead__menu-item.selected a { color: var(--academic-blue); background: rgba(66, 133, 244, 0.1); border: 0; pointer-events: auto; }

.masthead__menu-item.selected a:hover { color: var(--academic-blue); border: 0; }

.greedy-nav a:hover { color: var(--academic-blue); background: rgba(66, 133, 244, 0.075); }

#theme-toggle a { width: 38px !important; height: 38px; padding: 0 !important; margin-left: 0.35rem; align-items: center; border: 1px solid var(--academic-border); background: var(--academic-surface); box-shadow: 0 2px 10px rgba(32, 33, 36, 0.04); }

.greedy-nav button { border-radius: 999px; background: var(--academic-surface-solid); }

/* Main layout -------------------------------------------------------------- */
#main { margin-top: 2.6rem; }

.page .page__inner-wrap, .archive { background: var(--academic-surface); border: 1px solid var(--academic-border); border-radius: var(--academic-radius-xl); box-shadow: var(--academic-shadow); backdrop-filter: blur(18px); -webkit-backdrop-filter: blur(18px); }

.page .page__inner-wrap { padding: clamp(1.4rem, 3vw, 2.6rem); }

.archive { padding: clamp(1.25rem, 3vw, 2.4rem); }

.page__title, .archive > h1 { font-size: clamp(2rem, 4vw, 3.25rem); font-weight: 760; line-height: 1.02; margin-bottom: 1.15rem; }

.page__content { color: var(--academic-text-2); }

.page__content > p:first-child { font-size: 1.08rem; }

.page__content h2 { border-bottom: 0; margin-top: 2.25rem; padding-bottom: 0; font-size: 1.34rem; font-weight: 720; }

.page__content h3 { font-size: 1.08rem; }

.page__content a { color: var(--academic-blue); text-decoration: none; font-weight: 550; }

.page__content a:hover { color: var(--academic-blue-2); text-decoration: none; }

.page__content code { padding: .18rem .46rem; border: 1px solid var(--academic-border); border-radius: 8px; background: var(--academic-surface-soft); box-shadow: none; }

/* Author card -------------------------------------------------------------- */
.sidebar { overflow: visible; }

.academic-profile-card { position: relative; padding: 1rem; border: 1px solid var(--academic-border); border-radius: var(--academic-radius-xl); background: var(--academic-surface); box-shadow: var(--academic-shadow-soft); backdrop-filter: blur(18px); -webkit-backdrop-filter: blur(18px); }

.academic-profile-card::before { content: ""; position: absolute; inset: -1px; z-index: -1; border-radius: inherit; background: linear-gradient(135deg, rgba(66, 133, 244, 0.16), rgba(255, 107, 154, 0.1), rgba(52, 168, 83, 0.1)); filter: blur(16px); opacity: .45; }

.author__avatar { display: block; width: 100%; }

.author__avatar img { display: block; width: 100%; max-width: 176px; aspect-ratio: 1; object-fit: cover; margin: 0 auto; padding: 0 !important; border: 1px solid rgba(255, 255, 255, 0.72) !important; border-radius: 28% !important; box-shadow: 0 12px 34px rgba(32, 33, 36, 0.13); }

html[data-theme="dark"] .author__avatar img { border-color: rgba(255, 255, 255, 0.1) !important; }

.author__content { display: block; width: 100%; padding: 0; text-align: center; }

.sidebar .author__name { margin-top: 1rem; margin-bottom: .35rem; font-size: 1.25rem; font-weight: 760; letter-spacing: -0.035em; }

.author__bio { margin: 0.35rem 0 0.8rem !important; color: var(--academic-text-2); font-size: .88rem !important; line-height: 1.55 !important; }

.academic-profile-meta { display: flex; flex-direction: column; gap: .32rem; margin: .75rem 0; color: var(--academic-text-2); font-size: .82rem; }

.academic-profile-meta span i { width: 1.15rem; color: var(--academic-blue); }

.profile-links { display: flex !important; flex-wrap: wrap; gap: .42rem; position: static !important; margin: .95rem 0 0 !important; padding: 0 !important; border: 0 !important; background: transparent !important; box-shadow: none !important; list-style: none; }

.profile-links::before, .profile-links::after { display: none !important; }

.profile-links li { margin: 0 !important; }

.profile-links a { display: inline-flex !important; align-items: center; gap: .36rem; margin: 0 !important; padding: .42rem .62rem !important; border: 1px solid var(--academic-border); border-radius: 999px; background: var(--academic-surface-solid); color: var(--academic-text-2) !important; font-size: .76rem !important; font-weight: 600; text-decoration: none !important; box-shadow: 0 2px 9px rgba(32, 33, 36, 0.035); }

.profile-links a:hover { color: var(--academic-blue) !important; border-color: rgba(66, 133, 244, 0.3); background: rgba(66, 133, 244, 0.07); transform: translateY(-1px); }

.author__urls-wrapper > button { display: none !important; }

/* Publication / patent / conference cards --------------------------------- */
.archive .list__item { padding-right: 0; }

.archive__item { position: relative; margin: .8rem 0; padding: 1rem 1.05rem; border: 1px solid var(--academic-border); border-radius: var(--academic-radius-lg); background: var(--academic-surface-solid); transition: transform 180ms ease, box-shadow 180ms ease, border-color 180ms ease; }

.archive__item::before { content: ""; position: absolute; top: 1.05rem; left: -.5px; width: 3px; height: 2.25rem; border-radius: 0 999px 999px 0; background: linear-gradient(180deg, var(--academic-blue), var(--academic-purple)); opacity: .7; }

.archive__item:hover { transform: translateY(-2px); border-color: rgba(66, 133, 244, 0.24); box-shadow: var(--academic-shadow-soft); }

.archive__item-title { margin: 0 0 .35rem; font-size: 1.08rem; line-height: 1.3; }

.archive__item-title a { color: var(--academic-text); text-decoration: none !important; }

.archive__item:hover .archive__item-title { text-decoration: none; }

.archive__item p { margin: .35rem 0; color: var(--academic-text-2); font-size: .88rem; }

/* Home -------------------------------------------------------------------- */
.home-hero { padding: .35rem 0 .9rem; }

.home-kicker { display: inline-flex; align-items: center; gap: .45rem; padding: .38rem .62rem; border-radius: 999px; color: var(--academic-blue); background: rgba(66, 133, 244, 0.09); font-size: .78rem; font-weight: 650; }

.home-lead { max-width: 42rem; margin: 1rem 0 0; color: var(--academic-text); font-size: clamp(1.18rem, 2.4vw, 1.6rem); line-height: 1.5; font-weight: 540; letter-spacing: -.025em; }

.home-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .8rem; margin-top: 1.35rem; }

.home-card { padding: 1rem 1.05rem; border: 1px solid var(--academic-border); border-radius: var(--academic-radius-lg); background: var(--academic-surface-solid); }

.home-card h3 { margin: 0 0 .35rem; font-size: .98rem; }

.home-card p { margin: 0; color: var(--academic-text-2); font-size: .88rem; }

/* Tables / buttons / footer ----------------------------------------------- */
table { overflow: hidden; border: 1px solid var(--academic-border); border-radius: var(--academic-radius-md); background: var(--academic-surface-solid); }

thead { background: var(--academic-surface-soft); }

.btn, #goog-wm-sb { border: 1px solid var(--academic-border); border-radius: 999px; background: var(--academic-surface-solid); box-shadow: none; }

.page__footer { background: transparent; border-top: 0; }

.page__footer-follow, .page__footer-copyright { color: var(--academic-text-2); }

/* Responsive --------------------------------------------------------------- */
@media screen and (max-width: 1023px) { #main { margin-top: 1.25rem; }
  .sidebar { margin-bottom: 1rem; }
  .academic-profile-card { display: grid; grid-template-columns: 86px 1fr; column-gap: 1rem; align-items: center; padding: .85rem; }
  .author__avatar img { width: 82px; height: 82px; border-radius: 24% !important; }
  .author__content { text-align: left; }
  .sidebar .author__name { margin-top: 0; }
  .academic-profile-meta, .profile-links { grid-column: 1 / -1; } }
@media screen and (max-width: 620px) { .masthead__inner-wrap { padding-left: .55rem; padding-right: .55rem; }
  .greedy-nav a { padding: .55rem .62rem; }
  .page .page__inner-wrap, .archive { border-radius: 22px; padding: 1.15rem; }
  .home-grid { grid-template-columns: 1fr; }
  .archive__item { border-radius: 17px; } }
@media (prefers-reduced-motion: reduce) { *, *::before, *::after { scroll-behavior: auto !important; transition-duration: .01ms !important; animation-duration: .01ms !important; animation-iteration-count: 1 !important; } }
