@font-face {
  font-family: Shantell Sans;
  src: url("/fonts/ShantellSans-Variable.woff2") format("woff2");
  font-style: normal italic;
  font-weight: 300 800;
  font-display: swap;
}

@view-transition {
  navigation: auto;
}

::view-transition-old(root) {
  animation: .3s both colossus-page-fade-out;
}

::view-transition-new(root) {
  animation: .3s both colossus-page-fade-in;
}

@keyframes colossus-page-fade-out {
  from {
    opacity: 1;
  }

  to {
    opacity: 0;
  }
}

@keyframes colossus-page-fade-in {
  from {
    opacity: 0;
  }

  to {
    opacity: 1;
  }
}

@media (prefers-reduced-motion: reduce) {
  ::view-transition-old(root), ::view-transition-new(root) {
    animation: none;
  }
}

:root {
  --baseSize: 14pt;
  --onePointFiveSize: 13pt;
  --secondarySize: 12pt;
  --tertiarySize: 11pt;
  --quaternarySize: 10pt;
  --smallCapsSizeMultiplier: 1.25;
  --smallCapsLetterSpacing: .015em;
  --maximumParagraphWidth: 66ch;
  --chartTypeface: var(--uiTextTypeface);
  --monospaceFont: "Fira Code", monospace;
  --uiHeadingTypeface: "neue-haas-grotesk-display";
  --uiTextTypeface: "univers-next-pro";
  --imageCaptionTypeface: var(--postTypeface);
  --imageCaptionStyle: italic;
  --metadataTypeface: "neue-haas-grotesk-text";
  --grey-0: #fff;
  --grey-50: #fafafa;
  --grey-75: #f8f8f8;
  --grey-100: #f3f3f3;
  --grey-125: #f2f2f2;
  --grey-150: #eee;
  --grey-200: #e5e5e5;
  --grey-225: #e1e1e1;
  --grey-250: #ddd;
  --grey-300: #ccc;
  --grey-400: #aaa;
  --grey-500: #888;
  --grey-600: #6c6c6c;
  --grey-700: #555;
  --grey-850: #222;
  --grey-900: #111;
  --grey-1000: #000;
  --surface-page: var(--grey-0);
  --surface-raised: var(--grey-0);
  --surface-subtle: var(--grey-125);
  --surface-very-subtle: var(--grey-50);
  --surface-blockquote: var(--grey-75);
  --surface-button: #f7f7f7;
  --surface-button-hover: #fcfcfc;
  --surface-input: var(--grey-0);
  --surface-input-muted: var(--colour5);
  --surface-muted: var(--grey-100);
  --surface-section: #f6f6f6;
  --surface-emoji-menu: var(--colour2Light);
  --surface-icon-panel: var(--colour2Light);
  --surface-icon-panel-hover: var(--colour2LightHover);
  --surface-ui-panel: var(--colour3Lighter);
  --surface-icon-inverse: var(--colour2);
  --surface-selected: var(--grey-0);
  --surface-control: var(--grey-150);
  --surface-radio: var(--grey-300);
  --surface-table-row: var(--grey-75);
  --surface-table-stripe: var(--grey-100);
  --tooltip-background: #fff6d4;
  --tooltip-border: none;
  --text-primary: var(--grey-1000);
  --text-secondary: var(--grey-700);
  --text-tertiary: var(--grey-500);
  --text-muted: var(--grey-500);
  --text-faint: var(--grey-400);
  --text-inverse: var(--grey-0);
  --border-subtle: var(--grey-200);
  --border-default: var(--grey-250);
  --border-muted: var(--grey-300);
  --border-faint: var(--grey-400);
  --border-control: #d0d0d0;
  --border-overlay: #0003;
  --border-strong: var(--text-primary);
  --outline-strong: var(--text-primary);
  --outline-inverse: var(--text-inverse);
  --shadow-soft: #0000001a;
  --shadow-subtle: #0000000f;
  --shadow-raised: #0000001f;
  --shadow-dialog: #0003;
  --shadow-medium: #00000026;
  --shadow-strong: #00000040;
  --status-alert-background: var(--colour1);
  --status-alert-background2: orange;
  --status-alert-border: var(--status-alert-background);
  --status-alert-text: var(--text-inverse);
  --status-alert-count-background: var(--status-alert-background);
  --status-notification-count-background: var(--colour2);
  --status-deleted-text: oklch(63.468% .18515 24.033);
  --status-error-background: var(--status-alert-background);
  --status-error-input-background: pink;
  --status-error-text: var(--status-alert-text);
  --status-warning-background: #ffffd7;
  --status-warning-border: #e4e4e4;
  --status-warning-text: var(--text-primary);
  --embed-bluesky-background: var(--colour2Light);
  --embed-bluesky-quote-border: var(--lighterLineColour);
  --embed-colossus-background: var(--surface-subtle);
  --embed-colossus-blockquote-background: var(--grey-200);
  --embed-colossus-continue-link: var(--colour2Bright);
  --embed-flickr-background: var(--colour3);
  --embed-flickr-caption-link: var(--colour2);
  --embed-flickr-caption-text: var(--text-inverse);
  --embed-flickr-text: var(--text-inverse);
  --embed-hackernews-accent: #f60;
  --embed-hackernews-background: #fff7f0;
  --embed-hackernews-label: #c24f00;
  --embed-imdb-accent: #f5c518;
  --embed-imdb-background-start: #fffbea;
  --embed-imdb-background-end: #fffdf5;
  --embed-imdb-label: #6a5600;
  --embed-opengraph-background: var(--surface-subtle);
  --embed-opengraph-label: #334155;
  --embed-wikipedia-accent: #222;
  --embed-wikipedia-background-start: #fbfbfb;
  --embed-wikipedia-background-end: #f2f2f2;
  --embed-wikipedia-label: #111;
  --embed-youtube-background-start: #f2f2f2;
  --embed-youtube-background-end: #f9f9f9;
  --embed-youtube-placeholder-background: #e2e2e2;
  --embed-youtube-unavailable-text: #bbb;
  --tabDialogInactiveBackgroundColour: var(--surface-subtle);
  --tabDialogActiveBackgroundColour: var(--surface-very-subtle);
  --tabDialogHoverBackgroundColour: var(--colour2Light);
  --TextTypeface: "adobe-garamond-pro", "Garamond", serif;
  --PostTypeface: "palatino-linotype", "Palatino", serif;
  --HeadingTypefaceDisplay: "neue-haas-grotesk-display", "Helvetica", sans-serif;
  --HeadingTypefaceText: "neue-haas-grotesk-text", "Helvetica", sans-serif;
  --TableTypeface: "univers-next-pro", "Helvetica", sans-serif;
  --TableHeadingTypeface: "univers-next-pro", "Helvetica", sans-serif;
  --highlightColour: oklch(79.21% 0 0);
  --lightLineColour: oklch(62.68% 0 0);
  --lighterLineColour: oklch(73.8% 0 0);
  --colour1: oklch(63.468% .18515 24.033);
  --colour1Light: oklch(77.559% .08614 19.153);
  --colour2: oklch(65.409% .14425 237.65);
  --colour2Light: oklch(93.494% .02684 234.113);
  --colour2LightHover: oklch(86.495% .03628 243.102);
  --colour2Bright: oklch(61.769% .14732 244.669);
  --colour3: oklch(81.615% .03049 240.365);
  --colour3Lighter: oklch(93.85% .0228 241.89);
  --colour4: oklch(94.91% .0219 138.98);
  --colour5: oklch(95.351% .01502 260.812);
  --colour6: oklch(70% .13 305);
  --backgroundColour1: var(--colour2Light);
  --linkColour: oklch(60% .048 234.48);
  --linkVisited: oklch(40% .048 234.48);
  --borderRadius: 8px;
  --hiddenTextHighlight: #d9edf980;
  --heatmap-base-colour: var(--colour2);
  --heatmap-year-background: var(--colour1);
  --heatmap-spacer-background: transparent;
  --heatmap-text-light: white;
  --heatmap-text-dark: black;
  --searchTimelineChartBarsColour: #1c96cc;
  --searchTimelineChartBarsTextColour: var(--text-inverse);
  --searchTimelineChartAxisColour: #aaa;
  --job-performance-median-colour: #188cd7;
  --job-performance-p95-colour: #e55050;
  --threads-over-time-area-colour: var(--colour4);
  --threads-over-time-line-colour: black;
  --thread-activity-area-colour: #f58d04;
  --thread-activity-line-colour: var(--threads-over-time-line-colour);
  --poll-bubble-chart-fill-colour: #3ba0e8;
  --poll-bubble-chart-reveal-from-fill-colour: #cfe9fb;
  --poll-bubble-chart-label-colour: white;
  --ridgeline-series-colour-1: #e55252;
  --ridgeline-series-colour-2: #1c96ca;
  --ridgeline-series-colour-3: #b3c7d5;
  --ridgeline-axis-colour: #999;
  --ridgeline-axis-tick-colour: #ccc;
  --ridgeline-axis-text-colour: #555;
  --ridgeline-label-colour: #444;
  --ridgeline-outline-colour: #fafafa;
  --ridgeline-baseline-colour: #d8d8d8;
  --stacked-step-series-colour-1: #e55252;
  --stacked-step-series-colour-2: #1c96ca;
  --stacked-step-series-colour-3: #b3c7d5;
  --stacked-step-baseline-colour: #d8d8d8;
  --stacked-step-gridline-colour: #eee;
  --stacked-step-label-colour: #444;
  --stacked-step-axis-colour: #999;
  --stacked-step-axis-tick-colour: #ccc;
  --stacked-step-axis-text-colour: #555;
  --poll-chart-series-colour-1: #c23531;
  --poll-chart-series-colour-2: #2f4554;
  --poll-chart-series-colour-3: #61a0a8;
  --poll-chart-series-colour-4: #d48265;
  --poll-chart-series-colour-5: #91c7ae;
  --poll-chart-label-colour: var(--text-primary);
  --poll-chart-border-colour: #f6f6f6;
  --poll-chart-pie-border-width: 0;
  --poll-chart-bar-border-width: 0;
  --poll-chart-nightingale-border-width: 3;
  --poll-chart-shadow-colour: #00000080;
  --ranking-poll-scatter-series-colour-1: #c23531;
  --ranking-poll-scatter-series-colour-2: #2f4554;
  --ranking-poll-scatter-series-colour-3: #61a0a8;
  --ranking-poll-scatter-series-colour-4: #d48265;
  --ranking-poll-scatter-series-colour-5: #91c7ae;
  --ranking-poll-scatter-label-colour: #fff;
  --ranking-poll-scatter-border-colour: #222;
  --traffic-control-admitted-colour: #188cd7;
  --traffic-control-admitted-fill-colour: #188cd726;
  --traffic-control-rejected-colour: #e55050;
  --traffic-control-rejected-fill-colour: #e5505026;
  --traffic-control-in-flight-colour: #188cd7;
  --traffic-control-in-flight-fill-colour: #188cd726;
  --traffic-control-blocked-colour: #7a3d00;
  --traffic-control-blocked-fill-start-colour: #f58d04;
  --traffic-control-blocked-fill-end-colour: #b8690126;
  --traffic-control-cap-colour: #c00000;
  --traffic-control-separator-colour: #fff;
  --requests-per-minute-admitted-fill-colour: var(--colour4);
  --requests-per-minute-rejected-fill-colour: var(--colour1);
  --requests-per-minute-line-colour: var(--grey-850);
  --requests-per-minute-line-width: 1;
  --requests-per-minute-axis-font-size: 11;
  --requests-per-minute-font-family: var(--uiTextTypeface);
}

* {
  box-sizing: border-box;
  margin: 0;
  padding: 0;
}

.visuallyHidden {
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
  width: 1px;
  height: 1px;
  margin: -1px;
  padding: 0;
  position: absolute;
  overflow: hidden;
}

applicationdata {
  display: none;
}

body {
  font-family: var(--HeadingTypefaceText);
  font-kerning: normal;
  font-feature-settings: "kern" 1;
  font-optical-sizing: auto;
  text-rendering: optimizelegibility;
  hanging-punctuation: first;
  scroll-behavior: smooth;
  flex-direction: column;
  margin-bottom: 2em;
  display: flex;
}

body.stickyMenusDisabled header, body.stickyMenusDisabled div.metadata {
  position: static !important;
}

body.Mode2 div.metadata {
  position: sticky;
  bottom: 1.25em;
}

body.Mode3 header {
  position: static;
}

body.Mode3 div.metadata {
  position: sticky;
  top: 1.25em;
  bottom: 1.25em;
}

body.Mode4 div.messages div.message div.metadata {
  align-self: flex-start;
}

h1.siteName {
  color: var(--colour2Bright);
  font-size: calc(var(--baseSize) * 2.4);
}

header {
  width: auto;
  padding-left: 19.1%;
  padding-right: 19.1%;
}

header * {
  user-select: none;
  -webkit-user-drag: none;
}

main {
  background-color: var(--surface-page);
  padding-left: 19.1%;
  padding-right: 19.1%;
}

main.additionalKeyboardShortcutsEnabled {
  padding-top: 1.25em;
}

body {
  background-color: var(--surface-page);
}

footer {
  background-color: var(--surface-page);
  margin-left: 19.1%;
  margin-right: 19.1%;
}

fieldset {
  font-family: var(--uiTextTypeface);
  color: var(--text-primary);
  border: 1px solid var(--lighterLineColour);
  border-radius: .45em;
  align-items: center;
  gap: 1.25em;
  width: fit-content;
  padding: .9375em 1.25em 1.25em;
  display: flex;
}

fieldset label {
  align-items: center;
  gap: .45em;
  display: flex;
}

fieldset + * {
  margin-top: 1.25em;
}

fieldset legend {
  font-size: calc(var(--baseSize) * .8);
  padding-left: .3125em;
  padding-right: .3125em;
}

small {
  line-height: 1.25;
}

select {
  color: var(--text-primary);
  font-size: calc(var(--baseSize) * .85);
  border-radius: 8px;
  min-width: 10em;
  height: 2.5em;
  padding: .3125em;
}

strong {
  font-weight: 500;
}

em {
  font-style: italic;
  line-height: 1;
}

sup, sub {
  vertical-align: baseline;
  font-variant-numeric: normal;
  font-size: .625em;
  line-height: 0;
  position: relative;
}

sup {
  top: -.625em;
}

sub {
  bottom: -.3125em;
}

p + * {
  margin-top: .625em;
}

p + h1 {
  margin-top: 1.25em;
}

h1 + p {
  margin-top: .625em;
}

p + h2 {
  margin-top: 1.25em;
}

h2 + p {
  margin-top: .625em;
}

* + h3 {
  margin-top: 1.25em;
}

h3 + * {
  margin-top: .625em;
}

p + h4, p + fieldset, fieldset + p {
  margin-top: 1.25em;
}

h4 + p, h1 + h2, h2 + h1, h2 + h3, h3 + h2, h3 + h4, h4 + h3 {
  margin-top: .625em;
}

h3 + section {
  margin-top: 1.25em;
}

h4 + small, h4 + h2, h4 + h1, h3 + h1 {
  margin-top: .625em;
}

h1 + *, h2 + *, h3 + *, h4 + *, section + section, table + * {
  margin-top: 1.25em;
}

span.time {
  white-space: nowrap;
}

section.posting, section.bookmarkButtons {
  grid-template-columns: minmax(10ch, 22ch) minmax(30ch, var(--maximumParagraphWidth));
  align-items: start;
  column-gap: 1.25em;
  display: grid;
}

div.bookmarkButtons, div.unfollowButtons {
  flex-direction: row-reverse;
  min-height: 4em;
  margin-top: 1.25em;
  margin-left: .625em;
  display: flex;
}

div.unfollowButtons {
  margin-top: 0;
}

section.editor {
  color: var(--text-primary);
}

section.editor div.ProseMirror-selectednode {
  background-color: var(--colour3);
  color: var(--text-inverse);
  font-weight: 500;
}

section.editor .tiptap th, section.editor .tiptap td {
  position: relative;
}

section.editor .tiptap .selectedCell:after {
  background: color-mix(in srgb, var(--colour2) 20%, transparent);
}

section + section.editorContainer {
  margin-top: 2em;
}

section.bookmarkButtons + section.posting {
  margin-top: 0;
}

section.embeddingContainer section.hints {
  width: var(--maximumParagraphWidth);
}

section.embeddingContainer section.hints img {
  height: 15em;
  margin-top: 1.25em;
}

section.embeddingContainer section.embeddingInfo {
  font-size: calc(var(--baseSize) * .85);
  border-bottom: 1px solid var(--lighterLineColour);
  grid-template-columns: 1fr 1fr;
  gap: 1.25em 2.5em;
  margin-bottom: 1.25em;
  padding-bottom: 2.5em;
  display: grid;
}

section.embeddingContainer section.embeddingInfo img {
  width: 3em;
  min-width: 3em;
}

section.embeddingContainer section.embeddingInfo img.icon {
  width: 1.2em;
  min-width: 1.2em;
  position: relative;
  top: 3px;
}

section.embeddingContainer section.embeddingInfo > div {
  align-items: center;
  gap: 1.25em;
  display: flex;
}

section.embeddingContainer section.embeddingInfo > div div.text {
  word-break: break-word;
}

.editorContainer div.postingInfo {
  justify-content: space-between;
  align-items: baseline;
  gap: 1.25em;
  margin-bottom: .3125em;
  display: flex;
}

.editorContainer div.postingInfo div.embeddingInfo a {
  color: var(--lightLineColour);
  font-weight: 400;
}

.editorContainer div.postingInfo div.embeddingInfo a:hover {
  text-decoration: underline;
}

.editorContainer div.postingInfo div.postingAs {
  color: var(--lightLineColour);
  margin-top: .625em;
  margin-left: .3125em;
}

.editorContainer div.postingInfo div.postingAs span.name {
  color: var(--colour2);
  font-weight: 500;
}

.editorContainer div.postingInfo label.anonymousAdmin {
  align-items: center;
  gap: .3125em;
  margin-left: .3125em;
  font-weight: 300;
  display: inline-flex;
}

.editorContainer div.postingInfo label.anonymousAdmin input#anonymousAdmin {
  cursor: pointer;
}

section.threadPage .editorContainer {
  font-family: var(--uiTextTypeface);
  margin-left: .625em;
}

#editor {
  flex-direction: column;
  height: 100%;
  min-height: 8em;
  display: flex;
}

section.newThreads img[src="/images/icons/newIndicator4.svg"] {
  display: none;
}

section.threadPage #editor {
  min-height: 8em;
}

section.newThreadPage #editor {
  min-height: 20em;
}

* + section.controlPanel {
  margin-top: .625em;
}

* + section.controlPanel button {
  margin-right: 0;
}

footer {
  border-top: 1px solid var(--border-strong);
  color: var(--text-primary);
  justify-content: flex-end;
  margin-top: 2.5em;
  padding-top: .625em;
  display: flex;
}

footer a {
  color: var(--colour2Bright);
}

footer p {
  font-family: var(--uiTextTypeface);
}

h1, h2, h3, h4 {
  font-family: var(--uiHeadingTypeface);
  color: var(--text-primary);
  font-weight: 500;
}

section.pollContainer h3, h3.pollStatus {
  font-family: var(--HeadingTypefaceDisplay);
}

p, span {
  color: var(--text-primary);
}

h1 + table, h2 + table {
  margin-top: 1.25em;
}

h3 + table {
  margin-top: .625em;
}

h1 {
  font-size: 30pt;
  font-size: calc(var(--baseSize) * 2);
}

h1.boardName {
  color: var(--colour2Bright);
  text-wrap: balance;
}

h1.threadName {
  align-items: center;
  gap: .3125em;
  line-height: 1;
  display: flex;
}

h1.threadName img.notWorksafe {
  height: .9375em;
}

h1.threadName * {
  color: var(--colour2Bright);
  text-wrap: balance;
}

h2 {
  font-size: 21pt;
  font-size: calc(var(--baseSize) * 1.64);
}

h3 {
  font-size: 17pt;
  font-size: calc(var(--baseSize) * 1.36);
}

h3.boardName + h2.threadName {
  margin-top: .3125em;
}

h4 {
  font-size: 14pt;
  font-size: calc(var(--baseSize) * 1.14);
}

h5 {
  font-size: calc(var(--baseSize));
  color: var(--text-primary);
  font-weight: 500;
}

sup {
  margin-left: .3125em;
  font-size: 60%;
}

p, ul, ol, li, blockquote {
  font-family: var(--PostTypeface);
  line-height: 1.25;
  font-size: var(--baseSize);
  text-align: justify;
  text-justify: inter-word;
  hyphens: auto;
  overflow-wrap: break-word;
  word-break: break-word;
  text-wrap: pretty;
}

:is(p, ul, ol, li, blockquote) strong {
  font-weight: 600;
}

div.displayName.systemUser {
  color: var(--colour2Bright);
}

* + blockquote, blockquote + * {
  margin-top: .625em;
  margin-left: 0;
  margin-right: 0;
}

blockquote {
  background-color: var(--surface-blockquote);
  border-radius: 8px;
  padding: .625em;
}

blockquote > blockquote {
  border: 1px solid var(--grey-225);
}

pre {
  background-color: var(--surface-blockquote);
  border-radius: 8px;
  padding: .625em;
}

div.messages.bookMode div.body p + p, div.example.postDisplayMode.bookMode p + p {
  text-indent: 1.25em;
  margin-top: 0;
}

blockquote + blockquote {
  margin-top: .625em;
}

.smallcaps {
  font-variant-caps: all-small-caps;
  font-size: calc(var(--baseSize) * var(--smallCapsSizeMultiplier));
  letter-spacing: var(--smallCapsLetterSpacing);
  color: inherit;
  line-height: 1.25rem;
}

ul, ol {
  margin-left: 2em;
}

:is(ul, ol) li {
  text-align: left;
  color: var(--text-primary);
}

:is(ul, ol) li * {
  text-align: left;
}

li + li {
  margin-top: .625em;
}

li::marker {
  font-size: .625em;
}

ol li::marker {
  font-size: var(--baseSize);
  font-variant-numeric: oldstyle-nums;
}

a {
  color: var(--linkColour);
  overflow-wrap: break-word;
  text-decoration: none;
}

body.boardPage table th:first-child {
  text-align: left;
}

body.searchPage h2.subHeader {
  justify-content: space-between;
  align-items: center;
  display: flex;
}

body.searchPage h2.subHeader img {
  margin-right: .625em;
}

body.searchPage h2.subHeader div.heading {
  align-items: center;
  margin-right: 1.25em;
  display: flex;
}

body.searchPage h2.subHeader div.heading * {
  font-family: var(--uiHeadingTypeface);
}

body.searchPage h2.subHeader div.viewRecentPosts {
  gap: .625em;
  display: flex;
}

:is(body.boardPage main, body.searchPage main, body.monthViewPage section.threadsByDay div.threadInfo) a:visited {
  color: var(--linkVisited);
}

:is(body.boardPage main, body.searchPage main, body.monthViewPage section.threadsByDay div.threadInfo) a:hover {
  color: var(--colour2);
}

:is(body.boardPage main, body.searchPage main, body.monthViewPage section.threadsByDay div.threadInfo) section.timeline a:visited {
  color: var(--text-inverse);
}

:is(body.boardPage main, body.searchPage main, body.monthViewPage section.threadsByDay div.threadInfo) section.timeline div.searchTimelineTooltip {
  font-family: var(--uiTextTypeface);
}

div.messages a {
  color: var(--linkColour);
}

button.colossus, a.colossus {
  font-family: var(--uiTextTypeface);
  background-color: var(--surface-button);
  max-width: 18em;
  min-height: 2.5em;
  color: var(--text-primary);
  box-shadow: none;
  border: 1px solid var(--border-default);
  border-radius: var(--borderRadius);
  outline: none;
  justify-content: space-around;
  align-items: center;
  gap: .625em;
  margin-top: .625em;
  margin-bottom: .625em;
  margin-right: .625em;
  padding: .625em 1.875em;
  font-size: 11pt;
  font-weight: 500;
  display: flex;
}

:is(button.colossus, a.colossus):focus {
  outline: .5px solid var(--highlightColour);
}

:is(button.colossus, a.colossus):disabled {
  cursor: not-allowed;
  opacity: .5;
}

:is(button.colossus, a.colossus):disabled div {
  opacity: .5;
}

:is(button.colossus, a.colossus).flushRight {
  word-break: keep-all;
  margin-left: 1.5em;
  margin-right: 0;
}

:is(button.colossus, a.colossus):not(:disabled):hover {
  background-color: var(--surface-button-hover);
  cursor: pointer;
  box-shadow: var(--shadow-medium) 2px 2px 4px;
  text-decoration: none;
  transition: all .25s;
}

:is(button.colossus, a.colossus):not(:disabled):active {
  box-shadow: none;
  transition: all .15s;
  transform: translate(1.5px, 1.5px);
}

:is(button.colossus, a.colossus) div.shortcutKey {
  font-weight: 400;
}

:is(button.colossus, a.colossus) img {
  max-width: 2.5em;
  max-height: 1.5em;
}

:is(button.colossus, a.colossus) div {
  display: grid;
}

span.warning {
  z-index: 100000000;
  font-weight: 500;
  font-size: calc(var(--baseSize) * .75);
  text-align: center;
  background-color: var(--status-alert-background);
  color: var(--status-alert-text);
  border-radius: 10px;
  padding: .625em;
  display: block;
  position: fixed;
  top: 1.25em;
  left: 1.25em;
}

span.warning.jsonLogging {
  background-color: var(--status-alert-background2);
}

div.warningLozenges {
  z-index: 100000000;
  flex-direction: column;
  gap: .5em;
  display: flex;
  position: fixed;
  top: 1.25em;
  left: 1.25em;
}

div.warningLozenges span.warning {
  font-family: var(--uiTextTypeface);
  position: static;
}

header {
  z-index: 1000;
  background: var(--surface-page);
  flex-direction: column;
  padding-top: 1.25em;
  padding-bottom: 2.5em;
  display: flex;
  position: sticky;
  top: 0;
}

header a {
  color: var(--text-primary);
}

header h2.threadName {
  align-items: center;
  display: flex;
}

header h2.threadName img {
  height: 1.25em;
  margin-right: .625em;
}

header h2.boardName {
  font-size: calc(var(--baseSize) * 1.2);
  text-transform: uppercase;
  letter-spacing: .02em;
  margin: 0 0 .15625em;
}

header .bookmarkButtons {
  flex-direction: row-reverse;
  margin-left: 2em;
  display: flex;
}

header nav.mainMenu {
  color: var(--text-primary);
  font-family: var(--uiTextTypeface);
  font-weight: 400;
  font-size: var(--baseSize);
  border-bottom: 1px solid var(--border-strong);
  justify-content: space-between;
  align-items: center;
  gap: .625em 2.5em;
  min-height: calc(1.5em + 9px);
  margin-bottom: 1.25em;
  padding-bottom: .625em;
  display: flex;
}

header nav.mainMenu div {
  flex-wrap: wrap;
  align-items: center;
  gap: .625em 1.25em;
  display: flex;
}

header nav.mainMenu div div.boardShortcuts {
  gap: .46875em;
  display: flex;
}

header nav.mainMenu div div.boardShortcuts:not(:has(*, :not(:empty))) {
  display: none;
}

header nav.mainMenu div div.menuItem {
  display: flex;
}

header nav.mainMenu div div.menuItem.boardShortcut {
  font-family: var(--uiTextTypeface);
  font-size: calc(var(--baseSize) * .6);
  background-color: var(--colour2Light);
  border-radius: var(--borderRadius);
  padding: .4em;
}

header nav.mainMenu div div.menuItem.boardShortcut a {
  color: var(--text-primary);
  font-family: var(--uiTextTypeface);
}

header nav.mainMenu div div.menuItem a, header nav.mainMenu div div.menuItem button {
  word-break: keep-all;
  align-items: center;
  gap: .625em;
  display: inline-flex;
}

header nav.mainMenu div div.menuItem button {
  color: inherit;
  font: inherit;
  cursor: pointer;
  background: none;
  border: 0;
  padding: 0;
}

header nav.mainMenu div div.menuItem.userIcon {
  display: none;
}

header nav.mainMenu div div.menuItem .displayName .role {
  font-weight: 400;
}

header nav.mainMenu div div.menuItem a.history img {
  position: relative;
  top: 1px;
}

header nav.mainMenu div.placeholder {
  position: relative;
}

header nav.mainMenu div.placeholder.bookmarks, header nav.mainMenu div.placeholder.notifications {
  flex: 0 0 calc(var(--baseSize) * 1.3);
  width: calc(var(--baseSize) * 1.3);
  height: calc(var(--baseSize) * 1.3);
}

header nav.mainMenu div.placeholder div.alert {
  background-color: var(--status-alert-count-background);
  color: var(--status-alert-text);
  width: calc(var(--baseSize) * 1.3);
  height: calc(var(--baseSize) * 1.3);
  font-size: calc(var(--baseSize) * .65);
  cursor: pointer;
  border-radius: 50%;
  justify-content: center;
  align-items: center;
  display: flex;
}

header nav.mainMenu div.placeholder span.numberOfUpdatedBookmarks {
  color: var(--status-alert-text);
}

header nav.mainMenu div.placeholder.notifications div.alert {
  background-color: var(--status-notification-count-background);
}

header nav.mainMenu div.activeUsers {
  gap: .625em;
  margin-right: .625em;
}

header nav.mainMenu img {
  height: 1em;
}

header nav.mainMenu div.breadcrumbs {
  flex-wrap: nowrap;
  gap: .625em;
  margin: 0;
}

header nav.mainMenu div.breadcrumbs a {
  white-space: nowrap;
}

header nav.mainMenu div.breadcrumbs div.breadcrumbLinks {
  flex-wrap: nowrap;
  gap: .625em;
}

header nav.contextMenu {
  flex-wrap: wrap;
  justify-content: space-between;
  align-items: center;
  gap: 1.25em;
  display: flex;
}

header nav.contextMenu > .boardName, header nav.contextMenu > .boardAndThreadName {
  flex: 1 1 0;
  min-width: 0;
}

header nav.contextMenu h1 + *, header nav.contextMenu h2 + *, header nav.contextMenu h3 + *, header nav.contextMenu h4 + * {
  margin-top: 0;
}

header nav.contextMenu div.contextButtons {
  flex-wrap: wrap;
  gap: .625em;
  display: flex;
}

header nav.contextMenu div.contextButtons span#muteThreadText {
  display: none;
}

header nav.contextMenu div.contextButtons button.colossus, header nav.contextMenu div.contextButtons a.colossus {
  margin: 0;
}

header nav.contextMenu div.contextButtons img.chatDisabledIndicator {
  object-fit: contain;
  align-self: center;
  width: 2em;
  height: 2em;
  margin-right: .625em;
}

header nav.contextMenu div.boardAndThreadName {
  padding-right: 1.25em;
}

header nav.contextMenu div.bookmarkButtons {
  flex: 1;
}

section.heading + section.content {
  margin-top: 2em;
}

section.content {
  grid-template-rows: auto auto;
  grid-template-columns: 61.8fr 38.2fr;
  gap: 0 2em;
  display: grid;
}

section.content section.threads + section.newThreads {
  margin-top: 0;
}

@media (width <= 1200px) {
  section.content {
    grid-template-columns: 1fr;
    gap: 2em;
  }

  span.role {
    display: none;
  }
}

@media (width <= 900px) {
  a.recentActivity span {
    display: none;
  }
}

@media (width <= 600px) {
  body.settingsPage section.options section.displayOptions section.example {
    display: none;
  }

  body.settingsPage section.options section.displayOptions div.option.horizontal {
    flex-direction: column;
    align-items: flex-start;
  }

  body.settingsPage section.options section.displayOptions div.option.password {
    grid-template-columns: minmax(auto, 12em);
  }

  body.settingsPage section.options section.displayOptions div.option.password label {
    text-align: left;
  }

  body.settingsPage section.options section.displayOptions.postDisplayMode {
    grid-template-columns: 1fr;
  }
}

section.threadPage {
  grid-template-columns: minmax(0, 1fr);
}

section.content.boardsPage {
  grid-template-columns: 1fr;
}

section.content.boardsPage table {
  table-layout: fixed;
}

section.content.boardsPage table colgroup col:first-child {
  width: 20%;
}

section.content.boardsPage table colgroup col:nth-child(2) {
  width: 45%;
}

section.content.boardsPage table colgroup col:nth-child(3) {
  width: 15%;
}

section.content.boardsPage table colgroup col:nth-child(4) {
  width: 20%;
}

table {
  border-collapse: collapse;
  table-layout: auto;
  line-height: 1.25;
  font-family: var(--TableTypeface);
  font-weight: 400;
  font-size: var(--baseSize);
  cursor: default;
  color: var(--text-primary);
}

table th.newThreadsHeader {
  justify-content: space-between;
  display: flex;
}

table thead {
  font-family: var(--TableHeadingTypeface);
}

table thead th {
  white-space: nowrap;
  font-weight: 500;
}

@media (width <= 1200px) {
  table thead th {
    white-space: normal;
  }

  span.warning {
    display: none;
  }
}

@media (width <= 1400px) {
  header nav.mainMenu div div.menuItem.displayName {
    display: none;
  }

  header nav.mainMenu div div.menuItem.userIcon {
    display: flex;
  }
}

table tbody td {
  font-weight: 400;
}

table img {
  height: 1em;
}

table td, table th {
  vertical-align: baseline;
  padding: .156em .625em .3125em;
}

table td:first-child, table th:first-child {
  padding-left: 0;
}

table td:last-child, table th:last-child {
  padding-right: 0;
}

table tbody tr:first-child td, table tbody tr:first-child th {
  padding-top: .625em;
}

table thead th, table {
  border-bottom: 1px solid var(--lightLineColour);
}

table tbody tr:last-child td {
  padding-bottom: .625em;
}

table .selected {
  background-color: var(--colour3);
}

input[type="text"], input[type="url"], input[type="email"], input[type="search"], input[type="number"], input[type="password"], input[type="datetime-local"] {
  color: var(--text-primary);
  font-family: var(--uiTextTypeface);
  font-size: var(--baseSize);
  background-color: var(--surface-input-muted);
  box-shadow: none;
  border-radius: var(--borderRadius);
  border: none;
  outline: none;
  padding: .625em;
}

pre, code {
  hanging-punctuation: none;
  font-family: var(--monospaceFont);
  font-optical-sizing: auto;
  font-variant-ligatures: contextual common-ligatures;
  text-align: left;
  font-style: normal;
  font-weight: 400;
  font-size: calc(var(--baseSize) * .85);
  line-height: 1.25;
  overflow: hidden;
}

table.boards a.editLink {
  margin-right: .625em;
  font-weight: 300;
}

table.boards a.editLink img {
  position: relative;
  top: 3px;
}

table.boards thead tr th:first-child {
  text-align: right;
}

table.boards tbody tr td {
  vertical-align: middle;
}

table.boards thead tr th:nth-child(2) {
  text-align: left;
}

table.boards tbody tr td:first-child {
  text-align: right;
  min-width: 12em;
  font-weight: 500;
}

table.boards thead tr th:nth-child(3) {
  text-align: center;
  text-align: center;
}

table.boards tbody tr td:nth-child(3) {
  text-align: center;
  padding: 0;
}

table.boards tbody tr td:nth-child(2) {
  overflow-wrap: anywhere;
  width: 10%;
}

table.boards tbody tr td:nth-child(4), table.boards thead tr th:nth-child(4) {
  text-align: right;
  min-width: 8em;
}

table.threads th {
  text-align: left;
}

table.threads thead th {
  vertical-align: middle;
  height: 1.75em;
}

table.threads span.boardIndicator {
  color: var(--text-primary);
  font-family: var(--uiTextTypeface);
  text-align: center;
  background-color: #c8e1f4;
  border-radius: 4px;
  padding: .3125em .625em;
  font-size: 8pt;
  font-weight: 400;
  line-height: normal;
}

table.threads div.authorAndCreationDate {
  color: var(--text-secondary);
  text-wrap: balance;
  font-size: 11pt;
  line-height: 1.25;
}

table.threads div.nameAndDate {
  width: 8em;
}

table.threads div.newPosts {
  font-size: 11pt;
}

table.threads tr.updatedSinceYourLastVisit {
  text-align: center;
  color: var(--colour2);
  font-size: 12pt;
  font-family: var(--TableTypeface);
}

table.threads div.nameAndDate, table.threads div.titleAndLastUpdated {
  hanging-punctuation: initial;
  flex-direction: column;
  gap: .3125em;
  display: flex;
}

:is(table.threads div.nameAndDate, table.threads div.titleAndLastUpdated).newSincePreviouslyLoggedIn {
  border-left: 4px solid var(--colour1);
  padding-left: .625em;
}

:is(table.threads div.nameAndDate, table.threads div.titleAndLastUpdated) div.title a {
  text-wrap: balance;
  color: var(--text-primary);
}

:is(table.threads div.nameAndDate, table.threads div.titleAndLastUpdated) div.title a:visited {
  color: var(--text-primary);
}

:is(table.threads div.nameAndDate, table.threads div.titleAndLastUpdated) a.unanswered {
  font-weight: 500;
}

:is(table.threads div.nameAndDate, table.threads div.titleAndLastUpdated) span.newPosts {
  color: var(--colour1Light);
  font-weight: 400;
}

:is(table.threads div.nameAndDate, table.threads div.titleAndLastUpdated) span.newPosts.bookmarked {
  color: var(--colour1);
  font-size: 12pt;
}

:is(table.threads div.nameAndDate, table.threads div.titleAndLastUpdated) div.title {
  align-items: center;
  gap: .625em;
  display: flex;
}

:is(table.threads div.nameAndDate, table.threads div.titleAndLastUpdated) div.title span.pollIndicator {
  font-family: var(--TableTypeface);
  color: var(--text-inverse);
  background-color: #000;
  border-radius: 4px;
  margin-right: 1.25em;
  padding: .3125em .625em;
  font-size: 10pt;
  font-weight: 500;
}

:is(table.threads div.nameAndDate, table.threads div.titleAndLastUpdated) div.title span.pollIndicator.complete {
  background-color: var(--colour1);
}

:is(table.threads div.nameAndDate, table.threads div.titleAndLastUpdated) div.date {
  word-break: break-word;
  text-wrap: balance;
  line-height: 1.25;
}

:is(table.threads div.nameAndDate, table.threads div.titleAndLastUpdated) div.messageCount.unanswered {
  color: var(--text-secondary);
}

table.threads div.titleAndLastUpdated div.boardName {
  color: var(--text-primary);
  font-weight: 400;
}

table.threads div.titleAndLastUpdated.none span.boardIndicator, table.threads div.titleAndLastUpdated.none div.boardName {
  display: none;
}

table.threads div.titleAndLastUpdated.text span.boardIndicator {
  display: none;
}

table.threads div.titleAndLastUpdated.lozenge div.boardName {
  display: none;
}

table.threads div.titleAndLastUpdated span.boardIndicator.boardHighlightColour1 {
  background-color: var(--colour1);
  color: #fff;
}

table.threads div.titleAndLastUpdated span.boardIndicator.boardHighlightColour2 {
  background-color: var(--colour2);
  color: #fff;
}

table.threads div.titleAndLastUpdated span.boardIndicator.boardHighlightColour3 {
  background-color: var(--colour6);
  color: #fff;
}

table.threads div.titleAndLastUpdated span.boardIndicator.boardHighlightColour4 {
  background-color: var(--colour4);
}

table.threads div.titleAndLastUpdated div.boardName.boardHighlightColour1 {
  color: var(--colour1);
}

table.threads div.titleAndLastUpdated div.boardName.boardHighlightColour2 {
  color: var(--colour2);
}

table.threads div.titleAndLastUpdated div.boardName.boardHighlightColour3 {
  color: var(--colour6);
}

table.threads div.titleAndLastUpdated div.boardName.boardHighlightColour4 {
  color: var(--colour4);
}

table.threads div.date, table.threads div.boardName, table.threads div.messageCount, table.threads div.ballotCount, table.threads div.startsAt {
  font-size: var(--secondarySize);
  color: var(--text-secondary);
  font-variant-numeric: normal;
}

:is(table.threads div.date, table.threads div.boardName, table.threads div.messageCount, table.threads div.ballotCount, table.threads div.startsAt) em {
  color: var(--colour1);
  font-style: normal;
}

table.threads div.ballotCount {
  color: var(--colour2);
}

table.threads div.startsAt {
  color: var(--colour2Bright);
}

table.threads .firstMessage {
  font-size: var(--baseSize);
  color: var(--text-tertiary);
  font-family: var(--TextTypeface);
  font-variant-numeric: oldstyle-nums;
  text-justify: inter-word;
  hyphens: auto;
  overflow-wrap: break-word;
  text-align: left;
  word-break: break-word;
  text-wrap: pretty;
  max-width: 66ch;
  line-height: 1.25;
}

table.threads td {
  vertical-align: middle;
  border-bottom: 1px solid var(--border-subtle);
  padding-top: .46875em;
  padding-bottom: .46875em;
}

table.threads td a.moreThreadsLink {
  padding-top: .625em;
  display: inline-block;
}

table.threads tr.moreThreadsRow td {
  text-align: left;
  border-bottom: 1px solid var(--surface-page);
}

table.threads tr.newBoardThreadRow td {
  opacity: 0;
  transition: opacity .1s ease var(--board-thread-transition-delay, 0s),
            transform .6s cubic-bezier(.22, 1, .36, 1) var(--board-thread-transition-delay, 0s);
  transform: translateX(-2em);
}

table.threads tr.newBoardThreadRow.visible td {
  opacity: 1;
  transform: translateX(0);
}

table.threads.minimalBoardActivityView div.boardName, table.threads.minimalBoardActivityView div.date, table.threads.minimalBoardActivityView div.authorAndCreationDate, table.threads.minimalBoardActivityView thead tr th:nth-child(2), table.threads.minimalBoardActivityView tbody tr td:nth-child(2) {
  display: none;
}

@media (prefers-reduced-motion: reduce) {
  table.threads tr.newBoardThreadRow td {
    opacity: 1;
    transition: none;
    transform: none;
  }
}

section.messages {
  min-width: 0;
  color: var(--text-primary);
}

section.messages .pageLinks {
  grid-template-columns: minmax(10ch, 22ch) minmax(30ch, var(--maximumParagraphWidth));
  align-items: start;
  column-gap: 1.25em;
  display: grid;
}

section.messages .pageLinks .nextPageLink, section.messages .pageLinks .previousPageLink {
  margin-top: 2em;
  margin-bottom: 1.25em;
}

section.messages .pageLinks .pageLink {
  font-weight: 500;
  font-family: var(--uiTextTypeface);
  margin-left: 1.75rem;
}

section.messages .pageLinks .pageLink:hover {
  text-decoration: none;
}

div.messages {
  flex-direction: column;
  gap: 1.25em;
  display: flex;
}

div.messages div.timeElapsedContainer, div.messages div.postSeparatorContainer {
  grid-template-columns: minmax(10ch, 22ch) minmax(30ch, var(--maximumParagraphWidth));
  align-items: center;
  column-gap: 1.25em;
  display: grid;
}

:is(div.messages div.timeElapsedContainer, div.messages div.postSeparatorContainer) div.timeElapsed, :is(div.messages div.timeElapsedContainer, div.messages div.postSeparatorContainer) div.postSeparator {
  font-style: italic;
  font-family: var(--TextTypeface);
  font-size: calc(var(--baseSize));
  color: var(--text-secondary);
  text-align: center;
  justify-content: center;
  margin-top: 1.25em;
  margin-bottom: 1.25em;
  display: flex;
}

:is(:is(div.messages div.timeElapsedContainer, div.messages div.postSeparatorContainer) div.timeElapsed, :is(div.messages div.timeElapsedContainer, div.messages div.postSeparatorContainer) div.postSeparator) span.lineLeft {
  color: var(--text-faint);
  margin-right: 1.25em;
}

:is(:is(div.messages div.timeElapsedContainer, div.messages div.postSeparatorContainer) div.timeElapsed, :is(div.messages div.timeElapsedContainer, div.messages div.postSeparatorContainer) div.postSeparator) span.lineRight {
  color: var(--text-faint);
  margin-left: 1.25em;
}

:is(div.messages div.timeElapsedContainer, div.messages div.postSeparatorContainer) div.postSeparator {
  margin-top: 0;
  margin-bottom: 0;
}

div.messages div.postSeparator .dividerGraphic, section.options section.displayOptions div.postSeparatorPreview .dividerGraphic {
  background-repeat: no-repeat;
  background-size: contain;
  width: min(100%, 340px);
  display: block;
}

div.messages div.postSeparator .dividerGraphic {
  background-position: center;
}

section.options section.displayOptions div.postSeparatorPreview .dividerGraphic {
  background-position: 0;
}

div.messages div.postSeparator .dividerGraphic.divider-1, section.options section.displayOptions div.postSeparatorPreview .dividerGraphic.divider-1 {
  background-image: url("/images/interstitials/divider-1.svg");
  height: .45em;
  margin-top: .0875em;
  margin-bottom: .0875em;
}

div.messages div.postSeparator .dividerGraphic.divider-2, section.options section.displayOptions div.postSeparatorPreview .dividerGraphic.divider-2 {
  background-image: url("/images/interstitials/divider-2.svg");
  width: 8em;
  height: 1.25em;
}

div.messages div.postSeparator .dividerGraphic.divider-3, section.options section.displayOptions div.postSeparatorPreview .dividerGraphic.divider-3 {
  background-image: url("/images/interstitials/divider-3.svg");
  height: .4em;
  margin-top: .1125em;
  margin-bottom: .1125em;
}

div.messages div.postSeparator .dividerGraphic.divider-4, section.options section.displayOptions div.postSeparatorPreview .dividerGraphic.divider-4 {
  background-image: url("/images/interstitials/divider-4.svg");
  height: .625em;
}

div.messages div.postSeparator .dividerGraphic.divider-5, section.options section.displayOptions div.postSeparatorPreview .dividerGraphic.divider-5 {
  background-image: url("/images/interstitials/divider-5.svg");
  height: 1.25em;
}

div.messages div.postSeparator .dividerGraphic.divider-6, section.options section.displayOptions div.postSeparatorPreview .dividerGraphic.divider-6 {
  background-image: url("/images/interstitials/divider-6.svg");
  height: 2.5em;
}

div.messages div.postSeparator .dividerGraphic.divider-7, section.options section.displayOptions div.postSeparatorPreview .dividerGraphic.divider-7 {
  background-image: url("/images/interstitials/divider-7.svg");
  height: 2.5em;
}

div.messages div.postSeparator .dividerGraphic.divider-8, section.options section.displayOptions div.postSeparatorPreview .dividerGraphic.divider-8 {
  background-image: url("/images/interstitials/divider-8.svg");
  height: 1.25em;
}

div.messages div.postSeparator .dividerGraphic.divider-9, section.options section.displayOptions div.postSeparatorPreview .dividerGraphic.divider-9 {
  background-image: url("/images/interstitials/divider-9.svg");
  height: 1.25em;
  margin-top: .125em;
  margin-bottom: .125em;
}

div.messages div.postSeparator .dividerGraphic.divider-10, section.options section.displayOptions div.postSeparatorPreview .dividerGraphic.divider-10 {
  background-image: url("/images/interstitials/divider-10.svg");
  height: .625em;
}

div.messages div.postSeparator .dividerGraphic.divider-11, section.options section.displayOptions div.postSeparatorPreview .dividerGraphic.divider-11 {
  background-image: url("/images/interstitials/divider-11.svg");
  height: .9375em;
  margin-top: .15625em;
  margin-bottom: .15625em;
}

div.messages div.postSeparator .dividerGraphic.divider-12, section.options section.displayOptions div.postSeparatorPreview .dividerGraphic.divider-12 {
  background-image: url("/images/interstitials/divider-12.svg");
  height: .3125em;
}

div.messages div.postSeparator .dividerGraphic.divider-13, section.options section.displayOptions div.postSeparatorPreview .dividerGraphic.divider-13 {
  background-image: url("/images/interstitials/divider-13.svg");
  height: 1.25em;
}

div.messages div.postSeparator .dividerGraphic.divider-14, section.options section.displayOptions div.postSeparatorPreview .dividerGraphic.divider-14 {
  background-image: url("/images/interstitials/divider-14.svg");
  height: 1.25em;
}

div.messages div.postSeparator .dividerGraphic.divider-15, section.options section.displayOptions div.postSeparatorPreview .dividerGraphic.divider-15 {
  background-image: url("/images/interstitials/divider-15.svg");
  height: .2em;
  margin-top: .05625em;
  margin-bottom: .05625em;
}

div.messages div.postSeparator .dividerGraphic.divider-16, section.options section.displayOptions div.postSeparatorPreview .dividerGraphic.divider-16 {
  background-image: url("/images/interstitials/divider-16.svg");
  height: 1.25em;
}

div.messages div.postSeparator .dividerGraphic.divider-more-space, section.options section.displayOptions div.postSeparatorPreview .dividerGraphic.divider-more-space {
  background-image: none;
  height: 1.25em;
}

div.messages .message {
  grid-template-columns: minmax(10ch, 22ch) minmax(30ch, var(--maximumParagraphWidth));
  word-break: break-word;
  cursor: default;
  align-items: center;
  column-gap: 1.25em;
  display: grid;
}

div.messages .message.accessibilityCurrentPost:not(:focus-visible) {
  outline: 1px dotted var(--text-primary);
  outline-offset: .625em;
  border-radius: var(--borderRadius);
}

div.messages .message:focus-visible {
  outline: 1px solid var(--outline-strong);
  outline-offset: .625em;
  border-radius: var(--borderRadius);
}

div.messages .message div.body div.lastReadIndicator {
  user-select: none;
  cursor: pointer;
  display: none;
  position: absolute;
  top: 50%;
  right: -1em;
  transform: translate(100%, -22px);
}

div.messages .message div.body div.lastReadIndicator.visible {
  display: block;
}

div.messages .message div.body div.lastReadIndicator img {
  width: 4em;
  height: 4em;
}

div.messages .message div.body div.lastReadIndicator div {
  font-family: var(--uiTextTypeface);
  font-size: var(--baseSize);
  text-align: left;
  width: 7.5em;
  text-shadow: 1px 1px 0 var(--text-inverse),
                    -1px 1px 0 var(--text-inverse),
                    1px -1px 0 var(--text-inverse),
                    -1px -1px 0 var(--text-inverse);
  hyphens: none;
  border-radius: 15px;
  padding: 8px 8px 8px 15px;
  font-weight: 500;
  position: relative;
  top: -2.3em;
  left: 5.6em;
}

div.messages .message[data-deleted="True"] div.body {
  color: var(--status-deleted-text);
  font-family: var(--TableTypeface);
  filter: blur(8px);
  font-weight: 400;
  transition: all .2s;
}

div.messages .message[data-deleted="True"] div.body:hover {
  filter: none;
  transition: all .2s;
}

div.messages .message[data-deleted="True"] div.body div.lastReadIndicator {
  color: var(--text-primary);
}

div.messages .message poll {
  display: none;
}

div.messages .message h1 {
  text-align: left;
  font-size: 24pt;
  line-height: normal;
}

div.messages .message h2 {
  text-align: left;
  font-size: 18pt;
  line-height: normal;
}

div.messages .message em.muted {
  color: #d3d3d3;
  font-style: normal;
}

div.messages .message div.displayName {
  line-height: 1.25;
  overflow: hidden;
}

a.skipToPosts {
  z-index: 10000;
  border: 2px solid var(--outline-strong);
  border-radius: var(--borderRadius);
  background-color: var(--surface-raised);
  color: var(--text-primary);
  font-family: var(--uiTextTypeface);
  padding: .625rem 1rem;
  position: fixed;
  top: .625rem;
  left: .625rem;
  transform: translateY(calc(-100% - 1rem));
}

a.skipToPosts:focus-visible {
  transform: none;
}

div.messages.postsFocusTarget:focus {
  outline: none;
}

div.messages .message > * {
  min-width: 0;
}

div.messages .message .metadata {
  grid-column: 1;
}

div.messages .message .body {
  grid-column: 2;
  position: relative;
}

div.messages .body {
  border-left: 1px solid var(--lighterLineColour);
  word-break: break-word;
  min-width: 0;
  margin-left: .5rem;
  padding-left: 1.25em;
}

div.messages .body.newPoster {
  border-top: 1px solid var(--lighterLineColour);
  padding-top: .625em;
}

section.messages div.messages .creationDate {
  font-size: var(--quaternarySize);
  color: var(--text-secondary);
  word-break: break-word;
  text-wrap: pretty;
  font-weight: 300;
}

section.messages div.messages .creationDate .smallcaps {
  font-variant-caps: small-caps;
  font-size: calc(var(--quaternarySize));
  color: var(--text-secondary);
}

section.messages div.messages .normallyHiddenPostMetadata {
  display: none;
}

body.alwaysShowPostNameAndDate section.messages div.messages .normallyHiddenPostMetadata {
  display: block;
}

section.messages div.messages div.metadata {
  font-family: var(--metadataTypeface);
  font-size: var(--baseSize);
  text-align: right;
  flex-direction: column;
  align-self: center;
  gap: .3125em;
  font-weight: 500;
  display: flex;
}

.colossusTypography {
  font-family: var(--PostTypeface);
  font-variant-numeric: oldstyle-nums;
  line-height: 1.25;
  font-size: var(--baseSize);
  text-align: justify;
  text-justify: inter-word;
  hyphens: auto;
  overflow-wrap: break-word;
  word-break: break-word;
  text-wrap: pretty;
  flex-direction: column;
  display: flex;
}

.colossusTypography div.embed {
  font-family: var(--uiTextTypeface);
  background-color: var(--colour3Lighter);
  border-radius: 8px;
  justify-content: flex-start;
  align-items: center;
  gap: 1.25em;
  padding: .9375em;
  font-weight: 400;
  display: flex;
}

.colossusTypography div.embed img.embedIcon {
  width: 3em;
  max-height: 3em;
  margin: initial;
}

.colossusTypography div.embed span.embedLabel {
  word-break: break-all;
  font-variant-numeric: normal;
  min-width: 0;
}

.colossusTypography [data-hidden-text-container] {
  background-color: var(--hiddenTextHighlight);
  color: inherit;
  vertical-align: baseline;
  border-radius: 6px;
  align-items: baseline;
  gap: .35em;
  padding: .15em .45em;
  display: inline-flex;
}

.colossusTypography [data-hidden-text-content] {
  word-break: break-word;
}

.colossusTypography p + *, .colossusTypography * + p, .colossusTypography * + ul, .colossusTypography * + ol, .colossusTypography ul + *, .colossusTypography ol + *, .colossusTypography li > ul, .colossusTypography li > ol {
  margin-top: .625em;
}

.colossusTypography * + h1, .colossusTypography * + h2, .colossusTypography * + h3, .colossusTypography * + h4 {
  margin-top: 1.25em;
}

.colossusTypography a + p {
  margin-top: .625em;
}

.colossusTypography h1, .colossusTypography h2, .colossusTypography h3, .colossusTypography h4 {
  font-size: var(--baseSize);
  font-family: var(--HeadingTypefaceText);
  font-weight: strong;
}

:is(.colossusTypography.firstMessage, .message.firstMessage .colossusTypography) h1 {
  font-size: calc(var(--baseSize) * 1.5);
}

:is(.colossusTypography.firstMessage, .message.firstMessage .colossusTypography) h2 {
  font-size: calc(var(--baseSize) * 1.125);
}

:is(.colossusTypography.firstMessage, .message.firstMessage .colossusTypography) h3 {
  font-size: calc(var(--baseSize) * 1.1);
}

:is(.colossusTypography.firstMessage, .message.firstMessage .colossusTypography) h4 {
  font-size: calc(var(--baseSize) * 1.05);
}

.colossusTypography strong {
  font-weight: 700;
}

.colossusTypography a {
  color: var(--linkColour);
  font-family: var(--PostTypeface);
  word-break: break-word;
  font-weight: 500;
}

.colossusTypography a:visited {
  color: var(--linkVisited);
}

.colossusTypography a:hover {
  text-decoration: underline;
}

.colossusTypography pre, .colossusTypography code {
  word-break: normal;
}

.colossusTypography pre {
  white-space: pre;
  overflow-wrap: normal;
  hyphens: none;
  width: 100%;
  max-width: 100%;
  padding-right: 0;
}

.colossusTypography pre code {
  overflow-wrap: normal;
  hyphens: none;
}

.colossusTypography p + p, .colossusTypography p + ul, .colossusTypography p + ol {
  margin-top: .625em;
}

.colossusTypography p + h1, .colossusTypography p + h2 {
  margin-top: 1.25em;
}

.colossusTypography h1 + p, .colossusTypography h2 + p {
  margin-top: .625em;
}

.colossusTypography * + table, .colossusTypography table + * {
  margin-top: 1.25em;
}

.colossusTypography table {
  font-family: var(--TableTypeface);
  font-variant: normal;
  border-top: 1px solid var(--border-strong);
  border-bottom: 1px solid var(--border-strong);
  font-variant-numeric: normal;
  text-align: left;
  word-break: break-word;
  hyphens: auto;
  width: max-content;
  max-width: 100%;
  font-size: 12pt;
  overflow-x: hidden;
}

.colossusTypography table * {
  font-family: var(--TableTypeface);
}

.colossusTypography table tr th:first-child, .colossusTypography table tr td:first-child {
  padding-left: .625em;
}

.colossusTypography table tr th:last-child, .colossusTypography table tr td:last-child {
  padding-right: .625em;
}

.colossusTypography table strong, .colossusTypography table th {
  font-weight: 500;
}

.colossusTypography table th[scope="col"] {
  padding-top: .625em;
  padding-bottom: .625em;
}

.colossusTypography table th[scope="row"] p, .colossusTypography table tr:not(:first-child) > th:first-child p, .colossusTypography table tr:first-child:has(td) > th:first-child p {
  text-align: right;
}

.colossusTypography table p {
  font-variant: normal;
  text-align: left;
}

.colossusTypography table p a {
  font-family: var(--TableTypeface);
}

.colossusTypography table a {
  font-family: var(--TableTypeface);
}

.colossusTypography table th p {
  word-break: keep-all;
}

.colossusTypography table th, .colossusTypography table td {
  hyphens: auto;
}

.colossusTypography .tableWrapper {
  margin: 1em 0;
  overflow-x: auto;
}

.colossusTypography div.flickrEmbed {
  background-color: var(--embed-flickr-background);
  color: var(--embed-flickr-text);
  margin-top: .625em;
  margin-bottom: .625em;
  padding: .35em;
}

.colossusTypography [data-embed-type] {
  text-align: left;
  max-width: 100%;
}

.colossusTypography [data-embed-type] a {
  color: var(--text-primary);
}

.colossusTypography div.replyingToEmbed {
  background-color: var(--surface-blockquote);
  border-radius: var(--borderRadius);
  font-size: calc(var(--baseSize) * .8);
  padding: .9375em;
}

.colossusTypography div.replyingToEmbed.compact {
  background-color: #0000;
  padding: 0;
}

.colossusTypography div.replyingToEmbed div.header {
  align-items: center;
  gap: .625em;
  display: flex;
}

.colossusTypography div.replyingToEmbed a.replyingToExpand {
  background-image: url("/images/icons/link.svg");
  background-position: center;
  background-repeat: no-repeat;
  background-size: contain;
  flex: none;
  width: 1.25em;
  height: 1.25em;
  display: inline-block;
}

.colossusTypography div.replyingToEmbed a.replyingToExpand:hover {
  text-decoration: none;
}

.colossusTypography div.replyingToEmbed a.label {
  color: var(--colour2Bright);
  font-family: var(--uiTextTypeface);
}

.colossusTypography div.replyingToEmbed a.label:hover {
  text-decoration: none;
}

.colossusTypography div.replyingToEmbed a.compactLabel {
  background-image: url("/images/icons/reply.svg");
  background-position: 0;
  background-repeat: no-repeat;
  background-size: 1em;
  padding-left: 1.5em;
  display: inline-block;
}

.colossusTypography div.replyingToEmbed * {
  font-size: calc(var(--baseSize) * .9);
}

.colossusTypography * + div, .colossusTypography div + *, .colossusTypography * + figure, .colossusTypography figure + * {
  margin-top: .625em;
}

.colossusTypography figure + * {
  margin-top: 1.25em;
}

.colossusTypography div.label {
  margin: 0;
}

.colossusTypography img {
  width: auto;
  max-width: 100%;
  height: auto;
  max-height: 40vh;
  margin: .625em auto;
  display: flex;
}

.colossusTypography div.blueskyEmbed {
  background-color: var(--embed-bluesky-background);
  border-radius: 8px;
  padding: .625em 1.25em;
}

.colossusTypography div.blueskyEmbed div.blueskyImages img {
  border-radius: var(--borderRadius);
}

.colossusTypography div.blueskyEmbed div.blueskyBody + div.blueskyExternalContainer {
  margin-top: 1.25em;
}

.colossusTypography div.blueskyEmbed * {
  font-family: var(--uiTextTypeface);
  font-variant-numeric: normal;
  text-align: left;
  font-variant-caps: normal;
}

.colossusTypography div.blueskyEmbed .smallcaps {
  font-size: unset;
}

.colossusTypography div.blueskyEmbed a {
  font-family: var(--uiTextTypeface);
  font-weight: 400;
}

.colossusTypography div.blueskyEmbed div.blueskyHeader {
  justify-content: space-between;
  align-items: center;
  gap: .625em;
  margin-top: .3125em;
  display: flex;
}

.colossusTypography div.blueskyEmbed div.blueskyHeader div + div {
  margin: 0;
}

.colossusTypography div.blueskyEmbed div.blueskyHeader div.author {
  align-items: center;
  gap: .625em;
  display: flex;
}

.colossusTypography div.blueskyEmbed div.blueskyHeader div.author span.blueskyAuthor {
  color: var(--text-primary);
  font-weight: 500;
}

.colossusTypography div.blueskyEmbed div.blueskyHeader div.author img.blueskyIcon {
  width: 32px;
  height: 32px;
  margin: 0;
}

.colossusTypography div.blueskyEmbed div.blueskyHeader div.blueskyLinkToPost {
  align-items: center;
  gap: .3125em;
  display: flex;
}

.colossusTypography div.blueskyEmbed div.blueskyHeader div.blueskyLinkToPost a:hover {
  text-decoration: none;
}

.colossusTypography div.blueskyEmbed div.blueskyHeader div.blueskyLinkToPost img {
  height: var(--baseSize);
  margin: 0;
  display: inline;
  position: relative;
  top: 1px;
}

.colossusTypography div.blueskyEmbed div.blueskyBody {
  text-align: left;
  margin-bottom: .625em;
}

.colossusTypography div.blueskyEmbed div.blueskyBody .smallcaps {
  font-variant: normal;
  font-variant-numeric: normal;
}

.colossusTypography div.blueskyEmbed div.blueskyBody {
  font-variant-numeric: normal;
}

.colossusTypography div.blueskyEmbed div.blueskyQuote {
  border-left: 2px solid var(--embed-bluesky-quote-border);
  padding: .31125em .625em;
}

.colossusTypography div.blueskyEmbed div.blueskyQuote div.blueskyQuoteAuthor a {
  color: var(--text-primary);
  font-weight: 500;
}

.colossusTypography div.blueskyEmbed div.blueskyQuote div.blueskyQuoteAuthor {
  font-weight: 500;
}

.colossusTypography div.blueskyEmbed div.blueskyQuote div.blueskyQuoteText {
  text-align: left;
}

.colossusTypography div.blueskyEmbed div.blueskyQuote div + div {
  margin-top: .625em;
}

.colossusTypography div.blueskyEmbed div.blueskyExternalContainer img.blueskyExternalThumb, .colossusTypography div.blueskyEmbed div.blueskyExternalContainer video.blueskyVideo {
  max-width: 100%;
  max-height: 40vh;
  margin: 0 auto;
  display: block;
}

.colossusTypography div.blueskyEmbed div.blueskyExternalContainer a:hover {
  text-decoration: none;
}

.colossusTypography div.blueskyEmbed div.blueskyExternalContainer a {
  color: var(--text-primary);
}

.colossusTypography div.blueskyEmbed div.blueskyExternalContainer div.blueskyExternalTitle {
  text-align: left;
  hyphens: auto;
  font-weight: 500;
}

.colossusTypography div.blueskyEmbed div.blueskyExternalContainer div.blueskyExternalTitle .smallcaps {
  font-variant: normal;
}

.colossusTypography div.blueskyEmbed div.blueskyExternalContainer div.blueskyExternalTitle {
  font-variant-numeric: normal;
}

.colossusTypography div.blueskyEmbed div.blueskyExternalContainer div.blueskyExternalDescription {
  text-align: left;
  hyphens: auto;
  font-size: 12pt;
}

.colossusTypography div.blueskyEmbed div.blueskyExternalContainer div.blueskyExternalDescription .smallcaps {
  font-variant: normal;
}

.colossusTypography div.blueskyEmbed div.blueskyExternalContainer div.blueskyExternalDescription {
  font-variant-numeric: normal;
}

.colossusTypography div.blueskyEmbed div.blueskyExternalContainer * + * {
  margin-top: .625em;
}

.colossusTypography div.blueskyEmbed div.blueskyExternalContainer div.blueskyExternalTitle + div {
  margin-top: .3125em;
}

.colossusTypography div.blueskyEmbed div + div {
  margin-top: .625em;
}

.colossusTypography div.hackerNewsEmbed {
  border: 1px solid var(--lighterLineColour);
  border-left: 4px solid var(--embed-hackernews-accent);
  background: var(--embed-hackernews-background);
  font-family: var(--uiTextTypeface);
  border-radius: 10px;
  padding: .95em 1rem;
}

.colossusTypography div.hackerNewsEmbed * {
  font-family: var(--uiTextTypeface);
  text-align: left;
  font-variant-numeric: normal;
}

.colossusTypography div.hackerNewsEmbed .smallcaps {
  font-variant: normal;
  font-size: unset;
}

.colossusTypography div.hackerNewsEmbed a.comments {
  font-weight: 400;
}

.colossusTypography div.hackerNewsEmbed div.header {
  justify-content: flex-start;
  align-items: center;
  gap: .625em;
  margin-bottom: .625em;
  display: flex;
}

.colossusTypography div.hackerNewsEmbed div.header img {
  width: auto;
  height: auto;
  max-height: 2em;
  margin: 0;
}

.colossusTypography div.hackerNewsEmbed div.header div.label {
  font-size: var(--baseSize);
  color: var(--embed-hackernews-label);
  font-weight: 500;
}

.colossusTypography div.hackerNewsEmbed div.meta {
  font-size: calc(var(--baseSize) * .75);
  margin-top: .3125em;
}

.colossusTypography div.imdbEmbed {
  border: 1px solid var(--lighterLineColour);
  border-left: 4px solid var(--embed-imdb-accent);
  background: linear-gradient(180deg, var(--embed-imdb-background-start) 0%, var(--embed-imdb-background-end) 100%);
  font-family: var(--uiTextTypeface);
  border-radius: 10px;
  padding: .95em 1rem;
}

.colossusTypography div.imdbEmbed * {
  font-family: var(--uiTextTypeface);
  font-variant-numeric: normal;
  text-align: left;
}

.colossusTypography div.imdbEmbed .smallcaps {
  font-variant: normal;
  font-size: unset;
}

.colossusTypography div.imdbEmbed div.header {
  justify-content: flex-start;
  align-items: center;
  gap: .625em;
  margin-bottom: .625em;
  display: flex;
}

.colossusTypography div.imdbEmbed div.header img {
  width: auto;
  height: auto;
  max-height: 1.75em;
  margin: 0;
}

.colossusTypography div.imdbEmbed div.header div.label {
  font-size: var(--baseSize);
  color: var(--embed-imdb-label);
  font-weight: 600;
}

.colossusTypography div.imdbEmbed a.title {
  font-weight: 600;
}

.colossusTypography div.imdbEmbed div.meta {
  font-size: calc(var(--baseSize) * .75);
  margin-top: .15625em;
}

.colossusTypography div.imdbEmbed div.director {
  font-family: var(--uiTextTypeface);
  font-size: calc(var(--baseSize) * .75);
  margin-top: .15625em;
  line-height: 1.25;
}

.colossusTypography div.imdbEmbed div.detail {
  font-family: var(--PostTypeface);
  font-size: calc(var(--baseSize) * .85);
  margin-top: .625em;
  line-height: 1.25;
}

.colossusTypography div.wikipediaEmbed {
  border: 1px solid var(--lighterLineColour);
  border-left: 4px solid var(--embed-wikipedia-accent);
  background: linear-gradient(180deg, var(--embed-wikipedia-background-start) 0%, var(--embed-wikipedia-background-end) 100%);
  font-family: var(--uiTextTypeface);
  border-radius: 10px;
  padding: .95em 1rem;
}

.colossusTypography div.wikipediaEmbed * {
  text-align: left;
}

.colossusTypography div.wikipediaEmbed .smallcaps {
  font-variant: normal;
  font-size: unset;
}

.colossusTypography div.wikipediaEmbed div.header {
  justify-content: flex-start;
  align-items: center;
  gap: .625em;
  margin-bottom: .625em;
  display: flex;
}

.colossusTypography div.wikipediaEmbed div.header img {
  width: auto;
  height: auto;
  max-height: 1.75em;
  margin: 0;
}

.colossusTypography div.wikipediaEmbed div.header div.label {
  font-family: var(--uiTextTypeface);
  font-size: var(--baseSize);
  color: var(--embed-wikipedia-label);
  font-weight: 600;
}

.colossusTypography div.wikipediaEmbed div.header div.label a {
  font-family: var(--uiTextTypeface);
}

.colossusTypography div.wikipediaEmbed div.content {
  grid-template-columns: 2fr 1fr;
  align-items: center;
  gap: .625rem;
  display: grid;
}

.colossusTypography div.wikipediaEmbed div.copy {
  margin-top: .6125em;
}

.colossusTypography div.wikipediaEmbed a.title {
  font-family: var(--uiTextTypeface);
  font-weight: 600;
  display: inline-block;
}

.colossusTypography div.wikipediaEmbed p {
  font-family: var(--TextTypeface);
  font-size: var(--baseSize);
  margin-top: .375em;
  margin-bottom: 0;
  line-height: 1.3;
}

.colossusTypography div.wikipediaEmbed a.thumbnail {
  margin: 0;
  text-decoration: none;
}

.colossusTypography div.wikipediaEmbed a.thumbnail img {
  border-radius: var(--borderRadius);
  max-width: 100%;
  height: auto;
  margin: 0;
  display: block;
}

.colossusTypography div.openGraphEmbed {
  border: 1px solid var(--lighterLineColour);
  background: var(--embed-opengraph-background);
  border-radius: 10px;
  padding: .95em 1rem;
}

.colossusTypography div.openGraphEmbed * {
  text-align: left;
}

.colossusTypography div.openGraphEmbed .smallcaps {
  font-variant: normal;
  font-size: unset;
}

.colossusTypography div.openGraphEmbed div.header {
  justify-content: flex-start;
  align-items: center;
  gap: .625em;
  margin-bottom: .625em;
  display: flex;
}

.colossusTypography div.openGraphEmbed div.header img {
  width: auto;
  height: auto;
  max-height: 1.25em;
  margin: 0;
}

.colossusTypography div.openGraphEmbed div.header div.label {
  font-family: var(--uiTextTypeface);
  font-size: calc(var(--baseSize) * 1.1);
  color: var(--embed-opengraph-label);
  font-weight: 600;
}

.colossusTypography div.openGraphEmbed div.header div.label a {
  font-family: var(--uiTextTypeface);
}

.colossusTypography div.openGraphEmbed div.content {
  grid-template-columns: 2fr 1fr;
  align-items: center;
  gap: .625em;
  display: grid;
}

.colossusTypography div.openGraphEmbed div.copy {
  flex: 14rem;
  min-width: 0;
}

.colossusTypography div.openGraphEmbed a.title {
  font-family: var(--uiTextTypeface);
  font-variant-numeric: normal;
  font-weight: 500;
  font-size: calc(var(--baseSize) * .9);
  word-break: break-word;
  display: inline-block;
}

.colossusTypography div.openGraphEmbed div.author {
  font-weight: 400;
  font-family: var(--uiTextTypeface);
  font-size: calc(var(--baseSize) * .9);
  margin-top: .3125em;
}

.colossusTypography div.openGraphEmbed p {
  font-family: var(--TextTypeface);
  margin-top: .625em;
  margin-bottom: 0;
  line-height: 1.25;
}

.colossusTypography div.openGraphEmbed a.thumbnail {
  margin: 0;
  text-decoration: none;
}

.colossusTypography div.openGraphEmbed a.thumbnail img {
  border-radius: var(--borderRadius);
  max-width: 100%;
  height: auto;
  margin: 0;
  display: block;
}

.colossusTypography div.colossusEmbed {
  border: 1px solid var(--lighterLineColour);
  background-color: var(--embed-colossus-background);
  border-radius: 10px;
  padding: .95em 1rem;
}

.colossusTypography div.colossusEmbed * {
  text-align: left;
}

.colossusTypography div.colossusEmbed .smallcaps {
  font-variant: normal;
  font-size: unset;
}

.colossusTypography div.colossusEmbed div.header {
  justify-content: flex-start;
  align-items: center;
  gap: .625em;
  margin-bottom: .625em;
  display: flex;
}

.colossusTypography div.colossusEmbed div.header img {
  width: auto;
  height: auto;
  max-height: 1.5em;
  margin: 0;
}

.colossusTypography div.colossusEmbed div.header div.label {
  font-family: var(--uiTextTypeface);
  font-size: var(--baseSize);
  font-weight: 600;
}

.colossusTypography div.colossusEmbed a.title {
  font-family: var(--uiTextTypeface);
  font-size: calc(var(--baseSize) * .8);
  text-align: left;
  font-weight: 500;
}

.colossusTypography div.colossusEmbed div.meta {
  font-size: calc(var(--baseSize) * .75);
  font-family: var(--uiTextTypeface);
  margin-top: .625em;
  font-weight: 500;
}

.colossusTypography div.colossusEmbed a.title + div.meta {
  margin-top: 0;
}

.colossusTypography div.colossusEmbed div.embedBody p {
  font-family: var(--TextTypeface);
}

.colossusTypography div.colossusEmbed div.colossusEmbeddedMessage, .colossusTypography div.colossusEmbed div.colossusEmbeddedThread {
  font-family: var(--TextTypeface);
  margin-top: .625em;
}

:is(.colossusTypography div.colossusEmbed div.colossusEmbeddedMessage, .colossusTypography div.colossusEmbed div.colossusEmbeddedThread) div.postSnippet * {
  font-family: var(--TextTypeface);
}

:is(.colossusTypography div.colossusEmbed div.colossusEmbeddedMessage, .colossusTypography div.colossusEmbed div.colossusEmbeddedThread) a.colossusEmbedContinueLink {
  font-family: var(--TextTypeface);
  color: var(--embed-colossus-continue-link);
}

:is(.colossusTypography div.colossusEmbed div.colossusEmbeddedMessage, .colossusTypography div.colossusEmbed div.colossusEmbeddedThread) blockquote {
  background-color: var(--embed-colossus-blockquote-background);
}

:is(.colossusTypography div.colossusEmbed div.colossusEmbeddedMessage, .colossusTypography div.colossusEmbed div.colossusEmbeddedThread) p + p, :is(.colossusTypography div.colossusEmbed div.colossusEmbeddedMessage, .colossusTypography div.colossusEmbed div.colossusEmbeddedThread) p + ul, :is(.colossusTypography div.colossusEmbed div.colossusEmbeddedMessage, .colossusTypography div.colossusEmbed div.colossusEmbeddedThread) p + ol, :is(.colossusTypography div.colossusEmbed div.colossusEmbeddedMessage, .colossusTypography div.colossusEmbed div.colossusEmbeddedThread) ul + p, :is(.colossusTypography div.colossusEmbed div.colossusEmbeddedMessage, .colossusTypography div.colossusEmbed div.colossusEmbeddedThread) ol + p, :is(.colossusTypography div.colossusEmbed div.colossusEmbeddedMessage, .colossusTypography div.colossusEmbed div.colossusEmbeddedThread) blockquote + p, :is(.colossusTypography div.colossusEmbed div.colossusEmbeddedMessage, .colossusTypography div.colossusEmbed div.colossusEmbeddedThread) p + blockquote, :is(.colossusTypography div.colossusEmbed div.colossusEmbeddedMessage, .colossusTypography div.colossusEmbed div.colossusEmbeddedThread) pre, :is(.colossusTypography div.colossusEmbed div.colossusEmbeddedMessage, .colossusTypography div.colossusEmbed div.colossusEmbeddedThread) blockquote, :is(.colossusTypography div.colossusEmbed div.colossusEmbeddedMessage, .colossusTypography div.colossusEmbed div.colossusEmbeddedThread) table, :is(.colossusTypography div.colossusEmbed div.colossusEmbeddedMessage, .colossusTypography div.colossusEmbed div.colossusEmbeddedThread) figure, :is(.colossusTypography div.colossusEmbed div.colossusEmbeddedMessage, .colossusTypography div.colossusEmbed div.colossusEmbeddedThread) div[data-embed-type] {
  margin-top: .625em;
}

.colossusTypography figure img {
  width: auto;
  height: auto;
  margin-top: 0;
  margin-bottom: 0;
}

.colossusTypography figure figcaption {
  text-align: center;
  font-family: var(--imageCaptionTypeface);
  font-style: var(--imageCaptionStyle);
  font-size: var(--secondarySize);
  color: var(--text-primary);
  font-variant-numeric: normal;
  margin-top: .625em;
}

.colossusTypography figure figcaption * {
  font-family: inherit;
}

.colossusTypography span.brokenImage {
  font-family: var(--uiTextTypeface);
  opacity: .3;
  justify-content: flex-start;
  align-items: center;
  gap: .625em;
  display: flex;
}

.colossusTypography span.brokenImage + * {
  margin-top: .625em;
}

.colossusTypography span.brokenImage img {
  height: 1.25em;
  margin: unset;
  cursor: none;
}

.colossusTypography iframe.youTube {
  aspect-ratio: 16 / 9;
  border-radius: 8px;
  width: 100%;
  height: 100%;
  overflow: hidden;
}

.colossusTypography .youTubeLogoLink + div.youTubeText, .colossusTypography div.youTubeText + div.youTubeMedia {
  margin-top: 0;
}

.colossusTypography div.youTubeCard {
  background: var(--surface-muted);
  background: linear-gradient(180deg, var(--embed-youtube-background-start) 0%, var(--embed-youtube-background-end) 100%);
  border: none;
  border-radius: 8px;
  grid-template-columns: auto auto auto;
  align-items: center;
  gap: 1.25em;
  padding: 1.25em;
  display: grid;
  overflow: hidden;
}

.colossusTypography div.youTubeCard[data-video-unavailable] {
  padding: .625em;
  display: flex;
}

.colossusTypography div.youTubeCard[data-video-unavailable] div.youTubeMedia {
  display: none;
}

.colossusTypography div.youTubeCard[data-video-unavailable] div.youTubeText {
  text-align: left;
  flex: unset;
  min-width: unset;
}

.colossusTypography div.youTubeCard[data-video-unavailable] div.youTubeText div.youTubeTitle {
  color: var(--embed-youtube-unavailable-text);
  font-weight: 400;
  font-size: calc(var(--baseSize) * .85);
  margin-bottom: 0;
}

.colossusTypography div.youTubeCard[data-video-unavailable] a.youTubeLogoLink, .colossusTypography div.youTubeCard[data-video-unavailable] img.youTubeLogo {
  filter: grayscale();
  max-width: 2em;
  height: 2em;
  margin: 0;
}

.colossusTypography div.youTubeCard > a.youTubeLogoLink {
  background-image: url("/images/icons/youtube.svg");
  background-position: center;
  background-repeat: no-repeat;
  background-size: contain;
  width: 4em;
  height: 4em;
  margin-top: 0;
  margin-bottom: 0;
  display: block;
}

.colossusTypography div.youTubeCard img.youTubeLogo {
  width: auto;
  max-width: none;
  height: 4em;
  margin-top: 0;
  margin-bottom: 0;
  display: block;
}

.colossusTypography div.youTubeCard div.youTubeText {
  font-size: var(--baseSize);
  text-align: right;
  flex-direction: column;
  gap: .3125em;
  display: flex;
}

.colossusTypography div.youTubeCard div.youTubeText a:hover {
  text-decoration: none;
}

.colossusTypography div.youTubeCard div.youTubeText div + *, .colossusTypography div.youTubeCard div.youTubeText * + div {
  margin-top: 0;
}

.colossusTypography div.youTubeCard div.youTubeText div.youTubeTitle {
  font-family: var(--uiTextTypeface);
  font-variant-numeric: normal;
  word-break: break-word;
  margin-bottom: .3125em;
  font-weight: 500;
}

.colossusTypography div.youTubeCard div.youTubeText div.youTubeTitle[data-placeholder] {
  display: none;
}

.colossusTypography div.youTubeCard div.youTubeText div.youTubeChannelName {
  text-align: right;
  font-variant-numeric: normal;
  font-family: var(--uiTextTypeface);
}

.colossusTypography div.youTubeCard div.youTubeText div.youTubeStartTime {
  font-family: var(--uiTextTypeface);
  font-variant-numeric: normal;
  font-size: calc(var(--baseSize) * .85);
  color: var(--colour2);
}

.colossusTypography div.youTubeCard div.youTubeMedia {
  flex-direction: column;
  align-items: flex-end;
  gap: .625em;
  display: flex;
}

.colossusTypography div.youTubeCard div.youTubeMedia a.youTubeLink {
  aspect-ratio: 16 / 9;
  background: var(--embed-youtube-placeholder-background);
  border-radius: 8px;
  width: clamp(8em, 22vw, 12em);
  display: block;
  overflow: hidden;
}

.colossusTypography div.youTubeCard div.youTubeMedia img {
  object-fit: cover;
  border-radius: 8px;
  width: 100%;
  height: 100%;
  margin-top: 0;
  margin-bottom: 0;
  display: block;
  overflow: hidden;
}

.colossusTypography div.youTubeCard div.youTubeMedia button.youTubeDrawerButton, .colossusTypography div.youTubeCard div.youTubeMedia a.youTubeDrawerButton {
  border: 1px solid var(--border-control);
  background: var(--surface-raised);
  color: var(--text-primary);
  font-family: var(--uiTextTypeface);
  font-size: calc(var(--baseSize) * .85);
  cursor: pointer;
  border-radius: 6px;
  justify-content: center;
  align-items: center;
  gap: .625em;
  margin: 0;
  padding: .45em .8em;
  text-decoration: none;
  display: inline-flex;
}

:is(.colossusTypography div.youTubeCard div.youTubeMedia button.youTubeDrawerButton, .colossusTypography div.youTubeCard div.youTubeMedia a.youTubeDrawerButton):hover {
  background: var(--surface-button-hover);
  box-shadow: var(--shadow-raised) 1px 1px 3px;
}

:is(.colossusTypography div.youTubeCard div.youTubeMedia button.youTubeDrawerButton, .colossusTypography div.youTubeCard div.youTubeMedia a.youTubeDrawerButton):focus {
  outline: .5px solid var(--highlightColour);
}

:is(.colossusTypography div.youTubeCard div.youTubeMedia button.youTubeDrawerButton, .colossusTypography div.youTubeCard div.youTubeMedia a.youTubeDrawerButton):active {
  box-shadow: none;
  transform: translateY(1px);
}

:is(.colossusTypography div.youTubeCard div.youTubeMedia button.youTubeDrawerButton, .colossusTypography div.youTubeCard div.youTubeMedia a.youTubeDrawerButton):disabled {
  cursor: default;
  opacity: .45;
  box-shadow: none;
}

.colossusTypography div.youTubeCard[data-youtube-metadata-state="pending"], .colossusTypography div.youTubeCard[data-youtube-metadata-state="loading"] {
  min-height: 7.5em;
}

.colossusTypography div.youTubeCard .youTubeMetadataFadeIn {
  animation: .2s fade-in;
}

.colossusTypography div.youTubeDrawerPanel {
  opacity: 0;
  max-height: 0;
  transition: max-height .3s, opacity .2s, transform .3s;
  overflow: hidden;
  transform: translateY(-.625em);
}

.colossusTypography div.youTubeDrawerPanelVisible {
  opacity: 1;
  max-height: 80vh;
  margin-top: .625em;
  transform: translateY(0);
}

.colossusTypography div.googleMapsEmbed {
  border-radius: 8px;
  overflow: hidden;
}

.colossusTypography iframe.googleMapsFrame {
  aspect-ratio: 4 / 3;
  border: 0;
  border-radius: 8px;
  width: 100%;
  min-height: 18em;
  max-height: 70vh;
  overflow: hidden;
}

.tiptap p, .tiptap li, .tiptap blockquote {
  text-align: left;
  text-justify: auto;
  hyphens: none;
  text-wrap: stable;
}

section.editor table {
  border-top: none;
  border-bottom: none;
}

section.editor table td, section.editor table th {
  border: 1px dotted var(--text-primary);
}

section.editor table th {
  background-color: var(--grey-100);
}

section.messages div.message div.body img.expand {
  cursor: zoom-out;
  max-width: 60vw;
  max-height: 85vh;
}

section.messages div.message div.body img, section.messages div.message div.body table, section.messages div.message div.body pre.canExpand {
  cursor: zoom-in;
  will-change: transform;
}

section.messages div.message div.body [data-embed-type]:not([data-embed-type="flickr"]):not([data-embed-type="image"]) img, section.messages div.message div.body .embed img {
  cursor: revert;
  will-change: auto;
}

section.messages div.message div.body pre.expand, section.messages div.message div.body table.expand {
  max-width: 1000ch;
  overflow-x: unset;
}

section.messages div.message div.body pre.canExpand.expand {
  cursor: zoom-out;
}

section.messages div.message div.body pre.expand {
  width: max-content;
  padding-right: 2.5em;
}

div.interstitial {
  grid-template-columns: minmax(10ch, 22ch) minmax(30ch, var(--maximumParagraphWidth));
  align-items: start;
  column-gap: 1.25em;
  margin-top: 1.25em;
  margin-bottom: 1.25em;
  margin-left: .625em;
  display: grid;
}

div.interstitial p {
  text-align: center;
  font-family: var(--uiTextTypeface);
  background-color: var(--colour5);
  margin-top: 1.5em;
  margin-bottom: 1.5em;
  margin-left: .625em;
  padding: .3125em;
  font-weight: 500;
}

div.interstitial a {
  font-family: var(--uiTextTypeface);
  margin-top: 1.25em;
  margin-bottom: 1.25em;
  font-size: 14pt;
  font-weight: 500;
}

section.controlPanel {
  justify-content: flex-end;
  display: flex;
}

section.controlPanel button + button {
  margin-left: 1.25em;
}

section.loginPage {
  flex-direction: column;
  justify-content: center;
  gap: 1.25em;
  width: fit-content;
  margin: auto;
  display: flex;
}

section.loginPage section.login + section.errorMessage {
  margin-top: .625em;
}

section.loginPage section.login {
  font-family: var(--TableTypeface);
  font-size: var(--baseSize);
  border-top: 1em solid var(--colour1);
  background-color: var(--colour4);
  border-radius: 6px;
  grid-template-columns: 14ch 30ch;
  align-items: center;
  gap: .625em;
  padding: 3em 3.5em;
  display: grid;
}

section.loginPage section.login button {
  margin: 0;
}

section.loginPage section.login label {
  text-align: right;
  font-weight: 400;
}

section.loginPage section.login div.submitDialog {
  flex-direction: column;
  align-items: flex-end;
  gap: 1.25em;
  display: flex;
}

section.loginPage section.login div.submitDialog div.rememberMeDialog {
  align-items: baseline;
  gap: .625em;
  display: flex;
}

@media (width <= 1000px) {
  section.loginPage section.login {
    grid-template-columns: 1fr;
  }

  section.loginPage section.login div.submitDialog {
    align-items: flex-start;
  }

  section.loginPage section.login label {
    text-align: left;
  }
}

section.loginPage section.login input::placeholder {
  color: var(--text-muted);
}

section.loginPage section.login input {
  background-color: var(--surface-input);
  border-radius: 6px;
}

@media (width <= 1000px) {
  section.loginPage {
    width: unset;
  }
}

div.error {
  background-color: var(--status-error-background);
  color: var(--status-error-text);
  font-family: var(--uiTextTypeface);
  border-radius: 6px;
  padding: 1.25em;
  font-weight: 400;
}

div.error.invisible {
  visibility: hidden;
}

section.notRegistered p {
  font-family: var(--TableTypeface);
}

.blackBorder {
  border: 4px solid var(--border-strong);
}

@keyframes bounce-in {
  0% {
    transform: translateY(var(--initial-translate));
    opacity: 0;
  }

  20% {
    opacity: 1;
    transform: translateY(-24px);
  }

  40% {
    transform: translateY(12px);
  }

  60% {
    transform: translateY(-6px);
  }

  80% {
    transform: translateY(4px);
  }

  100% {
    opacity: 1;
    transform: translateY(0);
  }
}

@keyframes fade-in {
  from {
    opacity: 0;
  }

  to {
    opacity: 1;
  }
}

.ql-container {
  border-bottom-left-radius: var(--borderRadius);
  border-bottom-right-radius: var(--borderRadius);
}

.ql-toolbar {
  border-top-left-radius: var(--borderRadius);
  border-top-right-radius: var(--borderRadius);
}

div.ql-editor p + p {
  margin-top: .625em;
}

div.ql-editor p + h1 {
  margin-top: 1.25em;
}

div.ql-editor h1 + p {
  margin-top: .625em;
}

div.ql-editor p + h2 {
  margin-top: 1.25em;
}

div.ql-editor h2 + p {
  margin-top: .625em;
}

div.ql-editor p + h3 {
  margin-top: 1.25em;
}

div.ql-editor h3 + p, div.ql-editor h1 + h2, div.ql-editor h2 + h3, div.ql-editor h3 + h2 {
  margin-top: .625em;
}

div.ql-editor table + * {
  margin-top: 1.25em;
}

div.ql-editor p + ul, div.ql-editor p + ol {
  margin-top: .625em;
}

div.ql-editor * + blockquote, div.ql-editor blockquote + * {
  margin: 1.25em 0;
}

div.ql-editor blockquote + blockquote {
  margin-top: .625em;
}

#editor .ql-container {
  flex: 1;
  overflow-y: auto;
}

#editor .ql-toolbar {
  max-width: 100%;
}

.tiptap-toolbar {
  border-bottom: 1px solid var(--lighterLineColour);
  flex-wrap: wrap;
  align-items: center;
  gap: .4em;
  padding: .625em;
  display: flex;
}

.tiptap-toolbar button {
  border: 1px solid var(--lineColour);
  border-radius: calc(var(--borderRadius) * .75);
  background: var(--backgroundColour);
  color: inherit;
  font: inherit;
  cursor: pointer;
  justify-content: center;
  align-items: center;
  width: 2.2em;
  height: 2.2em;
  padding: .35em;
  display: inline-flex;
}

.tiptap-toolbar-menu {
  position: relative;
}

.tiptap-toolbar button.tiptap-toolbar-menu-toggle {
  min-width: 2.2em;
}

.tiptap-toolbar-menu.open .tiptap-toolbar-menu-toggle {
  background: color-mix(in srgb, var(--colour2) 10%, var(--backgroundColour));
  border-color: color-mix(in srgb, var(--colour2) 45%, var(--lineColour));
}

.tiptap-toolbar-menu-panel {
  z-index: 20;
  border: 1px solid var(--lighterLineColour);
  border-radius: calc(var(--borderRadius) * .75);
  background: var(--surface-raised);
  box-shadow: 0 .4em 1em var(--shadow-raised);
  flex-direction: column;
  gap: .3125em;
  min-width: 11.5em;
  padding: .4em;
  display: flex;
  position: absolute;
  top: calc(100% + .35em);
  left: 0;
}

.tiptap-toolbar-menu-panel[hidden] {
  display: none;
}

.tiptap-toolbar-menu-panel .tiptap-toolbar-menu-item {
  justify-content: flex-start;
  gap: .55em;
  width: 100%;
  height: auto;
  padding: .45em .6em;
}

.tiptap-toolbar-menu-panel .tiptap-toolbar-menu-item:before {
  display: none;
}

.tiptap-toolbar-menu-panel .tiptap-toolbar-menu-item .tiptap-toolbar-menu-item-icon {
  background-color: currentColor;
  flex: none;
  width: 1.1rem;
  height: 1.1rem;
  display: block;
  -webkit-mask-position: center;
  mask-position: center;
  -webkit-mask-size: contain;
  mask-size: contain;
  -webkit-mask-repeat: no-repeat;
  mask-repeat: no-repeat;
}

.tiptap-toolbar-menu-panel .tiptap-toolbar-menu-item span {
  white-space: nowrap;
  line-height: 1.2;
}

.tiptap-toolbar-menu-panel .tiptap-toolbar-menu-item .tiptap-toolbar-menu-item-icon[data-icon-path="/images/icons/toolbar/link.svg"] {
  -webkit-mask-image: url("/images/icons/toolbar/link.svg");
  mask-image: url("/images/icons/toolbar/link.svg");
}

.tiptap-toolbar-menu-panel .tiptap-toolbar-menu-item .tiptap-toolbar-menu-item-icon[data-icon-path="/images/icons/toolbar/image.svg"] {
  -webkit-mask-image: url("/images/icons/toolbar/image.svg");
  mask-image: url("/images/icons/toolbar/image.svg");
}

.tiptap-toolbar-menu-panel .tiptap-toolbar-menu-item .tiptap-toolbar-menu-item-icon[data-icon-path="/images/icons/toolbar/table.svg"] {
  -webkit-mask-image: url("/images/icons/toolbar/table.svg");
  mask-image: url("/images/icons/toolbar/table.svg");
}

.tiptap-toolbar-menu-panel .tiptap-toolbar-menu-item .tiptap-toolbar-menu-item-icon[data-icon-path="/images/icons/toolbar/movie.svg"] {
  -webkit-mask-image: url("/images/icons/toolbar/movie.svg");
  mask-image: url("/images/icons/toolbar/movie.svg");
}

.tiptap-toolbar-menu-panel .tiptap-toolbar-menu-item .tiptap-toolbar-menu-item-icon[data-icon-path="/images/icons/toolbar/importFile.svg"] {
  -webkit-mask-image: url("/images/icons/toolbar/importFile.svg");
  mask-image: url("/images/icons/toolbar/importFile.svg");
}

.tiptap-toolbar-menu-panel .tiptap-toolbar-menu-item .tiptap-toolbar-menu-item-icon[data-icon-path="/images/icons/hidden.svg"] {
  -webkit-mask-image: url("/images/icons/hidden.svg");
  mask-image: url("/images/icons/hidden.svg");
}

.tiptap-toolbar-menu-panel .tiptap-toolbar-menu-item:hover:not(:disabled) {
  background: var(--colour2);
  border-color: var(--colour2);
  color: var(--text-inverse);
}

.tiptap-toolbar button:before {
  content: "";
  background-color: currentColor;
  width: 1.1em;
  height: 1.1em;
  display: block;
  -webkit-mask-position: center;
  mask-position: center;
  -webkit-mask-size: contain;
  mask-size: contain;
  -webkit-mask-repeat: no-repeat;
  mask-repeat: no-repeat;
}

.tiptap-toolbar button.active {
  background: var(--colour2);
  border-color: var(--colour2);
  color: var(--text-inverse);
}

.tiptap-toolbar button:disabled {
  opacity: .5;
  cursor: not-allowed;
}

.tiptap-toolbar button[data-action="heading1"]:before {
  -webkit-mask-image: url("/images/icons/toolbar/h1.svg");
  mask-image: url("/images/icons/toolbar/h1.svg");
}

.tiptap-toolbar button[data-action="heading2"]:before {
  -webkit-mask-image: url("/images/icons/toolbar/h2.svg");
  mask-image: url("/images/icons/toolbar/h2.svg");
}

.tiptap-toolbar button[data-action="bold"]:before {
  -webkit-mask-image: url("/images/icons/toolbar/bold.svg");
  mask-image: url("/images/icons/toolbar/bold.svg");
}

.tiptap-toolbar button[data-action="italic"]:before {
  -webkit-mask-image: url("/images/icons/toolbar/italic.svg");
  mask-image: url("/images/icons/toolbar/italic.svg");
}

.tiptap-toolbar button[data-action="underline"]:before {
  -webkit-mask-image: url("/images/icons/toolbar/underline.svg");
  mask-image: url("/images/icons/toolbar/underline.svg");
}

.tiptap-toolbar button[data-action="strike"]:before {
  -webkit-mask-image: url("/images/icons/toolbar/strikethrough.svg");
  mask-image: url("/images/icons/toolbar/strikethrough.svg");
}

.tiptap-toolbar button[data-action="bulletList"]:before {
  -webkit-mask-image: url("/images/icons/toolbar/list.svg");
  mask-image: url("/images/icons/toolbar/list.svg");
}

.tiptap-toolbar button[data-action="orderedList"]:before {
  -webkit-mask-image: url("/images/icons/toolbar/list-numbers.svg");
  mask-image: url("/images/icons/toolbar/list-numbers.svg");
}

.tiptap-toolbar button[data-action="blockquote"]:before {
  -webkit-mask-image: url("/images/icons/toolbar/blockquote.svg");
  mask-image: url("/images/icons/toolbar/blockquote.svg");
}

.tiptap-toolbar button[data-action="codeBlock"]:before {
  -webkit-mask-image: url("/images/icons/toolbar/code.svg");
  mask-image: url("/images/icons/toolbar/code.svg");
}

.tiptap-toolbar button[data-action="link"]:before {
  -webkit-mask-image: url("/images/icons/toolbar/link.svg");
  mask-image: url("/images/icons/toolbar/link.svg");
}

.tiptap-toolbar button[data-action="image"]:before {
  -webkit-mask-image: url("/images/icons/toolbar/image.svg");
  mask-image: url("/images/icons/toolbar/image.svg");
}

.tiptap-toolbar button[data-action="table"]:before {
  -webkit-mask-image: url("/images/icons/toolbar/table.svg");
  mask-image: url("/images/icons/toolbar/table.svg");
}

.tiptap-toolbar button[data-menu-toggle="insert"]:before {
  -webkit-mask-image: url("/images/icons/toolbar/paperclip.svg");
  mask-image: url("/images/icons/toolbar/paperclip.svg");
}

.tiptap-toolbar button[data-action="embed"]:before {
  -webkit-mask-image: url("/images/icons/toolbar/embed.svg");
  mask-image: url("/images/icons/toolbar/embed.svg");
}

.tiptap-table-controls {
  visibility: hidden;
  pointer-events: none;
  border-bottom: 0 solid var(--lighterLineColour);
  background: color-mix(in srgb, var(--colour6) 18%, var(--backgroundColour));
  flex-wrap: wrap;
  align-items: center;
  gap: .45em;
  max-height: 0;
  padding: 0 .625em;
  transition: max-height .18s cubic-bezier(.2, .8, .2, 1), transform .18s cubic-bezier(.2, .8, .2, 1), padding .18s cubic-bezier(.2, .8, .2, 1), border-bottom-width .18s cubic-bezier(.2, .8, .2, 1), visibility 0s linear .18s;
  display: flex;
  overflow: hidden;
  transform: translateY(-.4rem);
}

.tiptap-table-controls.open {
  visibility: visible;
  pointer-events: auto;
  border-bottom-width: 1px;
  max-height: 12rem;
  padding: .45em .625em .625em;
  transition-delay: 0s;
  transform: translateY(0);
}

.tiptap-table-controls button {
  border: 1px solid var(--lineColour);
  border-radius: calc(var(--borderRadius) * .75);
  background: var(--backgroundColour);
  color: inherit;
  font: inherit;
  cursor: pointer;
  justify-content: center;
  align-items: center;
  padding: .38em;
  line-height: 1.2;
  display: inline-flex;
}

.tiptap-table-controls button img {
  width: 1.1rem;
  height: 1.1rem;
  display: block;
}

.tiptap-table-controls button:hover:not(:disabled) {
  background: color-mix(in srgb, var(--colour2) 10%, var(--backgroundColour));
  border-color: color-mix(in srgb, var(--colour2) 45%, var(--lineColour));
}

.tiptap-table-controls button:disabled {
  opacity: .5;
  cursor: not-allowed;
}

.tiptap-table-header-option {
  white-space: nowrap;
  cursor: pointer;
  align-items: center;
  gap: .35em;
  margin-left: .625em;
  display: inline-flex;
}

.tiptap-table-header-option:has(input:disabled) {
  opacity: .5;
  cursor: not-allowed;
}

section.editor {
  border: 1px solid var(--lighterLineColour);
  border-radius: 8px;
}

#editor .tiptap-host {
  flex: 1;
  min-height: 0;
  display: flex;
}

.tiptap {
  background: var(--backgroundColour);
  hanging-punctuation: none;
  text-rendering: auto;
  outline: none;
  flex: 1;
  min-height: 8em;
  padding: 12px 15px;
  overflow-y: auto;
}

body.newThreadPage .watchPartyVideo {
  display: none;
}

body.newThreadPage .watchPartyVideo.shown {
  display: block;
}

body.newThreadPage #watchPartyVideoTitle {
  color: var(--colour2Bright);
  margin-left: .625em;
  font-weight: 500;
}

body.newThreadPage div.checkBoxWithExplanation {
  align-items: center;
  gap: 1.25em;
  display: flex;
}

body.newThreadPage div.checkBoxWithExplanation.watchPartyVideo {
  display: none;
}

body.newThreadPage div.checkBoxWithExplanation.watchPartyVideo.shown {
  display: flex;
}

body.newThreadPage div.checkBoxWithExplanation span.description {
  font-family: var(--uiTextTypeface);
  font-size: calc(var(--baseSize) * .75);
}

body.newThreadPage div.pollOptions {
  border: 1px solid var(--lighterLineColour);
  border-radius: 8px;
  margin-top: 1.25em;
  margin-bottom: 1.25em;
  padding: 1.25em;
}

body.newThreadPage div.pollInstructions {
  margin: .625em .625em 2.5em;
}

body.newThreadPage div.pollInstructions h1 {
  font-size: calc(var(--baseSize) * 1.5);
}

body.newThreadPage div.pollInstructions p {
  font-family: var(--uiTextTypeface);
}

body.newThreadPage div.pollLifecycleContainer {
  align-items: center;
  gap: 1.25em;
  margin: 2em 1.25em;
  display: flex;
}

body.newThreadPage div.pollLifecycleContainer div {
  text-align: center;
  background-color: var(--colour5);
  color: var(--text-primary);
  font-family: var(--uiTextTypeface);
  border-radius: 8px;
  justify-content: center;
  align-items: center;
  max-width: 10em;
  min-height: 10em;
  padding: 1.25em;
  font-weight: 400;
  display: flex;
}

body.newThreadPage div.pollLifecycleContainer img {
  max-height: 3em;
}

body.newThreadPage section.heading p {
  font-family: var(--uiTextTypeface);
}

body.newThreadPage section.content {
  grid-template-columns: auto;
}

body.newThreadPage span.boardName {
  color: var(--colour2);
}

body.newThreadPage select.dropDown {
  font-size: 12pt;
  font-family: var(--uiTextTypeface);
  width: max-content;
  padding: .3125em;
}

body.newThreadPage .newThreadForm {
  grid-template-columns: 1fr 6fr;
  align-items: center;
  gap: .625em 1.25em;
  display: grid;
}

body.newThreadPage .newThreadForm input[type="text"] {
  font-family: var(--uiTextTypeface);
  font-size: var(--baseSize);
  background-color: var(--colour4);
  box-shadow: none;
  border: none;
  outline: none;
  padding: .625em;
}

body.newThreadPage .newThreadForm div.optionGrid {
  text-align: left;
  grid-template-columns: min-content auto;
  align-items: center;
  gap: 1.25em;
  margin-top: 1.25em;
  margin-left: .625em;
  display: grid;
}

body.newThreadPage .newThreadForm div.optionGrid .option-colossus {
  top: 0;
}

body.newThreadPage .newThreadForm div.showResultsOnClose {
  margin-bottom: 1.25em;
}

body.newThreadPage .newThreadForm input[type="checkbox"] {
  background-color: var(--colour2Light);
  justify-self: flex-start;
  margin-left: .3125em;
  transform: scale(1.5);
}

body.newThreadPage .newThreadForm div.checkBoxWithExplanation {
  font-family: var(--uiTextTypeface);
}

body.newThreadPage .newThreadForm label {
  font-family: var(--uiTextTypeface);
  color: var(--text-primary);
}

body.newThreadPage .newThreadForm label.tableLabel {
  text-align: right;
}

body.newThreadPage .newThreadForm input[type="text"] {
  background-color: var(--surface-input-muted);
  border-radius: 8px;
  width: 100%;
}

body.newThreadPage .newThreadForm div.postingInfo {
  font-family: var(--uiTextTypeface);
  justify-content: space-between;
  align-items: baseline;
  display: flex;
}

body.newThreadPage .newThreadForm div.postingInfo div.embeddingInfo a {
  color: var(--lightLineColour);
  font-weight: 400;
}

body.newThreadPage .newThreadForm div.postingInfo div.embeddingInfo a:hover {
  text-decoration: underline;
}

body.newThreadPage .newThreadForm div.postingInfo div.postingAs {
  color: var(--lightLineColour);
  margin-top: .625em;
  margin-left: .3125em;
}

body.newThreadPage .newThreadForm div.postingInfo div.postingAs span.name {
  font-weight: 500;
}

body.newThreadPage button.colossus {
  padding: .625em 2em;
}

body.newThreadPage section + section {
  margin-top: 1.25em;
}

body.newThreadPage section + section.controlPanel {
  margin-top: .625em;
}

div.errorMessage {
  font-family: var(--uiTextTypeface);
  align-items: center;
  gap: 1.25em;
  margin-top: .3125em;
  margin-bottom: .3125em;
  padding-left: 0;
  font-weight: 500;
  display: flex;
}

div.errorMessage img {
  width: 1.5em;
}

span.characterLimit {
  width: 100%;
  min-width: 0;
  display: grid;
}

span.characterLimit input {
  box-sizing: border-box;
  grid-area: 1 / 1;
}

span.characterLimit span.characterLimitStatus {
  opacity: 0;
  max-height: 0;
  color: var(--text-secondary);
  font-family: var(--uiTextTypeface);
  font-size: calc(var(--baseSize) * .75);
  pointer-events: none;
  grid-area: 2 / 1;
  justify-self: end;
  margin-right: .75em;
  padding-top: 0;
  transition: max-height .25s, padding-top .25s, opacity .2s, transform .25s;
  overflow: hidden;
  transform: translateY(-.25em);
}

span.characterLimit span.characterLimitStatus.characterLimitStatusVisible {
  opacity: 1;
  max-height: 1.8125em;
  padding-top: .3125em;
  transform: translateY(0);
}

span.characterLimit input[data-max-length].characterLimitExceeded {
  background-color: var(--status-error-input-background);
}

@keyframes bounce-icon {
  0% {
    opacity: 0;
    transform: scale(.5);
  }

  50% {
    opacity: 1;
    transform: scale(1.3);
  }

  100% {
    transform: scale(1);
  }
}

button img.bounceIn, span.bounceIn {
  transform-origin: center;
  animation: .4s ease-out bounce-icon;
  display: inline-block;
}

.animate__animated {
  animation-duration: 1s;
  animation-fill-mode: both;
}

@keyframes shakeX {
  0%, 100% {
    transform: translate3d(0, 0, 0);
  }

  10%, 30%, 50%, 70%, 90% {
    transform: translate3d(-10px, 0, 0);
  }

  20%, 40%, 60%, 80% {
    transform: translate3d(10px, 0, 0);
  }
}

.animate__shakeX {
  animation-name: shakeX;
}

@keyframes disappear {
  0% {
    opacity: 1;
  }

  100% {
    opacity: 0;
  }
}

@keyframes disappear2 {
  0% {
    transform: scale(1);
  }

  100% {
    transform: scale(0);
  }
}

.disappear {
  animation: .3s ease-out forwards disappear;
}

.disappear2 {
  animation: .3s ease-out forwards disappear2;
}

button.updatePollItemButton {
  justify-content: center;
  align-items: center;
  display: inline-flex;
}

.pollTextEditorDialog .updateIndicator {
  justify-content: center;
  align-items: center;
  width: 1.1em;
  height: 1.1em;
  display: flex;
  position: absolute;
  top: 50%;
  right: .625em;
  overflow: hidden;
  transform: translateY(-50%);
}

.pollTextEditorDialog span.characterLimit {
  position: relative;
}

.pollTextEditorDialog span.characterLimit .updateIndicator {
  z-index: 1;
  grid-area: 1 / 1;
  place-self: center end;
  margin-right: .625em;
  position: static;
  transform: none;
}

.pollTextEditorDialog .updateIndicator img.tick {
  object-fit: contain;
  opacity: 0;
  pointer-events: none;
  width: 1.1em;
  max-width: 1.1em;
  height: 1.1em;
  max-height: 1.1em;
}

.pollTextEditorDialog .updateIndicator img.tick.visible {
  opacity: 1;
}

.pollTextEditorDialog .pollItemInputContainer {
  flex: auto;
  position: relative;
}

.pollTextEditorDialog .pollItemInputContainer input.pollItemInputField {
  width: 100%;
  padding-right: 2.5em;
}

section.bookmarksList {
  box-sizing: border-box;
  background-color: var(--surface-raised);
  width: max-content;
  max-width: 50vw;
  max-height: 70vh;
  box-shadow: 4px 4px 8px 4px var(--shadow-soft);
  border: 1px solid var(--border-default);
  font-family: var(--uiTextTypeface);
  font-variant-numeric: normal;
  opacity: 0;
  transition: opacity .1s ease-out,
        transform .1s ease-out,
        display .1s allow-discrete,
        overlay .1s allow-discrete;
  border-radius: 8px;
  flex-direction: column;
  gap: .625em;
  margin: 0;
  padding: 2em;
  font-size: 12pt;
  display: flex;
  position: fixed;
  inset: auto;
  overflow-y: auto;
  transform: scale(.4);
}

section.bookmarksList:popover-open {
  opacity: 1;
  transform: scale(1);
}

section.bookmarksList h3 {
  color: var(--text-primary);
  font-size: 12pt;
  font-family: var(--uiHeadingTypeface);
  margin-top: 0;
  margin-bottom: .625em;
}

section.bookmarksList hr {
  border: none;
  border-top: 1px solid var(--border-default);
  width: 100%;
  margin: .3125em auto;
  display: none;
}

section.bookmarksList a {
  font-family: var(--uiTextTypeface);
  font-variant-numeric: normal;
  text-align: left;
  color: var(--linkColour);
  line-height: 1.25;
}

section.bookmarksList span.numberOfNewPosts {
  color: var(--text-primary);
}

div.messageId {
  color: var(--text-inverse);
  font-family: var(--TableTypeface);
  font-variant: normal;
  background-color: #99e;
  border-radius: 3px;
  align-self: flex-end;
  width: fit-content;
  margin-top: .625em;
  margin-bottom: .625em;
  padding: .3125em .625em;
  font-size: 10pt;
  font-weight: 500;
  display: flex;
}

main.errorPage {
  justify-content: center;
  align-items: center;
  height: 100vh;
  display: flex;
}

main.errorPage img {
  object-fit: contain;
  width: 90vw;
  height: 90vh;
}

a.lastReadMessageURL {
  font-family: var(--uiTextTypeface);
  margin-top: .625em;
  margin-bottom: .625em;
  font-size: 14pt;
}

div.emojis {
  gap: .3125em;
  margin-top: .625em;
  margin-bottom: .625em;
  margin-left: 1.5em;
  display: flex;
}

div.emojis span.numberOfUsers {
  font-size: 8pt;
  position: relative;
  top: 1.75em;
  right: -2em;
}

div.emojis span.icon {
  cursor: default;
}

:scope span.icon {
  cursor: pointer;
  background-size: 24px 24px;
  width: 24px;
  height: 24px;
  display: inline-block;
}

:scope span.icon[data-emoji-id="0"], :scope span.icon[data-emoji-id="ThumbsUp"] {
  background-image: url("/images/icons/emojis/thumbsUp.svg");
}

:scope span.icon[data-emoji-id="1"], :scope span.icon[data-emoji-id="Laugh"] {
  background-image: url("/images/icons/emojis/laugh2.svg");
}

:scope span.icon[data-emoji-id="2"], :scope span.icon[data-emoji-id="Love"] {
  background-image: url("/images/icons/emojis/love.svg");
}

:scope span.icon[data-emoji-id="3"], :scope span.icon[data-emoji-id="Sad"] {
  background-image: url("/images/icons/emojis/sad.svg");
}

:scope span.icon[data-emoji-id="4"], :scope span.icon[data-emoji-id="Cry"] {
  background-image: url("/images/icons/emojis/cry.svg");
}

:scope span.icon[data-emoji-id="5"], :scope span.icon[data-emoji-id="Confused"] {
  background-image: url("/images/icons/emojis/confused.svg");
}

:scope span.icon[data-emoji-id="6"], :scope span.icon[data-emoji-id="EyebrowRaised"] {
  background-image: url("/images/icons/emojis/eyebrowRaised.svg");
}

:scope span.icon[data-emoji-id="7"], :scope span.icon[data-emoji-id="Scared"] {
  background-image: url("/images/icons/emojis/scared.svg");
}

:scope span.icon[data-emoji-id="8"], :scope span.icon[data-emoji-id="Wow"] {
  background-image: url("/images/icons/emojis/wow.svg");
}

:scope div.postMetadata {
  justify-content: flex-start;
  display: flex;
}

:scope div.postMetadata div.postCreationDate, :scope div.postMetadata div.edited {
  color: var(--linkVisited);
  font-size: 16px;
  font-weight: 400;
}

div.postMenu, div.threadAdminMenu, div.siteAdminMenu, div.mediaPartyResyncMenu {
  font-family: var(--uiTextTypeface);
  flex-wrap: wrap;
  gap: .9375em 1.25em;
  max-height: 0;
  margin-left: .5rem;
  padding: 0 1.25em;
  transition: max-height .4s cubic-bezier(.68, -.55, .27, 1.55), padding .4s cubic-bezier(.68, -.55, .27, 1.55), margin .4s cubic-bezier(.68, -.55, .27, 1.55);
  display: flex;
  overflow: hidden;
}

:is(div.postMenu, div.threadAdminMenu, div.siteAdminMenu, div.mediaPartyResyncMenu) + div.postMenu {
  margin-top: 0;
}

:is(div.postMenu, div.threadAdminMenu, div.siteAdminMenu, div.mediaPartyResyncMenu).expanded {
  background-color: var(--surface-very-subtle);
  border-left: 1px solid var(--border-faint);
  max-height: 20em;
  margin-top: 1.25em;
  padding: 1em 1.25em;
}

:is(div.postMenu, div.threadAdminMenu, div.siteAdminMenu, div.mediaPartyResyncMenu).emojiContainer {
  background-color: var(--surface-emoji-menu);
}

:is(div.postMenu, div.threadAdminMenu, div.siteAdminMenu, div.mediaPartyResyncMenu).emojiContainer div.menuButton.selected {
  background: radial-gradient(circle, #ffc80080 0%, #0000 80%);
}

:is(div.postMenu, div.threadAdminMenu, div.siteAdminMenu, div.mediaPartyResyncMenu).adminMenu {
  padding-top: 0;
}

:is(div.postMenu, div.threadAdminMenu, div.siteAdminMenu, div.mediaPartyResyncMenu) div.menuButton {
  transform-origin: center;
  will-change: transform;
  display: block;
}

:is(div.postMenu, div.threadAdminMenu, div.siteAdminMenu, div.mediaPartyResyncMenu) div.menuButton a.menuButton {
  align-items: center;
  display: inline-flex;
}

:is(div.postMenu, div.threadAdminMenu, div.siteAdminMenu, div.mediaPartyResyncMenu) div.menuButton a.menuButton:hover {
  cursor: pointer;
}

:is(div.postMenu, div.threadAdminMenu, div.siteAdminMenu, div.mediaPartyResyncMenu) div.menuButton a.menuButton .replyIcon {
  background-image: url("/images/icons/reply.svg");
  background-size: 24px 24px;
  width: 24px;
  height: 24px;
  margin-right: .625em;
  display: inline-block;
}

:is(div.postMenu, div.threadAdminMenu, div.siteAdminMenu, div.mediaPartyResyncMenu) div.menuButton a.menuButton .linkIcon {
  background-image: url("/images/icons/link.svg");
  background-size: 24px 24px;
  width: 24px;
  height: 24px;
  margin-right: .625em;
  display: inline-block;
}

:is(div.postMenu, div.threadAdminMenu, div.siteAdminMenu, div.mediaPartyResyncMenu) div.menuButton a.menuButton .favouriteIcon {
  background-image: url("/images/icons/favourite.svg");
  background-size: 24px 24px;
  width: 24px;
  height: 24px;
  margin-right: .625em;
  display: inline-block;
}

:is(div.postMenu, div.threadAdminMenu, div.siteAdminMenu, div.mediaPartyResyncMenu) div.menuButton a.menuButton.favourited .favouriteIcon {
  background-image: url("/images/icons/favourite-red.svg");
}

:is(div.postMenu, div.threadAdminMenu, div.siteAdminMenu, div.mediaPartyResyncMenu) div.menuButton a.menuButton .flagIcon {
  background-image: url("/images/icons/flag.svg");
  background-size: 24px 24px;
  width: 24px;
  height: 24px;
  margin-right: .625em;
  display: inline-block;
}

:is(div.postMenu, div.threadAdminMenu, div.siteAdminMenu, div.mediaPartyResyncMenu) div.menuButton a.menuButton.flagged .flagIcon {
  background-image: url("/images/icons/flag-red.svg");
}

:is(div.postMenu, div.threadAdminMenu, div.siteAdminMenu, div.mediaPartyResyncMenu) div.menuButton a.menuButton .muteIcon {
  background-image: url("/images/icons/mute.svg");
  background-size: 24px 24px;
  width: 24px;
  height: 24px;
  margin-right: .625em;
  display: inline-block;
}

:is(div.postMenu, div.threadAdminMenu, div.siteAdminMenu, div.mediaPartyResyncMenu) div.menuButton a.menuButton.muted .muteIcon {
  background-image: url("/images/icons/mute-red.svg");
}

:is(div.postMenu, div.threadAdminMenu, div.siteAdminMenu, div.mediaPartyResyncMenu) div.menuButton a.menuButton .deleteIcon {
  background-image: url("/images/icons/delete-outline.svg");
  background-size: 24px 24px;
  width: 24px;
  height: 24px;
  margin-right: .625em;
  display: inline-block;
}

:is(div.postMenu, div.threadAdminMenu, div.siteAdminMenu, div.mediaPartyResyncMenu) div.menuButton a.menuButton.deleted .deleteIcon {
  background-image: url("/images/icons/delete-outline-red.svg");
}

:is(div.postMenu, div.threadAdminMenu, div.siteAdminMenu, div.mediaPartyResyncMenu) div.menuButton a.menuButton .createBoardIcon {
  background-image: url("/images/icons/add.svg");
  background-size: 24px 24px;
  width: 24px;
  height: 24px;
  margin-right: .625em;
  display: inline-block;
}

:is(div.postMenu, div.threadAdminMenu, div.siteAdminMenu, div.mediaPartyResyncMenu) div.menuButton a.menuButton .addUserIcon {
  background-image: url("/images/icons/addUser.svg");
  background-size: 24px 24px;
  width: 24px;
  height: 24px;
  margin-right: .625em;
  display: inline-block;
}

:is(div.postMenu, div.threadAdminMenu, div.siteAdminMenu, div.mediaPartyResyncMenu) div.menuButton a.menuButton.locked .lockIcon {
  background-image: url("/images/icons/locked-red.svg");
}

:is(div.postMenu, div.threadAdminMenu, div.siteAdminMenu, div.mediaPartyResyncMenu) div.menuButton a.menuButton .notWorksafeIcon {
  background-image: url("/images/icons/notWorksafe.svg");
  background-size: 24px 24px;
  width: 24px;
  height: 24px;
  margin-right: .625em;
  display: inline-block;
}

:is(div.postMenu, div.threadAdminMenu, div.siteAdminMenu, div.mediaPartyResyncMenu) div.menuButton a.menuButton.notWorksafed .notWorksafeIcon {
  background-image: url("/images/icons/notWorksafe-red.svg");
}

:is(div.postMenu, div.threadAdminMenu, div.siteAdminMenu, div.mediaPartyResyncMenu) div.menuButton a.menuButton .chatAllowedIcon {
  background-image: url("/images/icons/transmitter-on.svg");
  background-size: 24px 24px;
  width: 24px;
  height: 24px;
  margin-right: .625em;
  display: inline-block;
}

:is(div.postMenu, div.threadAdminMenu, div.siteAdminMenu, div.mediaPartyResyncMenu) div.menuButton a.menuButton.chatDisabled .chatAllowedIcon {
  background-image: url("/images/icons/transmitter-red.svg");
}

:is(div.postMenu, div.threadAdminMenu, div.siteAdminMenu, div.mediaPartyResyncMenu) div.menuButton a.menuButton .deindexIcon {
  background-image: url("/images/icons/deindex.svg");
  background-size: 24px 24px;
  width: 24px;
  height: 24px;
  margin-right: .625em;
  display: inline-block;
}

:is(div.postMenu, div.threadAdminMenu, div.siteAdminMenu, div.mediaPartyResyncMenu) div.menuButton a.menuButton.deindexed .deindexIcon {
  background-image: url("/images/icons/deindex-red.svg");
}

:is(div.postMenu, div.threadAdminMenu, div.siteAdminMenu, div.mediaPartyResyncMenu) div.menuButton a.menuButton .editIcon {
  background-image: url("/images/icons/edit.svg");
  background-size: 24px 24px;
  width: 24px;
  height: 24px;
  margin-right: .625em;
  display: inline-block;
}

:is(div.postMenu, div.threadAdminMenu, div.siteAdminMenu, div.mediaPartyResyncMenu) div.menuButton a.menuButton .editPollIcon {
  background-image: url("/images/icons/editPollItems.svg");
  background-size: 24px 24px;
  width: 24px;
  height: 24px;
  margin-right: .625em;
  display: inline-block;
}

:is(div.postMenu, div.threadAdminMenu, div.siteAdminMenu, div.mediaPartyResyncMenu) div.menuButton a.menuButton .adminIcon {
  background-image: url("/images/icons/admin.svg");
  background-size: 24px 24px;
  width: 24px;
  height: 24px;
  margin-right: .625em;
  display: inline-block;
}

:is(div.postMenu, div.threadAdminMenu, div.siteAdminMenu, div.mediaPartyResyncMenu) div.menuButton a.menuButton .pendingRegistrationsIcon {
  background-image: url("/images/icons/queue.svg");
  background-size: 24px 24px;
  width: 24px;
  height: 24px;
  margin-right: .625em;
  display: inline-block;
}

:is(div.postMenu, div.threadAdminMenu, div.siteAdminMenu, div.mediaPartyResyncMenu) div.menuButton a.menuButton .lockIcon {
  background-image: url("/images/icons/locked.svg");
  background-size: 24px 24px;
  width: 24px;
  height: 24px;
  margin-right: .625em;
  display: inline-block;
}

:is(div.postMenu, div.threadAdminMenu, div.siteAdminMenu, div.mediaPartyResyncMenu) div.menuButton a.menuButton .clockIcon {
  background-image: url("/images/icons/clock.svg");
  background-size: 24px 24px;
  width: 24px;
  height: 24px;
  margin-right: .625em;
  display: inline-block;
}

:is(div.postMenu, div.threadAdminMenu, div.siteAdminMenu, div.mediaPartyResyncMenu) div.menuButton a.menuButton .diagnosticsIcon {
  background-image: url("/images/icons/diagnostics.svg");
  background-size: 24px 24px;
  width: 24px;
  height: 24px;
  margin-right: .625em;
  display: inline-block;
}

:is(div.postMenu, div.threadAdminMenu, div.siteAdminMenu, div.mediaPartyResyncMenu) div.menuButton a.menuButton .logIcon {
  background-image: url("/images/icons/log.svg");
  background-size: 24px 24px;
  width: 24px;
  height: 24px;
  margin-right: .625em;
  display: inline-block;
}

:is(div.postMenu, div.threadAdminMenu, div.siteAdminMenu, div.mediaPartyResyncMenu) div.menuButton a.menuButton .siteMessageIcon {
  background-image: url("/images/icons/siteMessage.svg");
  background-size: 24px 24px;
  width: 24px;
  height: 24px;
  margin-right: .625em;
  display: inline-block;
}

:is(div.postMenu, div.threadAdminMenu, div.siteAdminMenu, div.mediaPartyResyncMenu) div.menuButton a.menuButton .openCloseSite {
  background-image: url("/images/icons/openClose.svg");
  background-size: 24px 24px;
  width: 24px;
  height: 24px;
  margin-right: .625em;
  display: inline-block;
}

:is(div.postMenu, div.threadAdminMenu, div.siteAdminMenu, div.mediaPartyResyncMenu) div.menuButton a.menuButton .accessControlsIcon {
  background-image: url("/images/icons/accesscontrols.svg");
  background-size: 24px 24px;
  width: 24px;
  height: 24px;
  margin-right: .625em;
  display: inline-block;
}

:is(div.postMenu, div.threadAdminMenu, div.siteAdminMenu, div.mediaPartyResyncMenu) div.menuButton a.menuButton .userAdminIcon {
  background-image: url("/images/icons/admin.svg");
  background-size: 24px 24px;
  width: 24px;
  height: 24px;
  margin-right: .625em;
  display: inline-block;
}

:is(div.postMenu, div.threadAdminMenu, div.siteAdminMenu, div.mediaPartyResyncMenu) div.menuButton a.menuButton .flaggedPostsReportIcon {
  background-image: url("/images/icons/flag.svg");
  background-size: 24px 24px;
  width: 24px;
  height: 24px;
  margin-right: .625em;
  display: inline-block;
}

:is(div.postMenu, div.threadAdminMenu, div.siteAdminMenu, div.mediaPartyResyncMenu) div.menuButton a.menuButton:hover {
  text-decoration: none;
}

:is(div.postMenu, div.threadAdminMenu, div.siteAdminMenu, div.mediaPartyResyncMenu) div.menuButton a.menuButton img {
  max-width: 1.25em;
  margin-right: .625em;
  display: inline;
}

@media (prefers-reduced-motion: reduce) {
  div.postMenu, div.threadAdminMenu, div.siteAdminMenu, div.mediaPartyResyncMenu {
    transition: none;
  }
}

div.threadAdminMenu {
  border-left: 1px solid var(--border-muted);
  margin-left: 0;
}

div.mediaPartyResyncMenu {
  margin: 0;
  padding: 0;
}

div.mediaPartyResyncMenu button.resyncButton {
  margin: 0 0 .3125em;
}

div.mediaPartyResyncMenu.expanded {
  background-color: unset;
  border-left: none;
  padding: 0;
}

@keyframes bounceElement {
  0% {
    transform: scale(1);
  }

  30% {
    transform: scale(1.15);
  }

  60% {
    transform: scale(.95);
  }

  100% {
    transform: scale(1);
  }
}

@keyframes bounceElementLight {
  0% {
    transform: scale(1);
  }

  30% {
    transform: scale(1.025);
  }

  60% {
    transform: scale(.975);
  }

  100% {
    transform: scale(1);
  }
}

@keyframes bounceElementHeavy {
  0% {
    transform: scale(1);
  }

  25% {
    transform: scale(1.15);
  }

  50% {
    transform: scale(1.3);
  }

  75% {
    transform: scale(1.15);
  }

  100% {
    transform: scale(1);
  }
}

.bounceElement {
  animation: .3s ease-in-out bounceElement;
}

.bounceElementThreeTimes {
  animation: .3s ease-in-out 3 bounceElement;
}

.bounceElementLight {
  animation: .3s ease-in-out bounceElementLight;
}

.bounceElementHeavy {
  animation: .3s ease-out 1s 2 bounceElementHeavy;
}

div.pollResults {
  border-radius: 10px;
  width: 100%;
  min-width: 0;
  max-width: 100%;
  height: 600px;
  margin-top: .625em;
  padding: 0 2em;
  overflow: hidden;
}

div.pollResultsTablesContainer {
  flex-wrap: wrap;
  justify-content: center;
  align-items: flex-start;
  gap: 2em;
  display: flex;
}

div.pollResultsTablesContainer div.pollResultsTable {
  justify-content: center;
  max-width: 70%;
  display: flex;
}

div.pollResultsTablesContainer div.pollResultsTable table.pollResults {
  border-bottom: none;
}

div.pollResultsTablesContainer div.pollResultsTable table.pollResults th {
  padding: .3125em;
}

div.pollResultsTablesContainer div.pollResultsTable table.pollResults th:first-child {
  max-width: var(--maximumParagraphWidth);
  text-align: right;
  padding-left: 2em;
  padding-right: 1.25em;
}

div.pollResultsTablesContainer div.pollResultsTable table.pollResults th:last-child {
  text-align: center;
  padding-left: 1.25em;
  padding-right: 2em;
}

div.pollResultsTablesContainer div.pollResultsTable table.pollResults td:first-child {
  text-align: right;
  vertical-align: middle;
  padding-left: 2em;
  padding-right: 1.25em;
}

div.pollResultsTablesContainer div.pollResultsTable table.pollResults td:nth-child(2) {
  vertical-align: middle;
}

div.pollResultsTablesContainer div.pollResultsTable table.pollResults td:last-child {
  text-align: center;
  vertical-align: middle;
  padding-left: 1.25em;
  padding-right: 2em;
}

div.pollResultsTablesContainer div.pollResultsTable table.pollResults.legacyPoll {
  width: min(max-content, 45%);
}

section.whoVotedForWhat {
  flex-direction: column;
  align-items: center;
  display: flex;
}

section.whoVotedForWhat p + p {
  padding-top: .625em;
}

section.whoVotedForWhat table a {
  margin-top: .625em;
  font-size: 10pt;
  line-height: 1.2em;
  display: inline-block;
}

section.whoVotedForWhat p {
  text-align: left;
}

section.whoVotedForWhat p strong {
  font-weight: 500;
}

section.pollContainer {
  border-radius: var(--borderRadius);
  margin-bottom: 1.5em;
}

section.pollContainer h3.pollStatus + section.chart {
  margin-top: 0;
}

section.pollContainer section.tableHeading h3 + p {
  margin-top: .625em;
}

section.pollContainer section.chart {
  background-color: var(--surface-subtle);
  margin-bottom: 2.5em;
}

section.pollContainer section + section {
  margin-top: 1.25em;
}

section.pollContainer span.matchingRank {
  color: var(--colour2);
}

section.pollContainer div.overallResultsTab, section.pollContainer div.condorcetResultsTab {
  flex-direction: column;
  align-items: center;
  display: flex;
}

:is(section.pollContainer div.overallResultsTab, section.pollContainer div.condorcetResultsTab) > p {
  text-align: left;
  max-width: 66ch;
  line-height: 1.25;
  font-family: var(--PostTypeface);
  font-variant-numeric: oldstyle-nums;
  margin-top: 1.25em;
  font-weight: lighter;
}

section.pollContainer section.rankingResults {
  justify-content: center;
  align-items: baseline;
  gap: 3em;
  display: flex;
}

section.pollContainer section.rankingResults table {
  max-width: 20em;
}

section.pollContainer section.rankingResults table.ranking th:first-child, section.pollContainer section.rankingResults table.ranking td:first-child {
  text-align: right;
}

section.pollContainer section.rankingResults table.ranking th:nth-child(2), section.pollContainer section.rankingResults table.ranking td:nth-child(2) {
  text-align: center;
}

section.pollContainer section.rankingResults table.ranking th:last-child, section.pollContainer section.rankingResults table.ranking td:last-child {
  text-align: left;
}

section.pollContainer section.rankingResults table.yourRanking {
  max-width: 20em;
}

section.pollContainer section.rankingResults table.yourRanking td.matchingRank {
  color: var(--colour2);
}

section.pollContainer section.rankingResults table.yourRanking td:last-child {
  padding-left: unset;
  padding-right: unset;
  text-align: left;
}

section.pollContainer section.rankingResults table.yourRanking colgroup col:first-child {
  width: 3em;
}

section.pollContainer section.rankingResults table.yourRanking th {
  text-align: left;
  padding-left: 2em;
  padding-right: 2em;
}

section.pollContainer section.rankingResults table.yourRanking td:first-child {
  text-align: right;
  padding-left: 1.25em;
}

section.pollContainer section:empty {
  display: none;
}

section.pollContainer caption {
  font-weight: 500;
}

section.pollContainer p {
  font-family: var(--TableTypeface);
  font-variant: normal;
}

section.pollContainer section.chart + section.tableHeading {
  margin-top: 1.25em;
}

section.pollContainer p.downloadLink, section.pollContainer p.resetLink {
  align-items: center;
  gap: .625em;
  display: flex;
}

:is(section.pollContainer p.downloadLink, section.pollContainer p.resetLink) img {
  width: 1.25em;
  height: 1.25em;
}

section.pollContainer table.pollResults thead th {
  font-weight: 400;
}

section.pollContainer div.whoVotedForWhatTab, section.pollContainer div.insightsTab {
  justify-content: center;
  display: flex;
}

:is(section.pollContainer div.whoVotedForWhatTab, section.pollContainer div.insightsTab) div.tableWrapper th {
  font-weight: 400;
}

:is(section.pollContainer div.whoVotedForWhatTab, section.pollContainer div.insightsTab) table.pollResults {
  width: fit-content;
  max-width: 100%;
}

:is(section.pollContainer div.whoVotedForWhatTab, section.pollContainer div.insightsTab) table.pollResults tr td {
  vertical-align: top;
}

:is(section.pollContainer div.whoVotedForWhatTab, section.pollContainer div.insightsTab) table.pollResults tr th {
  text-align: left;
}

:is(section.pollContainer div.whoVotedForWhatTab, section.pollContainer div.insightsTab) table.pollResults tr td:first-child, :is(section.pollContainer div.whoVotedForWhatTab, section.pollContainer div.insightsTab) table.pollResults tr th:first-child {
  text-align: right;
  padding-left: 1.25em;
}

:is(section.pollContainer div.whoVotedForWhatTab, section.pollContainer div.insightsTab) table.pollResults tr td:last-child, :is(section.pollContainer div.whoVotedForWhatTab, section.pollContainer div.insightsTab) table.pollResults tr th:last-child {
  padding-right: 1.25em;
}

section.pollContainer div.insightsTab {
  font-family: var(--TableTypeface);
  font-variant-numeric: normal;
}

section.pollContainer div.insightsTab section.insights {
  flex-direction: column;
  align-items: center;
  gap: 1.25em;
  display: flex;
}

section.pollContainer div.insightsTab section.insights #scatterChart {
  width: 100%;
  height: 600px;
}

section.pollContainer div.insightsTab section.insights h3 + div#scatterChart {
  margin-top: 0;
}

section.pollContainer div.insightsTab section.insights p + p {
  padding-top: .625em;
}

section.pollContainer div.insightsTab table + div, section.pollContainer div.insightsTab table + table {
  margin-top: 3em;
}

section.pollContainer div.insightsTab table + div.footnotes {
  margin-top: 1.25em;
}

section.pollContainer div.insightsTab caption {
  font-size: var(--baseSize);
  text-align: left;
  margin-bottom: .625em;
  font-weight: bold;
}

section.pollContainer div.insightsTab caption.pointsOfInterest {
  margin-top: 1.25em;
}

section.pollContainer div.insightsTab caption.distributionOfVotes {
  margin-bottom: 0;
}

section.pollContainer div.insightsTab p {
  font-family: var(--TableTypeface);
  font-variant-numeric: normal;
}

section.pollContainer div.insightsTab p em {
  font-style: normal;
  font-weight: 500;
}

section.pollContainer div.insightsTab div.tableWrapper {
  width: 80%;
}

section.pollContainer div.insightsTab div.tableWrapper table.pollResults.concordance {
  line-height: 1.25;
}

section.pollContainer div.insightsTab div.tableWrapper table.pollResults.concordance colgroup col:first-child {
  width: 35%;
}

section.pollContainer div.insightsTab div.tableWrapper table.pollResults.concordance td {
  vertical-align: baseline;
}

section.pollContainer div.insightsTab div.tableWrapper table.pollResults.concordance td span.optionName {
  color: var(--colour2);
  white-space: nowrap;
}

section.pollContainer div.insightsTab table.pollResults.basics {
  line-height: 1.25;
}

section.pollContainer section.tabular {
  flex-wrap: wrap;
  justify-content: center;
  align-items: baseline;
  gap: 3em;
  display: flex;
}

section.pollContainer section.tabular table {
  border-bottom: 0;
  padding-right: 2em;
}

section.pollContainer section.tabular span.youVotedFor {
  white-space: nowrap;
}

section.pollContainer section.tabular table.whatYouVotedFor tr td:first-child {
  vertical-align: middle;
}

section.voting {
  flex-direction: column;
  align-items: center;
  gap: 1.25em;
  display: flex;
}

section.voting p {
  font-family: var(--TableTypeface);
  font-weight: 500;
}

section.voting div.yourRankings {
  flex-wrap: wrap;
  justify-content: left;
  align-items: center;
  gap: 1em .625em;
  width: fit-content;
  max-width: 66ch;
  display: flex;
}

section.voting div.yourRankings div.option {
  font-family: var(--TableTypeface);
  background-color: var(--colour2);
  color: var(--text-inverse);
  border-radius: 6px;
  padding: .625em 1.25em;
  font-weight: 500;
}

section.voting div.yourRankings div.separator {
  font-size: var(--baseSize);
}

section.options {
  width: 100%;
  margin-top: 1.25em;
}

section.options section.displayOptions {
  font-family: var(--uiTextTypeface);
  font-size: var(--baseSize);
  background-color: var(--surface-ui-panel);
  color: var(--text-primary);
  border-radius: 6px;
  grid-template-columns: auto auto;
  align-items: center;
  gap: 1.25em;
  margin-bottom: 1.25em;
  padding: 1.875em;
  display: grid;
}

section.options section.displayOptions.accessibilitySettings {
  grid-template-columns: 1fr;
}

section.options section.displayOptions.postDisplayMode {
  grid-template-columns: 2fr 3fr;
}

section.options section.displayOptions div.postSeparatorPreview {
  margin-top: 1.25em;
}

@media (width <= 1000px) {
  section.options section.displayOptions {
    grid-template-columns: 1fr;
  }

  section.options section.displayOptions section.example {
    border-left: none;
    padding-left: 0;
  }
}

section.options div.header {
  flex-direction: column;
  grid-column: 1 / -1;
  gap: .3125em;
  display: flex;
}

section.options div.example {
  max-width: 20em;
}

section.options div.setNickname {
  grid-template-columns: auto auto;
  align-items: center;
  gap: .625em;
  display: grid;
}

section.options div.setNickname input {
  background-color: var(--surface-input);
  border-radius: var(--borderRadius);
  min-width: 0;
}

section.options div.setNickname section.example {
  margin-top: 0;
}

section.options div.option {
  flex-direction: column;
  align-items: flex-start;
  gap: .625em;
  display: flex;
}

section.options div.option.horizontal {
  flex-flow: wrap;
  align-items: center;
}

section.options div.option button {
  margin-top: 0;
  margin-bottom: 0;
  margin-right: 0;
}

section.options div.option.password {
  grid-template-columns: max-content minmax(auto, 12em);
  align-items: center;
  gap: .625em;
  display: grid;
}

section.options div.option.password input {
  background-color: var(--surface-input);
  border-radius: 8px;
  width: 12em;
}

section.options div.option.password div {
  gap: .625em;
  display: flex;
}

section.options div.option.password div.passwordVisibility {
  align-items: center;
}

section.options div.option.password button {
  margin: 0;
}

section.options div.option.password button.passwordVisibilityButton {
  border: 1px solid var(--border-overlay);
  cursor: pointer;
  background-color: #0000;
  border: 0;
  border-radius: 8px;
  padding: .35em;
}

section.options div.option.password button.passwordVisibilityButton[aria-pressed="true"] {
  background-color: var(--surface-selected);
}

section.options div.option.password button.passwordVisibilityButton img {
  width: 1.25em;
  height: 1.25em;
  display: block;
}

section.options div.option label {
  text-align: right;
  font-size: var(--baseSize);
  font-family: var(--uiTextTypeface);
  justify-content: flex-end;
  align-items: center;
  display: flex;
}

section.options div.option input[type="text"] {
  font-variant-numeric: oldstyle-nums;
  font-family: var(--uiTextTypeface);
}

section.options div.option input[type="text"].error {
  background-color: var(--status-error-input-background);
}

section.options div.option input[type="text"] {
  background-color: var(--surface-input);
  border-radius: 6px;
}

section.options input[type="checkbox"] {
  margin-left: 6px;
  transform: scale(1.5);
}

section.options section.example {
  font-family: var(--PostTypeface);
  border-left: 1px solid gray;
  flex-direction: column;
  align-self: flex-start;
  gap: .625em;
  padding-top: .625em;
  padding-bottom: .625em;
  padding-left: 1.25em;
  display: flex;
}

section.options section.example div.exampleText {
  font-size: var(--secondarySize);
}

section.options section.example button {
  justify-self: flex-end;
  margin-right: 0;
}

section.options section.example h4 {
  font-size: 12pt;
  font-family: var(--uiTextTypeface);
  margin-bottom: .625em;
  margin-left: 4px;
  font-weight: 400;
}

section.options section.example div.example {
  background-color: var(--surface-raised);
  border-radius: 8px;
  padding: .625em;
}

section.options section.example div.example p {
  font-family: var(--TableTypeface);
  text-align: left;
}

section.options section.example div.postDisplayMode.example p {
  font-family: var(--PostTypeface);
  font-size: 12pt;
}

section.postDisplayMode div.option {
  grid-template-columns: 2fr 3fr;
  align-items: center;
  gap: .625em;
  display: grid;
}

label-colossus {
  line-height: 30px;
  display: block;
}

.option-colossus {
  -webkit-appearance: none;
  -moz-appearance: none;
  -ms-appearance: none;
  appearance: none;
  -o-appearance: none;
  background: var(--surface-input);
  width: 20px;
  height: 20px;
  color: var(--text-inverse);
  cursor: pointer;
  border: none;
  border-radius: 3px;
  outline: none;
  transition: all .15s ease-out;
  display: inline-block;
  position: relative;
  inset: 5px 0 0;
}

.option-colossus:checked:before {
  content: "✓";
  width: 20px;
  height: 20px;
  color: var(--text-primary);
  justify-content: center;
  align-items: center;
  font-size: 15px;
  font-weight: 500;
  display: flex;
  position: absolute;
}

.option-colossus:checked:after {
  content: "";
  z-index: 100;
  background: #40e0d0;
  -webkit-animation: .65s click-wave;
  -moz-animation: .65s click-wave;
  animation: .65s click-wave;
  display: block;
  position: relative;
}

label.label-option {
  line-height: 30px;
  font-size: var(--baseSize);
  margin-right: 1.25em;
}

input[type="radio"].option-colossus {
  border: 1px solid var(--grey-500);
  top: unset;
  border-radius: 50%;
  transform: scale(1.5);
}

input[type="radio"].option-colossus:checked:before {
  color: rbga(0, 0, 0, .6);
  content: "●";
  position: absolute;
  top: -1.5px;
  left: -1px;
}

input[type="radio"].option-colossus:checked:after {
  border-radius: 50%;
}

@keyframes click-wave {
  0% {
    opacity: .35;
    width: 20px;
    height: 20px;
    position: relative;
  }

  100% {
    opacity: 0;
    width: 60px;
    height: 60px;
    margin-top: -20px;
    margin-left: -20px;
  }
}

a.search {
  position: relative;
  top: 1.5px;
}

span.threadIcons {
  align-items: center;
  gap: .625em;
  display: inline-flex;
}

span.threadIcons img {
  width: 1.25em;
}

.subHeader {
  align-items: center;
  display: flex;
}

.subHeader img {
  height: 28px;
  margin-right: .625em;
  display: inline;
}

body.applicationPage p {
  font-family: var(--uiTextTypeface);
  font-variant-numeric: normal;
}

body.applicationPage p strong {
  font-weight: 500;
}

body.applicationPage a, body.applicationPage table {
  font-family: var(--uiTextTypeface);
}

body.monthViewPage section.monthViewFilters {
  align-items: center;
  gap: .625em;
  width: fit-content;
  display: flex;
}

body.monthViewPage section.monthViewFilters input[type="search"] {
  width: fit-content;
}

body.monthViewPage div.noThreadsMessage {
  font-size: 14pt;
  font-weight: 500;
  font-family: var(--HeadingTypefaceText);
  justify-content: center;
  align-items: center;
  margin-top: 2.5em;
  display: flex;
}

body.monthViewPage .subHeader img {
  height: 60px;
  margin-right: .625em;
  display: inline;
}

body.monthViewPage section.threadsByDay h3 {
  margin-top: 1.5em;
  margin-bottom: 1.25em;
}

body.monthViewPage section.threadsByDay section.pageControl + h3 {
  margin-top: 1.25em;
  margin-bottom: .625em;
}

body.monthViewPage section.threadsByDay section.pageControl {
  background-color: var(--colour3);
  justify-content: space-between;
  margin-top: 3em;
  padding: .625em;
  display: flex;
}

body.monthViewPage section.threadsByDay section.pageControl a {
  color: var(--text-inverse);
  margin-right: 1.25em;
  font-size: 14pt;
  font-weight: 400;
  display: inline-flex;
}

body.monthViewPage section.threadsByDay div.thread {
  grid-template-columns: 1fr 2fr;
  align-items: center;
  gap: 1.5em;
  margin-bottom: 1.25em;
  display: grid;
}

body.monthViewPage section.threadsByDay div.thread div.threadInfo {
  border-right: 1px solid var(--grey-500);
  flex-direction: column;
  justify-content: center;
  gap: .3125em;
  height: 100%;
  padding-top: .625em;
  padding-bottom: .625em;
  padding-right: 1.25em;
  display: flex;
}

body.monthViewPage section.threadsByDay div.thread div.threadInfo * {
  text-align: right;
  justify-content: flex-end;
}

body.monthViewPage section.threadsByDay div.thread a {
  font-size: 14pt;
  line-height: 1.25;
  font-family: var(--uiTextTypeface);
  color: var(--linkColour);
  font-weight: 500;
}

body.monthViewPage section.threadsByDay div.thread span.author {
  color: var(--grey-600);
  font-size: 12pt;
}

body.monthViewPage section.threadsByDay div.thread span.author span.username {
  font-weight: 400;
}

body.monthViewPage section.threadsByDay div.thread span.firstMessage {
  font-family: var(--PostTypeface);
  font-variant-numeric: oldstyle-nums;
  max-width: 66ch;
  color: var(--text-secondary);
  font-size: 12pt;
}

body.monthViewPage section.threadsByDay div.thread span.firstMessage .smallcaps {
  font-variant: small-caps;
}

:is(body.chronologicalPage, body.typographyPage .chronologicalPage) section + h3 {
  margin-top: 1.5em;
}

:is(body.chronologicalPage, body.typographyPage .chronologicalPage) h3 + section {
  margin-top: 1.25em;
}

:is(body.chronologicalPage, body.typographyPage .chronologicalPage) section#threadsOverTime {
  width: 100%;
  height: 400px;
}

:is(body.chronologicalPage, body.typographyPage .chronologicalPage) .subHeader img {
  height: 60px;
  margin-right: .625em;
  display: inline;
}

:is(body.chronologicalPage, body.typographyPage .chronologicalPage) section.years {
  width: 100%;
  font-weight: 800;
  font-family: var(--uiTextTypeface);
  grid-template-columns: repeat(13, minmax(0, 1fr));
  gap: .3125em;
  margin-top: 1.5em;
  display: grid;
}

:is(body.chronologicalPage, body.typographyPage .chronologicalPage) section.years .yearCell, :is(body.chronologicalPage, body.typographyPage .chronologicalPage) section.years .monthCell {
  color: var(--heatmap-text-light);
  -webkit-user-drag: none;
}

:is(:is(body.chronologicalPage, body.typographyPage .chronologicalPage) section.years .yearCell, :is(body.chronologicalPage, body.typographyPage .chronologicalPage) section.years .monthCell) span:last-child {
  color: inherit;
  font-weight: 100;
}

:is(body.chronologicalPage, body.typographyPage .chronologicalPage) section.years .yearCell, :is(body.chronologicalPage, body.typographyPage .chronologicalPage) section.years .monthCell {
  aspect-ratio: 1;
  background: var(--heatmap-spacer-background);
  -webkit-user-select: none;
  -ms-user-select: none;
  user-select: none;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  gap: .3125em;
  width: auto;
  display: flex;
}

:is(body.chronologicalPage, body.typographyPage .chronologicalPage) section.years .monthCell {
  background-color: hsl(from var(--heatmap-base-colour) h calc(20% + 56% * var(--intensity)) calc(95% - 50% * var(--intensity)));
  color: var(--heatmap-text-light);
  font-weight: 400;
}

:is(body.chronologicalPage, body.typographyPage .chronologicalPage) section.years .monthCell span {
  color: inherit;
}

:is(body.chronologicalPage, body.typographyPage .chronologicalPage) section.years .monthCell.darkText {
  color: var(--heatmap-text-dark);
}

:is(body.chronologicalPage, body.typographyPage .chronologicalPage) section.years div.yearCell {
  background: var(--heatmap-year-background);
}

:is(body.chronologicalPage, body.typographyPage .chronologicalPage) section.years .monthCell:hover {
  background-color: hsl(from var(--heatmap-base-colour) h calc(20% + 56% * var(--intensity)) calc(45% + 50% * var(--intensity)));
  color: var(--heatmap-text-light);
  transition: all .3s;
}

:is(body.chronologicalPage, body.typographyPage .chronologicalPage) section.years .monthCell:hover.hoverDarkText {
  color: var(--heatmap-text-dark);
}

:is(body.chronologicalPage, body.typographyPage .chronologicalPage) section.years .monthCell:hover span:last-child {
  color: inherit;
}

@media (width <= 1000px) {
  :is(body.chronologicalPage, body.typographyPage .chronologicalPage) section.years {
    font-size: calc(var(--baseSize) * .75);
  }
}

@media (width <= 800px) {
  :is(body.chronologicalPage, body.typographyPage .chronologicalPage) section.years {
    font-size: calc(var(--baseSize) * .5);
  }
}

section.searchPage {
  font-family: var(--uiTextTypeface);
  font-size: var(--baseSize);
  color: var(--text-primary);
  font-weight: 500;
}

section.searchPage section.errorMessage {
  grid-template-columns: 4em minmax(auto, 20em) min-content;
  align-items: center;
  gap: .625em;
  margin-top: .625em;
  display: none;
}

section.searchPage section.errorMessage div.errorMessage {
  background-color: var(--surface-raised);
  color: var(--text-primary);
  padding: 1.25em 0;
}

section.searchPage select.boardList {
  width: fit-content;
  font-size: 12pt;
  font-family: var(--uiTextTypeface);
  padding: .3125em;
}

section.searchPage select.boardList select option {
  font: inherit;
}

section.searchPage section.search {
  background-color: var(--grey-100);
  border-radius: var(--borderRadius);
  grid-template-columns: 8em minmax(auto, 20em) min-content;
  align-items: center;
  gap: .625em;
  padding: .625em;
  display: grid;
}

section.searchPage section.search label {
  text-align: right;
  margin-right: .625em;
  font-size: 12pt;
  font-weight: 500;
}

section.searchPage section.search input[type="search"] {
  background-color: var(--surface-input);
  border-radius: 8px;
}

section.searchPage section.search div.usernameSuggestions {
  grid-column: 2 / 4;
}

section.searchPage section.searchOptions {
  background-color: var(--grey-100);
  border-radius: var(--borderRadius);
  grid-template-columns: 8em auto 8em auto;
  align-items: center;
  gap: .625em;
  margin-top: 1.25em;
  padding: 1.25em;
  display: grid;
}

section.searchPage section.searchOptions > select {
  width: 100%;
  min-width: 0;
  font-family: var(--uiTextTypeface);
}

section.searchPage section.searchOptions div.option {
  text-align: right;
  justify-content: flex-end;
  align-items: center;
  font-size: 12pt;
  font-weight: 400;
  display: flex;
}

section.searchPage section.searchOptions div.narrowSearch {
  align-items: baseline;
  gap: 2em;
  font-size: 12pt;
  font-weight: 400;
  display: flex;
}

section.searchPage section.searchOptions div.narrowSearch label {
  align-items: center;
  gap: .625em;
  display: flex;
}

section.searchPage section.searchOptions div.narrowSearch input[type="checkbox"] {
  border: 1px solid var(--text-primary);
}

section.searchPage section.searchOptions div.usernameFilter input {
  border-radius: var(--borderRadius);
  background-color: var(--surface-input);
  border: 1px solid var(--border-faint);
  width: 100%;
}

section.searchPage section.searchOptions div.usernameSuggestions {
  margin-top: .4em;
}

section.searchPage div.usernameSuggestions {
  flex-wrap: wrap;
  gap: .4em;
  max-width: 28em;
  display: flex;
}

section.searchPage div.usernameSuggestions button.usernameSuggestion {
  border: 1px solid var(--colour2);
  border-radius: var(--borderRadius);
  background: var(--surface-raised);
  color: var(--text-primary);
  font-family: var(--uiTextTypeface);
  cursor: pointer;
  align-items: center;
  gap: .35em;
  padding: .3125em .45em;
  font-size: 10pt;
  font-weight: 500;
  display: inline-flex;
}

section.searchPage div.usernameSuggestions button.usernameSuggestion img {
  width: 1.25em;
  height: 1.25em;
}

:scope section.results {
  margin-top: 2em;
}

:scope section.results div.messageSearchLoading {
  justify-content: center;
  padding: 2em;
  display: flex;
}

:scope section.results div.messageSearchLoading img {
  height: 3em;
  animation: 1s linear infinite messageSearchLogoSpin;
}

:scope section.results table {
  width: 100%;
}

:scope section.results table.searchResultsTable {
  border-bottom: none;
}

:scope section.results table.searchResultsTable td, :scope section.results table.searchResultsTable th {
  padding: 1.25em;
}

:scope section.results table.searchResultsTable th {
  border-bottom: none;
  padding-top: 0;
  padding-bottom: .625em;
}

:scope section.results table.searchResultsTable td:not(:first-child):not(:last-child), :scope section.results table.searchResultsTable th:not(:first-child):not(:last-child) {
  padding-left: 0;
  padding-right: 0;
}

:scope section.results table.searchResultsTable tbody tr:nth-child(odd) {
  background-color: var(--surface-table-row);
}

:scope section.results table.searchResultsTable colgroup col:last-child {
  text-align: center;
}

:scope section.results table.searchResultsTable a.title {
  max-width: 55ch;
  font-family: var(--uiTextTypeface);
  font-weight: 500;
  line-height: 1.25;
  display: inline-block;
}

:scope section.results table.searchResultsTable div.creationDate {
  margin-top: .3125em;
}

:scope section.results table.searchResultsTable div.creationDate, :scope section.results table.searchResultsTable div.lastUpdated {
  font-size: calc(var(--baseSize) * .85);
}

:scope section.results table.searchResultsTable span.createdBy {
  font-weight: 500;
}

:scope section.results table.searchResultsTable div.messageSearchResult, :scope section.results table.searchResultsTable div.threadSearchResult {
  flex-direction: column;
  gap: .15625em;
  display: flex;
}

:is(:scope section.results table.searchResultsTable div.messageSearchResult, :scope section.results table.searchResultsTable div.threadSearchResult) .firstMessage {
  font-family: var(--PostTypeface);
  max-width: var(--maximumParagraphWidth);
  font-size: calc(var(--baseSize) * .85);
  color: var(--text-tertiary);
  margin-top: .3125em;
}

:is(:scope section.results table.searchResultsTable div.messageSearchResult, :scope section.results table.searchResultsTable div.threadSearchResult) div.boardName {
  color: var(--text-secondary);
  font-variant-caps: all-small-caps;
  line-height: 1.25rem;
}

:is(:scope section.results table.searchResultsTable div.messageSearchResult, :scope section.results table.searchResultsTable div.threadSearchResult) div.postedBy {
  color: var(--text-secondary);
  font-family: var(--TableTypeface);
  font-size: 10pt;
}

:is(:scope section.results table.searchResultsTable div.messageSearchResult, :scope section.results table.searchResultsTable div.threadSearchResult) div.postedBy strong {
  font-weight: 500;
}

:is(:scope section.results table.searchResultsTable div.messageSearchResult, :scope section.results table.searchResultsTable div.threadSearchResult) div.postedBy span.creationDate {
  text-transform: lowercase;
}

:scope section.results table.threadSearchResults th:last-child, :scope section.results table.threadSearchResults td:last-child {
  text-align: center;
}

:scope section.results table.threadSearchResults colgroup col:last-child {
  text-align: center;
}

:scope section.results table th {
  text-align: left;
}

:scope section.results table td {
  text-align: left;
  vertical-align: middle;
}

:scope section.results table small {
  word-break: break-word;
  overflow-wrap: anywhere;
  font-size: 10pt;
  font-family: var(--PostTypeface);
  display: flex;
}

:scope section.results section.nextPreviousLinks {
  align-items: baseline;
  gap: 1.25em;
  display: flex;
}

:scope section.results section.searchingFor {
  margin-bottom: 1.25em;
  font-weight: normal;
}

:scope section.results section.searchingFor span.searchType {
  text-transform: lowercase;
}

:scope section.results h3 {
  margin-top: 2em;
}

@keyframes messageSearchLogoSpin {
  from {
    transform: rotate(0);
  }

  to {
    transform: rotate(360deg);
  }
}

section.timeline {
  margin-top: 2em;
}

section.timelineControls {
  min-height: 2rem;
  margin-top: 1rem;
}

section.timelineControls label.timelineControl {
  cursor: pointer;
  align-items: center;
  gap: .5rem;
  font-weight: 300;
  display: inline-flex;
}

section.threadActivity {
  justify-content: center;
  align-items: center;
  width: 100%;
  height: 300px;
  display: flex;
}

section.threadActivity p {
  font-family: var(--TableTypeface);
}

h3.threadActivityCaption {
  text-transform: uppercase;
  font-size: calc(var(--baseSize) * 1.1);
  letter-spacing: .03em;
  margin-left: 1.5em;
}

section.topPosters {
  flex-direction: column;
  justify-content: center;
  align-items: center;
  min-height: 700px;
  margin-top: 3em;
  display: flex;
}

section.topPosters span {
  margin-bottom: 1.25em;
}

section.topPosters:empty {
  height: 0;
  margin-top: 0;
}

table.bookmarks td {
  vertical-align: middle;
}

table.bookmarks a.deleteButton {
  background-image: url("/images/icons/delete2.svg");
  background-position: center;
  background-repeat: no-repeat;
  background-size: contain;
  place-self: center;
  width: 18px;
  height: 18px;
  display: inline-flex;
}

.dt-container {
  font-family: var(--uiTextTypeface);
}

table#bookmarksTable {
  margin-top: 1.5em;
}

table#bookmarksTable div.dt-column-header {
  text-align: left;
}

div.dt-length {
  align-items: center;
  gap: .625em;
  display: flex;
}

div.dt-column-header:hover {
  cursor: pointer;
}

div.dt-search {
  background-color: var(--surface-control);
  color: var(--text-primary);
  border-radius: 8px;
  margin-bottom: 1.25em;
  padding: .625em;
}

div.dt-search label + input, div.dt-search label {
  margin-left: 1.25em;
}

div.dt-search input[type="search"] {
  background-color: var(--surface-raised);
  border-radius: 8px;
  padding: .3125em;
}

@starting-style {
  section.bookmarksList:popover-open {
    opacity: 0;
    transform: scale(.95);
  }
}

div.dt-layout-row {
  margin-top: .625em;
}

@keyframes menuBounce {
  0% {
    opacity: 0;
    transform: scale(.95);
  }

  60% {
    opacity: 1;
    transform: scale(1.05);
  }

  100% {
    transform: scale(1);
  }
}

.menuBounce {
  animation: .25s ease-out menuBounce;
}

@keyframes menuDismiss {
  0% {
    opacity: 0;
    transform: scale(1);
  }

  60% {
    opacity: 1;
    transform: scale(.4);
  }

  100% {
    transform: scale(0);
  }
}

.menuDismiss {
  animation: .1s ease-out forwards menuDismiss;
}

.radio-colossus {
  color: var(--text-primary);
  background-color: var(--surface-muted);
  box-sizing: border-box;
  box-shadow: 0 0 0px 1px var(--shadow-subtle);
  letter-spacing: .02em;
  border-radius: .6125em;
  flex-wrap: wrap;
  padding: .3125em;
  font-size: 14px;
  font-weight: 500;
  display: flex;
  position: relative;
}

.radio-colossus label {
  text-align: center;
  flex: auto;
  width: 6em;
}

.radio-colossus label input {
  display: none;
}

.radio-colossus label .name {
  cursor: pointer;
  color: var(--text-muted);
  border: none;
  border-radius: .5rem;
  justify-content: center;
  align-items: center;
  min-height: 4em;
  padding: .5rem 0;
  transition: all .25s ease-in-out;
  display: flex;
}

.radio-colossus span {
  height: 100%;
}

.radio-colossus label input:checked + .name {
  background-color: var(--surface-radio);
  color: var(--text-primary);
  font-weight: 600;
}

section.displayChartOptions, section.displayModeOptions {
  background-color: var(--surface-ui-panel);
  color: var(--text-primary);
  border-radius: 6px;
  flex-direction: column;
  gap: 1.25em;
  margin-bottom: 1.25em;
  padding: 1.875em;
  display: flex;
}

:is(section.displayChartOptions, section.displayModeOptions) div.header + * {
  margin-top: 1.25em;
}

:is(section.displayChartOptions, section.displayModeOptions) h4 {
  margin-bottom: .625em;
}

:is(section.displayChartOptions, section.displayModeOptions) div.explanation {
  margin-top: 1.25em;
  margin-bottom: 2.5em;
}

:is(section.displayChartOptions, section.displayModeOptions) div.explanation strong {
  font-weight: 500;
}

:is(section.displayChartOptions, section.displayModeOptions) p {
  font-variant-numeric: normal;
  text-align: left;
}

:is(section.displayChartOptions, section.displayModeOptions) section.pollChartType, :is(section.displayChartOptions, section.displayModeOptions) section.displayModeType {
  flex-wrap: wrap;
  align-items: center;
  gap: 2em 1.5em;
  display: flex;
}

:is(:is(section.displayChartOptions, section.displayModeOptions) section.pollChartType, :is(section.displayChartOptions, section.displayModeOptions) section.displayModeType) label {
  text-align: center;
  flex-direction: column;
  align-items: center;
  gap: 1.25em;
  line-height: 1.25;
  display: flex;
}

:is(:is(section.displayChartOptions, section.displayModeOptions) section.pollChartType, :is(section.displayChartOptions, section.displayModeOptions) section.displayModeType) label span {
  font-family: var(--uiTextTypeface);
  font-weight: 500;
  display: inline-block;
}

:is(:is(section.displayChartOptions, section.displayModeOptions) section.pollChartType, :is(section.displayChartOptions, section.displayModeOptions) section.displayModeType) .radio-hidden {
  display: none;
}

:is(:is(section.displayChartOptions, section.displayModeOptions) section.pollChartType, :is(section.displayChartOptions, section.displayModeOptions) section.displayModeType) .radio-img {
  cursor: pointer;
  background-size: cover;
  border-radius: .625em;
  width: 80px;
  height: 80px;
  padding: .625em 1.25em;
  display: inline-block;
}

:is(:is(section.displayChartOptions, section.displayModeOptions) section.pollChartType, :is(section.displayChartOptions, section.displayModeOptions) section.displayModeType) .radio-hidden:checked + .radio-img {
  background-color: var(--surface-selected);
}

:is(:is(section.displayChartOptions, section.displayModeOptions) section.pollChartType, :is(section.displayChartOptions, section.displayModeOptions) section.displayModeType) .radio-img:hover {
  background-color: var(--surface-selected);
  transition: all .25s;
}

:is(:is(section.displayChartOptions, section.displayModeOptions) section.pollChartType, :is(section.displayChartOptions, section.displayModeOptions) section.displayModeType) input[type="radio"]:checked + label .radio-img {
  outline: 3px solid var(--outline-strong);
  outline-style: dotted;
}

.toastify {
  cursor: pointer;
  background: var(--surface-ui-panel);
  max-width: 40vw;
  color: var(--text-primary);
  font-family: var(--uiTextTypeface);
  box-shadow: 2px 2px 16px var(--shadow-dialog);
  outline: 4px solid var(--outline-inverse);
  opacity: .95;
  z-index: 9999;
  overflow-wrap: anywhere;
  border-radius: 6px;
  align-items: center;
  padding: 1.5em 1.25em;
  font-size: 1rem;
  line-height: 1.5em;
  display: flex;
  position: fixed;
  left: 2em;
}

.toastify div.notification {
  flex-direction: column;
  justify-content: center;
  align-items: center;
  gap: .625em;
  min-width: 10em;
  display: flex;
}

.toastify div.notification.horizontal {
  display: block;
}

.toastify div.notification div.username {
  font-weight: 500;
}

.toastify div.notification span.icon {
  background-size: 72px 72px;
  width: 72px;
  height: 72px;
}

.toastify div.notification a {
  hanging-punctuation: initial;
  word-break: break-word;
}

@media (width <= 550px) {
  .toastify {
    max-width: calc(100vw - 2rem);
    left: 1rem;
  }

  .toastify div.notification {
    min-width: 0;
  }
}

@keyframes fadeOut {
  from {
    opacity: 1;
  }

  to {
    opacity: 0;
  }
}

.toastify.toastify-fadeout {
  animation: .5s forwards fadeOut;
}

body.favouritesPage table img {
  position: relative;
  top: 2px;
}

body.bookmarksPage div + h2 {
  margin-top: 1.5em;
}

body.bookmarksPage h2 {
  margin-bottom: .625em;
}

body.bookmarksPage span.instructions {
  margin-bottom: 1.25em;
  font-size: 14pt;
  display: inline-flex;
}

body.bookmarksPage table {
  word-break: break-word;
  font-size: 13pt;
}

body.bookmarksPage table th:first-child, body.bookmarksPage table td:first-child {
  text-align: center;
  width: 3%;
}

:is(body.bookmarksPage table th:first-child, body.bookmarksPage table td:first-child) img {
  position: relative;
  top: 2px;
}

body.bookmarksPage table th:nth-child(2), body.bookmarksPage table td:nth-child(2) {
  text-align: left;
  width: 50%;
}

body.bookmarksPage table th:nth-child(3), body.bookmarksPage table td:nth-child(3) {
  text-align: left;
  width: 20%;
}

body.bookmarksPage table th:nth-child(4), body.bookmarksPage table td:nth-child(4) {
  text-align: left;
  width: 15%;
}

body.bookmarksPage table th:nth-child(5), body.bookmarksPage table td:nth-child(4) {
  text-align: left;
  width: 10%;
}

body.bookmarksPage section.updateAllBookmarksSection {
  align-items: center;
  gap: 1.25em;
  margin-bottom: 1.5em;
  display: flex;
}

.tab-wrap {
  font-family: var(--uiTextTypeface);
  background-color: var(--tabDialogActiveBackgroundColour);
  border-radius: var(--borderRadius);
  flex-wrap: wrap;
  max-width: 100%;
  margin-top: 2.5em;
  list-style: none;
  transition: box-shadow .3s;
  display: flex;
  position: relative;
  overflow: hidden;
}

.tab-wrap h1, .tab-wrap h2, .tab-wrap h3, .tab-wrap h4 {
  font-family: var(--uiHeadingTypeface);
}

.tab {
  display: none;
}

.tab:checked:first-of-type ~ .tab__content:first-of-type, .tab:checked:nth-of-type(2) ~ .tab__content:nth-of-type(2), .tab:checked:nth-of-type(3) ~ .tab__content:nth-of-type(3), .tab:checked:nth-of-type(4) ~ .tab__content:nth-of-type(4), .tab:checked:nth-of-type(5) ~ .tab__content:nth-of-type(5) {
  opacity: 1;
  z-index: 100;
  text-shadow: 0 0;
  transition: opacity .5s ease-in, transform .8s;
  position: relative;
  top: 0;
  transform: translateY(0);
}

.tab:first-of-type:not(:last-of-type) + label {
  border-top-right-radius: 0;
  border-bottom-right-radius: 0;
}

.tab:not(:first-of-type):not(:last-of-type) + label {
  border-radius: 0;
}

.tab:last-of-type:not(:first-of-type) + label {
  border-top-left-radius: 0;
  border-bottom-left-radius: 0;
}

.tab:checked + label {
  background-color: var(--tabDialogActiveBackgroundColour);
  cursor: default;
  border-bottom: 0;
  font-weight: 500;
}

.tab + label {
  cursor: pointer;
  text-align: center;
  background-color: var(--tabDialogInactiveBackgroundColour);
  color: var(--text-primary);
  -webkit-user-select: none;
  -moz-user-select: none;
  -ms-user-select: none;
  user-select: none;
  text-align: center;
  box-sizing: border-box;
  flex-grow: 3;
  height: 50px;
  padding: 15px;
  text-decoration: none;
  transition: background-color .3s, box-shadow .3s;
  display: block;
}

.tab + label:hover {
  background-color: var(--tabDialogHoverBackgroundColour);
}

.tab + label:focus-visible {
  outline: 3px solid var(--outline-strong);
  outline-offset: -3px;
}

.tab__content {
  z-index: -1;
  opacity: 0;
  background-color: #0000;
  border-top: 0;
  width: 100%;
  padding: 2em;
  position: absolute;
  left: 0;
  transform: translateY(-3px);
}

body div.tooltip {
  background-color: var(--tooltip-background);
  border: var(--tooltip-border);
  color: var(--text-primary);
  font-family: var(--uiTextTypeface);
  min-width: 15ch;
  max-width: 25vw;
  box-shadow: 1px 1px 3px 0px var(--shadow-soft);
  border-radius: 1.25em;
  padding: 1.25em;
}

body div.tooltip h1 {
  font-family: var(--uiTextTypeface);
  text-transform: none;
  letter-spacing: 0;
  border-bottom: 1px solid var(--border-strong);
  width: 100%;
  margin-bottom: .625em;
  padding-bottom: .3125em;
  font-size: 12pt;
  font-weight: 500;
}

body div.tooltip em {
  font-style: italic;
}

body div.tooltip p {
  letter-spacing: 0;
  font-size: 12pt;
  font-weight: normal;
  line-height: 1.5em;
  font-family: var(--uiTextTypeface);
  text-align: left;
  box-shadow: unset;
  margin: 0;
  padding: 0;
}

body div.tooltip p + p {
  margin-top: .625em;
}

section.threadMetadata {
  justify-self: flex-start;
  width: 100%;
  display: flex;
}

section.threadMetadata table {
  width: min(33em, 100%);
  font-family: var(--uiTextTypeface);
  border: 0;
}

section.threadMetadata table tbody {
  border: 0;
}

section.threadMetadata table tbody tr td:first-child {
  text-align: right;
}

@media (width <= 1610px) {
  nav.mainMenu div.breadcrumbLinks {
    display: none;
  }
}

@media (width <= 1500px) {
  header, main {
    padding-left: 15%;
    padding-right: 15%;
  }

  footer {
    margin-left: 15%;
    margin-right: 15%;
  }
}

@media (width <= 1400px) {
  header, main {
    padding-left: 10%;
    padding-right: 10%;
  }

  footer {
    margin-left: 10%;
    margin-right: 10%;
  }
}

@media (width <= 1100px) {
  header, main {
    padding-left: 5%;
    padding-right: 5%;
  }

  footer {
    margin-left: 5%;
    margin-right: 5%;
  }

  div.breadcrumbs span {
    display: none;
  }
}

@media (width <= 900px) {
  section.bookmarkButtons {
    grid-template-columns: minmax(0, 1fr);
  }

  section.bookmarkButtons > div:empty, :scope section.posting > div {
    display: none;
  }

  :scope section.posting {
    grid-template-columns: 1fr;
  }
}

@media (width <= 700px) {
  header nav div div.menuItem.activeUsers {
    display: none;
  }

  :is(header nav div div.menuItem a, header nav div div.menuItem button) span {
    display: none;
  }

  table.boards {
    table-layout: auto;
    width: 100%;
  }

  table.boards colgroup col:nth-child(3), table.boards colgroup col:nth-child(4) {
    display: none;
  }

  table.boards thead th:nth-child(3), table.boards tbody td:nth-child(3), table.boards thead th:nth-child(4), table.boards tbody td:nth-child(4) {
    display: none;
  }
}

:is(div.mutedUsers, div.mutedThreads) div.mutedUser, :is(div.mutedUsers, div.mutedThreads) div.mutedThread {
  grid-template-columns: 22em max-content;
  align-items: center;
  gap: 1.25em;
  display: grid;
}

:is(:is(div.mutedUsers, div.mutedThreads) div.mutedUser, :is(div.mutedUsers, div.mutedThreads) div.mutedThread) span.username, :is(:is(div.mutedUsers, div.mutedThreads) div.mutedUser, :is(div.mutedUsers, div.mutedThreads) div.mutedThread) span.boardAndThread {
  font-size: 14pt;
}

img.headingIcon {
  width: 96px;
  height: 96px;
}

body.infoPage section#requestsPerMinute, body.infoPage section#threadsOverTime {
  width: 100%;
  height: 400px;
}

body.infoPage section#requestsPerMinute {
  width: 100%;
  height: 150px;
}

body.infoPage section#threadsOverTime {
  height: 200px;
}

body.infoPage section.serverUptime em {
  color: var(--surface-icon-inverse);
  font-style: normal;
}

body.infoPage section.explore {
  grid-template-columns: repeat(auto-fit, minmax(15em, 1fr));
  justify-content: flex-start;
  align-items: stretch;
  gap: 1.25em;
  display: grid;
}

body.infoPage section.explore section + section {
  margin-top: 0;
}

body.infoPage section.explore section.panel, body.infoPage section.explore section.genericCard {
  background-color: var(--surface-icon-panel);
  color: var(--text-primary);
  border-radius: var(--borderRadius);
  font-size: var(--baseSize);
  font-family: var(--uiTextTypeface);
  flex-direction: column;
  justify-content: center;
  align-items: center;
  gap: 1.25em;
  padding: 1.25em;
  display: flex;
}

:is(body.infoPage section.explore section.panel, body.infoPage section.explore section.genericCard) a {
  font-size: var(--baseSize);
  font-family: var(--uiTextTypeface);
  flex-direction: column;
  justify-content: center;
  align-items: center;
  gap: 1.25em;
  display: flex;
}

:is(body.infoPage section.explore section.panel, body.infoPage section.explore section.genericCard) img.headingIcon {
  height: 72px;
  min-height: 72px;
  display: flex;
}

:is(body.infoPage section.explore section.panel, body.infoPage section.explore section.genericCard) span {
  text-align: center;
}

:is(body.infoPage section.explore section.panel, body.infoPage section.explore section.genericCard):hover {
  background-color: var(--surface-icon-panel-hover);
  transition: all .3s;
}

:is(body.infoPage section.explore section.panel, body.infoPage section.explore section.genericCard).highlight {
  background-color: var(--colour4);
}

body.infoPage section.explore section.panel.requestsPerMinute {
  font-family: var(--uiTextTypeface);
  grid-column: span 2;
  gap: 0;
}

body.infoPage section.explore section.panel.threadsOverTime {
  grid-column: span 2;
  gap: 0;
}

@media (width <= 1100px) {
  body.infoPage section.explore section.panel {
    grid-column: span 2;
  }
}

.pollResultsTable + .pollSection {
  margin-top: 0;
}

div.pollSection {
  background-color: var(--surface-section);
  border-radius: 10px;
  flex-direction: column;
  gap: .625em;
  width: 66.4%;
  margin: 0 auto;
  padding: 1.25em 1.25em .625em;
  display: flex;
}

div.pollSection h2 {
  font-family: var(--uiTextTypeface);
}

div.pollSection h1 + *, div.pollSection h2 + *, div.pollSection h3 + *, div.pollSection h4 + * {
  margin-top: 0;
}

div.pollSection div.pollOptions {
  background-color: var(--colour2Light);
  height: fit-content;
  font-size: var(--baseSize);
  font-family: var(--TableTypeface);
  border-radius: 10px;
  grid-template-columns: auto auto;
  justify-content: center;
  align-items: center;
  gap: 1em 1.5em;
  padding: 1.5em;
  display: grid;
}

div.pollSection div.pollOptions span.youVotedFor {
  color: var(--colour2);
  font-weight: 500;
}

div.pollSection div.pollOptions label {
  text-align: left;
}

div.pollSection div#buttonContainer {
  justify-content: flex-end;
  display: flex;
}

div.pollSection div#buttonContainer button.colossus {
  background-color: var(--surface-raised);
  width: fit-content;
}

@media (width <= 1200px) {
  div.pollSection {
    width: 100%;
  }
}

body.settingsPage div.checkboxContainer {
  align-items: center;
  gap: .625em;
  display: flex;
}

body.settingsPage #alwaysShowPostNameAndDateCheckbox {
  justify-self: flex-start;
}

body.settingsPage div.option.horizontal > span.characterLimit {
  width: min(100%, 20em);
}

body.settingsPage div.option.horizontal > span.characterLimit input {
  width: 100%;
}

body.settingsPage div.boardShortcutList, body.settingsPage div.boardHighlightList {
  background-color: var(--surface-input);
  border-radius: var(--borderRadius);
  max-height: 15em;
  padding: .625em;
  overflow-y: scroll;
}

body.settingsPage section.options section.displayOptions div.boardHighlightList label {
  text-align: left;
  justify-content: space-between;
  align-items: center;
  gap: .625em;
  display: flex;
}

body.settingsPage div.boardListActions {
  display: flex-column;
  justify-content: flex-end;
  margin-top: .625em;
}

body.settingsPage div.boardHighlightLegend div.legendTitle {
  font-weight: 500;
}

body.settingsPage div.boardHighlightLegend div.legendItems {
  font-size: calc(var(--baseSize) * .9);
  flex-wrap: wrap;
  gap: .625em 1.25em;
  margin-top: .3125em;
  display: flex;
}

body.settingsPage div.boardHighlightLegend div.legendItems > div {
  align-items: center;
  gap: .3125em;
  display: flex;
}

body.settingsPage div.boardHighlightLegend span.boardHighlightSwatch {
  border: 1px solid var(--lighterLineColour);
  border-radius: 4px;
  width: 1.25em;
  height: 1.25em;
}

body.settingsPage div.boardHighlightLegend span.boardHighlightSwatch.boardHighlightColour1 {
  background-color: var(--colour1);
}

body.settingsPage div.boardHighlightLegend span.boardHighlightSwatch.boardHighlightColour2 {
  background-color: var(--colour2);
}

body.settingsPage div.boardHighlightLegend span.boardHighlightSwatch.boardHighlightColour3 {
  background-color: var(--colour6);
}

body.settingsPage div.boardHighlightLegend span.boardHighlightSwatch.boardHighlightColour4 {
  background-color: var(--colour4);
}

body.settingsPage div.selectContainer {
  align-items: center;
  gap: .625em;
  display: flex;
}

body.settingsPage #generatePasswordButton {
  visibility: hidden;
}

body.settingsPage div.nicknameButtons {
  flex-wrap: wrap;
  gap: .625em;
  display: flex;
}

body.settingsPage div.nicknameButtons button {
  margin-top: 0;
  margin-bottom: 0;
  margin-right: 0;
}

body.settingsPage {
  font-variant-numeric: normal;
}

body.settingsPage p, body.settingsPage li {
  font-variant-numeric: normal;
  font-size: var(--baseSize);
  text-align: left;
}

body.settingsPage label.chicagoCapitalisation + p {
  margin-top: .625em;
}

body.settingsPage input[type="checkbox"] {
  margin-right: 1.25em;
}

body.settingsPage section.boardDisplay {
  font-family: var(--TableTypeface);
}

body.settingsPage section.boardDisplay section.choice {
  flex-direction: column;
  justify-content: center;
  gap: 1.25em;
  display: flex;
}

body.settingsPage section.boardDisplay section.choice label {
  align-items: center;
  gap: 1.25em;
  display: flex;
}

body.settingsPage section.boardDisplay section.boards {
  display: none;
}

body.settingsPage section.keyboardShortcuts label + p {
  margin-top: 1.25em;
}

body.settingsPage section.keyboardShortcuts ul {
  font-family: var(--TableTypeface);
  font-size: 12pt;
}

@keyframes bounceInDialog {
  0% {
    opacity: 0;
    transform: scale(.8);
  }

  50% {
    opacity: 1;
    transform: scale(1.05);
  }

  70% {
    transform: scale(.95);
  }

  100% {
    transform: scale(1);
  }
}

user-selector, board-selector {
  display: block;
}

:is(user-selector, board-selector) .userSelector {
  width: 100%;
  position: relative;
}

:is(user-selector, board-selector) .userSelector input[type="search"] {
  font-family: var(--uiTextTypeface);
  font-size: var(--baseSize);
  background-color: var(--surface-input-muted);
  box-shadow: none;
  box-sizing: border-box;
  border: none;
  width: 100%;
  padding: .625em;
}

.userSelectorOptions {
  font-family: var(--TableTypeface);
  z-index: 1000;
  background-color: var(--surface-raised);
  border: 1px solid var(--lighterLineColour);
  max-height: min(14rem, 35vh);
  box-shadow: 0 .4em 1em var(--shadow-soft);
  margin: 0;
  padding: 0;
  list-style: none;
  display: none;
  position: absolute;
  inset: calc(100% + .2em) 0 auto;
  overflow-y: auto;
}

.userSelectorOptions.open {
  display: block;
}

.userSelectorOptions li {
  font-family: var(--uiTextTypeface);
  cursor: pointer;
  text-align: left;
  margin: 0;
  padding: .45em .6em;
}

.userSelectorOptions li.highlighted {
  background-color: var(--colour3);
}

.userSelectorOptions li.empty {
  color: var(--lightLineColour);
  cursor: default;
}

dialog#resetPasswordDialog {
  width: min(90vw, 34rem);
  max-width: 90vw;
  overflow: visible;
}

dialog#resetPasswordDialog form {
  width: 100%;
  overflow: visible;
}

dialog#resetPasswordDialog section.content {
  align-items: center;
  gap: 1.25em;
  width: 100%;
  display: flex;
  overflow: visible;
}

dialog#resetPasswordDialog input#newPassword {
  box-sizing: border-box;
  width: 100%;
}

dialog#resetPasswordDialog menu {
  width: 100%;
}

user-selector, board-selector {
  flex: 16rem;
  min-width: 0;
}

dialog {
  border-radius: var(--borderRadius);
  background-color: var(--surface-page);
  color: var(--text-primary);
  box-shadow: 0 4px 12px var(--shadow-strong);
  box-sizing: border-box;
  max-width: calc(100vw - 2rem);
  max-height: calc(100vh - 2rem);
  font-size: var(--baseSize);
  font-family: var(--uiTextTypeface);
  border: none;
  min-width: 20%;
  margin: auto;
  padding: 1.875em;
  animation: .4s ease-in bounceInDialog;
  display: block;
}

dialog section + section {
  margin-top: 0;
}

dialog input[type="text"], dialog input[type="search"] {
  border-radius: 8px;
}

dialog input:is([type="text"], [type="search"], [type="email"], [type="password"], [type="number"], [type="url"]):focus {
  outline: 1px solid var(--lighterLineColour);
}

dialog.htmlContent {
  width: 80%;
  max-width: 80%;
  padding: 2em;
  overflow-y: hidden;
}

dialog.htmlContent form, dialog.htmlContent section.form {
  overflow-y: visible;
}

:is(dialog.htmlContent form, dialog.htmlContent section.form) section.heading h1 {
  letter-spacing: -.01em;
  font-size: 22pt;
}

:is(dialog.htmlContent form, dialog.htmlContent section.form) section.content {
  overflow-y: auto;
}

dialog p {
  text-align: left;
}

dialog.viewEditHistory {
  width: fit-content;
  padding-right: 2.5em;
}

dialog.viewEditHistory section.editHistory {
  height: max-content;
  max-height: 70vh;
  overflow-y: auto;
}

dialog.viewEditHistory section.editHistory div.editEntry + div.editEntry {
  margin-top: 1.25em;
}

dialog.viewEditHistory section.editHistory div.editEntry {
  background-color: var(--surface-subtle);
  align-items: center;
  gap: 1.25em;
  width: 66ch;
  padding: 1.25em;
  display: flex;
}

dialog.viewEditHistory section.editHistory div.editEntry pre {
  max-width: 64ch;
  overflow-x: auto;
}

dialog.viewEditHistory section.editHistory div.editEntry div.index {
  font-weight: 500;
}

dialog.viewEditHistory section.editHistory div.editEntry div.dateTime {
  color: var(--colour2);
  font-size: 12pt;
}

dialog.viewEditHistory section.editHistory div.editEntry div.message {
  border-radius: 6px;
  margin-bottom: .625em;
}

dialog.editorModalDialog section#dialogPostEditor {
  width: 66ch;
  max-height: 60vh;
  overflow-y: auto;
}

dialog.editorModalDialog section#dialogPostEditor p {
  font-family: var(--PostTypeface);
}

dialog.editorModalDialog section.adminLogReason {
  font-family: var(--TableTypeface);
  font-size: var(--baseSize);
  margin-top: 1.25em;
}

dialog.editorModalDialog section.adminLogReason p {
  margin-bottom: 1.25em;
}

dialog.editorModalDialog section.adminLogReason label {
  align-items: center;
  display: flex;
}

dialog.editorModalDialog section.adminLogReason label input {
  background-color: var(--surface-input-muted);
  border-radius: 6px;
  flex: 1;
  margin-left: .625em;
}

dialog.editorModalDialog span.timeRemaining {
  font-family: var(--uiTextTypeface);
  font-size: 12pt;
}

dialog#textInputOkCancelDialog {
  width: min(90vw, 45rem);
  max-width: 90vw;
}

dialog#textInputOkCancelDialog form {
  align-items: stretch;
  width: 100%;
}

dialog#textInputOkCancelDialog section.heading section.title {
  justify-content: flex-start;
  align-items: center;
  gap: .625em;
  display: flex;
}

dialog#textInputOkCancelDialog section.heading section.title p.explanation {
  margin-left: 1.25em;
}

dialog#textInputOkCancelDialog section.heading textarea {
  height: 10em;
}

dialog#textInputOkCancelDialog section.heading {
  flex-direction: column;
  align-items: flex-start;
  gap: 1.25em;
  width: 100%;
  display: flex;
}

dialog#textInputOkCancelDialog section.heading img {
  grid-area: 1 / 1 / span 2;
}

dialog#textInputOkCancelDialog section.heading p, dialog#textInputOkCancelDialog section.heading h2 {
  grid-column: 2;
  width: 100%;
  margin: 0;
}

dialog#textInputOkCancelDialog menu {
  width: 100%;
}

dialog#insertLinkDialog {
  width: min(90vw, 42rem);
  max-width: 90vw;
}

dialog#insertLinkDialog form {
  align-items: stretch;
  width: 100%;
}

dialog#insertLinkDialog section.heading {
  align-items: flex-start;
}

dialog#insertLinkDialog section.heading section.content {
  gap: .35em;
  margin-bottom: 0;
}

dialog#insertLinkDialog section.content {
  flex-direction: column;
  gap: .85em;
}

dialog#insertLinkDialog section.textInputSection {
  grid-template-columns: 5em minmax(0, 1fr);
  align-items: center;
  gap: .625em;
  display: grid;
}

dialog#insertLinkDialog section.textInputSection label {
  white-space: nowrap;
}

dialog#insertLinkDialog section.textInputSection input {
  border: 1px solid var(--lighterLineColour);
  background-color: var(--surface-input);
  width: 100%;
  min-width: 0;
  font-family: var(--TableTypeface);
  font-size: var(--baseSize);
  box-sizing: border-box;
  border-radius: 6px;
  padding: .45em .6em;
}

dialog#insertLinkDialog menu {
  width: 100%;
}

dialog#insertMovieDialog {
  width: min(90vw, 42rem);
  max-width: 90vw;
}

dialog#insertMovieDialog section.form {
  align-items: stretch;
  width: 100%;
}

dialog#insertMovieDialog section.heading {
  align-items: flex-start;
}

dialog#insertMovieDialog section.heading section.content {
  gap: .35em;
  margin-bottom: 0;
}

dialog#insertMovieDialog section.content {
  flex-direction: column;
  gap: .85em;
}

dialog#insertMovieDialog section.textInputSection {
  grid-template-columns: 5em minmax(0, 1fr);
  align-items: center;
  gap: .625em;
  display: grid;
}

dialog#insertMovieDialog section.textInputSection label {
  white-space: nowrap;
}

dialog#insertMovieDialog section.textInputSection input {
  border: 1px solid var(--lighterLineColour);
  background-color: var(--surface-input);
  width: 100%;
  min-width: 0;
  font-family: var(--TableTypeface);
  font-size: var(--baseSize);
  box-sizing: border-box;
  border-radius: 6px;
  padding: .45em .6em;
}

dialog#insertMovieDialog p.movieSearchStatus {
  min-height: 1.25em;
  color: var(--colour2);
}

dialog#insertMovieDialog div.movieSearchResults {
  border: 1px solid var(--lighterLineColour);
  box-sizing: border-box;
  flex-direction: column;
  gap: .625em;
  height: 22rem;
  padding: .625em;
  display: flex;
  overflow-y: auto;
}

dialog#insertMovieDialog button.movieSearchResult {
  border: 1px solid var(--lighterLineColour);
  background: var(--surface-subtle);
  text-align: left;
  cursor: pointer;
  border-radius: 8px;
  flex-direction: column;
  align-items: flex-start;
  gap: .2em;
  width: 100%;
  padding: .625em .9em;
  display: flex;
}

dialog#insertMovieDialog button.movieSearchResult:hover, dialog#insertMovieDialog button.movieSearchResult:focus-visible {
  border-color: var(--colour2);
  background: var(--surface-raised);
  outline: none;
}

dialog#insertMovieDialog button.movieSearchResult span.movieSearchResultTitle {
  font-family: var(--uiTextTypeface);
  font-size: calc(var(--baseSize) * 1.05);
  font-weight: 500;
}

dialog#insertMovieDialog button.movieSearchResult span.movieSearchResultMeta {
  font-family: var(--TableTypeface);
  font-size: calc(var(--baseSize) * .9);
  color: var(--colour2);
}

dialog#insertMovieDialog menu {
  width: 100%;
}

dialog textarea.dialogInputText {
  resize: none;
  width: 100%;
  max-width: 100%;
  height: 6em;
  font-family: var(--TableTypeface);
  font-size: var(--baseSize);
  background-color: var(--surface-muted);
  box-sizing: border-box;
  border: none;
  border-radius: 6px;
  grid-column: 2;
  padding: .625em;
}

dialog input.threadTitleInput {
  box-sizing: border-box;
  grid-column: 2;
  width: 100%;
  max-width: 100%;
}

dialog button.colossus {
  margin: 0;
}

dialog form:not(.postBodyDialog), dialog section.form {
  box-sizing: border-box;
  flex-direction: column;
  gap: 1.25em;
  max-height: calc(100vh - 5rem);
  display: flex;
}

:is(dialog form:not(.postBodyDialog), dialog section.form) p {
  margin: 0;
}

:is(dialog form:not(.postBodyDialog), dialog section.form) p + p {
  margin-top: .625em;
}

:is(dialog form:not(.postBodyDialog), dialog section.form) select {
  width: 12em;
  margin-left: .625em;
  padding: .3125em;
  font-size: 12pt;
}

:is(dialog form:not(.postBodyDialog), dialog section.form) span.boardName {
  color: var(--colour2);
  font-weight: 500;
}

:is(dialog form:not(.postBodyDialog), dialog section.form) section.heading {
  flex-direction: row;
  align-items: center;
  gap: 1.25em;
  display: flex;
}

:is(dialog form:not(.postBodyDialog), dialog section.form) section.heading section.content {
  flex-direction: column;
  gap: 1.25em;
  margin-bottom: 2em;
  display: flex;
}

:is(dialog form:not(.postBodyDialog), dialog section.form) section.heading img {
  width: 60px;
  height: 60px;
}

:is(dialog form:not(.postBodyDialog), dialog section.form) section.heading h1 {
  font-size: 18pt;
}

:is(dialog form:not(.postBodyDialog), dialog section.form) section.heading p {
  font-family: var(--uiTextTypeface);
  font-size: var(--baseSize);
}

:is(dialog form:not(.postBodyDialog), dialog section.form) section.heading div.message p {
  font-family: var(--PostTypeface);
}

:is(dialog form:not(.postBodyDialog), dialog section.form) section.heading + section.content {
  margin-top: 0;
}

:is(dialog form:not(.postBodyDialog), dialog section.form) section.content {
  display: flex;
}

:is(dialog form:not(.postBodyDialog), dialog section.form) section.textInputSection {
  align-items: baseline;
  gap: 1.25em;
  display: flex;
}

:is(dialog form:not(.postBodyDialog), dialog section.form) section.textInputSection label {
  white-space: nowrap;
  text-align: left;
  font-weight: 400;
  font-size: var(--baseSize);
  font-family: var(--uiTextTypeface);
  font-weight: 400;
}

:is(dialog form:not(.postBodyDialog), dialog section.form) section.textInputSection input[type="url"] {
  font-variant-numeric: oldstyle-nums;
  font-family: var(--uiTextTypeface);
}

:is(dialog form:not(.postBodyDialog), dialog section.form) section.textInputSection input[type="url"].error {
  background-color: var(--status-error-input-background);
}

:is(dialog form:not(.postBodyDialog), dialog section.form) section.textInputSection input[type="url"] {
  background-color: var(--surface-input-muted);
  border-radius: var(--borderRadius);
  width: 100%;
}

:is(dialog form:not(.postBodyDialog), dialog section.form) button.colossus {
  width: 10em;
  margin-right: 0;
  display: inline-flex;
}

:is(dialog form:not(.postBodyDialog), dialog section.form) button.colossus + button.colossus {
  margin-left: .625em;
  margin-right: .625em;
}

:is(dialog form:not(.postBodyDialog), dialog section.form) menu {
  flex-direction: row-reverse;
  justify-content: flex-start;
  display: flex;
}

:is(dialog form:not(.postBodyDialog), dialog section.form) menu.center {
  flex-direction: row;
  justify-content: center;
}

dialog#createBoardDialog section.createBoardFields {
  grid-template-columns: 1fr 4fr;
  align-items: center;
  gap: .625em;
  display: grid;
}

dialog#createBoardDialog section.createBoardFields input {
  border-radius: 8px;
}

dialog#createBoardDialog section.createBoardFields input[type="checkbox"] {
  width: fit-content;
}

dialog#createBoardDialog section.createBoardFields select {
  margin: 0;
}

dialog#createBoardDialog section.createBoardFields label {
  text-align: right;
}

dialog section.addPrivateBoardMemberFields, dialog section.adminEmailUserFields, dialog section.createBoardAdminFields, dialog section.createSiteAdminFields, dialog section.editTrafficControlSettingFields {
  grid-template-columns: 2fr 5fr;
  align-items: center;
  gap: .625em;
  display: grid;
}

:is(dialog section.addPrivateBoardMemberFields, dialog section.adminEmailUserFields, dialog section.createBoardAdminFields, dialog section.createSiteAdminFields, dialog section.editTrafficControlSettingFields) p {
  max-width: 20em;
}

:is(dialog section.addPrivateBoardMemberFields, dialog section.adminEmailUserFields, dialog section.createBoardAdminFields, dialog section.createSiteAdminFields, dialog section.editTrafficControlSettingFields) input[type="number"], :is(dialog section.addPrivateBoardMemberFields, dialog section.adminEmailUserFields, dialog section.createBoardAdminFields, dialog section.createSiteAdminFields, dialog section.editTrafficControlSettingFields) input[type="search"], :is(dialog section.addPrivateBoardMemberFields, dialog section.adminEmailUserFields, dialog section.createBoardAdminFields, dialog section.createSiteAdminFields, dialog section.editTrafficControlSettingFields) input[type="text"], :is(dialog section.addPrivateBoardMemberFields, dialog section.adminEmailUserFields, dialog section.createBoardAdminFields, dialog section.createSiteAdminFields, dialog section.editTrafficControlSettingFields) textarea {
  border-radius: 8px;
  max-width: 20em;
}

:is(:is(dialog section.addPrivateBoardMemberFields, dialog section.adminEmailUserFields, dialog section.createBoardAdminFields, dialog section.createSiteAdminFields, dialog section.editTrafficControlSettingFields) input[type="number"], :is(dialog section.addPrivateBoardMemberFields, dialog section.adminEmailUserFields, dialog section.createBoardAdminFields, dialog section.createSiteAdminFields, dialog section.editTrafficControlSettingFields) input[type="search"], :is(dialog section.addPrivateBoardMemberFields, dialog section.adminEmailUserFields, dialog section.createBoardAdminFields, dialog section.createSiteAdminFields, dialog section.editTrafficControlSettingFields) input[type="text"], :is(dialog section.addPrivateBoardMemberFields, dialog section.adminEmailUserFields, dialog section.createBoardAdminFields, dialog section.createSiteAdminFields, dialog section.editTrafficControlSettingFields) textarea):focus {
  outline: 1px solid var(--lighterLineColour);
}

:is(dialog section.addPrivateBoardMemberFields, dialog section.adminEmailUserFields, dialog section.createBoardAdminFields, dialog section.createSiteAdminFields, dialog section.editTrafficControlSettingFields) textarea {
  min-height: 12em;
}

:is(dialog section.addPrivateBoardMemberFields, dialog section.adminEmailUserFields, dialog section.createBoardAdminFields, dialog section.createSiteAdminFields, dialog section.editTrafficControlSettingFields) label {
  text-align: right;
}

:is(dialog section.addPrivateBoardMemberFields, dialog section.adminEmailUserFields, dialog section.createBoardAdminFields, dialog section.createSiteAdminFields, dialog section.editTrafficControlSettingFields) select {
  width: fit-content;
  max-width: 20em;
  margin: 0;
}

dialog#adminEmailUserDialog {
  width: min(50em, 90%);
}

dialog#adminEmailUserDialog input, dialog#adminEmailUserDialog textarea {
  max-width: none;
}

dialog#adminEmailUserDialog textarea {
  font-family: var(--uiTextTypeface);
  font-size: var(--baseSize);
  padding: .625em;
}

@media (width <= 1000px) {
  dialog.htmlContent section.embeddingInfo {
    grid-template-columns: 1fr;
  }

  section.searchPage section.searchOptions {
    grid-template-columns: auto auto;
  }

  section.searchPage section.searchOptions label#pollsOnly {
    white-space: nowrap;
  }
}

@media (width <= 600px) {
  section.searchPage section.search {
    grid-template-columns: auto minmax(0, 1fr) auto;
  }

  section.searchPage section.search label {
    text-align: left;
    margin-right: 0;
  }

  section.searchPage section.search input[type="search"] {
    width: 100%;
    min-width: 0;
  }

  section.searchPage section.search button {
    width: fit-content;
  }

  section.searchPage section.search div.usernameSuggestions {
    grid-column: 2 / 4;
  }

  section.searchPage section.searchOptions {
    grid-template-columns: minmax(0, 1fr);
  }

  section.searchPage section.searchOptions div.option {
    text-align: left;
    justify-content: flex-start;
  }

  section.searchPage section.searchOptions div.usernameFilter {
    min-width: 0;
  }

  section.searchPage section.searchOptions div.usernameFilter input {
    min-width: 0;
  }

  section.searchPage section.searchOptions div.narrowSearch {
    flex-wrap: wrap;
    gap: .625em 2em;
  }
}

div.pollSection.ranking {
  background-color: var(--colour2Light);
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  grid-auto-rows: auto;
  gap: 1.25em;
  padding: 1.5em 2em;
  display: grid;
}

div.pollSection.ranking h1 {
  font-size: 18pt;
}

div.pollSection.ranking h2, div.pollSection.ranking div.tableHeading {
  font-family: var(--uiTextTypeface);
  text-align: center;
  font-size: 14pt;
  font-weight: 500;
}

div.pollSection.ranking div.rankingListWrapper {
  min-width: 0;
  font-family: var(--uiTextTypeface);
  background-color: var(--colour3);
  border-radius: 8px;
  flex-direction: column;
  padding: 1.25em;
  display: flex;
}

div.pollSection.ranking div.unrankedList, div.pollSection.ranking div.rankedList {
  background-color: var(--colour3);
  border-radius: 8px;
  flex-direction: column;
  gap: 4px;
  height: 100%;
  padding-bottom: 2em;
  font-weight: 500;
  display: flex;
}

div.pollSection.ranking div.rankingPollItem {
  -webkit-user-select: none;
  user-select: none;
  text-align: center;
  background-color: var(--colour2);
  color: var(--text-inverse);
  border-radius: 8px;
  justify-content: center;
  align-items: center;
  padding: .625em 1.25em;
  display: flex;
}

div.pollSection.ranking div.instructions {
  margin-bottom: .625em;
}

div.pollSection.ranking div.instructions p {
  font-family: var(--uiTextTypeface);
  text-align: left;
  text-wrap: pretty;
  font-size: 13pt;
  font-weight: 400;
}

div.pollSection.ranking :last-child, div.pollSection.ranking :first-child {
  grid-column: 1 / span 2;
}

.sortable-chosen {
  filter: drop-shadow(0 0 30px 10px #000000e6);
  opacity: .8;
}

.sortable-ghost {
  opacity: .5;
}

.sortable-drag {
  filter: drop-shadow(0 0 30px 10px #000000e6);
}

:is(body.newThreadPage, body.userPage) section.draftsForBoardContainer + section.draftsForBoardContainer {
  margin-top: 1.5em;
}

:is(body.newThreadPage, body.userPage) section.draftsContainer {
  margin-top: 3em;
}

:is(body.newThreadPage, body.userPage) section.draftsContainer p {
  font-family: var(--TableTypeface);
}

:is(body.newThreadPage, body.userPage) section.draftsContainer h2 {
  border-top: 1px dotted var(--lightLineColour);
  padding-top: 1.5em;
}

:is(body.newThreadPage, body.userPage) section.draftsContainer h2 + section {
  margin-top: 1.5em;
}

:is(body.newThreadPage, body.userPage) section.draftsContainer button {
  margin-bottom: .625em;
  display: inline-flex;
}

:is(body.newThreadPage, body.userPage) section.draftsContainer section.drafts table {
  width: auto;
}

:is(body.newThreadPage, body.userPage) section.draftsContainer section.drafts table, :is(body.newThreadPage, body.userPage) section.draftsContainer section.drafts table * {
  text-align: left;
  border: none;
  padding-top: 0;
  padding-bottom: 0;
}

:is(body.newThreadPage, body.userPage) section.draftsContainer section.drafts table th {
  border-bottom: 1px solid var(--border-strong);
  padding-bottom: .3125em;
}

:is(body.newThreadPage, body.userPage) section.draftsContainer section.drafts table tbody tr:first-child td {
  padding-top: .625em;
}

:is(body.newThreadPage, body.userPage) section.draftsContainer section.drafts table button {
  margin: 0 .3125em .3125em 0;
  padding-top: .625em;
  padding-bottom: .625em;
}

:is(body.newThreadPage, body.userPage) section.draftsContainer section.drafts table tr td:first-child {
  text-align: right;
}

:is(body.newThreadPage, body.userPage) section.draftsContainer section.drafts table tr th:first-child, :is(body.newThreadPage, body.userPage) section.draftsContainer section.drafts table tr td:last-child, :is(body.newThreadPage, body.userPage) section.draftsContainer section.drafts tr th:last-child {
  text-align: center;
}

body.userPage section.draftsContainer {
  margin-top: 1.5em;
}

body.userPage section.userInformation {
  grid-template-columns: fit-content(50ch) auto;
  gap: .625em 3em;
  display: grid;
}

body.userPage section.userInformation p {
  margin: 0;
}

body.userPage section + h2 {
  margin-top: 1.5em;
}

body.adminLogPage table {
  table-layout: fixed;
  word-break: break-word;
  overflow-wrap: anywhere;
  width: 100%;
  font-size: 12pt;
}

body.adminLogPage table em {
  font-style: normal;
  font-weight: 500;
}

body.adminLogPage table th {
  text-align: left;
}

body.adminLogPage table tr th:first-child {
  width: 5em;
}

body.adminLogPage table tr th:nth-child(2) {
  width: 8em;
}

:is(body.adminLogPage table tr td:nth-child(3), body.adminLogPage table tr td:nth-child(4)) p, :is(body.adminLogPage table tr td:nth-child(3), body.adminLogPage table tr td:nth-child(4)) blockquote, :is(body.adminLogPage table tr td:nth-child(3), body.adminLogPage table tr td:nth-child(4)) pre, :is(body.adminLogPage table tr td:nth-child(3), body.adminLogPage table tr td:nth-child(4)) li {
  font-size: 12pt;
}

button.dt-paging-button {
  cursor: pointer;
  background-color: #0000;
  border: none;
  border-radius: 2px;
  margin: .625em 2px 2px;
  padding: .625em;
  font-size: 12pt;
}

body.iplPage h2.subHeader {
  margin-bottom: 1.25em;
}

section.validatingForm > p {
  text-align: left;
  max-width: 66ch;
}

section.validatingForm div.details {
  font-family: var(--TableTypeface);
  font-size: var(--baseSize);
  color: var(--text-primary);
  grid-template-columns: max-content 20em minmax(0, 1fr);
  align-items: center;
  gap: .625em;
  max-width: 100%;
  margin-top: 1.5em;
  display: grid;
}

section.validatingForm div.details + div.details, section.validatingForm div.details + p {
  margin-top: 1.5em;
}

section.validatingForm div.details.fixedLabels {
  grid-template-columns: 10em 20em minmax(0, 1fr);
}

section.validatingForm div.details div.validationError {
  margin-left: .625em;
}

section.validatingForm div.details div.validationError span {
  color: var(--colour1);
  font-weight: 500;
}

section.validatingForm div.details label {
  text-align: right;
}

@media (width <= 800px) {
  section.validatingForm div.details {
    grid-template-columns: 66.3%;
    justify-content: center;
  }

  section.validatingForm div.details label {
    text-align: left;
  }

  section.validatingForm div.details div.validationError:not(:empty) {
    margin-bottom: .625em;
  }
}

section.validatingForm div.details input {
  border-radius: 6px;
}

section.validatingForm div.details input.invalidCharacters {
  background: #fdd;
}

section.validatingForm div.details div.buttonContainer {
  justify-content: flex-end;
  display: flex;
}

section.validatingForm div.details div.buttonContainer button {
  width: max-content;
  margin: 0;
}

section.validatingForm .hidden, section.validatingForm div.hidden {
  display: none;
}

body.forgottenPasswordPage button#togglePasswordVisibilityButton {
  background-color: #0000;
  border: none;
}

body.forgottenPasswordPage button#togglePasswordVisibilityButton img {
  height: 1.25em;
}

body.forgottenPasswordPage .hidden {
  display: none;
}

body.forgottenPasswordPage h2.subHeader img {
  height: 48px;
}

body.registrationPage main {
  margin: 0 auto;
}

body.registrationPage h2.subHeader img {
  height: 42px;
}

article.threadPanel {
  background-color: var(--surface-icon-panel);
  grid-template-rows: subgrid;
  border-radius: var(--borderRadius);
  word-break: break-word;
  color: var(--text-primary);
  grid-row: span 2;
  gap: .625em;
  padding: 1.25em;
  display: grid;
}

article.threadPanel:hover {
  background-color: var(--surface-icon-panel-hover);
  transition: all .3s;
}

article.threadPanel.newThreadCard {
  opacity: 0;
  transition: opacity .1s ease var(--thread-card-transition-delay, 0s),
            transform .6s cubic-bezier(.22, 1, .36, 1) var(--thread-card-transition-delay, 0s);
  transform: translateX(-2em);
}

article.threadPanel.newThreadCard.visible {
  opacity: 1;
  transition: all .3s;
  transform: translateX(0);
}

article.threadPanel div.threadTitleRow {
  align-items: center;
  gap: .625em;
  display: flex;
}

article.threadPanel div.threadTitleRow a {
  color: var(--text-primary);
}

article.threadPanel div.threadTitleRow img.pollIndicator {
  flex: none;
  height: 1.1em;
  transform: translateY(.08em);
}

article.threadPanel div.title {
  font-family: var(--uiHeadingTypeface);
  flex-direction: column;
  gap: .3125em;
  display: flex;
}

article.threadPanel div.title div.boardShortName {
  font-weight: 500;
}

article.threadPanel div.title a.threadTitle {
  font-size: calc(var(--baseSize) * 1.1);
  font-weight: 500;
}

article.threadPanel div.content {
  flex-direction: column;
  gap: .625em;
  display: flex;
}

article.threadPanel p.firstMessage {
  max-width: var(--maximumParagraphWidth);
  font-family: var(--PostTypeface);
  font-size: calc(var(--baseSize) * .85);
  text-align: left;
  color: var(--text-secondary);
  font-weight: 300;
}

article.threadPanel p.started {
  font-family: var(--uiTextTypeface);
  font-variant-numeric: normal;
  font-size: calc(var(--baseSize) * .85);
  text-align: left;
  border-top: 1px dotted var(--text-primary);
  padding-top: .625em;
}

article.threadPanel p.started span.username {
  color: var(--colour2);
}

article.threadPanel span.username {
  color: var(--colour2Bright);
}

:is(body.randomThreadPage, body.unansweredThreadsPage) label, :is(body.randomThreadPage, body.unansweredThreadsPage) a, :is(body.randomThreadPage, body.unansweredThreadsPage) select {
  font-family: var(--uiTextTypeface);
}

:is(body.randomThreadPage, body.unansweredThreadsPage) section.randomThreads, :is(body.randomThreadPage, body.unansweredThreadsPage) section.unansweredThreads {
  margin-bottom: 1.25em;
}

:is(:is(body.randomThreadPage, body.unansweredThreadsPage) section.randomThreads, :is(body.randomThreadPage, body.unansweredThreadsPage) section.unansweredThreads) a {
  font-family: var(--uiHeadingTypeface);
  font-size: calc(var(--baseSize) * 1.2);
  word-break: break-word;
  letter-spacing: .02em;
}

:is(:is(body.randomThreadPage, body.unansweredThreadsPage) section.randomThreads, :is(body.randomThreadPage, body.unansweredThreadsPage) section.unansweredThreads) p.notice a {
  font-size: var(--baseSize);
  color: var(--colour2Bright);
}

:is(body.randomThreadPage, body.unansweredThreadsPage) section.randomThreadsFilters, :is(body.randomThreadPage, body.unansweredThreadsPage) section.unansweredThreadsFilters {
  color: var(--text-primary);
  margin-bottom: 1.25em;
}

:is(body.randomThreadPage, body.unansweredThreadsPage) section.menu {
  justify-content: flex-end;
  display: flex;
}

:is(body.randomThreadPage, body.unansweredThreadsPage) section.menu a {
  font-size: var(--baseSize);
}

:is(body.randomThreadPage, body.unansweredThreadsPage) section.menu a:hover {
  text-decoration: underline;
}

:is(body.randomThreadPage, body.unansweredThreadsPage) section.randomThreadSelection, :is(body.randomThreadPage, body.unansweredThreadsPage) section.unansweredThreadList {
  grid-template-columns: repeat(auto-fit, minmax(18em, 1fr));
  justify-content: flex-start;
  align-items: stretch;
  gap: 1.25em;
  display: grid;
}

body.randomThreadPage h2.subHeader img {
  height: 56px;
}

@media (prefers-reduced-motion: reduce) {
  article.threadPanel.newThreadCard {
    opacity: 1;
    transition: none;
    transform: none;
  }
}

div.adminBanner {
  font-size: var(--baseSize);
  font-family: var(--uiTextTypeface);
  flex-flow: column wrap;
  gap: .3125em;
  margin-top: .625em;
  display: flex;
}

div.adminBanner div.userRegistrationAlert {
  align-items: center;
  gap: .625em;
  display: flex;
}

div.adminBanner div.userRegistrationAlert:before {
  content: "";
  width: var(--baseSize);
  height: var(--baseSize);
  background-image: url("/images/icons/register-red.svg");
  background-position: center;
  background-repeat: no-repeat;
  background-size: contain;
  flex: 0 0 1em;
  display: inline-block;
  position: relative;
  top: 1px;
}

div.adminBanner div.flaggedPostAlert {
  align-items: center;
  gap: .625em;
  display: flex;
}

div.adminBanner div.flaggedPostAlert:before {
  content: "";
  width: var(--baseSize);
  height: var(--baseSize);
  background-image: url("/images/icons/flag-red.svg");
  background-position: center;
  background-repeat: no-repeat;
  background-size: contain;
  flex: 0 0 1em;
  display: inline-block;
  position: relative;
  top: 1px;
}

div.adminBanner:empty {
  display: none;
}

body.pendingRegistrations table td {
  border-bottom: 1px solid var(--grey-300);
}

body.pendingRegistrations div.controls {
  flex-direction: column;
  gap: .625em;
  padding-top: .3125em;
  padding-bottom: .3125em;
  display: flex;
}

body.pendingRegistrations div.controls button {
  margin-top: 0;
  margin-bottom: 0;
  margin-right: 0;
}

body.pendingRegistrations a.attribution {
  margin-top: 1.25em;
  display: block;
}

body.pendingRegistrations img.flag {
  height: 24px;
}

body.pendingRegistrations h2.subHeader img {
  height: 36px;
}

body.pendingRegistrations h3 {
  margin-top: 1.5em;
  margin-bottom: 1.25em;
}

body.pendingRegistrations table img {
  height: 2em;
}

:is(body.pendingRegistrations table thead, body.pendingRegistrations table tbody) th, :is(body.pendingRegistrations table thead, body.pendingRegistrations table tbody) td {
  vertical-align: middle;
  text-align: left;
}

:is(body.pendingRegistrations table thead, body.pendingRegistrations table tbody) th:last-child, :is(body.pendingRegistrations table thead, body.pendingRegistrations table tbody) td:last-child {
  text-align: center;
}

body.pendingRegistrations table button.colossus {
  display: inline-flex;
}

body.pendingRegistrations table div.countryContainer {
  align-items: center;
  gap: .625em;
  display: inline-flex;
}

section.generatePassword h3 {
  margin-top: 1.25em;
  margin-bottom: .625em;
}

section.generatePassword p {
  margin-bottom: .625em;
}

section.generatePassword div.details {
  margin: 0;
}

section.generatePassword button {
  width: fit-content;
  margin: 0;
}

section.generatePassword input#generatedPassword {
  margin: 0;
}

section.notifications {
  font-family: var(--TableTypeface);
  font-size: var(--baseSize);
  grid-template-columns: fit-content(50ch) auto;
  align-items: center;
  gap: .625em 1.5em;
  margin-top: 1.25em;
  display: grid;
}

section.notifications div.messageSnippet {
  text-align: right;
}

section.notifications + div.messageNotification {
  margin-top: .625em;
}

section.notifications div.emojisPosted div.emoji {
  grid-template-columns: max-content auto;
  align-items: center;
  gap: .625em;
  display: grid;
}

section.notifications div.emojisPosted div.emoji + div.emoji {
  margin-top: .3125em;
}

section.notifications div.emojisPosted div.emoji span.posted.new {
  color: var(--colour1);
}

button.chatAllowed {
  width: 13em;
}

p.fromOldSite {
  font-family: var(--TableTypeface);
  color: var(--status-alert-background);
  margin-top: 1.25em;
  margin-bottom: 1.25em;
  line-height: 1.5em;
}

table.activeUsers th, table.activeUsers td {
  vertical-align: middle;
}

table.activeUsers img {
  padding-right: .625em;
  position: relative;
  top: 2px;
}

table.activeUsers th:first-child, table.activeUsers th:nth-child(2) {
  text-align: left;
}

table.recentlyLoggedInUsers, table.activeUsers {
  table-layout: auto;
  width: auto;
  max-width: 100%;
  display: inline-table;
}

:is(table.recentlyLoggedInUsers, table.activeUsers) th {
  text-align: left;
}

:is(table.recentlyLoggedInUsers, table.activeUsers) span.countryCodeAndFlag {
  white-space: nowrap;
}

:is(table.recentlyLoggedInUsers, table.activeUsers) span.countryCodeAndFlag img {
  height: .625em;
  margin-left: .2em;
  margin-right: .2em;
  padding-right: 0;
  top: 0;
}

body.systemDiagnosticsPage * {
  hanging-punctuation: none;
}

body.systemDiagnosticsPage #logConfiguration {
  scroll-margin-top: 5rem;
}

body.systemDiagnosticsPage div.loggingEnabled {
  align-items: center;
  gap: .625em;
  display: flex;
}

body.systemDiagnosticsPage #debugJsonBodies.enabled {
  color: var(--colour1);
}

body.systemDiagnosticsPage p.caption {
  font-size: calc(var(--baseSize) * .8);
  font-family: var(--uiTextTypeface);
  text-align: center;
  color: var(--text-secondary);
  margin-top: .625rem;
  font-weight: 400;
}

body.systemDiagnosticsPage p.subtitle {
  font-size: calc(var(--baseSize) * .9);
  text-align: left;
  margin: .625em 0 1.25rem;
  font-weight: 400;
}

body.systemDiagnosticsPage div#trafficControlPolicyEnglish p {
  text-align: left;
  max-width: 66ch;
}

body.systemDiagnosticsPage div + table {
  margin-top: 1.25em;
}

body.systemDiagnosticsPage p + section.diagnostics {
  margin-top: 2.5em;
}

body.systemDiagnosticsPage button.colossus.editTrafficControlSetting {
  margin: 0 0 0 .3125em;
  padding: .3125em .625em;
  display: inline;
}

body.systemDiagnosticsPage section + section {
  margin-top: 0;
}

body.systemDiagnosticsPage section.trafficChart {
  max-width: 100%;
  margin-bottom: 2.5em;
}

body.systemDiagnosticsPage section.trafficChart div.trafficCharts {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 3.75rem 0;
  display: grid;
}

body.systemDiagnosticsPage section.trafficChart section.trafficBucketChart {
  min-width: 0;
}

body.systemDiagnosticsPage section.trafficChart div[id^="trafficControlChart"], body.systemDiagnosticsPage section.trafficChart div[id^="trafficControlInFlightChart"] {
  width: 100%;
  height: 12rem;
}

@media screen and (width <= 1100px) {
  body.systemDiagnosticsPage section.trafficChart div.trafficCharts {
    grid-template-columns: 1fr;
  }
}

body.systemDiagnosticsPage section.tables {
  grid-template-columns: 1fr;
  gap: 1.25em;
  display: grid;
}

body.systemDiagnosticsPage table {
  table-layout: auto;
  border-top: 1px solid var(--border-strong);
  width: auto;
  margin-bottom: 1.5em;
  padding-top: .625em;
  display: inline-table;
}

body.systemDiagnosticsPage table span.limit {
  min-width: 5em;
  display: inline-block;
}

body.systemDiagnosticsPage table th, body.systemDiagnosticsPage table td {
  text-align: center;
  vertical-align: middle;
  word-break: break-all;
  white-space: normal;
}

body.systemDiagnosticsPage table span.queryPlan {
  word-break: break-word;
  line-height: 1.5em;
}

body.systemDiagnosticsPage table td:last-child {
  min-width: max(50%, 30em);
}

body.systemDiagnosticsPage table td:first-child {
  word-break: break-all;
  text-align: right;
  padding-left: .625em;
}

body.systemDiagnosticsPage table td:nth-child(2) {
  text-align: left;
}

body.systemDiagnosticsPage table td:nth-child(3) {
  font-weight: 300;
}

body.systemDiagnosticsPage table td:last-child {
  padding-right: .625em;
}

body.systemDiagnosticsPage section.configFile table th {
  text-align: left;
}

body.systemDiagnosticsPage section.configFile table th:first-child {
  text-align: right;
}

body.systemDiagnosticsPage section.trafficControl span.highlight {
  color: var(--colour2Bright);
  font-weight: 400;
}

body.systemDiagnosticsPage section.databaseConfig {
  max-width: 100%;
}

body.systemDiagnosticsPage section.databaseConfig table td:nth-child(2) {
  color: var(--colour2);
}

body.systemDiagnosticsPage section.databaseConfig table td:nth-child(3) {
  text-align: left;
}

body.systemDiagnosticsPage section.configFile {
  max-width: 100%;
}

body.systemDiagnosticsPage section.configFile table td:nth-child(2) {
  color: var(--colour2);
}

body.systemDiagnosticsPage section.configFile table td:nth-child(2).defaultValue {
  color: var(--colour3);
}

body.systemDiagnosticsPage section.configFile table td:nth-child(3) {
  text-align: left;
}

body.systemDiagnosticsPage section.transactionStats {
  width: 100%;
  max-width: 100%;
}

body.systemDiagnosticsPage section.transactionStats table th {
  white-space: nowrap;
}

body.systemDiagnosticsPage section.transactionStats table tbody tr:nth-child(2n) {
  background-color: var(--surface-table-stripe);
}

body.systemDiagnosticsPage section.transactionStats table td {
  text-align: center;
  color: var(--text-primary);
  word-break: break-word;
  font-weight: 400;
}

body.systemDiagnosticsPage section.transactionStats table td:first-child {
  text-align: left;
  line-height: 1.5em;
}

body.systemDiagnosticsPage section.transactionStats table ol li {
  font-family: var(--uiTextTypeface);
}

body.systemDiagnosticsPage section.transactionStats table ol li::marker {
  font-variant-numeric: normal;
}

body.systemDiagnosticsPage section.queryPlans span.lastExplained {
  color: var(--colour3);
  margin-top: .625em;
  display: inline-block;
}

body.systemDiagnosticsPage section.queryPlans table th {
  text-align: left;
}

body.systemDiagnosticsPage section.queryPlans table th:first-child {
  padding-left: .3125em;
}

body.systemDiagnosticsPage section.queryPlans table td:last-child {
  text-align: left;
  vertical-align: top;
  min-width: 24em;
}

body.systemDiagnosticsPage section.queryPlans table summary {
  margin-top: .625em;
}

body.systemDiagnosticsPage .highlight {
  color: var(--colour2);
  font-weight: 400;
}

body.systemDiagnosticsPage .important {
  color: var(--colour1);
  font-weight: 500;
}

body.systemDiagnosticsPage table td.highlightNoIndex {
  color: var(--colour1) !important;
  font-weight: 500 !important;
}

body.trafficStatisticsPage p + section.diagnostics {
  margin-top: 2.5em;
}

body.trafficStatisticsPage section.trafficChart {
  max-width: 100%;
  margin-bottom: 2.5em;
}

body.trafficStatisticsPage section.trafficChart div.trafficCharts {
  grid-template-columns: 1fr;
  gap: 1.25rem;
  display: grid;
}

body.trafficStatisticsPage section.trafficChart section.trafficBucketChart {
  min-width: 0;
  max-width: 100%;
}

body.trafficStatisticsPage section.trafficChart div[id^="trafficStatistics"]:not([id^="trafficStatisticsInFlight"]) {
  width: 100%;
  height: 24rem;
}

body.trafficStatisticsPage section.trafficChart div[id^="trafficStatisticsInFlight"] {
  width: 100%;
  height: 10rem;
}

body.trafficStatisticsPage section.trafficChart h4 {
  font-size: calc(var(--baseSize) * 1);
  font-family: var(--HeadingTypefaceText);
  color: var(--colour2Bright);
  text-align: left;
  margin-bottom: .3125em;
  font-weight: 500;
}

body.trafficStatisticsPage section.trafficChart p.subtitle {
  font-size: calc(var(--baseSize) * .9);
  font-family: var(--HeadingTypefaceText);
  text-align: left;
  margin: 0 0 1.25rem;
  font-weight: 400;
}

iframe {
  display: block;
}

div.spotifyEmbed {
  max-width: 100%;
}

iframe.spotifyFrame {
  border: 0;
  border-radius: 12px;
  width: 100%;
  max-width: 100%;
  display: block;
}

div.imdbEmbed a {
  color: inherit;
}

@media (width <= 550px) {
  div.pollResultsTablesContainer div.pollResultsTable {
    max-width: 100%;
  }

  h1.siteName {
    font-size: calc(var(--baseSize) * 2);
  }

  div.interstitial {
    grid-template-columns: auto;
  }

  .tiptap-toolbar {
    gap: 0;
    padding: .3125em;
  }

  div.messages div.timeElapsedContainer {
    column-gap: 0;
  }

  div.messages div.emojis {
    margin-left: 0;
  }

  div.messages div.youTubeCard {
    grid-template-columns: auto;
  }

  div.messages div.youTubeCard div.youTubeText {
    text-align: left;
  }

  div.messages div.youTubeCard div.youTubeText div.youTubeTitle, div.messages div.youTubeCard div.youTubeText div.youTubeChannelName {
    text-align: left;
  }

  div.messages div.youTubeCard div.youTubeMedia {
    align-items: flex-start;
  }

  section.content.boardsPage table.boards {
    table-layout: auto;
  }

  section.content.boardsPage table.boards colgroup col:first-child {
    width: 100%;
  }

  section.content.boardsPage table.boards thead th:first-child, section.content.boardsPage table.boards tbody td:first-child {
    text-align: left;
  }

  section.content.boardsPage table.boards thead th:nth-child(2), section.content.boardsPage table.boards tbody td:nth-child(2) {
    display: none;
  }

  body.boardPage h1.siteName {
    display: none;
  }

  section.threads table.threads tr:not(.moreThreadsRow) th:last-child, section.threads table.threads tr:not(.moreThreadsRow) td:last-child {
    display: none;
  }

  :is(button#siteAdminMenuButton, a#newThreadButton) span {
    display: none;
  }

  div.youTubeCardLayout {
    grid-template-columns: 1fr;
  }

  div.imdbEmbed {
    max-width: 100%;
  }

  header {
    padding-bottom: 2em;
  }

  header nav.mainMenu {
    border-bottom: 1px dotted var(--text-primary);
    gap: 1.25em;
    margin-bottom: 1.25em;
  }

  header nav.mainMenu section.bookmarksList {
    max-width: calc(100vw - 2em);
  }

  header nav.mainMenu section.bookmarksList h5, header nav.mainMenu section.bookmarksList a {
    font-size: calc(var(--baseSize) * .8);
  }

  header nav.mainMenu > div {
    justify-content: flex-end;
    column-gap: .9375em;
  }

  header nav.mainMenu a {
    font-size: calc(var(--baseSize) * 1.2);
  }

  header nav.mainMenu div.menuItem img {
    height: .8em;
  }

  header nav.mainMenu div.menuItem.boardShortcut a {
    font-size: var(--baseSize);
  }

  header nav.mainMenu div.menuItem.activeUsers {
    display: none;
  }

  header nav.mainMenu div.menuItem a.recentActivity span {
    display: none;
  }

  header nav.mainMenu div.menuItem.breadcrumbs :nth-child(2), header nav.mainMenu div.menuItem.breadcrumbs :nth-child(3) {
    display: none;
  }

  header nav.mainMenu div.menuItem.logoutLink {
    display: none;
  }

  header nav.mainMenu div {
    row-gap: 1.25em;
  }

  :is(header nav.mainMenu > div:last-child a, header nav.mainMenu > div:last-child button) span {
    display: inline;
  }

  header nav.contextMenu div.boardAndThreadName {
    flex-direction: column;
    gap: .625em;
  }

  header nav.contextMenu div.boardAndThreadName h1, header nav.contextMenu div.boardAndThreadName h3.boardName, header nav.contextMenu div.boardAndThreadName button.chatAllowed, header nav.contextMenu div.boardAndThreadName img.chatDisabledIndicator {
    font-size: var(--baseSize);
  }

  header nav.contextMenu div.boardAndThreadName h1.threadName {
    font-size: calc(var(--baseSize) * 1.4);
    line-height: 1.125;
  }

  header nav.contextMenu div.boardAndThreadName h2.boardName {
    font-size: var(--baseSize);
  }

  h3.pollStatus {
    font-size: calc(var(--baseSize) * .8);
  }

  #lastReadIndicator {
    display: none;
  }

  main section.heading {
    justify-content: center;
    display: flex;
  }

  section.pollContainer section.rankingResults {
    flex-wrap: wrap;
  }

  div.messages {
    gap: 2.5em;
  }

  div.messages div.timeElapsedContainer, div.messages div.postSeparatorContainer {
    justify-content: center;
  }

  div.messages .message {
    word-break: break-word;
    cursor: default;
    flex-direction: column;
    align-items: flex-start;
    column-gap: 1.25em;
    display: flex;
  }

  div.messages .message div.metadata {
    margin-top: .625em;
    font-weight: 600;
    position: static;
    bottom: 0;
  }

  div.messages .body {
    border-left: 0;
    order: -1;
    align-self: stretch;
    margin-left: 0;
    padding-left: 0;
  }

  div.messages div.timeElapsedContainer {
    display: flex;
  }

  section.messages div.messages div.metadata {
    text-align: left;
    flex-direction: column;
    align-self: flex-start;
    align-items: baseline;
    gap: .15625em;
    margin-top: .9375em;
    font-size: 14pt;
    font-weight: 500;
    display: flex;
  }

  section.messages div.messages .normallyHiddenPostMetadata {
    display: block;
  }
}

section.pollEditor {
  font-family: var(--uiTextTypeface);
}

section.pollEditor div.votingTypeOptions {
  background-color: var(--surface-input-muted);
  border-radius: 8px;
  grid-template-columns: 2em auto;
  align-items: center;
  gap: .625em;
  width: 50%;
  margin-top: 1.5em;
  margin-bottom: 2em;
  padding: 1.5em;
  display: grid;
}

section.pollEditor div.votingTypeOptions input[type="radio"] {
  transform: unset;
  margin: 0;
}

section.pollEditor div.votingTypeOptions label {
  text-align: left;
  font-weight: 400;
  line-height: 1.25;
}

section.pollEditor p.maxOptionsMessage {
  font-family: var(--TableTypeface);
  margin-bottom: .625em;
  margin-left: .625em;
  font-size: 12pt;
  font-weight: 500;
}

section.pollEditor div.pollItem {
  align-items: center;
  gap: 1.25em;
  display: flex;
}

section.pollEditor div.pollItem span.pollItemNumber {
  min-width: 1em;
}

section.pollEditor div.pollItem + div.pollItem {
  margin-top: .625em;
}

section.pollEditor button {
  margin: 0;
}

section.pollEditor div.closingDate, section.pollEditor div.openingDate {
  align-items: center;
  margin-top: .625em;
  margin-bottom: .625em;
  margin-left: .625em;
  display: flex;
}

:is(section.pollEditor div.closingDate, section.pollEditor div.openingDate) select {
  width: 12em;
  margin-left: .625em;
  padding: .3125em;
  font-size: 12pt;
}

section.pollEditor div.closingDate select {
  width: fit-content;
}

section.pollOptionEditing section.pollEditor {
  flex-direction: column;
  display: flex;
}

section.pollOptionEditing section.pollEditor span.pollOpeningDate {
  color: var(--colour2);
  font-weight: 500;
}

section.pollOptionEditing section.pollEditor div.editablePollItems {
  margin-left: .625em;
}

section.pollOptionEditing section.pollEditor div.editablePollItems input.pollItemInputField {
  background-color: var(--surface-input-muted);
  box-sizing: border-box;
  width: 100%;
  color: var(--text-primary);
  border-radius: 8px;
}

section.pollOptionEditing section.pollEditor h2 {
  font-size: calc(var(--baseSize) * 1.075);
}

section.pollOptionEditing section.pollEditor p {
  font-family: var(--uiTextTypeface);
}

section.pollOptionEditing section.pollEditor div.pollOptions {
  margin-top: 1.25em;
}

section.pollOptionEditing section.pollEditor div.pollOptions ul {
  font-family: var(--TableTypeface);
  font-variant-numeric: normal;
  margin-top: 1.25em;
}

section.pollOptionEditing section.pollEditor div.editablePollItems {
  margin-top: 1.25em;
}

section.pollOptionEditing section.pollEditor div.editablePollItemControlPanel {
  justify-content: flex-end;
  gap: .625em;
  margin-top: 1.25em;
  margin-left: .625em;
  display: flex;
}

body.boardsPage section.boards + section.boards {
  margin-top: 2.5em;
}

body.boardsPage .smallcaps {
  font-variant: normal;
  font-size: var(--baseSize);
}

body.accessControlsPage h2 + section, body.accessControlsPage section + h2 {
  margin-top: 1.25em;
}

body.accessControlsPage p {
  font-family: var(--TableTypeface);
}

body.accessControlsPage img {
  cursor: pointer;
  height: 1.25em;
}

body.accessControlsPage section.siteAdmins span.adminName {
  font-family: var(--TableTypeface);
  font-size: var(--baseSize);
}

body.accessControlsPage section.siteAdmins span.adminName.goneAway {
  color: var(--colour1);
}

body.accessControlsPage section.siteAdmins button#createSiteAdmin {
  margin-top: 1.25em;
}

body.accessControlsPage section.boardAdmins, body.accessControlsPage section.boardMembers {
  font-family: var(--TableTypeface);
  font-size: var(--baseSize);
  grid-template-columns: 20em auto;
  align-items: flex-start;
  gap: .625em 1.25em;
  display: grid;
}

:is(body.accessControlsPage section.boardAdmins, body.accessControlsPage section.boardMembers) span.boardName {
  text-align: right;
  font-weight: 500;
}

:is(body.accessControlsPage section.boardAdmins, body.accessControlsPage section.boardMembers) span.boardName span.count {
  font-weight: 400;
}

:is(body.accessControlsPage section.boardAdmins, body.accessControlsPage section.boardMembers) span.adminName.goneAway {
  color: var(--colour1);
}

div.footnotes {
  max-width: var(--maximumParagraphWidth);
  grid-template-columns: auto auto;
  justify-content: left;
  gap: .625em;
  font-size: 10pt;
  display: grid;
}

div.footnotes div.footnoteNumber {
  text-align: right;
}

div.footnotes em {
  font-style: normal;
}

body.flaggedPostReport main div.userFlaggedPostsControls {
  flex-wrap: wrap;
  gap: 1.25em;
  margin-bottom: 1.25em;
  display: flex;
}

body.flaggedPostReport main div.userFlaggedPostsControls label {
  font-size: calc(var(--baseSize) * .85);
  font-family: var(--TableTypeface);
  align-items: center;
  gap: .625em;
  font-weight: 500;
  display: flex;
}

body.flaggedPostReport main div.userFlaggedPostsControls select {
  min-width: 12rem;
  font-size: calc(var(--baseSize) * .85);
  font-family: var(--uiTextTypeface);
  border-radius: 8px;
  padding: .3125em;
}

body.flaggedPostReport main div.userFlaggedPostsChartCanvas {
  width: 100%;
  height: 28rem;
}

body.flaggedPostReport main a {
  color: var(--colour2);
}

body.flaggedPostReport main a.colossus {
  width: max-content;
  color: var(--text-primary);
}

body.flaggedPostReport main div.flaggedPostMetadata {
  grid-template-columns: 1fr;
  align-items: baseline;
  column-gap: 1.25em;
  display: grid;
}

body.flaggedPostReport main div.postSnippet {
  margin-bottom: .625em;
}

body.flaggedPostReport main div.postSnippet p {
  font-family: var(--PostTypeface);
}

body.flaggedPostReport main table span.title {
  font-weight: 500;
}

body.flaggedPostReport main table td:first-child p {
  text-align: left;
}

body.flaggedPostReport main table p.postVersions {
  margin-top: 1.25em;
  margin-bottom: .625em;
  font-weight: 500;
}

body.flaggedPostReport main table tr th, body.flaggedPostReport main table tr td {
  text-align: left;
  padding-top: .625em;
  padding-bottom: .625em;
}

body.flaggedPostReport main table tr th:first-child {
  width: 25%;
}

body.flaggedPostReport main table tr th:nth-child(3) {
  width: 50%;
}

body.flaggedPostReport main table tr td {
  border-bottom: 1px solid var(--border-strong);
}

body.flaggedPostReport main table.recentlyHandled tr th:nth-child(2), body.flaggedPostReport main table.recentlyHandled tr td:nth-child(2) {
  width: 15%;
}

body.flaggedPostReport main table.recentlyHandled tr th:nth-child(3), body.flaggedPostReport main table.recentlyHandled tr td:nth-child(3) {
  width: 35%;
}

body.flaggedPostReport main h3 + div {
  margin-top: .625em;
}

body.flaggedPostReport main div + h3 {
  margin-top: 1.25em;
}

body.flaggedPostReport main div + div {
  margin-top: 2.5em;
}

body.flaggedPostReport main div.tab__content + div.tab__content {
  margin-top: 0;
}

body.flaggedPostReport main p + div {
  margin-top: 1.25em;
}

body.flaggedPostReport main div.footnotes {
  font-family: var(--TableTypeface);
}

body.flaggedPostReport main div.footnotes div + div {
  margin: 0;
}

body.flaggedPostReport main li {
  font-family: var(--TableTypeface);
}

body.individualFlaggedPostPage #individualFlaggedPostReport > div + div, body.individualFlaggedPostPage #individualFlaggedPostReport > div + section, body.individualFlaggedPostPage #individualFlaggedPostReport > section + div, body.individualFlaggedPostPage #individualFlaggedPostReport > div + h3, body.individualFlaggedPostPage #individualFlaggedPostReport > section + h3 {
  margin-top: 1.25em;
}

body.individualFlaggedPostPage #individualFlaggedPostReport > h3 + div, body.individualFlaggedPostPage #individualFlaggedPostReport > h3 + section {
  margin-top: .625em;
}

body.individualFlaggedPostPage #handlePostButton {
  min-width: fit-content;
}

body.individualFlaggedPostPage {
  font-family: var(--TableTypeface);
  font-variant-numeric: normal;
  font-size: var(--baseSize);
}

body.individualFlaggedPostPage li {
  font-family: var(--TableTypeface);
  font-variant-numeric: normal;
}

body.individualFlaggedPostPage main a {
  color: var(--colour2);
}

body.individualFlaggedPostPage div.overview {
  grid-template-columns: max-content auto;
  gap: .625em;
  display: grid;
}

body.individualFlaggedPostPage div.overview div.label {
  text-align: right;
  font-weight: 400;
}

body.individualFlaggedPostPage div.overview span.flagCount {
  color: var(--colour2);
}

body.individualFlaggedPostPage div.postHistory > p {
  margin-bottom: .625em;
}

body.individualFlaggedPostPage div.postHistory div.message {
  grid-template-columns: max-content auto;
  align-items: center;
  gap: 1.25em;
  display: grid;
}

body.individualFlaggedPostPage div.postHistory div.message div.versionNumber {
  text-align: right;
}

body.individualFlaggedPostPage div.controls {
  align-items: center;
  gap: 1.25em;
  display: flex;
}

body.individualFlaggedPostPage span.alreadyHandled {
  color: var(--colour1);
  font-weight: 400;
}

input[type="date"], input[type="time"] {
  font: inherit;
  box-sizing: border-box;
  color: var(--text-primary);
  background-color: var(--surface-input);
  font-size: 16px;
}

body.threadPage.mediaParty header {
  grid-template-columns: 1fr 2fr;
  gap: 1.25em;
  display: grid;
}

body.threadPage.mediaParty header h1 {
  font-size: calc(var(--baseSize) * 1.4);
}

body.threadPage.mediaParty header div.media {
  aspect-ratio: 16 / 9;
  width: 100%;
  max-height: 35vh;
}

body.threadPage.mediaParty header div.media iframe {
  border: none;
  width: 100%;
  height: 100%;
}

body.threadPage.mediaParty header nav.mainMenu {
  grid-column: 1 / -1;
}

body.threadPage.mediaParty header nav.contextMenu {
  justify-content: center;
  gap: .625em;
}

body.threadPage.mediaParty header button.chatAllowed, body.threadPage.mediaParty header img.chatDisabledIndicator {
  display: none;
}

body.threadPage.mediaParty header div.boardAndThreadName {
  flex: unset;
}

body.threadPage.mediaParty header span#muteThreadText {
  display: none;
}

body.threadPage.mediaParty header div.mediaPartyMetadata {
  flex-direction: column;
  gap: .625em;
  display: flex;
}

body.threadPage.mediaParty header div.mediaPartyMetadata span.startsAt {
  margin-right: .3125em;
}

body.threadPage.mediaParty header div.mediaPartyMetadata live-countdown.startTime {
  color: var(--colour2Bright);
  font-weight: 500;
  display: inline;
}

body.threadPage.mediaParty header div.mediaPartyMetadata span.title {
  font-weight: 500;
}

body.threadPage.mediaParty header div.channel {
  display: none;
}

body.threadPage.mediaParty nav.contextMenu {
  flex-direction: column;
  align-items: flex-start;
}

body.threadPage.mediaParty div.adminBanner {
  display: none;
}

body.threadPage.mediaParty .media {
  max-width: 100%;
}

body.userAdministrationPage a.attribution {
  margin-top: 2.5em;
  display: block;
}

body.userAdministrationPage section.userInformation span.heading {
  color: var(--colour2Bright);
  font-weight: 500;
}

body.userAdministrationPage section.userInformation p {
  align-items: center;
  gap: .625em;
  display: flex;
}

body.userAdministrationPage img.flag {
  height: 24px;
  display: inline-flex;
}

body.userAdministrationPage table th {
  text-align: left;
}

body.userAdministrationPage section.flagHistory div + div {
  margin-top: 1.25em;
}

body.userAdministrationPage section.userAdministrationActions button {
  margin: 0;
}

body.userAdministrationPage section.userAdministrationActions {
  gap: .625em;
  display: flex;
}

dialog#banUserDialog, dialog#yellowCardUserDialog {
  min-width: 40vw;
}

:is(dialog#banUserDialog, dialog#yellowCardUserDialog) section.content {
  flex-direction: column;
  gap: .625em;
  display: flex;
}

:is(dialog#banUserDialog, dialog#yellowCardUserDialog) section.content input[type="datetime-local"] {
  width: 14em;
}

:is(dialog#banUserDialog, dialog#yellowCardUserDialog) section.content input[type="checkbox"] {
  width: 1.5em;
  height: 1.5em;
}

:is(dialog#banUserDialog, dialog#yellowCardUserDialog) section.content div.moderationNote {
  text-align: right;
  grid-template-columns: 1fr 3fr;
  align-items: center;
  gap: .625em;
  display: grid;
}

:is(dialog#banUserDialog, dialog#yellowCardUserDialog) section.content div.moderationNote p {
  max-width: 66ch;
}

:is(dialog#banUserDialog, dialog#yellowCardUserDialog) section.content label {
  text-align: right;
  grid-template-columns: 1fr 3fr;
  align-items: center;
  gap: .625em;
  display: grid;
}

:is(dialog#banUserDialog, dialog#yellowCardUserDialog) section.content label textarea {
  font-family: var(--TableTypeface);
  width: 100%;
  font-size: var(--baseSize);
  padding: .625em;
}

div.yellowCard, div.ban {
  background-color: var(--status-warning-background);
  color: var(--status-warning-text);
  border: 1px solid var(--status-warning-border);
  border-radius: 8px;
  align-items: center;
  gap: 1.25em;
  margin-top: .625em;
  padding: .625em 1.25em;
  display: flex;
}

:is(div.yellowCard, div.ban) img {
  max-height: 2em;
}

:is(div.yellowCard, div.ban) p {
  font-family: var(--uiTextTypeface);
  margin: 0;
}

:is(div.yellowCard, div.ban) + * {
  margin-top: .625em;
}

div.yellowCard p {
  color: var(--grey-1000);
}

div.ban {
  background-color: var(--status-alert-background);
  border: 1px solid var(--status-alert-border);
}

div.ban p {
  color: var(--grey-0);
}

div.ban img {
  filter: invert();
}

body.typographyPage p.textPrimary {
  color: var(--text-primary);
}

body.typographyPage p.textSecondary {
  color: var(--text-secondary);
}

body.typographyPage p.textTertiary {
  color: var(--text-tertiary);
}

body.typographyPage p.textPrimarySize {
  font-size: var(--baseSize);
}

body.typographyPage p.textOnePointFiveSize {
  font-size: var(--onePointFiveSize);
}

body.typographyPage p.textSecondarySize {
  font-size: var(--secondarySize);
}

body.typographyPage p.textTertiarySize {
  font-size: var(--tertiarySize);
}

body.typographyPage p.textQuaternarySize {
  font-size: var(--quaternarySize);
}

body.typographyPage header.typographyHeader {
  margin-left: 0;
  padding: 0;
  position: static;
}

body.typographyPage div.inputHeader {
  color: var(--colour2);
  font-weight: 500;
}

body.typographyPage section.smallCapsExamples {
  margin-top: 2.5em;
}

body.typographyPage section.statusExamples {
  margin-top: 2.5em;
}

body.typographyPage section.statusExamples div.statusExample {
  width: fit-content;
  font-family: var(--uiTextTypeface);
  max-width: min(100%, var(--maximumParagraphWidth));
}

body.typographyPage section.statusExamples div.statusExample + div.statusExample {
  margin-top: 1.25em;
}

body.typographyPage section.statusExamples div.statusExample > header {
  background: none;
  width: fit-content;
  margin: 0;
  padding: 0;
  position: static;
}

body.typographyPage section.statusExamples span.warning {
  display: inline-block;
  position: static;
  inset: auto;
}

body.typographyPage section.statusExamples header nav.mainMenu {
  border: 0;
  min-height: 0;
  margin: 0;
  padding: 0;
}

body.typographyPage section.statusExamples div.typographyNotificationCount div.alert {
  background-color: var(--status-notification-count-background);
}

body.typographyPage section.statusExamples div.errorMessage, body.typographyPage section.statusExamples section.options {
  margin: 0;
}

body.typographyPage section.embedExamples {
  max-width: var(--maximumParagraphWidth);
  margin-top: 2.5em;
}

body.typographyPage article.smallCapsExample pre {
  margin-top: 0;
  margin-bottom: 0;
}

body.typographyPage article.smallCapsExample + article.smallCapsExample {
  margin-top: 2.5em;
}

body.typographyPage div.header {
  margin-bottom: .625em;
}

body.typographyPage div.outputHeader {
  color: var(--colour2);
  margin-top: 1.25em;
  font-weight: 500;
}

body.typographyPage p {
  font-variant-numeric: oldstyle-nums;
}

body.typographyPage hr {
  margin-top: 1.25em;
  margin-bottom: 1.25em;
}

body.typographyPage span.section {
  margin-bottom: .625em;
  display: block;
}

body.typographyPage h2 + h1.threadName {
  margin-top: .1625em;
}

body.typographyPage a {
  font-family: unset;
}

body.typographyPage div.dividers {
  display: block;
}

body.typographyPage div.dividers p {
  max-width: 60vw;
  font-family: var(--PostTypeface);
  font-variant-numeric: oldstyle-nums;
  margin: 0;
}

body.typographyPage div.dividers p + *, body.typographyPage div.dividers * + p {
  margin-top: 1.25em;
}

body.typographyPage div.dividers div.image {
  justify-content: center;
  align-items: center;
  max-width: 60vw;
  display: flex;
}

body.typographyPage div.dividers img.divider-1 {
  max-height: .45em;
  margin-top: .0875em;
  margin-bottom: .0875em;
}

body.typographyPage div.dividers img.divider-2 {
  max-height: .05em;
}

body.typographyPage div.dividers img.divider-3 {
  max-height: .4em;
  margin-top: .1125em;
  margin-bottom: .1125em;
}

body.typographyPage div.dividers img.divider-4 {
  max-height: .625em;
}

body.typographyPage div.dividers img.divider-5 {
  max-height: 1.25em;
}

body.typographyPage div.dividers img.divider-6, body.typographyPage div.dividers img.divider-7 {
  max-height: 2.5em;
}

body.typographyPage div.dividers img.divider-8 {
  max-height: 1.25em;
}

body.typographyPage div.dividers img.divider-9 {
  max-height: 1.25em;
  margin-top: .125em;
  margin-bottom: .125em;
}

body.typographyPage div.dividers img.divider-10 {
  max-height: .625em;
}

body.typographyPage div.dividers img.divider-11 {
  max-height: .9375em;
  margin-top: .15625em;
  margin-bottom: .15625em;
}

body.typographyPage div.dividers img.divider-12 {
  max-height: .625em;
}

body.typographyPage div.dividers img.divider-13, body.typographyPage div.dividers img.divider-14 {
  max-height: 1.25em;
}

body.typographyPage div.dividers img.divider-15 {
  max-height: .3125em;
  margin-top: .03125em;
  margin-bottom: .03125em;
}

body.typographyPage div.dividers img.divider-16 {
  max-height: 1.25em;
}

dialog#siteMessageDialog section.editingPost {
  width: 100%;
}

dialog#siteMessageDialog section.content {
  flex-direction: column;
  display: flex;
}

dialog#siteMessageDialog section.radioButtons {
  gap: .625em;
  margin-top: .625em;
  margin-left: .625em;
  display: flex;
}

dialog#siteMessageDialog section.radioButtons label {
  align-items: center;
  gap: .3125em;
  display: flex;
}

dialog#siteMessageDialog #clearButton {
  width: 16em;
}

dialog#siteMessageDialog {
  width: min(40em, 80vw);
}

section.siteMessage {
  background-color: var(--surface-ui-panel);
  border-radius: 8px;
  margin-top: 1.25em;
  padding: .9375em;
}

section.siteMessage p {
  font-family: var(--uiTextTypeface);
}

dialog.queryPlanDialog {
  max-width: 80vw;
}

body.filterPage section.controlPanel {
  background-color: var(--colour3Lighter);
  justify-content: flex-start;
  align-items: center;
  gap: 1.25em;
  padding: 1.25em;
  display: flex;
}

#singleLineTextInputOkCancelDialog {
  width: 30em;
  min-width: 12em;
}

#singleLineTextInputOkCancelDialog input[type="text"] {
  width: 100%;
}

#singleLineTextInputOkCancelDialog section.title {
  align-items: center;
  gap: 1.25em;
  display: flex;
}

[data-hidden-text-container] {
  background-color: var(--hiddenTextHighlight);
  cursor: pointer;
  border-radius: 8px;
  padding: 3px 4px;
}

[data-hidden-text-container].revealed {
  background-color: unset;
  padding: 0;
}

[data-hidden-text-content], [data-hidden-text-container].revealed [data-hidden-text-label] {
  display: none;
}

[data-hidden-text-container].revealed [data-hidden-text-content] {
  display: inline;
}

::view-transition-group(hidden-text-reveal) {
  animation-duration: .22s;
  animation-timing-function: cubic-bezier(.22, 1, .36, 1);
}

::view-transition-old(hidden-text-reveal), ::view-transition-new(hidden-text-reveal) {
  mix-blend-mode: normal;
  animation-duration: 80ms;
  animation-timing-function: ease-out;
}

@media (prefers-reduced-motion: reduce) {
  ::view-transition-group(hidden-text-reveal), ::view-transition-old(hidden-text-reveal), ::view-transition-new(hidden-text-reveal) {
    animation: none;
  }
}

body.whyRegisterPage p, body.whyRegisterPage li {
  font-family: var(--uiTextTypeface);
  max-width: var(--maximumParagraphWidth);
}

body.siteClosedPage {
  margin-top: 2.5em;
}

body.siteClosedPage img.siteClosedIcon {
  height: 2.5em;
  animation: .5s ease-in-out infinite alternate siteClosedIconRock;
}

body.siteClosedPage h2 + section {
  margin-top: 3.25em;
}

@keyframes siteClosedIconRock {
  0% {
    transform: rotate(-20deg);
  }

  100% {
    transform: rotate(20deg);
  }
}

span.siteClosedMessage {
  color: var(--colour1);
  font-weight: 500;
  animation: 1s ease-out both siteClosedMessageFadeIn;
}

@keyframes siteClosedMessageFadeIn {
  from {
    opacity: 0;
  }

  to {
    opacity: 1;
  }
}

dialog.repliedToPost div.message {
  width: var(--maximumParagraphWidth);
  display: block;
}

dialog.repliedToPost div.message div.body {
  border-left: 0;
  margin-left: 0;
  padding-left: 0;
}

dialog.repliedToPost menu {
  border-top: 1px solid var(--lighterLineColour);
  justify-content: flex-end;
  margin-top: 2.5em;
  padding-top: 1.25em;
  display: flex;
}

body.blogViewPage label {
  font-family: var(--uiTextTypeface);
}

body.blogViewPage article {
  border-top: 1px dotted #000;
  flex-direction: column;
  gap: .625em;
  padding-top: 1.25em;
  display: flex;
}

body.blogViewPage article > .metadata {
  font-family: var(--uiTextTypeface);
  margin-top: 0;
}

body.blogViewPage article > div.messages {
  margin-top: 1.25em;
}

section.messages div.messages div.firstMessage.blogPost + * {
  margin-top: 2.5em;
}

section.messages div.messages div.firstMessage.blogPost {
  width: var(--maximumParagraphWidth);
  flex-direction: column;
  column-gap: 0;
  display: flex;
}

section.messages div.messages div.firstMessage.blogPost div.body {
  border-left: 0;
  order: -1;
  margin-left: 0;
  padding-left: 0;
}

section.messages div.messages div.firstMessage.blogPost div.menuContainer {
  align-self: flex-start;
}

section.messages div.messages div.firstMessage.blogPost div.menuContainer div.postMenu {
  margin-left: 0;
}

section.messages div.messages div.firstMessage.blogPost div.metadata {
  border-top: 1px solid var(--grey-200);
  text-align: left;
  flex-direction: column;
  align-self: flex-start;
  gap: .3125em;
  margin-top: 1.25em;
  padding-top: 1.25em;
  display: flex;
  position: static;
}

section.messages div.messages div.firstMessage.blogPost div.metadata * {
  color: var(--colour2);
}

section.messages div.messages div.firstMessage.blogPost div.metadata div.displayName:before {
  content: "Posted by ";
}

body.viewUserSettingsPage h3 {
  margin-top: 2.5em;
}

:is(body.viewUserSettingsPage, body.userAdministrationPage) table {
  table-layout: fixed;
  width: min(40em, 100%);
}

:is(body.viewUserSettingsPage, body.userAdministrationPage) table col:first-child {
  width: 50%;
}

:is(body.viewUserSettingsPage, body.userAdministrationPage) table col:nth-child(2), :is(body.viewUserSettingsPage, body.userAdministrationPage) table col:nth-child(3) {
  width: 25%;
}

:is(body.viewUserSettingsPage, body.userAdministrationPage) table thead th {
  text-align: left;
}

:is(body.viewUserSettingsPage, body.userAdministrationPage) table tr td, :is(body.viewUserSettingsPage, body.userAdministrationPage) table tr th:first-child {
  text-align: left;
  font-weight: 400;
}

:is(body.viewUserSettingsPage, body.userAdministrationPage) table tr th:first-child {
  text-align: right;
}

dialog#editLoggingSettingsDialog {
  width: min(80%, 40em);
}

dialog#editLoggingSettingsDialog section + section, dialog#editLoggingSettingsDialog fieldset + * {
  margin-top: 0;
}

dialog#editLoggingSettingsDialog section.content {
  flex-direction: column;
  gap: .625em;
  display: flex;
}

dialog#editLoggingSettingsDialog section.content label.enableLogging {
  align-items: center;
  gap: .625em;
  display: flex;
}

dialog#editLoggingSettingsDialog section.content fieldset:disabled {
  border-color: var(--lighterLineColour);
  color: var(--lighterLineColour);
}

dialog#editLoggingSettingsDialog section.content label:has(input:disabled) {
  color: var(--lighterLineColour);
}

dialog#editLoggingSettingsDialog section.content fieldset#loggingAudienceInputs {
  flex-direction: column;
  align-items: flex-start;
  width: 100%;
}

dialog#editLoggingSettingsDialog section.content fieldset#selectedLoggingUsersFieldset, dialog#editLoggingSettingsDialog section.content fieldset#jsonSelectedLoggingUsersFieldset {
  flex-direction: column;
  align-items: flex-end;
  gap: .625em;
  width: 100%;
  display: flex;
}

:is(dialog#editLoggingSettingsDialog section.content fieldset#selectedLoggingUsersFieldset, dialog#editLoggingSettingsDialog section.content fieldset#jsonSelectedLoggingUsersFieldset) select {
  border: 1px solid var(--lighterLineColour);
  width: 100%;
  height: 10em;
  margin-left: 0;
}

body.logViewerPage {
  flex-direction: column;
  height: 100dvh;
  display: flex;
  overflow: hidden;
}

body.logViewerPage input[type="datetime-local"] {
  font-size: calc(var(--baseSize) * .8);
}

body.logViewerPage div.adminBanner, body.logViewerPage nav.contextMenu, body.logViewerPage footer {
  display: none;
}

body.logViewerPage header {
  padding-bottom: 0;
}

body.logViewerPage > header, body.logViewerPage > footer {
  flex: none;
}

body.logViewerPage > main {
  flex-direction: column;
  flex: auto;
  min-height: 0;
  display: flex;
}

body.logViewerPage section.logViewerHeader {
  border-bottom: 1px solid var(--grey-500);
  flex: none;
}

body.logViewerPage div.logViewerControls {
  flex-wrap: wrap;
  align-items: center;
  gap: .3125em .625em;
  margin-bottom: 1.875em;
  display: flex;
}

body.logViewerPage div.logViewerControls button {
  margin-top: 0;
  margin-bottom: 0;
  margin-right: 0;
}

body.logViewerPage div.logViewerControls button#refreshLogViewer, body.logViewerPage div.logViewerControls label.removeMeFromLogs, body.logViewerPage div.logViewerControls label.tailLogs {
  margin-right: .625em;
}

body.logViewerPage div.logViewerControls button#filterLogMessageTypes.filterActive {
  border: 2px solid var(--highlightColour);
  background-color: var(--surface-button-hover);
  font-weight: 700;
}

body.logViewerPage label.tailLogs, body.logViewerPage div.messageFilter, body.logViewerPage label.logStartTime {
  align-items: center;
  gap: .45em;
  display: flex;
}

body.logViewerPage div.messageFilter label {
  align-items: center;
  gap: .3125em;
  display: flex;
}

body.logViewerPage div.messageFilter input[type="text"] {
  width: 10em;
}

body.logViewerPage #logViewerStatus {
  margin-left: auto;
}

body.logViewerPage #logViewerScroller {
  overscroll-behavior: contain;
  flex: auto;
  min-height: 0;
  overflow-y: auto;
}

body.logViewerPage #logViewerRecords {
  grid-template-columns: fit-content(25em) minmax(0, 1fr);
  margin-bottom: 2.5em;
  display: grid;
}

body.logViewerPage #logViewerSentinel {
  height: 1px;
}

body.logViewerPage article {
  grid-template-columns: subgrid;
  border-bottom: 1px dotted var(--lighterLineColour);
  font-family: var(--uiTextTypeface);
  grid-column: 1 / -1;
  gap: 1.25em;
  padding-top: .625em;
  padding-bottom: .625em;
  transition: background-color 3s ease-out;
  display: grid;
}

body.logViewerPage article.BatchJob {
  background-color: var(--colour5);
  padding: 1.25em;
}

body.logViewerPage article.SystemLifecycle {
  background-color: var(--colour4);
  padding: 1.25em;
}

body.logViewerPage article.newLogRecord {
  background-color: var(--colour4);
}

body.logViewerPage article.exception, body.logViewerPage article.jsonDebug {
  align-items: start;
}

:is(body.logViewerPage article.exception, body.logViewerPage article.jsonDebug) pre.exceptionMessage, :is(body.logViewerPage article.exception, body.logViewerPage article.jsonDebug) pre.jsonDebugMessage {
  white-space: pre-wrap;
  overflow-wrap: anywhere;
  background-color: var(--surface-subtle);
  min-width: 0;
  margin: 0;
  padding: 1.25em;
}

:is(body.logViewerPage article.exception, body.logViewerPage article.jsonDebug) pre.exceptionMessage code, :is(body.logViewerPage article.exception, body.logViewerPage article.jsonDebug) pre.jsonDebugMessage code {
  white-space: inherit;
  font-family: var(--monospaceFont);
  font-size: calc(var(--baseSize) * .75);
}

:is(body.logViewerPage article.exception, body.logViewerPage article.jsonDebug) pre.jsonDebugMessage div.jsonDebugLabel {
  color: var(--text-muted);
}

:is(body.logViewerPage article.exception, body.logViewerPage article.jsonDebug) pre.jsonDebugMessage {
  max-height: 15em;
  overflow-y: auto;
}

body.logViewerPage article div.logMessage {
  align-self: center;
}

body.logViewerPage article div.metadata {
  text-align: right;
  flex-direction: column;
  gap: .15625em;
  display: flex;
}

body.logViewerPage article div.metadata div.username {
  color: var(--colour6);
}

body.logViewerPage article div.metadata div.username span.deviceId {
  color: var(--text-muted);
}

body.logViewerPage article div.metadata div.path {
  color: var(--colour2);
  overflow-wrap: anywhere;
}

body.logViewerPage label.removeMeFromLogs {
  align-items: center;
  gap: .3125em;
  display: flex;
}

dialog#logMessageTypeFilterDialog fieldset {
  flex-direction: column;
  align-items: flex-start;
  width: 100%;
}
