#explorer {
  width: 100%;
  height: 100%;
  display: flex;
  overflow: hidden;
  transition: opacity 200ms ease;

  /* Held invisible while the chain rebuilds and scrolls to the target,
     then faded in so the layout settling isn't visible. */
  &.loading {
    opacity: 0;
  }

  .dim {
    opacity: 0.5;
  }

  @container aside (max-width: 767px) {
    overflow-y: auto;
    padding: var(--main-padding) 0;
    flex-direction: column;
  }

  /*> * {
    padding: 0 var(--main-padding);

    @container aside (min-width: 768px) {
      padding: var(--main-padding);
    }
  }*/

  /*#chain {
    flex-shrink: 0;
    position: relative;
    padding: 0;

    @container aside (min-width: 768px) {
      height: 100%;
    }

    .chain-scroll {
      padding: 0 var(--main-padding);

      @container aside (max-width: 767px) {
        padding-bottom: 1rem;
        overflow-x: auto;
      }

      @container aside (min-width: 768px) {
        padding: var(--main-padding);
        padding-right: calc(var(--main-padding) / 2);
        height: 100%;
        overflow-y: auto;
      }
    }

    .chain-edge {
      position: absolute;
      font-size: var(--font-size-xs);
      text-transform: uppercase;
      letter-spacing: 0.1em;
      font-weight: 500;

      @container aside (max-width: 767px) {
        display: flex;
        height: 100%;
        width: var(--main-padding);
        justify-content: center;
        align-items: center;
        writing-mode: vertical-lr;
        text-orientation: upright;
        text-decoration: none;
      }

      @container aside (min-width: 768px) {
        display: flex;
        width: 100%;
        height: var(--main-padding);
        justify-content: center;
        align-items: center;
        padding-left: calc(var(--main-padding) / 2);
      }
    }

    .tip {
      @container aside (min-width: 768px) {
        top: 0;
      }
      @container aside (max-width: 767px) {
        left: 0;
      }
    }

    .gen {
      @container aside (min-width: 768px) {
        bottom: 0;
      }
      @container aside (max-width: 767px) {
        top: 0;
        right: 0;
      }
    }

    .blocks {
      display: flex;
      flex-direction: column-reverse;
      --min-gap: calc(var(--cube) * -1);
      --max-gap: calc(var(--cube) * 6);
      --min-dt: 0;
      --max-dt: 10800;

      @container aside (max-width: 767px) {
        --min-gap: 0rem;
        flex-direction: row-reverse;
        width: max-content;
      }

      @container aside (min-width: 768px) {
        padding-bottom: 6rem;
      }
    }

    .cube {
      --t: pow(
        clamp(
          0,
          (var(--dt, 600) - var(--min-dt)) / (var(--max-dt) - var(--min-dt)),
          1
        ),
        0.7
      );
      --block-gap: calc(
        var(--min-gap) + var(--t) * (var(--max-gap) - var(--min-gap))
      );
      --empty-alpha: 0.4;

      --face-right: var(--cube-neutral-right);
      --face-left: var(--cube-neutral-left);
      --face-top: var(--cube-neutral-top);
      --face-bottom: var(--cube-neutral-bottom);

      --liquid-y: calc(var(--iso-scale) * var(--fill));
      --glass-y: calc(var(--iso-scale) * (1 - var(--fill)));
      --is-full: round(down, var(--fill), 1);
      --is-empty: round(down, calc(1 - var(--fill)), 1);

      flex-shrink: 0;
      position: relative;
      cursor: pointer;
      width: var(--cube-w);
      height: var(--cube-h);
      overflow: visible;
      text-decoration: none;
      --state-ease: 50ms cubic-bezier(0.4, 0, 0.2, 1);
      color: var(--color);
      transition: color var(--state-ease);
      user-select: none;
      pointer-events: none;

      &:hover {
        color: var(--background-color);
        --face-right: var(--cube-hover-right);
        --face-left: var(--cube-hover-left);
        --face-top: var(--cube-hover-top);
        --face-bottom: var(--cube-hover-bottom);
      }

      &:active,
      &.selected {
        color: var(--black);
        --face-right: var(--cube-selected-right);
        --face-left: var(--cube-selected-left);
        --face-top: var(--cube-selected-top);
        --face-bottom: var(--cube-selected-bottom);
      }

      &.skeleton .face-text {
        visibility: hidden;
      }

      .face {
        position: absolute;
        transform-origin: 0 0;
        box-sizing: border-box;
        width: var(--cube);
        height: var(--cube);
        transform: translateY(50%) var(--orient)
          translate(calc(var(--cube) * var(--x)), calc(var(--cube) * var(--y)))
          scale(var(--sx, 1), var(--sy));
        pointer-events: auto;
      }

      .liquid,
      .glass {
        will-change: background-color;
        transition: background-color var(--state-ease);
      }
      .liquid {
        background: var(--fc);
        opacity: calc(1 - var(--is-empty));
        --sy: var(--liquid-y);
        --y-offset: var(--glass-y);
      }
      .glass {
        background: oklch(from var(--fc) l c h / var(--empty-alpha));
        --sy: var(--glass-y);
        --y-offset: 0;
      }
      .glass.top {
        opacity: calc(1 - var(--is-full));
      }

      .face-text {
        --sy: var(--iso-scale);
        --y-offset: 0;
        pointer-events: none;
        padding: 0.1rem;
        font-family: var(--font-mono);
        font-size: var(--font-size-xs);
        font-weight: 450;
      }
      .face-text.top,
      .face-text.right {
        display: flex;
        flex-direction: column;
        align-items: center;
        text-align: center;
      }
      .face-text.top {
        justify-content: center;
        text-transform: uppercase;
      }
      .face-text.right {
        justify-content: space-between;
      }
      .face-text p {
        margin: 0;
      }
      .face-text .height {
        font-size: var(--font-size-sm);
        font-weight: normal;
      }
      .face-text .fees {
        display: flex;
        flex-direction: column;
        height: 100%;
        justify-content: center;
        align-items: center;
      }
      .face-text .pool {
        display: flex;
        align-items: center;
        justify-content: center;
        gap: 0.1em;
        width: 100%;
      }
      .face-text .pool img {
        width: 1.25em;
        height: 1.25em;
        flex-shrink: 0;
      }
      .face-text .pool span {
        min-width: 0;
        overflow: hidden;
        text-overflow: ellipsis;
        white-space: nowrap;
        line-height: 1;
      }

      .top,
      .bottom {
        --orient: rotate(30deg) skewX(-30deg);
        --sy: var(--iso-scale);
      }
      .right,
      .rear-left {
        --orient: rotate(-30deg) skewX(-30deg);
      }
      .left,
      .rear-right {
        --orient: rotate(30deg) skewX(30deg);
      }

      .top,
      .rear-right {
        --y: calc(var(--y-offset) - var(--iso-scale));
      }
      .left,
      .rear-left {
        --y: var(--y-offset);
      }
      .right {
        --y: calc(var(--y-offset) + var(--iso-scale));
      }
      .bottom {
        --y: 0;
      }

      .top {
        --fc: var(--face-top);
        --x: var(--top-x-shift, 0);
      }
      .bottom {
        --fc: var(--face-bottom);
        --x: 1;
      }
      .right {
        --fc: var(--face-right);
        --x: 1;
      }
      .left {
        --fc: var(--face-left);
        --x: 0;
      }
      .rear-right {
        --fc: var(--face-left);
        --x: 1;
      }
      .rear-left {
        --fc: var(--face-top);
        --x: 1;
        --sx: -1;
      }
      .liquid.top {
        --top-x-shift: calc(1 - var(--fill));
      }

      & + & {
        margin-bottom: var(--block-gap);

        &::before {
          content: "";
          position: absolute;
          top: 100%;
          left: 50%;
          width: 1px;
          height: var(--block-gap);
          background: var(--border-color);
          z-index: -1;
        }

        @container aside (max-width: 767px) {
          margin-bottom: 0;
          margin-right: var(--block-gap);

          &::before {
            bottom: auto;
            left: auto;
            right: calc(-1 * var(--block-gap));
            top: 50%;
            width: var(--block-gap);
            height: 1px;
          }
        }
      }
    }
  }*/

  #block-details,
  #tx-details,
  #addr-details {
    flex: 1;
    font-size: var(--font-size-sm);
    line-height: var(--line-height-sm);

    /* #explorer supplies only vertical padding on mobile. */
    @container aside (max-width: 767px) {
      padding: 0 var(--main-padding);
    }

    /* Full padding, halved on the side facing the chain so its halved
       right padding and this halved left padding form one gutter. */
    @container aside (min-width: 768px) {
      overflow-y: auto;
      padding: var(--main-padding);
      padding-left: calc(var(--main-padding) / 2);
    }

    h1 {
      margin-bottom: 1rem;

      code {
        font-size: 1.5rem;
        font-weight: 300;
        font-family: Lilex;
        color: var(--off-color);
        letter-spacing: -0.05rem;
      }
    }

    .row {
      display: flex;
      justify-content: space-between;
      gap: 1rem;
      padding: 0.25rem 0;
      border-bottom: 1px solid var(--border-color);
    }

    .label {
      color: var(--off-color);
      white-space: nowrap;
    }

    .value {
      text-align: right;
      word-break: break-all;
    }

    .transactions {
      margin-top: 1rem;

      .tx-header {
        display: flex;
        justify-content: space-between;
        align-items: center;
        margin-bottom: 0.5rem;

        h2 {
          font-size: var(--font-size-sm);
          line-height: var(--line-height-sm);
        }
      }

      .pagination {
        display: flex;
        align-items: center;
        gap: 0.5rem;

        button {
          color: var(--off-color);

          &:disabled {
            opacity: 0.25;
            pointer-events: none;
          }
        }
      }

      .tx {
        border: 1px solid var(--border-color);
        padding: 0.5rem;
        margin-bottom: 0.5rem;
        content-visibility: auto;
        contain-intrinsic-block-size: auto 8rem;

        .tx-head {
          display: flex;
          justify-content: space-between;
          gap: 0.5rem;
          margin-bottom: 0.5rem;
          padding-bottom: 0.5rem;
          border-bottom: 1px solid var(--border-color);

          .txid {
            font-family: Lilex;
            font-size: var(--font-size-xs);
            line-height: var(--line-height-xs);
            color: var(--off-color);
            overflow: hidden;
            text-overflow: ellipsis;
          }

          .tx-time {
            flex-shrink: 0;
            color: var(--off-color);
          }
        }

        .tx-body {
          display: flex;
          gap: 0.5rem;
          font-size: var(--font-size-xs);
          line-height: var(--line-height-xs);
        }

        .tx-inputs,
        .tx-outputs {
          flex: 1;
          min-width: 0;
          display: flex;
          flex-direction: column;
          gap: 0.125rem;
        }

        .tx-outputs {
          padding-left: 0.5rem;
          border-left: 1px solid var(--border-color);
        }

        .tx-io {
          display: flex;
          justify-content: space-between;
          gap: 0.5rem;

          .addr {
            display: flex;
            min-width: 0;
            white-space: nowrap;
            color: var(--off-color);

            a {
              display: flex;
              min-width: 0;
            }

            .addr-head {
              overflow: hidden;
              text-overflow: ellipsis;
            }

            .addr-tail {
              flex-shrink: 0;
            }

            &.coinbase {
              color: var(--orange);
            }

            .coinbase-sig {
              font-family: Lilex;
              font-size: var(--font-size-xs);
              color: var(--off-color);
              display: block;
              overflow: hidden;
              text-overflow: ellipsis;
            }

            &.op-return {
              color: var(--off-color);
            }
          }

          .amount {
            flex-shrink: 0;
            text-align: right;
          }
        }

        .show-more {
          color: var(--off-color);
          font-size: var(--font-size-xs);
          padding: 0.25rem 0;
        }

        .tx-foot {
          display: flex;
          justify-content: space-between;
          gap: 0.5rem;
          margin-top: 0.5rem;
          padding-top: 0.5rem;
          border-top: 1px solid var(--border-color);
          color: var(--off-color);

          .total {
            color: var(--orange);
          }
        }
      }
    }
  }
}
