/*!
 * Bootstrap v5.3.1 -- SUBSET, hand-extracted. Do not treat as upstream.
 * Copyright 2011-2023 The Bootstrap Authors. Licensed under MIT.
 *
 * Upstream bootstrap.min.css is 227 KB / 2031 classes; this site uses 36 of
 * them (1.8 %). Cross-review N-3. The full file is no longer in the repo --
 * regenerate the reference from `npm pack bootstrap@5.3.1` if this ever needs
 * re-deriving.
 *
 * WHAT IS IN HERE, and why each part cannot simply be dropped:
 *
 *   1. Reboot fragments. style.css opens with `* { margin: 0; padding: 0 }`,
 *      which loses to Reboot's *element* selectors (0,0,1 beats 0,0,0). So the
 *      site's paragraph/heading/list spacing comes from Reboot today, not from
 *      style.css. Dropping it collapses every margin to zero. Same for
 *      `::before`/`::after` box-sizing: box-sizing is not inherited, and
 *      style.css's `*` does not cover pseudo-elements, so the many ::before /
 *      ::after boxes in style.css would silently switch to content-box.
 *   2. Type. style.css sets font-family/weight/line-height/colour on h1-h6 but
 *      never font-size; the responsive sizes below are the only ones.
 *   3. Layout. .container, .row, the .col-lg-N set and .g-4, plus the flex and
 *      spacing utilities -- the genuinely Bootstrap-only classes. (Written out
 *      rather than globbed: a wildcard next to a slash closes this comment, and
 *      the whole file then silently stops applying. It cost one full
 *      screenshot round-trip to notice.)
 *   4. The handful of .btn/.nav-link/.navbar declarations style.css does NOT
 *      already restate (mostly `display`, and .btn's inline alignment).
 *
 * WHAT WAS DELIBERATELY LEFT OUT -- verified by computed-style diff, not by
 * reading:
 *   - Everything style.css already overrides (all .btn/.btn-primary/
 *     .btn-outline-light/.btn-lg colours, padding, borders; .container's
 *     max-width and its five breakpoint steps; .nav-link colours and padding).
 *   - `.btn:hover { background-color / border-color }`. Those resolved to
 *     Bootstrap blue (#0b5ed7 / #0a58ca) and style.css's `.btn-primary:hover`
 *     does not restate border-color -- so hovering the primary button used to
 *     paint a 2 px #0a58ca border on a green-branded site. Not reproduced: it
 *     was a defect, and its removal is the one intended visual change here.
 *   - `.nav-link:focus-visible { outline: 0; box-shadow: <bootstrap blue> }`,
 *     which at (0,2,0) outranked style.css's own `*:focus-visible` accent
 *     outline. Not reproduced, for the same reason. Nav links now get the
 *     site's accent focus ring like every other control.
 *   - Reboot's table, form-control and form-element rules. No page on this site
 *     has a <table>, <input>, <select>, <textarea> or <label>; adding a page
 *     that does means revisiting this file (see CLAUDE.md).
 *   - The `--bs-*` custom properties. Nothing outside bootstrap.min.css ever
 *     read one -- verified across style.css, both vendor stylesheets, all 7
 *     pages and both scripts.
 */

/*--------------------------------------------------------------
# Reboot
--------------------------------------------------------------*/
*,
::after,
::before {
  box-sizing: border-box;
}

body {
  -webkit-text-size-adjust: 100%;
  -webkit-tap-highlight-color: rgba(0, 0, 0, 0);
}

p {
  margin-top: 0;
  margin-bottom: 1rem;
}

ol,
ul {
  margin-top: 0;
  margin-bottom: 1rem;
  padding-left: 2rem;
}

ol ol,
ol ul,
ul ol,
ul ul {
  margin-bottom: 0;
}

b,
strong {
  font-weight: bolder;
}

img,
svg {
  vertical-align: middle;
}

button {
  font-family: inherit;
  font-size: inherit;
  line-height: inherit;
  text-transform: none;
  -webkit-appearance: button;
}

button:not(:disabled) {
  cursor: pointer;
}

button:focus:not(:focus-visible) {
  outline: 0;
}

::-moz-focus-inner {
  padding: 0;
  border-style: none;
}

/*--------------------------------------------------------------
# Type
--------------------------------------------------------------*/
h1,
h2,
h3,
h4,
h5,
h6 {
  margin-top: 0;
  margin-bottom: 0.5rem;
}

h1 {
  font-size: calc(1.375rem + 1.5vw);
}

h2 {
  font-size: calc(1.325rem + 0.9vw);
}

h3 {
  font-size: calc(1.3rem + 0.6vw);
}

@media (min-width: 1200px) {
  h1 {
    font-size: 2.5rem;
  }

  h2 {
    font-size: 2rem;
  }

  h3 {
    font-size: 1.75rem;
  }
}

.lead {
  font-size: 1.25rem;
  font-weight: 300;
}

/*--------------------------------------------------------------
# Containers and grid
--------------------------------------------------------------*/
.container {
  width: 100%;
}

.row {
  --bs-gutter-x: 1.5rem;
  --bs-gutter-y: 0;
  display: flex;
  flex-wrap: wrap;
  margin-top: calc(-1 * var(--bs-gutter-y));
  margin-right: calc(-0.5 * var(--bs-gutter-x));
  margin-left: calc(-0.5 * var(--bs-gutter-x));
}

.row > * {
  flex-shrink: 0;
  width: 100%;
  max-width: 100%;
  padding-right: calc(var(--bs-gutter-x) * 0.5);
  padding-left: calc(var(--bs-gutter-x) * 0.5);
  margin-top: var(--bs-gutter-y);
}

.g-4 {
  --bs-gutter-x: 1.5rem;
  --bs-gutter-y: 1.5rem;
}

@media (min-width: 768px) {
  .col-md-6 {
    flex: 0 0 auto;
    width: 50%;
  }
}

@media (min-width: 992px) {
  .col-lg-4 {
    flex: 0 0 auto;
    width: 33.33333333%;
  }

  .col-lg-5 {
    flex: 0 0 auto;
    width: 41.66666667%;
  }

  .col-lg-6 {
    flex: 0 0 auto;
    width: 50%;
  }

  .col-lg-7 {
    flex: 0 0 auto;
    width: 58.33333333%;
  }

  .col-lg-8 {
    flex: 0 0 auto;
    width: 66.66666667%;
  }
}

@media (min-width: 1200px) {
  .col-xl-5 {
    flex: 0 0 auto;
    width: 41.66666667%;
  }

  .col-xl-6 {
    flex: 0 0 auto;
    width: 50%;
  }
}

/*--------------------------------------------------------------
# Buttons and navigation
--------------------------------------------------------------*/
.btn {
  text-align: center;
  vertical-align: middle;
  -webkit-user-select: none;
  -moz-user-select: none;
  user-select: none;
}

.nav-link {
  display: block;
}

.navbar {
  position: relative;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  padding: 0.5rem 0;
}

/*--------------------------------------------------------------
# Helpers and utilities
--------------------------------------------------------------*/
.fixed-top {
  position: fixed;
  top: 0;
  right: 0;
  left: 0;
  z-index: 1030;
}

.d-flex {
  display: flex !important;
}

.min-vh-100 {
  min-height: 100vh !important;
}

.justify-content-center {
  justify-content: center !important;
}

.justify-content-between {
  justify-content: space-between !important;
}

.align-items-center {
  align-items: center !important;
}

.order-1 {
  order: 1 !important;
}

.order-2 {
  order: 2 !important;
}

.mx-auto {
  margin-right: auto !important;
  margin-left: auto !important;
}

.me-2 {
  margin-right: 0.5rem !important;
}

.ms-3 {
  margin-left: 1rem !important;
}

.pt-3 {
  padding-top: 1rem !important;
}

.pt-4 {
  padding-top: 1.5rem !important;
}

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

@media (min-width: 992px) {
  .order-lg-1 {
    order: 1 !important;
  }

  .order-lg-2 {
    order: 2 !important;
  }

  .pt-lg-0 {
    padding-top: 0 !important;
  }
}
