@charset "UTF-8";
/* ==========================================================================
   Dark skin
   ========================================================================== */
/* Colors */
/* dark syntax highlighting (base16) */
.author__urls.social-icons .svg-inline--fa,
.page__footer-follow .social-icons .svg-inline--fa {
  color: inherit;
}

/* ==========================================================================
   Variables
   ========================================================================== */
/*
   Typography
   ========================================================================== */
/* paragraph indention */
/* system typefaces */
/* sans serif typefaces */
/* serif typefaces */
/* type scale */
/* headline scale
   The theme's own scale, restored. It was briefly compressed to make section
   headings smaller, but the headings that were actually too large were the
   setext `===` h1s inside rendered markdown, which the page-title rule was
   capturing — see .rendered-markdown in extra_main.scss. That is fixed at the
   source, so the scale needs its full range back: content headings are shifted
   down one level and need somewhere to step to. */
/* dense-UI type ladder
   The $type-size scale above is em-based and sized for running prose. The
   admin console, error log and collaboration-project surfaces are dense
   application UI whose labels, badges and meta lines all sit below body size;
   left ungoverned they had accumulated 34 distinct font-size values. These are
   rem so they track the root size steps ($doc-font-size-medium/large/x-large)
   instead of compounding against whatever parent they land in. */
/*
   Colors
   ========================================================================== */
/* accent — used for callouts/highlights across page/people/publi */
/* page-title accent — $accent-color pulled toward the foreground.
   Raw $accent-color on $background-color fails the 3:1 large-text floor on six
   of the eleven shipped skins (contrast 1.27:1, default 2.05:1, air 2.36:1,
   mint 2.51:1, aqua 2.65:1, sunrise 2.86:1), so a display-scale heading cannot
   use it directly. 60% is the most accent this mix can carry while the worst
   skin still clears 3:1 (contrast, 3.51:1); it darkens on light skins and
   lightens on dark ones, the same construction as $link-color. */
/* hero scrim strength — multiplier on the darkening layer under hero overlay
   text. Declared here so every skin compiles; a skin may override it. 0 removes
   the scrim entirely, which will fail contrast over a light hero image. */
/* project status badges */
/* project category (mindmap + cards) */
/* avatar palette — deterministic hash slot -> color */
/* raised-surface ladder
   Six semantic steps for application chrome: a resting raised fill, one
   nested step above it (card header strips), a translucent hover tint, and
   three hairline weights. Ten separate rgba($text-color, …) alphas served
   these intents before, several of them relying on translucency stacking
   through nested elements.

   The fills are opaque mixes rather than rgba: a card, panel or popover must
   read the same whether it sits on the page, inside another surface, or over
   the content it overlays. Only $surface-hover stays translucent, because
   pointer feedback should tint whatever it lands on. Mixing $text-color into
   $background-color also means one token lightens on dark skins and darkens on
   light ones, instead of a #fff-derived value that vanishes on the light skins. */
/* The control-boundary step. A 1px edge is what identifies a tonal control
   whose fill is only an 8% lift off the page, and WCAG 1.4.11 asks 3:1 of it.
   $hairline-strong does not carry that: at 38% it measures 2.01:1 on aqua and
   mint, 2.09 on dirt, 2.18 on air — seven of the nine distinct skins fail. 60%
   is the lowest weight that clears 3:1 on all of them (worst: aqua and mint at
   3.33). Reach for it on a control outline, not on a divider. */
/* collaboration-project surface tokens
   Aliases onto the ladder above — the collab views reference these names ~60
   times, and they used to be mixed against #fff, which collapsed to invisible
   on the light skins ($proj-surface resolved to #fff on a #fff page). */
/* 80%, not the 50% this started at: this token carries running text — meta
   lines, card header strips, the admin console's tile links — and 50% put all
   of it below 4.5:1 on every one of the eleven skins (aquila_dark measured
   3.34:1 on $surface-raised, 2.87:1 on $surface-raised-alt). 80% is the lowest
   weight that clears the body floor on both raised steps for ten skins; the
   eleventh, mint, needed its own $text-color deepened, since no mix weight can
   recover contrast its root colour never had. See DESIGN.md → Colors. */
/* photo overlays
   Chrome that sits on top of an image (thumbnail captions, remove buttons,
   progress tracks). These stay absolute black: they must darken a photograph,
   not the page, so they are the one place skin derivation would be wrong.
   0.55 is the measured hero-scrim value — see .hero--main-bg. */
/* inline emphasis (filename patterns, download counts)
   The link tint rather than a fresh hue, so emphasised inline text keeps its
   contrast on every skin instead of relying on a hardcoded teal or yellow. */
/* YIQ color contrast */
/* brands */
/* links */
/* notices */
/* syntax highlighting (base16) */
/*
   Breakpoints
   ========================================================================== */
/*
   Grid
   ========================================================================== */
/*
   Other
   ========================================================================== */
/* One radius drives the system. The three names below are the only sanctioned
   variations: the doubled step for pill-shaped controls (the authors-panel
   select precedent), a fully rounded chip, and a circle for avatars and dots.
   Anything else — 3px, 5px, 0.375rem — is drift, not a decision. */
/* Feedback on a control the pointer is already on — hover fills, border tints.
   Replaces the 0.1s/0.12s/0.15s trio that had drifted apart for one intent. */
/* ==========================================================================
   MIXINS
   ========================================================================== */
/*
   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
   ========================================================================== */
/*
   Tonal badge — the system's status/category chip formula
   Fill is the semantic colour pulled most of the way back toward the page, so
   the chip reads as a tint rather than a solid saturated block. The label is
   then pushed away from that fill: lightened on dark skins, darkened on light
   ones. The hardcoded `mix(#fff, $color, 60%)` this replaces was correct only
   on the dark skins — on the nine light ones it put a pale label on a pale
   fill. Ten hand-written copies of the pair existed before it was a mixin.
   ========================================================================== */
/*
   Themeable <select> chevron — bakes a theme color into an inline SVG data URI
   so the arrow follows the active skin instead of a hardcoded fill.
   ========================================================================== */
.search-result__type {
  color: rgb(194.6, 195.6, 197.6);
  font-size: 0.8rem;
}

.search-results__section-heading {
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.05em;
}

pre.email {
  background: rgb(29.6, 33.6, 41.6);
  padding: 1.5em;
  border: 1px solid rgb(80.6, 84.6, 92.6);
  white-space: pre-wrap;
  word-break: break-word;
  font-size: 0.9rem;
}

.edit-link {
  color: rgb(174.9, 176.4, 179.4);
  font-size: 0.8rem;
  text-decoration: none;
  margin-left: 0.25rem;
}
.edit-link:hover {
  color: #eaeaea;
}

.skip-link {
  top: 0;
  inset-inline-start: 0;
}
.skip-link a:focus {
  background: #252a34;
  color: #eaeaea;
  outline: 2px solid #00adb5;
  outline-offset: -2px;
}

#content:focus {
  outline: none;
}

#main.regular-main {
  margin-top: 1em;
}

/*
   Page title
   ========================================================================== */
#main > h1,
#main > .page__title-row {
  margin-top: 2rem;
  margin-bottom: 1rem;
}

#main > .page__title-row > h1 {
  margin: 0;
}

#main > h1,
#main > .page__title-row > h1 {
  font-size: 1.563em;
  line-height: 1.15;
  color: rgb(246.6, 185.4, 185.4);
  text-align: start;
  max-width: 768px;
  text-wrap: balance;
}
@media print {
  #main > h1,
  #main > .page__title-row > h1 {
    font-size: 17pt;
    color: #000;
    max-width: none;
  }
}

#main > h1.post-title {
  text-align: center;
  margin-inline: auto;
}

#main > .page__title-row {
  justify-content: center;
}

#main > .page__title-row > h1.post-title {
  text-align: center;
}

/*
   Rendered markdown
   ========================================================================== */
.rendered-markdown h1 {
  font-size: 1.25em;
  color: rgb(246.6, 185.4, 185.4);
  margin: 2em 0 0.5em;
}
.rendered-markdown h2 {
  font-size: 1.125em;
}
.rendered-markdown h3 {
  font-size: 1.0625em;
}
.rendered-markdown h4 {
  font-size: 1.03125em;
}
.rendered-markdown h5,
.rendered-markdown h6 {
  font-size: 1em;
}

.dry-run {
  background-color: rgb(87.25, 55.25, 61.75);
  color: rgb(248.2, 191, 189.4);
  border: 1px solid rgb(127.45, 65.85, 69.55);
  padding: 0.75em 1em;
  border-radius: 4px;
}

.page-footer--alternate-location {
  font-family: -apple-system, BlinkMacSystemFont, "Roboto", "Segoe UI", "Helvetica Neue", "Lucida Grande", Arial, sans-serif;
  font-size: 0.75em;
  text-transform: uppercase;
  font-weight: bold;
}
.page-footer--alternate-location a img {
  background-color: #fff;
  height: 1em;
}

/*
   Forms (talk submission, contact)
   ========================================================================== */
form .date label,
.captcha-container .date label {
  display: inline;
}
form .date input,
.captcha-container .date input {
  width: 20%;
  max-width: 10em;
}
form .checkbox,
.captcha-container .checkbox {
  display: inline;
  width: auto;
}
form select,
.captcha-container select {
  background-color: inherit;
}
form input[type=file],
.captcha-container input[type=file] {
  width: 100%;
  display: block;
}
form .aquila_people_list,
.captcha-container .aquila_people_list {
  margin-top: 1em;
  padding-bottom: 1em;
  border: 1px solid #ee5f5b;
}
form .aquila_people_list .checkbox,
.captcha-container .aquila_people_list .checkbox {
  display: block;
  margin-bottom: 1em;
  font-weight: bold;
}
form .aquila_people_list .aquila_people,
.captcha-container .aquila_people_list .aquila_people {
  font-weight: normal;
  padding-left: 3em;
}
form .aquila_people_list input,
.captcha-container .aquila_people_list input {
  margin-right: 0.5em;
}
form .confirm_pdf,
.captcha-container .confirm_pdf {
  margin: 1em;
  padding: 1em;
  border: 1px solid #ee5f5b;
}
form .confirm_pdf.confirmed,
.captcha-container .confirm_pdf.confirmed {
  border: 2px solid #3fa63f;
}
form .confirm_pdf input,
.captcha-container .confirm_pdf input {
  margin-left: 1em;
}

.captcha-container {
  margin: 1em 0;
  padding: 1em;
  background: rgb(31.45, 35.7, 44.2);
  border: 1px solid rgb(80.6, 84.6, 92.6);
  border-radius: 4px;
}

/*
   Home page (index_splash)
   ========================================================================== */
.splash__section-title {
  margin-top: 0;
  font-size: 1.563em;
}

.feature__item {
  border: 1px solid rgb(80.6, 84.6, 92.6);
  padding: 5px;
}

.feature__wrapper.featured_post::after {
  content: " ";
  width: 100%;
  padding-top: 1em;
}

.feature__wrapper.featured_post {
  display: flex;
  flex-wrap: wrap;
  align-items: stretch;
  gap: 2em;
}
.feature__wrapper.featured_post .feature__item {
  float: none;
  width: auto;
  margin-inline-start: 0;
  margin-bottom: 0;
  flex: 1 1 100%;
  min-width: 0;
  display: flex;
}
@media (min-width: 600px) {
  .feature__wrapper.featured_post .feature__item {
    flex: 1 1 calc((100% - 4em) / 3);
    max-width: calc((100% - 4em) / 3);
  }
}
.feature__wrapper.featured_post .archive__item {
  display: flex;
  flex-direction: column;
  width: 100%;
  min-width: 0;
}
.feature__wrapper.featured_post .archive__item-teaser img {
  display: block;
  width: 100%;
  aspect-ratio: 1/1;
  object-fit: contain;
  background: rgb(52.76, 57.36, 66.56);
  border-radius: 4px;
}
.feature__wrapper.featured_post .archive__item-body {
  display: flex;
  flex-direction: column;
  flex: 1 1 auto;
  min-width: 0;
}
.feature__wrapper.featured_post .archive__item-title {
  display: -webkit-box;
  -webkit-line-clamp: 2;
  line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
  overflow-wrap: break-word;
}
.feature__wrapper.featured_post .archive__item-excerpt p {
  display: -webkit-box;
  -webkit-line-clamp: 4;
  line-clamp: 4;
  -webkit-box-orient: vertical;
  overflow: hidden;
  overflow-wrap: break-word;
  margin-bottom: 0;
}
.feature__wrapper.featured_post .archive__item-body > p:last-child {
  margin-top: auto;
  margin-bottom: 0;
  padding-top: 1em;
}

.page__title-row {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 0.25rem;
}

.hero--main-bg {
  background-color: #252a34;
  background-image: linear-gradient(to bottom, rgba(0, 0, 0, 0.55), rgba(0, 0, 0, 0.55)), var(--hero-img, url("/assets/images/main_smaller.jpg"));
}

.page__hero--overlay .page__hero-caption {
  opacity: 1;
  background: rgba(0, 0, 0, 0.6);
  max-width: 92%;
  line-height: 1.35;
  font-family: -apple-system, BlinkMacSystemFont, "Roboto", "Segoe UI", "Helvetica Neue", "Lucida Grande", Arial, sans-serif;
}
@media (min-width: 768px) {
  .page__hero--overlay .page__hero-caption {
    max-width: 34em;
  }
}
@media (min-width: 1024px) {
  .page__hero--overlay .page__hero-caption {
    font-size: 0.625em;
  }
}
.page__hero--overlay .page__hero-caption a {
  text-decoration: underline;
}

.page__hero-actions {
  margin-top: 1em;
  margin-bottom: 0;
}

/*
   Utilities
   ========================================================================== */
.text--error {
  color: #ee5f5b;
  font-weight: bold;
}

.text--success {
  color: #3fa63f;
  font-weight: bold;
}

.text--warning {
  color: #d67f05;
  font-weight: bold;
}

.text--muted {
  color: rgb(174.9, 176.4, 179.4);
}

.mt-sm {
  margin-top: 0.5em;
}

.mt-md {
  margin-top: 1em;
}

.mt-lg {
  margin-top: 1.5em;
}

.mt-xl {
  margin-top: 2em;
}

.ml-sm {
  margin-left: 0.5em;
}

.mr-md {
  margin-right: 1em;
}

.list--plain {
  list-style: none;
  padding: 0;
}
.list--plain li {
  margin-bottom: 0.5em;
}

.input--medium {
  width: 20em;
}

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

.page-actions {
  margin-top: 2em;
}

.is-hidden {
  display: none !important;
}

.btn--sm {
  padding: 0.25rem 0.6rem;
  font-size: 0.8rem;
}

/*
   Search results (rendered by _app/app/mistakes/base_mistakes.js)
   ========================================================================== */
#results {
  margin-top: 1em;
}

.search-results__section-heading {
  font-size: 1.125em;
  margin: 1.5em 0 0.75em;
  padding: 0.5em 0;
  color: #eaeaea;
  border-bottom: 2px solid #00adb5;
}
.search-results__section-heading:first-of-type {
  margin-top: 0.5em;
}

.search-result {
  margin-bottom: 1em;
  width: 100%;
}
.search-result:last-child {
  margin-bottom: 0;
}

.search-result__link {
  color: #00adb5;
  text-decoration: none;
  font-weight: 500;
}
.search-result__link:hover {
  text-decoration: underline;
}

.search-result__type {
  font-size: 0.9rem;
  margin-top: 0.25em;
}

/*
   Inline emphasis: talks, publications, people
   ========================================================================== */
.filename-pattern {
  display: inline-block;
  color: rgb(140.4, 209.6, 212.8);
  font-weight: bold;
}

.filename-preview {
  color: rgb(140.4, 209.6, 212.8);
}

.download-count {
  font-weight: bold;
  color: rgb(140.4, 209.6, 212.8);
}

.arxiv-icon {
  padding: 0 0.2em;
  vertical-align: baseline;
}

.orcid-link {
  vertical-align: top;
}

.orcid-icon {
  margin-right: 0.5em;
}

.forgejo-icon {
  height: 1em;
  width: auto;
}

a .fa-fw {
  color: #eaeaea;
}

/*
   "View as member" admin banner
   ========================================================================== */
.view-as-bar {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 0.75em;
  padding: 0 1em;
  line-height: 1.8;
  font-size: 0.72rem;
  background: #252a34;
  border-bottom: 1px solid rgb(80.6, 84.6, 92.6);
}
.view-as-bar--active {
  background-color: rgb(81.25, 63.25, 40.25);
  color: #fff;
  justify-content: space-between;
}

.view-as-bar__label {
  font-weight: 500;
}

.view-as-bar__form {
  margin: 0;
  padding: 0;
  background: transparent;
}

.view-as-bar__button {
  background: none;
  border: 1px solid currentColor;
  border-radius: 4px;
  padding: 0 0.5em;
  line-height: 1.5;
  font-size: 0.72rem;
  color: inherit;
  cursor: pointer;
}
.view-as-bar__button:hover, .view-as-bar__button:focus-visible {
  background: rgba(234, 234, 234, 0.1);
}

/*# sourceMappingURL=extra_main.css.map */
