/**
 * Prism Verse-Dark Theme
 *
 * 1:1 color port from the official "Verse-Dark" VS Code theme
 * (epicgames.verse extension, verse-dark.tmTheme.json).
 *
 * Scope mapping verified by TextMate prefix matching:
 *   constant.language.path.verse        → constant.language    #569cd6
 *   keyword.operator.logical.verse      → keyword.operator     #77AFAF
 *   keyword.declaration.verse           → keyword.declaration  #8499b7
 *   keyword.control.verse               → keyword.control      #569cd6
 *   entity.name.function.verse          → entity.name.function #e5c2ff
 *   variable.verse                      → variable             #b9d6ff
 */

pre[class*="language-verse"],
code[class*="language-verse"] {
    color: #d4d4d4;                /* editor.foreground */
    background: #12002c;           /* editor.lineHighlightBackground */
    font-family: Menlo, Consolas, "Hiragino Kaku Gothic Pro", "Liberation Mono", monospace;
    font-size: 14px;
    line-height: 1.7;
    text-shadow: none;
    direction: ltr;
    text-align: left;
    white-space: pre;
    word-spacing: normal;
    word-break: normal;
    -moz-tab-size: 4;
    tab-size: 4;
    hyphens: none;
}

pre[class*="language-verse"] {
    padding: 1.5em;
    margin: 1em 0;
    border-radius: 6px;
    overflow: auto;
    border: 1px solid #2a0a4a;
    box-shadow: 0 2px 8px rgba(0,0,0,0.25);
}

:not(pre) > code[class*="language-verse"] {
    padding: 0.15em 0.4em;
    border-radius: 3px;
    white-space: normal;
}

/* ---------- Token colors (verbatim from verse-dark.tmTheme.json) ---------- */

/* comment.{block|line}.verse → comment */
[class*="language-verse"] .token.comment,
[class*="language-verse"] .token.comment-block { color: #77b06b; }
[class*="language-verse"] .token.comment-block { font-style: italic; }

/* string.quoted.{single|double}.verse → string */
[class*="language-verse"] .token.string,
[class*="language-verse"] .token.char,
[class*="language-verse"] .token.char-codepoint  { color: #c09077; }

/* constant.character.escape.verse → constant.character.escape */
[class*="language-verse"] .token.escape,
[class*="language-verse"] .token.constant        { color: #b89047; }

/* constant.numeric.verse → constant.numeric */
[class*="language-verse"] .token.number          { color: #c2ddb4; }

/* keyword.other.unit.verse → keyword.other.unit */
[class*="language-verse"] .token.unit            { color: #92a788; }

/* keyword.declaration.verse → keyword.declaration
   (declared first so the more-specific keyword-* rules below win on ties) */
[class*="language-verse"] .token.keyword         { color: #8499b7; }

/* keyword.control.verse → keyword.control */
[class*="language-verse"] .token.keyword-control { color: #569cd6; }

/* keyword.operator.logical.verse → keyword.operator */
[class*="language-verse"] .token.keyword-logical { color: #77afaf; }

/* keyword.operator.{arithmetic|comparison}.verse → keyword.operator */
[class*="language-verse"] .token.operator        { color: #77afaf; }

/* entity.name.function.verse → entity.name.function */
[class*="language-verse"] .token.function        { color: #e5c2ff; }

/* variable.verse → variable */
[class*="language-verse"] .token.variable        { color: #b9d6ff; }

/* constant.language.path.verse → constant.language */
[class*="language-verse"] .token.path            { color: #569cd6; }

/* punctuation.definition.tag → punctuation.definition */
[class*="language-verse"] .token.tag-symbol,
[class*="language-verse"] .token.punctuation     { color: #8499b7; }

/* Interpolation: keep contents readable with default fg, braces as escape gold */
[class*="language-verse"] .token.interpolation               { color: #d4d4d4; }
[class*="language-verse"] .token.interpolation-punctuation   { color: #b89047; }
