discord-transcript-ui 1.0.0 → 1.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -10,7 +10,8 @@ across *all* transcripts, and both loadable from several CDNs with a fallback ch
10
10
 
11
11
  | Artifact | Raw | gzip | brotli |
12
12
  | --- | --- | --- | --- |
13
- | `discord-transcript.min.css` | 32.5 KB | **6.1 KB** | 5.4 KB |
13
+ | `discord-transcript.min.css` (default tags) | 33.4 KB | **6.2 KB** | 5.5 KB |
14
+ | `discord-transcript.short.min.css` (compact tags, opt-in) | 29.0 KB | **6.0 KB** | 5.3 KB |
14
15
  | `discord-transcript.min.js` (optional) | 14.9 KB | **4.8 KB** | 4.2 KB |
15
16
 
16
17
  A transcript HTML file then contains only its own text and markup.
@@ -22,21 +23,21 @@ A transcript HTML file then contains only its own text and markup.
22
23
  <html lang="en">
23
24
  <head>
24
25
  <meta charset="utf-8" />
25
- <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/discord-transcript-ui@1.0.0/dist/discord-transcript.min.css" />
26
+ <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/discord-transcript-ui@1.0.1/dist/discord-transcript.min.css" />
26
27
  <script>
27
28
  window.$discordMessage = {
28
29
  profiles: {
29
- skyra: { author: 'Skyra', avatar: '…', roleColor: '#5865f2', bot: true, verified: true }
30
+ miona: { author: 'Miona', avatar: '…', roleColor: '#5865f2', bot: true, verified: true }
30
31
  }
31
32
  };
32
33
  </script>
33
- <script src="https://cdn.jsdelivr.net/npm/discord-transcript-ui@1.0.0/dist/discord-transcript.min.js" defer></script>
34
+ <script src="https://cdn.jsdelivr.net/npm/discord-transcript-ui@1.0.1/dist/discord-transcript.min.js" defer></script>
34
35
  </head>
35
36
  <body class="dt-page">
36
37
  <div class="dt-page__inner">
37
38
  <discord-messages channel-name="general" channel-type="text">
38
- <discord-message profile="skyra" timestamp="2024-03-15T14:31:00Z">
39
- Hello, <discord-mention>Alyx</discord-mention>!
39
+ <discord-message profile="miona" timestamp="2024-03-15T14:31:00Z">
40
+ Hello, <discord-mention>Piton</discord-mention>!
40
41
  </discord-message>
41
42
  </discord-messages>
42
43
  </div>
@@ -280,9 +280,14 @@ discord-messages[data-theme='dark'] {
280
280
  text-decoration: line-through;
281
281
  }
282
282
 
283
+ /* Discord's "-# small print" (subtext). Discord renders it as <small> at
284
+ .875rem in the subtle text colour, on its own line; it is not a subscript.
285
+ Value from Discord's live CSS: docs/DESIGN-TOKENS.md, "Small / <small>". */
283
286
  :where(discord-subscript) {
284
- font-size: 0.8125rem;
285
- vertical-align: sub;
287
+ display: block;
288
+ color: var(--dt-text-subtle);
289
+ font-size: 0.875rem;
290
+ line-height: 1.20313rem;
286
291
  }
287
292
 
288
293
  /* Markdown headings */
@@ -544,9 +549,10 @@ discord-message:not([data-dt-ready])[author='']::before {
544
549
  display: inline-flex;
545
550
  align-items: center;
546
551
  justify-content: center;
547
- height: 15px;
548
- padding: 0 4px;
549
- border-radius: 3px;
552
+ gap: 3px;
553
+ height: 16px;
554
+ padding: 0 5px;
555
+ border-radius: 4px;
550
556
  background: var(--dt-brand);
551
557
  color: var(--dt-text-on-brand);
552
558
  font-size: 0.625rem;
@@ -556,15 +562,17 @@ discord-message:not([data-dt-ready])[author='']::before {
556
562
  text-transform: uppercase;
557
563
  }
558
564
 
565
+ /* Verified bot / application tag: a slightly rounded blurple rectangle reading
566
+ "✓ APP" (the tick is drawn here, the text comes from the script so that it is
567
+ real, readable text rather than generated content). */
559
568
  .dt-badge--verified {
560
- width: 15px;
561
- padding: 0;
562
- border-radius: 50%;
569
+ padding: 0 5px 0 4px;
563
570
  }
564
571
 
565
- .dt-badge--verified::after {
572
+ .dt-badge--verified::before {
566
573
  content: '\2713';
567
- font-size: 9px;
574
+ font-size: 0.75rem;
575
+ line-height: 1;
568
576
  }
569
577
 
570
578
  .dt-badge--server {
@@ -731,7 +739,12 @@ discord-author-info:not([data-dt-ready])::before {
731
739
  content: attr(author);
732
740
  }
733
741
 
734
- :where(discord-author-info[bot], discord-author-info[server], discord-author-info[official-app], discord-author-info[op])
742
+ :where(
743
+ discord-author-info[bot],
744
+ discord-author-info[server],
745
+ discord-author-info[official-app],
746
+ discord-author-info[op]
747
+ )
735
748
  ::after {
736
749
  margin-left: 4px;
737
750
  padding: 0 4px;
@@ -743,8 +756,14 @@ discord-author-info:not([data-dt-ready])::before {
743
756
  line-height: 15px;
744
757
  }
745
758
 
759
+ /* Bots are tagged "APP". Verified bots add the checkmark, so they read "✓ APP"
760
+ (equal :where() specificity, so the later rule wins for verified bots). */
746
761
  :where(discord-author-info[bot])::after {
747
- content: 'BOT';
762
+ content: 'APP';
763
+ }
764
+
765
+ :where(discord-author-info[bot][verified])::after {
766
+ content: '\2713\00a0APP';
748
767
  }
749
768
 
750
769
  :where(discord-author-info[server])::after {
@@ -1139,6 +1158,19 @@ discord-reply[deleted]::before {
1139
1158
  color: var(--dt-text-muted);
1140
1159
  }
1141
1160
 
1161
+ /* A reply preview sits above the author row (Discord's layout): the reply takes
1162
+ the first grid row, so the avatar and the author name share the second. */
1163
+ .dt-msg--has-reply > :where(discord-reply),
1164
+ .dt-msg--has-reply > :where(discord-command) {
1165
+ grid-column: 2;
1166
+ grid-row: 1;
1167
+ }
1168
+
1169
+ .dt-msg--has-reply > .dt-avatar,
1170
+ .dt-msg--has-reply > .dt-content {
1171
+ grid-row: 2;
1172
+ }
1173
+
1142
1174
  /* Curved connector, drawn only once the reply sits in the content column. */
1143
1175
  discord-message[data-dt-ready] :where(discord-reply)::after {
1144
1176
  content: '';
@@ -1698,6 +1730,8 @@ discord-reaction:not([data-dt-ready])::before {
1698
1730
  }
1699
1731
 
1700
1732
  discord-reaction[emoji^='http']:not([data-dt-ready])::before,
1733
+ discord-reaction[emoji^='data:']:not([data-dt-ready])::before,
1734
+ discord-reaction[emoji^='blob:']:not([data-dt-ready])::before,
1701
1735
  discord-reaction[emoji^='/']:not([data-dt-ready])::before,
1702
1736
  discord-reaction[emoji^='./']:not([data-dt-ready])::before,
1703
1737
  discord-reaction:not([emoji]):not([data-dt-ready])::before {
@@ -1719,8 +1753,10 @@ discord-reaction[count='1']:not([data-dt-ready])::after {
1719
1753
  :where(discord-reaction) img,
1720
1754
  .dt-reaction-emoji {
1721
1755
  display: inline-block;
1756
+ flex: none;
1722
1757
  width: 1rem;
1723
1758
  height: 1rem;
1759
+ overflow: hidden;
1724
1760
  object-fit: contain;
1725
1761
  vertical-align: middle;
1726
1762
  }
@@ -1810,17 +1846,32 @@ discord-reaction[count='1']:not([data-dt-ready])::after {
1810
1846
  display: inline-flex;
1811
1847
  align-items: center;
1812
1848
  justify-content: center;
1813
- width: 15px;
1814
- height: 15px;
1815
- border-radius: 50%;
1849
+ gap: 3px;
1850
+ height: 16px;
1851
+ padding: 0 5px 0 4px;
1852
+ border-radius: 4px;
1816
1853
  background: var(--dt-brand);
1817
1854
  color: var(--dt-text-on-brand);
1818
- font-size: 9px;
1855
+ font-size: 0.625rem;
1856
+ font-weight: 600;
1857
+ line-height: 1;
1858
+ letter-spacing: 0.02em;
1859
+ text-transform: uppercase;
1819
1860
  vertical-align: -2px;
1820
1861
  }
1821
1862
 
1822
- :where(discord-verified-author-tag)::after {
1863
+ :where(discord-verified-author-tag)::before {
1823
1864
  content: '\2713';
1865
+ font-size: 0.75rem;
1866
+ line-height: 1;
1867
+ }
1868
+
1869
+ :where(discord-verified-author-tag:not([verified]))::before {
1870
+ content: none;
1871
+ }
1872
+
1873
+ :where(discord-verified-author-tag)::after {
1874
+ content: 'APP';
1824
1875
  }
1825
1876
 
1826
1877
  /* ==========================================================================
@@ -9,7 +9,7 @@
9
9
  *
10
10
  * Config (define it any time before DOMContentLoaded):
11
11
  * window.$discordMessage = {
12
- * profiles: { skyra: { author: 'Skyra', avatar: 'https://…', roleColor: '#ff0000', bot: true } },
12
+ * profiles: { miona: { author: 'Miona', avatar: 'https://…', roleColor: '#ff0000', bot: true } },
13
13
  * avatars: { default: 'blue', blue: 'https://cdn.discordapp.com/embed/avatars/0.png' }
14
14
  * };
15
15
  * window.discordTranscript = { groupWindow: 7, locale: 'en-US', observe: true };
@@ -49,6 +49,22 @@
49
49
  var relativeTimers = [];
50
50
  var relativeElements = [];
51
51
 
52
+ /* Tag names come in two vocabularies: the readable discord-* default, and the
53
+ compact codes an opt-in renderer emits (see build/short-tags.mjs). Both are
54
+ matched, so this script works with either stylesheet. */
55
+ var SHORT_TAGS = {
56
+ messages: 'dms', message: 'dm', reply: 'drp', time: 'dti', spoiler: 'dsp',
57
+ embed: 'de', 'embed-footer': 'defo', 'file-attachment': 'dfil',
58
+ 'image-attachment': 'dimg', 'video-attachment': 'dvid', 'audio-attachment': 'daud',
59
+ reaction: 'dr', pre: 'dp', code: 'dc', 'custom-emoji': 'demo',
60
+ 'attachments': 'dats', thread: 'dth', 'author-info': 'dai'
61
+ };
62
+
63
+ function tag(name) {
64
+ var short = SHORT_TAGS[name];
65
+ return short ? ':is(discord-' + name + ',' + short + ')' : 'discord-' + name;
66
+ }
67
+
52
68
  /* ---------------------------------------------------------------- config */
53
69
 
54
70
  function config() {
@@ -239,9 +255,11 @@
239
255
 
240
256
  function badgeRow(identity) {
241
257
  var row = make('span', 'dt-badges');
258
+ /* Bots are tagged "APP"; verified bots additionally get the checkmark,
259
+ which is drawn by CSS (so the tag reads "✓ APP"). */
242
260
  if (identity.bot) {
243
- if (identity.verified) row.appendChild(make('span', 'dt-badge dt-badge--verified'));
244
- else row.appendChild(make('span', 'dt-badge', 'BOT'));
261
+ var botTag = identity.verified ? 'dt-badge dt-badge--verified' : 'dt-badge';
262
+ row.appendChild(make('span', botTag, 'APP'));
245
263
  } else if (identity.server) {
246
264
  row.appendChild(make('span', 'dt-badge dt-badge--server', 'SERVER'));
247
265
  } else if (identity.official) {
@@ -259,14 +277,29 @@
259
277
  var identity = identityOf(element);
260
278
  var stamp = parseStamp(element.getAttribute('timestamp'));
261
279
  var body = make('div', 'dt-body');
280
+ var replies = [];
262
281
 
263
282
  /* Optional parser-supplied header escapes the generated one. */
264
- var suppliedHeader = element.querySelector(':scope > discord-author-info, :scope > discord-message-header');
283
+ var suppliedHeader = element.querySelector(':scope > ' + tag('author-info') + ', :scope > discord-message-header');
265
284
  if (suppliedHeader) suppliedHeader.remove();
266
285
 
267
- while (element.firstChild) body.appendChild(element.firstChild);
286
+ /* Reply previews are lifted out of the body: Discord draws them above the
287
+ author row, with the avatar level with the author name. */
288
+ while (element.firstChild) {
289
+ var child = element.firstChild;
290
+ if (child.nodeType === 1 && (child.tagName === 'DISCORD-REPLY' || child.tagName === 'DISCORD-COMMAND')) {
291
+ replies.push(child);
292
+ element.removeChild(child);
293
+ continue;
294
+ }
295
+ body.appendChild(child);
296
+ }
268
297
 
269
298
  var wrap = make('div', 'dt-msg');
299
+ if (replies.length) {
300
+ wrap.classList.add('dt-msg--has-reply');
301
+ for (var replyIndex = 0; replyIndex < replies.length; replyIndex++) wrap.appendChild(replies[replyIndex]);
302
+ }
270
303
  wrap.appendChild(avatarNode(identity, 'dt-avatar'));
271
304
 
272
305
  var content = make('div', 'dt-content');
@@ -304,7 +337,7 @@
304
337
  function isJumbo(body) {
305
338
  var text = (body.textContent || '').replace(/\s+/g, '');
306
339
  if (text.length > 0) return false;
307
- var emoji = body.querySelectorAll('discord-custom-emoji, img.emoji');
340
+ var emoji = body.querySelectorAll(tag('custom-emoji') + ', img.emoji');
308
341
  return emoji.length > 0 && emoji.length <= 6;
309
342
  }
310
343
 
@@ -394,7 +427,7 @@
394
427
  }
395
428
 
396
429
  function upgradeSpoilers(root) {
397
- var spoilers = root.querySelectorAll('discord-spoiler:not([data-dt-ready])');
430
+ var spoilers = root.querySelectorAll(tag('spoiler') + ':not([data-dt-ready])');
398
431
  for (var i = 0; i < spoilers.length; i++) {
399
432
  var spoiler = spoilers[i];
400
433
  spoiler.setAttribute('data-dt-ready', '');
@@ -404,7 +437,7 @@
404
437
  }
405
438
 
406
439
  var media = root.querySelectorAll(
407
- 'discord-image-attachment[spoiler], discord-video-attachment[spoiler]'
440
+ tag('image-attachment') + '[spoiler], ' + tag('video-attachment') + '[spoiler]'
408
441
  );
409
442
  for (var j = 0; j < media.length; j++) {
410
443
  if (media[j].querySelector(':scope > .dt-spoiler-overlay')) continue;
@@ -422,8 +455,10 @@
422
455
  function upgradeReactions(element) {
423
456
  if (has(element, 'data-dt-ready')) return;
424
457
  var emoji = element.getAttribute('emoji');
425
- var isUrl = emoji && /^(https?:|\/|\.\/)/.test(emoji);
426
- if (isUrl) {
458
+ /* Any of these is an image source rather than a unicode character. Data
459
+ URIs matter: inline SVG/PNG emoji must never be emitted as visible text. */
460
+ var isImage = emoji && /^(https?:|data:|blob:|\/|\.\/)/i.test(emoji);
461
+ if (isImage) {
427
462
  var img = make('img', 'dt-reaction-emoji');
428
463
  img.src = emoji;
429
464
  img.alt = element.getAttribute('name') || '';
@@ -539,7 +574,7 @@
539
574
  img.decoding = 'async';
540
575
  media.appendChild(img);
541
576
  }
542
- var footer = content.querySelector(':scope > discord-embed-footer');
577
+ var footer = content.querySelector(':scope > ' + tag('embed-footer'));
543
578
  content.insertBefore(media, footer || null);
544
579
  }
545
580
 
@@ -619,7 +654,7 @@
619
654
 
620
655
  function lazyImages(root) {
621
656
  var images = root.querySelectorAll(
622
- 'discord-attachments img:not([loading]), discord-embed img:not([loading]), discord-embed video, discord-thread img'
657
+ tag('attachments') + ' img:not([loading]), ' + tag('embed') + ' img:not([loading]), ' + tag('embed') + ' video, ' + tag('thread') + ' img'
623
658
  );
624
659
  for (var i = 0; i < images.length; i++) images[i].setAttribute('loading', 'lazy');
625
660
  }
@@ -629,40 +664,40 @@
629
664
  function upgrade(root) {
630
665
  if (!root || !root.querySelectorAll) return;
631
666
 
632
- var messages = root.querySelectorAll('discord-message:not([data-dt-ready])');
667
+ var messages = root.querySelectorAll(tag('message') + ':not([data-dt-ready])');
633
668
  for (var i = 0; i < messages.length; i++) upgradeMessage(messages[i]);
634
669
 
635
- var lists = root.querySelectorAll('discord-messages');
670
+ var lists = root.querySelectorAll(tag('messages'));
636
671
  for (var j = 0; j < lists.length; j++) {
637
- var grouped = lists[j].querySelectorAll(':scope > discord-message');
672
+ var grouped = lists[j].querySelectorAll(':scope > ' + tag('message'));
638
673
  if (grouped.length) applyGrouping(grouped);
639
674
  }
640
675
 
641
- var replies = root.querySelectorAll('discord-reply:not([data-dt-ready])');
676
+ var replies = root.querySelectorAll(tag('reply') + ':not([data-dt-ready])');
642
677
  for (var k = 0; k < replies.length; k++) upgradeReply(replies[k]);
643
678
 
644
- var times = root.querySelectorAll('discord-time:not([data-dt-ready])');
679
+ var times = root.querySelectorAll(tag('time') + ':not([data-dt-ready])');
645
680
  for (var m = 0; m < times.length; m++) upgradeTime(times[m]);
646
681
 
647
- var embeds = root.querySelectorAll('discord-embed:not([data-dt-ready])');
682
+ var embeds = root.querySelectorAll(tag('embed') + ':not([data-dt-ready])');
648
683
  for (var n = 0; n < embeds.length; n++) upgradeEmbed(embeds[n]);
649
684
 
650
- var files = root.querySelectorAll('discord-file-attachment:not([data-dt-ready])');
685
+ var files = root.querySelectorAll(tag('file-attachment') + ':not([data-dt-ready])');
651
686
  for (var o = 0; o < files.length; o++) upgradeFile(files[o]);
652
687
 
653
- var images = root.querySelectorAll('discord-image-attachment:not([data-dt-ready])');
688
+ var images = root.querySelectorAll(tag('image-attachment') + ':not([data-dt-ready])');
654
689
  for (var p = 0; p < images.length; p++) upgradeImage(images[p]);
655
690
 
656
- var videos = root.querySelectorAll('discord-video-attachment:not([data-dt-ready])');
691
+ var videos = root.querySelectorAll(tag('video-attachment') + ':not([data-dt-ready])');
657
692
  for (var q = 0; q < videos.length; q++) upgradeMedia(videos[q], 'video');
658
693
 
659
- var audios = root.querySelectorAll('discord-audio-attachment:not([data-dt-ready])');
694
+ var audios = root.querySelectorAll(tag('audio-attachment') + ':not([data-dt-ready])');
660
695
  for (var r = 0; r < audios.length; r++) upgradeMedia(audios[r], 'audio');
661
696
 
662
- var reactions = root.querySelectorAll('discord-reaction:not([data-dt-ready])');
697
+ var reactions = root.querySelectorAll(tag('reaction') + ':not([data-dt-ready])');
663
698
  for (var s = 0; s < reactions.length; s++) upgradeReactions(reactions[s]);
664
699
 
665
- var codes = root.querySelectorAll('discord-pre:not([data-dt-ready])');
700
+ var codes = root.querySelectorAll(tag('pre') + ':not([data-dt-ready])');
666
701
  for (var t = 0; t < codes.length; t++) upgradeCode(codes[t]);
667
702
 
668
703
  upgradeSpoilers(root);
@@ -672,7 +707,7 @@
672
707
 
673
708
  /** `light-theme` on the container mirrors to data-theme for the CSS tokens. */
674
709
  function applyThemeFallbacks(root) {
675
- var lists = root.querySelectorAll('discord-messages');
710
+ var lists = root.querySelectorAll(tag('messages'));
676
711
  for (var i = 0; i < lists.length; i++) {
677
712
  if (lists[i].hasAttribute('light-theme') && !lists[i].hasAttribute('data-theme')) {
678
713
  lists[i].setAttribute('data-theme', 'light');
@@ -714,7 +749,7 @@
714
749
  var copy = target.closest('.dt-copy');
715
750
  if (copy && copy.parentElement && navigator.clipboard) {
716
751
  var pre = copy.parentElement;
717
- var text = pre.querySelector('discord-code, pre, code');
752
+ var text = pre.querySelector(tag('code') + ', pre, code');
718
753
  navigator.clipboard.writeText((text || pre).textContent).then(function () {
719
754
  copy.textContent = 'Copied';
720
755
  setTimeout(function () {
@@ -1,2 +1,2 @@
1
- /*! discord-transcript-ui v1.0.0 | MIT | https://github.com/x1xo/discord-transcript-ui */
2
- :root{--dt-font: "gg sans", "Noto Sans", "Helvetica Neue", Helvetica, Arial, sans-serif;--dt-font-mono: "gg mono", "Source Code Pro", Consolas, "Andale Mono WT", "Andale Mono", "Lucida Console", "DejaVu Sans Mono", "Liberation Mono", "Nimbus Mono L", Monaco, "Courier New", Courier, monospace;--dt-font-size: 1rem;--dt-line-height: 1.375rem;--dt-radius-sm: 4px;--dt-radius-md: 8px;--dt-radius-lg: 12px;--dt-bg-primary: #323339;--dt-bg-secondary: #393a41;--dt-bg-tertiary: #2c2d32;--dt-bg-embed: #393a41;--dt-bg-code: #323339;--dt-bg-inline-code: rgba(88, 101, 242, .078);--dt-bg-modifier-hover: rgba(151, 151, 159, .122);--dt-bg-modifier-active: rgba(151, 151, 159, .161);--dt-bg-message-hover: rgba(151, 151, 159, .039);--dt-bg-mentioned: rgba(248, 163, 0, .078);--dt-bg-scrollbar-thumb: #767780;--dt-bg-scrollbar-track: transparent;--dt-text-normal: #f3f3f4;--dt-text-strong: #ffffff;--dt-text-subtle: #c5c6ca;--dt-text-muted: #9d9ea5;--dt-text-link: #76aff6;--dt-text-on-brand: #ffffff;--dt-status-online: #3d9e60;--dt-status-idle: #ffcb6e;--dt-status-dnd: #dc4247;--dt-status-offline: #9d9ea5;--dt-border: rgba(151, 151, 159, .122);--dt-border-strong: rgba(151, 151, 159, .2);--dt-brand: #5865f2;--dt-accent-bar: var(--dt-brand);--dt-role-default: #f3f3f4;--dt-embed-default-color: #4f545c;--dt-divider: rgba(151, 151, 159, .122);--dt-line-color: #595a63;--dt-mention-bg: rgba(88, 101, 242, .239);--dt-mention-text: #cdd7ff;--dt-mention-role-color: var(--dt-role-default);--dt-mention-channel-bg: rgba(151, 151, 159, .122);--dt-mention-channel-text: var(--dt-text-normal);--dt-spoiler-bg: #7d7e87;--dt-spoiler-revealed-bg: rgba(151, 151, 159, .078);--dt-gutter: 16px;--dt-avatar-size: 40px;--dt-avatar-gap: 16px;--dt-msg-padding-right: 48px;--dt-reply-avatar-size: 16px;--dt-button-secondary: rgba(151, 151, 159, .122);--dt-button-secondary-hover: rgba(151, 151, 159, .2);--dt-button-primary: #5865f2;--dt-button-primary-hover: #4654c0;--dt-button-success: #248046;--dt-button-danger: #da3e44;--dt-button-link: rgba(151, 151, 159, .122);--dt-reaction-bg: rgba(151, 151, 159, .122);--dt-reaction-border: rgba(151, 151, 159, .122);--dt-reaction-bg-reacted: rgba(88, 101, 242, .239);--dt-reaction-border-reacted: #5865f2;--dt-reaction-text-reacted: #dfe4ff;--dt-focus-ring: #76aff6;--dt-transition: .12s ease}discord-messages[light-theme],discord-messages[data-theme=light],:root[data-theme=light]{--dt-bg-primary: #ffffff;--dt-bg-secondary: #ffffff;--dt-bg-tertiary: #f3f3f4;--dt-bg-embed: #ffffff;--dt-bg-code: #f3f3f4;--dt-bg-inline-code: rgba(88, 101, 242, .078);--dt-bg-modifier-hover: rgba(151, 151, 159, .122);--dt-bg-modifier-active: rgba(151, 151, 159, .161);--dt-bg-message-hover: rgba(151, 151, 159, .078);--dt-bg-mentioned: rgba(248, 163, 0, .1);--dt-bg-scrollbar-thumb: #8b8c94;--dt-bg-scrollbar-track: transparent;--dt-text-normal: #2e2e34;--dt-text-strong: #28282d;--dt-text-subtle: #595a63;--dt-text-muted: #6c6d76;--dt-text-link: #006dd4;--dt-role-default: #2e2e34;--dt-border: rgba(151, 151, 159, .278);--dt-border-strong: rgba(151, 151, 159, .4);--dt-divider: rgba(151, 151, 159, .278);--dt-line-color: #c5c6ca;--dt-embed-default-color: #d4d7dc;--dt-mention-bg: rgba(88, 101, 242, .15);--dt-mention-text: #2e3c88;--dt-mention-channel-bg: rgba(151, 151, 159, .122);--dt-mention-channel-text: #2e2e34;--dt-spoiler-bg: #8f9097;--dt-spoiler-revealed-bg: #ebeced;--dt-reaction-border: rgba(151, 151, 159, .278);--dt-reaction-text-reacted: #273478;--dt-status-online: #01783e;--dt-status-idle: #faaa00;--dt-status-dnd: #d22d39;--dt-status-offline: #5f606a;--dt-focus-ring: #006dd4}discord-messages[data-theme=dark]{--dt-bg-primary: #323339;--dt-bg-secondary: #393a41;--dt-bg-tertiary: #2c2d32;--dt-bg-embed: #393a41;--dt-bg-code: #323339;--dt-bg-inline-code: rgba(88, 101, 242, .078);--dt-bg-modifier-hover: rgba(151, 151, 159, .122);--dt-bg-modifier-active: rgba(151, 151, 159, .161);--dt-bg-message-hover: rgba(151, 151, 159, .039);--dt-bg-mentioned: rgba(248, 163, 0, .078);--dt-bg-scrollbar-thumb: #767780;--dt-bg-scrollbar-track: transparent;--dt-text-normal: #f3f3f4;--dt-text-strong: #ffffff;--dt-text-subtle: #c5c6ca;--dt-text-muted: #9d9ea5;--dt-text-link: #76aff6;--dt-role-default: #f3f3f4;--dt-border: rgba(151, 151, 159, .122);--dt-border-strong: rgba(151, 151, 159, .2);--dt-divider: rgba(151, 151, 159, .122);--dt-line-color: #595a63;--dt-embed-default-color: #4f545c;--dt-mention-bg: rgba(88, 101, 242, .239);--dt-mention-text: #cdd7ff;--dt-mention-channel-bg: rgba(151, 151, 159, .122);--dt-mention-channel-text: #f3f3f4;--dt-spoiler-bg: #7d7e87;--dt-spoiler-revealed-bg: rgba(151, 151, 159, .078);--dt-reaction-border: rgba(151, 151, 159, .122);--dt-reaction-text-reacted: #dfe4ff;--dt-status-online: #3d9e60;--dt-status-idle: #ffcb6e;--dt-status-dnd: #dc4247;--dt-status-offline: #9d9ea5;--dt-focus-ring: #76aff6}:where(discord-messages,discord-message,discord-author-info,discord-reply,discord-embed,discord-embed-description,discord-embed-fields,discord-embed-field,discord-embed-footer,discord-attachments,discord-image-attachment,discord-file-attachment,discord-audio-attachment,discord-video-attachment,discord-reactions,discord-reaction,discord-spoiler,discord-time,discord-mention,discord-custom-emoji,discord-code,discord-pre,discord-quote,discord-list-item,discord-unordered-list,discord-ordered-list,discord-header,discord-command,discord-system-message,discord-thread,discord-thread-message,discord-action-row,discord-button,discord-verified-author-tag){box-sizing:border-box}:where(discord-messages,discord-message,discord-embed,discord-attachments,discord-reactions,discord-reply,discord-system-message,discord-command,discord-thread,discord-thread-message,discord-action-row,discord-pre,discord-quote,discord-unordered-list,discord-ordered-list,discord-header){display:block;font-family:var(--dt-font);font-size:var(--dt-font-size);line-height:var(--dt-line-height);color:var(--dt-text-normal);text-align:left}:where(discord-message,discord-reply,discord-embed,discord-attachments,discord-reactions){-webkit-text-size-adjust:100%;word-wrap:break-word;overflow-wrap:anywhere}:where(discord-bold){font-weight:700}:where(discord-italic){font-style:italic}:where(discord-underlined){text-decoration:underline}:where(discord-strikethrough){text-decoration:line-through}:where(discord-subscript){font-size:.8125rem;vertical-align:sub}:where(discord-header){display:block;margin:8px 0 0;font-weight:600;line-height:1.375em}:where(discord-header[level="1"]){font-size:1.5rem}:where(discord-header[level="2"]){font-size:1.25rem}:where(discord-header[level="3"]){font-size:1rem}:where(discord-quote){display:block;margin:4px 0;padding:0 8px 0 12px;color:var(--dt-text-subtle);border-left:4px solid var(--dt-line-color);border-radius:var(--dt-radius-sm)}:where(discord-unordered-list,discord-ordered-list){margin:0;padding-left:1.375em}:where(discord-list-item){display:list-item;margin:0 0 4px;padding:0}:where(discord-unordered-list)>discord-list-item{list-style:disc outside}:where(discord-ordered-list)>discord-list-item{list-style:decimal outside}:where(discord-link){color:var(--dt-text-link);text-decoration:none}:where(discord-link):hover{text-decoration:underline}:where(discord-message,discord-embed,discord-embed-description,discord-embed-field,discord-reply,discord-quote) a:not([class]){color:var(--dt-text-link);text-decoration:none}:where(discord-message,discord-embed,discord-embed-description,discord-embed-field,discord-reply,discord-quote) a:not([class]):hover{text-decoration:underline}.dt-page{min-height:100vh;margin:0;background:var(--dt-bg-primary);color:var(--dt-text-normal);font-family:var(--dt-font);font-size:var(--dt-font-size);line-height:var(--dt-line-height);-webkit-font-smoothing:antialiased}.dt-page__inner{max-width:100%;margin:0 auto;padding:1rem 0 4rem}.dt-page__title{margin:0 0 1rem;padding:0 16px;font-size:1.25rem;font-weight:700;color:var(--dt-text-strong)}.dt-page__meta{margin:0 0 1.5rem;padding:0 16px;font-size:.875rem;color:var(--dt-text-muted)}:where(discord-messages){display:block;position:relative;margin:0 auto;padding:8px 0 16px;background:var(--dt-bg-primary);color:var(--dt-text-normal);font-family:var(--dt-font);line-height:var(--dt-line-height);overflow-x:hidden;overflow-y:auto;scrollbar-color:var(--dt-bg-scrollbar-thumb) var(--dt-bg-scrollbar-track)}:where(discord-messages[no-background]){background:transparent;padding:0}:where(discord-messages[channel-name]):before{content:attr(channel-name);display:block;margin:0 0 8px;padding:4px 16px 12px;border-bottom:1px solid var(--dt-divider);font-size:1.25rem;font-weight:700;color:var(--dt-text-strong)}discord-messages[channel-type=text][channel-name]:before,discord-messages[channel-type=voice][channel-name]:before,discord-messages[channel-type=thread][channel-name]:before,discord-messages[channel-type=forum][channel-name]:before,discord-messages[channel-type=locked][channel-name]:before{content:"#\a0" attr(channel-name)}discord-messages ::-webkit-scrollbar{width:16px;height:16px}discord-messages ::-webkit-scrollbar-thumb{background:var(--dt-bg-scrollbar-thumb);border:4px solid transparent;background-clip:padding-box;border-radius:8px}discord-messages ::-webkit-scrollbar-track{background:var(--dt-bg-scrollbar-track)}:where(discord-message){position:relative;display:block;margin:0;padding:2px var(--dt-msg-padding-right) 2px var(--dt-gutter);color:var(--dt-text-normal);font-family:var(--dt-font);font-size:var(--dt-font-size);line-height:var(--dt-line-height);-webkit-user-select:text;user-select:text}:where(discord-message:hover){background:var(--dt-bg-message-hover)}discord-message:not([data-dt-ready]):before{content:attr(author) "\a0";font-weight:600;color:var(--dt-role-default)}discord-message:not([data-dt-ready]):not([author]):before,discord-message:not([data-dt-ready])[author=""]:before{content:""}.dt-msg{display:grid;grid-template-columns:var(--dt-avatar-size) minmax(0,1fr);column-gap:var(--dt-avatar-gap);align-items:start}.dt-avatar{grid-column:1;width:var(--dt-avatar-size);height:var(--dt-avatar-size);margin-top:2px;border-radius:50%;overflow:hidden;background:var(--dt-bg-tertiary)}.dt-avatar img{display:block;width:100%;height:100%;object-fit:cover}.dt-content{grid-column:2;min-width:0}.dt-header{display:flex;flex-wrap:wrap;align-items:center;min-height:1.375rem}.dt-author{margin-right:8px;font-weight:500;color:var(--dt-role-default);text-decoration:none}.dt-author--interactive:hover{text-decoration:underline;cursor:pointer}.dt-badges{display:inline-flex;align-items:center;gap:4px;margin-right:8px}.dt-badge{display:inline-flex;align-items:center;justify-content:center;height:15px;padding:0 4px;border-radius:3px;background:var(--dt-brand);color:var(--dt-text-on-brand);font-size:.625rem;font-weight:600;line-height:1;letter-spacing:.02em;text-transform:uppercase}.dt-badge--verified{width:15px;padding:0;border-radius:50%}.dt-badge--verified:after{content:"\2713";font-size:9px}.dt-badge--server{background:#3ba55c}.dt-badge--official{background:#1abc84}.dt-timestamp{font-size:.75rem;line-height:1.375rem;color:var(--dt-text-muted);white-space:nowrap}.dt-timestamp:hover{text-decoration:underline}.dt-edited{margin-left:4px;font-size:.625rem;color:var(--dt-text-muted)}.dt-body{display:block;min-width:0}.dt-body>:first-child{margin-top:0}.dt-jumbo{display:flex;flex-wrap:wrap;align-items:center;gap:2px}.dt-jumbo discord-custom-emoji img,.dt-jumbo>img.emoji{width:48px;height:48px}discord-message[highlight],discord-message[ephemeral],discord-message[mentioned]{background:var(--dt-bg-mentioned)}discord-message[highlight]:after,discord-message[ephemeral]:after,discord-message[mentioned]:after{content:"";position:absolute;top:0;bottom:0;left:0;width:2px;background:var(--dt-accent-bar);pointer-events:none}discord-message[ephemeral]{background:#5865f214}discord-message[highlight]:hover,discord-message[mentioned]:hover{background:var(--dt-bg-mentioned)}discord-message[data-dt-continuation] .dt-avatar,discord-message[message-body-only] .dt-avatar{visibility:hidden}discord-message[data-dt-continuation] .dt-header,discord-message[message-body-only] .dt-header{display:none}discord-message[data-dt-continuation]:hover:before,discord-message[data-dt-continuation]:focus-within:before{content:attr(data-dt-short-time);position:absolute;top:3px;left:var(--dt-gutter);width:calc(var(--dt-avatar-size) - 4px);font-size:.6875rem;line-height:1.375rem;color:var(--dt-text-muted);white-space:nowrap;overflow:hidden;pointer-events:none}discord-message[data-dt-group-start]{margin-top:1.0625rem}discord-message:first-child{margin-top:0}discord-messages[compact-mode],discord-message[compact-mode]{--dt-avatar-size: 16px;--dt-avatar-gap: 8px;--dt-gutter: 16px;--dt-msg-padding-right: 16px}discord-messages[compact-mode] discord-message{padding-top:1px;padding-bottom:1px}discord-messages[compact-mode] .dt-avatar{margin-top:.25rem}discord-messages[compact-mode] .dt-header{display:inline;margin-right:8px}discord-messages[compact-mode] .dt-author{margin-right:6px}discord-messages[compact-mode] .dt-body{display:inline}discord-messages[compact-mode] .dt-timestamp{margin-right:6px;font-size:.6875rem}:where(discord-author-info){display:inline-flex;align-items:center;gap:4px;font-weight:500;color:var(--dt-role-default)}discord-author-info:not([data-dt-ready]):before{content:attr(author)}:where(discord-author-info[bot],discord-author-info[server],discord-author-info[official-app],discord-author-info[op]) :after{margin-left:4px;padding:0 4px;border-radius:3px;background:var(--dt-brand);color:var(--dt-text-on-brand);font-size:.625rem;font-weight:600;line-height:15px}:where(discord-author-info[bot]):after{content:"BOT"}:where(discord-author-info[server]):after{content:"SERVER";background:#3ba55c}:where(discord-author-info[official-app]):after{content:"OFFICIAL";background:#1abc84}:where(discord-author-info[op]):after{content:"OP"}:where(discord-mention){display:inline;padding:0 2px;border-radius:3px;background:var(--dt-mention-bg);color:var(--dt-mention-text);font-weight:500;cursor:pointer}:where(discord-mention):hover{background:var(--dt-bg-modifier-active)}:where(discord-mention[type=channel]),:where(discord-mention[type=voice]),:where(discord-mention[type=thread]),:where(discord-mention[type=forum]),:where(discord-mention[type=locked]){background:var(--dt-mention-channel-bg);color:var(--dt-mention-channel-text)}:where(discord-mention[type=role]){background:var(--dt-mention-bg);color:var(--dt-mention-role-color)}discord-mention:not([no-prefix]):before{content:"@"}discord-mention:not([no-prefix])[type=channel]:before,discord-mention:not([no-prefix])[type=voice]:before,discord-mention:not([no-prefix])[type=thread]:before,discord-mention:not([no-prefix])[type=forum]:before,discord-mention:not([no-prefix])[type=locked]:before{content:"#"}:where(discord-custom-emoji){display:inline-block;vertical-align:-.25em}:where(discord-custom-emoji) img{display:inline-block;width:1.375em;height:1.375em;object-fit:contain;vertical-align:middle}discord-custom-emoji:not([data-dt-ready]):not(:has(img)):before{content:attr(name);font-size:.75rem;color:var(--dt-text-muted)}:where(discord-time){display:inline;padding:0 2px;border-radius:3px;background:var(--dt-bg-modifier-hover);font-size:.875rem;white-space:nowrap}:where(discord-time):hover{background:var(--dt-bg-modifier-active)}:where(discord-spoiler){display:inline;border-radius:var(--dt-radius-sm);background:var(--dt-spoiler-bg);color:transparent;cursor:pointer;transition:background var(--dt-transition),color var(--dt-transition)}:where(discord-spoiler)::selection{background:transparent;color:transparent}:where(discord-spoiler[activated]),:where(discord-spoiler[revealed]),:where(discord-spoiler[data-dt-revealed]){background:var(--dt-spoiler-revealed-bg);color:inherit;cursor:auto}discord-spoiler:not([data-dt-ready]):hover{background:var(--dt-spoiler-revealed-bg);color:inherit}discord-spoiler[data-dt-ready]{outline:none}discord-spoiler[data-dt-ready]:focus-visible{box-shadow:0 0 0 2px var(--dt-focus-ring)}:where(discord-code){display:inline;padding:0 2px;border-radius:var(--dt-radius-sm);background:var(--dt-bg-inline-code);border:1px solid var(--dt-border-strong);font-family:var(--dt-font-mono);font-size:.85em;white-space:pre-wrap;word-break:break-word}:where(discord-code[multiline]){display:block;margin:6px 0 0;padding:8px 12px;border:1px solid var(--dt-border);border-radius:var(--dt-radius-sm);background:var(--dt-bg-code);font-size:.75rem;line-height:1rem;white-space:pre;overflow-x:auto;tab-size:4}:where(discord-pre){position:relative;display:block;margin:6px 0 0;padding:0;border:1px solid var(--dt-border);border-radius:var(--dt-radius-sm);background:var(--dt-bg-code);overflow:hidden}:where(discord-pre)>:where(discord-code),:where(discord-pre) pre{display:block;margin:0;padding:8px 12px;border:0;border-radius:0;background:none;font-family:var(--dt-font-mono);font-size:.75rem;line-height:1rem;white-space:pre;overflow-x:auto;tab-size:4}:where(discord-pre) code{font-family:inherit}.dt-code-lang{display:block;padding:6px 12px 0;font-family:var(--dt-font);font-size:.75rem;color:var(--dt-text-muted)}.dt-copy{position:absolute;top:6px;right:8px;display:none;padding:2px 8px;border:1px solid var(--dt-border-strong);border-radius:var(--dt-radius-sm);background:var(--dt-bg-primary);color:var(--dt-text-normal);font-family:var(--dt-font);font-size:.75rem;cursor:pointer}discord-pre:hover .dt-copy,.dt-copy:focus-visible{display:block}.dt-copy:hover{background:var(--dt-bg-modifier-hover)}:where(discord-system-message){position:relative;display:block;margin:0;padding:2px var(--dt-msg-padding-right) 2px calc(var(--dt-gutter) + var(--dt-avatar-size) + var(--dt-avatar-gap));background:transparent;color:var(--dt-text-muted);font-size:.9375rem}:where(discord-system-message):before{content:"";position:absolute;top:7px;left:calc(var(--dt-gutter) + (var(--dt-avatar-size) - 16px) / 2);width:16px;height:16px;border-radius:50%;background:var(--dt-bg-modifier-hover)}discord-system-message[type=join]:before{background:var(--dt-status-online)}discord-system-message[type=leave]:before,discord-system-message[type=missed-call]:before,discord-system-message[type=alert]:before,discord-system-message[type=error]:before{background:var(--dt-status-dnd)}discord-system-message[type=boost]:before{background:#ff73fa}discord-system-message[type=pin]:before{background:var(--dt-status-idle)}discord-system-message[type=upgrade]:before,discord-system-message[type=thread]:before,discord-system-message[type=edit]:before,discord-system-message[type=call]:before{background:var(--dt-brand)}discord-system-message a,discord-system-message :where(discord-link){color:var(--dt-text-muted);font-weight:500}discord-system-message .dt-system-time{margin-left:4px;font-size:.75rem;color:var(--dt-text-muted)}:where(discord-command){position:relative;display:block;margin:0 0 2px;padding:0;font-size:.9375rem}discord-command:not([data-dt-ready]):before{content:attr(author) " used /" attr(command) "\a0";font-weight:500;color:var(--dt-text-normal)}.dt-avatar--initials{display:flex;align-items:center;justify-content:center;color:#fff;font-size:.875rem;font-weight:600;text-transform:uppercase}:where(discord-thread){position:relative;display:block;margin:4px 0 0;padding:4px 120px 4px 12px;border-left:2px solid var(--dt-line-color);font-size:.875rem;color:var(--dt-text-muted)}discord-thread:not([data-dt-ready]):before{content:attr(name);font-weight:500;color:var(--dt-text-normal)}discord-thread[cta]:after{content:attr(cta) " " "\203a";position:absolute;top:4px;right:8px;font-size:.875rem;font-weight:500;color:var(--dt-text-muted);pointer-events:none}discord-thread-message{display:block;margin:2px 0;font-size:.875rem}discord-thread-message:not([data-dt-ready]):before{content:attr(author) "\a0";font-weight:500;color:var(--dt-role-default)}:where(discord-reply){position:relative;display:block;margin:0 0 2px;color:var(--dt-text-normal);font-size:.875rem;line-height:1.125rem;min-height:1.125rem}discord-reply:not([data-dt-ready]):before{content:attr(author) "\a0";font-weight:500;color:var(--dt-role-default)}discord-reply[mentions]:not([data-dt-ready]):before{content:"@" attr(author) "\a0"}discord-reply[deleted]>*{display:none}discord-reply[deleted]:before{content:"Original message was deleted";font-style:italic;font-weight:400;color:var(--dt-text-muted)}discord-message[data-dt-ready] :where(discord-reply):after{content:"";position:absolute;left:-36px;bottom:-2px;width:36px;height:12px;border-left:2px solid var(--dt-line-color);border-top:2px solid var(--dt-line-color);border-top-left-radius:6px;pointer-events:none}discord-reply[data-dt-ready] .dt-reply-avatar{display:inline-block;width:var(--dt-reply-avatar-size);height:var(--dt-reply-avatar-size);margin-right:4px;border-radius:50%;overflow:hidden;vertical-align:-3px;background:var(--dt-bg-tertiary)}discord-reply[data-dt-ready] .dt-reply-avatar img{display:block;width:100%;height:100%;object-fit:cover}discord-reply[data-dt-ready] .dt-reply-author{margin-right:4px;font-weight:500;color:var(--dt-role-default)}discord-reply[data-dt-ready] .dt-reply-author:hover{text-decoration:underline;cursor:pointer}discord-reply[data-dt-ready] .dt-reply-avatar,discord-reply[data-dt-ready] .dt-reply-author{-webkit-user-select:none;user-select:none}discord-messages[compact-mode] :where(discord-reply):after{display:none}:where(discord-embed){position:relative;display:block;margin:8px 0 0;padding:2px 16px 16px 12px;border:1px solid var(--dt-border);border-left:4px solid var(--dt-embed-color, var(--dt-embed-default-color));border-radius:var(--dt-radius-sm);background:var(--dt-bg-embed);max-width:516px;color:var(--dt-text-normal);font-size:.875rem;line-height:1.125rem}.dt-embed-content{min-width:0}discord-embed[thumbnail] .dt-embed-content,discord-embed[data-dt-thumbnail] .dt-embed-content,discord-embed:has(.dt-embed-thumbnail) .dt-embed-content{padding-right:96px}discord-embed[thumbnail]:not(:has(.dt-embed-content)),discord-embed[data-dt-thumbnail]:not(:has(.dt-embed-content)),discord-embed:has(.dt-embed-thumbnail):not(:has(.dt-embed-content)){padding-right:104px}discord-embed:not([data-dt-ready])[embed-title]:before{content:attr(embed-title);display:block;margin:0 0 8px;font-size:1rem;font-weight:600;line-height:1.375rem;color:var(--dt-text-strong)}discord-embed:not([data-dt-ready]):not([embed-title])[author-name]:before{content:attr(author-name);display:block;margin:0 0 8px;font-weight:600;line-height:1.125rem}.dt-embed-provider{display:block;margin-bottom:8px;color:var(--dt-text-normal)}.dt-embed-author{display:flex;align-items:center;gap:8px;margin-bottom:8px;font-size:.875rem;font-weight:600;line-height:1.125rem}.dt-embed-author img{width:24px;height:24px;border-radius:50%;object-fit:cover}.dt-embed-author a{color:var(--dt-text-normal);text-decoration:none}.dt-embed-author a:hover{text-decoration:underline}.dt-embed-title{display:block;margin:0 0 8px;font-size:1rem;font-weight:600;line-height:1.375rem;color:var(--dt-text-strong);text-decoration:none}.dt-embed-title--link,a.dt-embed-title:hover,.dt-embed-title a:hover{text-decoration:underline}a.dt-embed-title{color:var(--dt-text-link)}.dt-embed-thumbnail{position:absolute;top:8px;right:16px;width:80px;height:80px;border-radius:var(--dt-radius-sm);overflow:hidden;background:var(--dt-bg-tertiary)}.dt-embed-thumbnail img{display:block;width:100%;height:100%;object-fit:cover}:where(discord-embed-description){display:block;margin:0;font-size:.875rem;line-height:1.125rem;white-space:pre-line}:where(discord-embed-fields){display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:8px;margin-top:8px}:where(discord-embed-field){grid-column:1 / -1;min-width:0;font-size:.875rem;line-height:1.125rem}:where(discord-embed-field[inline]){grid-column:span 4}discord-embed[thumbnail] :where(discord-embed-field[inline]),discord-embed[data-dt-thumbnail] :where(discord-embed-field[inline]){grid-column:span 6}.dt-embed-field-title{display:block;margin:0 0 2px;font-weight:600;color:var(--dt-text-strong)}discord-embed-field:not([data-dt-ready]):not(:has(.dt-embed-field-title)):before{content:attr(field-title);display:block;margin-bottom:2px;font-weight:600;color:var(--dt-text-strong)}.dt-embed-image{display:block;margin-top:16px}.dt-embed-image img,.dt-embed-image video{display:block;max-width:100%;max-height:300px;border-radius:var(--dt-radius-sm);object-fit:contain}:where(discord-embed-footer){display:flex;align-items:center;gap:8px;margin-top:8px;font-size:.75rem;line-height:1rem;color:var(--dt-text-muted)}discord-embed-footer:empty:before{content:attr(footer)}.dt-embed-footer-icon{width:20px;height:20px;border-radius:50%;overflow:hidden;background:var(--dt-bg-tertiary)}.dt-embed-footer-icon img{display:block;width:100%;height:100%;object-fit:cover}.dt-embed-footer-sep{display:inline-block;width:4px;height:4px;border-radius:50%;background:var(--dt-text-muted);opacity:.6}:where(discord-attachments){display:flex;flex-direction:column;align-items:flex-start;gap:8px;margin-top:8px;max-width:550px}:where(discord-attachments:empty){display:none}:where(discord-image-attachment){position:relative;display:block;max-width:100%;border-radius:var(--dt-radius-md);overflow:hidden;line-height:0}:where(discord-image-attachment) img{display:block;max-width:100%;max-height:350px;border-radius:var(--dt-radius-md);object-fit:contain;cursor:pointer}:where(discord-image-attachment) a{display:block}discord-image-attachment[url]:not([data-dt-ready]):not(:has(img)){min-width:220px;min-height:120px;border:1px dashed var(--dt-border-strong)}discord-image-attachment[spoiler] img,discord-video-attachment[spoiler] video{filter:blur(44px);transition:filter var(--dt-transition)}discord-image-attachment[spoiler][data-dt-revealed] img,discord-video-attachment[spoiler][data-dt-revealed] video{filter:none}.dt-spoiler-overlay{position:absolute;inset:0;z-index:1;display:flex;align-items:center;justify-content:center;border:0;border-radius:var(--dt-radius-md);background:#00000059;color:#fff;font-family:var(--dt-font);font-size:.75rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;cursor:pointer}.dt-spoiler-overlay:hover{background:#00000073}discord-image-attachment[data-dt-revealed]>.dt-spoiler-overlay,discord-video-attachment[data-dt-revealed]>.dt-spoiler-overlay{display:none}:where(discord-file-attachment){display:flex;align-items:center;gap:12px;width:100%;max-width:420px;padding:12px;border:1px solid var(--dt-border);border-radius:var(--dt-radius-md);background:var(--dt-bg-secondary)}:where(discord-file-attachment) a{display:flex;align-items:center;gap:12px;width:100%;color:inherit;text-decoration:none}discord-file-attachment:empty{display:grid;grid-template-columns:30px minmax(0,1fr);align-content:center;column-gap:12px}discord-file-attachment:empty:before{grid-column:1;grid-row:1 / span 2;content:"FILE";display:flex;align-items:center;justify-content:center;width:30px;height:30px;border-radius:var(--dt-radius-sm);background:var(--dt-bg-modifier-hover);color:var(--dt-text-muted);font-size:.5625rem;font-weight:700}discord-file-attachment[type]:empty:before{content:attr(type)}discord-file-attachment:empty:after{grid-column:2;content:attr(name) "\a" attr(bytes) " " attr(bytes-unit);white-space:pre-line;line-height:1.25rem}discord-file-attachment[bytes=""]:empty:after,discord-file-attachment:not([bytes]):empty:after{content:attr(name)}.dt-file-icon{display:flex;align-items:center;justify-content:center;width:30px;height:30px;border-radius:var(--dt-radius-sm);background:var(--dt-bg-modifier-hover);color:var(--dt-text-muted);font-size:.5625rem;font-weight:700;text-transform:uppercase;flex:none}.dt-file-meta{display:flex;flex-direction:column;min-width:0}.dt-file-name{font-size:.875rem;font-weight:500;color:var(--dt-text-strong);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dt-file-size{font-size:.75rem;color:var(--dt-text-muted)}:where(discord-audio-attachment){display:block;width:100%;max-width:420px}:where(discord-audio-attachment) audio{display:block;width:100%;max-width:420px;border-radius:var(--dt-radius-md);outline:none}:where(discord-video-attachment){position:relative;display:block;max-width:100%;border-radius:var(--dt-radius-md);overflow:hidden;background:#000;line-height:0}:where(discord-video-attachment) video{display:block;max-width:100%;max-height:400px;border-radius:var(--dt-radius-md)}:where(discord-video-attachment) video:focus-visible,:where(discord-audio-attachment) audio:focus-visible{box-shadow:0 0 0 2px var(--dt-focus-ring)}:where(discord-reactions){display:flex;flex-wrap:wrap;align-items:center;gap:4px;margin-top:8px}:where(discord-reactions:empty){display:none}:where(discord-reaction){display:inline-flex;align-items:center;gap:6px;min-width:36px;height:24px;padding:2px 6px;border:1px solid var(--dt-reaction-border);border-radius:var(--dt-radius-md);background:var(--dt-reaction-bg);color:var(--dt-text-normal);font-family:var(--dt-font);font-size:.875rem;line-height:1;cursor:pointer;-webkit-user-select:none;user-select:none;transition:background var(--dt-transition),border-color var(--dt-transition)}:where(discord-reaction:hover){border-color:var(--dt-border-strong)}:where(discord-reaction[reacted]){background:var(--dt-reaction-bg-reacted);border-color:var(--dt-reaction-border-reacted);color:var(--dt-reaction-text-reacted)}discord-reaction:not([data-dt-ready]):before{content:attr(emoji);font-size:1rem;line-height:1}discord-reaction[emoji^=http]:not([data-dt-ready]):before,discord-reaction[emoji^="/"]:not([data-dt-ready]):before,discord-reaction[emoji^="./"]:not([data-dt-ready]):before,discord-reaction:not([emoji]):not([data-dt-ready]):before{content:none}discord-reaction:not([data-dt-ready]):after{content:attr(count);font-size:.875rem;font-weight:500;line-height:1}discord-reaction:not([count]):not([data-dt-ready]):after,discord-reaction[count="1"]:not([data-dt-ready]):after{content:none}:where(discord-reaction) img,.dt-reaction-emoji{display:inline-block;width:1rem;height:1rem;object-fit:contain;vertical-align:middle}.dt-reaction-count{font-size:.75rem;font-weight:600;line-height:1;color:inherit}:where(discord-action-row){display:flex;flex-wrap:wrap;gap:8px;margin-top:8px;max-width:600px}:where(discord-button){display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:32px;padding:2px 16px;border:0;border-radius:var(--dt-radius-sm);background:var(--dt-button-secondary);color:#fff;font-family:var(--dt-font);font-size:.875rem;font-weight:500;line-height:1rem;white-space:nowrap;cursor:pointer;transition:background var(--dt-transition)}:where(discord-button):hover{background:var(--dt-button-secondary-hover)}:where(discord-button[type=primary]){background:var(--dt-button-primary)}:where(discord-button[type=primary]):hover{background:var(--dt-button-primary-hover)}:where(discord-button[type=success]){background:var(--dt-button-success)}:where(discord-button[type=destructive],discord-button[type=danger]){background:var(--dt-button-danger)}:where(discord-button[type=link]){background:var(--dt-button-link)}:where(discord-button[disabled]){opacity:.5;cursor:not-allowed}.dt-button-emoji{width:1rem;height:1rem;object-fit:contain}.dt-button-link-icon{width:12px;height:12px;opacity:.9}:where(discord-verified-author-tag){display:inline-flex;align-items:center;justify-content:center;width:15px;height:15px;border-radius:50%;background:var(--dt-brand);color:var(--dt-text-on-brand);font-size:9px;vertical-align:-2px}:where(discord-verified-author-tag):after{content:"\2713"}.dt-divider{height:1px;margin:8px 0;border:0;background:var(--dt-divider)}.dt-sr-only{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}:where(discord-message,discord-embed,discord-attachments,discord-reactions) :focus-visible{outline:none;box-shadow:0 0 0 2px var(--dt-focus-ring)}@media(prefers-reduced-motion:reduce){:where(discord-spoiler),:where(discord-reaction),:where(discord-button),discord-image-attachment img{transition:none}}@media(max-width:480px){:where(discord-messages){--dt-msg-padding-right: 16px}:where(discord-embed),:where(discord-attachments){max-width:100%}}@media print{:root,discord-messages,discord-message{--dt-bg-primary: #ffffff;--dt-bg-secondary: #f2f3f5;--dt-bg-embed: #f2f3f5;--dt-bg-code: #f2f3f5;--dt-text-normal: #000000;--dt-text-strong: #000000;--dt-text-muted: #444444}:where(discord-spoiler){background:none;color:inherit}.dt-copy,.dt-spoiler-overlay{display:none!important}}
1
+ /*! discord-transcript-ui v1.1.0 | MIT | https://github.com/x1xo/discord-transcript-ui */
2
+ :root{--dt-font: "gg sans", "Noto Sans", "Helvetica Neue", Helvetica, Arial, sans-serif;--dt-font-mono: "gg mono", "Source Code Pro", Consolas, "Andale Mono WT", "Andale Mono", "Lucida Console", "DejaVu Sans Mono", "Liberation Mono", "Nimbus Mono L", Monaco, "Courier New", Courier, monospace;--dt-font-size: 1rem;--dt-line-height: 1.375rem;--dt-radius-sm: 4px;--dt-radius-md: 8px;--dt-radius-lg: 12px;--dt-bg-primary: #323339;--dt-bg-secondary: #393a41;--dt-bg-tertiary: #2c2d32;--dt-bg-embed: #393a41;--dt-bg-code: #323339;--dt-bg-inline-code: rgba(88, 101, 242, .078);--dt-bg-modifier-hover: rgba(151, 151, 159, .122);--dt-bg-modifier-active: rgba(151, 151, 159, .161);--dt-bg-message-hover: rgba(151, 151, 159, .039);--dt-bg-mentioned: rgba(248, 163, 0, .078);--dt-bg-scrollbar-thumb: #767780;--dt-bg-scrollbar-track: transparent;--dt-text-normal: #f3f3f4;--dt-text-strong: #ffffff;--dt-text-subtle: #c5c6ca;--dt-text-muted: #9d9ea5;--dt-text-link: #76aff6;--dt-text-on-brand: #ffffff;--dt-status-online: #3d9e60;--dt-status-idle: #ffcb6e;--dt-status-dnd: #dc4247;--dt-status-offline: #9d9ea5;--dt-border: rgba(151, 151, 159, .122);--dt-border-strong: rgba(151, 151, 159, .2);--dt-brand: #5865f2;--dt-accent-bar: var(--dt-brand);--dt-role-default: #f3f3f4;--dt-embed-default-color: #4f545c;--dt-divider: rgba(151, 151, 159, .122);--dt-line-color: #595a63;--dt-mention-bg: rgba(88, 101, 242, .239);--dt-mention-text: #cdd7ff;--dt-mention-role-color: var(--dt-role-default);--dt-mention-channel-bg: rgba(151, 151, 159, .122);--dt-mention-channel-text: var(--dt-text-normal);--dt-spoiler-bg: #7d7e87;--dt-spoiler-revealed-bg: rgba(151, 151, 159, .078);--dt-gutter: 16px;--dt-avatar-size: 40px;--dt-avatar-gap: 16px;--dt-msg-padding-right: 48px;--dt-reply-avatar-size: 16px;--dt-button-secondary: rgba(151, 151, 159, .122);--dt-button-secondary-hover: rgba(151, 151, 159, .2);--dt-button-primary: #5865f2;--dt-button-primary-hover: #4654c0;--dt-button-success: #248046;--dt-button-danger: #da3e44;--dt-button-link: rgba(151, 151, 159, .122);--dt-reaction-bg: rgba(151, 151, 159, .122);--dt-reaction-border: rgba(151, 151, 159, .122);--dt-reaction-bg-reacted: rgba(88, 101, 242, .239);--dt-reaction-border-reacted: #5865f2;--dt-reaction-text-reacted: #dfe4ff;--dt-focus-ring: #76aff6;--dt-transition: .12s ease}discord-messages[light-theme],discord-messages[data-theme=light],:root[data-theme=light]{--dt-bg-primary: #ffffff;--dt-bg-secondary: #ffffff;--dt-bg-tertiary: #f3f3f4;--dt-bg-embed: #ffffff;--dt-bg-code: #f3f3f4;--dt-bg-inline-code: rgba(88, 101, 242, .078);--dt-bg-modifier-hover: rgba(151, 151, 159, .122);--dt-bg-modifier-active: rgba(151, 151, 159, .161);--dt-bg-message-hover: rgba(151, 151, 159, .078);--dt-bg-mentioned: rgba(248, 163, 0, .1);--dt-bg-scrollbar-thumb: #8b8c94;--dt-bg-scrollbar-track: transparent;--dt-text-normal: #2e2e34;--dt-text-strong: #28282d;--dt-text-subtle: #595a63;--dt-text-muted: #6c6d76;--dt-text-link: #006dd4;--dt-role-default: #2e2e34;--dt-border: rgba(151, 151, 159, .278);--dt-border-strong: rgba(151, 151, 159, .4);--dt-divider: rgba(151, 151, 159, .278);--dt-line-color: #c5c6ca;--dt-embed-default-color: #d4d7dc;--dt-mention-bg: rgba(88, 101, 242, .15);--dt-mention-text: #2e3c88;--dt-mention-channel-bg: rgba(151, 151, 159, .122);--dt-mention-channel-text: #2e2e34;--dt-spoiler-bg: #8f9097;--dt-spoiler-revealed-bg: #ebeced;--dt-reaction-border: rgba(151, 151, 159, .278);--dt-reaction-text-reacted: #273478;--dt-status-online: #01783e;--dt-status-idle: #faaa00;--dt-status-dnd: #d22d39;--dt-status-offline: #5f606a;--dt-focus-ring: #006dd4}discord-messages[data-theme=dark]{--dt-bg-primary: #323339;--dt-bg-secondary: #393a41;--dt-bg-tertiary: #2c2d32;--dt-bg-embed: #393a41;--dt-bg-code: #323339;--dt-bg-inline-code: rgba(88, 101, 242, .078);--dt-bg-modifier-hover: rgba(151, 151, 159, .122);--dt-bg-modifier-active: rgba(151, 151, 159, .161);--dt-bg-message-hover: rgba(151, 151, 159, .039);--dt-bg-mentioned: rgba(248, 163, 0, .078);--dt-bg-scrollbar-thumb: #767780;--dt-bg-scrollbar-track: transparent;--dt-text-normal: #f3f3f4;--dt-text-strong: #ffffff;--dt-text-subtle: #c5c6ca;--dt-text-muted: #9d9ea5;--dt-text-link: #76aff6;--dt-role-default: #f3f3f4;--dt-border: rgba(151, 151, 159, .122);--dt-border-strong: rgba(151, 151, 159, .2);--dt-divider: rgba(151, 151, 159, .122);--dt-line-color: #595a63;--dt-embed-default-color: #4f545c;--dt-mention-bg: rgba(88, 101, 242, .239);--dt-mention-text: #cdd7ff;--dt-mention-channel-bg: rgba(151, 151, 159, .122);--dt-mention-channel-text: #f3f3f4;--dt-spoiler-bg: #7d7e87;--dt-spoiler-revealed-bg: rgba(151, 151, 159, .078);--dt-reaction-border: rgba(151, 151, 159, .122);--dt-reaction-text-reacted: #dfe4ff;--dt-status-online: #3d9e60;--dt-status-idle: #ffcb6e;--dt-status-dnd: #dc4247;--dt-status-offline: #9d9ea5;--dt-focus-ring: #76aff6}:where(discord-messages,discord-message,discord-author-info,discord-reply,discord-embed,discord-embed-description,discord-embed-fields,discord-embed-field,discord-embed-footer,discord-attachments,discord-image-attachment,discord-file-attachment,discord-audio-attachment,discord-video-attachment,discord-reactions,discord-reaction,discord-spoiler,discord-time,discord-mention,discord-custom-emoji,discord-code,discord-pre,discord-quote,discord-list-item,discord-unordered-list,discord-ordered-list,discord-header,discord-command,discord-system-message,discord-thread,discord-thread-message,discord-action-row,discord-button,discord-verified-author-tag){box-sizing:border-box}:where(discord-messages,discord-message,discord-embed,discord-attachments,discord-reactions,discord-reply,discord-system-message,discord-command,discord-thread,discord-thread-message,discord-action-row,discord-pre,discord-quote,discord-unordered-list,discord-ordered-list,discord-header){display:block;font-family:var(--dt-font);font-size:var(--dt-font-size);line-height:var(--dt-line-height);color:var(--dt-text-normal);text-align:left}:where(discord-message,discord-reply,discord-embed,discord-attachments,discord-reactions){-webkit-text-size-adjust:100%;word-wrap:break-word;overflow-wrap:anywhere}:where(discord-bold){font-weight:700}:where(discord-italic){font-style:italic}:where(discord-underlined){text-decoration:underline}:where(discord-strikethrough){text-decoration:line-through}:where(discord-subscript){display:block;color:var(--dt-text-subtle);font-size:.875rem;line-height:1.20313rem}:where(discord-header){display:block;margin:8px 0 0;font-weight:600;line-height:1.375em}:where(discord-header[level="1"]){font-size:1.5rem}:where(discord-header[level="2"]){font-size:1.25rem}:where(discord-header[level="3"]){font-size:1rem}:where(discord-quote){display:block;margin:4px 0;padding:0 8px 0 12px;color:var(--dt-text-subtle);border-left:4px solid var(--dt-line-color);border-radius:var(--dt-radius-sm)}:where(discord-unordered-list,discord-ordered-list){margin:0;padding-left:1.375em}:where(discord-list-item){display:list-item;margin:0 0 4px;padding:0}:where(discord-unordered-list)>discord-list-item{list-style:disc outside}:where(discord-ordered-list)>discord-list-item{list-style:decimal outside}:where(discord-link){color:var(--dt-text-link);text-decoration:none}:where(discord-link):hover{text-decoration:underline}:where(discord-message,discord-embed,discord-embed-description,discord-embed-field,discord-reply,discord-quote) a:not([class]){color:var(--dt-text-link);text-decoration:none}:where(discord-message,discord-embed,discord-embed-description,discord-embed-field,discord-reply,discord-quote) a:not([class]):hover{text-decoration:underline}.dt-page{min-height:100vh;margin:0;background:var(--dt-bg-primary);color:var(--dt-text-normal);font-family:var(--dt-font);font-size:var(--dt-font-size);line-height:var(--dt-line-height);-webkit-font-smoothing:antialiased}.dt-page__inner{max-width:100%;margin:0 auto;padding:1rem 0 4rem}.dt-page__title{margin:0 0 1rem;padding:0 16px;font-size:1.25rem;font-weight:700;color:var(--dt-text-strong)}.dt-page__meta{margin:0 0 1.5rem;padding:0 16px;font-size:.875rem;color:var(--dt-text-muted)}:where(discord-messages){display:block;position:relative;margin:0 auto;padding:8px 0 16px;background:var(--dt-bg-primary);color:var(--dt-text-normal);font-family:var(--dt-font);line-height:var(--dt-line-height);overflow-x:hidden;overflow-y:auto;scrollbar-color:var(--dt-bg-scrollbar-thumb) var(--dt-bg-scrollbar-track)}:where(discord-messages[no-background]){background:transparent;padding:0}:where(discord-messages[channel-name]):before{content:attr(channel-name);display:block;margin:0 0 8px;padding:4px 16px 12px;border-bottom:1px solid var(--dt-divider);font-size:1.25rem;font-weight:700;color:var(--dt-text-strong)}discord-messages[channel-type=text][channel-name]:before,discord-messages[channel-type=voice][channel-name]:before,discord-messages[channel-type=thread][channel-name]:before,discord-messages[channel-type=forum][channel-name]:before,discord-messages[channel-type=locked][channel-name]:before{content:"#\a0" attr(channel-name)}discord-messages ::-webkit-scrollbar{width:16px;height:16px}discord-messages ::-webkit-scrollbar-thumb{background:var(--dt-bg-scrollbar-thumb);border:4px solid transparent;background-clip:padding-box;border-radius:8px}discord-messages ::-webkit-scrollbar-track{background:var(--dt-bg-scrollbar-track)}:where(discord-message){position:relative;display:block;margin:0;padding:2px var(--dt-msg-padding-right) 2px var(--dt-gutter);color:var(--dt-text-normal);font-family:var(--dt-font);font-size:var(--dt-font-size);line-height:var(--dt-line-height);-webkit-user-select:text;user-select:text}:where(discord-message:hover){background:var(--dt-bg-message-hover)}discord-message:not([data-dt-ready]):before{content:attr(author) "\a0";font-weight:600;color:var(--dt-role-default)}discord-message:not([data-dt-ready]):not([author]):before,discord-message:not([data-dt-ready])[author=""]:before{content:""}.dt-msg{display:grid;grid-template-columns:var(--dt-avatar-size) minmax(0,1fr);column-gap:var(--dt-avatar-gap);align-items:start}.dt-avatar{grid-column:1;width:var(--dt-avatar-size);height:var(--dt-avatar-size);margin-top:2px;border-radius:50%;overflow:hidden;background:var(--dt-bg-tertiary)}.dt-avatar img{display:block;width:100%;height:100%;object-fit:cover}.dt-content{grid-column:2;min-width:0}.dt-header{display:flex;flex-wrap:wrap;align-items:center;min-height:1.375rem}.dt-author{margin-right:8px;font-weight:500;color:var(--dt-role-default);text-decoration:none}.dt-author--interactive:hover{text-decoration:underline;cursor:pointer}.dt-badges{display:inline-flex;align-items:center;gap:4px;margin-right:8px}.dt-badge{display:inline-flex;align-items:center;justify-content:center;gap:3px;height:16px;padding:0 5px;border-radius:4px;background:var(--dt-brand);color:var(--dt-text-on-brand);font-size:.625rem;font-weight:600;line-height:1;letter-spacing:.02em;text-transform:uppercase}.dt-badge--verified{padding:0 5px 0 4px}.dt-badge--verified:before{content:"\2713";font-size:.75rem;line-height:1}.dt-badge--server{background:#3ba55c}.dt-badge--official{background:#1abc84}.dt-timestamp{font-size:.75rem;line-height:1.375rem;color:var(--dt-text-muted);white-space:nowrap}.dt-timestamp:hover{text-decoration:underline}.dt-edited{margin-left:4px;font-size:.625rem;color:var(--dt-text-muted)}.dt-body{display:block;min-width:0}.dt-body>:first-child{margin-top:0}.dt-jumbo{display:flex;flex-wrap:wrap;align-items:center;gap:2px}.dt-jumbo discord-custom-emoji img,.dt-jumbo>img.emoji{width:48px;height:48px}discord-message[highlight],discord-message[ephemeral],discord-message[mentioned]{background:var(--dt-bg-mentioned)}discord-message[highlight]:after,discord-message[ephemeral]:after,discord-message[mentioned]:after{content:"";position:absolute;top:0;bottom:0;left:0;width:2px;background:var(--dt-accent-bar);pointer-events:none}discord-message[ephemeral]{background:#5865f214}discord-message[highlight]:hover,discord-message[mentioned]:hover{background:var(--dt-bg-mentioned)}discord-message[data-dt-continuation] .dt-avatar,discord-message[message-body-only] .dt-avatar{visibility:hidden}discord-message[data-dt-continuation] .dt-header,discord-message[message-body-only] .dt-header{display:none}discord-message[data-dt-continuation]:hover:before,discord-message[data-dt-continuation]:focus-within:before{content:attr(data-dt-short-time);position:absolute;top:3px;left:var(--dt-gutter);width:calc(var(--dt-avatar-size) - 4px);font-size:.6875rem;line-height:1.375rem;color:var(--dt-text-muted);white-space:nowrap;overflow:hidden;pointer-events:none}discord-message[data-dt-group-start]{margin-top:1.0625rem}discord-message:first-child{margin-top:0}discord-messages[compact-mode],discord-message[compact-mode]{--dt-avatar-size: 16px;--dt-avatar-gap: 8px;--dt-gutter: 16px;--dt-msg-padding-right: 16px}discord-messages[compact-mode] discord-message{padding-top:1px;padding-bottom:1px}discord-messages[compact-mode] .dt-avatar{margin-top:.25rem}discord-messages[compact-mode] .dt-header{display:inline;margin-right:8px}discord-messages[compact-mode] .dt-author{margin-right:6px}discord-messages[compact-mode] .dt-body{display:inline}discord-messages[compact-mode] .dt-timestamp{margin-right:6px;font-size:.6875rem}:where(discord-author-info){display:inline-flex;align-items:center;gap:4px;font-weight:500;color:var(--dt-role-default)}discord-author-info:not([data-dt-ready]):before{content:attr(author)}:where(discord-author-info[bot],discord-author-info[server],discord-author-info[official-app],discord-author-info[op]) :after{margin-left:4px;padding:0 4px;border-radius:3px;background:var(--dt-brand);color:var(--dt-text-on-brand);font-size:.625rem;font-weight:600;line-height:15px}:where(discord-author-info[bot]):after{content:"APP"}:where(discord-author-info[bot][verified]):after{content:"\2713\a0aPP"}:where(discord-author-info[server]):after{content:"SERVER";background:#3ba55c}:where(discord-author-info[official-app]):after{content:"OFFICIAL";background:#1abc84}:where(discord-author-info[op]):after{content:"OP"}:where(discord-mention){display:inline;padding:0 2px;border-radius:3px;background:var(--dt-mention-bg);color:var(--dt-mention-text);font-weight:500;cursor:pointer}:where(discord-mention):hover{background:var(--dt-bg-modifier-active)}:where(discord-mention[type=channel]),:where(discord-mention[type=voice]),:where(discord-mention[type=thread]),:where(discord-mention[type=forum]),:where(discord-mention[type=locked]){background:var(--dt-mention-channel-bg);color:var(--dt-mention-channel-text)}:where(discord-mention[type=role]){background:var(--dt-mention-bg);color:var(--dt-mention-role-color)}discord-mention:not([no-prefix]):before{content:"@"}discord-mention:not([no-prefix])[type=channel]:before,discord-mention:not([no-prefix])[type=voice]:before,discord-mention:not([no-prefix])[type=thread]:before,discord-mention:not([no-prefix])[type=forum]:before,discord-mention:not([no-prefix])[type=locked]:before{content:"#"}:where(discord-custom-emoji){display:inline-block;vertical-align:-.25em}:where(discord-custom-emoji) img{display:inline-block;width:1.375em;height:1.375em;object-fit:contain;vertical-align:middle}discord-custom-emoji:not([data-dt-ready]):not(:has(img)):before{content:attr(name);font-size:.75rem;color:var(--dt-text-muted)}:where(discord-time){display:inline;padding:0 2px;border-radius:3px;background:var(--dt-bg-modifier-hover);font-size:.875rem;white-space:nowrap}:where(discord-time):hover{background:var(--dt-bg-modifier-active)}:where(discord-spoiler){display:inline;border-radius:var(--dt-radius-sm);background:var(--dt-spoiler-bg);color:transparent;cursor:pointer;transition:background var(--dt-transition),color var(--dt-transition)}:where(discord-spoiler)::selection{background:transparent;color:transparent}:where(discord-spoiler[activated]),:where(discord-spoiler[revealed]),:where(discord-spoiler[data-dt-revealed]){background:var(--dt-spoiler-revealed-bg);color:inherit;cursor:auto}discord-spoiler:not([data-dt-ready]):hover{background:var(--dt-spoiler-revealed-bg);color:inherit}discord-spoiler[data-dt-ready]{outline:none}discord-spoiler[data-dt-ready]:focus-visible{box-shadow:0 0 0 2px var(--dt-focus-ring)}:where(discord-code){display:inline;padding:0 2px;border-radius:var(--dt-radius-sm);background:var(--dt-bg-inline-code);border:1px solid var(--dt-border-strong);font-family:var(--dt-font-mono);font-size:.85em;white-space:pre-wrap;word-break:break-word}:where(discord-code[multiline]){display:block;margin:6px 0 0;padding:8px 12px;border:1px solid var(--dt-border);border-radius:var(--dt-radius-sm);background:var(--dt-bg-code);font-size:.75rem;line-height:1rem;white-space:pre;overflow-x:auto;tab-size:4}:where(discord-pre){position:relative;display:block;margin:6px 0 0;padding:0;border:1px solid var(--dt-border);border-radius:var(--dt-radius-sm);background:var(--dt-bg-code);overflow:hidden}:where(discord-pre)>:where(discord-code),:where(discord-pre) pre{display:block;margin:0;padding:8px 12px;border:0;border-radius:0;background:none;font-family:var(--dt-font-mono);font-size:.75rem;line-height:1rem;white-space:pre;overflow-x:auto;tab-size:4}:where(discord-pre) code{font-family:inherit}.dt-code-lang{display:block;padding:6px 12px 0;font-family:var(--dt-font);font-size:.75rem;color:var(--dt-text-muted)}.dt-copy{position:absolute;top:6px;right:8px;display:none;padding:2px 8px;border:1px solid var(--dt-border-strong);border-radius:var(--dt-radius-sm);background:var(--dt-bg-primary);color:var(--dt-text-normal);font-family:var(--dt-font);font-size:.75rem;cursor:pointer}discord-pre:hover .dt-copy,.dt-copy:focus-visible{display:block}.dt-copy:hover{background:var(--dt-bg-modifier-hover)}:where(discord-system-message){position:relative;display:block;margin:0;padding:2px var(--dt-msg-padding-right) 2px calc(var(--dt-gutter) + var(--dt-avatar-size) + var(--dt-avatar-gap));background:transparent;color:var(--dt-text-muted);font-size:.9375rem}:where(discord-system-message):before{content:"";position:absolute;top:7px;left:calc(var(--dt-gutter) + (var(--dt-avatar-size) - 16px) / 2);width:16px;height:16px;border-radius:50%;background:var(--dt-bg-modifier-hover)}discord-system-message[type=join]:before{background:var(--dt-status-online)}discord-system-message[type=leave]:before,discord-system-message[type=missed-call]:before,discord-system-message[type=alert]:before,discord-system-message[type=error]:before{background:var(--dt-status-dnd)}discord-system-message[type=boost]:before{background:#ff73fa}discord-system-message[type=pin]:before{background:var(--dt-status-idle)}discord-system-message[type=upgrade]:before,discord-system-message[type=thread]:before,discord-system-message[type=edit]:before,discord-system-message[type=call]:before{background:var(--dt-brand)}discord-system-message a,discord-system-message :where(discord-link){color:var(--dt-text-muted);font-weight:500}discord-system-message .dt-system-time{margin-left:4px;font-size:.75rem;color:var(--dt-text-muted)}:where(discord-command){position:relative;display:block;margin:0 0 2px;padding:0;font-size:.9375rem}discord-command:not([data-dt-ready]):before{content:attr(author) " used /" attr(command) "\a0";font-weight:500;color:var(--dt-text-normal)}.dt-avatar--initials{display:flex;align-items:center;justify-content:center;color:#fff;font-size:.875rem;font-weight:600;text-transform:uppercase}:where(discord-thread){position:relative;display:block;margin:4px 0 0;padding:4px 120px 4px 12px;border-left:2px solid var(--dt-line-color);font-size:.875rem;color:var(--dt-text-muted)}discord-thread:not([data-dt-ready]):before{content:attr(name);font-weight:500;color:var(--dt-text-normal)}discord-thread[cta]:after{content:attr(cta) " " "\203a";position:absolute;top:4px;right:8px;font-size:.875rem;font-weight:500;color:var(--dt-text-muted);pointer-events:none}discord-thread-message{display:block;margin:2px 0;font-size:.875rem}discord-thread-message:not([data-dt-ready]):before{content:attr(author) "\a0";font-weight:500;color:var(--dt-role-default)}:where(discord-reply){position:relative;display:block;margin:0 0 2px;color:var(--dt-text-normal);font-size:.875rem;line-height:1.125rem;min-height:1.125rem}discord-reply:not([data-dt-ready]):before{content:attr(author) "\a0";font-weight:500;color:var(--dt-role-default)}discord-reply[mentions]:not([data-dt-ready]):before{content:"@" attr(author) "\a0"}discord-reply[deleted]>*{display:none}discord-reply[deleted]:before{content:"Original message was deleted";font-style:italic;font-weight:400;color:var(--dt-text-muted)}.dt-msg--has-reply>:where(discord-reply),.dt-msg--has-reply>:where(discord-command){grid-column:2;grid-row:1}.dt-msg--has-reply>.dt-avatar,.dt-msg--has-reply>.dt-content{grid-row:2}discord-message[data-dt-ready] :where(discord-reply):after{content:"";position:absolute;left:-36px;bottom:-2px;width:36px;height:12px;border-left:2px solid var(--dt-line-color);border-top:2px solid var(--dt-line-color);border-top-left-radius:6px;pointer-events:none}discord-reply[data-dt-ready] .dt-reply-avatar{display:inline-block;width:var(--dt-reply-avatar-size);height:var(--dt-reply-avatar-size);margin-right:4px;border-radius:50%;overflow:hidden;vertical-align:-3px;background:var(--dt-bg-tertiary)}discord-reply[data-dt-ready] .dt-reply-avatar img{display:block;width:100%;height:100%;object-fit:cover}discord-reply[data-dt-ready] .dt-reply-author{margin-right:4px;font-weight:500;color:var(--dt-role-default)}discord-reply[data-dt-ready] .dt-reply-author:hover{text-decoration:underline;cursor:pointer}discord-reply[data-dt-ready] .dt-reply-avatar,discord-reply[data-dt-ready] .dt-reply-author{-webkit-user-select:none;user-select:none}discord-messages[compact-mode] :where(discord-reply):after{display:none}:where(discord-embed){position:relative;display:block;margin:8px 0 0;padding:2px 16px 16px 12px;border:1px solid var(--dt-border);border-left:4px solid var(--dt-embed-color, var(--dt-embed-default-color));border-radius:var(--dt-radius-sm);background:var(--dt-bg-embed);max-width:516px;color:var(--dt-text-normal);font-size:.875rem;line-height:1.125rem}.dt-embed-content{min-width:0}discord-embed[thumbnail] .dt-embed-content,discord-embed[data-dt-thumbnail] .dt-embed-content,discord-embed:has(.dt-embed-thumbnail) .dt-embed-content{padding-right:96px}discord-embed[thumbnail]:not(:has(.dt-embed-content)),discord-embed[data-dt-thumbnail]:not(:has(.dt-embed-content)),discord-embed:has(.dt-embed-thumbnail):not(:has(.dt-embed-content)){padding-right:104px}discord-embed:not([data-dt-ready])[embed-title]:before{content:attr(embed-title);display:block;margin:0 0 8px;font-size:1rem;font-weight:600;line-height:1.375rem;color:var(--dt-text-strong)}discord-embed:not([data-dt-ready]):not([embed-title])[author-name]:before{content:attr(author-name);display:block;margin:0 0 8px;font-weight:600;line-height:1.125rem}.dt-embed-provider{display:block;margin-bottom:8px;color:var(--dt-text-normal)}.dt-embed-author{display:flex;align-items:center;gap:8px;margin-bottom:8px;font-size:.875rem;font-weight:600;line-height:1.125rem}.dt-embed-author img{width:24px;height:24px;border-radius:50%;object-fit:cover}.dt-embed-author a{color:var(--dt-text-normal);text-decoration:none}.dt-embed-author a:hover{text-decoration:underline}.dt-embed-title{display:block;margin:0 0 8px;font-size:1rem;font-weight:600;line-height:1.375rem;color:var(--dt-text-strong);text-decoration:none}.dt-embed-title--link,a.dt-embed-title:hover,.dt-embed-title a:hover{text-decoration:underline}a.dt-embed-title{color:var(--dt-text-link)}.dt-embed-thumbnail{position:absolute;top:8px;right:16px;width:80px;height:80px;border-radius:var(--dt-radius-sm);overflow:hidden;background:var(--dt-bg-tertiary)}.dt-embed-thumbnail img{display:block;width:100%;height:100%;object-fit:cover}:where(discord-embed-description){display:block;margin:0;font-size:.875rem;line-height:1.125rem;white-space:pre-line}:where(discord-embed-fields){display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:8px;margin-top:8px}:where(discord-embed-field){grid-column:1 / -1;min-width:0;font-size:.875rem;line-height:1.125rem}:where(discord-embed-field[inline]){grid-column:span 4}discord-embed[thumbnail] :where(discord-embed-field[inline]),discord-embed[data-dt-thumbnail] :where(discord-embed-field[inline]){grid-column:span 6}.dt-embed-field-title{display:block;margin:0 0 2px;font-weight:600;color:var(--dt-text-strong)}discord-embed-field:not([data-dt-ready]):not(:has(.dt-embed-field-title)):before{content:attr(field-title);display:block;margin-bottom:2px;font-weight:600;color:var(--dt-text-strong)}.dt-embed-image{display:block;margin-top:16px}.dt-embed-image img,.dt-embed-image video{display:block;max-width:100%;max-height:300px;border-radius:var(--dt-radius-sm);object-fit:contain}:where(discord-embed-footer){display:flex;align-items:center;gap:8px;margin-top:8px;font-size:.75rem;line-height:1rem;color:var(--dt-text-muted)}discord-embed-footer:empty:before{content:attr(footer)}.dt-embed-footer-icon{width:20px;height:20px;border-radius:50%;overflow:hidden;background:var(--dt-bg-tertiary)}.dt-embed-footer-icon img{display:block;width:100%;height:100%;object-fit:cover}.dt-embed-footer-sep{display:inline-block;width:4px;height:4px;border-radius:50%;background:var(--dt-text-muted);opacity:.6}:where(discord-attachments){display:flex;flex-direction:column;align-items:flex-start;gap:8px;margin-top:8px;max-width:550px}:where(discord-attachments:empty){display:none}:where(discord-image-attachment){position:relative;display:block;max-width:100%;border-radius:var(--dt-radius-md);overflow:hidden;line-height:0}:where(discord-image-attachment) img{display:block;max-width:100%;max-height:350px;border-radius:var(--dt-radius-md);object-fit:contain;cursor:pointer}:where(discord-image-attachment) a{display:block}discord-image-attachment[url]:not([data-dt-ready]):not(:has(img)){min-width:220px;min-height:120px;border:1px dashed var(--dt-border-strong)}discord-image-attachment[spoiler] img,discord-video-attachment[spoiler] video{filter:blur(44px);transition:filter var(--dt-transition)}discord-image-attachment[spoiler][data-dt-revealed] img,discord-video-attachment[spoiler][data-dt-revealed] video{filter:none}.dt-spoiler-overlay{position:absolute;inset:0;z-index:1;display:flex;align-items:center;justify-content:center;border:0;border-radius:var(--dt-radius-md);background:#00000059;color:#fff;font-family:var(--dt-font);font-size:.75rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;cursor:pointer}.dt-spoiler-overlay:hover{background:#00000073}discord-image-attachment[data-dt-revealed]>.dt-spoiler-overlay,discord-video-attachment[data-dt-revealed]>.dt-spoiler-overlay{display:none}:where(discord-file-attachment){display:flex;align-items:center;gap:12px;width:100%;max-width:420px;padding:12px;border:1px solid var(--dt-border);border-radius:var(--dt-radius-md);background:var(--dt-bg-secondary)}:where(discord-file-attachment) a{display:flex;align-items:center;gap:12px;width:100%;color:inherit;text-decoration:none}discord-file-attachment:empty{display:grid;grid-template-columns:30px minmax(0,1fr);align-content:center;column-gap:12px}discord-file-attachment:empty:before{grid-column:1;grid-row:1 / span 2;content:"FILE";display:flex;align-items:center;justify-content:center;width:30px;height:30px;border-radius:var(--dt-radius-sm);background:var(--dt-bg-modifier-hover);color:var(--dt-text-muted);font-size:.5625rem;font-weight:700}discord-file-attachment[type]:empty:before{content:attr(type)}discord-file-attachment:empty:after{grid-column:2;content:attr(name) "\a" attr(bytes) " " attr(bytes-unit);white-space:pre-line;line-height:1.25rem}discord-file-attachment[bytes=""]:empty:after,discord-file-attachment:not([bytes]):empty:after{content:attr(name)}.dt-file-icon{display:flex;align-items:center;justify-content:center;width:30px;height:30px;border-radius:var(--dt-radius-sm);background:var(--dt-bg-modifier-hover);color:var(--dt-text-muted);font-size:.5625rem;font-weight:700;text-transform:uppercase;flex:none}.dt-file-meta{display:flex;flex-direction:column;min-width:0}.dt-file-name{font-size:.875rem;font-weight:500;color:var(--dt-text-strong);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dt-file-size{font-size:.75rem;color:var(--dt-text-muted)}:where(discord-audio-attachment){display:block;width:100%;max-width:420px}:where(discord-audio-attachment) audio{display:block;width:100%;max-width:420px;border-radius:var(--dt-radius-md);outline:none}:where(discord-video-attachment){position:relative;display:block;max-width:100%;border-radius:var(--dt-radius-md);overflow:hidden;background:#000;line-height:0}:where(discord-video-attachment) video{display:block;max-width:100%;max-height:400px;border-radius:var(--dt-radius-md)}:where(discord-video-attachment) video:focus-visible,:where(discord-audio-attachment) audio:focus-visible{box-shadow:0 0 0 2px var(--dt-focus-ring)}:where(discord-reactions){display:flex;flex-wrap:wrap;align-items:center;gap:4px;margin-top:8px}:where(discord-reactions:empty){display:none}:where(discord-reaction){display:inline-flex;align-items:center;gap:6px;min-width:36px;height:24px;padding:2px 6px;border:1px solid var(--dt-reaction-border);border-radius:var(--dt-radius-md);background:var(--dt-reaction-bg);color:var(--dt-text-normal);font-family:var(--dt-font);font-size:.875rem;line-height:1;cursor:pointer;-webkit-user-select:none;user-select:none;transition:background var(--dt-transition),border-color var(--dt-transition)}:where(discord-reaction:hover){border-color:var(--dt-border-strong)}:where(discord-reaction[reacted]){background:var(--dt-reaction-bg-reacted);border-color:var(--dt-reaction-border-reacted);color:var(--dt-reaction-text-reacted)}discord-reaction:not([data-dt-ready]):before{content:attr(emoji);font-size:1rem;line-height:1}discord-reaction[emoji^=http]:not([data-dt-ready]):before,discord-reaction[emoji^="data:"]:not([data-dt-ready]):before,discord-reaction[emoji^="blob:"]:not([data-dt-ready]):before,discord-reaction[emoji^="/"]:not([data-dt-ready]):before,discord-reaction[emoji^="./"]:not([data-dt-ready]):before,discord-reaction:not([emoji]):not([data-dt-ready]):before{content:none}discord-reaction:not([data-dt-ready]):after{content:attr(count);font-size:.875rem;font-weight:500;line-height:1}discord-reaction:not([count]):not([data-dt-ready]):after,discord-reaction[count="1"]:not([data-dt-ready]):after{content:none}:where(discord-reaction) img,.dt-reaction-emoji{display:inline-block;flex:none;width:1rem;height:1rem;overflow:hidden;object-fit:contain;vertical-align:middle}.dt-reaction-count{font-size:.75rem;font-weight:600;line-height:1;color:inherit}:where(discord-action-row){display:flex;flex-wrap:wrap;gap:8px;margin-top:8px;max-width:600px}:where(discord-button){display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:32px;padding:2px 16px;border:0;border-radius:var(--dt-radius-sm);background:var(--dt-button-secondary);color:#fff;font-family:var(--dt-font);font-size:.875rem;font-weight:500;line-height:1rem;white-space:nowrap;cursor:pointer;transition:background var(--dt-transition)}:where(discord-button):hover{background:var(--dt-button-secondary-hover)}:where(discord-button[type=primary]){background:var(--dt-button-primary)}:where(discord-button[type=primary]):hover{background:var(--dt-button-primary-hover)}:where(discord-button[type=success]){background:var(--dt-button-success)}:where(discord-button[type=destructive],discord-button[type=danger]){background:var(--dt-button-danger)}:where(discord-button[type=link]){background:var(--dt-button-link)}:where(discord-button[disabled]){opacity:.5;cursor:not-allowed}.dt-button-emoji{width:1rem;height:1rem;object-fit:contain}.dt-button-link-icon{width:12px;height:12px;opacity:.9}:where(discord-verified-author-tag){display:inline-flex;align-items:center;justify-content:center;gap:3px;height:16px;padding:0 5px 0 4px;border-radius:4px;background:var(--dt-brand);color:var(--dt-text-on-brand);font-size:.625rem;font-weight:600;line-height:1;letter-spacing:.02em;text-transform:uppercase;vertical-align:-2px}:where(discord-verified-author-tag):before{content:"\2713";font-size:.75rem;line-height:1}:where(discord-verified-author-tag:not([verified])):before{content:none}:where(discord-verified-author-tag):after{content:"APP"}.dt-divider{height:1px;margin:8px 0;border:0;background:var(--dt-divider)}.dt-sr-only{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}:where(discord-message,discord-embed,discord-attachments,discord-reactions) :focus-visible{outline:none;box-shadow:0 0 0 2px var(--dt-focus-ring)}@media(prefers-reduced-motion:reduce){:where(discord-spoiler),:where(discord-reaction),:where(discord-button),discord-image-attachment img{transition:none}}@media(max-width:480px){:where(discord-messages){--dt-msg-padding-right: 16px}:where(discord-embed),:where(discord-attachments){max-width:100%}}@media print{:root,discord-messages,discord-message{--dt-bg-primary: #ffffff;--dt-bg-secondary: #f2f3f5;--dt-bg-embed: #f2f3f5;--dt-bg-code: #f2f3f5;--dt-text-normal: #000000;--dt-text-strong: #000000;--dt-text-muted: #444444}:where(discord-spoiler){background:none;color:inherit}.dt-copy,.dt-spoiler-overlay{display:none!important}}