/*
 * Default Trix editor styles. See Action Text overwrites below.
*/

@layer components {
  /* Toolbar
  /* ------------------------------------------------------------------------ */

  trix-toolbar {
    --trix-button-radius: 0.5rem;
    --trix-dialog-link-padding: 0.5ch;

    * {
      box-sizing: border-box;
    }
  }

  .trix-button-row {
    display: flex;
    flex-wrap: nowrap;
    font-size: var(--txt-small);
  }

  .trix-button-group {
    display: flex;
    gap: 2px;
  }

  .trix-button-group-spacer {
    inline-size: 100%;

    @media (max-width: 768px) {
      display: none;
    }
  }

  .trix-button {
    background: none;
    block-size: var(--btn-size);
    border-radius: var(--trix-button-radius);
    border: none;
    cursor: pointer;
    font-size: inherit;
    outline: none;
    position: relative;
    white-space: nowrap;

    &.trix-active {
      background-color: var(--color-theme-light);
    }

    &:disabled {
      color: var(--color-ink-lighter);
      pointer-events: none;
    }

    @media (max-width: 768px) {
      block-size: 2em;
    }
  }

  .trix-button--icon {
    inline-size: var(--btn-size);
    max-inline-size: calc(0.8em + 4vw);
    text-indent: -9999px;

    &::before {
      background-position: center;
      background-repeat: no-repeat;
      background-size: 65%;
      content: "";
      inset: 0;
      position: absolute;
    }

    &:disabled {
      opacity: 0.25;
    }

    @media (max-width: 768px) {
      max-inline-size: calc(0.8em + 3.5vw);
    }
  }


  .trix-button--icon-attach::before {
    background-image: url("data:image/svg+xml,%3Csvg%20width%3D%2224%22%20height%3D%2224%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22M10.5%2018V7.5c0-2.25%203-2.25%203%200V18c0%204.125-6%204.125-6%200V7.5c0-6.375%209-6.375%209%200V18%22%20stroke%3D%22%23000%22%20stroke-width%3D%222%22%20stroke-miterlimit%3D%2210%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%2F%3E%3C%2Fsvg%3E");
    top: 8%;
    bottom: 4%;
  }

  .trix-button--icon-bold::before {
    background-image: url("data:image/svg+xml,%3Csvg%20width%3D%2224%22%20height%3D%2224%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20fill-rule%3D%22evenodd%22%20clip-rule%3D%22evenodd%22%20d%3D%22M6.522%2019.242a.5.5%200%200%201-.5-.5V5.35a.5.5%200%200%201%20.5-.5h5.783c1.347%200%202.46.345%203.24.982.783.64%201.216%201.562%201.216%202.683%200%201.13-.587%202.129-1.476%202.71a.35.35%200%200%200%20.049.613c1.259.56%202.101%201.742%202.101%203.22%200%201.282-.483%202.334-1.363%203.063-.876.726-2.132%201.12-3.66%201.12h-5.89ZM9.27%207.347v3.362h1.97c.766%200%201.347-.17%201.733-.464.38-.291.587-.716.587-1.27%200-.53-.183-.928-.513-1.198-.334-.273-.838-.43-1.505-.43H9.27Zm0%205.606v3.791h2.389c.832%200%201.448-.177%201.853-.497.399-.315.614-.786.614-1.423%200-.62-.22-1.077-.63-1.385-.418-.313-1.053-.486-1.905-.486H9.27Z%22%20fill%3D%22%23000%22%2F%3E%3C%2Fsvg%3E");
  }

  .trix-button--icon-italic::before {
    background-image: url("data:image/svg+xml,%3Csvg%20width%3D%2224%22%20height%3D%2224%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20fill-rule%3D%22evenodd%22%20clip-rule%3D%22evenodd%22%20d%3D%22M9%205h6.5v2h-2.23l-2.31%2010H13v2H6v-2h2.461l2.306-10H9V5Z%22%20fill%3D%22%23000%22%2F%3E%3C%2Fsvg%3E");
  }

  .trix-button--icon-link::before {
    background-image: url("data:image/svg+xml,%3Csvg%20width%3D%2224%22%20height%3D%2224%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20fill-rule%3D%22evenodd%22%20clip-rule%3D%22evenodd%22%20d%3D%22M18.948%205.258a4.337%204.337%200%200%200-6.108%200L11.217%206.87a.993.993%200%200%200%200%201.41c.392.39%201.027.39%201.418%200l1.623-1.613a2.323%202.323%200%200%201%203.271%200%202.29%202.29%200%200%201%200%203.251l-2.393%202.38a3.021%203.021%200%200%201-4.255%200l-.05-.049a1.007%201.007%200%200%200-1.418%200%20.993.993%200%200%200%200%201.41l.05.049a5.036%205.036%200%200%200%207.091%200l2.394-2.38a4.275%204.275%200%200%200%200-6.072Zm-13.683%2013.6a4.337%204.337%200%200%200%206.108%200l1.262-1.255a.993.993%200%200%200%200-1.41%201.007%201.007%200%200%200-1.418%200L9.954%2017.45a2.323%202.323%200%200%201-3.27%200%202.29%202.29%200%200%201%200-3.251l2.344-2.331a2.579%202.579%200%200%201%203.631%200c.392.39%201.027.39%201.419%200a.993.993%200%200%200%200-1.41%204.593%204.593%200%200%200-6.468%200l-2.345%202.33a4.275%204.275%200%200%200%200%206.072Z%22%20fill%3D%22%23000%22%2F%3E%3C%2Fsvg%3E");
  }

  .trix-button--icon-strike::before {
    background-image: url("data:image/svg+xml,%3Csvg%20width%3D%2224%22%20height%3D%2224%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20fill-rule%3D%22evenodd%22%20clip-rule%3D%22evenodd%22%20d%3D%22M6%2014.986c.088%202.647%202.246%204.258%205.635%204.258%203.496%200%205.713-1.728%205.713-4.463%200-.275-.02-.536-.062-.781h-3.461c.398.293.573.654.573%201.123%200%201.035-1.074%201.787-2.646%201.787-1.563%200-2.773-.762-2.91-1.924H6ZM6.432%2010h3.763c-.632-.314-.914-.715-.914-1.273%200-1.045.977-1.739%202.432-1.739%201.475%200%202.52.723%202.617%201.914h2.764c-.05-2.548-2.11-4.238-5.39-4.238-3.145%200-5.392%201.719-5.392%204.316%200%20.363.04.703.12%201.02ZM4%2011a1%201%200%201%200%200%202h15a1%201%200%201%200%200-2H4Z%22%20fill%3D%22%23000%22%2F%3E%3C%2Fsvg%3E");
  }

  .trix-button--icon-quote::before {
    background-image: url("data:image/svg+xml,%3Csvg%20width%3D%2224%22%20height%3D%2224%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22M4.581%208.471c.44-.5%201.056-.834%201.758-.995C8.074%207.17%209.201%207.822%2010%208.752c1.354%201.578%201.33%203.555.394%205.277-.941%201.731-2.788%203.163-4.988%203.56a.622.622%200%200%201-.653-.317c-.113-.205-.121-.49.16-.764.294-.286.567-.566.791-.835.222-.266.413-.54.524-.815.113-.28.156-.597.026-.908-.128-.303-.39-.524-.72-.69a3.02%203.02%200%200%201-1.674-2.7c0-.905.283-1.59.72-2.088Zm9.419%200c.44-.5%201.055-.834%201.758-.995%201.734-.306%202.862.346%203.66%201.276%201.355%201.578%201.33%203.555.395%205.277-.941%201.731-2.789%203.163-4.988%203.56a.622.622%200%200%201-.653-.317c-.113-.205-.122-.49.16-.764.294-.286.567-.566.791-.835.222-.266.412-.54.523-.815.114-.28.157-.597.026-.908-.127-.303-.39-.524-.72-.69a3.02%203.02%200%200%201-1.672-2.701c0-.905.283-1.59.72-2.088Z%22%20fill%3D%22%23000%22%2F%3E%3C%2Fsvg%3E");
  }

  .trix-button--icon-heading-1::before {
    background-image: url("data:image/svg+xml,%3Csvg%20width%3D%2224%22%20height%3D%2224%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20fill-rule%3D%22evenodd%22%20clip-rule%3D%22evenodd%22%20d%3D%22M21.5%207.5v-3h-12v3H14v13h3v-13h4.5ZM9%2013.5h3.5v-3h-10v3H6v7h3v-7Z%22%20fill%3D%22%23000%22%2F%3E%3C%2Fsvg%3E");
  }

  .trix-button--icon-code::before {
    background-image: url("data:image/svg+xml,%3Csvg%20width%3D%2224%22%20height%3D%2224%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20fill-rule%3D%22evenodd%22%20clip-rule%3D%22evenodd%22%20d%3D%22M3.293%2011.293a1%201%200%200%200%200%201.414l4%204a1%201%200%201%200%201.414-1.414L5.414%2012l3.293-3.293a1%201%200%200%200-1.414-1.414l-4%204Zm13.414%205.414%204-4a1%201%200%200%200%200-1.414l-4-4a1%201%200%201%200-1.414%201.414L18.586%2012l-3.293%203.293a1%201%200%200%200%201.414%201.414Z%22%20fill%3D%22%23000%22%2F%3E%3C%2Fsvg%3E");
  }

  .trix-button--icon-bullet-list::before {
    background-image: url("data:image/svg+xml,%3Csvg%20width%3D%2224%22%20height%3D%2224%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20fill-rule%3D%22evenodd%22%20clip-rule%3D%22evenodd%22%20d%3D%22M5%207.5a1.5%201.5%200%201%200%200-3%201.5%201.5%200%200%200%200%203ZM8%206a1%201%200%200%201%201-1h11a1%201%200%201%201%200%202H9a1%201%200%200%201-1-1Zm1%205a1%201%200%201%200%200%202h11a1%201%200%201%200%200-2H9Zm0%206a1%201%200%201%200%200%202h11a1%201%200%201%200%200-2H9Zm-2.5-5a1.5%201.5%200%201%201-3%200%201.5%201.5%200%200%201%203%200ZM5%2019.5a1.5%201.5%200%201%200%200-3%201.5%201.5%200%200%200%200%203Z%22%20fill%3D%22%23000%22%2F%3E%3C%2Fsvg%3E");
  }

  .trix-button--icon-number-list::before {
    background-image: url("data:image/svg+xml,%3Csvg%20width%3D%2224%22%20height%3D%2224%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20fill-rule%3D%22evenodd%22%20clip-rule%3D%22evenodd%22%20d%3D%22M3%204h2v4H4V5H3V4Zm5%202a1%201%200%200%201%201-1h11a1%201%200%201%201%200%202H9a1%201%200%200%201-1-1Zm1%205a1%201%200%201%200%200%202h11a1%201%200%201%200%200-2H9Zm0%206a1%201%200%201%200%200%202h11a1%201%200%201%200%200-2H9Zm-3.5-7H6v1l-1.5%202H6v1H3v-1l1.667-2H3v-1h2.5ZM3%2017v-1h3v4H3v-1h2v-.5H4v-1h1V17H3Z%22%20fill%3D%22%23000%22%2F%3E%3C%2Fsvg%3E");
  }

  .trix-button--icon-undo::before {
    background-image: url("data:image/svg+xml,%3Csvg%20width%3D%2224%22%20height%3D%2224%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20fill-rule%3D%22evenodd%22%20clip-rule%3D%22evenodd%22%20d%3D%22M3%2014a1%201%200%200%200%201%201h6a1%201%200%201%200%200-2H6.257c2.247-2.764%205.151-3.668%207.579-3.264%202.589.432%204.739%202.356%205.174%205.405a1%201%200%200%200%201.98-.283c-.564-3.95-3.415-6.526-6.825-7.095C11.084%207.25%207.63%208.377%205%2011.39V8a1%201%200%200%200-2%200v6Zm2-1Z%22%20fill%3D%22%23000%22%2F%3E%3C%2Fsvg%3E");
  }

  .trix-button--icon-redo::before {
    background-image: url("data:image/svg+xml,%3Csvg%20width%3D%2224%22%20height%3D%2224%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20fill-rule%3D%22evenodd%22%20clip-rule%3D%22evenodd%22%20d%3D%22M21%2014a1%201%200%200%201-1%201h-6a1%201%200%201%201%200-2h3.743c-2.247-2.764-5.151-3.668-7.579-3.264-2.589.432-4.739%202.356-5.174%205.405a1%201%200%200%201-1.98-.283c.564-3.95%203.415-6.526%206.826-7.095%203.08-.513%206.534.614%209.164%203.626V8a1%201%200%201%201%202%200v6Zm-2-1Z%22%20fill%3D%22%23000%22%2F%3E%3C%2Fsvg%3E");
  }

  .trix-button--icon-decrease-nesting-level::before {
    background-image: url("data:image/svg+xml,%3Csvg%20width%3D%2224%22%20height%3D%2224%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20fill-rule%3D%22evenodd%22%20clip-rule%3D%22evenodd%22%20d%3D%22M5%206a1%201%200%200%201%201-1h12a1%201%200%201%201%200%202H6a1%201%200%200%201-1-1Zm4%205a1%201%200%201%200%200%202h9a1%201%200%201%200%200-2H9Zm-3%206a1%201%200%201%200%200%202h12a1%201%200%201%200%200-2H6Zm-3.707-5.707a1%201%200%200%200%200%201.414l2%202a1%201%200%201%200%201.414-1.414L4.414%2012l1.293-1.293a1%201%200%200%200-1.414-1.414l-2%202Z%22%20fill%3D%22%23000%22%2F%3E%3C%2Fsvg%3E");
  }

  .trix-button--icon-increase-nesting-level::before {
    background-image: url("data:image/svg+xml,%3Csvg%20width%3D%2224%22%20height%3D%2224%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20fill-rule%3D%22evenodd%22%20clip-rule%3D%22evenodd%22%20d%3D%22M5%206a1%201%200%200%201%201-1h12a1%201%200%201%201%200%202H6a1%201%200%200%201-1-1Zm4%205a1%201%200%201%200%200%202h9a1%201%200%201%200%200-2H9Zm-3%206a1%201%200%201%200%200%202h12a1%201%200%201%200%200-2H6Zm-2.293-2.293%202-2a1%201%200%200%200%200-1.414l-2-2a1%201%200%201%200-1.414%201.414L3.586%2012l-1.293%201.293a1%201%200%201%200%201.414%201.414Z%22%20fill%3D%22%23000%22%2F%3E%3C%2Fsvg%3E");
  }

  .trix-dialogs {
    font-size: var(--txt-medium);
    position: relative;
  }

  .trix-dialog {
    background: var(--color-canvas);
    border-radius: calc(var(--trix-button-radius) + var(--trix-dialog-link-padding));
    border: 2px solid var(--color-theme);
    box-shadow: 0 0.3em 1em #ccc;
    font-size: 0.75em;
    inset: 0 0 auto 0;
    padding: 1.5ch;
    position: absolute;
    z-index: var(--z-popup);
  }

  .trix-dialog--link {
    padding: var(--trix-dialog-link-padding);
    max-inline-size: 600px;
  }

  .trix-input--dialog {
    align-self: stretch;
    appearance: none;
    background-color: transparent;
    border: none;
    border-radius: var(--trix-button-radius);
    box-shadow: none;
    font-size: inherit;
    font-weight: normal;
    outline: none;
    padding-inline: 1ch;

    &.validate:invalid {
      box-shadow: #F00 0px 0px 1.5px 1px;
    }
  }

  .trix-dialog__link-fields {
    align-items: center;
    display: flex;
    gap: 1ch;

    .trix-input {
      flex: 1;
    }

    .trix-button-group {
      flex: 0 0 content;
      margin: 0;
    }
  }

  /* Editor
  /* ------------------------------------------------------------------------ */

  trix-editor {
    border: 1px solid var(--color-ink-light);
    border-radius: 8px;
    margin: 0;
    padding: 0.4em 0.6em;
    min-block-size: 5em;
    outline: none;
    text-align: start;

    trix-toolbar + & {
      margin-block-start: var(--block-space-half);
    }

    .attachment {
      position: relative;

      &:hover {
        cursor: default;
      }
    }

    .attachment--preview .attachment__caption:hover {
      cursor: text;
    }

    .attachment__progress {
      block-size: 20px;
      inline-size: 90%;
      inset: calc(50% - 10px) auto auto 5%;
      opacity: 0.9;
      position: absolute;
      transition: opacity 200ms ease-in;
      z-index: 1;

      &[value="100"] {
        opacity: 0;
      }
    }

    .attachment__caption-editor {
      appearance: none;
      border: none;
      color: inherit;
      display: inline-block;
      font-family: inherit;
      font-size: inherit;
      inline-size: 100%;
      line-height: inherit;
      margin: 0;
      outline: none;
      padding: 0;
      text-align: center;
      vertical-align: top;
    }

    .attachment__toolbar {
        --bg-color: var(--color-theme);
        --padding: 0.5ch;
        --remove-btn-size: 1.5rem;
        --triangle-size: 8px;

      background-color: var(--bg-color);
      border-radius: 8px;
      color: var(--color-ink-inverted);
      display: flex;
      font-size: var(--txt-medium);
      gap: var(--padding);
      inline-size: fit-content;
      inset-block-start: calc(var(--triangle-size) * -1);
      inset-inline-start: 50%;
      padding: 0.5ch;
      position: absolute;
      translate: -50% -100%;
      text-align: center;
      z-index: var(--z-popup);

      /* Add a cute little triangle */
      &:after {
        block-size: 0;
        border: solid transparent;
        border-bottom-color: rgba(0, 0, 0, 0);
        border-top-color: var(--bg-color);
        border-width: var(--triangle-size);
        content: " ";
        inline-size: 0;
        inset-block-end: calc(var(--triangle-size) * -2);
        inset-inline-start: 50%;
        margin-inline-start: calc(var(--triangle-size) * -1);
        pointer-events: none;
        position: absolute;
      }

      .attachment__metadata-container {
        order: -1;
        padding-inline-start: calc(var(--padding) + var(--remove-btn-size));
      }

      .trix-button--remove {
        background-color: transparent;
        block-size: var(--remove-btn-size);
        border-radius: 50%;
        display: inline-block;
        inline-size: var(--remove-btn-size);
        outline: none;
        padding: 0;
        text-indent: -9999px;

        &::before {
          background-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNCAyNCI+PGcgZmlsbD0ibm9uZSIgc3Ryb2tlPSIjMDAwIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiIHN0cm9rZS13aWR0aD0iMiI+PHBhdGggZD0iTTEuNSA0LjVoMjFNMTQuMjUgMS41aC00LjUgMEExLjUgMS41IDAgMCAwIDguMjUgM3YxLjVoNy41VjNhMS41IDEuNSAwIDAgMC0xLjUtMS41TTkuNzUgMTcuMjV2LTcuNU0xNC4yNSAxNy4yNXYtNy41TTE4Ljg2NSAyMS4xMjRBMS41IDEuNSAwIDAgMSAxNy4zNyAyMi41SDYuNjMxaDBhMS41IDEuNSAwIDAgMS0xLjQ5NS0xLjM3NkwzLjc1IDQuNWgxNi41eiIvPjwvZz48L3N2Zz4=");
          background-position: center;
          background-repeat: no-repeat;
          background-size: 65%;
          content: "";
          display: inline-block;
          filter: invert(1);
          inset: 0;
          position: absolute;
        }
      }

      .attachment__name,
      .attachment__size {
        display: block;
        overflow: hidden;
        text-overflow: ellipsis;
        white-space: nowrap;
      }

      .attachment__name {
        font-weight: bold;
      }

      .attachment__size {
        opacity: 0.75;
      }
    }
  }

  /* Content
  /* -------------------------------------------------------------------------- */

  trix-editor,
  .trix-content {
    line-height: 1.5;
    overflow-wrap: break-word;
    word-break: break-word;

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

    h1 {
      font-size: 1.2em;
      line-height: 1.2;
    }

    blockquote {
      --border-width: 2px;

      border: 0 solid var(--color-ink-medium);
      border-inline-start-width: var(--border-width);
      margin-inline-start: var(--border-width);
      padding-inline-start: 1ch;
    }

    li {
      margin-inline-start: 1em;
    }

    pre {
      background-color: oklch(var(--lch-black) / 8%);
      display: block;
      font-family: var(--font-mono);
      font-size: 0.8em;
      overflow-x: auto;
      padding: 0.75ch 1ch;
      vertical-align: top;
      white-space: pre;
    }

    img {
      block-size: auto;
      max-inline-size: 100%;
    }

    action-text-attachment {
      &:not(.attachment-gallery action-text-attachment) {
        display: block;
        margin-block-end: 0.65lh;
      }

      img, video, embed {
        max-inline-size: 100%;
      }
    }

    .attachment {
      display: inline-block;
      position: relative;
      max-inline-size: 100%;

      &, a {
        color: inherit;
        text-decoration: none;
        &:hover,
        &:visited:hover {
          color: inherit;
        }
      }
    }

    .attachment__caption {
      margin-block-start: 0.75ch;
      text-align: center;

      a {
        &:hover {
          box-shadow: none;
        }

        span {
          text-decoration: underline;
        }
      }
    }

    .attachment__caption-editor {
      background: none;

      &:hover {
        box-shadow: none;
      }

      .attachment__size {
        display: none;
      }
    }

    /* Image attachments */
    .attachment--preview {
      inline-size: 100%;
      text-align: center;

      img {
        margin-inline: auto;
      }

      .attachment__caption {
        color: var(--color-ink-medium);
        font-size: var(--txt-medium);
        line-height: 1.2;
      }

      .attachment__caption > * + *:before {
        content: "· ";
      }
    }

    .attachment--file {
      /* Same values as one-pager blocks */
      --border: 1px solid var(--color-theme-light);
      --figure-size: 4.5em;
      --padding: 1.5ch;
      --radius: 0.5em;

      align-items: center;
      background-color: oklch(var(--lch-ink-inverted) / 0.33);
      border: var(--border);
      border-radius: var(--radius);
      display: flex;
      gap: 1ch;
      padding: var(--padding);

      .attachment__figure {
        aspect-ratio: 1;
        background-color: var(--color-theme-light);
        border-radius: 0.3em;
        display: grid;
        flex-shrink: 0;
        font-weight: 900;
        inline-size: var(--figure-size);
        place-items: center;
        text-transform: uppercase;
      }

      .attachment__caption {
        flex: 1;
        font-size: var(--font-medium-responsive);
        margin: 0;
        text-align: start;
      }

      .attachment__file-link {
        span {
          text-decoration: underline;
        }

        &:before {
          content: "· ";
        }
      }

      .attachment__name {
        display: block;
        font-size: 1.17em;
        font-weight: 800;
        line-height: 1.1;
      }

      .attachment__size,
      .attachment__file-link {
        color: var(--color-ink-medium);
        display: inline-block;
        font-size: var(--txt-medium);
      }
    }

    /* Gallery */
    .attachment-gallery {
      --gap: 0.5ch;

      display: flex;
      flex-wrap: wrap;
      position: relative;
      margin-inline: calc(var(--gap) * -1);

      /*
       * We need to override trix.css’s image gallery styles to accommodate the
       * <action-text-attachment> element we wrap around attachments. Otherwise,
       * images in galleries will be squished by the max-width: 33%; rule.
      */
      > action-text-attachment,
      > .attachment {
        flex: 1 0 33%;
        padding: 0 var(--gap) calc(var(--gap) * 2);
        max-inline-size: 33%;
      }
    }

    .attachment-gallery--2 > action-text-attachment,
    .attachment-gallery--2 > .attachment,
    .attachment-gallery--4 > action-text-attachment,
    .attachment-gallery--4 > .attachment {
      flex-basis: 50%;
      max-inline-size: 50%;
    }
  }

  [data-trix-mutable]:not(.attachment__caption-editor) {
    -webkit-user-select: none;
    -moz-user-select: none;
    -ms-user-select: none;
    user-select: none;
  }

  [data-trix-mutable]::selection,
  [data-trix-mutable] ::selection,
  [data-trix-cursor-target]::selection {
    background: none;
  }

  .attachment__caption-editor:focus[data-trix-mutable]::selection {
    background: highlight;
  }

  [data-trix-mutable] {
    &.attachment.attachment--file {
      box-shadow: 0 0 0 2px highlight;
      border-color: transparent;
    }

    &.attachment img {
      box-shadow: 0 0 0 2px highlight;
    }
  }

  /* Hidden buttons */
  .trix-button-group--history-tools {
    display: none !important;
  }
}
