*,
*:before,
*:after {
  box-sizing:border-box
}
* {
  margin:0
}
html {
  font-size:16px;
  line-height:1.5;
  font-weight:400;
  tab-size:4;
  font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;
  -webkit-font-smoothing:antialiased;
  -moz-font-smoothing:antialiased;
  -o-font-smoothing:antialiased;
  font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
  font-variant-ligatures:none;
  font-feature-settings:"liga" 0;
  -moz-text-size-adjust:none;
  -webkit-text-size-adjust:none;
  text-size-adjust:none
}

input,
button,
textarea,
select {
  font:inherit;
  color:inherit
}
select {
  color:revert
}
input,
textarea {
  line-height:inherit;
  background:none;
  resize:none
}
button {
  background:none;
  border:none;
  cursor:pointer
}
p,
h1,
h2,
h3,
h4,
h5,
h6 {
  overflow-wrap:break-word
}
#root,
#__next {
  isolation:isolate
}
ol,
ul,
menu {
  list-style:none
}
img {
  max-inline-size:100%;
  max-block-size:100%
}
a:not([class]) {
  text-decoration-skip-ink:auto;
  word-break:break-all
}
iframe {
  border:0
}
[hidden] {
  display:none!important
}
@media (prefers-reduced-motion: reduce) {
  html:focus-within {
    scroll-behavior:auto
  }
  *,
  *:before,
  *:after {
    animation-duration:.01ms!important;
    animation-iteration-count:1!important;
    transition-duration:.01ms!important;
    scroll-behavior:auto!important
  }
}
.flex {
  display:flex
}
.flex-col {
  display:flex;
  flex-direction:column
}
.flex-row {
  display:flex;
  flex-direction:row
}
.flex-1 {
  flex:1
}
.gap-1em {
  gap:1em
}
.gap-050em {
  gap:.5em
}
.gap-025em {
  gap:.25em
}
.justify-around {
  justify-content:space-around
}
.justify-between {
  justify-content:space-between
}
.justify-evenly {
  justify-content:space-evenly
}
.justify-center {
  justify-content:center
}
.hidden {
  display:none
}
:root {
  --chat-message-padding: 1ch;
  --message-spacing: .5ch;
  --message-spacing: 1px;
  --font-size: 15px;
  --user-font-weight: 600;
  --default-font-family: Ubuntu, system-ui, Arial, Helvetica, sans-serif
}
:root[data-theme=blue] {
  --bg: #fff;
  --fg: #333;
  --gray: #9ca0b0;
  --user-color: #303fbd;
  --header-bg: #303fbd;
  --link-color: #303fbd;
  --link-hover-color: #303fbd;
  --border-color: none;
  --message-hover-bg: #f6f7f9;
  --message-input-form-bg: #eff1f5;
  background:#fff
}
html {
  background:var(--bg);
  color:var(--fg);
  font-family:var(--font-family, var(--default-font-family));
  font-size:var(--font-size, 16px);
  font-feature-settings:normal;
  font-variation-settings:normal;
  line-height:1.5;
  tab-size:4;
  overflow:hidden
}
html,body {
  height: 100%;
}
.app-frame {
  display:flex;
  flex-direction:row;
  height: 100dvh; /* handles iOS 15–18 viewport height properly */
  max-height: 100dvh;
  overflow: hidden;
}
.messages {
  -webkit-overflow-scrolling: touch;
  overscroll-behavior: contain;
}
::placeholder {
  opacity:1;
  color:var(--gray)
}
*:not(select) {
  scrollbar-width:thin
}
a {
  color:var(--link-color);
  text-decoration:none
}
a:hover,
a:focus {
  color:var(--link-hover-color);
  text-decoration:underline
}
a:focus {
  outline:thin dotted;
  outline:5px auto -webkit-focus-ring-color;
  outline-offset:-2px
}
chat-container {
  display:flex;
  flex-direction:column;
  background-attachment:fixed;
  border:1px solid var(--border-color);
  border-radius:4px;
  position:relative;
  width:100%;
  flex:1;
  overflow:hidden
}
html.center chat-container {
  max-width:100ch;
  margin:0 auto
}
.header {
  display:flex;
  justify-content:space-between;
  align-content:center;
  width:100%;
  padding:1ch;
  color:var(--header-fg, inherit);
  background-color:var(--header-bg);
  box-shadow:0 1px 3px #0000001f,0 1px 2px #0000003d;
  z-index:50
}
.header a {
  color:#fff
}
.header h1 {
  padding:0;
  margin:0;
  font-weight:700;
  font-size:inherit;
  line-height:inherit
}
.messages {
  position:relative;
  display:flex;
  flex-direction:column;
  flex:1;
  list-style:none;
  padding:1ch 0;
  overflow-y:auto;
  margin-bottom:50px
}
.messages:before {
  content:"";
  flex:1
}
m-chat {
  display:block;
  clear:both;
  position:relative;
  white-space:nowrap;
  padding:var(--message-spacing) var(--chat-message-padding)
}
m-system {
  display:block;
  position:relative;
  padding:var(--message-spacing) var(--chat-message-padding);
  color:var(--gray)
}
m-chat:hover,
m-system:hover {
  background:var(--message-hover-bg);
  border-radius:1.5px
}
m-chat m-time {
  display:inline-block;
  float:right;
  top:.3rem;
  font-size:.8rem;
  vertical-align:5%;
  color:var(--gray, inherit);
  text-indent:0;
  font-weight:500;
  white-space:nowrap;
  user-select:none
}
m-chat:hover m-time {
  display:block!important
}
m-user {
  font-weight:var(--user-font-weight, 600);
  font-family:var(--user-font-family, inherit);
  margin-right:.75ch;
  color:var(--user-color);
  cursor:pointer
}
m-user:hover {
  text-decoration:underline
}
html.usercolors m-user {
  color:var(--uc)
}
m-head {
  display:inline
}
m-body {
  display:block;
  white-space:pre-wrap;
  word-break:break-word
}
html.compact m-body {
  display:inline
}
html:not(.compact) m-chat.threaded {
  m-head {
    display:inline
  }
  m-user {
    display:none
  }
}
.date-separator {
  color:var(--gray);
  display:flex;
  width:100%;
  justify-content:center;
  align-items:center;
  word-break:keep-all;
  white-space:nowrap;
  gap:1em;
  user-select:none;
  font-size:80%;
  padding:1ch
}
.date-separator .line {
  width:100%;
  max-height:1px;
  border-bottom:1px solid var(--gray);
  opacity:.15
}
.date-separator .line {
  opacity:.15
}
img.emoji {
  height:1.2em;
  width:1.2em;
  margin:0 .05em 0 .1em;
  vertical-align:-.1em
}
.greentext {
  color:var(--greentext-color, green)
}
#tooltip {
  display:none;
  width:max-content;
  position:absolute;
  top:0;
  left:0;
  background:var(--tooltip-bg, #000);
  color:var(--tooltip-fg, #eee);
  font-weight:500;
  padding:2px 6px;
  border-radius:3px;
  font-size:90%;
  z-index:999999999;
  align-items:center;
  place-items:center
}
#arrow {
  position:absolute;
  background:#222;
  width:8px;
  height:8px;
  transform:rotate(45deg)
}
#floated-image {
  position:fixed;
  top:0;
  right:0;
  max-width:100vw;
  max-height:100vh;
  pointer-events:none;
  z-index:2000!important
}
#floated-image img {
  display:block;
  max-width:95vw;
  max-height:100vh
}
.floated-message {
  display:inline!important;
  position:absolute!important;
  border:1.5px black solid!important;
  z-index:2000!important;
  pointer-events:none;
  background:var(--bg)
}
.void-logo {
  fill:var(--logo-color, white);
  display:inline-flex;
  flex-shrink:0;
  height:1.5em;
  width:1.5em;
  border:1.5px solid var(--logo-color, white)
}
@media (min-width: 769px) {
  m-chat,
  m-system {
    --time-w: 5.5ch;
    display:block;
    padding-right:1ch;
    padding-left:var(--time-w);
    position:relative;
    word-break:break-word;
    white-space:nowrap;
    border-radius:3px
  }
  m-head {
    display:inline-flex
  }
  m-time {
    order:0;
    float:none;
    position:absolute;
    display:inline-block;
    text-align:right;
    text-indent:0px;
    white-space:nowrap;
    width:var(--time-w);
    margin-left:calc((0ch - var(--time-w)) - 1ch);
    top:.2rem;
    font-size:80%;
    vertical-align:5%
  }
}
@media (max-width: 768px) {
  :root {
    --font-size: 15px
  }
  m-time {
    display: none !important

  }
  m-chat:hover m-time {
    display: inline-block !important;
    float: none;
    position: absolute;
    right: 0rem;
    background: var(--bg);
    border-radius: 3px;
    padding: 0 0.125rem;
  }
}
.greentext {
  color:#2ed164
}
.bluetext {
  color:#4e9ee4
}
m-body p {
  display:inline!important;
  margin:0!important;
  padding:0!important
}
img[alt] {
  text-indent:-9999px
}
.emote {
  --custom-emoji-size-emoji: 1.375em;
  position:relative;
  object-fit:contain;
  width:var(--custom-emoji-size-emoji);
  height:var(--custom-emoji-size-emoji);
  vertical-align:bottom;
  --_image-rendering:pixelated
}
m-user:empty {
  display:none!important
}
#emoji-selector-button {
  display:none!important
}
iframe {
  display:flex
}
.embed {
  display:flex;
  background-color:transparent;
  margin:.25rem 0;
  max-width:420px;
  position:relative;
}
.embed iframe,
.embed audio,
lite-youtube {
  width:100%!important;
  margin:0;
  padding:0;
  border:0;
  border-radius:5px;
  max-height: 90vh;
}
.embed video {
    max-width: 100%;
    max-height: 100vh;
    margin:0;
    padding:0;
    border:0;
    border-radius:5px
}
.embed img {
  display:block;
  max-width:100%;
  max-height:160px;
  margin:0;
  border-radius:5px
}
.embed img[expanded] {
  max-height:100%
}
.embed img {
  height:120px;
  width:190px;
  object-fit:cover
}
.embed img[expanded] {
  height:auto;
  width:auto;
  max-height:100%
}
img.post-image {
  display:block;
  float:left;
  border:none;
  margin:0 1ch 0 0
}
[data-spoiler-image] {
  position:relative;
  overflow:hidden
}
@supports (backdrop-filter: blur()) {
  [data-spoiler-image=""]:after {
    position:absolute;
    inset:0;
    z-index:100;
    border-radius:5px;
    content:"Spoiler";
    display:flex;
    justify-content:center;
    align-items:center;
    font-weight:600;
    color:#eee!important;
    text-shadow:1px 1px 0px #111;
    backdrop-filter:blur(11px) brightness(66%)
  }
}
.emptyChannelNotice {
  --_height: 40px;
  display:flex;
  flex-direction:column;
  justify-content:center;
  align-items:center;
  gap:.5rem;
  height:100%;
  padding:2rem;
  text-align:center;
  .emptyChannelIcon {
    width:100px!important;
    height:auto;
    color:var(--gray);
    opacity:.4;
    margin-top:-80px
  }
  .channelLinkGroup {
    position:relative;
    display:flex;
    border:1px solid #ffffff10;
    border-radius:3px;
    overflow:hidden;
    background:var(--message-input-form-bg);
    color:var(--gray);
    margin-top:.25rem;
    width:240px
  }
  .channelLinkGroup[data-copied]:after {
    content:"Link copied!";
    position:absolute;
    inset:0;
    background:var(--user-color);
    color:var(--bg);
    font-weight:600;
    display:flex;
    justify-content:center;
    align-items:center
  }
  input {
    box-sizing:border-box;
    text-align:start;
    font:inherit;
    border:0;
    min-height:var(--_height);
    max-height:var(--_height);
    padding:0 .5rem;
    cursor:copy;
    line-height:var(--_height);
    width:100%
  }
  button {
    display:flex;
    padding:0;
    align-items:center;
    justify-content:center;
    background:var(--user-color);
    color:var(--bg);
    border-radius:3px;
    border:0;
    cursor:pointer;
    min-width:var(--_height);
    max-width:var(--_height);
    height:auto;
    flex-shrink:0
  }
}
button[disabled] {
  cursor:not-allowed!important
}
.message-input {
    --max-height: 7rem;
    line-height:1.5;
    display:flex;
    flex-direction:column;
    position:relative;
    padding:0;
    padding-bottom:var(--chat-message-padding);
    padding-top:0;
    margin:0;
    z-index:1000;
    position:absolute;
    bottom:0;
    left:var(--chat-message-padding);
    right:var(--chat-message-padding);
    box-sizing: border-box;
}
.message-input-form {
  display:flex;
  position:relative;
  width:100%;
  background:var(--message-input-form-bg, var(--bg));
  border-radius:var(--message-input-radius, 3px);
  overflow:hidden
}
.message-input-form input,
.message-input-form textarea {
  color:inherit;
  padding:1ch;
  padding-left:0;
  flex-grow:1;
  border:0;
  outline:0;
  resize:none;
  background:transparent;
  scrollbar-width:none;
  font-size: 16px!important; /* fix for ios */
}
.message-input-form textarea::-webkit-scrollbar {
  display:none
}
.message-input button {
  --btn_margin: 0;
  --btn_size: calc(1.5rem + 2ch - var(--btn_margin, 0) * 2);
  font-family:inherit;
  font-size:inherit;
  border:0;
  margin:var(--btn_margin);
  width:var(--btn_size);
  height:var(--btn_size);
  aspect-ratio:1;
  border-radius:var(--message-input-radius, 3px);
  background:var(--user-color);
  color:var(--bg);
  font-weight:500;
  cursor:pointer;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  white-space:nowrap
}
#message-input-send {
  --btn_margin: 0rem
}
.message-input button.attachment {
  --btn_margin: 0rem;
  margin:0 .25ch;
  background:transparent;
  color:var(--gray)
}
.message-input button.attachment:hover {
  background:transparent;
  color:var(--fg)
}
#emoji-selector-button {
  display:none
}
.message-attachment-list {
  list-style:0;
  text-indent:0;
  display:flex;
  gap:1ch;
  margin:0;
  padding:1ch;
  padding-left:0;
  overflow-x:auto;
  position:absolute;
  bottom:100%;
  z-index:1000;
  left:1ch;
  right:1ch;
  pointer-events:none
}
.message-attachment-list .upload {
  pointer-events:auto;
  --bg-overlay-5: var(--bg);
  opacity:.96;
  display:inline-flex;
  flex-direction:column;
  background:var(--bg-overlay-5,var(--background-secondary));
  border-radius:4px;
  margin:0;
  padding:8px;
  position:relative;
  --_size: 140px;
  min-width:var(--_size, 200px);
  max-width:var(--_size, 200px);
  min-height:var(--_size, 200px);
  max-height:var(--_size, 200px)
}
.message-attachment-list .uploadContainer {
  display:flex;
  position:relative;
  flex-direction:column;
  height:100%
}
.message-attachment-list .mediaContainer {
  margin-top:auto;
  position:relative;
  min-height:0;
  cursor:pointer
}
.message-attachment-list .filenameContainer {
  margin-top:auto;
  font-size:12px;
  line-height:1.2857142857142858;
  font-weight:400
}
.message-attachment-list .filename {
  margin-top:8px;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap
}
.message-attachment-list .actionBarContainer {
  position:absolute;
  top:0;
  right:0
}
.message-attachment-list .media_f847a3 {
  border-radius:3px;
  max-width:100%;
  -o-object-fit:contain;
  object-fit:contain
}
.message-attachment-list:empty,
.message-attachment-list:not(.message-attachment-list:has(li)) {
  display:none!important
}
@keyframes spinner {
  to {
    transform:rotate(360deg)
  }
}
[data-loading=true] {
  --_spinner-size: 30px
}
[data-loading=true]:before {
  content:"";
  box-sizing:border-box;
  position:absolute;
  top:50%;
  left:50%;
  width:var(--_spinner-size);
  height:var(--_spinner-size);
  margin-top:calc(0rem - var(--_spinner-size) / 2);
  margin-left:calc(0rem - var(--_spinner-size) / 2);
  border-radius:50%;
  border:3px solid #ffffff80;
  border-top-color:#fff;
  animation:spinner .6s linear infinite
}
.chatsend-container {
  display:flex;
  flex-direction:column;
  overflow:hidden;
  position:relative
}
#message-input-send {
  flex-shrink:0;
  z-index:100;
  background-image:linear-gradient(180deg,#0000,#00000018);
  box-shadow:#ffffff20 0 1px inset,#00000020 0 -1px inset,#090b0b1a 0 2px 4px
}
#message-input-send[disabled] {
  cursor:not-allowed
}
#message-input-send:hover:not(:disabled) {
  filter:brightness(1.05)
}
.character-counter {
  user-select:none;
  font-size:13px;
  flex-shrink:0;
  position:absolute;
  bottom:.125ch;
  right:.5ch;
  color:var(--gray)
}
#message-input-attach svg,
#message-input-send svg {
  display: none !important;
}
#message-input-attach::before {
  content: "";
  position: absolute;
  display: inline-block;
  width: 1.65rem;
  height: 1.65rem;
  --svg: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22currentColor%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M21.44%2011.05l-9.19%209.19a6%206%200%200%201-8.49-8.49l9.19-9.19a4%204%200%200%201%205.66%205.66l-9.2%209.19a2%202%200%200%201-2.83-2.83l8.49-8.48%22%3E%3C%2Fpath%3E%3C%2Fsvg%3E");
  background-color: currentColor;
  -webkit-mask-image: var(--svg);
  mask-image: var(--svg);
  -webkit-mask-repeat: no-repeat;
  mask-repeat: no-repeat;
  -webkit-mask-size: 100% 100%;
  mask-size: 100% 100%;
}
#message-input-send::before {
  content: "";
  position: absolute;
  display: inline-block;
  width: 1.65rem;
  height: 1.65rem;
  --svg: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22currentColor%22%20stroke-width%3D%223%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22m5%2012%207-7%207%207%22%3E%3C%2Fpath%3E%3Cpath%20d%3D%22M12%2019V5%22%3E%3C%2Fpath%3E%3C%2Fsvg%3E");
  background-color: currentColor;
  -webkit-mask-image: var(--svg);
  mask-image: var(--svg);
  -webkit-mask-repeat: no-repeat;
  mask-repeat: no-repeat;
  -webkit-mask-size: 100% 100%;
  mask-size: 100% 100%;
}
a,
a:active,
a:focus {
  outline: none !important;
}
[data-spinner] {
  position: relative;
}
[data-spinner]::after {
  content: '';
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  width: 30px;
  height: 30px;
  border: 3px solid rgba(128, 128, 128, 0.125);
  border-top: 3px solid var(--user-color);
  border-radius: 50%;
  animation: spin 1s linear infinite;
  z-index: 1100;
  pointer-events: none;
}
@keyframes spin {
  0% {
    transform: translate(-50%, -50%) rotate(0deg);
  }
  100% {
    transform: translate(-50%, -50%) rotate(360deg);
  }
}
