@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
   Five semantic steps for application chrome: a resting raised fill, one
   nested step above it (card header strips), a translucent hover tint, and two
   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. */
/* 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). */
/* 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.
   ========================================================================== */
/* ==========================================================================
   UI patterns

   Shared shapes for the dense application surfaces — collaboration projects,
   the admin console, the error log. Everything here is an `@extend` target
   rather than a utility class, deliberately: several of the class names in the
   markup are JS hooks (`.proj-reply-btn` and `.proj-edit-update-btn` bind
   different handlers, `.proj-img-thumb` and `.proj-img-picker__tile` belong to
   different managers), so the names stay put and only the duplicated
   declarations move here.

   Imported by extra_main.scss, collab.scss and admin_ui.scss. A placeholder
   emits nothing until an entry point extends it, so importing it everywhere
   costs no bytes.
   ========================================================================== */
/*
   Text
   ========================================================================== */
/* Secondary line: timestamps, counts, breadcrumbs, hints. The one muted-text
   recipe — a dozen rules had spelled it out with font sizes between 0.78rem
   and 0.85rem. */
.search-result__type {
  color: rgb(135.5, 138, 143);
  font-size: 0.8rem;
}

/* Structural label: table headers, card header strips, section headings. Size
   stays with the consumer, since a table header and a section heading are not
   the same weight of thing; only the treatment is shared.

   This is grammar the site already speaks — do not add new instances of it as
   decoration above arbitrary sections. */
.search-results__section-heading {
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.05em;
}

/*
   Surfaces
   ========================================================================== */
/* Panel, card, tile, popover. Opaque, so it reads the same in flow, nested, or
   floating over content. Flat by design — depth is the tonal step, never a
   shadow (DESIGN.md → Elevation & Depth). */
/* The header strip inside %card-surface. Whether it separates itself with a
   border, a tonal step or an accent edge is the consumer's call — that edge is
   what distinguishes a project card from an admin tile. */
/*
   Controls
   ========================================================================== */
/* Text input, textarea and select across the app surfaces. The focus glow is
   left to _forms.scss's `input:focus` — the system's one deliberately visible
   shadow — so this only re-points the border at the accent. */
/* Bare glyph button sitting in a line of text — reply, edit, permalink.
   `:focus-visible` is included because these carry no border or fill of their
   own: without it a keyboard user gets no indication at all. */
/* Counter or tag riding alongside a label — tab counts, filter counts. */
/* Identifier rendered as code: project slugs. Monospace here is measurement,
   not costume — these strings are copied and typed back verbatim. */
/*
   Media
   ========================================================================== */
/* Fixed-ratio image tile: upload thumbnails and the existing-image picker. */
/* Round control pinned inside %img-tile. Absolute black rather than a skin
   colour — it has to survive whatever photograph is underneath, which is also
   why #fff is the correct label colour here on every skin. The consumer sets
   `left` or `right`. */
/* Avatar disc. Palette background/text per deterministic hash slot — see
   AVATAR_PALETTE_SIZE in dynamic/lib/constants.php and $avatar-palette in
   _variables.scss. PHP and JS only ever emit the slot index. */
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;
  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: cover;
}
.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;
}

/*
   "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 */
