.article-reader {
  --code-bg: #07100c;
  --code-toolbar: #0d1712;
  --code-border: rgba(126, 222, 167, .18);
  --code-text: #d7e3dc;
  --code-muted: #7f9187;
  --code-accent: #42d392;
  --code-keyword: #70e4a4;
  --code-string: #d8c47d;
  --code-number: #71c8e8;
  --code-comment: #64766c;
  --code-function: #9ad8c0;
  --code-property: #83b8e7;
  --code-tag: #ef8d7a;
  --code-attribute: #e4b978;
  --code-operator: #8fcdb3;
  --code-punctuation: #91a39a;
  --code-builtin: #6fd6d1;
  --code-variable: #e5a976;
}

.article-reader[data-code-theme="graphite"] {
  --code-bg: #111315;
  --code-toolbar: #191c1f;
  --code-border: rgba(207, 216, 220, .16);
  --code-text: #d8dde0;
  --code-muted: #778087;
  --code-accent: #b8c2c8;
  --code-keyword: #e0e6e9;
  --code-string: #b9caa7;
  --code-number: #9dbacb;
  --code-comment: #697279;
  --code-function: #c7d0d5;
  --code-property: #a5bcc9;
  --code-tag: #d4aaa2;
  --code-attribute: #cdbb94;
  --code-operator: #a9b2b7;
  --code-punctuation: #7d878d;
  --code-builtin: #9fc6c3;
  --code-variable: #c9afa1;
}

.article-reader[data-code-theme="aurora"] {
  --code-bg: #061315;
  --code-toolbar: #0a1c1e;
  --code-border: rgba(45, 212, 191, .2);
  --code-text: #d2e8e6;
  --code-muted: #648684;
  --code-accent: #2dd4bf;
  --code-keyword: #5eead4;
  --code-string: #a7d9a2;
  --code-number: #67e8f9;
  --code-comment: #587573;
  --code-function: #8ee7da;
  --code-property: #7dd3fc;
  --code-tag: #fb9f87;
  --code-attribute: #f2cc7f;
  --code-operator: #65cfc1;
  --code-punctuation: #79a4a1;
  --code-builtin: #67e8f9;
  --code-variable: #fdba8c;
}

.article-reader[data-code-theme="amber"] {
  --code-bg: #151006;
  --code-toolbar: #20180a;
  --code-border: rgba(251, 191, 36, .2);
  --code-text: #ece2c9;
  --code-muted: #98886a;
  --code-accent: #fbbf24;
  --code-keyword: #ffd76a;
  --code-string: #b9d48a;
  --code-number: #e7a86d;
  --code-comment: #756b58;
  --code-function: #f2c76e;
  --code-property: #d6b483;
  --code-tag: #ed8f78;
  --code-attribute: #f0c87d;
  --code-operator: #d4aa59;
  --code-punctuation: #a99a7d;
  --code-builtin: #9cc9b8;
  --code-variable: #eca372;
}

.article-reader[data-code-theme="ocean"] {
  --code-bg: #07111c;
  --code-toolbar: #0b1927;
  --code-border: rgba(56, 189, 248, .2);
  --code-text: #d5e5ee;
  --code-muted: #667f8f;
  --code-accent: #38bdf8;
  --code-keyword: #7dd3fc;
  --code-string: #b6d69f;
  --code-number: #67e8f9;
  --code-comment: #5b7180;
  --code-function: #93c5fd;
  --code-property: #60a5fa;
  --code-tag: #fb9b8a;
  --code-attribute: #e4c47f;
  --code-operator: #73b4d4;
  --code-punctuation: #7993a2;
  --code-builtin: #5eead4;
  --code-variable: #f0ad86;
}

.article-reader[data-code-theme="rosewood"] {
  --code-bg: #170c0c;
  --code-toolbar: #211111;
  --code-border: rgba(248, 113, 113, .2);
  --code-text: #eadada;
  --code-muted: #947878;
  --code-accent: #f87171;
  --code-keyword: #fca5a5;
  --code-string: #d5c68d;
  --code-number: #e9a072;
  --code-comment: #796565;
  --code-function: #efb0a5;
  --code-property: #d8a7a0;
  --code-tag: #ff8b7b;
  --code-attribute: #e8bb7c;
  --code-operator: #d68f8f;
  --code-punctuation: #aa8d8d;
  --code-builtin: #8ccac0;
  --code-variable: #f2aa7d;
}

.article-reader[data-code-theme="nord"] {
  --code-bg: #202733;
  --code-toolbar: #2a3442;
  --code-border: rgba(136, 192, 208, .2);
  --code-text: #d8dee9;
  --code-muted: #7f8b9e;
  --code-accent: #88c0d0;
  --code-keyword: #81a1c1;
  --code-string: #a3be8c;
  --code-number: #b48ead;
  --code-comment: #677386;
  --code-function: #8fbcbb;
  --code-property: #88c0d0;
  --code-tag: #bf7f78;
  --code-attribute: #ebcb8b;
  --code-operator: #81a1c1;
  --code-punctuation: #909bac;
  --code-builtin: #8fbcbb;
  --code-variable: #d08770;
}

.article-reader[data-code-theme="paper"] {
  --code-bg: #f6f3ea;
  --code-toolbar: #ebe7dc;
  --code-border: rgba(69, 76, 71, .18);
  --code-text: #303936;
  --code-muted: #747b77;
  --code-accent: #257a58;
  --code-keyword: #17694a;
  --code-string: #866b19;
  --code-number: #176d91;
  --code-comment: #858a86;
  --code-function: #255e50;
  --code-property: #315f91;
  --code-tag: #a74637;
  --code-attribute: #8b641e;
  --code-operator: #416f60;
  --code-punctuation: #69716d;
  --code-builtin: #16716e;
  --code-variable: #99562e;
}

.article-reader[data-code-theme="ivory"] {
  --code-bg: #fffdf7;
  --code-toolbar: #f2eee4;
  --code-border: rgba(91, 79, 58, .18);
  --code-text: #39362f;
  --code-muted: #7b7468;
  --code-accent: #7b6631;
  --code-keyword: #795f1f;
  --code-string: #4f792f;
  --code-number: #2e6883;
  --code-comment: #918a7d;
  --code-function: #695c38;
  --code-property: #3e6487;
  --code-tag: #9b493e;
  --code-attribute: #876522;
  --code-operator: #71684f;
  --code-punctuation: #7d786e;
  --code-builtin: #36746e;
  --code-variable: #9a5d36;
}

.article-reader[data-code-theme="terminal"] {
  --code-bg: #020604;
  --code-toolbar: #07100b;
  --code-border: rgba(84, 255, 146, .2);
  --code-text: #b9ffcc;
  --code-muted: #4f8060;
  --code-accent: #54ff92;
  --code-keyword: #77ffa5;
  --code-string: #d1f58d;
  --code-number: #66e5c3;
  --code-comment: #456b50;
  --code-function: #a1ffc0;
  --code-property: #74d9b1;
  --code-tag: #ff9b83;
  --code-attribute: #e8d478;
  --code-operator: #6fd493;
  --code-punctuation: #6b9a79;
  --code-builtin: #66e5c3;
  --code-variable: #ffc184;
}

.emstudio-code-frame {
  position: relative;
  margin: 1.45em 0;
  overflow: hidden;
  color: var(--code-text);
  background: var(--code-bg);
  border: 1px solid var(--code-border);
  border-radius: 14px;
  box-shadow: 0 14px 28px rgba(0, 0, 0, .2), inset 0 1px rgba(255, 255, 255, .025);
}

.emstudio-code-toolbar {
  display: flex;
  min-height: 42px;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 7px 9px 7px 13px;
  color: var(--code-muted);
  background: var(--code-toolbar);
  border-bottom: 1px solid var(--code-border);
}

.emstudio-code-language {
  display: inline-flex;
  min-width: 0;
  align-items: center;
  gap: 8px;
  overflow: hidden;
  font-family: var(--font-display);
  font-size: 10px;
  font-weight: 650;
  letter-spacing: .12em;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.emstudio-code-language i {
  width: 7px;
  height: 7px;
  flex: 0 0 auto;
  background: var(--code-accent);
  border-radius: 2px;
  box-shadow: 0 0 8px color-mix(in srgb, var(--code-accent) 45%, transparent);
}

.emstudio-code-actions {
  display: inline-flex;
  align-items: center;
  gap: 6px;
}

.emstudio-code-actions select,
.emstudio-code-actions button {
  min-height: 28px;
  color: var(--code-text);
  background: color-mix(in srgb, var(--code-bg) 78%, var(--code-toolbar));
  border: 1px solid var(--code-border);
  border-radius: 7px;
  font-size: 11px;
  line-height: 1;
}

.emstudio-code-actions select {
  max-width: 104px;
  padding: 0 25px 0 8px;
  color-scheme: dark;
  cursor: pointer;
}

[data-code-theme="paper"] .emstudio-code-actions select,
[data-code-theme="ivory"] .emstudio-code-actions select {
  color-scheme: light;
}

.emstudio-code-actions button {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  padding: 0 9px;
  cursor: pointer;
}

.emstudio-code-actions button svg {
  width: 13px;
  height: 13px;
  fill: none;
  stroke: currentColor;
  stroke-linecap: round;
  stroke-linejoin: round;
  stroke-width: 1.7;
}

.emstudio-code-actions button:hover,
.emstudio-code-actions select:hover {
  color: var(--code-accent);
  border-color: color-mix(in srgb, var(--code-accent) 45%, var(--code-border));
}

.emstudio-code-actions button:focus-visible,
.emstudio-code-actions select:focus-visible {
  outline: 2px solid var(--code-accent);
  outline-offset: 2px;
}

.emstudio-code-actions button:disabled {
  cursor: wait;
  opacity: .72;
}

.article-reader .article-content .emstudio-code-frame pre {
  max-width: 100%;
  margin: 0 !important;
  padding: 18px 20px 20px !important;
  overflow: auto;
  color: var(--code-text) !important;
  background: var(--code-bg) !important;
  border: 0 !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  font-size: 13px;
  line-height: 1.7;
  tab-size: 2;
}

.article-reader .article-content .emstudio-code-frame code {
  color: inherit;
  font-family: "Cascadia Code", "SFMono-Regular", Consolas, "Liberation Mono", monospace;
  text-shadow: none;
}

.code-comment { color: var(--code-comment); font-style: italic; }
.code-keyword { color: var(--code-keyword); font-weight: 620; }
.code-string { color: var(--code-string); }
.code-number { color: var(--code-number); }
.code-function { color: var(--code-function); }
.code-property { color: var(--code-property); }
.code-tag { color: var(--code-tag); font-weight: 600; }
.code-attribute { color: var(--code-attribute); }
.code-operator { color: var(--code-operator); }
.code-punctuation { color: var(--code-punctuation); }
.code-builtin { color: var(--code-builtin); }
.code-variable { color: var(--code-variable); }

@media (max-width: 600px) {
  .emstudio-code-toolbar {
    align-items: flex-start;
    flex-direction: column;
    padding: 9px 10px;
  }

  .emstudio-code-actions {
    width: 100%;
  }

  .emstudio-code-actions select {
    max-width: none;
    flex: 1;
  }

  .article-reader .article-content .emstudio-code-frame pre {
    padding: 15px 16px 17px !important;
    font-size: 12px;
  }
}

@media (prefers-reduced-motion: reduce) {
  .emstudio-code-actions *,
  .emstudio-code-frame * {
    scroll-behavior: auto !important;
    transition: none !important;
  }
}
