@charset "UTF-8";
/* Copyright comment */
/*!
 * Minimal Mistakes Jekyll Theme 4.28.0 by Michael Rose
 * Copyright 2013-2026 Michael Rose - mademistakes.com | @mmistakes
 * Copyright 2024-2026 iBug - ibugone.com | @iBug
 * Free for personal and commercial use under the MIT license
 * https://github.com/mmistakes/minimal-mistakes/blob/master/LICENSE
 */
/* Variables */
/* ========================================================================== Variables ========================================================================== */
/* Typography ========================================================================== */
/* paragraph indention */
/* Modern font stack */
/* https://github.com/system-fonts/modern-font-stacks */
/* Sans serif - modern font stack */
/* sans serif typefaces - defined in Minimal Mistakes */
/* Serif - modern font stack */
/* serif typefaces - defined in Minimal Mistakes */
/* Monospace - modern font stack */
/* Handwritten - modern font stack */
/* Defaults used in Minimal mistakes */
/* Emoji native from modern font stack - add to the end of the font-face for native emojis */
/* system typefaces */
/* type scale */
/* headline scale */
/* Colors ========================================================================== */
/* YIQ color contrast */
/* brands */
/* links */
/* notices */
/* syntax highlighting (base16) */
/* Breakpoints ========================================================================== */
/* Grid ========================================================================== */
/* Other ========================================================================== */
/* Mixins and functions */
/* Magnific Popup CSS */
.mfp-counter { font-family: Georgia, Times, serif; }

.mfp-bg { top: 0; left: 0; width: 100%; height: 100%; z-index: 1042; overflow: hidden; position: fixed; background: #000; opacity: 0.8; filter: alpha(opacity=80); }

.mfp-wrap { top: 0; left: 0; width: 100%; height: 100%; z-index: 1043; position: fixed; outline: none !important; -webkit-backface-visibility: hidden; }

.mfp-container { text-align: center; position: absolute; width: 100%; height: 100%; left: 0; top: 0; padding: 0 8px; -webkit-box-sizing: border-box; -moz-box-sizing: border-box; box-sizing: border-box; }

.mfp-container:before { content: ''; display: inline-block; height: 100%; vertical-align: middle; }

.mfp-align-top .mfp-container:before { display: none; }

.mfp-content { position: relative; display: inline-block; vertical-align: middle; margin: 0 auto; text-align: left; z-index: 1045; }

.mfp-inline-holder .mfp-content, .mfp-ajax-holder .mfp-content { width: 100%; cursor: auto; }

.mfp-ajax-cur { cursor: progress; }

.mfp-zoom-out-cur, .mfp-zoom-out-cur .mfp-image-holder .mfp-close { cursor: -moz-zoom-out; cursor: -webkit-zoom-out; cursor: zoom-out; }

.mfp-zoom { cursor: pointer; cursor: -webkit-zoom-in; cursor: -moz-zoom-in; cursor: zoom-in; }

.mfp-auto-cursor .mfp-content { cursor: auto; }

.mfp-close, .mfp-arrow, .mfp-preloader, .mfp-counter { -webkit-user-select: none; -moz-user-select: none; user-select: none; }

.mfp-loading.mfp-figure { display: none; }

.mfp-hide { display: none !important; }

.mfp-preloader { color: #ccc; position: absolute; top: 50%; width: auto; text-align: center; margin-top: -0.8em; left: 8px; right: 8px; z-index: 1044; }
.mfp-preloader a { color: #ccc; }
.mfp-preloader a:hover { color: #fff; }

.mfp-s-ready .mfp-preloader { display: none; }

.mfp-s-error .mfp-content { display: none; }

button.mfp-close, button.mfp-arrow { overflow: visible; cursor: pointer; background: transparent; border: 0; -webkit-appearance: none; display: block; outline: none; padding: 0; z-index: 1046; -webkit-box-shadow: none; box-shadow: none; }
button::-moz-focus-inner { padding: 0; border: 0; }

.mfp-close { width: 44px; height: 44px; line-height: 44px; position: absolute; right: 0; top: 0; text-decoration: none; text-align: center; opacity: 1; filter: alpha(opacity=100); padding: 0 0 18px 10px; color: #fff; font-style: normal; font-size: 28px; font-family: Georgia, Times, serif; }
.mfp-close:hover, .mfp-close:focus { opacity: 1; filter: alpha(opacity=100); }
.mfp-close:active { top: 1px; }

.mfp-close-btn-in .mfp-close { color: #fff; }

.mfp-image-holder .mfp-close, .mfp-iframe-holder .mfp-close { color: #fff; right: -6px; text-align: right; padding-right: 6px; width: 100%; }

.mfp-counter { position: absolute; top: 0; right: 0; color: #ccc; font-size: 12px; line-height: 18px; }

.mfp-arrow { position: absolute; opacity: 1; filter: alpha(opacity=100); margin: 0; top: 50%; margin-top: -55px; padding: 0; width: 90px; height: 110px; -webkit-tap-highlight-color: rgba(0, 0, 0, 0); }
.mfp-arrow:active { margin-top: -54px; }
.mfp-arrow:hover, .mfp-arrow:focus { opacity: 1; filter: alpha(opacity=100); }
.mfp-arrow:before, .mfp-arrow:after, .mfp-arrow .mfp-b, .mfp-arrow .mfp-a { content: ''; display: block; width: 0; height: 0; position: absolute; left: 0; top: 0; margin-top: 35px; margin-left: 35px; border: medium inset transparent; }
.mfp-arrow:after, .mfp-arrow .mfp-a { border-top-width: 13px; border-bottom-width: 13px; top: 8px; }
.mfp-arrow:before, .mfp-arrow .mfp-b { border-top-width: 21px; border-bottom-width: 21px; opacity: 0.7; }

.mfp-arrow-left { left: 0; }
.mfp-arrow-left:after, .mfp-arrow-left .mfp-a { border-right: 17px solid #fff; margin-left: 31px; }
.mfp-arrow-left:before, .mfp-arrow-left .mfp-b { margin-left: 25px; border-right: 27px solid #fff; }

.mfp-arrow-right { right: 0; }
.mfp-arrow-right:after, .mfp-arrow-right .mfp-a { border-left: 17px solid #fff; margin-left: 39px; }
.mfp-arrow-right:before, .mfp-arrow-right .mfp-b { border-left: 27px solid #fff; }

.mfp-iframe-holder { padding-top: 40px; padding-bottom: 40px; }
.mfp-iframe-holder .mfp-content { line-height: 0; width: 100%; max-width: 900px; }
.mfp-iframe-holder .mfp-close { top: -40px; }

.mfp-iframe-scaler { width: 100%; height: 0; overflow: hidden; padding-top: 56.25%; }
.mfp-iframe-scaler iframe { position: absolute; display: block; top: 0; left: 0; width: 100%; height: 100%; box-shadow: 0 0 8px rgba(0, 0, 0, 0.6); background: #000; }

/* Main image in popup */
img.mfp-img { width: auto; max-width: 100%; height: auto; display: block; line-height: 0; -webkit-box-sizing: border-box; -moz-box-sizing: border-box; box-sizing: border-box; padding: 40px 0 40px; margin: 0 auto; }

/* The shadow behind the image */
.mfp-figure { line-height: 0; }
.mfp-figure:after { content: ''; position: absolute; left: 0; top: 40px; bottom: 40px; display: block; right: 0; width: auto; height: auto; z-index: -1; box-shadow: 0 0 8px rgba(0, 0, 0, 0.6); background: #444; }
.mfp-figure small { color: #bdbdbd; display: block; font-size: 12px; line-height: 14px; }
.mfp-figure figure { margin: 0; }
.mfp-figure figcaption { margin-top: 0; margin-bottom: 0; }

.mfp-bottom-bar { margin-top: -36px; position: absolute; top: 100%; left: 0; width: 100%; cursor: auto; }

.mfp-title { text-align: left; line-height: 18px; color: #f3f3f3; word-wrap: break-word; padding-right: 36px; }

.mfp-image-holder .mfp-content { max-width: 100%; }

.mfp-gallery .mfp-image-holder .mfp-figure { cursor: pointer; }

@media screen and (max-width: 800px) and (orientation: landscape), screen and (max-height: 300px) { /** Remove all paddings around the image on small screen */
  .mfp-img-mobile .mfp-image-holder { padding-left: 0; padding-right: 0; }
  .mfp-img-mobile img.mfp-img { padding: 0; }
  .mfp-img-mobile .mfp-figure:after { top: 0; bottom: 0; }
  .mfp-img-mobile .mfp-figure small { display: inline; margin-left: 5px; }
  .mfp-img-mobile .mfp-bottom-bar { background: rgba(0, 0, 0, 0.6); bottom: 0; margin: 0; top: auto; padding: 3px 5px; position: fixed; -webkit-box-sizing: border-box; -moz-box-sizing: border-box; box-sizing: border-box; }
  .mfp-img-mobile .mfp-bottom-bar:empty { padding: 0; }
  .mfp-img-mobile .mfp-counter { right: 5px; top: 3px; }
  .mfp-img-mobile .mfp-close { top: 0; right: 0; width: 35px; height: 35px; line-height: 35px; background: rgba(0, 0, 0, 0.6); position: fixed; text-align: center; padding: 0; } }
@media all and (max-width: 900px) { .mfp-arrow { -webkit-transform: scale(0.75); transform: scale(0.75); }
  .mfp-arrow-left { -webkit-transform-origin: 0; transform-origin: 0; }
  .mfp-arrow-right { -webkit-transform-origin: 100%; transform-origin: 100%; }
  .mfp-container { padding-left: 6px; padding-right: 6px; } }
.mfp-ie7 .mfp-img { padding: 0; }
.mfp-ie7 .mfp-bottom-bar { width: 600px; left: 50%; margin-left: -300px; margin-top: 5px; padding-bottom: 5px; }
.mfp-ie7 .mfp-container { padding: 0; }
.mfp-ie7 .mfp-content { padding-top: 44px; }
.mfp-ie7 .mfp-close { top: 0; right: 0; padding-top: 0; }

/* ========================================================================== MIXINS ========================================================================== */
a:focus, button:focus { /* Default*/ outline: thin dotted #6f777d; /* Webkit*/ outline: 5px auto #6f777d; 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; }
*/
/* Compass YIQ Color Contrast https://github.com/easy-designs/yiq-color-contrast ========================================================================== */
/* Core CSS */
/* ========================================================================== STYLE RESETS ========================================================================== */
* { box-sizing: border-box; }

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

/* 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; }

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

a { color: #2f7d95; }

/* 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 { 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: border-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%; -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; }

body { margin: 0; padding: 0; color: #3d4144; font-family: -apple-system, BlinkMacSystemFont, "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, BlinkMacSystemFont, "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: 1.125em; }

h4 { font-size: 1.0625em; }

h5 { font-size: 1.03125em; }

h6 { font-size: 1em; }

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

p { margin-bottom: 1.3em; }

u, ins { text-decoration: none; border-bottom: 1px solid #3d4144; }
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 #3d4144; }

/* blockquotes */
blockquote { margin-block: 2em; margin-inline-end: 1em; padding-inline: 1em; font-style: italic; border-inline-start: 0.25em solid #6f777d; }
blockquote cite { font-style: italic; }
blockquote cite::before { content: "\2014"; padding-inline-end: 5px; }

/* links */
a:visited { color: #4e91a5; }
a:hover { color: #235e70; outline: 0; }

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

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

/* horizontal rule */
hr { display: block; margin: 1em 0; border: 0; border-top: 1px solid #f2f3f3; }

/* 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: #646769; font-family: Georgia, Times, serif; font-size: 0.75em; }
figcaption a { -webkit-transition: all 0.2s ease-in-out; transition: all 0.2s ease-in-out; }
figcaption a:hover { color: #235e70; }

/* 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; }

/* 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, .highlight, .archive__item-teaser { -webkit-transition: all 0.2s ease-in-out; transition: all 0.2s ease-in-out; }

/* ========================================================================== Forms ========================================================================== */
form { margin-bottom: 5px; padding: 1em; background-color: #f2f3f3; }
form fieldset { margin-bottom: 5px; padding: 0; border-width: 0; }
form legend { display: block; width: 100%; margin-bottom: 10px; margin-inline-start: -7px; padding: 0; color: #3d4144; border: 0; white-space: normal; }
form p { margin-bottom: 2.5px; }
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; }

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

label { display: block; margin-bottom: 0.25em; color: #3d4144; 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: #3d4144; background-color: #fff; border: #f2f3f3; border-radius: 4px; box-shadow: 0 1px 1px rgba(0, 0, 0, 0.125); }

.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; line-height: normal; cursor: pointer; border-radius: 0; border: 0 \9; box-shadow: none; }

input[type="checkbox"], input[type="radio"] { box-sizing: border-box; padding: 0; }

input[type="image"] { border: 0; }

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; }

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-inline-start: 18px; font-weight: normal; }

.radio input[type="radio"], .checkbox input[type="checkbox"] { float: inline-start; margin-inline-start: -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-inline-start: 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: #6f777d; outline: 0; outline: thin dotted \9; box-shadow: inset 0 1px 3px rgba(61, 65, 68, 0.06), 0 0 5px rgba(111, 119, 125, 0.7); }

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

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

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

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

/* .form-group ========================================================================== */
.form-group { margin-bottom: 5px; padding: 0; border-width: 0; }

/* .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-inline-start: 0; margin-bottom: 0; vertical-align: middle; }

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

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

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

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

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

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

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

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

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

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

/* ========================================================================== TABLES ========================================================================== */
table { display: block; margin-bottom: 1em; width: 100%; font-family: -apple-system, BlinkMacSystemFont, "Roboto", "Segoe UI", "Helvetica Neue", "Lucida Grande", Arial, sans-serif; font-size: 0.75em; border-collapse: collapse; overflow-x: auto; }
table + table { margin-top: 1em; }

thead { background-color: #f2f3f3; border-bottom: 2px solid #b6b6b6; }

th { padding: 0.5em; font-weight: bold; text-align: start; }

td { padding: 0.5em; border-bottom: 1px solid #b6b6b6; }

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

/* ========================================================================== ANIMATIONS ========================================================================== */
@-webkit-keyframes intro { 0% { opacity: 0; }
  100% { opacity: 1; } }
@keyframes intro { 0% { opacity: 0; }
  100% { opacity: 1; } }
/* Components */
/* ========================================================================== BUTTONS ========================================================================== */
/* Default button ========================================================================== */
.btn { /* default */ display: inline-block; margin-bottom: 0.25em; padding: 0.5em 1em; font-family: -apple-system, BlinkMacSystemFont, "Roboto", "Segoe UI", "Helvetica Neue", "Lucida Grande", Arial, sans-serif; font-size: 0.75em; font-weight: bold; text-align: center; text-decoration: none; border-width: 0; border-radius: 4px; cursor: pointer; /* button colors */ /* fills width of parent container */ /* disabled */ /* extra large button */ /* large button */ /* small button */ }
.btn .icon { margin-inline-end: 0.5em; }
.btn .icon + .hidden { margin-inline-start: -0.5em; /* override for hidden text*/ }
.btn--primary { background-color: #6f777d; color: #fff; }
.btn--primary:visited { background-color: #6f777d; color: #fff; }
.btn--primary:hover { background-color: #595f64; color: #fff; }
.btn--inverse { background-color: #fff; color: #3d4144; border: 1px solid #f2f3f3; }
.btn--inverse:visited { background-color: #fff; color: #3d4144; }
.btn--inverse:hover { background-color: #cccccc; color: #3d4144; }
.btn--light-outline { background-color: transparent; color: #fff; border: 1px solid #fff; }
.btn--light-outline:visited { background-color: transparent; color: #fff; }
.btn--light-outline:hover { background-color: rgba(0, 0, 0, 0.2); color: #fff; }
.btn--success { background-color: #3fa63f; color: #fff; }
.btn--success:visited { background-color: #3fa63f; color: #fff; }
.btn--success:hover { background-color: #328532; color: #fff; }
.btn--warning { background-color: #d67f05; color: #fff; }
.btn--warning:visited { background-color: #d67f05; color: #fff; }
.btn--warning:hover { background-color: #ab6604; color: #fff; }
.btn--danger { background-color: #ee5f5b; color: #fff; }
.btn--danger:visited { background-color: #ee5f5b; color: #fff; }
.btn--danger:hover { background-color: #be4c49; color: #fff; }
.btn--info { background-color: #3b9cba; color: #fff; }
.btn--info:visited { background-color: #3b9cba; color: #fff; }
.btn--info:hover { background-color: #2f7d95; color: #fff; }
.btn--bluesky { background-color: #1083fe; color: #fff; }
.btn--bluesky:visited { background-color: #1083fe; color: #fff; }
.btn--bluesky:hover { background-color: #0d69cb; color: #fff; }
.btn--facebook { background-color: #3b5998; color: #fff; }
.btn--facebook:visited { background-color: #3b5998; color: #fff; }
.btn--facebook:hover { background-color: #2f477a; color: #fff; }
.btn--linkedin { background-color: #007bb6; color: #fff; }
.btn--linkedin:visited { background-color: #007bb6; color: #fff; }
.btn--linkedin:hover { background-color: #006292; color: #fff; }
.btn--mastodon { background-color: #2b90d9; color: #fff; }
.btn--mastodon:visited { background-color: #2b90d9; color: #fff; }
.btn--mastodon:hover { background-color: #2273ae; color: #fff; }
.btn--twitter { background-color: #55acee; color: #fff; }
.btn--twitter:visited { background-color: #55acee; color: #fff; }
.btn--twitter:hover { background-color: #448abe; color: #fff; }
.btn--x { background-color: #0f1419; color: #fff; }
.btn--x:visited { background-color: #0f1419; color: #fff; }
.btn--x:hover { background-color: #0c1014; color: #fff; }
.btn--block { display: block; width: 100%; }
.btn--block + .btn--block { margin-top: 0.25em; }
.btn--disabled { pointer-events: none; cursor: not-allowed; filter: alpha(opacity=65); box-shadow: none; opacity: 0.65; }
.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, .markdown-alert { margin: 2em 0 !important; /* override*/ padding: 1em; color: #3d4144; font-family: -apple-system, BlinkMacSystemFont, "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(189, 193, 196, 0.25); }
.notice h4, .markdown-alert h4 { margin-top: 0 !important; /* override*/ margin-bottom: 0.75em; line-height: inherit; }
.page__content .notice, .markdown-alert h4 { /* using at-root to override .page-content h4 font size*/ margin-bottom: 0; font-size: 1em; }
.notice p:last-child, .markdown-alert p:last-child { margin-bottom: 0 !important; /* override*/ }
.notice h4 + p, .markdown-alert h4 + p { /* remove space above paragraphs that appear directly after notice headline*/ margin-top: 0; padding-top: 0; }
.notice a, .markdown-alert a { color: #aaaeb0; }
.notice a:hover, .markdown-alert a:hover { color: #5f6162; }
blockquote.notice, blockquote.markdown-alert { border-inline-start-color: #aaaeb0; }
.notice code, .markdown-alert code { background-color: #f8f9f9; }
.notice pre code, .markdown-alert pre code { background-color: inherit; }
.notice ul:last-child, .markdown-alert ul:last-child { margin-bottom: 0; /* override*/ }

/* Primary notice */
.notice--primary, .markdown-alert-important { margin: 2em 0 !important; /* override*/ padding: 1em; color: #3d4144; font-family: -apple-system, BlinkMacSystemFont, "Roboto", "Segoe UI", "Helvetica Neue", "Lucida Grande", Arial, sans-serif; font-size: 0.75em !important; text-indent: initial; /* override*/ background-color: #e2e4e5; border-radius: 4px; box-shadow: 0 1px 1px rgba(111, 119, 125, 0.25); }
.notice--primary h4, .markdown-alert-important h4 { margin-top: 0 !important; /* override*/ margin-bottom: 0.75em; line-height: inherit; }
.page__content .notice--primary, .markdown-alert-important h4 { /* using at-root to override .page-content h4 font size*/ margin-bottom: 0; font-size: 1em; }
.notice--primary p:last-child, .markdown-alert-important p:last-child { margin-bottom: 0 !important; /* override*/ }
.notice--primary h4 + p, .markdown-alert-important h4 + p { /* remove space above paragraphs that appear directly after notice headline*/ margin-top: 0; padding-top: 0; }
.notice--primary a, .markdown-alert-important a { color: #646b71; }
.notice--primary a:hover, .markdown-alert-important a:hover { color: #383c3f; }
blockquote.notice--primary, blockquote.markdown-alert-important { border-inline-start-color: #646b71; }
.notice--primary code, .markdown-alert-important code { background-color: #f1f1f2; }
.notice--primary pre code, .markdown-alert-important pre code { background-color: inherit; }
.notice--primary ul:last-child, .markdown-alert-important ul:last-child { margin-bottom: 0; /* override*/ }

/* Info notice */
.notice--info, .markdown-alert-note { margin: 2em 0 !important; /* override*/ padding: 1em; color: #3d4144; font-family: -apple-system, BlinkMacSystemFont, "Roboto", "Segoe UI", "Helvetica Neue", "Lucida Grande", Arial, sans-serif; font-size: 0.75em !important; text-indent: initial; /* override*/ background-color: #d8ebf1; border-radius: 4px; box-shadow: 0 1px 1px rgba(59, 156, 186, 0.25); }
.notice--info h4, .markdown-alert-note h4 { margin-top: 0 !important; /* override*/ margin-bottom: 0.75em; line-height: inherit; }
.page__content .notice--info, .markdown-alert-note h4 { /* using at-root to override .page-content h4 font size*/ margin-bottom: 0; font-size: 1em; }
.notice--info p:last-child, .markdown-alert-note p:last-child { margin-bottom: 0 !important; /* override*/ }
.notice--info h4 + p, .markdown-alert-note h4 + p { /* remove space above paragraphs that appear directly after notice headline*/ margin-top: 0; padding-top: 0; }
.notice--info a, .markdown-alert-note a { color: #358ca7; }
.notice--info a:hover, .markdown-alert-note a:hover { color: #1e4e5d; }
blockquote.notice--info, blockquote.markdown-alert-note { border-inline-start-color: #358ca7; }
.notice--info code, .markdown-alert-note code { background-color: #ebf5f8; }
.notice--info pre code, .markdown-alert-note pre code { background-color: inherit; }
.notice--info ul:last-child, .markdown-alert-note ul:last-child { margin-bottom: 0; /* override*/ }

/* Warning notice */
.notice--warning, .markdown-alert-warning { margin: 2em 0 !important; /* override*/ padding: 1em; color: #3d4144; font-family: -apple-system, BlinkMacSystemFont, "Roboto", "Segoe UI", "Helvetica Neue", "Lucida Grande", Arial, sans-serif; font-size: 0.75em !important; text-indent: initial; /* override*/ background-color: #f7e5cd; border-radius: 4px; box-shadow: 0 1px 1px rgba(214, 127, 5, 0.25); }
.notice--warning h4, .markdown-alert-warning h4 { margin-top: 0 !important; /* override*/ margin-bottom: 0.75em; line-height: inherit; }
.page__content .notice--warning, .markdown-alert-warning h4 { /* using at-root to override .page-content h4 font size*/ margin-bottom: 0; font-size: 1em; }
.notice--warning p:last-child, .markdown-alert-warning p:last-child { margin-bottom: 0 !important; /* override*/ }
.notice--warning h4 + p, .markdown-alert-warning h4 + p { /* remove space above paragraphs that appear directly after notice headline*/ margin-top: 0; padding-top: 0; }
.notice--warning a, .markdown-alert-warning a { color: #c17205; }
.notice--warning a:hover, .markdown-alert-warning a:hover { color: #6b4003; }
blockquote.notice--warning, blockquote.markdown-alert-warning { border-inline-start-color: #c17205; }
.notice--warning code, .markdown-alert-warning code { background-color: #fbf2e6; }
.notice--warning pre code, .markdown-alert-warning pre code { background-color: inherit; }
.notice--warning ul:last-child, .markdown-alert-warning ul:last-child { margin-bottom: 0; /* override*/ }

/* Success notice */
.notice--success, .markdown-alert-tip { margin: 2em 0 !important; /* override*/ padding: 1em; color: #3d4144; font-family: -apple-system, BlinkMacSystemFont, "Roboto", "Segoe UI", "Helvetica Neue", "Lucida Grande", Arial, sans-serif; font-size: 0.75em !important; text-indent: initial; /* override*/ background-color: #d9edd9; border-radius: 4px; box-shadow: 0 1px 1px rgba(63, 166, 63, 0.25); }
.notice--success h4, .markdown-alert-tip h4 { margin-top: 0 !important; /* override*/ margin-bottom: 0.75em; line-height: inherit; }
.page__content .notice--success, .markdown-alert-tip h4 { /* using at-root to override .page-content h4 font size*/ margin-bottom: 0; font-size: 1em; }
.notice--success p:last-child, .markdown-alert-tip p:last-child { margin-bottom: 0 !important; /* override*/ }
.notice--success h4 + p, .markdown-alert-tip h4 + p { /* remove space above paragraphs that appear directly after notice headline*/ margin-top: 0; padding-top: 0; }
.notice--success a, .markdown-alert-tip a { color: #399539; }
.notice--success a:hover, .markdown-alert-tip a:hover { color: #205320; }
blockquote.notice--success, blockquote.markdown-alert-tip { border-inline-start-color: #399539; }
.notice--success code, .markdown-alert-tip code { background-color: #ecf6ec; }
.notice--success pre code, .markdown-alert-tip pre code { background-color: inherit; }
.notice--success ul:last-child, .markdown-alert-tip ul:last-child { margin-bottom: 0; /* override*/ }

/* Danger notice */
.notice--danger, .markdown-alert-caution { margin: 2em 0 !important; /* override*/ padding: 1em; color: #3d4144; font-family: -apple-system, BlinkMacSystemFont, "Roboto", "Segoe UI", "Helvetica Neue", "Lucida Grande", Arial, sans-serif; font-size: 0.75em !important; text-indent: initial; /* override*/ background-color: #fcdfde; border-radius: 4px; box-shadow: 0 1px 1px rgba(238, 95, 91, 0.25); }
.notice--danger h4, .markdown-alert-caution h4 { margin-top: 0 !important; /* override*/ margin-bottom: 0.75em; line-height: inherit; }
.page__content .notice--danger, .markdown-alert-caution h4 { /* using at-root to override .page-content h4 font size*/ margin-bottom: 0; font-size: 1em; }
.notice--danger p:last-child, .markdown-alert-caution p:last-child { margin-bottom: 0 !important; /* override*/ }
.notice--danger h4 + p, .markdown-alert-caution h4 + p { /* remove space above paragraphs that appear directly after notice headline*/ margin-top: 0; padding-top: 0; }
.notice--danger a, .markdown-alert-caution a { color: #d65652; }
.notice--danger a:hover, .markdown-alert-caution a:hover { color: #77302e; }
blockquote.notice--danger, blockquote.markdown-alert-caution { border-inline-start-color: #d65652; }
.notice--danger code, .markdown-alert-caution code { background-color: #fdefef; }
.notice--danger pre code, .markdown-alert-caution pre code { background-color: inherit; }
.notice--danger ul:last-child, .markdown-alert-caution ul:last-child { margin-bottom: 0; /* override*/ }

/* ========================================================================== MASTHEAD ========================================================================== */
.masthead { position: relative; border-bottom: 1px solid #f2f3f3; -webkit-animation: intro 0.3s both; animation: intro 0.3s both; -webkit-animation-delay: 0.15s; animation-delay: 0.15s; z-index: 20; }
.masthead__inner-wrap { clear: both; margin-inline: auto; padding: 1em; max-width: 100%; display: -webkit-box; display: -ms-flexbox; display: flex; -webkit-box-pack: justify; -ms-flex-pack: justify; justify-content: space-between; font-family: -apple-system, BlinkMacSystemFont, "Roboto", "Segoe UI", "Helvetica Neue", "Lucida Grande", Arial, sans-serif; }
.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; }

.site-logo img { max-height: 2rem; }

.site-title { display: -webkit-box; display: -ms-flexbox; display: flex; -ms-flex-item-align: center; align-self: center; font-weight: bold; }

.site-subtitle { display: block; font-size: 0.625em; }

.masthead__menu { float: inline-start; margin-inline: 0; width: 100%; clear: both; }
.masthead__menu .site-nav { margin-inline-start: 0; }
@media (min-width: 37.5em) { .masthead__menu .site-nav { float: inline-end; } }
.masthead__menu ul { margin: 0; padding: 0; clear: both; list-style-type: none; }

.masthead__menu-item { display: block; list-style-type: none; white-space: nowrap; }
.masthead__menu-item--lg { padding-inline-end: 2em; font-weight: 700; }

/* ========================================================================== NAVIGATION ========================================================================== */
/* Breadcrumb navigation links ========================================================================== */
.breadcrumbs { clear: both; margin: 0 auto; max-width: 100%; padding-inline: 1em; font-family: -apple-system, BlinkMacSystemFont, "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.3s; animation-delay: 0.3s; }
.breadcrumbs::after { clear: both; content: ""; display: table; }
@media (min-width: 80em) { .breadcrumbs { max-width: 1280px; } }
.breadcrumbs ol { padding: 0; list-style: none; font-size: 0.75em; }
@media (min-width: 64em) { .breadcrumbs ol { float: inline-end; width: calc(100% - 200px); } }
@media (min-width: 80em) { .breadcrumbs ol { width: calc(100% - 300px); } }
.breadcrumbs li { display: inline; }
.breadcrumbs .current { font-weight: bold; }

/* Post pagination navigation links ========================================================================== */
.pagination { clear: both; float: inline-start; margin-top: 1em; padding-top: 1em; width: 100%; /* next/previous buttons */ }
.pagination::after { clear: both; content: ""; display: table; }
.pagination ul { margin: 0; padding: 0; list-style-type: none; font-family: -apple-system, BlinkMacSystemFont, "Roboto", "Segoe UI", "Helvetica Neue", "Lucida Grande", Arial, sans-serif; }
.pagination li { display: block; float: inline-start; margin-inline-start: -1px; }
.pagination li a { display: block; margin-bottom: 0.25em; padding: 0.5em 1em; font-family: -apple-system, BlinkMacSystemFont, "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: #646769; border: 1px solid #b6b6b6; border-radius: 0; }
.pagination li a:hover { color: #235e70; }
.pagination li a.current, .pagination li a.current.disabled { color: #fff; background: #6f777d; }
.pagination li a.disabled { color: rgba(100, 103, 105, 0.5); pointer-events: none; cursor: not-allowed; }
.pagination li:first-child { margin-inline-start: 0; }
.pagination li:first-child a { border-start-start-radius: 4px; border-end-start-radius: 4px; }
.pagination li:last-child a { border-start-end-radius: 4px; border-end-end-radius: 4px; }
.pagination--pager { display: block; padding: 1em 2em; float: inline-start; width: 50%; font-family: -apple-system, BlinkMacSystemFont, "Roboto", "Segoe UI", "Helvetica Neue", "Lucida Grande", Arial, sans-serif; font-size: 1em; font-weight: bold; text-align: center; text-decoration: none; color: #646769; border: 1px solid #b6b6b6; border-radius: 4px; }
.pagination--pager:hover { background-color: #646769; color: #fff; }
.pagination--pager:first-child { border-start-end-radius: 0; border-end-end-radius: 0; }
.pagination--pager:last-child { margin-inline-start: -1px; border-start-start-radius: 0; border-end-start-radius: 0; }
.pagination--pager.disabled { color: rgba(100, 103, 105, 0.5); 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 #f2f3f3; }

/* Priority plus navigation ========================================================================== */
.greedy-nav { position: relative; display: -webkit-box; display: -ms-flexbox; display: flex; -webkit-box-align: center; -ms-flex-align: center; align-items: center; min-height: 2em; background: #fff; }
.greedy-nav a { display: block; margin: 0 1rem; color: #6f777d; text-decoration: none; -webkit-transition: none; transition: none; }
.greedy-nav a:hover { color: #53595e; }
.greedy-nav a.site-logo { margin-inline-start: 0; margin-inline-end: 0.5rem; }
.greedy-nav a.site-title { margin-inline-start: 0; }
.greedy-nav img { -webkit-transition: none; transition: none; }
.greedy-nav__toggle { -ms-flex-item-align: center; align-self: center; height: 2rem; border: 0; outline: none; background-color: transparent; cursor: pointer; }
.greedy-nav .visible-links { display: -webkit-box; display: -ms-flexbox; display: flex; -webkit-box-pack: end; -ms-flex-pack: end; justify-content: flex-end; -webkit-box-flex: 1; -ms-flex: 1; flex: 1; overflow: hidden; }
.greedy-nav .visible-links li { -webkit-box-flex: 0; -ms-flex: none; flex: none; }
.greedy-nav .visible-links a { position: relative; }
.greedy-nav .visible-links a:before { content: ""; position: absolute; inset-inline-start: 0; bottom: 0; height: 4px; background: #6f777d; width: 100%; -webkit-transition: all 0.2s ease-in-out; transition: all 0.2s ease-in-out; -webkit-transform: scaleX(0) translate3d(0, 0, 0); transform: scaleX(0) translate3d(0, 0, 0); }
.greedy-nav .visible-links a:hover:before { -webkit-transform: scaleX(1); -ms-transform: scaleX(1); transform: scaleX(1); }
.greedy-nav .hidden-links { position: absolute; top: 100%; inset-inline-end: 0; margin-top: 15px; padding: 5px; border: 1px solid #f2f3f3; border-radius: 4px; background: #fff; -webkit-box-shadow: 0 2px 4px 0 rgba(0, 0, 0, 0.16), 0 2px 10px 0 rgba(0, 0, 0, 0.12); box-shadow: 0 2px 4px 0 rgba(0, 0, 0, 0.16), 0 2px 10px 0 rgba(0, 0, 0, 0.12); }
.greedy-nav .hidden-links.hidden { display: none; }
.greedy-nav .hidden-links a { margin: 0; padding: 10px 20px; font-size: 1em; }
.greedy-nav .hidden-links a:hover { color: #53595e; background: #dbdddf; }
.greedy-nav .hidden-links::before { content: ""; position: absolute; top: -11px; inset-inline-end: 10px; width: 0; border-style: solid; border-width: 0 10px 10px; border-color: #f2f3f3 transparent; display: block; z-index: 0; }
.greedy-nav .hidden-links::after { content: ""; position: absolute; top: -10px; inset-inline-end: 10px; width: 0; border-style: solid; border-width: 0 10px 10px; border-color: #fff transparent; display: block; z-index: 1; }
.greedy-nav .hidden-links li { display: block; border-bottom: 1px solid #f2f3f3; }
.greedy-nav .hidden-links li:last-child { border-bottom: none; }

.no-js .greedy-nav .visible-links { -ms-flex-wrap: wrap; flex-wrap: wrap; overflow: visible; }

/* Navigation list ========================================================================== */
.nav__list { margin-bottom: 1.5em; }
.nav__list input[type="checkbox"], .nav__list label { display: none; }
@media (max-width: 63.9375em) { .nav__list { /* selected*/ /* on hover show expand*/ }
  .nav__list label { position: relative; display: inline-block; padding: 0.5em 2.5em 0.5em 1em; color: #7a8288; font-size: 0.75em; font-weight: bold; border: 1px solid #bdc1c4; border-radius: 4px; z-index: 20; -webkit-transition: 0.2s ease-out; transition: 0.2s ease-out; cursor: pointer; }
  .nav__list label::before, .nav__list label::after { content: ""; position: absolute; inset-inline-end: 1em; top: 1.25em; width: 0.75em; height: 0.125em; line-height: 1; background-color: #7a8288; -webkit-transition: 0.2s ease-out; transition: 0.2s ease-out; }
  .nav__list label:after { -webkit-transform: rotate(90deg); -ms-transform: rotate(90deg); transform: rotate(90deg); }
  .nav__list label:hover { color: #fff; border-color: #7a8288; background-color: #333333; }
  .nav__list label:hover:before, .nav__list label:hover:after { background-color: #fff; }
  .nav__list input:checked + label { color: white; background-color: #333333; }
  .nav__list input:checked + label:before, .nav__list input:checked + label:after { background-color: #fff; }
  .nav__list label:hover:after { -webkit-transform: rotate(90deg); -ms-transform: rotate(90deg); transform: rotate(90deg); }
  .nav__list input:checked + label:hover:after { -webkit-transform: rotate(0); -ms-transform: rotate(0); transform: rotate(0); }
  .nav__list ul { margin-bottom: 1em; }
  .nav__list a { display: block; padding: 0.25em 0; } }
@media (max-width: 63.9375em) and (min-width: 64em) { .nav__list a { padding-top: 0.125em; padding-bottom: 0.125em; } }
@media (max-width: 63.9375em) { .nav__list a:hover { text-decoration: underline; } }

.nav__list .nav__items { margin: 0; font-size: 1.25rem; }
.nav__list .nav__items a { color: inherit; }
.nav__list .nav__items .active { margin-inline-start: -0.5em; padding-inline: 0.5em; font-weight: bold; }
@media (max-width: 63.9375em) { .nav__list .nav__items { position: relative; max-height: 0; opacity: 0%; overflow: hidden; z-index: 10; -webkit-transition: 0.3s ease-in-out; transition: 0.3s ease-in-out; -webkit-transform: translate(0, 10%); -ms-transform: translate(0, 10%); transform: translate(0, 10%); } }

@media (max-width: 63.9375em) { .nav__list input:checked ~ .nav__items { -webkit-transition: 0.5s ease-in-out; transition: 0.5s ease-in-out; max-height: 9999px; /* exaggerate max-height to accommodate tall lists*/ overflow: visible; opacity: 1; margin-top: 1em; -webkit-transform: translate(0, 0); -ms-transform: translate(0, 0); transform: translate(0, 0); } }
.nav__title { margin: 0; padding: 0.5rem 0.75rem; font-family: -apple-system, BlinkMacSystemFont, "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.25rem 0; font-family: -apple-system, BlinkMacSystemFont, "Roboto", "Segoe UI", "Helvetica Neue", "Lucida Grande", Arial, sans-serif; font-size: 0.75em; font-weight: bold; text-transform: uppercase; border-bottom: 1px solid #f2f3f3; }

/* Table of contents navigation ========================================================================== */
.toc { font-family: -apple-system, BlinkMacSystemFont, "Roboto", "Segoe UI", "Helvetica Neue", "Lucida Grande", Arial, sans-serif; color: #7a8288; background-color: #fff; border: 1px solid #f2f3f3; border-radius: 4px; -webkit-box-shadow: 0 1px 1px rgba(0, 0, 0, 0.125); box-shadow: 0 1px 1px rgba(0, 0, 0, 0.125); }
.toc .nav__title { color: #fff; font-size: 0.75em; background: #6f777d; border-start-start-radius: 4px; border-start-end-radius: 4px; }
.toc .active a { background-color: #e2e4e5; color: #3d4144; }

.toc__menu { margin: 0; padding: 0; width: 100%; list-style: none; font-size: 0.75em; }
@media (min-width: 64em) { .toc__menu { font-size: 0.6875em; } }
.toc__menu a { display: block; padding: 0.25rem 0.75rem; color: #646769; font-weight: bold; line-height: 1.5; border-bottom: 1px solid #f2f3f3; }
.toc__menu a:hover { color: #3d4144; }
.toc__menu li ul > li a { padding-inline-start: 1.25rem; font-weight: normal; }
.toc__menu li ul li ul > li a { padding-inline-start: 1.75rem; }
.toc__menu li ul li ul li ul > li a { padding-inline-start: 2.25rem; }
.toc__menu li ul li ul li ul li ul > li a { padding-inline-start: 2.75rem; }
.toc__menu li ul li ul li ul li ul li ul > li a { padding-inline-start: 3.25rem; }

/* ========================================================================== FOOTER ========================================================================== */
.page__footer { clear: both; float: inline-start; margin-inline: 0; width: 100%; margin-top: 3em; color: #646769; -webkit-animation: intro 0.3s both; animation: intro 0.3s both; -webkit-animation-delay: 0.45s; animation-delay: 0.45s; background-color: #f2f3f3; }
.page__footer::after { clear: both; content: ""; display: table; }
.page__footer footer { clear: both; margin-inline: auto; margin-top: 2em; max-width: 100%; padding: 0 1em 2em; }
.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: #646769; }

.page__footer-copyright { font-family: -apple-system, BlinkMacSystemFont, "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, BlinkMacSystemFont, "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-inline-end: 5px; }
.page__footer-follow a { padding-inline-end: 10px; font-weight: bold; }
.page__footer-follow .social-icons a { white-space: nowrap; }

/* ========================================================================== SEARCH ========================================================================== */
.layout--search .archive__item-teaser { margin-bottom: 0.25em; }

.search__toggle { margin-inline: 1rem; height: 2rem; border: 0; outline: none; color: #6f777d; background-color: transparent; cursor: pointer; -webkit-transition: 0.2s; transition: 0.2s; }
.search__toggle:hover { color: #53595e; }

.search-icon { width: 100%; height: 100%; }

.search-content { display: none; visibility: hidden; padding-top: 1em; padding-bottom: 1em; }
.search-content__inner-wrap { width: 100%; margin-inline: auto; padding-inline: 1em; -webkit-animation: intro 0.3s both; animation: intro 0.3s both; -webkit-animation-delay: 0.15s; animation-delay: 0.15s; }
@media (min-width: 80em) { .search-content__inner-wrap { max-width: 1280px; } }
.search-content__form { background-color: transparent; }
.search-content .search-input { display: block; margin-bottom: 0; padding: 0; border: none; outline: none; box-shadow: none; background-color: transparent; font-size: 1.563em; }
@media (min-width: 64em) { .search-content .search-input { font-size: 1.953em; } }
@media (min-width: 80em) { .search-content .search-input { font-size: 2.441em; } }
.search-content.is--visible { display: block; visibility: visible; }
.search-content.is--visible::after { content: ""; display: block; }
.search-content .results__found { margin-top: 0.5em; font-size: 0.75em; }
.search-content .archive__item { margin-bottom: 2em; }
@media (min-width: 64em) { .search-content .archive__item { width: 75%; } }
@media (min-width: 80em) { .search-content .archive__item { width: 50%; } }
.search-content .archive__item-title { margin-top: 0; }
.search-content .archive__item-excerpt { margin-bottom: 0; }

/* Algolia search */
.ais-search-box { max-width: 100% !important; margin-bottom: 2em; }

.archive__item-title .ais-Highlight { color: #6f777d; font-style: normal; text-decoration: underline; }

.archive__item-excerpt .ais-Highlight { color: #6f777d; font-style: normal; font-weight: bold; }

/* ========================================================================== Syntax highlighting ========================================================================== */
div.highlighter-rouge, figure.highlight { position: relative; margin-bottom: 1em; background: #263238; color: #eeffff; font-family: Monaco, Consolas, "Lucida Console", monospace; font-size: 0.75em; line-height: 1.8; border-radius: 4px; }
[dir=rtl] div.highlighter-rouge, [dir=rtl] figure.highlight { direction: ltr; text-align: start; }
div.highlighter-rouge > pre, div.highlighter-rouge pre.highlight, figure.highlight > pre, figure.highlight pre.highlight { margin: 0; padding: 1em; }

.highlight table { margin-bottom: 0; font-size: 1em; border: 0; }
.highlight table td { padding: 0; width: calc(100% - 1em); border: 0; /* line numbers*/ /* code */ }
.highlight table td.gutter, .highlight table td.rouge-gutter { padding-inline-end: 1em; width: 1em; color: #b2ccd6; border-inline-end: 1px solid #b2ccd6; text-align: end; }
.highlight table td.code, .highlight table td.rouge-code { padding-inline-start: 1em; }
.highlight table pre { margin: 0; }

.highlight pre { width: 100%; }

.highlight .hll { background-color: #eeffff; }

.highlight .c { /* Comment */ color: #b2ccd6; }
.highlight .err { /* Error */ color: #f07178; }
.highlight .k { /* Keyword */ color: #c792ea; }
.highlight .l { /* Literal */ color: #f78c6c; }
.highlight .n { /* Name */ color: #eeffff; }
.highlight .o { /* Operator */ color: #89ddff; }
.highlight .p { /* Punctuation */ color: #eeffff; }
.highlight .cm { /* Comment.Multiline */ color: #b2ccd6; }
.highlight .cp { /* Comment.Preproc */ color: #b2ccd6; }
.highlight .c1 { /* Comment.Single */ color: #b2ccd6; }
.highlight .cs { /* Comment.Special */ color: #b2ccd6; }
.highlight .gd { /* Generic.Deleted */ color: #f07178; }
.highlight .ge { /* Generic.Emph */ font-style: italic; }
.highlight .gh { /* Generic.Heading */ color: #eeffff; font-weight: bold; }
.highlight .gi { /* Generic.Inserted */ color: #c3e88d; }
.highlight .gp { /* Generic.Prompt */ color: #b2ccd6; font-weight: bold; }
.highlight .gs { /* Generic.Strong */ font-weight: bold; }
.highlight .gu { /* Generic.Subheading */ color: #89ddff; font-weight: bold; }
.highlight .kc { /* Keyword.Constant */ color: #c792ea; }
.highlight .kd { /* Keyword.Declaration */ color: #c792ea; }
.highlight .kn { /* Keyword.Namespace */ color: #89ddff; }
.highlight .kp { /* Keyword.Pseudo */ color: #c792ea; }
.highlight .kr { /* Keyword.Reserved */ color: #c792ea; }
.highlight .kt { /* Keyword.Type */ color: #ffcb6b; }
.highlight .ld { /* Literal.Date */ color: #c3e88d; }
.highlight .m { /* Literal.Number */ color: #f78c6c; }
.highlight .s { /* Literal.String */ color: #c3e88d; }
.highlight .na { /* Name.Attribute */ color: #82aaff; }
.highlight .nb { /* Name.Builtin */ color: #eeffff; }
.highlight .nc { /* Name.Class */ color: #ffcb6b; }
.highlight .no { /* Name.Constant */ color: #f07178; }
.highlight .nd { /* Name.Decorator */ color: #89ddff; }
.highlight .ni { /* Name.Entity */ color: #eeffff; }
.highlight .ne { /* Name.Exception */ color: #f07178; }
.highlight .nf { /* Name.Function */ color: #82aaff; }
.highlight .nl { /* Name.Label */ color: #eeffff; }
.highlight .nn { /* Name.Namespace */ color: #ffcb6b; }
.highlight .nx { /* Name.Other */ color: #82aaff; }
.highlight .py { /* Name.Property */ color: #eeffff; }
.highlight .nt { /* Name.Tag */ color: #89ddff; }
.highlight .nv { /* Name.Variable */ color: #f07178; }
.highlight .ow { /* Operator.Word */ color: #89ddff; }
.highlight .w { /* Text.Whitespace */ color: #eeffff; }
.highlight .mf { /* Literal.Number.Float */ color: #f78c6c; }
.highlight .mh { /* Literal.Number.Hex */ color: #f78c6c; }
.highlight .mi { /* Literal.Number.Integer */ color: #f78c6c; }
.highlight .mo { /* Literal.Number.Oct */ color: #f78c6c; }
.highlight .sb { /* Literal.String.Backtick */ color: #c3e88d; }
.highlight .sc { /* Literal.String.Char */ color: #eeffff; }
.highlight .sd { /* Literal.String.Doc */ color: #b2ccd6; }
.highlight .s2 { /* Literal.String.Double */ color: #c3e88d; }
.highlight .se { /* Literal.String.Escape */ color: #f78c6c; }
.highlight .sh { /* Literal.String.Heredoc */ color: #c3e88d; }
.highlight .si { /* Literal.String.Interpol */ color: #f78c6c; }
.highlight .sx { /* Literal.String.Other */ color: #c3e88d; }
.highlight .sr { /* Literal.String.Regex */ color: #c3e88d; }
.highlight .s1 { /* Literal.String.Single */ color: #c3e88d; }
.highlight .ss { /* Literal.String.Symbol */ color: #c3e88d; }
.highlight .bp { /* Name.Builtin.Pseudo */ color: #eeffff; }
.highlight .vc { /* Name.Variable.Class */ color: #f07178; }
.highlight .vg { /* Name.Variable.Global */ color: #f07178; }
.highlight .vi { /* Name.Variable.Instance */ color: #f07178; }
.highlight .il { /* Literal.Number.Integer.Long */ color: #f78c6c; }

.gist th, .gist td { border-bottom: 0; }

/* Utility classes */
/* ========================================================================== UTILITY CLASSES ========================================================================== */
/* Visibility ========================================================================== */
/* http://www.456bereastreet.com/archive/200711/screen_readers_sometimes_ignore_displaynone/ */
.hidden, .is--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, .sr-only, .sr-only-focusable:not(:focus) { position: absolute !important; clip: rect(0, 0, 0, 0); height: 1px !important; width: 1px !important; padding: 0 !important; border: 0 !important; margin: -1px; overflow: hidden; white-space: nowrap; }

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: #fff; 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, BlinkMacSystemFont, "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-right { text-align: right; }

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

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

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

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

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

/* Task lists ========================================================================== */
.task-list { padding: 0; }
.task-list li { list-style-type: none; }
.task-list .task-list-item-checkbox { margin-inline-end: 0.5em; opacity: 1; }

.task-list .task-list { margin-inline-start: 1em; }

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

.wrapper { margin-inline: auto; width: 100%; }

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

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

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

/* file page content container */
@media (min-width: 64em) { .full { margin-inline-end: -20.3389830508% !important; } }

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

/* social icons*/
.social-icons .fas, .social-icons .fab, .social-icons .far, .social-icons .fal { color: #3d4144; }
.social-icons .fa-behance, .social-icons .fa-behance-square, .social-icons .fa-square-behance { color: #1769ff; }
.social-icons .fa-bitbucket { color: #205081; }
.social-icons .fa-bluesky, .social-icons .fa-square-bluesky { color: #1083fe; }
.social-icons .fa-discord { color: #5865f2; }
.social-icons .fa-dribbble, .social-icons .fa-dribbble-square, .social-icons .fa-square-dribbble { color: #ea4c89; }
.social-icons .fa-facebook, .social-icons .fa-facebook-square, .social-icons .fa-square-facebook, .social-icons .fa-facebook-f { color: #3b5998; }
.social-icons .fa-flickr { color: #ff0084; }
.social-icons .fa-foursquare { color: #0072b1; }
.social-icons .fa-github, .social-icons .fa-github-alt, .social-icons .fa-github-square, .social-icons .fa-square-github { color: #171516; }
.social-icons .fa-gitlab { color: #e24329; }
.social-icons .fa-instagram, .social-icons .fa-square-instagram { color: #cd3376; }
.social-icons .fa-keybase { color: #ef7639; }
.social-icons .fa-lastfm, .social-icons .fa-lastfm-square, .social-icons .fa-square-lastfm { color: #d51007; }
.social-icons .fa-linkedin, .social-icons .fa-linkedin-in { color: #007bb6; }
.social-icons .fa-mastodon { color: #2b90d9; }
.social-icons .fa-pinterest, .social-icons .fa-pinterest-p, .social-icons .fa-pinterest-square, .social-icons .fa-square-pinterest { color: #cb2027; }
.social-icons .fa-reddit { color: #ff4500; }
.social-icons .fa-rss, .social-icons .fa-rss-square, .social-icons .fa-square-rss { color: #fa9b39; }
.social-icons .fa-signal-messenger { color: #3a76f0; }
.social-icons .fa-soundcloud { color: #ff3300; }
.social-icons .fa-stack-exchange, .social-icons .fa-stack-overflow { color: #fe7a15; }
.social-icons .fa-telegram { color: #2aabee; }
.social-icons .fa-tumblr, .social-icons .fa-tumblr-square, .social-icons .fa-square-tumblr { color: #32506d; }
.social-icons .fa-twitter, .social-icons .fa-twitter-square { color: #55acee; }
.social-icons .fa-x-twitter, .social-icons .fa-square-x-twitter { color: #0f1419; }
.social-icons .fa-vimeo, .social-icons .fa-vimeo-square, .social-icons .fa-square-vimeo, .social-icons .fa-vimeo-v { color: #1ab7ea; }
.social-icons .fa-vine { color: #00bf8f; }
.social-icons .fa-whatsapp { color: #25d366; }
.social-icons .fa-xing, .social-icons .fa-xing-square, .social-icons .fa-square-xing { color: #006567; }
.social-icons .fa-youtube { color: #bb0000; }
.social-icons .fa-threads, .social-icons .fa-square-threads, .social-icons .fa-tiktok { color: #000000; }

/* Navicons ========================================================================== */
.navicon { position: relative; width: 1.5rem; height: 0.25rem; background: #6f777d; margin: auto; -webkit-transition: 0.3s; transition: 0.3s; }
.navicon::before, .navicon::after { content: ""; position: absolute; inset-inline-start: 0; width: 1.5rem; height: 0.25rem; background: #6f777d; -webkit-transition: 0.3s; transition: 0.3s; }
.navicon:before { top: -0.5rem; }
.navicon:after { bottom: -0.5rem; }

.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: 1.5rem; }
.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); }

@supports (pointer-events: none) { .greedy-nav__toggle:before { content: ''; position: fixed; top: 0; inset-inline-start: 0; width: 100%; height: 100%; opacity: 0; background-color: #fff; -webkit-transition: all 0.2s ease-in-out; transition: all 0.2s ease-in-out; pointer-events: none; } }
.greedy-nav__toggle.close:before { opacity: 0.9; -webkit-transition: all 0.2s ease-in-out; transition: all 0.2s ease-in-out; pointer-events: auto; }

.greedy-nav__toggle:hover .navicon, .greedy-nav__toggle:hover .navicon:before, .greedy-nav__toggle:hover .navicon:after { background: #53595e; }
.greedy-nav__toggle:hover.close .navicon { background: transparent; }

/* Sticky, fixed to top content ========================================================================== */
@media (min-width: 64em) { .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; inset-inline-start: 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%; inset-inline-start: 50%; margin-inline-start: -150px; margin-top: -150px; min-height: 0; z-index: 9999; background: #fff; border: 1px solid #f2f3f3; 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 #f2f3f3; }

/* Footnotes ========================================================================== */
.footnote { color: #9ba1a6; text-decoration: none; }

.footnotes { color: #9ba1a6; }
.footnotes ol, .footnotes li, .footnotes p { margin-bottom: 0; font-size: 0.75em; }

a.reversefootnote { color: #7a8288; text-decoration: none; }
a.reversefootnote:hover { text-decoration: underline; }

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

/* Google Custom Search Engine ========================================================================== */
.gsc-control-cse table, .gsc-control-cse tr, .gsc-control-cse td { border: 0; /* remove table borders widget */ }

/* Responsive Video Embed ========================================================================== */
.responsive-video-container { position: relative; margin-bottom: 1em; padding-bottom: 56.25%; height: 0; overflow: hidden; max-width: 100%; }
.responsive-video-container iframe, .responsive-video-container object, .responsive-video-container embed { position: absolute; top: 0; inset-inline-start: 0; width: 100%; height: 100%; }

:-webkit-full-screen-ancestor .masthead, :-webkit-full-screen-ancestor .page__footer { position: static; }

/* Copy <pre> block to clipboard ========================================================================== */
.clipboard-helper { font-size: 12pt !important; border: 0 !important; padding: 0 !important; margin: 0 !important; outline: none !important; position: absolute; }

pre.highlight .clipboard-copy-button { color: #ffffca; }
pre .clipboard-copy-button { display: block; position: absolute; top: 0.6em; inset-inline-end: 0.5em; width: 1.8em; height: 1.5em; z-index: 1; background: none; border: none; outline: none; border-radius: 0.1em; padding: 0.2em 0.5em; opacity: 0.4; transition: color 0.25s linear -0.25s, opacity 0.25s linear; }
pre .clipboard-copy-button::before { content: ''; position: absolute; inset: 0; z-index: 2; }
pre .clipboard-copy-button i { position: absolute; top: 0.25em; inset-inline-end: 0.25em; }
pre .clipboard-copy-button i.copied { opacity: 0; }
pre .clipboard-copy-button.copied i { opacity: 0; }
pre .clipboard-copy-button.copied i.copied { opacity: 1; }
.no-copy pre .clipboard-copy-button { display: none; }
pre:hover .clipboard-copy-button { opacity: 1; }

/* Layout specific */
/* ========================================================================== SINGLE PAGE/POST ========================================================================== */
#main { clear: both; margin-inline: auto; padding-inline: 1em; -webkit-animation: intro 0.3s both; animation: intro 0.3s both; max-width: 100%; -webkit-animation-delay: 0.15s; animation-delay: 0.15s; }
#main::after { clear: both; content: ""; display: table; }
@media (min-width: 80em) { #main { max-width: 1280px; } }

body { display: -webkit-box; display: -ms-flexbox; display: flex; min-height: 100vh; -webkit-box-orient: vertical; -webkit-box-direction: normal; -ms-flex-direction: column; flex-direction: column; }

.initial-content, .search-content { flex: 1 0 auto; }

@media (min-width: 64em) { .page { float: inline-end; width: calc(100% - 200px); padding-inline-end: 200px; } }
@media (min-width: 80em) { .page { width: calc(100% - 300px); padding-inline-end: 300px; } }
.page .page__inner-wrap { float: inline-start; margin-top: 1em; margin-inline: 0; width: 100%; clear: both; }
.page .page__inner-wrap .page__content, .page .page__inner-wrap .page__meta, .page .page__inner-wrap .comment__date, .page .page__inner-wrap .page__share { position: relative; float: inline-start; margin-inline: 0; width: 100%; clear: both; }

.page__title { margin-top: 0; line-height: 1; }
.page__title a { color: #3d4144; text-decoration: none; }
.page__title + .page__meta, .page__title + .comment__date { margin-top: -0.5em; }

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

.page__content { /* paragraph indents */ /* blockquote citations */ /* vertical alignment for first content */ }
.page__content h2 { padding-bottom: 0.5em; border-bottom: 1px solid #f2f3f3; }
.page__content h1 .header-link, .page__content h2 .header-link, .page__content h3 .header-link, .page__content h4 .header-link, .page__content h5 .header-link, .page__content h6 .header-link { position: relative; inset-inline-start: 0.5em; opacity: 0; font-size: 0.8em; -webkit-transition: opacity 0.2s ease-in-out 0.1s; -moz-transition: opacity 0.2s ease-in-out 0.1s; -o-transition: opacity 0.2s ease-in-out 0.1s; transition: opacity 0.2s ease-in-out 0.1s; }
.page__content h1:hover .header-link, .page__content h2:hover .header-link, .page__content h3:hover .header-link, .page__content h4:hover .header-link, .page__content h5:hover .header-link, .page__content h6:hover .header-link { opacity: 1; }
.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:not(.btn):hover { text-decoration: underline; }
.page__content a:not(.btn):hover img { box-shadow: 0 0 10px rgba(0, 0, 0, 0.25); }
.page__content :not(pre) > code { padding-top: 0.1rem; padding-bottom: 0.1rem; font-size: 0.8em; background: #fafafa; border-radius: 4px; }
.page__content :not(pre) > code::before, .page__content :not(pre) > code::after { letter-spacing: -0.2em; content: "\00a0"; /* non-breaking space*/ }
.page__content dt { margin-top: 1em; font-family: -apple-system, BlinkMacSystemFont, "Roboto", "Segoe UI", "Helvetica Neue", "Lucida Grande", Arial, sans-serif; font-weight: bold; }
.page__content dd { margin-inline-start: 1em; font-family: -apple-system, BlinkMacSystemFont, "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-inline-start: 1.25rem; }
.page__content :first-child, .page__content aside + :nth-child(2) { margin-top: 0em; }

.page__hero { position: relative; margin-bottom: 2em; clear: both; -webkit-animation: intro 0.3s both; animation: intro 0.3s both; -webkit-animation-delay: 0.25s; 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; -webkit-animation: intro 0.3s both; animation: intro 0.3s both; -webkit-animation-delay: 0.25s; animation-delay: 0.25s; }
.page__hero--overlay::after { clear: both; content: ""; display: table; }
.page__hero--overlay a { color: #fff; }
.page__hero--overlay .wrapper { padding-inline: 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 { 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; inset-inline-end: 0; margin: 0 auto; padding: 2px 5px; color: #fff; font-family: Georgia, Times, serif; font-size: 0.6875em; background: #000; text-align: end; z-index: 5; opacity: 0.5; border-radius: 4px 0 0 0; }
@media (min-width: 64em) { .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 #f2f3f3; }
@media (max-width: 37.5em) { .page__share .btn 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: #646769; font-family: -apple-system, BlinkMacSystemFont, "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__meta-sep::before { content: "\2022"; padding-inline: 0.5em; }

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

.page__taxonomy-item { display: inline-block; margin-inline-end: 5px; margin-bottom: 8px; padding: 5px 10px; text-decoration: none; border: 1px solid #b6b6b6; border-radius: 4px; }
.page__taxonomy-item:hover { text-decoration: none; color: #235e70; }

.taxonomy__section { margin-bottom: 2em; padding-bottom: 1em; }
.taxonomy__section:not(:last-child) { border-bottom: solid 1px #f2f3f3; }
.taxonomy__section .archive__item-title { margin-top: 0; }
.taxonomy__section .archive__subtitle { clear: both; border: 0; }
.taxonomy__section + .taxonomy__section { margin-top: 2em; }

.taxonomy__title { margin-bottom: 0.5em; color: #646769; }

.taxonomy__count { color: #646769; }

.taxonomy__index { display: grid; grid-column-gap: 2em; grid-template-columns: repeat(2, 1fr); margin: 1.414em 0; padding: 0; font-size: 0.75em; list-style: none; }
@media (min-width: 64em) { .taxonomy__index { grid-template-columns: repeat(3, 1fr); } }
.taxonomy__index a { display: -webkit-box; display: -ms-flexbox; display: flex; padding: 0.25em 0; -webkit-box-pack: justify; -ms-flex-pack: justify; justify-content: space-between; color: inherit; text-decoration: none; border-bottom: 1px solid #f2f3f3; }

.back-to-top { display: block; clear: both; color: #646769; font-size: 0.6em; text-transform: uppercase; text-align: end; text-decoration: none; }

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

.page__comments-title { margin-top: 2rem; margin-bottom: 10px; padding-top: 2rem; font-size: 0.75em; border-top: 1px solid #f2f3f3; text-transform: uppercase; }

.page__comments-form { -webkit-transition: all 0.2s ease-in-out; 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 #f2f3f3; }

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

.comment__avatar { width: 40px; height: 40px; border-radius: 50%; }
@media (min-width: 64em) { .comment__avatar { width: 80px; height: 80px; padding: 5px; border: 1px solid #f2f3f3; } }

.comment__content-wrapper { float: inline-end; width: calc(100% - 60px); }
@media (min-width: 64em) { .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 { clear: both; float: inline-start; margin-top: 2em; padding-top: 1em; border-top: 1px solid #f2f3f3; }
.page__related::after { clear: both; content: ""; display: table; }
@media (min-width: 64em) { .page__related { float: inline-end; width: calc(100% - 200px); } }
@media (min-width: 80em) { .page__related { width: calc(100% - 300px); } }
.page__related a { color: inherit; text-decoration: none; }

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

/* Wide Pages ========================================================================== */
@media (min-width: 64em) { .wide .page, .wide .page__related { padding-inline-end: 0; } }
@media (min-width: 80em) { .wide .page, .wide .page__related { padding-inline-end: 0; } }

/* ========================================================================== ARCHIVE ========================================================================== */
.archive { margin-top: 1em; margin-bottom: 2em; }
@media (min-width: 64em) { .archive { float: inline-end; width: calc(100% - 200px); padding-inline-end: 200px; } }
@media (min-width: 80em) { .archive { width: calc(100% - 300px); padding-inline-end: 300px; } }

.archive__item { position: relative; }
.archive__item a { position: relative; z-index: 10; }
.archive__item a[rel="permalink"] { position: static; }

.archive__subtitle { margin: 1.414em 0 0.5em; padding-bottom: 0.5em; font-size: 1em; color: #646769; border-bottom: 1px solid #f2f3f3; }
.archive__subtitle + .list__item .archive__item-title { margin-top: 0.5em; }

.archive__item-title { margin-bottom: 0.25em; font-family: -apple-system, BlinkMacSystemFont, "Roboto", "Segoe UI", "Helvetica Neue", "Lucida Grande", Arial, sans-serif; line-height: initial; overflow: hidden; text-overflow: ellipsis; }
.archive__item-title a[rel="permalink"]::before { content: ''; position: absolute; inset: 0; }
.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-excerpt a { position: relative; }

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

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

/* List view ========================================================================== */
.list__item .page__meta, .list__item .comment__date { margin: 0 0 4px; font-size: 0.6em; }

/* Grid view ========================================================================== */
.archive .grid__wrapper { /* extend grid elements to the right */ }
@media (min-width: 64em) { .archive .grid__wrapper { margin-inline-end: -200px; } }
@media (min-width: 80em) { .archive .grid__wrapper { margin-inline-end: -300px; } }

.grid__item { margin-bottom: 2em; }
@media (min-width: 37.5em) { .grid__item { float: inline-start; width: 48.9795918367%; }
  .grid__item:nth-child(2n + 1) { clear: both; margin-inline-start: 0; }
  .grid__item:nth-child(2n + 2) { clear: none; margin-inline-start: 2.0408163265%; } }
@media (min-width: 48em) { .grid__item { margin-inline: 0; /* override margin*/ width: 23.7288135593%; }
  .grid__item:nth-child(2n + 1) { clear: none; }
  .grid__item:nth-child(4n + 1) { clear: both; }
  .grid__item:nth-child(4n + 2) { clear: none; margin-inline-start: 1.6949152542%; }
  .grid__item:nth-child(4n + 3) { clear: none; margin-inline-start: 1.6949152542%; }
  .grid__item:nth-child(4n + 4) { clear: none; margin-inline-start: 1.6949152542%; } }
.grid__item .page__meta, .grid__item .comment__date { margin: 0 0 4px; font-size: 0.6em; }
.grid__item .page__meta-sep { display: block; }
.grid__item .page__meta-sep::before { display: none; }
.grid__item .archive__item-title { margin-top: 0.5em; font-size: 1em; }
.grid__item .archive__item-excerpt { display: none; }
@media (min-width: 48em) { .grid__item .archive__item-excerpt { display: block; font-size: 0.75em; } }
@media (min-width: 37.5em) { .grid__item .archive__item-teaser { max-height: 200px; } }
@media (min-width: 48em) { .grid__item .archive__item-teaser { max-height: 120px; } }

/* Features ========================================================================== */
.feature__wrapper { clear: both; margin-bottom: 2em; border-bottom: 1px solid #f2f3f3; }
.feature__wrapper::after { clear: both; content: ""; display: table; }
.feature__wrapper .archive__item-title { margin-bottom: 0; }

.feature__item { position: relative; margin-bottom: 2em; font-size: 1.125em; }
@media (min-width: 37.5em) { .feature__item { float: inline-start; margin-bottom: 0; width: 32.2033898305%; }
  .feature__item:nth-child(3n + 1) { clear: both; margin-inline-start: 0; }
  .feature__item:nth-child(3n + 2) { clear: none; margin-inline-start: 1.6949152542%; }
  .feature__item:nth-child(3n + 3) { clear: none; margin-inline-start: 1.6949152542%; }
  .feature__item .feature__item-teaser { max-height: 200px; overflow: hidden; } }
.feature__item .archive__item-body { padding-inline: 1.6949152542%; }
.feature__item a.btn::before { content: ''; position: absolute; inset: 0; }
.feature__item--left, .feature__item--right { position: relative; margin-inline: 0; width: 100%; clear: both; font-size: 1.125em; }
.feature__item--left a.btn::before, .feature__item--right a.btn::before { content: ''; position: absolute; inset: 0; }
.feature__item--left .archive__item-teaser, .feature__item--right .archive__item-teaser { margin-bottom: 2em; }
.feature__item--left { float: inline-start; }
.feature__item--left .archive__item { float: inline-start; }
@media (min-width: 37.5em) { .feature__item--left .archive__item-teaser { float: inline-start; width: 40.6779661017%; }
  .feature__item--left .archive__item-body { float: inline-end; width: 57.6271186441%; padding-inline-start: 1.6949152542%; padding-inline-end: 1.6949152542%; } }
.feature__item--right { float: inline-end; }
.feature__item--right .archive__item { float: inline-end; }
@media (min-width: 37.5em) { .feature__item--right { text-align: end; }
  .feature__item--right .archive__item-teaser { float: inline-end; width: 40.6779661017%; }
  .feature__item--right .archive__item-body { float: inline-start; width: 57.6271186441%; padding-inline-start: 1.6949152542%; padding-inline-end: 1.6949152542%; } }
.feature__item--center { position: relative; float: inline-start; margin-inline: 0; width: 100%; clear: both; font-size: 1.125em; }
.feature__item--center .archive__item { float: inline-start; width: 100%; }
.feature__item--center .archive__item-teaser { margin-bottom: 2em; }
.feature__item--center a.btn::before { content: ''; position: absolute; inset: 0; }
@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%; } }

/* Place inside an archive layout */
.archive .feature__wrapper .archive__item-title { margin-top: 0.25em; font-size: 1em; }
.archive .feature__item, .archive .feature__item--left, .archive .feature__item--center, .archive .feature__item--right { font-size: 1em; }

/* Wide Pages ========================================================================== */
@media (min-width: 64em) { .wide .archive { padding-inline-end: 0; } }
@media (min-width: 80em) { .wide .archive { padding-inline-end: 0; } }

/* Place inside a single layout */
.layout--single .feature__wrapper { display: inline-block; }

/* ========================================================================== SIDEBAR ========================================================================== */
/* Default ========================================================================== */
.sidebar { clear: both; }
.sidebar::after { clear: both; content: ""; display: table; }
@media (min-width: 64em) { .sidebar { float: inline-start; width: calc(200px - 1em); opacity: 0.75; -webkit-transition: opacity 0.2s ease-in-out; transition: opacity 0.2s ease-in-out; }
  .sidebar:hover { opacity: 1; }
  .sidebar.sticky { overflow-y: auto; /* calculate height of nav list viewport height - nav height - masthead x-padding
*/ max-height: calc(100vh - 2em - 2em); } }
@media (min-width: 80em) { .sidebar { width: calc(300px - 1em); } }
.sidebar > * { margin-top: 1em; margin-bottom: 1em; }
.sidebar h2, .sidebar h3, .sidebar h4, .sidebar h5, .sidebar h6 { margin-bottom: 0; font-family: -apple-system, BlinkMacSystemFont, "Roboto", "Segoe UI", "Helvetica Neue", "Lucida Grande", Arial, sans-serif; }
.sidebar p, .sidebar li { font-family: -apple-system, BlinkMacSystemFont, "Roboto", "Segoe UI", "Helvetica Neue", "Lucida Grande", Arial, sans-serif; font-size: 0.75em; line-height: 1.5; }
.sidebar img { width: 100%; }
.sidebar img.emoji { width: 20px; height: 20px; }

.sidebar__right { margin-bottom: 1em; }
@media (min-width: 64em) { .sidebar__right { position: absolute; top: 0; inset-inline-end: 0; width: 200px; margin-inline-end: -200px; padding-inline-start: 1em; z-index: 10; }
  .sidebar__right.sticky { clear: both; position: -webkit-sticky; position: sticky; top: 2em; float: inline-end; }
  .sidebar__right.sticky::after { clear: both; content: ""; display: table; }
  .sidebar__right.sticky .toc .toc__menu { overflow-y: auto; max-height: calc(100vh - 7em); } }
@media (min-width: 80em) { .sidebar__right { width: 300px; margin-inline-end: -300px; } }

@media (min-width: 64em) { .splash .sidebar__right { position: relative; float: inline-end; margin-inline-end: 0; } }
@media (min-width: 80em) { .splash .sidebar__right { margin-inline-end: 0; } }

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

.author__content { display: table-cell; vertical-align: top; padding-inline: 15px 25px; line-height: 1; }
@media (min-width: 64em) { .author__content { display: block; width: 100%; padding-inline: 0; } }
.author__content a { color: inherit; text-decoration: none; }

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

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

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

.author__urls-wrapper { position: relative; display: table-cell; vertical-align: middle; font-family: -apple-system, BlinkMacSystemFont, "Roboto", "Segoe UI", "Helvetica Neue", "Lucida Grande", Arial, sans-serif; z-index: 20; cursor: pointer; }
.author__urls-wrapper li:last-child a { margin-bottom: 0; }
.author__urls-wrapper .author__urls span.label { padding-inline-start: 5px; }
@media (min-width: 64em) { .author__urls-wrapper { display: block; } }
.author__urls-wrapper button { position: relative; margin-bottom: 0; }
@supports (pointer-events: none) { .author__urls-wrapper button:before { content: ''; position: fixed; top: 0; inset-inline-start: 0; width: 100%; height: 100%; pointer-events: none; } }
.author__urls-wrapper button.open:before { pointer-events: auto; }
@media (min-width: 64em) { .author__urls-wrapper button { display: none; } }

.author__urls { display: none; position: absolute; inset-inline-end: 0; margin-top: 15px; padding: 10px; list-style-type: none; border: 1px solid #f2f3f3; border-radius: 4px; background: #fff; box-shadow: 0 2px 4px 0 rgba(0, 0, 0, 0.16), 0 2px 10px 0 rgba(0, 0, 0, 0.12); cursor: default; }
.author__urls.is--visible { display: block; }
@media (min-width: 64em) { .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; inset-inline-start: calc(50% - 10px); width: 0; border-style: solid; border-width: 0 10px 10px; border-color: #f2f3f3 transparent; z-index: 0; }
@media (min-width: 64em) { .author__urls::before { display: none; } }
.author__urls:after { display: block; content: ""; position: absolute; top: -10px; inset-inline-start: calc(50% - 10px); width: 0; border-style: solid; border-width: 0 10px 10px; border-color: #fff transparent; z-index: 1; }
@media (min-width: 64em) { .author__urls:after { display: none; } }
.author__urls ul { padding: 10px; list-style-type: none; }
.author__urls li { white-space: nowrap; }
.author__urls a { display: block; margin-bottom: 5px; padding-block: 2px; padding-inline-end: 5px; color: inherit; font-size: 1em; text-decoration: none; }
.author__urls a:hover { text-decoration: underline; }

/* Wide Pages ========================================================================== */
.wide .sidebar__right { margin-bottom: 1em; }
@media (min-width: 64em) { .wide .sidebar__right { position: initial; top: initial; inset-inline-end: initial; width: initial; margin-inline-end: initial; padding-inline-start: initial; z-index: initial; }
  .wide .sidebar__right.sticky { float: none; } }
@media (min-width: 80em) { .wide .sidebar__right { width: initial; margin-inline-end: initial; } }

/* ========================================================================== PRINT STYLES ========================================================================== */
@media print { [hidden] { display: none; }
  * { -moz-box-sizing: border-box; -webkit-box-sizing: border-box; box-sizing: border-box; }
  html { margin: 0; padding: 0; min-height: auto !important; font-size: 16px; }
  body { margin: 0 auto; background: #fff !important; color: #000 !important; font-size: 1rem; line-height: 1.5; -moz-osx-font-smoothing: grayscale; -webkit-font-smoothing: antialiased; text-rendering: optimizeLegibility; }
  h1, h2, h3, h4, h5, h6 { color: #000; line-height: 1.2; margin-bottom: 0.75rem; margin-top: 0; }
  h1 { font-size: 2.5rem; }
  h2 { font-size: 2rem; }
  h3 { font-size: 1.75rem; }
  h4 { font-size: 1.5rem; }
  h5 { font-size: 1.25rem; }
  h6 { font-size: 1rem; }
  a, a:visited { color: #000; text-decoration: underline; word-wrap: break-word; }
  table { border-collapse: collapse; }
  thead { display: table-header-group; }
  table, th, td { border-bottom: 1px solid #000; }
  td, th { padding: 8px 16px; }
  img { border: 0; display: block; max-width: 100% !important; vertical-align: middle; }
  hr { border: 0; border-bottom: 2px solid #bbb; height: 0; margin: 2.25rem 0; padding: 0; }
  dt { font-weight: bold; }
  dd { margin: 0; margin-bottom: 0.75rem; }
  abbr[title], acronym[title] { border: 0; text-decoration: none; }
  table, blockquote, pre, code, figure, li, hr, ul, ol, a, tr { page-break-inside: avoid; }
  h2, h3, h4, p, a { orphans: 3; widows: 3; }
  h1, h2, h3, h4, h5, h6 { page-break-after: avoid; page-break-inside: avoid; }
  h1 + p, h2 + p, h3 + p { page-break-before: avoid; }
  img { page-break-after: auto; page-break-before: auto; page-break-inside: avoid; }
  pre { white-space: pre-wrap !important; word-wrap: break-word; }
  a[href^='http://']:after, a[href^='https://']:after, a[href^='ftp://']:after { content: " (" attr(href) ")"; font-size: 80%; }
  abbr[title]:after, acronym[title]:after { content: " (" attr(title) ")"; }
  #main { max-width: 100%; }
  .page { margin: 0; padding: 0; width: 100%; }
  .page-break, .page-break-before { page-break-before: always; }
  .page-break-after { page-break-after: always; }
  .no-print { display: none; }
  a.no-reformat:after { content: ''; }
  abbr[title].no-reformat:after, acronym[title].no-reformat:after { content: ''; }
  .page__hero-caption { color: #000 !important; background: #fff !important; opacity: 1; }
  .page__hero-caption a { color: #000 !important; }
  /* Hide the following elements on print ========================================================================== */
  .masthead, .toc, .page__share, .page__related, .pagination, .ads, .page__footer, .page__comments-form, .author__avatar, .author__content, .author__urls-wrapper, .nav__list, .sidebar, .adsbygoogle { display: none !important; height: 1px !important; } }
/* Hide posts feed on home layout */
.home .list__item, .home .pagination { display: none !important; }

/* Hide RSS feed link from footer */
.page__footer-follow .fa-rss-square, .page__footer-follow a[href$="feed.xml"] { display: none !important; }

.research-map { margin: clamp(2rem, 4vw, 3.25rem) 0; display: grid; gap: clamp(2rem, 5vw, 3rem); }

.section-heading { max-width: 68ch; }

.research-trajectory-map { margin: clamp(1.5rem, 4vw, 2.5rem) auto; text-align: center; }

.research-trajectory-map img { width: 100%; height: auto; max-width: 62.5rem; border-radius: 0.75rem; box-shadow: none; }

@media (min-width: 48em) { .research-trajectory-map img { box-shadow: 0 1rem 2.5rem rgba(15, 23, 42, 0.15); } }
.research-map__group { display: grid; gap: clamp(1.5rem, 4vw, 2.5rem); }

.research-map__group > h3 { display: flex; gap: 0.75rem; align-items: flex-start; font-size: clamp(1.2rem, 3vw, 1.5rem); margin: 0; }

.research-map__label { display: inline-flex; align-items: center; justify-content: center; width: 2.25rem; height: 2.25rem; border-radius: 50%; background: rgba(42, 122, 226, 0.12); color: var(--global-link-color, #2a7ae2); font-weight: 700; flex: 0 0 auto; }

.research-map__cards { display: grid; gap: clamp(1.25rem, 3vw, 2rem); }

@media (min-width: 48em) { .research-map__cards { grid-template-columns: repeat(auto-fit, minmax(17rem, 1fr)); } }
.research-card { position: relative; display: flex; flex-direction: column; height: 100%; padding: clamp(1.5rem, 3vw, 1.75rem); border-radius: 0.9rem; background: #ffffff; border: 1px solid rgba(15, 23, 42, 0.08); box-shadow: 0 0.65rem 1.6rem rgba(15, 23, 42, 0.08); transition: transform 0.2s ease, box-shadow 0.2s ease; scroll-margin-top: 6rem; }

.research-card:hover, .research-card:focus-within { transform: translateY(-6px); box-shadow: 0 1rem 2.4rem rgba(15, 23, 42, 0.12); }

.research-card:target, .research-card:is(:focus, :focus-within) { position: relative; background: rgba(42, 122, 226, 0.08); border-color: rgba(42, 122, 226, 0.55); box-shadow: 0 1.2rem 2.8rem rgba(42, 122, 226, 0.25); outline: 4px solid rgba(42, 122, 226, 0.65); outline-offset: 4px; animation: research-card-highlight 2s ease-out 0s 1; }

.research-card h4 { margin: 0 0 0.75rem; font-size: 1.1rem; }

.research-card__highlights { margin: 0; color: var(--global-muted-text-color, #4a5568); line-height: 1.65; padding-left: 1rem; display: grid; gap: 0.45rem; }

.research-map__cards + .research-map__cards { margin-top: clamp(0.75rem, 2vw, 1.1rem); }

.research-card__highlights li { line-height: 1.65; }

.research-card__link { margin-top: auto; font-weight: 600; color: var(--global-link-color, #2a7ae2); text-decoration: none; display: inline-flex; align-items: center; gap: 0.35rem; }

.research-card__link::after { content: "→"; font-size: 0.95em; transition: transform 0.2s ease; }

.research-card__link:hover::after, .research-card__link:focus::__after { transform: translateX(2px); }

.research-card__link--placeholder { color: var(--global-muted-text-color, #718096); pointer-events: none; }

.methodology-hub { margin: clamp(3rem, 6vw, 4.5rem) 0 clamp(1rem, 4vw, 2.5rem); }

.methodology-hub__lead { max-width: 60ch; color: var(--global-muted-text-color, #4a5568); }

.methodology-hub__grid { display: grid; margin-top: clamp(1.5rem, 4vw, 2rem); gap: 1rem; }

@media (min-width: 42em) { .methodology-hub__grid { grid-template-columns: repeat(auto-fit, minmax(17rem, 1fr)); } }
.methodology-pill { position: relative; display: flex; flex-direction: column; gap: 0.4rem; padding: 1rem 1.25rem; border-radius: 0.85rem; border: 1px solid rgba(15, 23, 42, 0.08); background: rgba(42, 122, 226, 0.06); color: inherit; text-decoration: none; transition: transform 0.2s ease, box-shadow 0.2s ease, background 0.2s ease; }

.methodology-pill:hover, .methodology-pill:focus { transform: translateY(-4px); box-shadow: 0 1.5rem 3rem -1.75rem rgba(15, 23, 42, 0.45); background: rgba(42, 122, 226, 0.1); }

.masthead__menu-item.has-submenu { position: relative; }

.masthead__menu-item.has-submenu > a { display: inline-flex; align-items: center; gap: 0.35rem; }

.masthead__submenu-caret { font-size: 0.65em; transition: transform 0.2s ease; }

.masthead__menu-item.has-submenu:hover > a .masthead__submenu-caret, .masthead__menu-item.has-submenu:focus-within > a .masthead__submenu-caret { transform: rotate(180deg); }

.masthead__submenu { position: absolute; top: 100%; left: 0; display: grid; gap: 0.3rem; margin: 0; padding: 0.6rem 0.75rem; list-style: none; background: var(--global-bg-color, #ffffff); border: 1px solid rgba(15, 23, 42, 0.12); border-radius: 0.6rem; box-shadow: 0 1rem 2.4rem rgba(15, 23, 42, 0.12); min-width: max(12rem, 100%); opacity: 0; visibility: hidden; transform: translateY(-0.25rem); transition: opacity 0.18s ease, transform 0.18s ease; z-index: 20; }

.masthead__menu-item.has-submenu:hover > .masthead__submenu, .masthead__menu-item.has-submenu:focus-within > .masthead__submenu { opacity: 1; visibility: visible; transform: translateY(0); }

.masthead__submenu-item > a { display: block; padding: 0.35rem 0.5rem; white-space: nowrap; }

.masthead__submenu-item > a:hover, .masthead__submenu-item > a:focus { background: rgba(42, 122, 226, 0.1); border-radius: 0.35rem; }

.masthead__submenu-toggle { display: none; }

.site-chatbot { --chatbot-accent: #e05a2b; --chatbot-accent-deep: #1a3a6e; --chatbot-border: rgba(15, 23, 42, 0.12); --chatbot-shadow: 0 1.5rem 3rem rgba(15, 23, 42, 0.16); --chatbot-edge-gap: clamp(1rem, 2vw, 1.5rem); --chatbot-safe-top: max(5.35rem, calc(env(safe-area-inset-top) + 0.9rem)); position: fixed; right: var(--chatbot-edge-gap); bottom: var(--chatbot-edge-gap); z-index: 2147483600; display: grid; justify-items: end; gap: 0.85rem; }

.site-chatbot [hidden] { display: none !important; }

.site-chatbot__backdrop { position: fixed; inset: 0; border: 0; background: transparent; opacity: 0; pointer-events: none; }

.site-chatbot__launcher { display: inline-flex; align-items: center; gap: 0.65rem; border: 1px solid rgba(26, 58, 110, 0.12); border-radius: 999px; padding: 0.42rem 0.88rem 0.42rem 0.42rem; background: linear-gradient(180deg, rgba(255, 255, 255, 0.98) 0%, rgba(247, 251, 255, 0.96) 100%); color: #172033; box-shadow: 0 0.7rem 1.5rem rgba(15, 23, 42, 0.12); font: inherit; cursor: pointer; transition: border-color 0.2s ease, box-shadow 0.2s ease, transform 0.2s ease; }

.site-chatbot__launcher:hover, .site-chatbot__launcher:focus-visible { transform: translateY(-1px); border-color: rgba(224, 90, 43, 0.22); box-shadow: 0 0.85rem 1.65rem rgba(15, 23, 42, 0.14); }

.site-chatbot__launcher-icon { display: inline-flex; align-items: center; justify-content: center; width: 2.55rem; height: 2.55rem; border-radius: 50%; background: #eef3f4; border: 1px solid rgba(123, 156, 200, 0.18); flex: 0 0 auto; overflow: hidden; }

.site-chatbot__launcher-icon img { width: 100%; height: 100%; object-fit: cover; object-position: 58% 44%; transform: scale(1.35); }

.site-chatbot__launcher-text { font-size: 0.95rem; font-weight: 700; letter-spacing: 0.01em; }

.site-chatbot__panel { position: fixed; right: var(--chatbot-edge-gap); bottom: var(--chatbot-edge-gap); top: var(--chatbot-safe-top); width: min(25rem, calc(100vw - (2 * var(--chatbot-edge-gap)))); display: grid; grid-template-rows: auto auto minmax(0, 1fr) auto auto; overflow: hidden; border: 1px solid var(--chatbot-border); border-radius: 1.35rem; background: radial-gradient(circle at top right, rgba(224, 90, 43, 0.08), transparent 30%), linear-gradient(180deg, rgba(255, 250, 247, 0.98) 0%, rgba(255, 255, 255, 0.98) 100%); box-shadow: var(--chatbot-shadow); backdrop-filter: blur(12px); }

.site-chatbot__panel::before { content: ""; position: absolute; top: -1.6rem; right: -3.2rem; width: 14rem; height: 10rem; background-image: url("/assets/images/avatar-placeholder.svg"); background-size: cover; background-position: 58% 43%; opacity: 0.18; filter: saturate(0.9) contrast(0.95); pointer-events: none; -webkit-mask-image: radial-gradient(ellipse at 58% 45%, #000 0%, rgba(0, 0, 0, 0.72) 38%, transparent 73%); mask-image: radial-gradient(ellipse at 58% 45%, #000 0%, rgba(0, 0, 0, 0.72) 38%, transparent 73%); }

.site-chatbot__panel > * { position: relative; z-index: 1; }

.site-chatbot__header { display: flex; align-items: flex-start; justify-content: space-between; gap: 1rem; padding: 1.1rem 1.15rem 0.9rem; border-bottom: 1px solid rgba(15, 23, 42, 0.08); }

.site-chatbot__header-top { display: flex; align-items: center; gap: 0.55rem; flex-wrap: wrap; }

.site-chatbot__eyebrow { margin: 0 0 0.25rem; font-size: 0.7rem; font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase; color: #8a97ab; }

.site-chatbot__mode { display: inline-flex; align-items: center; min-height: 1.45rem; padding: 0.1rem 0.5rem; border-radius: 999px; background: rgba(26, 58, 110, 0.08); border: 1px solid rgba(26, 58, 110, 0.12); color: #36527d; font-size: 0.68rem; font-weight: 700; letter-spacing: 0.04em; text-transform: uppercase; }

.site-chatbot__mode.is-degraded { background: rgba(224, 90, 43, 0.1); border-color: rgba(224, 90, 43, 0.16); color: #a64e26; }

.site-chatbot__mode.is-live { background: rgba(39, 104, 75, 0.1); border-color: rgba(39, 104, 75, 0.18); color: #27684b; }

.site-chatbot__title { margin: 0; font-family: Lora, serif; font-size: 1.25rem; line-height: 1.2; color: #182132; }

.site-chatbot__spark { display: inline-grid; grid-template-columns: repeat(2, 0.36rem); gap: 0.12rem; margin-left: 0.38rem; vertical-align: 0.08rem; }

.site-chatbot__spark span { width: 0.36rem; height: 0.36rem; border-radius: 50%; }

.site-chatbot__spark span:nth-child(1) { background: #7b9cc8; }

.site-chatbot__spark span:nth-child(2) { background: #c8868e; }

.site-chatbot__spark span:nth-child(3) { background: #82b896; }

.site-chatbot__spark span:nth-child(4) { background: #d1a760; }

.site-chatbot__subtitle { margin: 0.22rem 0 0; font-size: 0.86rem; line-height: 1.5; color: #5e6b7d; }

.site-chatbot__header-actions { display: inline-flex; align-items: center; gap: 0.45rem; }

.site-chatbot__reset { display: inline-flex; align-items: center; min-height: 1.9rem; padding: 0.2rem 0.7rem; border-radius: 999px; border: 1px solid rgba(15, 23, 42, 0.08); background: rgba(255, 255, 255, 0.86); color: #4d5d71; font: inherit; font-size: 0.74rem; font-weight: 700; cursor: pointer; transition: border-color 0.2s ease, background 0.2s ease, color 0.2s ease; }

.site-chatbot__reset:hover, .site-chatbot__reset:focus-visible { border-color: rgba(42, 122, 226, 0.18); background: rgba(238, 245, 255, 0.96); color: #1f4f87; }

.site-chatbot__reset:disabled { opacity: 0.55; cursor: wait; }

.site-chatbot__close { border: 0; background: transparent; color: #728092; font-size: 1.8rem; line-height: 1; cursor: pointer; padding: 0; }

.site-chatbot__contacts { display: flex; flex-wrap: wrap; align-items: flex-start; gap: 0.4rem; padding: 0.55rem 1rem 0.15rem; }

.site-chatbot__contact-chip { display: inline-flex; align-items: center; align-self: flex-start; min-height: 1.8rem; padding: 0.22rem 0.68rem; border-radius: 999px; border: 1px solid rgba(15, 23, 42, 0.08); background: rgba(255, 255, 255, 0.92); color: #243143; text-decoration: none; font-size: 0.74rem; line-height: 1.2; font-weight: 700; transition: border-color 0.2s ease, background 0.2s ease, transform 0.2s ease; }

.site-chatbot__contact-chip:hover, .site-chatbot__contact-chip:focus-visible, .site-chatbot__contacts.is-emphasized .site-chatbot__contact-chip { background: rgba(255, 248, 244, 0.98); border-color: rgba(224, 90, 43, 0.24); transform: translateY(-1px); }

.site-chatbot__messages { display: grid; gap: 0.85rem; padding: 1rem 1rem 0.5rem; overflow-y: auto; }

.site-chatbot__message { display: flex; }

.site-chatbot__message--user { justify-content: flex-end; }

.site-chatbot__message--assistant { justify-content: flex-start; }

.site-chatbot__bubble { max-width: 90%; padding: 0.85rem 0.95rem; border-radius: 1rem; background: #fff; border: 1px solid rgba(15, 23, 42, 0.08); box-shadow: 0 0.4rem 1rem rgba(15, 23, 42, 0.05); }

.site-chatbot__message--user .site-chatbot__bubble { background: linear-gradient(135deg, #eef5ff 0%, #f9fbff 100%); border-color: rgba(42, 122, 226, 0.18); }

.site-chatbot__bubble p { margin: 0; font-size: 0.92rem; line-height: 1.65; color: #243143; }

.site-chatbot__bubble p + p { margin-top: 0.7rem; }

.site-chatbot__list { margin: 0.55rem 0 0; padding-left: 1.1rem; }

.site-chatbot__list li { margin: 0.35rem 0 0; color: #243143; font-size: 0.9rem; line-height: 1.55; }

.site-chatbot__list li::marker { color: #8d4f33; }

.site-chatbot__bubble--typing { display: inline-flex; align-items: center; gap: 0.32rem; }

.site-chatbot__bubble--typing span { width: 0.45rem; height: 0.45rem; border-radius: 50%; background: #7b9cc8; animation: chatbot-typing 1.2s infinite ease-in-out; }

.site-chatbot__bubble--typing span:nth-child(2) { background: #c8868e; animation-delay: 0.15s; }

.site-chatbot__bubble--typing span:nth-child(3) { background: #82b896; animation-delay: 0.3s; }

.site-chatbot__bubble--typing::after { content: ""; width: 0.45rem; height: 0.45rem; border-radius: 50%; background: #d1a760; animation: chatbot-typing 1.2s infinite ease-in-out; animation-delay: 0.45s; }

.site-chatbot__sources { display: grid; gap: 0.45rem; margin-top: 0.9rem; }

.site-chatbot__source { display: grid; gap: 0.18rem; padding: 0.65rem 0.75rem; border-radius: 0.8rem; background: rgba(248, 250, 252, 0.95); color: inherit; text-decoration: none; border: 1px solid rgba(15, 23, 42, 0.08); transition: border-color 0.2s ease, background 0.2s ease, transform 0.2s ease; }

.site-chatbot__source-kind { display: inline-flex; width: fit-content; min-height: 1.3rem; padding: 0.08rem 0.42rem; border-radius: 999px; background: rgba(26, 58, 110, 0.08); color: #4b688f; font-size: 0.62rem; font-weight: 700; letter-spacing: 0.05em; text-transform: uppercase; }

.site-chatbot__source strong { font-size: 0.84rem; color: #182132; }

.site-chatbot__source span { font-size: 0.79rem; line-height: 1.45; color: #5f6b7c; }

.site-chatbot__source:hover, .site-chatbot__source:focus-visible { border-color: rgba(224, 90, 43, 0.24); background: rgba(255, 248, 244, 0.98); transform: translateY(-1px); }

.site-chatbot__suggestions { display: flex; flex-wrap: wrap; gap: 0.45rem; padding: 0.35rem 1rem 0.85rem; }

.site-chatbot__suggestions.is-condensed { opacity: 0.5; }

.site-chatbot__suggestion { border: 1px solid rgba(15, 23, 42, 0.08); border-radius: 999px; background: rgba(255, 255, 255, 0.8); color: #314156; padding: 0.45rem 0.7rem; font: inherit; font-size: 0.76rem; line-height: 1.3; cursor: pointer; }

.site-chatbot__suggestion:hover, .site-chatbot__suggestion:focus-visible { border-color: rgba(42, 122, 226, 0.2); background: rgba(238, 245, 255, 0.95); }

.site-chatbot__composer { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 0.7rem; padding: 0 1rem 0.85rem; }

.site-chatbot__input { min-height: 3rem; max-height: 8.75rem; resize: none; border-radius: 0.95rem; border: 1px solid rgba(15, 23, 42, 0.12); background: rgba(255, 255, 255, 0.95); padding: 0.8rem 0.9rem; font: inherit; font-size: 0.92rem; line-height: 1.5; }

.site-chatbot__input:focus { outline: 2px solid rgba(42, 122, 226, 0.2); outline-offset: 2px; }

.site-chatbot__send { align-self: end; min-width: 5.1rem; border: 0; border-radius: 0.95rem; background: linear-gradient(135deg, var(--chatbot-accent) 0%, #c4481c 100%); color: #fff; padding: 0.78rem 0.95rem; font: inherit; font-size: 0.88rem; font-weight: 700; cursor: pointer; }

.site-chatbot__send:disabled { cursor: wait; opacity: 0.7; }

.site-chatbot__fine-print { margin: 0; padding: 0 1rem 1rem; font-size: 0.75rem; line-height: 1.5; color: #7b8797; }

.site-chatbot.is-open .site-chatbot__launcher { opacity: 0; pointer-events: none; transform: translateY(0.5rem); }

.site-chatbot.is-open .site-chatbot__backdrop { opacity: 0; }

@keyframes chatbot-typing { 0%,
  80%,
  100% { transform: translateY(0); opacity: 0.4; }
  40% { transform: translateY(-0.18rem); opacity: 1; } }
@media (max-width: 48em) { .masthead__menu-item.has-submenu { position: static; border-bottom: 1px solid rgba(15, 23, 42, 0.08); }
  .masthead__submenu { max-height: 0; overflow: hidden; opacity: 0; visibility: hidden; padding: 0 0 0.35rem; box-shadow: none; border: 0; transform: none; background: transparent; transition: max-height 0.25s ease, opacity 0.25s ease; }
  .masthead__menu-item.has-submenu.open > .masthead__submenu { max-height: 18rem; opacity: 1; visibility: visible; }
  .masthead__submenu-item > a { padding: 0.25rem 0; display: block; }
  .masthead__submenu-toggle { display: inline-flex; align-items: center; justify-content: center; margin-left: auto; margin-top: 0.35rem; width: 2.15rem; height: 2.15rem; border-radius: 50%; border: 1px solid rgba(15, 23, 42, 0.12); background: rgba(42, 122, 226, 0.08); color: var(--global-link-color, #2a7ae2); font-weight: 600; font-size: 0.75rem; }
  .masthead__submenu-toggle::before { content: "+"; transition: transform 0.25s ease; }
  .masthead__menu-item.has-submenu.open .masthead__submenu-toggle::before { transform: rotate(45deg); }
  .site-chatbot { --chatbot-edge-gap: 0.85rem; --chatbot-safe-top: max(5rem, calc(env(safe-area-inset-top) + 0.75rem)); left: 0.85rem; right: 0.85rem; bottom: 0.85rem; justify-items: stretch; }
  .site-chatbot__panel { left: var(--chatbot-edge-gap); right: var(--chatbot-edge-gap); bottom: var(--chatbot-edge-gap); top: var(--chatbot-safe-top); width: 100%; }
  .site-chatbot__launcher { justify-content: center; }
  .site-chatbot__backdrop { background: transparent; }
  .site-chatbot__contacts { padding-top: 0.65rem; }
  .site-chatbot__header-actions { gap: 0.3rem; }
  .site-chatbot__reset { padding-inline: 0.55rem; } }
html.mobile-nav-lock { overflow: hidden; }

html.chatbot-lock { overflow: hidden; }

.mobile-nav { display: none; }

@media (max-width: 48em) { .masthead__menu { width: 100%; }
  html.mobile-nav-ready .greedy-nav { display: none; }
  html.mobile-nav-ready .mobile-nav { display: block; position: relative; background: var(--global-bg-color, #ffffff); border-bottom: 1px solid rgba(223, 231, 240, 0.86); border-radius: 0; box-shadow: 0 0.45rem 1.4rem rgba(15, 23, 42, 0.045); overflow: visible; }
  .mobile-nav.is-open { z-index: 2147483647; }
  .mobile-nav__bar { display: flex; align-items: center; justify-content: space-between; gap: 0.8rem; padding: 0.75rem clamp(1rem, 5vw, 1.35rem); }
  .mobile-nav__brand { display: inline-flex; align-items: center; gap: 0.85rem; min-width: 0; text-decoration: none; color: var(--global-text-color, #1a202c); }
  .mobile-nav__brand-logo { display: inline-flex; align-items: center; justify-content: center; width: 2.15rem; height: 2.15rem; border-radius: 50%; background: transparent; overflow: hidden; }
  .mobile-nav__brand-logo img { display: block; width: 100%; height: 100%; object-fit: contain; }
  .mobile-nav__brand-text { display: inline-flex; flex-direction: column; gap: 0.18rem; min-width: 0; font-weight: 700; letter-spacing: 0; line-height: 1.15; }
  .mobile-nav__brand-subtitle { font-size: 0.72rem; font-weight: 500; color: var(--global-muted-text-color, #4a5568); }
  .mobile-nav__actions { display: inline-flex; align-items: center; gap: 0.45rem; flex-shrink: 0; }
  .mobile-nav__lang { width: 2.35rem; height: 2.05rem; margin: 0; padding: 0; font-size: 0.82rem; }
  .mobile-nav__toggle { position: relative; display: inline-flex; align-items: center; justify-content: center; width: 2.35rem; height: 2.05rem; border-radius: 999px; border: 1px solid rgba(190, 202, 216, 0.92); background: #fff; color: #4f5964; cursor: pointer; transition: background 0.2s ease, transform 0.2s ease, box-shadow 0.2s ease, color 0.2s ease; box-shadow: none; }
  .mobile-nav__toggle:hover { background: #f7fafc; }
  .mobile-nav__toggle:focus-visible { outline: none; box-shadow: 0 0 0 3px rgba(42, 122, 226, 0.35); }
  .mobile-nav__toggle:active { transform: scale(0.96); }
  .mobile-nav__toggle-icon, .mobile-nav__toggle-icon::before, .mobile-nav__toggle-icon::after { content: ""; display: block; width: 1.15rem; height: 2px; background: currentColor; border-radius: 999px; transition: transform 0.2s ease, opacity 0.2s ease; }
  .mobile-nav__toggle-icon { position: relative; }
  .mobile-nav__toggle-icon::before, .mobile-nav__toggle-icon::after { position: absolute; left: 0; }
  .mobile-nav__toggle-icon::before { top: -0.35rem; }
  .mobile-nav__toggle-icon::after { top: 0.35rem; }
  .mobile-nav__overlay { position: fixed; inset: 0; background: rgba(31, 41, 55, 0.34); backdrop-filter: blur(2px); z-index: 2147483646; opacity: 0; transition: opacity 0.25s ease; pointer-events: none; }
  .mobile-nav__panel { position: fixed; top: 0; right: 0; width: min(21rem, 90vw); height: 100vh; background: rgba(255, 255, 255, 0.98); border-left: 1px solid rgba(223, 231, 240, 0.95); border-radius: 1rem 0 0 1rem; box-shadow: none; transform: translateX(100%); transition: transform 0.32s cubic-bezier(0.22, 1, 0.36, 1); z-index: 2147483647; display: flex; flex-direction: column; padding: clamp(1.25rem, 6vw, 1.8rem) clamp(1.15rem, 6vw, 1.6rem); gap: 1rem; overflow-y: auto; }
  .mobile-nav__panel-header { display: flex; align-items: center; justify-content: space-between; gap: 0.85rem; padding-bottom: 1rem; border-bottom: 1px solid rgba(15, 23, 42, 0.08); }
  .mobile-nav__panel-title { font-size: 0.78rem; font-weight: 700; color: #6d7885; letter-spacing: 0.14em; text-transform: uppercase; }
  .mobile-nav__close { display: inline-flex; align-items: center; justify-content: center; width: 2.6rem; height: 2.6rem; border-radius: 50%; border: 0; background: transparent; color: var(--global-muted-text-color, #4a5568); cursor: pointer; position: relative; transition: color 0.2s ease, transform 0.2s ease, box-shadow 0.2s ease; box-shadow: inset 0 0 0 1px rgba(15, 23, 42, 0.08); }
  .mobile-nav__close:hover { color: var(--global-link-color, #2a7ae2); box-shadow: inset 0 0 0 1px rgba(42, 122, 226, 0.35); }
  .mobile-nav__close:focus-visible { outline: none; box-shadow: inset 0 0 0 2px rgba(42, 122, 226, 0.45); }
  .mobile-nav__close:active { transform: scale(0.95); }
  .mobile-nav__close::before, .mobile-nav__close::after { content: ""; position: absolute; width: 1.05rem; height: 2px; background: currentColor; border-radius: 999px; }
  .mobile-nav__close::before { transform: rotate(45deg); }
  .mobile-nav__close::after { transform: rotate(-45deg); }
  .mobile-nav__list { list-style: none; margin: 0; padding: 0; display: grid; gap: 0; flex: 1 1 auto; }
  .mobile-nav__item { display: block; }
  .mobile-nav__item.has-children { display: grid; gap: 0.55rem; }
  .mobile-nav__link { font-size: 1.04rem; font-weight: 600; text-decoration: none; color: var(--global-text-color, #1a202c); display: flex; align-items: center; justify-content: space-between; gap: 0.75rem; padding: 0.9rem 0; border-radius: 0; border-bottom: 1px solid rgba(223, 231, 240, 0.82); background: transparent; box-shadow: none; transition: color 0.2s ease; }
  .mobile-nav__link::after { content: "›"; font-size: 1.2rem; font-weight: 600; color: #93a1b0; transition: transform 0.2s ease, color 0.2s ease; }
  .mobile-nav__link:hover, .mobile-nav__link:focus { background: transparent; color: #2f7f97; box-shadow: none; }
  .mobile-nav__link:hover::after, .mobile-nav__link:focus::after { transform: translateX(2px); color: currentColor; }
  .mobile-nav__sublist { list-style: none; margin: 0; padding: 0.45rem 0 0.45rem 0.9rem; display: grid; gap: 0.45rem; border-left: 1px dashed rgba(47, 127, 151, 0.25); }
  .mobile-nav__sublink { font-size: 0.96rem; color: var(--global-muted-text-color, #4a5568); text-decoration: none; padding: 0.35rem 0 0.35rem 0.45rem; border-radius: 0.6rem; transition: color 0.2s ease, background 0.2s ease, transform 0.2s ease; display: inline-flex; align-items: center; gap: 0.35rem; }
  .mobile-nav__sublink::before { content: ""; width: 0.4rem; height: 0.4rem; border-radius: 999px; background: currentColor; opacity: 0.45; transition: opacity 0.2s ease; }
  .mobile-nav__sublink:hover, .mobile-nav__sublink:focus { color: #2f7f97; background: transparent; transform: translateX(2px); }
  .mobile-nav__sublink:hover::before, .mobile-nav__sublink:focus::before { opacity: 1; }
  .mobile-nav.is-open .mobile-nav__overlay { opacity: 1; pointer-events: auto; }
  .mobile-nav.is-open .mobile-nav__panel { transform: translateX(0); box-shadow: -1.5rem 0 3rem rgba(15, 23, 42, 0.12); }
  .mobile-nav.is-open .mobile-nav__toggle { background: #f7fafc; color: var(--global-text-color, #1a202c); }
  .mobile-nav.is-open .mobile-nav__toggle-icon { background: transparent; }
  .mobile-nav.is-open .mobile-nav__toggle-icon::before { transform: translateY(0.35rem) rotate(45deg); }
  .mobile-nav.is-open .mobile-nav__toggle-icon::after { transform: translateY(-0.35rem) rotate(-45deg); }
  .sidebar .author__bio { max-width: 16rem; font-size: 0.92rem; line-height: 1.48; overflow-wrap: normal; word-break: normal; }
  .sidebar .author__bio br { display: block; margin-bottom: 0.18rem; content: ""; } }
.sidebar .author__bio .author-role { display: inline-block; max-width: 16.5rem; margin-bottom: 0.04rem; color: #50667b; font-weight: 650; line-height: 1.35; }

.sidebar .author__bio .author-tagline { display: inline-block; max-width: 16.5rem; margin: 0.08rem 0 0.12rem; color: #667482; font-size: 0.9em; line-height: 1.45; font-weight: 500; }

.sidebar .author__bio .author-tagline__keyword { font-weight: 650; }

.sidebar .author__bio .author-tagline__keyword--ai { color: #3f8795; }

.sidebar .author__bio .author-tagline__keyword--agency { color: #587eaf; }

.sidebar .author__bio .author-tagline__keyword--sdl { color: #4f8a68; }

.js-typewriter--typing::after, .js-typewriter--done::after { content: ""; display: inline-block; width: 0.08em; height: 1em; margin-left: 0.08em; background: currentColor; vertical-align: -0.12em; }

.js-typewriter--typing::after { animation: site-caret-blink 0.82s steps(1, end) infinite; }

.js-typewriter--done::after { opacity: 0; transition: opacity 0.35s ease; }

@keyframes site-caret-blink { 0%, 49% { opacity: 1; }
  50%, 100% { opacity: 0; } }
.teaching-intro { max-width: 50rem; margin: 0 0 clamp(1.25rem, 3vw, 1.9rem); }

.teaching-intro p { margin: 0; font-size: clamp(17px, 1.05vw, 19px); line-height: 1.72; color: var(--global-muted-text-color, #4a5568); }

.teaching-overview { display: grid; gap: clamp(0.95rem, 2.6vw, 1.35rem); margin: clamp(1.25rem, 3vw, 2rem) 0 clamp(2rem, 5vw, 2.8rem); }

@media (min-width: 52em) { .teaching-overview { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
.teaching-overview__card { padding: 1.05rem 1.1rem 1.1rem; border-radius: 1.05rem; border: 1px solid rgba(226, 232, 240, 0.92); background: linear-gradient(180deg, rgba(248, 250, 252, 0.82) 0%, rgba(255, 255, 255, 0.98) 100%); box-shadow: 0 0.9rem 2.4rem rgba(15, 23, 42, 0.05); }

.page__content .teaching-overview__card h3 { margin: 0 0 0.5rem; font-size: 18px; color: var(--global-text-color, #2d3748); }

.teaching-overview__card p { margin: 0; font-size: 16px; line-height: 1.6; color: var(--global-muted-text-color, #4a5568); }

.teaching-panels { display: grid; gap: clamp(1.15rem, 3vw, 1.85rem); margin: clamp(1.15rem, 3vw, 1.85rem) 0; }

@media (min-width: 62em) { .teaching-panels--two { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.teaching-panel { padding: clamp(1rem, 2.6vw, 1.35rem); border-radius: 1.1rem; border: 1px solid rgba(226, 232, 240, 0.92); background: linear-gradient(180deg, rgba(248, 250, 252, 0.7) 0%, rgba(255, 255, 255, 0.98) 100%); box-shadow: 0 1rem 2.8rem rgba(15, 23, 42, 0.06); display: grid; gap: 1rem; margin: clamp(1.15rem, 3vw, 1.85rem) 0; }

.teaching-panels > .teaching-panel { margin: 0; }

.teaching-panel__media { display: grid; gap: 0.75rem; align-content: start; }

.teaching-panel__hero, .teaching-panel__thumb, .teaching-panel__thumbs { margin: 0; }

.teaching-panel__hero img, .teaching-panel__img { width: 100%; display: block; border-radius: 1rem; box-shadow: 0 1rem 2.6rem rgba(15, 23, 42, 0.11); background: #fff; }

.teaching-panel__hero img { height: auto; object-fit: cover; }

.teaching-panel__thumbs { display: grid; gap: 0.75rem; }

.teaching-panel__img { aspect-ratio: 16 / 10; object-fit: cover; }

.teaching-panel__hero figcaption, .teaching-panel__thumb figcaption { margin-top: 0.45rem; font-size: 13px; line-height: 1.45; color: var(--global-muted-text-color, #4a5568); }

.teaching-panel__body { display: grid; gap: 0.72rem; min-width: 0; }

.teaching-panel__eyebrow { margin: 0; font-size: 12px; font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase; color: #7a8898; }

.page__content .teaching-panel__body h3 { margin: 0; font-size: clamp(20px, 1.25vw, 23px); color: var(--global-text-color, #2d3748); }

.teaching-panel__body p, .teaching-panel__body ul { margin: 0; font-size: clamp(16px, 0.96vw, 17px); line-height: 1.68; color: var(--global-muted-text-color, #4a5568); }

.teaching-panel__body ul { padding-left: 1.1rem; display: grid; gap: 0.7rem; }

.teaching-panel__body li { margin: 0; }

@media (min-width: 62em) { .teaching-panel--feature { grid-template-columns: minmax(250px, 320px) minmax(0, 1fr); align-items: start; gap: clamp(1rem, 2vw, 1.5rem); } }
.teaching-photo-grid { display: grid; gap: clamp(1rem, 3vw, 1.75rem); margin: clamp(1.5rem, 4vw, 2.5rem) 0; width: 100%; }

@media (min-width: 40em) { .teaching-photo-grid { grid-template-columns: repeat(auto-fit, minmax(16rem, 1fr)); align-items: start; } }
.teaching-photo-grid--wide { grid-template-columns: repeat(auto-fit, minmax(20rem, 1fr)); }

.teaching-photo { margin: 0; display: flex; flex-direction: column; gap: 0.9rem; width: 100%; max-width: 22rem; }

.teaching-photo-grid--triple { grid-template-columns: repeat(3, minmax(0, 1fr)); justify-items: center; }

@media (max-width: 48em) { .teaching-photo-grid--triple { grid-template-columns: repeat(auto-fit, minmax(15rem, 1fr)); } }
.teaching-photo__media { position: relative; overflow: hidden; border-radius: 1rem; box-shadow: 0 1.25rem 3rem rgba(15, 23, 42, 0.12); width: 100%; padding-bottom: 75%; }

.teaching-photo__media img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; display: block; }

.teaching-photo figcaption { text-align: left; color: var(--global-muted-text-color, #4a5568); }

.teaching-photo figcaption h4 { margin: 0; font-size: 1.05rem; font-weight: 600; color: var(--global-text-color, #2d3748); }

.teaching-photo figcaption p { margin: 0.35rem 0 0; font-size: 0.95rem; line-height: 1.5; color: var(--global-muted-text-color, #4a5568); }

.teaching-highlight { display: flex; flex-direction: column; gap: clamp(1.25rem, 3vw, 2rem); margin: clamp(1.5rem, 4vw, 2.5rem) 0; }

@media (min-width: 56em) { .teaching-highlight { flex-direction: row; align-items: flex-start; } }
.teaching-highlight__content { flex: 1 1 0; }

.teaching-highlight__list { margin: 0; padding-left: 1.2rem; display: grid; gap: 0.85rem; }

.teaching-highlight__list li { margin: 0; line-height: 1.6; }

.teaching-highlight__media { flex: 0 0 clamp(16rem, 28vw, 20rem); margin: 0; display: grid; gap: 0.65rem; text-align: left; color: var(--global-muted-text-color, #4a5568); }

.teaching-highlight__media img { width: 100%; height: auto; border-radius: 1rem; box-shadow: 0 1.25rem 3rem rgba(15, 23, 42, 0.12); display: block; }

.teaching-highlight__media figcaption { font-size: 0.9rem; line-height: 1.45; }

.service-grid { display: grid; gap: clamp(1.25rem, 3vw, 2rem); margin: clamp(1.5rem, 4vw, 2.5rem) 0; }

@media (min-width: 52em) { .service-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); align-items: start; } }
.service-grid--reviews { align-items: stretch; }

@media (min-width: 64em) { .service-grid--reviews { grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr) minmax(14rem, 0.9fr); gap: clamp(1.5rem, 4vw, 2.6rem); } }
.service-grid__media { display: grid; gap: 1rem; }

.service-grid__media img { width: 100%; height: auto; border-radius: 1rem; box-shadow: 0 1.25rem 3rem rgba(15, 23, 42, 0.12); display: block; }

.service-grid__column h4 { margin: 0 0 0.6rem; font-size: 1.05rem; color: var(--global-text-color, #2d3748); }

.service-grid__column ul { margin: 0 0 1.1rem 1.1rem; padding: 0; display: grid; gap: 0.45rem; }

.service-overview { display: grid; gap: clamp(0.95rem, 2.6vw, 1.35rem); margin: clamp(1.25rem, 3vw, 2rem) 0 clamp(2rem, 5vw, 2.8rem); }

.service-intro { max-width: 50rem; margin: 0 0 clamp(1.25rem, 3vw, 1.9rem); }

.service-intro p { margin: 0; font-size: clamp(17px, 1.05vw, 19px); line-height: 1.72; color: var(--global-muted-text-color, #4a5568); }

@media (min-width: 52em) { .service-overview { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
.service-overview__card { padding: 1.05rem 1.1rem 1.1rem; border-radius: 1.05rem; border: 1px solid rgba(226, 232, 240, 0.92); background: linear-gradient(180deg, rgba(248, 250, 252, 0.82) 0%, rgba(255, 255, 255, 0.98) 100%); box-shadow: 0 0.9rem 2.4rem rgba(15, 23, 42, 0.05); }

.page__content .service-overview__card h3 { margin: 0 0 0.5rem; font-size: 18px; color: var(--global-text-color, #2d3748); }

.service-overview__card p { margin: 0; font-size: 16px; line-height: 1.6; color: var(--global-muted-text-color, #4a5568); }

.service-panels { display: grid; gap: clamp(1.15rem, 3vw, 1.85rem); margin: clamp(1.15rem, 3vw, 1.85rem) 0; }

@media (min-width: 62em) { .service-panels--two { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.service-panel { padding: clamp(1rem, 2.6vw, 1.35rem); border-radius: 1.1rem; border: 1px solid rgba(226, 232, 240, 0.92); background: linear-gradient(180deg, rgba(248, 250, 252, 0.76) 0%, rgba(255, 255, 255, 0.98) 100%); box-shadow: 0 1rem 2.8rem rgba(15, 23, 42, 0.07); display: grid; gap: 1rem; margin: clamp(1.15rem, 3vw, 1.85rem) 0; }

.service-panels > .service-panel { margin: 0; }

.service-panel__media { display: grid; gap: 0.75rem; align-content: start; }

.service-panel__media--duo { grid-template-columns: repeat(2, minmax(0, 1fr)); }

.service-panel__hero, .service-panel__thumbs { margin: 0; }

.service-panel__thumbs { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0.75rem; }

.service-panel__hero img, .service-panel__img { width: 100%; display: block; border-radius: 1rem; box-shadow: 0 1rem 2.6rem rgba(15, 23, 42, 0.11); background: #fff; }

.service-panel__hero img { height: auto; object-fit: cover; }

.service-panel__img { aspect-ratio: 4 / 3; object-fit: cover; }

.service-panel__img--contain { object-fit: contain; border: 1px solid rgba(226, 232, 240, 0.9); padding: 0.2rem; }

.service-panel__body { display: grid; gap: 0.72rem; }

.service-panel__eyebrow { margin: 0; font-size: 12px; font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase; color: #7a8898; }

.page__content .service-panel__body h3 { margin: 0; font-size: clamp(19px, 1.25vw, 22px); color: var(--global-text-color, #2d3748); }

.service-panel__body p, .service-panel__body ul { margin: 0; font-size: clamp(16px, 0.96vw, 17px); line-height: 1.68; color: var(--global-muted-text-color, #4a5568); }

.service-panel__body ul { padding-left: 1.1rem; display: grid; gap: 0.7rem; }

.service-panel__body li { margin: 0; }

.service-panel__evidence { grid-template-columns: repeat(2, minmax(0, 1fr)); }

.service-evidence { margin: 0; display: grid; gap: 0.55rem; align-content: start; }

.service-evidence figcaption { font-size: 13px; line-height: 1.45; color: var(--global-muted-text-color, #4a5568); }

.service-evidence figcaption strong { color: var(--global-text-color, #2d3748); }

@media (min-width: 62em) { .service-panel--wide { grid-template-columns: minmax(220px, 280px) minmax(0, 1fr); align-items: start; gap: clamp(1rem, 2vw, 1.5rem); }
  .service-panel--wide .service-panel__media { width: 100%; }
  .service-panel--wide .service-panel__media--stack { grid-template-columns: 1fr; }
  .service-panel--wide .service-panel__hero img { aspect-ratio: 4 / 3; object-fit: cover; } }
.service-story { display: flex; flex-direction: column; gap: clamp(1.2rem, 3vw, 1.9rem); margin: clamp(1.35rem, 4vw, 2.2rem) 0; }

@media (min-width: 58em) { .service-story { flex-direction: row; align-items: flex-start; gap: clamp(1.4rem, 3vw, 2.2rem); }
  .service-story--reverse { flex-direction: row-reverse; }
  .service-story__media { flex: 0 0 clamp(14.75rem, 26vw, 20.5rem); } }
.service-story__media { display: grid; gap: 0.75rem; width: 100%; align-content: start; }

.service-story__media--duo { grid-template-columns: repeat(2, minmax(0, 1fr)); }

.service-story__hero, .service-story__thumbs { margin: 0; }

.service-story__thumbs { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0.75rem; }

.service-story__hero img, .service-story__img { width: 100%; display: block; border-radius: 1rem; box-shadow: 0 1.2rem 3rem rgba(15, 23, 42, 0.12); background: #fff; }

.service-story__hero img { height: auto; object-fit: cover; }

.service-story__img { aspect-ratio: 4 / 3; object-fit: cover; }

.service-story__img--contain { object-fit: contain; border: 1px solid rgba(226, 232, 240, 0.9); padding: 0.2rem; }

.service-story__body { flex: 1 1 0; display: grid; gap: 0.8rem; min-width: 0; }

.service-story__body h3 { margin: 0; font-size: clamp(1.05rem, 1.35vw, 1.18rem); color: var(--global-text-color, #2d3748); }

.service-story__body p, .service-story__body ul { margin: 0; font-size: 0.94rem; color: var(--global-muted-text-color, #4a5568); line-height: 1.7; }

.service-story__body ul { padding-left: 1.1rem; display: grid; gap: 0.7rem; }

.service-story__body li { margin: 0; }

@media (min-width: 58em) { .service-story__body p, .service-story__body ul { max-width: 36rem; font-size: 0.86rem; } }
.service-photo-grid { display: grid; gap: clamp(1rem, 3vw, 1.75rem); margin: clamp(1.5rem, 4vw, 2.5rem) 0; }

@media (min-width: 48em) { .service-photo-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .service-photo-grid--duo { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.service-photo { margin: 0; display: flex; flex-direction: column; gap: 0.75rem; text-align: left; color: var(--global-muted-text-color, #4a5568); height: 100%; }

.service-photo img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; border-radius: 1rem; box-shadow: 0 1.25rem 3rem rgba(15, 23, 42, 0.12); display: block; }

.service-photo figcaption { font-size: 0.95rem; line-height: 1.5; margin-top: auto; }

.service-highlight__media { flex: 0 0 clamp(16rem, 28vw, 20rem); }

.service-highlight__media img { width: 100%; height: auto; border-radius: 1rem; box-shadow: 0 1.25rem 3rem rgba(15, 23, 42, 0.12); display: block; }

.service-highlight__media--poster img { object-fit: cover; }

.service-talks { display: grid; gap: clamp(1.25rem, 3vw, 2rem); margin: clamp(1.5rem, 4vw, 2.5rem) 0; }

.service-talks__feature { display: grid; gap: clamp(1rem, 3vw, 1.75rem); align-items: start; }

@media (min-width: 60em) { .service-talks__feature { grid-template-columns: minmax(0, 1.35fr) minmax(15rem, 0.85fr); } }
.service-talks__feature-body { padding: clamp(1rem, 3vw, 1.35rem); border: 1px solid rgba(226, 232, 240, 0.92); border-radius: 1rem; background: linear-gradient(180deg, rgba(248, 250, 252, 0.76) 0%, rgba(255, 255, 255, 0.98) 100%); }

.service-talks__media-rail { display: grid; gap: 1rem; align-content: start; }

.service-talks__eyebrow { margin: 0 0 0.8rem; font-size: 0.78rem; font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase; color: #6b7c8f; }

.service-talks__featured-list { margin: 0; padding: 0; list-style: none; display: grid; gap: 0.9rem; }

.service-talks__featured-list li { padding-top: 0.85rem; border-top: 1px solid rgba(226, 232, 240, 0.9); line-height: 1.65; color: var(--global-muted-text-color, #4a5568); }

.service-talks__featured-list li:first-child { padding-top: 0; border-top: 0; }

.service-talks__archive { padding: 1rem 1.05rem; border: 1px solid rgba(226, 232, 240, 0.9); border-radius: 1rem; background: rgba(255, 255, 255, 0.86); }

.service-talks__archive h4 { margin: 0 0 0.75rem; font-size: 1rem; color: var(--global-text-color, #2d3748); }

.service-talks__list { margin: 0; padding-left: 1.15rem; display: grid; gap: 0.8rem; }

.service-talks__list li { line-height: 1.6; color: var(--global-muted-text-color, #4a5568); }

.service-talks__figure { margin: 0; display: grid; gap: 0.65rem; color: var(--global-muted-text-color, #4a5568); }

.service-talks__figure--feature { align-content: start; }

.service-talks__figure--poster img { border: 1px solid rgba(226, 232, 240, 0.9); background: rgba(255, 255, 255, 0.96); }

.service-talks__figure img { width: 100%; height: auto; border-radius: 1rem; box-shadow: 0 1.25rem 3rem rgba(15, 23, 42, 0.12); display: block; }

.service-talks__figure figcaption { font-size: 0.9rem; line-height: 1.45; }

.learning-intro { max-width: 50rem; margin: 0 0 clamp(1.25rem, 3vw, 1.9rem); }

.learning-intro p { margin: 0; font-size: clamp(17px, 1.05vw, 19px); line-height: 1.72; color: var(--global-muted-text-color, #4a5568); }

.learning-overview { display: grid; gap: clamp(0.95rem, 2.6vw, 1.35rem); margin: clamp(1.25rem, 3vw, 2rem) 0 clamp(2rem, 5vw, 2.8rem); }

@media (min-width: 52em) { .learning-overview { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
.learning-overview__card { padding: 1.05rem 1.1rem 1.1rem; border-radius: 1.05rem; border: 1px solid rgba(226, 232, 240, 0.92); background: linear-gradient(180deg, rgba(248, 250, 252, 0.82) 0%, rgba(255, 255, 255, 0.98) 100%); box-shadow: 0 0.9rem 2.4rem rgba(15, 23, 42, 0.05); }

.page__content .learning-overview__card h3 { margin: 0 0 0.5rem; font-size: 18px; color: var(--global-text-color, #2d3748); }

.learning-overview__card p { margin: 0; font-size: 16px; line-height: 1.6; color: var(--global-muted-text-color, #4a5568); }

.learning-panels { display: grid; gap: clamp(1.15rem, 3vw, 1.85rem); margin: clamp(1.15rem, 3vw, 1.85rem) 0; }

@media (min-width: 62em) { .learning-panels--two { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.learning-panel { padding: clamp(1rem, 2.6vw, 1.35rem); border-radius: 1.1rem; border: 1px solid rgba(226, 232, 240, 0.92); background: linear-gradient(180deg, rgba(248, 250, 252, 0.74) 0%, rgba(255, 255, 255, 0.98) 100%); box-shadow: 0 1rem 2.8rem rgba(15, 23, 42, 0.06); display: grid; gap: 1rem; margin: clamp(1.15rem, 3vw, 1.85rem) 0; }

.learning-panels > .learning-panel { margin: 0; }

.learning-panel__media { display: grid; gap: 0.75rem; align-content: start; }

.learning-panel__hero, .learning-panel__thumb, .learning-panel__thumbs { margin: 0; }

.learning-panel__thumbs { display: grid; gap: 0.75rem; }

.learning-panel__thumbs--duo { grid-template-columns: repeat(2, minmax(0, 1fr)); }

.learning-panel__hero img, .learning-panel__hero video, .learning-panel__img { width: 100%; display: block; border-radius: 1rem; box-shadow: 0 1rem 2.6rem rgba(15, 23, 42, 0.11); background: #fff; }

.learning-panel__hero img, .learning-panel__img { height: auto; object-fit: cover; }

.learning-panel__hero video { height: auto; aspect-ratio: 16 / 9; object-fit: cover; background: #000; }

.learning-panel__img { aspect-ratio: 16 / 10; }

.learning-panel__img--contain { aspect-ratio: auto; object-fit: contain; border: 1px solid rgba(226, 232, 240, 0.9); padding: 0.2rem; }

.learning-panel__hero figcaption, .learning-panel__thumb figcaption { margin-top: 0.45rem; font-size: 13px; line-height: 1.45; color: var(--global-muted-text-color, #4a5568); }

.learning-panel__hero figcaption a { font-weight: 600; }

.learning-panel__body { display: grid; gap: 0.72rem; min-width: 0; }

.learning-panel__eyebrow { margin: 0; font-size: 12px; font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase; color: #7a8898; }

.page__content .learning-panel__body h3 { margin: 0; font-size: clamp(20px, 1.25vw, 23px); color: var(--global-text-color, #2d3748); }

.learning-panel__body p, .learning-panel__body ul { margin: 0; font-size: clamp(16px, 0.96vw, 17px); line-height: 1.68; color: var(--global-muted-text-color, #4a5568); }

.learning-panel__body ul { padding-left: 1.1rem; display: grid; gap: 0.7rem; }

.learning-panel__body li { margin: 0; }

.learning-panel__actions { display: flex; flex-wrap: wrap; gap: 0.65rem; margin-top: 0.15rem; }

.learning-panel__link { display: inline-flex; align-items: center; justify-content: center; padding: 0.5rem 0.95rem; border-radius: 999px; background: #eef4ff; color: #2853a7; border: 1px solid rgba(42, 82, 160, 0.14); text-decoration: none; font-size: 14px; font-weight: 600; line-height: 1; transition: transform 0.18s ease, box-shadow 0.18s ease, background 0.18s ease; }

.learning-panel__link:hover { transform: translateY(-1px); box-shadow: 0 8px 18px rgba(42, 82, 160, 0.12); text-decoration: none; }

.learning-panel__link--ghost { background: rgba(255, 255, 255, 0.9); color: #5d6775; border-color: rgba(226, 232, 240, 0.92); }

@media (min-width: 62em) { .learning-panel--feature { grid-template-columns: minmax(260px, 360px) minmax(0, 1fr); align-items: start; gap: clamp(1rem, 2vw, 1.5rem); } }
.learning-inline, .learning-stack > .learning-inline { display: flex; flex-direction: column; gap: 1.15rem; margin: clamp(1rem, 3vw, 1.6rem) 0; }

@media (min-width: 54em) { .learning-inline, .learning-stack > .learning-inline { flex-direction: row; align-items: center; gap: clamp(1.5rem, 4vw, 2.5rem); }
  .learning-inline--reverse { flex-direction: row-reverse; }
  .learning-feature__media { flex: 0 0 clamp(18rem, 35vw, 24rem); }
  .learning-inline__media { display: flex; align-items: center; justify-content: center; flex: 0 0 clamp(18rem, 33vw, 25rem); min-height: clamp(12rem, 20vw, 16rem); }
  .learning-inline__media img { height: 100%; }
  .learning-inline--gallery .learning-inline__media { flex: 0 0 clamp(18rem, 33vw, 25rem); }
  .learning-inline__gallery { display: grid; grid-template-columns: repeat(auto-fit, minmax(10rem, 1fr)); }
  .learning-inline--feature { flex-direction: column; align-items: stretch; gap: 1rem; }
  .learning-inline--feature .learning-inline__media { flex: none; width: min(100%, 52rem); min-height: auto; }
  .learning-inline--feature .learning-inline__body { max-width: none; grid-template-columns: minmax(11rem, 13rem) minmax(0, 1fr); gap: 0.55rem 1.5rem; align-items: start; }
  .learning-inline--feature .learning-inline__body h3 { grid-column: 1; grid-row: 1 / span 2; align-self: start; }
  .learning-inline--feature .learning-inline__body p, .learning-inline--feature .learning-inline__body ul { grid-column: 2; } }
.learning-inline__media { width: 100%; display: block; }

.learning-inline__media--feature { display: grid; gap: 0.7rem; }

.learning-inline__media img { width: 100%; height: auto; object-fit: cover; border-radius: 1rem; box-shadow: 0 1.2rem 3rem rgba(15, 23, 42, 0.12); }

.learning-inline__media video { width: 100%; height: auto; display: block; aspect-ratio: 16 / 9; object-fit: cover; border-radius: 1rem; box-shadow: 0 1.2rem 3rem rgba(15, 23, 42, 0.12); background: #000; }

.learning-inline__caption { margin: 0; font-size: 0.92rem; line-height: 1.45; color: var(--global-muted-text-color, #4a5568); }

.learning-inline__caption a { font-weight: 600; }

.learning-inline--gallery .learning-inline__media { width: 100%; }

.learning-inline__gallery { display: grid; gap: 0.6rem; width: 100%; }

.learning-inline__gallery img { width: 100%; height: auto; aspect-ratio: 4 / 3; object-fit: cover; border-radius: 1rem; box-shadow: 0 0.9rem 2.4rem rgba(15, 23, 42, 0.1); }

.learning-inline__body { flex: 1 1 0; display: grid; gap: 0.65rem; }

.learning-inline__body h3 { margin: 0; font-size: clamp(1.2rem, 2.4vw, 1.45rem); color: var(--global-text-color, #2d3748); }

.learning-inline__body p { margin: 0; font-size: 1rem; color: var(--global-muted-text-color, #4a5568); line-height: 1.6; }

.learning-inline__body ul { margin: 0; padding-left: 1.1rem; display: grid; gap: 0.45rem; font-size: 1rem; color: var(--global-muted-text-color, #4a5568); line-height: 1.55; }

.learning-inline__body--compact { gap: 0.55rem; }

.learnlab-project { margin: clamp(1.25rem, 3vw, 2rem) 0 clamp(2rem, 5vw, 3rem); padding-bottom: clamp(1.5rem, 4vw, 2.5rem); border-bottom: 1px solid rgba(226, 232, 240, 0.92); }

.learnlab-project__gallery { display: grid; gap: clamp(1rem, 2.5vw, 1.5rem); margin-top: clamp(1.25rem, 3vw, 2rem); }

.learnlab-project__gallery figure { margin: 0; }

.learnlab-project__gallery img { display: block; width: 100%; height: auto; border-radius: 0.7rem; background: #fff; box-shadow: 0 0.45rem 0.9rem rgba(15, 23, 42, 0.08); }

.learnlab-project__gallery figcaption { margin-top: 0.5rem; color: var(--global-muted-text-color, #4a5568); font-size: 13px; line-height: 1.5; }

@media (min-width: 58em) { .learnlab-project__gallery { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .learnlab-project__actions { grid-column: 2; } }
.learning-stack { display: grid; gap: clamp(1.4rem, 3.5vw, 2.2rem); }

.img-lightbox-target { cursor: zoom-in; }

.img-lightbox-overlay { position: fixed; inset: 0; background: rgba(15, 23, 42, 0.85); display: flex; align-items: center; justify-content: center; padding: clamp(1.5rem, 5vw, 3rem); z-index: 9999; animation: img-lightbox-fade-in 0.15s ease; }

.img-lightbox-overlay.closing { animation: img-lightbox-fade-out 0.15s ease forwards; }

.img-lightbox-figure { margin: 0; display: grid; gap: 0.75rem; width: min(92vw, 1200px); max-height: 92vh; justify-items: center; }

.img-lightbox-img { width: auto; max-width: 100%; max-height: 84vh; object-fit: contain; border-radius: 1rem; box-shadow: 0 1.5rem 3.5rem rgba(0, 0, 0, 0.35); background: #fff; }

.img-lightbox-caption { text-align: center; color: #e2e8f0; font-size: 0.95rem; line-height: 1.5; }

@keyframes img-lightbox-fade-in { from { opacity: 0; }
  to { opacity: 1; } }
@media (max-width: 850px) { .greedy-nav { flex-wrap: wrap; }
  .greedy-nav__toggle { display: inline-flex !important; align-items: center; justify-content: center; width: 2.5rem; height: 2.5rem; margin-left: auto; border-radius: 50%; border: 1px solid rgba(15, 23, 42, 0.15); background: rgba(42, 122, 226, 0.1); color: var(--global-link-color, #2a7ae2); }
  .greedy-nav .visible-links { display: none; flex-direction: column; width: 100%; padding: 0.75rem 0; gap: 0.5rem; }
  .greedy-nav.is-open .visible-links { display: flex; }
  .greedy-nav .visible-links li { width: 100%; }
  .greedy-nav .visible-links li a { display: block; width: 100%; padding: 0.65rem 0; } }
.research-card:target, .research-card:is(:focus, :focus-within)::before { content: "Linked target"; position: absolute; top: -0.95rem; left: 1rem; font-size: 0.75rem; font-weight: 600; text-transform: uppercase; letter-spacing: 0.08em; background: #2a7ae2; color: #ffffff; padding: 0.2rem 0.55rem; border-radius: 999px; }

@keyframes img-lightbox-fade-out { from { opacity: 1; }
  to { opacity: 0; } }
@keyframes research-card-highlight { 0% { box-shadow: 0 1.5rem 3.2rem rgba(42, 122, 226, 0.4); }
  80% { box-shadow: 0 1.2rem 2.8rem rgba(42, 122, 226, 0.25); }
  100% { box-shadow: 0 0.65rem 1.6rem rgba(15, 23, 42, 0.08); outline-color: transparent; } }
.pub-meta { margin: clamp(1rem, 3vw, 1.75rem) 0 clamp(1.5rem, 4vw, 2.5rem); padding: 1rem clamp(1rem, 3vw, 1.75rem); background: rgba(42, 122, 226, 0.08); border-radius: 0.9rem; display: grid; gap: 0.35rem; font-size: 0.95rem; color: var(--global-muted-text-color, #4a5568); }

.pub-meta strong { color: var(--global-text-color, #2d3748); }

.methodology-pill span { font-size: 0.9rem; color: var(--global-muted-text-color, #4a5568); line-height: 1.5; }

.greedy-nav { display: flex; align-items: center; gap: clamp(0.5rem, 1.5vw, 1rem); flex-wrap: nowrap; }

.greedy-nav .visible-links { flex: 1 1 auto; display: flex; align-items: center; justify-content: center; gap: clamp(0.4rem, 1.2vw, 0.9rem); overflow: visible; }

.greedy-nav .visible-links li { margin: 0; }

.greedy-nav .visible-links a { font-size: 0.875em; white-space: nowrap; }

.greedy-nav__toggle { display: none !important; }

.learning-feature { display: flex; flex-direction: column; gap: 1.15rem; margin: clamp(1.25rem, 3.5vw, 2rem) 0; }

@media (min-width: 54em) { .learning-feature { flex-direction: row; align-items: center; gap: clamp(1.5rem, 4vw, 2.5rem); } }
.learning-feature__media { width: 100%; }

.learning-feature__media img { width: 100%; height: auto; border-radius: 1rem; box-shadow: 0 1.25rem 3rem rgba(15, 23, 42, 0.12); display: block; }

.learning-feature__content { flex: 1 1 0; display: grid; gap: 0.55rem; }

.learning-feature__content h3 { margin: 0; font-size: clamp(1.2rem, 2.4vw, 1.45rem); color: var(--global-text-color, #2d3748); }

.learning-feature__content ul { margin: 0; padding-left: 1.1rem; display: grid; gap: 0.45rem; color: var(--global-muted-text-color, #4a5568); line-height: 1.55; }

@media (max-width: 54em) { .greedy-nav { flex-wrap: wrap; }
  .greedy-nav__toggle { display: inline-flex !important; align-items: center; justify-content: center; width: 2.5rem; height: 2.5rem; border-radius: 50%; border: 1px solid rgba(15, 23, 42, 0.15); background: rgba(42, 122, 226, 0.08); color: var(--global-link-color, #2a7ae2); margin-left: auto; position: relative; z-index: 30; }
  .greedy-nav .visible-links { display: none; flex-direction: column; width: 100%; padding: 0.75rem 0; gap: 0.5rem; }
  .greedy-nav.is-open .visible-links { display: flex; }
  .greedy-nav .visible-links li { width: 100%; }
  .greedy-nav .visible-links li a { width: 100%; display: block; padding: 0.6rem 0; } }
/* ── Consistent h2 section headings across all content pages ────────────── Applies to teaching, service, grants, presentations, etc. (plain markdown ##) Publications overrides via .pub-section h2; Research uses .rn-heading (<p>). ─────────────────────────────────────────────────────────────────────────── */
.page__content h2 { font-size: 13px; font-weight: 700; text-transform: uppercase; letter-spacing: 0.08em; color: #999; border-bottom: none; margin: 48px 0 16px; padding: 0; }

/* h3 sub-headings (e.g. institution names in teaching page) */
.page__content h3 { font-size: 15px; font-weight: 700; color: #222; margin: 28px 0 8px; border-bottom: none; }

/* Restore publications' own h2 style (more specific than .page__content h2) */
.pub-section h2 { font-size: 18px !important; font-weight: 700 !important; color: #111 !important; text-transform: none !important; letter-spacing: normal !important; padding-bottom: 8px !important; border-bottom: 2px solid #eee !important; margin: 0 0 10px !important; }

/* Pub timeline heading */
.pub-timeline h2 { font-size: 14px !important; text-transform: uppercase !important; letter-spacing: 0.07em !important; color: #aaa !important; border-bottom: none !important; margin: 44px 0 14px !important; padding: 0 !important; }

/* ── Shared interaction layer ───────────────────────────────────────────── */
[data-reveal] { opacity: 0; transform: translateY(18px); transition: opacity 0.62s cubic-bezier(0.22, 1, 0.36, 1), transform 0.62s cubic-bezier(0.22, 1, 0.36, 1); transition-delay: var(--reveal-delay, 0ms); }

[data-reveal].is-visible { opacity: 1; transform: none; }

.page-section-target { scroll-margin-top: 7.5rem; }

.supports-target-highlight { transition: box-shadow 0.32s ease, border-color 0.32s ease; }

.supports-target-highlight.section-targeted { box-shadow: 0 0 0 1px rgba(42, 122, 226, 0.22), 0 18px 44px rgba(42, 122, 226, 0.14) !important; }

.supports-target-highlight:target { box-shadow: 0 0 0 1px rgba(42, 122, 226, 0.22), 0 18px 44px rgba(42, 122, 226, 0.14) !important; }

.page-section-nav { position: sticky; top: 5.2rem; z-index: 30; margin: 0 0 0.2rem; padding: 0; max-height: 0; overflow: hidden; opacity: 0; pointer-events: none; border: 0 solid rgba(226, 232, 240, 0.92); border-radius: 1.1rem; background: rgba(255, 255, 255, 0.84); backdrop-filter: blur(14px); box-shadow: none; transform: translateY(0.65rem); transition: opacity 0.24s ease, transform 0.24s ease, max-height 0.24s ease, padding 0.24s ease, margin 0.24s ease, border-color 0.24s ease, box-shadow 0.24s ease; }

.page-section-nav.is-nav-visible { margin: 0 0 1.05rem; padding: 0.45rem 0.55rem; max-height: 8rem; opacity: 1; pointer-events: auto; border-width: 1px; box-shadow: 0 0.55rem 1.25rem rgba(15, 23, 42, 0.04); transform: none; }

.page-section-nav__list { display: flex; gap: 0.3rem; align-items: center; overflow-x: auto; scrollbar-width: none; -ms-overflow-style: none; }

.page-section-nav__list::-webkit-scrollbar { display: none; }

.page-section-nav__link { display: inline-flex; align-items: center; justify-content: center; min-height: 1.9rem; padding: 0 0.72rem; border-radius: 999px; border: 1px solid transparent; background: transparent; color: #738295; text-decoration: none; font-size: 0.73rem; font-weight: 600; letter-spacing: 0.02em; white-space: nowrap; transition: background 0.22s ease, color 0.22s ease, border-color 0.22s ease, transform 0.22s ease, box-shadow 0.22s ease; }

.page-section-nav__link:hover, .page-section-nav__link:focus-visible { background: rgba(247, 249, 252, 0.96); border-color: rgba(226, 232, 240, 0.95); color: #334155; transform: none; }

.page-section-nav__link.is-active { border-color: rgba(42, 122, 226, 0.12); background: rgba(42, 122, 226, 0.06); color: #1f3f6d; box-shadow: none; }

.page-with-rail-nav { display: block; }

.page-with-rail-nav .page-section-nav { order: -1; }

.page-with-rail-nav__main { min-width: 0; }

@media (min-width: 72em) { .page-with-rail-nav .page-section-nav { position: fixed; right: clamp(0.8rem, 2vw, 1.6rem); width: 8.35rem; margin: 0; padding: 0; max-height: 0; top: 8.7rem; border: 0; border-radius: 0; background: transparent; backdrop-filter: none; box-shadow: none; transform: translateX(0.65rem); }
  .page-with-rail-nav .page-section-nav.is-nav-visible { margin: 0; padding: 0.15rem 0; max-height: 24rem; box-shadow: none; transform: none; }
  .page-with-rail-nav .page-section-nav__list { display: grid; gap: 0.28rem; overflow: visible; }
  .page-with-rail-nav .page-section-nav__link { position: relative; min-height: auto; justify-content: flex-end; padding: 0.34rem 0.38rem 0.34rem 0.78rem; border-radius: 0.6rem; border: 0; background: transparent; color: #90a0b0; font-size: 0.66rem; font-weight: 500; line-height: 1.3; letter-spacing: 0.02em; text-align: right; white-space: normal; box-shadow: none; }
  .page-with-rail-nav .page-section-nav__link::after { content: ""; position: absolute; top: 50%; right: 0.15rem; width: 0.22rem; height: 0.22rem; border-radius: 999px; background: rgba(148, 163, 184, 0.32); transform: translateY(-50%); opacity: 0; transition: opacity 0.22s ease, background 0.22s ease; }
  .page-with-rail-nav .page-section-nav__link:hover, .page-with-rail-nav .page-section-nav__link:focus-visible { background: rgba(248, 250, 252, 0.58); color: #55667b; }
  .page-with-rail-nav .page-section-nav__link.is-active { background: rgba(42, 122, 226, 0.04); color: #29496f; box-shadow: none; }
  .page-with-rail-nav .page-section-nav__link.is-active::after { opacity: 1; background: rgba(42, 122, 226, 0.55); } }
@media (max-width: 768px) { .page-section-target { scroll-margin-top: 6.6rem; }
  .page-section-nav { top: 4.55rem; }
  .page-section-nav.is-nav-visible { padding: 0.38rem 0.48rem; margin-bottom: 0.9rem; }
  .page-section-nav__link { min-height: 1.8rem; font-size: 0.74rem; padding: 0 0.72rem; } }
@media (prefers-reduced-motion: reduce) { [data-reveal] { opacity: 1; transform: none; transition: none; }
  .supports-target-highlight, .page-section-nav, .page-section-nav__link { transition: none; } }
/* ── Compact hand-drawn navigation mark ── */
.site-mark { width: 34px; height: 30px; display: inline-block; vertical-align: middle; margin-right: 9px; margin-top: -5px; flex-shrink: 0; object-fit: contain; transition: transform 0.55s cubic-bezier(0.34, 1.56, 0.64, 1); }

.site-title:hover .site-mark { transform: rotate(12deg) scale(1.15); }

/* ── Custom cursor ── */
body.has-custom-cursor, body.has-custom-cursor * { cursor: none !important; }

.cursor-dot { position: fixed; width: 7px; height: 7px; background: #e05a2b; border-radius: 50%; pointer-events: none; z-index: 10000; transform: translate(-50%, -50%); will-change: left, top; transition: opacity 0.2s ease; }

.cursor-ring { position: fixed; width: 30px; height: 30px; border: 1.5px solid rgba(224, 90, 43, 0.45); border-radius: 50%; pointer-events: none; z-index: 9999; transform: translate(-50%, -50%); will-change: left, top; transition: width 0.22s ease, height 0.22s ease, border-color 0.22s ease, background 0.22s ease, opacity 0.2s ease; }

/* ── Language toggle button ── */
.bl-lang-toggle { display: inline-flex; align-items: center; justify-content: center; padding: 3px 10px; border-radius: 999px; border: 1.5px solid rgba(123, 156, 200, 0.45); background: transparent; color: #4a6e9a; font-size: 12px; font-weight: 700; cursor: pointer; line-height: 1; font-family: system-ui, -apple-system, 'Segoe UI', sans-serif; transition: background 0.15s, border-color 0.15s, color 0.15s; margin-right: 6px; flex-shrink: 0; }

.bl-lang-toggle:hover { background: rgba(123, 156, 200, 0.12); border-color: rgba(123, 156, 200, 0.75); }

.cursor-ring.is-hovering { width: 48px; height: 48px; border-color: rgba(224, 90, 43, 0.2); background: rgba(224, 90, 43, 0.05); }

@media (hover: none) { .cursor-dot, .cursor-ring { display: none; } }
/* ================================================================ Scholar in Motion template layer This keeps the original site's editorial rhythm while moving all personal content and research structure into configuration files. ================================================================ */
:root { --sim-blue: #7b9cc8; --sim-rose: #c8868e; --sim-green: #82b896; --sim-gold: #d1a760; --sim-ink: #20242a; --sim-muted: #687484; --sim-orange: #e05a2b; --sim-line: #dce4ee; --sim-hand: "Segoe Print", "Bradley Hand", cursive; }

.template-footer-note { margin: 20px 0 0; padding-top: 16px; border-top: 1px solid #e8e8e8; text-align: center; }

.template-footer-note p { max-width: 560px; margin: 0 auto 5px; color: #a0a8b2; font-size: 11.5px; line-height: 1.55; letter-spacing: 0.02em; }

.home-intro { position: relative; }

.home-hero { position: relative; display: inline-block; max-width: max-content; padding: 4px 0 18px; }

.home-hero__headline { position: relative; z-index: 2; margin: 0; white-space: nowrap; }

.home-typewriter { position: relative; display: inline; }

.home-typewriter.js-typewriter--typing::after, .home-typewriter.js-typewriter--done::after { content: ""; display: inline-block; width: 0.09em; height: 0.88em; margin-left: 0.12em; border-radius: 999px; background: rgba(224, 90, 43, 0.92); vertical-align: -0.08em; }

.home-typewriter.js-typewriter--typing::after { animation: sim-caret 0.82s steps(1, end) infinite; }

.home-typewriter.js-typewriter--done::after { opacity: 0; transition: opacity 0.35s ease; }

@keyframes sim-caret { 0%,49% { opacity: 1; }
  50%,100% { opacity: 0; } }
.home-hero__proof { position: absolute; left: calc(100% + 18px); top: -25px; width: 425px; height: 114px; pointer-events: none; z-index: 1; }

.home-hero__tag { --proof-accent: var(--sim-blue); position: absolute; display: inline-flex; align-items: center; gap: 8px; padding: 8px 12px; border: 1px solid rgba(220, 227, 237, 0.95); border-radius: 999px; background: rgba(255, 255, 255, 0.92); box-shadow: 0 14px 30px rgba(15, 23, 42, 0.07); color: #172033; font-family: var(--sim-hand); font-size: 11px; line-height: 1; text-decoration: none; white-space: nowrap; opacity: 0; transform: translateY(12px) scale(0.96) rotate(var(--tag-rotate)); transition: opacity 0.22s ease, transform 0.28s ease, box-shadow 0.18s ease; }

.home-hero__tag::before { content: ""; width: 7px; height: 7px; border-radius: 50%; background: var(--proof-accent); }

.home-hero__tag:nth-child(1) { left: 0; top: 0; --tag-rotate: 3deg; }

.home-hero__tag:nth-child(2) { left: 58%; top: 4px; --tag-rotate: 7deg; }

.home-hero__tag:nth-child(3) { left: 8%; top: 36px; --tag-rotate: -6deg; }

.home-hero__tag:nth-child(4) { left: 58%; top: 38px; --tag-rotate: -3deg; }

.home-hero__tag:nth-child(5) { left: 0; top: 72px; --tag-rotate: 4deg; }

.home-hero__tag:nth-child(6) { left: 49%; top: 72px; --tag-rotate: -4deg; }

.home-hero__tag--blue { --proof-accent: var(--sim-blue); }

.home-hero__tag--rose { --proof-accent: var(--sim-rose); }

.home-hero__tag--green { --proof-accent: var(--sim-green); }

.home-hero__tag--gold { --proof-accent: var(--sim-gold); }

.home-intro:hover .home-hero__tag, .home-intro:focus-within .home-hero__tag { opacity: 1; pointer-events: auto; transform: translateY(0) scale(1) rotate(var(--tag-rotate)); }

.home-hero__tag:hover { box-shadow: 0 18px 36px rgba(15, 23, 42, 0.11); }

.home-intro mark { padding: 0 2px; border-radius: 2px; background: linear-gradient(180deg, transparent 58%, rgba(224, 90, 43, 0.16) 58%); color: #5b4432; font-weight: 600; }

.home-initiative { position: relative; margin: 22px 0 26px; padding: 17px 2px 15px; border-top: 1px solid rgba(17, 24, 39, 0.82); border-bottom: 1px solid rgba(17, 24, 39, 0.3); }

.home-initiative::before { content: ""; position: absolute; top: -1px; left: 0; width: 92px; height: 2px; background: var(--sim-orange); }

.home-initiative h2 { display: flex; flex-wrap: wrap; align-items: baseline; gap: 8px 12px; margin: 0 0 7px; font-size: 15px; }

.home-initiative h2 span { background: linear-gradient(180deg, transparent 68%, rgba(224, 90, 43, 0.2) 68%); }

.home-initiative h2 em, .home-initiative small { color: #376cba; font-family: var(--sim-hand); font-size: 10.5px; font-weight: 600; }

.home-initiative p { max-width: 68ch; margin: 0 0 8px; color: #4e5865; font-size: 13px; line-height: 1.62; }

.home-initiative > div { display: flex; align-items: baseline; flex-wrap: wrap; gap: 8px 16px; }

.home-initiative a { color: #1f2937; font-size: 12px; font-weight: 700; text-decoration-color: rgba(224, 90, 43, 0.78); text-decoration-thickness: 2px; text-underline-offset: 4px; }

.home-initiative a::after { content: "  →"; color: var(--sim-orange); }

.home-question { margin: 28px 0 8px; color: #566273; font-family: Georgia, "Times New Roman", serif; font-size: clamp(1.05rem, 2vw, 1.4rem); line-height: 1.65; }

.home-question > span { padding: 0 2px; color: #2d4f7b; background: linear-gradient(180deg, transparent 62%, rgba(123, 156, 200, 0.17) 62%); font-weight: 600; }

.page-lede { max-width: 72ch; margin: 0 0 2rem; color: #596575; font-family: Georgia, "Times New Roman", serif; font-size: clamp(1.05rem, 2vw, 1.35rem); line-height: 1.7; }

/* Data-driven 2/3/4-strand research atlas */
.research-atlas { margin: 40px 0 46px; }

.research-atlas__header { max-width: 720px; margin-bottom: 18px; }

.research-atlas__eyebrow, .section-kicker { margin: 0 0 6px; color: #9aa3af; font-size: 11px; font-weight: 700; letter-spacing: 0.12em; text-transform: uppercase; }

.research-atlas__header h2 { margin: 0 0 8px; font-size: 1.35rem; }

.page__content .research-atlas__header h2 { margin: 0 0 8px; color: var(--sim-ink); font-size: 1.35rem; font-weight: 700; letter-spacing: 0; text-transform: none; }

.research-atlas__header > p:last-child { margin: 0; color: #697586; font-size: 13px; line-height: 1.65; }

.research-atlas__stage { position: relative; min-height: 610px; isolation: isolate; overflow: hidden; }

.research-atlas__threads { position: absolute; inset: 0; width: 100%; height: 100%; z-index: 0; }

.research-atlas__threads path { fill: none; stroke: var(--sim-orange); stroke-width: 2; stroke-linecap: round; stroke-dasharray: 5 10; opacity: 0.24; }

.research-atlas[data-count="2"] .research-atlas__threads path:nth-child(n+3), .research-atlas[data-count="3"] .research-atlas__threads path:nth-child(n+4) { display: none; }

.research-region { --region-color: var(--sim-blue); position: absolute; width: 53%; height: 53%; z-index: 1; pointer-events: none; transition: opacity 0.25s ease, filter 0.25s ease; }

.research-region--1 { left: 0; top: 0; }

.research-region--2 { right: 0; top: 0; }

.research-region--3 { left: 0; bottom: 0; }

.research-region--4 { right: 0; bottom: 0; }

.research-region--blue { --region-color: var(--sim-blue); }

.research-region--rose { --region-color: var(--sim-rose); }

.research-region--green { --region-color: var(--sim-green); }

.research-region--gold { --region-color: var(--sim-gold); }

.research-region__shape, .research-region__sketch { position: absolute; inset: 0; border-radius: 46% 54% 51% 49% / 55% 48% 52% 45%; pointer-events: auto; transition: transform 0.28s ease, background 0.28s ease, opacity 0.28s ease, border-color 0.28s ease; }

.research-region__shape { border: 1px solid color-mix(in srgb, var(--region-color) 42%, #3f4650); background: color-mix(in srgb, var(--region-color) 17%, transparent); }

.research-region__sketch { inset: 2px -1px -1px 2px; border: 1px solid rgba(31, 31, 31, 0.13); }

.research-region--2 .research-region__shape, .research-region--4 .research-region__shape { border-radius: 54% 46% 48% 52% / 49% 56% 44% 51%; }

.research-region:hover, .research-region:focus-within { z-index: 3; }

.research-region:hover .research-region__shape, .research-region:focus-within .research-region__shape { transform: scale(1.018); background: color-mix(in srgb, var(--region-color) 24%, transparent); border-color: rgba(30, 30, 30, 0.52); }

.research-region:hover .research-region__sketch, .research-region:focus-within .research-region__sketch { transform: translate(1px, -1px) scale(1.018); opacity: 0.7; }

.research-atlas__stage[data-active] .research-region:not(.is-active) { opacity: 0.34; filter: saturate(0.72); }

.research-region__label { position: absolute; z-index: 4; max-width: 54%; color: var(--sim-ink); font-family: Georgia, "Times New Roman", serif; font-size: clamp(13px, 1.7vw, 18px); font-weight: 700; line-height: 1.25; text-decoration: none; pointer-events: auto; }

.research-region__label::after { content: ""; display: block; width: 72%; height: 2px; margin-top: 5px; border-radius: 3px; background: var(--sim-orange); opacity: 0.75; transition: width 0.2s ease; }

.research-region__label:hover::after, .research-region__label:focus::after { width: 94%; }

.research-region--1 .research-region__label { top: 17%; left: 12%; }

.research-region--2 .research-region__label { top: 17%; right: 12%; text-align: right; }

.research-region--2 .research-region__label::after, .research-region--4 .research-region__label::after { margin-left: auto; }

.research-region--3 .research-region__label { bottom: 13%; left: 12%; }

.research-region--4 .research-region__label { right: 12%; bottom: 13%; text-align: right; }

.research-region__question { position: absolute; z-index: 4; width: 46%; margin: 0; color: #24272c; font-family: var(--sim-hand); font-size: 11px; line-height: 1.55; opacity: 0; transform: translateY(5px) rotate(-1deg); transition: opacity 0.22s ease, transform 0.22s ease; pointer-events: none; }

.research-region--1 .research-region__question { left: 12%; bottom: 18%; }

.research-region--2 .research-region__question { right: 12%; bottom: 18%; text-align: right; }

.research-region--3 .research-region__question { left: 12%; top: 18%; }

.research-region--4 .research-region__question { right: 12%; top: 18%; text-align: right; }

.research-region:hover .research-region__question, .research-region:focus-within .research-region__question { opacity: 1; transform: translateY(0) rotate(-1deg); }

.research-region__works { position: absolute; inset: 0; z-index: 5; pointer-events: none; }

.research-dot { position: absolute; left: var(--dot-x); top: var(--dot-y); width: 14px; height: 14px; padding: 0; border: 2px solid #fff; border-radius: 50%; background: var(--region-color); box-shadow: 0 2px 7px rgba(15, 23, 42, 0.16); pointer-events: auto; transform: translate(-50%, -50%); transition: transform 0.2s ease, box-shadow 0.2s ease; }

.research-dot:nth-child(even) { background: color-mix(in srgb, var(--region-color) 42%, white); border-color: var(--region-color); }

.research-dot:hover, .research-dot:focus-visible { transform: translate(-50%, -50%) scale(1.42); box-shadow: 0 4px 10px rgba(15, 23, 42, 0.2); outline: none; }

@keyframes sim-dot-float { 0%,100% { transform: translate(-50%, -50%) translateY(0) scale(1.08); }
  50% { transform: translate(-50%, -50%) translateY(-4px) scale(1.16); } }
@media (prefers-reduced-motion: no-preference) { .research-region:hover .research-dot, .research-region:focus-within .research-dot { animation: sim-dot-float 1.2s ease-in-out infinite; animation-delay: var(--dot-delay); } }
.research-atlas__core { position: absolute; left: 50%; top: 50%; z-index: 8; display: flex; width: 224px; min-height: 126px; padding: 18px 20px; border: 1px solid rgba(32, 36, 42, 0.44); border-radius: 49% 51% 48% 52% / 54% 47% 53% 46%; background: rgba(255, 255, 255, 0.94); box-shadow: 7px 7px 0 rgba(55, 108, 186, 0.07); color: var(--sim-ink); text-align: center; text-decoration: none; transform: translate(-50%, -50%) rotate(-0.5deg); flex-direction: column; align-items: center; justify-content: center; transition: transform 0.22s ease, box-shadow 0.22s ease; }

.research-atlas__core::before { content: ""; position: absolute; left: 27%; right: 27%; bottom: 9px; height: 2px; border-radius: 2px; background: var(--sim-orange); }

.research-atlas__core:hover, .research-atlas__core:focus-visible { transform: translate(-50%, -53%) rotate(0); box-shadow: 9px 10px 0 rgba(55, 108, 186, 0.1); outline: none; }

.research-atlas__core-kicker { margin-bottom: 4px; color: #8e98a5; font-size: 9px; font-weight: 700; letter-spacing: 0.12em; text-transform: uppercase; }

.research-atlas__core strong { font-family: Georgia, "Times New Roman", serif; font-size: 17px; line-height: 1.2; }

.research-atlas__core > span:last-of-type { margin-top: 8px; color: #376cba; font-family: var(--sim-hand); font-size: 10px; }

.research-atlas__core i { position: absolute; right: 16px; bottom: 2px; color: var(--sim-orange); font-style: normal; }

.research-atlas__legend { display: flex; flex-wrap: wrap; justify-content: center; gap: 7px 14px; margin-top: -10px; }

.research-atlas__legend-item { display: inline-flex; align-items: center; gap: 6px; color: #7d8794; font-size: 10.5px; }

.research-atlas__legend-item::before { content: ""; width: 7px; height: 7px; border-radius: 50%; background: var(--sim-blue); }

.research-atlas__legend-item--rose::before { background: var(--sim-rose); }

.research-atlas__legend-item--green::before { background: var(--sim-green); }

.research-atlas__legend-item--gold::before { background: var(--sim-gold); }

.research-atlas[data-count="3"] .research-region { width: 55%; height: 52%; }

.research-atlas[data-count="3"] .research-region--1 { left: 0; top: 0; }

.research-atlas[data-count="3"] .research-region--2 { right: 0; top: 0; }

.research-atlas[data-count="3"] .research-region--3 { left: 22.5%; bottom: 0; }

.research-atlas[data-count="3"] .research-region--3 .research-region__label { left: 50%; bottom: 10%; text-align: center; transform: translateX(-50%); }

.research-atlas[data-count="3"] .research-region--3 .research-region__label::after { margin-left: auto; margin-right: auto; }

.research-atlas[data-count="3"] .research-region--3 .research-region__question { left: 19%; top: 18%; text-align: center; }

.research-atlas[data-count="2"] .research-atlas__stage { min-height: 480px; }

.research-atlas[data-count="2"] .research-region { top: 8%; width: 59%; height: 84%; }

.research-atlas[data-count="2"] .research-region--1 { left: 0; }

.research-atlas[data-count="2"] .research-region--2 { right: 0; }

.research-atlas[data-count="2"] .research-region--1 .research-region__label { top: 14%; left: 10%; }

.research-atlas[data-count="2"] .research-region--2 .research-region__label { top: 14%; right: 10%; }

.research-atlas[data-count="2"] .research-region__question { bottom: 14%; top: auto; }

.research-popover { position: fixed; z-index: 1001; width: min(290px, calc(100vw - 28px)); padding: 15px 16px 13px; border: 1px solid #262626; border-radius: 3px; background: #fff; box-shadow: 7px 7px 0 rgba(55, 108, 186, 0.08); font-size: 13px; }

.research-popover[hidden] { display: none; }

.research-popover__close { position: absolute; top: 6px; right: 8px; padding: 1px 5px; border: 0; background: none; color: #7b8490; font-size: 18px; }

.research-popover__title { margin: 0 24px 5px 0; color: #20242a; font-weight: 700; line-height: 1.4; }

.research-popover__venue { margin: 0 0 8px; color: #707b88; font-family: Georgia, "Times New Roman", serif; font-style: italic; }

.research-popover__meta { display: flex; gap: 6px; margin-bottom: 8px; }

.research-popover__meta span { padding: 2px 7px; border-radius: 999px; background: #f0f2f5; color: #5d6671; font-size: 10px; font-weight: 700; }

.research-popover__link { color: #376cba; font-size: 11px; font-weight: 700; }

.home-methods { margin: 28px 0 42px; padding: 18px 0 22px; border-top: 1px solid #e4e9ef; border-bottom: 1px solid #e4e9ef; }

.home-methods__eyebrow { margin: 0 0 6px; color: #8b95a7; font-size: 11px; font-weight: 700; letter-spacing: 0.1em; text-transform: uppercase; }

.home-methods__intro { max-width: 760px; margin: 0 0 16px; color: #5f6b7c; font-size: 13px; line-height: 1.7; }

.home-methods__grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 26px; }

.home-methods__card { display: flex; gap: 11px; padding: 15px 0; border-bottom: 1px solid #edf0f3; }

.home-methods__badge { display: flex; flex: 0 0 30px; width: 30px; height: 30px; align-items: center; justify-content: center; border: 1px solid #d4ddf5; border-radius: 50%; background: #f3f6fb; color: #4a6db5; font-size: 8px; font-weight: 800; }

.home-methods__card-title { margin: 0 0 4px; color: #172033; font-size: 13px; }

.home-methods__card-copy { margin: 0; color: #607084; font-size: 12px; line-height: 1.6; }

.research-story__section { --story-color: var(--sim-blue); display: grid; grid-template-columns: 72px minmax(0, 1fr); gap: 22px; padding: 34px 0; border-top: 1px solid #e5e9ee; }

.research-story__section--rose { --story-color: var(--sim-rose); }

.research-story__section--green { --story-color: var(--sim-green); }

.research-story__section--gold { --story-color: var(--sim-gold); }

.research-story__number { margin: 0; color: var(--story-color); font-family: Georgia,serif; font-size: 30px; }

.research-story__section h2 { margin-top: 0; }

.research-story__question { color: #303943; font-family: var(--sim-hand); font-size: 13px; }

.publication-list > h2 { padding-bottom: 10px; border-bottom: 1px solid #ddd; }

.publication-entry { --entry-color: var(--sim-blue); position: relative; padding: 18px 8px 18px 22px; border-bottom: 1px solid #edf0f3; }

.publication-entry::before { content: ""; position: absolute; left: 2px; top: 25px; width: 7px; height: 7px; border-radius: 50%; background: var(--entry-color); }

.publication-entry--rose { --entry-color: var(--sim-rose); }

.publication-entry--green { --entry-color: var(--sim-green); }

.publication-entry--gold { --entry-color: var(--sim-gold); }

.publication-entry__strand { color: var(--entry-color); font-size: 10px; font-weight: 800; letter-spacing: 0.08em; text-transform: uppercase; }

.publication-entry p { margin: 5px 0 7px; font-size: 14px; line-height: 1.65; }

.editorial-sections article { display: grid; grid-template-columns: minmax(140px, 0.32fr) minmax(0, 1fr); column-gap: 36px; padding: 34px 0; border-top: 1px solid #e4e8ed; }

.editorial-sections article .section-kicker { grid-row: 1 / span 3; }

.editorial-sections h2 { margin-top: 0; }

.project-bands article { display: grid; grid-template-columns: minmax(220px, 0.75fr) minmax(0, 1fr); gap: 32px; align-items: center; padding: 34px 0; border-top: 1px solid #e4e8ed; }

.project-bands img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; border-radius: 4px; }

.project-bands h2 { margin-top: 0; }

@media (max-width: 1180px) { .home-hero__proof { left: calc(100% + 12px); width: 360px; } }
@media (max-width: 860px), (hover: none), (pointer: coarse) { .home-hero { display: block; padding-bottom: 10px; }
  .home-hero__headline { white-space: normal; }
  .home-hero__proof { display: none; } }
@media (max-width: 720px) { .research-atlas__stage, .research-atlas[data-count="2"] .research-atlas__stage { display: grid; min-height: 0; gap: 12px; overflow: visible; }
  .research-atlas__threads { display: none; }
  .research-region, .research-atlas[data-count="2"] .research-region, .research-atlas[data-count="3"] .research-region { position: relative; inset: auto; width: 100%; height: 168px; }
  .research-atlas__core { position: relative; left: auto; top: auto; order: -1; width: min(86%, 260px); min-height: 112px; margin: 0 auto 4px; transform: rotate(-0.5deg); }
  .research-atlas__core:hover, .research-atlas__core:focus-visible { transform: translateY(-2px) rotate(0); }
  .research-region__label, .research-region--1 .research-region__label, .research-region--2 .research-region__label, .research-region--3 .research-region__label, .research-region--4 .research-region__label, .research-atlas[data-count="3"] .research-region--3 .research-region__label { top: 24px; right: auto; bottom: auto; left: 26px; max-width: 56%; text-align: left; transform: none; }
  .research-region--2 .research-region__label::after, .research-region--4 .research-region__label::after, .research-atlas[data-count="3"] .research-region--3 .research-region__label::after { margin-left: 0; }
  .research-region__question, .research-region--1 .research-region__question, .research-region--2 .research-region__question, .research-region--3 .research-region__question, .research-region--4 .research-region__question, .research-atlas[data-count="3"] .research-region--3 .research-region__question { left: 26px; right: auto; top: auto; bottom: 22px; width: 66%; text-align: left; opacity: 1; transform: none; font-size: 10px; }
  .research-region__works { left: 56%; }
  .research-atlas__legend { margin-top: 14px; justify-content: flex-start; }
  .home-methods__grid { grid-template-columns: 1fr; }
  .research-story__section { grid-template-columns: 46px minmax(0, 1fr); gap: 14px; }
  .editorial-sections article, .project-bands article { grid-template-columns: 1fr; gap: 12px; }
  .editorial-sections article .section-kicker { grid-row: auto; } }
@media (prefers-reduced-motion: reduce) { .home-typewriter::after, .research-dot { animation: none !important; } }
/* Reusable academic page components */
.portfolio-component { margin: clamp(2rem, 5vw, 3.4rem) 0; }

.portfolio-component > h2, .pub-section > h2 { margin: 0 0 1rem; padding-bottom: 0.65rem; border-bottom: 1px solid #e3e8ee; color: #20242a; font-size: clamp(1.05rem, 2vw, 1.25rem); letter-spacing: 0; }

.publication-intro { max-width: 50rem; margin: 0 0 clamp(1.5rem, 4vw, 2.4rem); }

.publication-intro p { margin: 0; color: #4f5b69; font-size: clamp(17px, 1.05vw, 19px); line-height: 1.72; }

.pub-section { --pub-panel-border: rgba(219, 226, 234, 0.96); margin: 0 0 clamp(2.3rem, 5vw, 3.3rem); }

.pub-first-note { display: inline-flex; align-items: center; gap: 8px; margin: 0 0 20px; color: #52677d; font-size: 12px; font-weight: 650; }

.pub-first-note span { width: 8px; height: 8px; border-radius: 50%; background: linear-gradient(135deg, var(--sim-blue), var(--sim-green)); box-shadow: 0 0 0 4px rgba(123, 156, 200, 0.12); }

.pub-year { margin: 26px 0 12px; color: #929ba7; font-size: 12px; font-weight: 750; letter-spacing: 0.08em; text-transform: uppercase; }

.bl-pcard { display: flex; gap: clamp(1rem, 2.6vw, 1.4rem); align-items: flex-start; margin-bottom: 24px; padding: clamp(1rem, 2.6vw, 1.35rem); border: 1px solid var(--pub-panel-border); border-radius: 8px; background: #fbfcfe; }

.bl-pcard__thumb { flex: 0 0 180px; width: 180px; max-width: 180px; aspect-ratio: 4 / 3; border-radius: 5px; object-fit: cover; background: #fff; }

.bl-pcard__body { flex: 1; min-width: 0; }

.bl-pcard--lead .bl-pcard__body::before, .pub-entry__dot + .pub-entry__body::before { content: "First / corr."; display: inline-flex; margin: 0 0 9px; color: #49647f; font-size: 10.5px; font-weight: 750; letter-spacing: 0.04em; text-transform: uppercase; }

.bl-pcard__title { margin: 0 0 6px; color: #20242a; font-size: 15px; font-weight: 750; line-height: 1.45; }

.bl-pcard__authors { margin-bottom: 3px; color: #414a55; font-size: 13px; line-height: 1.5; }

.bl-pcard__venue { color: #77818d; font-family: Georgia, serif; font-size: 12.5px; font-style: italic; }

.pub-entry { display: flex; align-items: flex-start; margin-bottom: 12px; }

.pub-entry__dot, .pub-entry__dot--empty { width: 0; flex: 0 0 0; }

.pub-entry__body { width: 100%; padding: 14px 16px; border: 1px solid var(--pub-panel-border); border-radius: 8px; background: #fff; color: #36404b; font-size: 14px; line-height: 1.7; }

.pub-tags { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 8px; }

.pub-tag { display: inline-flex; padding: 3px 8px; border-radius: 999px; text-decoration: none; font-size: 10.5px; font-weight: 750; }

.pub-tag--doi { background: #edf2fa; color: #365f9b; }

.pub-status { margin-left: 5px; color: #8a939f; font-size: 11.5px; font-style: italic; }

.pub-recognition { margin-top: 12px; padding-top: 11px; border-top: 1px solid #e8dfc9; }

.pub-recognition__label { color: #8d6a21; font-size: 10px; font-weight: 750; letter-spacing: 0.06em; text-transform: uppercase; }

.pub-recognition__title { margin: 4px 0; color: #2d3136; font-size: 13px; font-weight: 700; }

.pub-recognition__body { color: #5e6874; font-size: 12.5px; line-height: 1.6; }

@media (max-width: 600px) { .bl-pcard { flex-direction: column; }
  .bl-pcard__thumb { width: 100%; max-width: none; } }
/* Keep the homepage map secondary to the introduction. The Research page uses the full canvas. */
@media (min-width: 721px) { .layout--home .research-atlas { width: min(88%, 840px); margin-right: auto; margin-left: auto; }
  .layout--home .research-atlas__stage { min-height: 520px; }
  .layout--home .research-atlas[data-count="4"] .research-region { width: 49%; height: 49%; }
  .layout--home .research-atlas[data-count="4"] .research-region--1 { left: 1.5%; top: 1.5%; }
  .layout--home .research-atlas[data-count="4"] .research-region--2 { right: 1.5%; top: 1.5%; }
  .layout--home .research-atlas[data-count="4"] .research-region--3 { left: 1.5%; bottom: 1.5%; }
  .layout--home .research-atlas[data-count="4"] .research-region--4 { right: 1.5%; bottom: 1.5%; }
  .layout--home .research-region__shape { border-color: color-mix(in srgb, var(--region-color) 34%, #69717b); }
  .layout--home .research-region__sketch { opacity: 0.48; } }
