/* ==========================================================================
   INTERCHANGE for XenForo — light entry stylesheet
   Compile target for the `Interchange` style.

   In XenForo: Appearance → Styles → create style `interchange` (no parent)
   and set its stylesheet to `css/public/interchange.css`.

   DARK MODE
   The dark palette is a separate compiled entry point
   (interchange-dark.less → the `Interchange Dark` child style), NOT a nested
   block in this file: LESS silently drops an @import that sits inside a
   selector, which would leave the dark style rendering in light colours.

   Two ways to get dark, both supported:
     1. Child style — `Interchange Dark` (interchange-dark.less). Reliable,
        server-rendered, per-user or per-group selectable. Recommended.
     2. Client toggle — interchange.js stores the member's preference in
        localStorage and sets `.ix-dark` on <html>. Works for guests too, and
        deliberately re-applies over the child style so a member's explicit
        choice always wins.
   ========================================================================== */
/* ==========================================================================
   INTERCHANGE for XenForo
   _tokens.less — the transit-line design system
   --------------------------------------------------------------------------
   Ported from the Interchange prototype. Everything visual resolves through
   these variables, so retheming the forum is a matter of changing the palette
   variables and nothing else.
   ========================================================================== */
/* ---------- palette: light (default) ---------- */
/* page ground, warm newsprint */
/* recessed ground (inset, code) */
/* raised panel / hover */
/* primary text + hard rules */
/* secondary text */
/* tertiary text, meta */
/* the 2px structural border */
/* hairline dividers, rails */
/* background graph paper */
/* ---------- the four lines ----------
   Every top-level category is a LINE and gets one of these four colours.
   Override per-node with .l1 .l2 .l3 .l4 (see _directory.less).
   To give a forum its own colour, set nodeDescription / a custom class.      */
/* Community   — signal orange */
/* Technology  — dispatch blue */
/* Creative    — hi-vis amber  */
/* Lifestyle   — platform green */
/* ---------- dark mode ----------
   Enabled in Admin CP → Appearance → Styles → Interchange → Palette > Dark.
   XF swaps these by overriding the variables in the dark style properties. */
/* ---------- the departure board ---------- */
/* near-black panel: footer, board, headers    */
/* text on the board                          */
/* muted text on the board                    */
/* ---------- type ---------- */
/* Condensed display widths. Archivo ships as a variable font with a width
   axis; where that axis is unavailable these gracefully fall back to 100%. */
/* ---------- geometry ----------
   The style is deliberately hard-edged: 2px borders, zero radii, zero shadows
   except offset-block "print" shadows. This is the whole aesthetic.           */
/* offset block shadow (hard, never blurred) */
/* ---------- XF variable bridge ----------
   Push Interchange's values into XenForo's own system variables so that core
   templates, the editor, and any add-on that reads style properties inherit
   the look rather than fighting it. */
/* XF style property: the colour of the active line. Admins set this per
   style, per user group, or per user in the CP, which makes the whole
   interface recolour itself without touching a line of CSS. */
/* ==========================================================================
   INTERCHANGE for XenForo — base
   Ground, type, utilities, the four lines, and shared motifs.
   ========================================================================== */
html {
  background-color: #efe9da;
  background-image: linear-gradient(rgba(19, 19, 19, 0.055) 1px, transparent 1px), linear-gradient(90deg, rgba(19, 19, 19, 0.055) 1px, transparent 1px);
  background-size: 32px 32px;
  scroll-padding-top: 100px;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  transition: background-color 0.25s, color 0.25s;
}
body {
  font-family: 'Archivo', system-ui, -apple-system, 'Segoe UI', sans-serif;
  font-size: 15.5px;
  line-height: 1.55;
  color: #131313;
  background-color: transparent;
  min-height: 100vh;
  overflow-x: hidden;
  transition: background-color 0.25s, color 0.25s;
}
/* ---------- the four lines ---------- *
 * Every top-level node is a LINE. Category rows, forum rows, thread rows and
 * post rails all inherit the active line colour from a single class, so a
 * forum and its threads share one colour throughout.
 * -------------------------------------------------------------------------- */
:root {
  --line: #f2461d;
  --on-line: #fff;
}
.l1,
[data-line="l1"] {
  --line: #f2461d;
  --on-line: #fff;
}
.l2,
[data-line="l2"] {
  --line: #2547d0;
  --on-line: #fff;
}
.l3,
[data-line="l3"] {
  --line: #f2aa00;
  --on-line: #131313;
}
.l4,
[data-line="l4"] {
  --line: #16935a;
  --on-line: #fff;
}
/* ---------- links ---------- */
a {
  color: #131313;
  text-decoration: none;
}
a:hover {
  color: #131313;
}
/* ---------- selection & focus ---------- */
::selection {
  background: var(--line);
  color: var(--on-line);
}
:focus-visible {
  outline: 3px solid var(--line);
  outline-offset: 2px;
}
/* ---------- type motifs ---------- */
.p-title,
.pTitle-value {
  font-size: clamp(38px, 6vw, 84px);
  font-weight: 900;
  font-stretch: 62%;
  text-transform: uppercase;
  line-height: 0.86;
  letter-spacing: -0.01em;
  color: #131313;
  margin: 0;
}
.p-title-value {
  font-size: inherit;
  font-weight: inherit;
  font-stretch: inherit;
  color: inherit;
  line-height: inherit;
  letter-spacing: inherit;
}
.u-mono {
  font-family: 'IBM Plex Mono', ui-monospace, 'SF Mono', Menlo, Consolas, monospace;
  font-size: 11px;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: #7a7466;
}
.u-muted {
  color: #7a7466;
}
.u-hidden {
  display: none !important;
}
@media (max-width: 980px) {
  .u-hiddenDesktop {
    display: none !important;
  }
}
/* ---------- breadcrumbs ---------- */
.p-breadcrumbs {
  font-family: 'IBM Plex Mono', ui-monospace, 'SF Mono', Menlo, Consolas, monospace;
  font-size: 11px;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  padding: 22px 0 0;
  margin: 0;
}
.p-breadcrumbs li {
  display: inline-block;
  color: #7a7466;
}
.p-breadcrumbs li:before,
.p-breadcrumbs li:after {
  color: var(--line);
  font-weight: 700;
  padding: 0 8px;
}
.p-breadcrumbs li:before {
  content: "\203A";
}
.p-breadcrumbs li a:hover {
  color: #131313;
  text-decoration: underline;
}
.p-breadcrumbs li:first-child:before {
  content: none;
  padding: 0;
}
.p-breadcrumbs li:last-child {
  color: #131313;
  font-weight: 600;
}
.p-breadcrumbs li:last-child:after {
  content: none;
  padding: 0;
}
/* ---------- page header ---------- */
.p-header {
  display: flex;
  gap: 30px;
  align-items: flex-end;
  flex-wrap: wrap;
  padding: 28px 0;
  border-bottom: 2px solid #131313;
}
.p-header-description {
  max-width: 52ch;
  color: #403d36;
  font-size: 17px;
  margin: 0;
}
.p-header-actions {
  margin-left: auto;
  display: flex;
  gap: 10px;
  flex-wrap: wrap;
}
/* ---------- section headings ---------- */
.p-section-header {
  font-size: 32px;
  font-weight: 900;
  font-stretch: 62%;
  text-transform: uppercase;
  line-height: 1;
  color: #131313;
}
.u-hiddenVisually {
  position: absolute;
  left: -9999px;
  width: 1px;
  height: 1px;
  overflow: hidden;
}
/* ---------- the line motif: a station dot on a track ---------- */
.ix-rail {
  display: flex;
  align-items: center;
  margin: 60px 0 0;
  font-family: 'IBM Plex Mono', ui-monospace, 'SF Mono', Menlo, Consolas, monospace;
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.1em;
  text-transform: uppercase;
}
.ix-rail:before {
  content: "";
  width: 18px;
  height: 18px;
  border: 5px solid #131313;
  border-radius: 50%;
  background: #efe9da;
  flex: none;
}
.ix-rail span {
  padding: 0 14px;
}
.ix-rail:after {
  content: "";
  flex: 1;
  height: 5px;
  background: var(--line);
}
/* ---------- avatars: hard-edged, one clipped corner ---------- */
.avatar {
  border-radius: 0 44% 0 0;
  background: #131313;
  color: #efe9da;
  font-weight: 800;
  font-stretch: 76%;
  text-transform: uppercase;
  overflow: hidden;
  flex: none;
}
.avatar .avatar-stretch {
  border-radius: 0 44% 0 0;
}
.avatar--s {
  width: 30px;
  height: 30px;
}
.avatar--m {
  width: 40px;
  height: 40px;
}
.avatar--l {
  width: 56px;
  height: 56px;
}
.avatar--xl {
  width: 128px;
  height: 128px;
}
.avatar-status--online:after {
  content: "";
  position: absolute;
  right: -3px;
  bottom: -3px;
  width: 11px;
  height: 11px;
  border-radius: 50%;
  background: #16935a;
  border: 2px solid #efe9da;
}
/* ---------- stacked participants ---------- */
.avatar-stack {
  display: flex;
}
.avatar-stack .avatar {
  margin-left: -7px;
  box-shadow: 0 0 0 2px #efe9da;
}
.avatar-stack .avatar:first-child {
  margin-left: 0;
}
/* ---------- user interaction / ownership ---------- */
.contentRow-title {
  font-size: 17px;
  font-weight: 600;
  line-height: 1.25;
}
.contentRow-title:hover {
  text-decoration: underline;
  text-decoration-thickness: 3px;
  text-underline-offset: 3px;
}
.contentRow-title--visited {
  color: #403d36;
}
/* ---------- misc XF resets ---------- */
.block {
  border: 2px solid #131313;
  background: #f8f4e9;
  border-radius: 0;
  box-shadow: none;
}
.block-header {
  font-family: 'IBM Plex Mono', ui-monospace, 'SF Mono', Menlo, Consolas, monospace;
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  background: #131313;
  color: #efe9da;
  padding: 9px 14px;
  border-bottom: 2px solid #131313;
  border-radius: 0;
}
.block-body {
  padding: 16px;
}
.p-nav-header {
  font-family: 'IBM Plex Mono', ui-monospace, 'SF Mono', Menlo, Consolas, monospace;
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: #7a7466;
  padding: 0 0 8px;
  margin: 34px 0 12px;
  border-bottom: 2px solid #131313;
}
.structItem-cell--icon,
.structItem-cell--title {
  vertical-align: middle;
}
/* ---------- pagination as connected stations ---------- */
.pager {
  display: flex;
  align-items: center;
  margin: 34px 0 0;
  flex-wrap: wrap;
  row-gap: 10px;
}
.pager .pageNav {
  position: relative;
  display: grid;
  place-items: center;
  min-width: 38px;
  height: 38px;
  border: 2px solid #131313;
  border-radius: 50%;
  background: #efe9da;
  font-family: 'IBM Plex Mono', ui-monospace, 'SF Mono', Menlo, Consolas, monospace;
  font-size: 12px;
  font-weight: 600;
  color: #131313;
}
.pager .pageNav:hover {
  background: #131313;
  color: #efe9da;
}
.pager .pageNav + .pageNav {
  margin-left: 18px;
}
.pager .pageNav + .pageNav:before {
  content: "";
  position: absolute;
  right: 100%;
  top: 50%;
  width: 18px;
  height: 4px;
  margin-top: -2px;
  background: #131313;
}
.pager .pageNav--current {
  background: var(--line);
  color: var(--on-line);
  transform: scale(1.15);
}
.pager .pageNav--gap {
  border-color: transparent;
  background: none;
  min-width: 20px;
}
.pager .pageNav--next {
  border-radius: 0;
  padding: 0 14px;
  font-weight: 700;
}
.pager .pageNav-jump--next {
  margin-left: auto !important;
}
.pager .pageNav-jump--next:before {
  display: none;
}
/* ==========================================================================
   INTERCHANGE for XenForo — header
   The route strip (transit-map nav), brand block, tool buttons, and the
   mobile bottom nav.
   ========================================================================== */
/* ---------- utility strip ---------- */
.p-header-util {
  background: #131313;
  color: #f3eedd;
  font-family: 'IBM Plex Mono', ui-monospace, 'SF Mono', Menlo, Consolas, monospace;
  font-size: 11px;
  font-weight: 500;
  letter-spacing: 0.05em;
  text-transform: uppercase;
}
.p-header-util .ix-util-inner {
  display: flex;
  align-items: center;
  gap: 20px;
  height: 34px;
}
.p-header-util a {
  color: #a9a597;
}
.p-header-util a:hover {
  color: #fff;
}
.p-header-util .ix-util-live {
  display: flex;
  align-items: center;
  gap: 8px;
  white-space: nowrap;
  color: #f2aa00;
}
.ix-pulse {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: #f2461d;
  flex: none;
  animation: ixPulse 1.6s infinite;
}
@keyframes ixPulse {
  0% {
    box-shadow: 0 0 0 0 rgba(242, 70, 29, 0.75);
  }
  100% {
    box-shadow: 0 0 0 10px transparent;
  }
}
/* ---------- masthead ---------- */
.p-header {
  position: sticky;
  top: 0;
  z-index: 50;
  background: #efe9da;
  border-bottom: 2px solid #131313;
  display: block;
  padding: 0;
  transition: transform 0.28s cubic-bezier(0.3, 0.7, 0.2, 1);
}
.p-header:after {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  top: 100%;
  height: 6px;
  background: var(--line);
}
.p-header-inner {
  display: flex;
  align-items: stretch;
  gap: 34px;
  min-height: 78px;
  max-width: 1280px;
  margin: 0 auto;
  padding: 0 28px;
}
/* ---------- brand ---------- */
.p-header-logo {
  display: flex;
  align-items: center;
  gap: 12px;
  flex: none;
  text-decoration: none !important;
}
.p-header-logo .ix-brand-mark {
  width: 46px;
  height: 46px;
}
.p-header-logo-text {
  font-size: 36px;
  font-weight: 900;
  font-stretch: 62%;
  letter-spacing: -0.005em;
  line-height: 0.8;
  text-transform: uppercase;
  color: #131313;
}
.p-header-logo-text small {
  display: block;
  font-family: 'IBM Plex Mono', ui-monospace, 'SF Mono', Menlo, Consolas, monospace;
  font-size: 9.5px;
  font-weight: 500;
  font-stretch: 100%;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  margin-top: 7px;
  color: #7a7466;
}
/* ---------- the route: nav links as stations on a track ---------- */
.p-nav {
  position: relative;
  align-self: stretch;
}
.p-nav .p-nav-list {
  display: flex;
  height: 100%;
  list-style: none;
  margin: 0;
  padding: 0;
}
.p-nav > li {
  position: relative;
  display: flex;
}
.p-nav > li > a {
  position: relative;
  display: flex;
  align-items: center;
  padding: 0 22px 20px;
  font-weight: 800;
  font-stretch: 76%;
  font-size: 20px;
  text-transform: uppercase;
  letter-spacing: 0.02em;
  color: #403d36;
  transition: color 0.12s;
}
.p-nav > li > a:hover {
  color: #131313;
}
.p-nav:before {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  bottom: 15px;
  height: 4px;
  background: #131313;
}
.p-nav:after {
  content: "";
  position: absolute;
  right: -2px;
  bottom: 10px;
  width: 4px;
  height: 14px;
  background: #131313;
}
.p-nav-list > li > a:after {
  content: "";
  position: absolute;
  left: 50%;
  bottom: 9px;
  width: 16px;
  height: 16px;
  margin-left: -8px;
  border: 4px solid #131313;
  background: #efe9da;
  border-radius: 50%;
  transition: transform 0.18s cubic-bezier(0.3, 1.6, 0.5, 1), background 0.12s;
}
.p-nav-list > li > a:hover:after {
  background: #131313;
}
.p-nav-list > li.selected > a {
  color: #131313;
}
.p-nav-list > li.selected > a:after {
  background: var(--line);
  transform: scale(1.4);
}
/* unread count bubble on a nav item */
.p-nav-list > li > a .ix-nav-count {
  font-family: 'IBM Plex Mono', ui-monospace, 'SF Mono', Menlo, Consolas, monospace;
  font-size: 10px;
  font-weight: 600;
  font-style: normal;
  background: #f2461d;
  color: #fff;
  padding: 1px 5px;
  margin-left: 7px;
  transform: translateY(-7px);
  letter-spacing: 0.04em;
}
/* ---------- tools (search / nav / account / theme) ---------- */
.p-header-tools {
  margin-left: auto;
  display: flex;
  align-items: center;
  gap: 10px;
  padding-bottom: 20px;
}
.ix-tbtn {
  position: relative;
  height: 42px;
  min-width: 42px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  border: 2px solid #131313;
  background: #efe9da;
  color: #131313;
  font-weight: 800;
  font-stretch: 76%;
  text-transform: uppercase;
  cursor: pointer;
  transition: background 0.12s, color 0.12s, transform 0.12s;
}
.ix-tbtn:hover {
  background: #131313;
  color: #efe9da;
}
.ix-tbtn:active {
  transform: translate(2px, 2px);
}
.ix-tbtn .ix-tbtn-icon {
  width: 18px;
  height: 18px;
  stroke: currentColor;
  fill: none;
  stroke-width: 1.8;
  stroke-linecap: round;
  stroke-linejoin: round;
}
.ix-tbtn-ct {
  position: absolute;
  top: -9px;
  right: -9px;
  min-width: 20px;
  height: 20px;
  padding: 0 4px;
  background: #f2461d;
  color: #fff;
  font-family: 'IBM Plex Mono', ui-monospace, 'SF Mono', Menlo, Consolas, monospace;
  font-size: 10px;
  font-weight: 600;
  line-height: 16px;
  text-align: center;
  border: 2px solid #efe9da;
}
/* search field */
.ix-search {
  padding: 0 12px;
  min-width: 250px;
  justify-content: flex-start;
  color: #7a7466;
  font-size: 14px;
  transition: min-width 0.25s, box-shadow 0.12s, background 0.12s;
}
.ix-search:hover {
  min-width: 300px;
  background: #efe9da;
  color: #131313;
  box-shadow: 4px 4px 0 var(--line);
}
.ix-search kbd {
  margin-left: auto;
  font-family: 'IBM Plex Mono', ui-monospace, 'SF Mono', Menlo, Consolas, monospace;
  font-size: 10px;
  font-weight: 500;
  border: 1.5px solid currentColor;
  padding: 0 5px;
}
/* current user block */
.ix-me {
  padding: 0 12px 0 0;
  gap: 10px;
  font-weight: 800;
  font-stretch: 76%;
  text-transform: uppercase;
  font-size: 15px;
  color: #131313;
}
/* theme toggle icons */
.ix-theme-toggle .ix-moon {
  display: none;
}
.ix-dark .ix-theme-toggle .ix-moon {
  display: block;
}
.ix-dark .ix-theme-toggle .ix-sun {
  display: none;
}
/* ---------- dropdowns ---------- */
.ix-has-dd {
  position: relative;
}
.ix-dd {
  position: absolute;
  right: 0;
  top: calc(100% + 16px);
  width: 350px;
  background: #f8f4e9;
  border: 2px solid #131313;
  box-shadow: 6px 6px 0 #131313;
  display: none;
  z-index: 70;
  color: #131313;
}
.ix-dd.is-open {
  display: block;
  animation: ixDdIn 0.16s cubic-bezier(0.3, 0.8, 0.3, 1);
}
.ix-dark .ix-dd {
  box-shadow: 6px 6px 0 var(--line);
}
@keyframes ixDdIn {
  from {
    opacity: 0;
    transform: translateY(-6px);
  }
}
.ix-dd-header {
  display: flex;
  justify-content: space-between;
  padding: 10px 14px;
  background: #131313;
  color: #efe9da;
  font-family: 'IBM Plex Mono', ui-monospace, 'SF Mono', Menlo, Consolas, monospace;
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.06em;
  text-transform: uppercase;
}
.ix-dd-item {
  display: grid;
  grid-template-columns: 34px 1fr;
  gap: 12px;
  padding: 12px 14px;
  border-bottom: 1px solid #cdc5ae;
  font-size: 14px;
  line-height: 1.35;
  position: relative;
  color: #131313;
}
.ix-dd-item:hover {
  background: #e6dfcc;
}
.ix-dd-item.is-new:before {
  content: "";
  position: absolute;
  left: 0;
  top: 0;
  bottom: 0;
  width: 5px;
  background: #f2461d;
}
.ix-dd-item small {
  display: block;
  font-family: 'IBM Plex Mono', ui-monospace, 'SF Mono', Menlo, Consolas, monospace;
  font-size: 11px;
  font-weight: 500;
  color: #7a7466;
  margin-top: 3px;
}
.ix-dd-footer {
  display: block;
  padding: 11px 14px;
  text-align: center;
  font-family: 'IBM Plex Mono', ui-monospace, 'SF Mono', Menlo, Consolas, monospace;
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: #131313;
}
.ix-dd-footer:hover {
  background: var(--line);
  color: var(--on-line);
}
.ix-dd-menu a {
  display: flex;
  gap: 12px;
  align-items: center;
  padding: 11px 14px;
  font-weight: 700;
  border-bottom: 1px solid #cdc5ae;
  color: #131313;
}
.ix-dd-menu a:hover {
  background: #131313;
  color: #efe9da;
}
/* ---------- command palette ---------- */
.ix-palette {
  position: fixed;
  inset: 0;
  z-index: 100;
  background: rgba(19, 19, 19, 0.78);
  display: none;
  padding: 10vh 16px 0;
  -webkit-backdrop-filter: blur(2px);
  backdrop-filter: blur(2px);
}
.ix-palette.is-open {
  display: block;
}
.ix-palette-box {
  max-width: 720px;
  margin: 0 auto;
  background: #efe9da;
  border: 2px solid #131313;
  box-shadow: 10px 10px 0 var(--line);
  animation: ixDdIn 0.2s cubic-bezier(0.3, 0.8, 0.3, 1);
}
.ix-palette-input {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 0 18px;
  border-bottom: 2px solid #131313;
}
.ix-palette-input input {
  flex: 1;
  height: 68px;
  background: none;
  border: 0;
  outline: 0;
  font-family: 'Archivo', system-ui, -apple-system, 'Segoe UI', sans-serif;
  font-size: 26px;
  font-weight: 800;
  font-stretch: 76%;
  text-transform: uppercase;
  color: #131313;
}
.ix-palette-input input::placeholder {
  color: #7a7466;
}
.ix-palette-list {
  max-height: 46vh;
  overflow: auto;
}
.ix-palette-group {
  padding: 10px 18px 4px;
  font-family: 'IBM Plex Mono', ui-monospace, 'SF Mono', Menlo, Consolas, monospace;
  font-size: 10px;
  font-weight: 600;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: #7a7466;
}
.ix-palette-row {
  display: flex;
  gap: 12px;
  align-items: center;
  padding: 9px 18px;
  font-weight: 600;
  border-left: 6px solid transparent;
  color: #131313;
}
.ix-palette-row small {
  margin-left: auto;
  font-family: 'IBM Plex Mono', ui-monospace, 'SF Mono', Menlo, Consolas, monospace;
  font-size: 11px;
  font-weight: 500;
  color: #7a7466;
}
.ix-palette-row.is-selected,
.ix-palette-row:hover {
  background: #f8f4e9;
  border-left-color: var(--line);
}
.ix-palette-footer {
  display: flex;
  gap: 16px;
  padding: 10px 18px;
  border-top: 2px solid #131313;
  font-family: 'IBM Plex Mono', ui-monospace, 'SF Mono', Menlo, Consolas, monospace;
  font-size: 10.5px;
  font-weight: 500;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: #7a7466;
}
/* ---------- mobile bottom route nav ---------- */
.ix-bnav {
  display: none;
  position: fixed;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: 60;
  background: #efe9da;
  border-top: 2px solid #131313;
  padding-bottom: env(safe-area-inset-bottom);
}
.ix-bnav a {
  flex: 1;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 3px;
  padding: 12px 0 8px;
  font-family: 'IBM Plex Mono', ui-monospace, 'SF Mono', Menlo, Consolas, monospace;
  font-size: 9.5px;
  font-weight: 600;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: #7a7466;
  position: relative;
}
.ix-bnav .is-selected > a,
.ix-bnav a.is-selected {
  color: #131313;
}
.ix-bnav .is-selected > a:before,
.ix-bnav a.is-selected:before {
  content: "";
  position: absolute;
  top: -2px;
  left: 18%;
  right: 18%;
  height: 6px;
  background: var(--line);
}
.ix-bnav .ix-bnav-ct {
  position: absolute;
  top: 6px;
  left: 54%;
  background: #f2461d;
  color: #fff;
  font-family: 'IBM Plex Mono', ui-monospace, 'SF Mono', Menlo, Consolas, monospace;
  font-size: 9px;
  font-weight: 600;
  line-height: 14px;
  min-width: 15px;
  text-align: center;
}
/* mobile compose FAB */
.ix-fab {
  display: none;
  position: fixed;
  right: 14px;
  bottom: 80px;
  z-index: 55;
  height: 50px;
  padding: 0 20px;
  border: 2px solid #131313;
  background: var(--line);
  color: var(--on-line);
  font-weight: 900;
  font-stretch: 76%;
  text-transform: uppercase;
  align-items: center;
  gap: 8px;
  box-shadow: 4px 4px 0 #131313;
}
/* ==========================================================================
   INTERCHANGE for XenForo — components
   Buttons, forms, badges, prefixes, roles, chips, tabs, quotes, polls.
   ========================================================================== */
/* ---------- buttons ----------
   Hard 2px border, zero radius, and an offset block shadow on hover that
   makes the button appear to lift off the page — no blur anywhere. */
.button {
  height: 42px;
  padding: 0 20px;
  border: 2px solid #131313;
  border-radius: 0;
  background: #efe9da;
  color: #131313;
  font-weight: 800;
  font-stretch: 76%;
  font-size: 16px;
  text-transform: uppercase;
  letter-spacing: 0.03em;
  line-height: 1;
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  transition: transform 0.1s, box-shadow 0.1s, background 0.1s, color 0.1s;
  box-shadow: none;
}
.button:hover {
  background: #131313;
  color: #efe9da;
  transform: translate(-3px, -3px);
  box-shadow: 5px 5px 0 #131313;
}
.button:active {
  transform: none;
  box-shadow: none;
}
.button:disabled,
.button.is-disabled {
  opacity: 0.5;
  cursor: default;
  transform: none;
  box-shadow: none;
}
.ix-dark .button:hover {
  box-shadow: 5px 5px 0 var(--line);
}
.button--primary,
.button.button--action {
  background: var(--line);
  color: var(--on-line);
  border-color: #131313;
}
.button--primary:hover,
.button.button--action:hover {
  background: var(--line);
  color: var(--on-line);
  box-shadow: 5px 5px 0 #131313;
}
.ix-dark .button--primary:hover,
.ix-dark .button.button--action:hover {
  box-shadow: 5px 5px 0 var(--line);
}
.button--dark,
.button.button--cta {
  background: #131313;
  color: #efe9da;
}
.button--dark:hover,
.button.button--cta:hover {
  background: #131313;
  color: #efe9da;
}
.button--link {
  background: transparent;
  border-color: transparent;
  color: #131313;
  font-weight: 700;
}
.button--link:hover {
  background: #e6dfcc;
  color: #131313;
  box-shadow: none;
  transform: none;
}
.button--small,
.button--icon {
  height: 34px;
  padding: 0 13px;
  font-size: 14px;
}
.button--icon {
  width: 34px;
  padding: 0;
  flex: none;
}
.button--block {
  width: 100%;
}
.button .ix-i {
  width: 15px;
  height: 15px;
  stroke: currentColor;
  fill: none;
  stroke-width: 1.8;
  stroke-linecap: round;
  stroke-linejoin: round;
  flex: none;
}
/* ---------- forms ---------- */
.field {
  margin-bottom: 18px;
}
.field > label,
.field .field-label {
  display: block;
  font-family: 'IBM Plex Mono', ui-monospace, 'SF Mono', Menlo, Consolas, monospace;
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  margin-bottom: 7px;
  color: #131313;
}
.field-hint {
  font-size: 13px;
  color: #7a7466;
  margin-top: 6px;
}
.field-input,
.textInput,
.autoComplete {
  width: 100%;
  border: 2px solid #131313;
  border-radius: 0;
  background: #efe9da;
  padding: 11px 13px;
  font-size: 15.5px;
  font-family: 'Archivo', system-ui, -apple-system, 'Segoe UI', sans-serif;
  color: #131313;
  outline: 0;
  transition: box-shadow 0.12s;
}
.field-input:focus,
.textInput:focus,
.autoComplete:focus {
  box-shadow: 5px 5px 0 var(--line);
}
select.textInput,
.field-select {
  appearance: none;
  -webkit-appearance: none;
  background-image: linear-gradient(45deg, transparent 50%, #131313 50%), linear-gradient(135deg, #131313 50%, transparent 50%);
  background-position: calc(100% - 20px) 50%, calc(100% - 14px) 50%;
  background-size: 6px 6px;
  background-repeat: no-repeat;
  padding-right: 36px;
  border-radius: 0;
}
textarea.textInput {
  line-height: 1.6;
}
/* checkbox: hard square with a chunky tick */
.chk {
  display: flex;
  gap: 10px;
  align-items: center;
  font-size: 14.5px;
  cursor: pointer;
}
.chk input[type="checkbox"],
.chk input[type="radio"] {
  appearance: none;
  -webkit-appearance: none;
  width: 20px;
  height: 20px;
  border: 2px solid #131313;
  background: #efe9da;
  display: grid;
  place-content: center;
  flex: none;
  cursor: pointer;
  margin: 0;
}
.chk input[type="radio"] {
  border-radius: 50%;
}
.chk input:checked {
  background: var(--line);
  border-color: #131313;
}
.chk input:checked:after {
  content: "";
  width: 9px;
  height: 5px;
  border-left: 3px solid var(--on-line);
  border-bottom: 3px solid var(--on-line);
  transform: rotate(-45deg) translate(1px, -1px);
}
.chk input[type="radio"]:checked:after {
  width: 8px;
  height: 8px;
  border: 0;
  border-radius: 50%;
  background: var(--on-line);
  transform: none;
}
/* toggle switch */
.ix-switch {
  display: inline-block;
  cursor: pointer;
}
.ix-switch input {
  position: absolute;
  opacity: 0;
}
.ix-switch i {
  display: block;
  width: 46px;
  height: 26px;
  border: 2px solid #131313;
  position: relative;
  transition: background 0.15s;
}
.ix-switch i:after {
  content: "";
  position: absolute;
  top: 3px;
  left: 3px;
  width: 16px;
  height: 16px;
  background: #131313;
  transition: transform 0.18s cubic-bezier(0.3, 1.4, 0.5, 1), background 0.15s;
}
.ix-switch input:checked + i {
  background: var(--line);
}
.ix-switch input:checked + i:after {
  transform: translateX(20px);
  background: var(--on-line);
}
.ix-switch input:focus-visible + i {
  outline: 3px solid var(--line);
  outline-offset: 2px;
}
/* ---------- chips ---------- */
.chips {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}
.chip {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  height: 32px;
  padding: 0 12px;
  border: 2px solid #131313;
  font-family: 'IBM Plex Mono', ui-monospace, 'SF Mono', Menlo, Consolas, monospace;
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  background: #efe9da;
  color: #131313;
  transition: background 0.1s, color 0.1s;
}
.chip:hover {
  background: #e6dfcc;
}
.chip.is-active {
  background: #131313;
  color: #efe9da;
  border-color: #131313;
}
.chip .lb {
  display: inline-block;
  width: 10px;
  height: 10px;
  border-radius: 50%;
  background: var(--line);
  margin-right: 2px;
  flex: none;
}
/* ---------- prefix / label chips ---------- */
.label {
  display: inline-block;
  font-family: 'IBM Plex Mono', ui-monospace, 'SF Mono', Menlo, Consolas, monospace;
  font-size: 10px;
  font-weight: 600;
  line-height: 1.5;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  padding: 0 7px;
  border: 1.5px solid #131313;
  background: transparent;
  color: #131313;
  vertical-align: 2px;
  margin-right: 6px;
  white-space: nowrap;
  border-radius: 0;
}
.label--question {
  background: #f2aa00;
  border-color: #f2aa00;
  color: #131313;
}
.label--guide {
  background: #2547d0;
  border-color: #2547d0;
  color: #fff;
}
.label--solved {
  background: #16935a;
  border-color: #16935a;
  color: #fff;
}
.label--showcase {
  background: #f2461d;
  border-color: #f2461d;
  color: #fff;
}
.label--notice,
.label--sticky {
  background: #131313;
  color: #efe9da;
}
.label--poll {
  border-style: dashed;
}
/* ---------- user roles ---------- */
.userTitle {
  display: inline-block;
  font-family: 'IBM Plex Mono', ui-monospace, 'SF Mono', Menlo, Consolas, monospace;
  font-size: 10px;
  font-weight: 600;
  line-height: 1.6;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  padding: 0 7px;
  background: #131313;
  color: #efe9da;
  border-radius: 0;
}
.userTitle--admin {
  background: #f2461d;
  color: #fff;
}
.userTitle--moderator {
  background: #2547d0;
  color: #fff;
}
.userTitle--outline {
  background: transparent;
  color: #131313;
  box-shadow: inset 0 0 0 1.5px #131313;
}
/* ---------- "new" pill ---------- */
.contentRow-title-new {
  display: inline-block;
  font-family: 'IBM Plex Mono', ui-monospace, 'SF Mono', Menlo, Consolas, monospace;
  font-size: 10px;
  font-weight: 600;
  line-height: 1.5;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  padding: 0 6px;
  background: var(--line);
  color: var(--on-line);
  margin-left: 8px;
  vertical-align: 3px;
}
/* ---------- tabs ---------- */
.tabs {
  display: flex;
  border-bottom: 2px solid #131313;
  overflow-x: auto;
  scrollbar-width: none;
}
.tabs > * {
  position: relative;
  padding: 12px 20px;
  font-weight: 900;
  font-stretch: 62%;
  font-size: 20px;
  text-transform: uppercase;
  color: #7a7466;
  white-space: nowrap;
}
.tabs > *:hover {
  color: #131313;
}
.tabs > .is-active {
  color: #131313;
}
.tabs > .is-active:after {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  bottom: -2px;
  height: 6px;
  background: var(--line);
}
.tabs .count {
  font-family: 'IBM Plex Mono', ui-monospace, 'SF Mono', Menlo, Consolas, monospace;
  font-size: 10px;
  font-weight: 600;
  margin-left: 6px;
  vertical-align: 5px;
  color: #7a7466;
}
.tabBlock {
  display: none;
}
.tabBlock.is-active {
  display: block;
  animation: ixFade 0.25s;
}
@keyframes ixFade {
  from {
    opacity: 0;
  }
}
/* ---------- quote ---------- */
.bbQuote {
  margin: 16px 0;
  border-left: 6px solid #2547d0;
  background: rgba(19, 19, 19, 0.045);
  padding: 12px 18px;
  font-size: 15.5px;
  line-height: 1.6;
  color: #131313;
}
.bbQuote-header {
  display: flex;
  gap: 8px;
  align-items: center;
  font-family: 'IBM Plex Mono', ui-monospace, 'SF Mono', Menlo, Consolas, monospace;
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  margin-bottom: 6px;
}
.bbQuote-header a {
  color: #131313;
}
.bbQuote-header a:hover {
  text-decoration: underline;
}
blockquote {
  margin: 16px 0;
  border-left: 6px solid #2547d0;
  background: rgba(19, 19, 19, 0.045);
  padding: 12px 18px;
  color: #131313;
}
blockquote:before {
  content: "";
  display: block;
  font-family: 'IBM Plex Mono', ui-monospace, 'SF Mono', Menlo, Consolas, monospace;
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  margin-bottom: 6px;
  color: #7a7466;
}
blockquote .bbQuote {
  border-left-color: #f2aa00;
  background: rgba(19, 19, 19, 0.07);
  font-size: 14.5px;
}
blockquote > :last-child {
  margin-bottom: 0;
}
/* ---------- message body ---------- */
.message-body {
  font-size: 16.5px;
  line-height: 1.72;
  color: #131313;
  max-width: 70ch;
}
.message-body > :not(.bbWrapper):last-child {
  margin-bottom: 0;
}
.message-body p {
  margin: 0 0 1em;
}
.message-body a {
  text-decoration: underline;
  text-decoration-color: var(--line);
  text-decoration-thickness: 2px;
  text-underline-offset: 3px;
}
.message-body a:hover {
  background: var(--line);
  color: var(--on-line);
}
.message-body h1,
.message-body h2,
.message-body h3,
.message-body h4 {
  font-size: 22px;
  font-weight: 900;
  font-stretch: 76%;
  text-transform: uppercase;
  margin: 1.2em 0 0.4em;
  color: #131313;
}
.message-body h2 {
  font-size: 26px;
}
.message-body h3 {
  font-size: 23px;
}
.message-body ul,
.message-body ol {
  list-style: none;
  margin: 0 0 1em;
  padding: 0;
}
.message-body ul > li {
  position: relative;
  padding-left: 22px;
  margin-bottom: 4px;
}
.message-body ul > li:before {
  content: "";
  position: absolute;
  left: 0;
  top: 0.62em;
  width: 10px;
  height: 10px;
  border: 3px solid var(--line);
  border-radius: 50%;
}
.message-body ol {
  counter-reset: ix-ol;
}
.message-body ol > li {
  position: relative;
  padding-left: 26px;
  margin-bottom: 4px;
  counter-increment: ix-ol;
}
.message-body ol > li:before {
  content: counter(ix-ol);
  position: absolute;
  left: 0;
  top: 0.1em;
  width: 18px;
  height: 18px;
  border-radius: 50%;
  background: var(--line);
  color: var(--on-line);
  font-family: 'IBM Plex Mono', ui-monospace, 'SF Mono', Menlo, Consolas, monospace;
  font-size: 10px;
  font-weight: 700;
  display: grid;
  place-items: center;
}
.message-body code,
.message-body pre {
  font-family: 'IBM Plex Mono', ui-monospace, 'SF Mono', Menlo, Consolas, monospace;
  font-size: 0.88em;
}
.message-body .bbCodeBlock code,
.message-body :not(.bbCodeBlock) > code {
  background: #e6dfcc;
  padding: 1px 6px;
  border: 1px solid #cdc5ae;
}
.message-body mark,
.message-body .bbCodeBlock mark {
  background: rgba(242, 170, 0, 0.55);
  color: inherit;
  padding: 0 2px;
}
.message-body .bbCodeBlock {
  margin: 18px 0;
  background: #0c0e0f;
  color: #e8e3d3;
  border: 2px solid #131313;
  font-size: 13px;
  line-height: 1.7;
}
.message-body .bbCodeBlock code {
  display: block;
  padding: 14px 18px;
  overflow: auto;
  background: none;
  border: 0;
  color: inherit;
}
.message-body .bbCodeBlock-header {
  background: #1a1e21;
  color: #9a968a;
  font-family: 'IBM Plex Mono', ui-monospace, 'SF Mono', Menlo, Consolas, monospace;
  font-size: 11px;
  text-transform: uppercase;
  letter-spacing: 0.06em;
}
.message-body img {
  max-width: 100%;
  height: auto;
  border: 2px solid #131313;
  display: block;
}
.message-body .bbWrapper {
  font-size: 16.5px;
  line-height: 1.72;
  color: #131313;
}
.message-body .fsm {
  font-family: 'IBM Plex Mono', ui-monospace, 'SF Mono', Menlo, Consolas, monospace;
  font-size: 13px;
  font-weight: 600;
  color: #7a7466;
}
.message-body .fsm:before {
  content: "\203A";
  color: var(--line);
  margin-right: 6px;
  font-weight: 700;
}
.bbWrapper {
  font-size: 16.5px;
  line-height: 1.72;
  color: #131313;
}
/* signature */
.message-signature {
  margin-top: 18px;
  padding-top: 10px;
  border-top: 1px solid #cdc5ae;
  font-family: 'IBM Plex Mono', ui-monospace, 'SF Mono', Menlo, Consolas, monospace;
  font-size: 11.5px;
  color: #7a7466;
  max-width: 70ch;
}
/* ---------- reactions ---------- */
.reactionsBar {
  display: flex;
  gap: 6px;
  flex-wrap: wrap;
  align-items: center;
}
.reaction {
  display: inline-flex;
  gap: 6px;
  align-items: center;
  border: 2px solid #131313;
  padding: 1px 9px 1px 7px;
  font-family: 'IBM Plex Mono', ui-monospace, 'SF Mono', Menlo, Consolas, monospace;
  font-size: 12px;
  font-weight: 600;
  background: #efe9da;
  color: #131313;
  cursor: pointer;
  transition: transform 0.12s;
}
.reaction:hover {
  transform: translateY(-2px);
}
.reaction.is-mine {
  background: var(--line);
  color: var(--on-line);
  border-color: #131313;
}
/* ---------- post action links ---------- */
.post-actions {
  display: flex;
  gap: 2px;
  flex-wrap: wrap;
  margin-top: 18px;
  padding-top: 12px;
  border-top: 1px dashed #cdc5ae;
}
.post-action {
  display: inline-flex;
  gap: 6px;
  align-items: center;
  padding: 6px 10px;
  font-family: 'IBM Plex Mono', ui-monospace, 'SF Mono', Menlo, Consolas, monospace;
  font-size: 11px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color: #403d36;
}
.post-action:hover,
.post-action.is-active {
  background: #131313;
  color: #efe9da;
}
.post-action .ix-i {
  width: 15px;
  height: 15px;
  stroke: currentColor;
  fill: none;
  stroke-width: 1.8;
  stroke-linecap: round;
  stroke-linejoin: round;
}
/* ---------- poll ---------- */
.p-poll {
  border: 2px solid #131313;
  background: #f8f4e9;
  margin: 20px 0;
  max-width: 640px;
}
.p-pollHeader {
  display: flex;
  justify-content: space-between;
  background: #131313;
  color: #efe9da;
  font-family: 'IBM Plex Mono', ui-monospace, 'SF Mono', Menlo, Consolas, monospace;
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  padding: 9px 16px;
}
.p-pollQuestion {
  font-weight: 900;
  font-stretch: 76%;
  font-size: 28px;
  text-transform: uppercase;
  line-height: 1;
  padding: 18px 16px 8px;
  color: #131313;
}
.p-pollOption {
  display: block;
  padding: 9px 16px 11px;
  cursor: pointer;
  position: relative;
}
.p-pollOption:hover {
  background: #e6dfcc;
}
.p-pollOption .p-pollOption-label {
  display: flex;
  gap: 10px;
  align-items: center;
  cursor: pointer;
  font-weight: 600;
}
.p-pollOption input[type="radio"] {
  accent-color: var(--line);
  width: 16px;
  height: 16px;
}
.p-pollOption .p-pollOption-stat {
  font-family: 'IBM Plex Mono', ui-monospace, 'SF Mono', Menlo, Consolas, monospace;
  font-size: 12px;
  font-weight: 600;
}
.p-pollBar {
  height: 6px;
  background: #cdc5ae;
  margin: 9px 8px 0 0;
  position: relative;
}
.p-pollBar i {
  position: absolute;
  left: 0;
  top: 0;
  bottom: 0;
  width: var(--p-pollResult);
  background: var(--line);
  transition: width 0.8s cubic-bezier(0.2, 0.8, 0.2, 1);
}
.p-pollBar i:after {
  content: "";
  position: absolute;
  right: -8px;
  top: -6px;
  width: 18px;
  height: 18px;
  border-radius: 50%;
  border: 4px solid var(--line);
  background: #efe9da;
}
.p-pollFooter {
  display: flex;
  gap: 12px;
  align-items: center;
  padding: 12px 16px;
  border-top: 2px solid #131313;
  font-family: 'IBM Plex Mono', ui-monospace, 'SF Mono', Menlo, Consolas, monospace;
  font-size: 11px;
  font-weight: 500;
  color: #7a7466;
  text-transform: uppercase;
}
/* ---------- attachments ---------- */
.attachmentList {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  margin: 16px 0;
}
.attachment {
  display: flex;
  gap: 12px;
  align-items: center;
  border: 2px solid #131313;
  background: #f8f4e9;
  padding: 9px 16px 9px 9px;
  min-width: 250px;
  color: #131313;
}
.attachment:hover {
  box-shadow: 4px 4px 0 var(--line);
}
.attachment .attachment-list-item-icon {
  width: 42px;
  height: 42px;
  display: grid;
  place-items: center;
  background: var(--line);
  color: var(--on-line);
  font-family: 'IBM Plex Mono', ui-monospace, 'SF Mono', Menlo, Consolas, monospace;
  font-size: 11px;
  font-weight: 700;
  flex: none;
}
.attachment .attachment-list-item-name {
  font-size: 14px;
  font-weight: 700;
  line-height: 1.2;
}
.attachment .attachment-list-item-meta {
  font-family: 'IBM Plex Mono', ui-monospace, 'SF Mono', Menlo, Consolas, monospace;
  font-size: 11px;
  color: #7a7466;
}
/* ---------- notices / alerts ---------- */
.blockMessage {
  border: 2px solid #131313;
  background: #e6dfcc;
  color: #131313;
  border-radius: 0;
  padding: 12px 16px;
  margin-bottom: 16px;
  font-size: 14.5px;
}
.blockMessage-info {
  border-left: 6px solid #2547d0;
}
.blockMessage-warning {
  border-left: 6px solid #f2aa00;
}
.blockMessage-error {
  border-left: 6px solid #f2461d;
}
/* ---------- empty state ---------- */
.u-emptyState {
  padding: 48px;
  text-align: center;
  color: #7a7466;
  font-family: 'IBM Plex Mono', ui-monospace, 'SF Mono', Menlo, Consolas, monospace;
  font-size: 12px;
  font-weight: 500;
  text-transform: uppercase;
  letter-spacing: 0.06em;
}
/* ==========================================================================
   INTERCHANGE for XenForo — forum directory
   Categories are LINES (a coloured vertical track). Forums are STATIONS
   (a dot on that track). This is the central metaphor of the style.
   ========================================================================== */
.node {
  margin-top: 48px;
}
.node:first-child {
  margin-top: 24px;
}
/* The line itself: a coloured track running down the left edge. */
.node:before {
  content: "";
  position: absolute;
  left: 29px;
  top: 26px;
  bottom: 34px;
  width: 6px;
  background: var(--line);
  z-index: 1;
}
.nodeList {
  position: relative;
  list-style: none;
  margin: 0;
  padding: 0;
}
/* ---------- category header ---------- */
.nodeHeader {
  display: grid;
  grid-template-columns: 64px 1fr auto;
  align-items: center;
  padding-bottom: 16px;
}
.node-title {
  font-size: clamp(32px, 5vw, 64px);
  font-weight: 900;
  font-stretch: 62%;
  text-transform: uppercase;
  line-height: 0.85;
  color: #131313;
  margin: 0;
}
.node-description {
  color: #403d36;
  font-size: 14.5px;
  margin: 6px 0 0;
}
.node-stats {
  font-family: 'IBM Plex Mono', ui-monospace, 'SF Mono', Menlo, Consolas, monospace;
  font-size: 11px;
  font-weight: 500;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: #7a7466;
  text-align: right;
  white-space: nowrap;
}
/* The numbered badge that sits on the line. */
.node-icon {
  width: 42px;
  height: 42px;
  font-size: 19px;
  font-weight: 700;
  font-family: 'IBM Plex Mono', ui-monospace, 'SF Mono', Menlo, Consolas, monospace;
  border-radius: 50%;
  margin-left: 11px;
  position: relative;
  z-index: 2;
  display: inline-grid;
  place-items: center;
  background: var(--line);
  color: var(--on-line);
  flex: none;
}
/* ---------- station: a forum row ---------- */
.station {
  position: relative;
  isolation: isolate;
  display: grid;
  grid-template-columns: 64px minmax(0, 1fr) 170px 300px;
  gap: 0 24px;
  padding: 20px 0;
  border-top: 1px dashed #131313;
}
.station:last-child {
  border-bottom: 2px solid #131313;
}
.station:before {
  content: "";
  position: absolute;
  inset: 0 -14px 0 64px;
  background: #f8f4e9;
  opacity: 0;
  transition: opacity 0.15s;
  z-index: -1;
}
.station:hover:before {
  opacity: 1;
}
.station-dot {
  position: absolute;
  left: 21px;
  top: 25px;
  width: 22px;
  height: 22px;
  border: 5px solid var(--line);
  background: #efe9da;
  border-radius: 50%;
  z-index: 2;
  transition: transform 0.2s cubic-bezier(0.3, 1.6, 0.5, 1);
}
.station:hover .station-dot {
  transform: scale(1.25);
}
.station--unread .station-dot {
  background: var(--line);
  animation: ixStationRing 2.4s infinite;
}
@keyframes ixStationRing {
  50% {
    box-shadow: 0 0 0 4px #efe9da, 0 0 0 11px color-mix(in srgb, var(--line) 35%, transparent);
  }
}
.station-main {
  grid-column: 2;
  min-width: 0;
}
.station-title {
  font-size: 28px;
  font-weight: 800;
  font-stretch: 76%;
  line-height: 1.05;
  text-transform: uppercase;
  letter-spacing: 0.005em;
  color: #131313;
  margin: 0;
}
.station-title a:hover {
  text-decoration: underline;
  text-decoration-color: var(--line);
  text-decoration-thickness: 4px;
  text-underline-offset: 4px;
}
.station--unread .station-title {
  font-weight: 900;
}
.station-description {
  color: #403d36;
  font-size: 14.5px;
  margin: 4px 0 0;
  max-width: 56ch;
}
/* sub-forums */
.station-subList {
  display: flex;
  flex-wrap: wrap;
  gap: 4px 16px;
  margin-top: 10px;
  list-style: none;
  padding: 0;
}
.station-subList > li > a {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-family: 'IBM Plex Mono', ui-monospace, 'SF Mono', Menlo, Consolas, monospace;
  font-size: 11.5px;
  font-weight: 500;
  letter-spacing: 0.03em;
  color: #403d36;
}
.station-subList > li > a:before {
  content: "";
  width: 8px;
  height: 8px;
  border-radius: 50%;
  border: 2px solid var(--line);
  flex: none;
}
.station-subList > li > a:hover {
  color: #131313;
  text-decoration: underline;
}
/* counts */
.station-nums {
  display: flex;
  gap: 22px;
  align-items: flex-start;
  padding-top: 4px;
}
.station-nums > div b {
  display: block;
  font-size: 34px;
  font-weight: 900;
  font-stretch: 62%;
  line-height: 0.95;
  letter-spacing: -0.005em;
  color: #131313;
}
.station-nums > div span {
  font-family: 'IBM Plex Mono', ui-monospace, 'SF Mono', Menlo, Consolas, monospace;
  font-size: 10px;
  font-weight: 500;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: #7a7466;
}
/* last post */
.station-lastPost {
  display: grid;
  grid-template-columns: 34px minmax(0, 1fr);
  gap: 12px;
  align-items: start;
  font-size: 13.5px;
}
.station-lastPost .station-lastPost-title {
  font-weight: 700;
  line-height: 1.25;
  color: #131313;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.station-lastPost .station-lastPost-title:hover {
  text-decoration: underline;
  text-decoration-color: var(--line);
  text-decoration-thickness: 3px;
}
.station-lastPost .station-lastPost-meta {
  display: block;
  font-family: 'IBM Plex Mono', ui-monospace, 'SF Mono', Menlo, Consolas, monospace;
  font-size: 11px;
  font-weight: 500;
  color: #7a7466;
  margin: 3px 0 6px;
}
/* ---------- forum hero (single forum view) ---------- */
.forum-hero {
  margin-top: 18px;
  background: var(--line);
  color: var(--on-line);
  padding: 34px 40px 38px;
  border: 2px solid #131313;
  position: relative;
  overflow: hidden;
}
.forum-hero:after {
  content: "";
  position: absolute;
  right: -70px;
  top: -60px;
  width: 440px;
  height: 440px;
  border: 38px solid color-mix(in srgb, var(--on-line) 16%, transparent);
  border-radius: 50%;
  pointer-events: none;
}
.forum-hero .p-title {
  color: var(--on-line);
  margin-bottom: 0;
}
.forum-hero .forum-hero-description {
  max-width: 52ch;
  font-size: 18px;
  margin: 16px 0 24px;
  color: var(--on-line);
  opacity: 0.92;
}
.forum-hero-stats {
  display: flex;
  gap: 36px;
  flex-wrap: wrap;
  margin-bottom: 28px;
  align-items: flex-end;
  position: relative;
  z-index: 1;
}
.forum-hero-stats b {
  display: block;
  font-size: 48px;
  font-weight: 900;
  font-stretch: 62%;
  line-height: 0.9;
  color: var(--on-line);
}
.forum-hero-stats span {
  font-family: 'IBM Plex Mono', ui-monospace, 'SF Mono', Menlo, Consolas, monospace;
  font-size: 10.5px;
  font-weight: 500;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  opacity: 0.85;
}
.forum-hero-actions {
  display: flex;
  gap: 12px;
  flex-wrap: wrap;
  position: relative;
  z-index: 1;
}
.forum-hero-actions .button:not(.button--dark) {
  background: transparent;
  color: inherit;
  border-color: currentColor;
}
.forum-hero-actions .button:not(.button--dark):hover {
  background: #131313;
  color: #efe9da;
  box-shadow: none;
  transform: none;
}
.forum-hero-actions .button--dark {
  background: #131313;
  color: #f3eedd;
  border-color: #131313;
}
/* ---------- sub-route: sub-forums as further stations ---------- */
.forum-subRoute {
  display: flex;
  border: 2px solid #131313;
  border-top: 0;
  background: #f8f4e9;
  overflow-x: auto;
}
.forum-subRoute-label {
  padding: 0 22px;
  display: flex;
  align-items: center;
  background: #131313;
  color: #efe9da;
  flex: none;
  font-family: 'IBM Plex Mono', ui-monospace, 'SF Mono', Menlo, Consolas, monospace;
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}
.forum-subRoute > a {
  position: relative;
  flex: 1;
  min-width: 170px;
  padding: 36px 22px 16px;
  color: #131313;
}
.forum-subRoute > a:before {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  top: 22px;
  height: 5px;
  background: var(--line);
}
.forum-subRoute > a:hover {
  background: #efe9da;
}
.forum-subRoute > a:hover .forum-subRoute-dot {
  transform: scale(1.3);
  background: var(--line);
}
.forum-subRoute > a b {
  display: block;
  font-weight: 800;
  font-stretch: 84%;
  text-transform: uppercase;
  font-size: 18px;
  line-height: 1.1;
}
.forum-subRoute > a small {
  font-family: 'IBM Plex Mono', ui-monospace, 'SF Mono', Menlo, Consolas, monospace;
  font-size: 11px;
  font-weight: 500;
  color: #7a7466;
}
.forum-subRoute-dot {
  position: absolute;
  left: 22px;
  top: 14px;
  width: 21px;
  height: 21px;
  border: 5px solid var(--line);
  border-radius: 50%;
  background: #efe9da;
  transition: transform 0.18s cubic-bezier(0.3, 1.6, 0.5, 1), background 0.12s;
}
/* ---------- filter/sort bar ---------- */
.forum-filters {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 16px;
  flex-wrap: wrap;
  padding-bottom: 18px;
}
.forum-sortBox {
  display: flex;
  align-items: center;
  gap: 10px;
}
.forum-sortBox .textInput {
  width: auto;
  min-width: 176px;
  padding: 7px 36px 7px 12px;
  font-size: 14px;
}
/* ---------- jump-to-line chips ---------- */
.forum-jump {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  align-items: center;
  padding-top: 24px;
}
.forum-legend {
  display: flex;
  gap: 22px;
  flex-wrap: wrap;
  align-items: center;
  font-family: 'IBM Plex Mono', ui-monospace, 'SF Mono', Menlo, Consolas, monospace;
  font-size: 11px;
  font-weight: 500;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  color: #7a7466;
}
.forum-legend > span {
  display: inline-flex;
  align-items: center;
  gap: 7px;
}
/* the legend's sample dots */
.forum-legend-dot {
  display: inline-block;
  width: 15px;
  height: 15px;
  border-radius: 50%;
  border: 4px solid #f2461d;
}
.forum-legend-dot.is-unread {
  background: #f2461d;
}
/* ---------- overview / forum index body ---------- */
.forum-indexWrapper {
  padding-top: 34px;
}
/* ==========================================================================
   INTERCHANGE for XenForo — thread lists
   Thread rows: a platform number block, thread title, momentum spark,
   view count, and last post. An unread thread fills the platform block.
   ========================================================================== */
/* ---------- the list shell ---------- */
.threadList {
  border-top: 2px solid #131313;
  list-style: none;
  margin: 0;
  padding: 0;
}
/* ---------- column header row ---------- */
.threadList-header {
  display: grid;
  grid-template-columns: 62px minmax(0, 1fr) 84px 76px 200px;
  gap: 0 18px;
  padding: 9px 16px 9px 22px;
  font-family: 'IBM Plex Mono', ui-monospace, 'SF Mono', Menlo, Consolas, monospace;
  font-size: 10px;
  font-weight: 600;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: #7a7466;
  border-bottom: 1px solid #131313;
}
/* ---------- a thread row ---------- */
.threadList-item {
  position: relative;
  display: grid;
  grid-template-columns: 62px minmax(0, 1fr) 84px 76px 200px;
  gap: 0 18px;
  align-items: center;
  padding: 13px 16px 13px 22px;
  border-bottom: 1px solid #cdc5ae;
  transition: background 0.12s;
}
.threadList-item:hover {
  background: #f8f4e9;
}
.threadList-item:hover:before {
  width: 11px;
}
.threadList-item:before {
  content: "";
  position: absolute;
  left: 0;
  top: -1px;
  bottom: -1px;
  width: 7px;
  background: var(--line);
  opacity: 0.22;
  transition: opacity 0.35s, width 0.15s;
}
.threadList-item.is-unread:before {
  opacity: 1;
}
/* pinned threads get a diagonal hatch */
.threadList-item.is-pinned {
  background: repeating-linear-gradient(135deg, transparent 0 9px, rgba(19, 19, 19, 0.05) 9px 10px);
}
.threadList-item.is-pinned:hover {
  background: #f8f4e9;
}
/* ---------- platform number ---------- */
.threadList-item-platform {
  width: 56px;
  height: 56px;
  border: 2px solid #131313;
  display: grid;
  place-content: center;
  text-align: center;
  line-height: 1;
  background: #efe9da;
  transition: background 0.35s, color 0.35s, border-color 0.35s;
}
.threadList-item-platform b {
  display: block;
  font-size: 26px;
  font-weight: 900;
  font-stretch: 62%;
  letter-spacing: -0.005em;
  color: #131313;
}
.threadList-item-platform small {
  display: block;
  font-family: 'IBM Plex Mono', ui-monospace, 'SF Mono', Menlo, Consolas, monospace;
  font-size: 8.5px;
  font-weight: 500;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: #7a7466;
  margin-top: 3px;
  transition: color 0.35s;
}
.threadList-item.is-unread .threadList-item-platform {
  background: var(--line);
  color: var(--on-line);
  border-color: #131313;
}
.threadList-item.is-unread .threadList-item-platform b {
  color: var(--on-line);
}
.threadList-item.is-unread .threadList-item-platform small {
  color: inherit;
  opacity: 0.8;
}
/* ---------- main cell: title + meta ---------- */
.threadList-item-main {
  min-width: 0;
}
.threadList-item-title {
  font-weight: 600;
  font-size: 17px;
  line-height: 1.25;
  color: #131313;
  transition: font-weight 0.3s;
}
.threadList-item-title a:hover {
  text-decoration: underline;
  text-decoration-color: var(--line);
  text-decoration-thickness: 3px;
  text-underline-offset: 3px;
}
.threadList-item.is-unread .threadList-item-title {
  font-weight: 800;
}
.threadList-item-title-value {
  color: #131313;
  font-weight: inherit;
}
/* XF's own "location" label and prefix chips inherit the treatment. */
.threadList-item-prefix {
  display: inline;
  font-weight: inherit;
  color: #131313;
}
.threadList-item-meta {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 4px 14px;
  margin-top: 5px;
  font-family: 'IBM Plex Mono', ui-monospace, 'SF Mono', Menlo, Consolas, monospace;
  font-size: 11.5px;
  font-weight: 500;
  color: #7a7466;
}
.threadList-item-meta a {
  color: #7a7466;
}
.threadList-item-meta a:hover {
  color: #131313;
  text-decoration: underline;
}
.threadList-item-meta .structItem-cell--icon {
  display: inline-flex;
  align-items: center;
  color: #403d36;
}
.threadList-item-excerpt {
  font-size: 13.5px;
  color: #403d36;
  margin-top: 5px;
  display: -webkit-box;
  -webkit-line-clamp: 1;
  -webkit-box-orient: vertical;
  overflow: hidden;
  max-width: 80ch;
}
/* ---------- momentum spark ---------- */
.threadList-item-momentum {
  display: flex;
  flex-direction: column;
  gap: 4px;
  align-items: flex-start;
}
.threadList-item-momentum small {
  font-family: 'IBM Plex Mono', ui-monospace, 'SF Mono', Menlo, Consolas, monospace;
  font-size: 10px;
  font-weight: 500;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  color: #7a7466;
}
.threadList-item-momentum small.is-hot {
  color: var(--line);
  font-weight: 600;
}
.ix-spark {
  display: inline-flex;
  align-items: flex-end;
  gap: 2px;
  height: 22px;
}
.ix-spark i {
  display: block;
  width: 4px;
  background: var(--line);
  min-height: 2px;
  transform-origin: bottom;
}
/* ---------- view count ---------- */
.threadList-item-views {
  font-family: 'IBM Plex Mono', ui-monospace, 'SF Mono', Menlo, Consolas, monospace;
  font-size: 12px;
  font-weight: 500;
  color: #403d36;
}
.threadList-item-views small {
  display: block;
  font-size: 9.5px;
  font-weight: 500;
  color: #7a7466;
  text-transform: uppercase;
  letter-spacing: 0.08em;
}
/* ---------- last post ---------- */
.threadList-item-lastPost {
  display: grid;
  grid-template-columns: 30px 1fr;
  gap: 10px;
  align-items: center;
  font-size: 13px;
  line-height: 1.3;
}
.threadList-item-lastPost .threadList-item-lastPost-title {
  font-weight: 700;
  color: #131313;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.threadList-item-lastPost .threadList-item-lastPost-title:hover {
  text-decoration: underline;
  text-decoration-color: var(--line);
  text-decoration-thickness: 3px;
}
.threadList-item-lastPost .threadList-item-lastPost-info {
  font-family: 'IBM Plex Mono', ui-monospace, 'SF Mono', Menlo, Consolas, monospace;
  font-size: 11px;
  font-weight: 500;
  color: #7a7466;
}
/* ---------- mobile-only meta row ---------- */
.threadList-item-mobileMeta {
  display: none;
  flex-wrap: wrap;
  gap: 3px 12px;
  margin-top: 6px;
  font-family: 'IBM Plex Mono', ui-monospace, 'SF Mono', Menlo, Consolas, monospace;
  font-size: 11px;
  font-weight: 500;
  color: #7a7466;
}
/* ---------- thread status separators ("sticky", "closed") ---------- */
.threadList-divider {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 10px 22px;
  background: #131313;
  color: #efe9da;
  font-family: 'IBM Plex Mono', ui-monospace, 'SF Mono', Menlo, Consolas, monospace;
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.1em;
  text-transform: uppercase;
}
/* ---------- new threads / new posts button ---------- */
.newPostsButton {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  height: 32px;
  padding: 0 12px;
  border: 2px solid var(--line);
  background: var(--line);
  color: var(--on-line);
  font-family: 'IBM Plex Mono', ui-monospace, 'SF Mono', Menlo, Consolas, monospace;
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  margin-bottom: 12px;
}
.newPostsButton:hover {
  background: #131313;
  border-color: #131313;
}
/* ---------- thread title bar (single thread) ---------- */
.thread-titleBar {
  padding-top: 24px;
  padding-bottom: 28px;
  border-bottom: 2px solid #131313;
}
.thread-titleBar .p-title-value {
  max-width: 18ch;
  text-wrap: balance;
}
.thread-titleBar .p-title-value:after {
  content: "";
  display: inline-block;
  width: 0.14em;
  height: 0.14em;
  border-radius: 50%;
  background: var(--line);
  margin-left: 0.05em;
}
.thread-titleBar-header {
  display: flex;
  gap: 14px;
  align-items: center;
  flex-wrap: wrap;
  margin-bottom: 16px;
}
.thread-titleBar-meta {
  display: flex;
  gap: 14px;
  align-items: center;
  flex-wrap: wrap;
}
.thread-titleBar-bottom {
  display: flex;
  justify-content: space-between;
  align-items: flex-end;
  gap: 24px;
  flex-wrap: wrap;
  margin-top: 30px;
}
.thread-titleBar-stats {
  display: flex;
  gap: 32px;
  flex-wrap: wrap;
  align-items: flex-end;
}
.thread-titleBar-stats b {
  display: block;
  font-size: 36px;
  font-weight: 900;
  font-stretch: 62%;
  text-transform: uppercase;
  line-height: 0.95;
  color: #131313;
}
.thread-titleBar-stats span {
  font-family: 'IBM Plex Mono', ui-monospace, 'SF Mono', Menlo, Consolas, monospace;
  font-size: 10.5px;
  font-weight: 500;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: #7a7466;
}
.thread-titleBar-actions {
  display: flex;
  gap: 10px;
  flex-wrap: wrap;
}
/* ==========================================================================
   INTERCHANGE for XenForo — thread / post view
   Posts hang off a vertical track (the read-progress rail), each with a
   station dot for the author. Post number is a large outlined numeral.
   ========================================================================== */
/* ---------- the track + read progress ---------- */
.thread-postList-wrap {
  position: relative;
  padding-top: 26px;
}
.thread-postList {
  position: relative;
  isolation: isolate;
  list-style: none;
  margin: 0;
  padding: 0;
}
.thread-postList-wrap:before {
  content: "";
  position: absolute;
  left: 35px;
  top: 0;
  bottom: 0;
  width: 6px;
  background: #cdc5ae;
  z-index: 0;
}
.thread-postList-wrap:after {
  content: "";
  position: absolute;
  left: 35px;
  top: 0;
  width: 6px;
  height: var(--ix-progress, 0%);
  background: var(--line);
  transition: height 0.15s linear;
  z-index: 1;
}
/* ---------- a post ---------- */
.post {
  position: relative;
  display: grid;
  grid-template-columns: 76px minmax(0, 1fr);
  padding: 34px 0 20px;
}
.post + .post {
  border-top: 2px solid #131313;
}
/* OP and staff posts get a tinted full-bleed background. */
.post.is-op:before,
.post.is-staff:before {
  content: "";
  position: absolute;
  top: 0;
  bottom: 0;
  left: 0;
  right: -60px;
  background: #f8f4e9;
  z-index: -1;
}
.post.is-staff:before {
  background: rgba(37, 71, 208, 0.09);
  mix-blend-mode: multiply;
}
.ix-dark .post.is-staff:before {
  mix-blend-mode: normal;
}
/* ---------- author rail ---------- */
.post-user {
  position: relative;
  z-index: 2;
}
.post-user .avatar {
  position: sticky;
  top: 104px;
  margin-left: 10px;
  --s: 56px;
  width: 56px;
  height: 56px;
  box-shadow: 0 0 0 7px #efe9da;
}
.post.is-op .post-user .avatar,
.post.is-staff .post-user .avatar {
  box-shadow: 0 0 0 7px #f8f4e9;
}
/* ---------- post body ---------- */
.post-main {
  position: relative;
  min-width: 0;
  padding-right: 4px;
  z-index: 1;
}
.post-number {
  position: absolute;
  right: 0;
  top: -18px;
  font-size: 96px;
  font-weight: 900;
  font-stretch: 62%;
  line-height: 1;
  color: transparent;
  -webkit-text-stroke: 1.5px #cdc5ae;
  pointer-events: none;
  user-select: none;
  z-index: 0;
}
.post-header {
  position: relative;
  z-index: 1;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 6px 12px;
  margin-bottom: 6px;
}
.post-userName {
  font-size: 26px;
  font-weight: 900;
  font-stretch: 76%;
  text-transform: uppercase;
  line-height: 1;
  color: #131313;
}
.post-userName:hover {
  text-decoration: underline;
  text-decoration-color: var(--line);
  text-decoration-thickness: 4px;
}
.post-userTitle-badge {
  margin-left: 0;
}
.post-date {
  font-family: 'IBM Plex Mono', ui-monospace, 'SF Mono', Menlo, Consolas, monospace;
  font-size: 11px;
  font-weight: 500;
  color: #7a7466;
}
/* meta strip: join date, posts, location, etc */
.post-meta {
  position: relative;
  z-index: 1;
  display: flex;
  flex-wrap: wrap;
  gap: 4px 16px;
  font-family: 'IBM Plex Mono', ui-monospace, 'SF Mono', Menlo, Consolas, monospace;
  font-size: 11px;
  font-weight: 500;
  color: #7a7466;
  margin-bottom: 16px;
  letter-spacing: 0.02em;
}
.post-meta b {
  color: #131313;
  font-weight: 600;
}
/* reply-to indicator */
.post-replyTo {
  position: relative;
  z-index: 1;
  display: inline-flex;
  gap: 8px;
  align-items: flex-start;
  font-family: 'IBM Plex Mono', ui-monospace, 'SF Mono', Menlo, Consolas, monospace;
  font-size: 11px;
  font-weight: 500;
  color: #7a7466;
  margin-bottom: 8px;
}
.post-replyTo:before {
  content: "";
  width: 26px;
  height: 12px;
  border-left: 3px solid var(--line);
  border-top: 3px solid var(--line);
  border-top-left-radius: 10px;
  margin-top: 7px;
  flex: none;
}
.post-replyTo a {
  color: #131313;
  text-decoration: underline;
}
/* ---------- message ---------- */
.post-main .bbWrapper {
  font-size: 16.5px;
  line-height: 1.72;
  color: #131313;
  max-width: 70ch;
}
/* ---------- post footer ---------- */
.post-footer {
  position: relative;
  z-index: 1;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 10px;
  margin-top: 18px;
  padding-top: 12px;
  border-top: 1px dashed #cdc5ae;
}
/* ---------- edit / delete inline ---------- */
.post-edit {
  display: none;
}
.post.is-editing .post-edit {
  display: block;
}
/* ---------- quick reply / inline quote ---------- */
.post-inlineMod {
  margin-top: 12px;
  padding: 14px 16px;
  border: 2px solid #131313;
  background: #f8f4e9;
}
/* ---------- poster info block on wide screens ---------- */
.message-userContent {
  font-family: 'IBM Plex Mono', ui-monospace, 'SF Mono', Menlo, Consolas, monospace;
  font-size: 11px;
  line-height: 1.6;
  color: #7a7466;
}
/* ---------- thread status notice (closed / prefixed) ---------- */
.thread-status {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 8px 14px;
  border: 2px solid #131313;
  background: #e6dfcc;
  font-family: 'IBM Plex Mono', ui-monospace, 'SF Mono', Menlo, Consolas, monospace;
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: #131313;
}
/* ---------- moderation bar ---------- */
.modBar {
  display: flex;
  gap: 6px;
  flex-wrap: wrap;
  align-items: center;
  padding: 8px 16px;
  background: #e6dfcc;
  border: 2px solid #131313;
  font-family: 'IBM Plex Mono', ui-monospace, 'SF Mono', Menlo, Consolas, monospace;
  font-size: 11px;
}
/* ---------- multi-quote ---------- */
.pullQuote {
  display: flex;
  gap: 12px;
  align-items: flex-start;
  padding: 12px 16px;
  border: 2px solid #131313;
  border-left: 6px solid var(--line);
  background: #f8f4e9;
  font-size: 14px;
  margin-bottom: 8px;
}
/* ---------- thread view: jump menu & progress ---------- */
.thread-progress {
  height: 8px;
  background: #cdc5ae;
  margin: 12px 0 14px;
  position: relative;
}
.thread-progress i {
  position: absolute;
  left: 0;
  top: 0;
  bottom: 0;
  width: 0;
  background: var(--line);
  transition: width 0.12s linear;
}
.thread-jump {
  list-style: none;
  margin: 0;
  padding: 0;
}
.thread-jump li {
  padding: 0;
  border: 0;
}
.thread-jump li a {
  display: block;
  padding: 8px 0;
  border-bottom: 1px dashed #cdc5ae;
  font-weight: 600;
  font-size: 14px;
  color: #131313;
}
.thread-jump li a:hover {
  color: var(--line);
  text-decoration: underline;
}
/* ---------- related threads sidebar ---------- */
.relatedThreads {
  list-style: none;
  margin: 0;
  padding: 0;
}
.relatedThreads li {
  padding: 8px 0;
  border-bottom: 1px dashed #cdc5ae;
}
.relatedThreads a {
  font-weight: 700;
  display: block;
  line-height: 1.3;
  color: #131313;
}
.relatedThreads a:hover {
  text-decoration: underline;
  text-decoration-color: var(--line);
  text-decoration-thickness: 2px;
}
.relatedThreads small {
  font-family: 'IBM Plex Mono', ui-monospace, 'SF Mono', Menlo, Consolas, monospace;
  font-size: 11px;
  font-weight: 500;
  color: #7a7466;
}
/* ---------- post pagination ---------- */
.pager.top {
  margin: 0 0 22px;
}
/* ==========================================================================
   INTERCHANGE for XenForo — composer (quick reply, new thread, editor)
   A hard-bordered panel with an offset block shadow and a dark toolbar.
   ========================================================================== */
.quickReply {
  border: 2px solid #131313;
  background: #f8f4e9;
  margin-top: 44px;
  box-shadow: 8px 8px 0 #131313;
  border-radius: 0;
}
.ix-dark .quickReply {
  box-shadow: 8px 8px 0 var(--line);
}
.quickReply-header {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 10px 16px;
  background: #131313;
  color: #efe9da;
  font-family: 'IBM Plex Mono', ui-monospace, 'SF Mono', Menlo, Consolas, monospace;
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}
/* ---------- editor toolbar ---------- */
.quickReply-toolBar,
#xfForm .editor-toolbar {
  display: flex;
  flex-wrap: wrap;
  border-bottom: 2px solid #131313;
  background: #f8f4e9;
  padding: 0;
}
.quickReply-toolBar .button,
#xfForm .editor-toolbar .button,
.quickReply-toolBar .toolButton,
#xfForm .editor-toolbar .toolButton,
.quickReply-toolBar button,
#xfForm .editor-toolbar button {
  width: 42px;
  height: 40px;
  display: grid;
  place-items: center;
  border-right: 1px solid #cdc5ae;
  border-bottom: 0;
  background: transparent;
  color: #131313;
  font-family: 'IBM Plex Mono', ui-monospace, 'SF Mono', Menlo, Consolas, monospace;
  font-size: 14px;
  font-weight: 700;
  cursor: pointer;
  border-radius: 0;
}
.quickReply-toolBar .button:hover,
#xfForm .editor-toolbar .button:hover,
.quickReply-toolBar .toolButton:hover,
#xfForm .editor-toolbar .toolButton:hover,
.quickReply-toolBar button:hover,
#xfForm .editor-toolbar button:hover {
  background: #131313;
  color: #efe9da;
}
.quickReply-toolBar .button.is-active,
#xfForm .editor-toolbar .button.is-active,
.quickReply-toolBar .toolButton.is-active,
#xfForm .editor-toolbar .toolButton.is-active,
.quickReply-toolBar button.is-active,
#xfForm .editor-toolbar button.is-active {
  background: var(--line);
  color: var(--on-line);
}
.quickReply-toolBar .spacer,
#xfForm .editor-toolbar .spacer {
  flex: 1;
}
/* ---------- the editable surface ---------- */
.quickReply-message,
#xfForm .editor-input {
  display: block;
  width: 100%;
  min-height: 140px;
  padding: 16px 18px;
  background: transparent;
  border: 0;
  outline: 0;
  font-family: 'Archivo', system-ui, -apple-system, 'Segoe UI', sans-serif;
  font-size: 16.5px;
  line-height: 1.65;
  color: #131313;
  resize: vertical;
}
/* XF's contenteditable editor surface */
#xfForm .editor-input {
  font-family: 'Archivo', system-ui, -apple-system, 'Segoe UI', sans-serif;
  font-size: 16.5px;
  line-height: 1.65;
  color: #131313;
  padding: 16px 18px;
  min-height: 160px;
}
#xfForm .editor-input:focus {
  outline: 0;
}
#xfForm .editor-input > :first-child {
  margin-top: 0;
}
#xfForm .editor-input > :last-child {
  margin-bottom: 0;
}
/* ---------- footer row ---------- */
.quickReply-footer,
#xfForm .editor-footer {
  display: flex;
  align-items: center;
  gap: 14px;
  padding: 12px 16px;
  border-top: 2px solid #131313;
  flex-wrap: wrap;
}
.ix-editor-count {
  font-family: 'IBM Plex Mono', ui-monospace, 'SF Mono', Menlo, Consolas, monospace;
  font-size: 11px;
  font-weight: 500;
  color: #7a7466;
}
/* ---------- attachment / poll / signature toggles ---------- */
#xfForm .editor-controlBar {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
  padding: 10px 16px;
  background: #e6dfcc;
  border-bottom: 1px solid #cdc5ae;
}
/* ---------- preview toggle ---------- */
.quickReply.is-preview .quickReply-message {
  display: none;
}
.quickReply:not(.is-preview) .quickReply-preview {
  display: none;
}
.quickReply-preview {
  padding: 16px 18px;
  min-height: 140px;
}
/* ---------- new thread / posting forms ---------- */
#xfForm .p-title-value {
  font-family: 'IBM Plex Mono', ui-monospace, 'SF Mono', Menlo, Consolas, monospace;
  font-size: 15px;
  font-weight: 500;
  text-transform: none;
  letter-spacing: 0;
  line-height: 1.5;
  text-transform: uppercase;
}
#xfForm .block-header {
  font-family: 'IBM Plex Mono', ui-monospace, 'SF Mono', Menlo, Consolas, monospace;
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  background: #131313;
  color: #efe9da;
  padding: 9px 14px;
}
#xfForm .block-body {
  padding: 16px;
}
#xfForm .formRow {
  padding: 0 0 18px;
  margin-bottom: 18px;
  border-bottom: 1px dashed #cdc5ae;
}
#xfForm .formRow:last-child {
  border-bottom: 0;
  margin-bottom: 0;
  padding-bottom: 0;
}
#xfForm .formRow-label {
  display: block;
  font-family: 'IBM Plex Mono', ui-monospace, 'SF Mono', Menlo, Consolas, monospace;
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  margin-bottom: 7px;
  color: #131313;
}
#xfForm .formRow-description {
  font-size: 13px;
  color: #7a7466;
  margin-top: 6px;
}
#xfForm .formRow-label:empty {
  display: none;
}
/* node/forum picker rows in posting forms */
.block.filterList li {
  display: grid;
  grid-template-columns: auto 1fr auto;
  gap: 12px;
  align-items: center;
  padding: 10px 16px;
  border-bottom: 1px solid #cdc5ae;
}
.block.filterList li:last-child {
  border-bottom: 0;
}
/* ---------- the "post new thread" CTA band ---------- */
.ix-postBand {
  background: var(--line);
  color: var(--on-line);
  border-top: 2px solid #131313;
  border-bottom: 2px solid #131313;
  margin: 44px 0 0;
}
.ix-postBand-inner {
  display: flex;
  align-items: center;
  gap: 22px 40px;
  padding: 22px 0;
  flex-wrap: wrap;
}
.ix-postBand-title {
  font-size: clamp(24px, 3.2vw, 40px);
  font-weight: 900;
  font-stretch: 62%;
  text-transform: uppercase;
  line-height: 1;
  color: inherit;
}
.ix-postBand-title u {
  text-decoration: none;
  background: var(--on-line);
  color: var(--line);
  padding: 0 0.14em;
}
.ix-postBand-actions {
  display: flex;
  gap: 10px;
  flex-wrap: wrap;
  margin-left: auto;
}
.ix-postBand-actions .button:not(.button--dark) {
  background: transparent;
  color: inherit;
  border-color: currentColor;
}
.ix-postBand-actions .button:not(.button--dark):hover {
  background: var(--on-line);
  color: var(--line);
  transform: none;
  box-shadow: none;
}
.ix-postBand-actions .button--dark {
  background: #131313;
  color: #f3eedd;
  border-color: #131313;
}
/* ==========================================================================
   INTERCHANGE for XenForo — XF surface layer
   Where XF's own components meet the transit language: sidebars, mod bar,
   profile, search, member list, notifications, account pages, footer.
   ========================================================================== */
/* ---------- layout grid (main + aside) ---------- */
.p-body-main {
  display: block;
}
.p-body {
  padding-top: 8px;
}
.p-body-header {
  padding-top: 12px;
}
.p-body-main .p-body-main-inner {
  max-width: none;
}
/* XF's standard two-column "aside" region */
.p-body-aside {
  float: right;
  width: 310px;
  margin-left: 48px;
  position: sticky;
  top: 104px;
}
.p-body-main-inner {
  margin-right: 358px;
}
.p-body-aside .block {
  margin-bottom: 22px;
}
.p-body-aside .block:last-child {
  margin-bottom: 0;
}
@media (max-width: 980px) {
  .p-body-aside {
    float: none;
    width: auto;
    margin-left: 0;
    position: static;
  }
  .p-body-main-inner {
    margin-right: 0;
  }
}
/* ---------- sidebar blocks: vertical rail separators ---------- */
.p-body-aside .block {
  border: 2px solid #131313;
  background: #f8f4e9;
}
/* ---------- "users online" rail ---------- */
.p-body-aside .block > .block-header {
  font-family: 'IBM Plex Mono', ui-monospace, 'SF Mono', Menlo, Consolas, monospace;
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  background: #131313;
  color: #efe9da;
  padding: 9px 14px;
}
.p-body-aside .block-list {
  list-style: none;
  margin: 0;
  padding: 0;
}
.p-body-aside .block-list > li {
  padding: 10px 14px;
  border-bottom: 1px solid #cdc5ae;
  font-size: 14px;
}
.p-body-aside .block-list > li:last-child {
  border-bottom: 0;
}
/* ---------- mod bar (moderator tools) ---------- */
.p-modBar {
  border: 1px dashed #cdc5ae;
  background: #e6dfcc;
  padding: 8px 16px;
  font-family: 'IBM Plex Mono', ui-monospace, 'SF Mono', Menlo, Consolas, monospace;
  font-size: 11px;
  color: #7a7466;
}
.p-modBar a {
  color: #131313;
  font-weight: 600;
}
/* ---------- profile / message list ---------- */
.p-body-main .contentRow {
  border-bottom: 1px solid #cdc5ae;
}
.p-body-main .contentRow-title {
  font-size: 17px;
  font-weight: 600;
  line-height: 1.25;
}
.contentRow-info {
  font-family: 'IBM Plex Mono', ui-monospace, 'SF Mono', Menlo, Consolas, monospace;
  font-size: 11px;
  font-weight: 500;
  color: #7a7466;
}
/* ---------- search ---------- */
.p-body-searchResults {
  padding-top: 20px;
}
.p-body-searchResults .contentRow-title {
  font-size: 18px;
  font-weight: 700;
  color: #131313;
}
.p-body-searchResults .contentRow-title:hover {
  text-decoration: underline;
  text-decoration-color: var(--line);
  text-decoration-thickness: 3px;
}
.p-body-searchResults .searchResult-date {
  font-family: 'IBM Plex Mono', ui-monospace, 'SF Mono', Menlo, Consolas, monospace;
  font-size: 11px;
  color: #7a7466;
}
.p-body-searchResults .searchResult-snippet {
  font-size: 13.5px;
  color: #403d36;
  margin-top: 5px;
}
/* ---------- member list / member tiles ---------- */
.memberList {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(210px, 1fr));
  gap: 18px;
  margin-top: 20px;
  list-style: none;
  padding: 0;
}
.memberTile {
  border: 2px solid #131313;
  background: #f8f4e9;
  padding: 16px;
  text-align: center;
}
.memberTile .avatar {
  margin: 0 auto 10px;
}
.memberTile .username {
  font-weight: 800;
  font-stretch: 76%;
  text-transform: uppercase;
}
.memberTile .userTitle {
  margin-top: 4px;
}
.memberTile .userFields {
  font-family: 'IBM Plex Mono', ui-monospace, 'SF Mono', Menlo, Consolas, monospace;
  font-size: 11px;
  color: #7a7466;
  margin-top: 6px;
}
/* ---------- notifications / alerts ---------- */
.p-body-main .blockMessage {
  border-left-width: 6px;
}
/* ---------- account / settings pages ---------- */
.p-body-main .block {
  margin-bottom: 22px;
}
.p-body-accountManagement .formRow {
  padding-bottom: 16px;
}
/* ---------- tabs on profile / account ---------- */
.tabs .is-active:after {
  background: var(--line);
}
/* ---------- dropdown menus (XF default) ---------- */
.menuLink {
  border: 2px solid #131313;
  background: #f8f4e9;
  box-shadow: 4px 4px 0 #131313;
  border-radius: 0;
  padding: 0;
}
.menuLink-header {
  background: #131313;
  color: #efe9da;
  font-family: 'IBM Plex Mono', ui-monospace, 'SF Mono', Menlo, Consolas, monospace;
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  padding: 9px 14px;
  border-bottom: 2px solid #131313;
}
.menuLink-content {
  font-size: 14px;
}
.menuLink-content a {
  display: block;
  padding: 10px 14px;
  border-bottom: 1px solid #cdc5ae;
  color: #131313;
}
.menuLink-content a:hover {
  background: #131313;
  color: #efe9da;
}
.menuLink-content a:last-child {
  border-bottom: 0;
}
/* ---------- footer ---------- */
.p-footer {
  margin-top: 90px;
  background: #131313;
  color: #f3eedd;
  position: relative;
}
.p-footer:before {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  top: -6px;
  height: 6px;
  background: linear-gradient(90deg, #f2461d 0 25%, #2547d0 25% 50%, #f2aa00 50% 75%, #16935a 75%);
}
.p-footer-inner {
  max-width: 1280px;
  margin: 0 auto;
  padding: 54px 28px 40px;
}
.p-footer-header {
  font-size: clamp(48px, 8vw, 104px);
  font-weight: 900;
  font-stretch: 62%;
  line-height: 0.82;
  text-transform: uppercase;
  color: transparent;
  -webkit-text-stroke: 2px #f3eedd;
  margin-bottom: 30px;
}
.p-footer-row {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
  gap: 40px;
}
.p-footer-col h4 {
  font-family: 'IBM Plex Mono', ui-monospace, 'SF Mono', Menlo, Consolas, monospace;
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: #8e8a7c;
  margin-bottom: 14px;
}
.p-footer-col li {
  margin-bottom: 8px;
  font-size: 14.5px;
  list-style: none;
}
.p-footer-col a {
  color: #f3eedd;
}
.p-footer-col a:hover {
  color: #f2aa00;
  text-decoration: underline;
}
.p-footer-copyright {
  border-top: 1px solid #2c2c2c;
  font-family: 'IBM Plex Mono', ui-monospace, 'SF Mono', Menlo, Consolas, monospace;
  font-size: 11px;
  font-weight: 500;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: #7f7b6e;
  padding: 16px 0;
  display: flex;
  gap: 24px;
  flex-wrap: wrap;
}
/* ---------- the departure board (board-style panel) ---------- */
.ix-board {
  background: #131313;
  color: #f3eedd;
  padding: 22px 24px 24px;
  display: flex;
  flex-direction: column;
}
.ix-board-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  font-family: 'IBM Plex Mono', ui-monospace, 'SF Mono', Menlo, Consolas, monospace;
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: #f2aa00;
}
.ix-board-header .ix-pulse {
  display: inline-block;
  margin-right: 6px;
}
.ix-board-item {
  display: grid;
  grid-template-columns: 44px 1fr auto;
  gap: 12px;
  padding: 13px 0;
  border-top: 1px dashed #2c2c2c;
  align-items: start;
}
.ix-board-item .ix-board-time {
  font-family: 'IBM Plex Mono', ui-monospace, 'SF Mono', Menlo, Consolas, monospace;
  font-size: 12px;
  font-weight: 500;
  color: #f2aa00;
  padding-top: 2px;
}
.ix-board-item b {
  display: block;
  font-weight: 700;
  line-height: 1.2;
  font-size: 15.5px;
  color: #f3eedd;
}
.ix-board-item small {
  display: block;
  font-family: 'IBM Plex Mono', ui-monospace, 'SF Mono', Menlo, Consolas, monospace;
  font-size: 10.5px;
  font-weight: 500;
  text-transform: uppercase;
  color: #9d998b;
  margin-top: 4px;
  letter-spacing: 0.04em;
}
.ix-board-item .ix-board-tag {
  font-family: 'IBM Plex Mono', ui-monospace, 'SF Mono', Menlo, Consolas, monospace;
  font-size: 12px;
  font-weight: 600;
  background: #262624;
  padding: 3px 7px;
  color: #f3eedd;
}
.ix-board-item:hover b {
  text-decoration: underline;
  text-decoration-thickness: 3px;
}
.ix-board-item:hover .ix-board-tag {
  background: var(--line);
  color: var(--on-line);
}
/* ---------- login / register emphasis ---------- */
.p-body--login .p-header-title,
.p-body--register .p-header-title {
  font-size: clamp(38px, 6vw, 84px);
  font-weight: 900;
  font-stretch: 62%;
  text-transform: uppercase;
  line-height: 0.86;
  color: #131313;
  margin-bottom: 16px;
}
/* XF's own nudges and default rounded corners, flattened.

   NOTE: do NOT name this selector `.xf-nudge`. CssRenderer's
   processStylePropertyShorthand() rewrites any `.xf-<lowercase-word>` match via
   getCssProperty(), which deletes the selector and leaves a bare `{` — a fatal
   LESS parse error. The escaped class selector below is immune: the regex needs
   a literal `.` + `xf-`, and does not account for the escape. */
.xf\-nudge {
  border-radius: 0 !important;
}
/* reduced motion */
@media (prefers-reduced-motion: reduce) {
  *,
  *:before,
  *:after {
    animation: none !important;
    transition: none !important;
  }
}
/* ==========================================================================
   INTERCHANGE for XenForo — responsive
   Breakpoints mirror the prototype: 1180 (tighten), 980 (stack aside),
   820 (mobile: bottom nav, condensed rows).
   ========================================================================== */
@media (max-width: 1180px) {
  .ix-search {
    min-width: 42px;
    width: 42px;
    padding: 0;
    justify-content: center;
  }
  .ix-search:hover {
    min-width: 42px;
    box-shadow: none;
  }
  .ix-search .ix-search-text,
  .ix-search .ix-search kbd {
    display: none;
  }
  .p-nav > li > a {
    padding-left: 14px;
    padding-right: 14px;
    font-size: 18px;
  }
  .p-header-inner {
    gap: 22px;
  }
  .ix-me .ix-me-text {
    display: none;
  }
  .ix-me {
    padding: 0 8px;
  }
  .station {
    grid-template-columns: 64px minmax(0, 1fr) 150px 240px;
    gap: 0 18px;
  }
  .threadList-item,
  .threadList-header {
    grid-template-columns: 62px minmax(0, 1fr) 70px 150px;
  }
  .threadList-item-views,
  .threadList-header .threadList-item-views {
    display: none;
  }
}
@media (max-width: 980px) {
  .p-body-aside {
    float: none;
    width: auto;
    margin-left: 0;
    position: static;
  }
  .p-body-main-inner {
    margin-right: 0;
  }
  .p-footer-row {
    grid-template-columns: 1fr 1fr;
    gap: 28px;
  }
  .station {
    grid-template-columns: 64px minmax(0, 1fr);
    row-gap: 12px;
  }
  .station-nums {
    grid-column: 2;
    gap: 26px;
  }
  .station-lastPost {
    grid-column: 2;
    max-width: 420px;
  }
}
@media (max-width: 820px) {
  body {
    padding-bottom: 68px;
    font-size: 15px;
  }
  .p-body-inner,
  .p-header-inner,
  .ix-util-inner {
    padding-left: 16px;
    padding-right: 16px;
  }
  .p-header-util .ix-util-links,
  .p-header-util .ix-ticker {
    display: none;
  }
  .p-header-inner {
    min-height: 62px;
    gap: 12px;
  }
  .p-nav {
    display: none;
  }
  .ix-bnav {
    display: flex;
  }
  .p-header-logo .ix-brand-mark {
    width: 38px;
    height: 38px;
  }
  .p-header-logo-text {
    font-size: 28px;
  }
  .p-header-logo-text small {
    display: none;
  }
  .p-header-tools {
    gap: 8px;
    padding-bottom: 12px;
  }
  .ix-tbtn-msg,
  .ix-tbtn-me {
    display: none;
  }
  .ix-fab {
    display: inline-flex;
  }
  .ix-dd {
    position: fixed;
    left: 10px;
    right: 10px;
    width: auto;
    top: 70px;
  }
  .p-title,
  .p-title-value {
    font-size: clamp(32px, 11vw, 56px);
  }
  .sec-head .p-title-value,
  .p-section-header {
    font-size: 26px;
  }
  .p-breadcrumbs {
    padding-top: 16px;
  }
  .node {
    margin-top: 36px;
  }
  .node:before {
    left: 23px;
  }
  .node-header {
    grid-template-columns: 52px 1fr;
  }
  .node-header .node-stats {
    display: none;
  }
  .node-icon {
    margin-left: 5px;
  }
  .station {
    grid-template-columns: 52px minmax(0, 1fr);
    padding: 16px 0;
  }
  .station:before {
    inset: 0 -8px 0 52px;
  }
  .station-dot {
    left: 15px;
    top: 21px;
  }
  .station-title {
    font-size: 24px;
  }
  .station-nums b {
    font-size: 26px;
  }
  .threadList-item,
  .threadList-header {
    grid-template-columns: 48px minmax(0, 1fr);
    gap: 0 12px;
    padding-left: 18px;
    padding-right: 12px;
    align-items: start;
  }
  .threadList-header {
    display: none;
  }
  .threadList-item-momentum,
  .threadList-item-lastPost {
    display: none;
  }
  .threadList-item-mobileMeta {
    display: flex;
  }
  .threadList-item-excerpt {
    display: none;
  }
  .threadList-item-platform {
    width: 46px;
    height: 46px;
  }
  .threadList-item-platform b {
    font-size: 21px;
  }
  .thread-postList-wrap:before,
  .thread-postList-wrap:after {
    left: 19px;
    width: 4px;
  }
  .post {
    grid-template-columns: 44px minmax(0, 1fr);
    padding-top: 26px;
  }
  .post-user .avatar {
    --s: 38px;
    width: 38px;
    height: 38px;
    margin-left: 0;
    top: 76px;
    box-shadow: 0 0 0 5px #efe9da;
  }
  .post.is-op .post-user .avatar,
  .post.is-staff .post-user .avatar {
    box-shadow: 0 0 0 5px #f8f4e9;
  }
  .post-userName {
    font-size: 22px;
  }
  .post-number {
    font-size: 60px;
    top: -10px;
  }
  .post.is-op:before,
  .post.is-staff:before {
    right: -16px;
    left: -16px;
  }
  .message-body,
  .bbWrapper {
    font-size: 16px;
  }
  .post-actions {
    margin-left: -10px;
  }
  .post-action .post-action-label {
    display: none;
  }
  .quickReply {
    box-shadow: 5px 5px 0 var(--line);
  }
  .p-footer-inner {
    padding-top: 36px;
  }
  .p-footer-row {
    grid-template-columns: 1fr;
    gap: 28px;
  }
  .p-footer-header {
    font-size: 48px;
    -webkit-text-stroke-width: 1.5px;
  }
  .ix-palette {
    padding-top: 4vh;
  }
  .ix-palette-input input {
    font-size: 20px;
    height: 58px;
  }
  .pager > * {
    min-width: 34px;
    height: 34px;
  }
  .pager > * + * {
    margin-left: 12px;
  }
  .pager > * + *:before {
    width: 12px;
  }
}
@media (max-width: 480px) {
  .p-header-logo-text {
    font-size: 24px;
  }
  .ix-search {
    display: none;
  }
  .p-header-tools {
    gap: 6px;
  }
  .memberList {
    grid-template-columns: 1fr;
  }
}
/* Density: compact thread rows. Set per-user from the masthead toggle and
   persisted in localStorage by interchange.js. */
[data-density="compact"] .threadList-item {
  padding-top: 7px;
  padding-bottom: 7px;
}
[data-density="compact"] .threadList-item-platform {
  width: 44px;
  height: 44px;
}
[data-density="compact"] .threadList-item-platform b {
  font-size: 20px;
}
[data-density="compact"] .threadList-item-platform small,
[data-density="compact"] .threadList-item-excerpt {
  display: none;
}
[data-density="compact"] .station {
  padding-top: 12px;
  padding-bottom: 12px;
}
