.card {
  padding-top: 0.8em;
  overflow: hidden;
  position: relative;

  .uid {
    font-size: 0.6em;
    text-align: center;
    position: absolute;
    border-image-source: url('./images/CurseBG08.png');
    border-image-slice: 30 60 30 60 fill;
    border-image-width: 0.5em 1em 0.5em 1em;
    border-image-outset: 0em 0em 0em 0em;
    border-image-repeat: stretch stretch;
    padding: 0.5em 1.2em;
    font-size: 1em;
    top: 0.5em;
    left: 0.5em;
    color: rgb(255, 255, 255);
    stroke: 0.05em rgba(0, 0, 0, 0.6);
    -webkit-text-stroke: 0.05em rgba(0, 0, 0, 0.6);
    z-index: 1;
  }

  .star {
    width: 5.5em;
    height: 1.5em;

    @for $i from 0 through 5 {
      &.star#{$i} {
        background-size: cover;
        background-repeat: no-repeat;
        background-position: center;
        background-image: url('./images/star/#{$i}.png');
      }
    }
  }

  .basic {
    display: flex;
    align-items: stretch;
    overflow: hidden;

    .char {
      width: 55%;
      position: relative;
      flex-grow: 1;

      .avatar {
        height: 100%;
        padding-top: 1em;
        overflow: hidden;

        img {
          width: 100%;
          height: 100%;
          object-fit: cover;
          object-position: top center;
          position: absolute;
        }
      }

      .skills {
        position: absolute;
        width: 120%;
        height: 3.5em;
        background: url('./images/skill_bg.png');
        background-size: contain;
        background-repeat: no-repeat;
        background-position: center;
        bottom: 3em;
        right: -1.6em;
        display: flex;
        align-items: flex-end;
        padding-left: 2.5em;
        padding-bottom: 0.2em;

        .skill {
          width: 1.4em;
          aspect-ratio: 1;
          margin-right: 1.38em;
          display: flex;
          justify-content: center;
          align-items: center;
        }
      }
    }

    .info {
      width: 45%;
      flex-grow: 0;
      flex-shrink: 0;
      font-size: 1.2em;
      position: relative;
      z-index: 2;

      .char_info {
        width: 140%;
        position: relative;
        right: 20%;
        padding: 0.3em 0.2em;
        padding-right: 20%;
        padding-left: 8%;
        border-image-slice: 0 30 0 40 fill;
        border-image-width: 0em 1.5em 0em 2em;
        border-image-outset: 0 0 0 0;
        border-image-repeat: stretch stretch;
        border-image-source: url('./images/CurseBG04.png');
        filter: drop-shadow(0 0 0.1em rgb(0, 0, 0));

        .base {
          display: flex;
          align-items: center;
          gap: 0.2em;
          overflow: hidden;

          .rank {
            width: 1.2em;
            flex-grow: 0;
            flex-shrink: 0;
          }

          .property {
            width: 1em;
            flex-grow: 0;
            flex-shrink: 0;
          }

          .name {
            overflow: hidden;
            text-overflow: ellipsis;
            white-space: nowrap;
          }
        }

        .addition {
          display: flex;
          align-items: center;
          font-size: 0.7em;
          gap: 0.2em;
          padding-left: 1em;

          .level {
            background-color: #000;
            padding: 0em 0.7em;
            border-radius: 1em;
          }

          .role_ranks {
            display: flex;
            gap: 0.1em;

            span {
              width: 1.2em;
              aspect-ratio: 1;
              border-radius: 1em;
              background-size: contain;
              background-repeat: no-repeat;
              background-position: center;
              opacity: 0.4;
            }

            @for $i from 1 through 7 {
              span:nth-child(#{$i}) {
                background-image: url('./images/ranks/#{$i}.png');
              }

              &.r#{$i} {
                @for $j from 1 through $i {
                  span:nth-child(#{$j}) {
                    opacity: 1 !important;
                  }
                }
              }
            }
          }
        }
      }

      .property_info {
        background-color: rgb(47, 47, 47);
        border-left: 0.1em solid rgb(0, 0, 0);
        padding-top: 0.2em;
        background: url('./images/BgFrame01.png') center / 150% no-repeat;

        .title {
          font-size: 0.6em;

          .special-title {
            margin-bottom: 0;
            padding-bottom: 0;
          }
        }

        .list {
          display: flex;
          flex-direction: column;
          gap: 0.2em;
          padding-bottom: 0.2em;

          .properties {
            display: flex;
            align-items: center;
            gap: 0.4em;
            padding: 0.05em 1em 0em 0.05em;

            &:nth-child(odd) {
              background-color: rgba(221, 224, 221, 0.25);
            }

            .prop-icon {
              width: 1em;
              flex-grow: 0;
              flex-shrink: 0;
              margin: 0 0.4em;
            }

            .label {
              flex-grow: 1;
              flex-shrink: 1;
              font-size: 0.65em;
              color: rgb(166, 166, 166);
              overflow: hidden;
              text-overflow: ellipsis;
              white-space: nowrap;

              &.yellow {
                color: rgb(247, 199, 54);
              }

              &.blue {
                color: rgb(65, 147, 237);
              }
            }

            .value {
              flex-grow: 0;
              flex-shrink: 0;
              font-size: 0.8em;
            }
          }
        }
      }

      .weapon_info {
        border-image-slice: 118 0 68 43 fill;
        border-image-width: 4.5em 0em 2.7em 1.7em;
        border-image-outset: 0em 0em 0em 0em;
        border-image-repeat: stretch stretch;
        border-image-source: url('./images/weapon_bg.png');
        margin-top: -0.8em;
        width: 115%;
        margin-left: -15%;
        font-size: 0.8em;
        padding: 2em 1.2em;
        padding-bottom: 3em;
        position: relative;
        overflow: hidden;

        .info {
          width: 100%;
          position: relative;
          z-index: 2;

          .base {
            width: 100%;
            display: flex;
            align-items: center;
            gap: 0.5em;

            .rarity-icon {
              width: 2em;
            }

            .name {
              text-shadow: 0 0 0.2em rgb(0, 0, 0);
            }
          }

          .main {
            display: flex;
            flex-direction: column;
            justify-content: stretch;
            width: max-content;

            .addition {
              font-size: 0.8em;
              display: flex;
              align-items: center;
              gap: 0.4em;

              .level {
                $label-width: 0.2em;
                -webkit-clip-path: polygon(
                  $label-width 0%,
                  calc(100% - $label-width) 0%,
                  100% $label-width,
                  100% calc(100% - $label-width),
                  calc(100% - $label-width) 100%,
                  $label-width 100%,
                  0% calc(100% - $label-width),
                  0% $label-width
                );
                clip-path: polygon(
                  $label-width 0%,
                  calc(100% - $label-width) 0%,
                  100% $label-width,
                  100% calc(100% - $label-width),
                  calc(100% - $label-width) 100%,
                  $label-width 100%,
                  0% calc(100% - $label-width),
                  0% $label-width
                );
                padding: 0 0.4em;
                font-size: 0.9em;
                display: flex;
                justify-content: center;
                align-items: center;
                color: rgb(43, 38, 40);
                margin: 0.1em 0;
                background-color: rgb(243, 203, 69);
              }
            }

            .properties {
              display: flex;
              align-items: center;
              background-color: rgb(65, 147, 237);
              gap: 0.2em;
              padding: 0 0.5em;
              border-radius: 1em;
              margin: 0.2em 0;

              &.sub {
                background-color: rgb(0, 0, 0);
              }

              .prop-icon {
                width: 1em;
                flex-grow: 0;
                flex-shrink: 0;
              }

              .label {
                flex-grow: 1;
                flex-shrink: 1;
                font-size: 0.7em;
                color: rgb(222, 222, 222);
                overflow: hidden;
                text-overflow: ellipsis;
                white-space: nowrap;
              }
            }
          }
        }

        .icon {
          position: absolute;
          top: 1.2em;
          right: 0;
          z-index: 1;
          height: 70%;
          margin-right: -1em;

          img {
            height: 100%;
          }
        }
      }
    }
  }

  .other {
    border-image-source: url('./images/BgFrame01.png');
    border-image-slice: 200 100 70 280 fill;
    border-image-width: 2em 1em 0.7em 2.8em;
    border-image-outset: 2em 1em 0.7em 2.8em;
    border-image-repeat: stretch stretch;
    padding-bottom: 3.3em;
    margin-top: -1.4em;
    position: relative;
    z-index: 5;
  }

  .c,
  .C {
    .comment {
      background: linear-gradient(
        0deg,
        rgba(39, 211, 30, 0.3),
        rgba(39, 211, 30, 1)
      );
      -webkit-background-clip: text;
      background-clip: text;
      color: transparent;
    }
  }
  .b,
  .B {
    .comment {
      background: linear-gradient(
        0deg,
        rgba(94, 189, 249, 0.3),
        rgba(94, 189, 249, 1)
      );
      -webkit-background-clip: text;
      background-clip: text;
      color: transparent;
    }
  }
  .a,
  .A {
    .comment {
      background: linear-gradient(
        0deg,
        rgba(210, 86, 255, 0.3),
        rgb(210, 86, 255)
      );
      -webkit-background-clip: text;
      background-clip: text;
      color: transparent;
    }
  }
  .s,
  .S {
    .comment {
      background: linear-gradient(
        0deg,
        rgba(255, 218, 190, 0.3),
        rgba(255, 218, 190, 1)
      );
      -webkit-background-clip: text;
      background-clip: text;
      color: transparent;
    }
  }
  .ss,
  .SS {
    .comment {
      background: linear-gradient(
        0deg,
        rgba(255, 225, 116, 0.4),
        rgba(255, 225, 116, 1)
      );
      -webkit-background-clip: text;
      background-clip: text;
      color: transparent;
    }
  }
  .sss,
  .SSS {
    .comment {
      background: linear-gradient(
        0deg,
        rgba(255, 163, 59, 0.4),
        rgba(255, 163, 59, 1)
      );
      -webkit-background-clip: text;
      background-clip: text;
      color: transparent;
    }
  }
  .ace,
  .ACE {
    .comment {
      background: linear-gradient(
        0deg,
        rgba(255, 59, 59, 0.4),
        rgb(255, 59, 59)
      );
      -webkit-background-clip: text;
      background-clip: text;
      color: transparent;
    }
  }

  .equip-score {
    display: flex;
    justify-content: center;
    font-size: 1.2em;
    align-items: center;
    gap: 0.2em;
    .comment-box {
      font-size: 1.2em;
      width: 2em;
      display: flex;
      justify-content: center;
      align-items: center;
      aspect-ratio: 1;
      border-radius: 50%;
      background-color: rgba(32, 32, 32, 0.4);
      box-shadow: 0 0 1em rgba(0, 0, 0, 0.4);
      border: 0.2em solid rgb(216, 216, 216);
      position: relative;
      z-index: 1;
    }
    .value {
      border: 0.1em solid rgba(155, 155, 155);
      border-left: none;
      padding: 0.1em 1em 0.1em 1em;
      margin-left: -0.6em;
      border-radius: 0 1em 1em 0;
      .subt {
        font-size: 0.8em;
      }
    }
  }

  .equip-list {
    width: 100%;
    display: grid;
    gap: 1em;
    grid-template-columns: repeat(auto-fill, minmax(30%, 1fr));
    padding: 0 1.8em;
    align-items: stretch;
    margin-top: 1em;
    overflow: hidden;
    .box {
      $size: 3em;
      border-image-source: url('./images/equip_bg.png');
      border-image-slice: 190 90 110 170 fill;
      border-image-width: 1.9 * $size 0.9 * $size 1.1 * $size 1.7 * $size;
      border-image-outset: 0.6 * $size 0.5 * $size 0.6 * $size 0.5 * $size;
      border-image-repeat: stretch stretch;
      position: relative;
      margin-top: 1.3em;
      padding-bottom: 1em;
      min-height: 10em;

      &.empty {
        &::after {
          content: '';
          position: absolute;
          width: 2.5em;
          height: 2.5em;
          top: 50%;
          left: 50%;
          transform: translate(-50%, -50%);
          background-image: url('./images/empty_equip_07.png');
          background-size: contain;
          background-repeat: no-repeat;
          background-position: center;
        }
      }

      @for $i from 1 through 6 {
        &:nth-child(#{$i}) {
          &::before {
            content: '0#{$i}';
            position: absolute;
            font-size: 2em;
            left: 50%;
            top: -0.85em;
            transform: translate(-50%, 0);
            z-index: -1;
          }
        }
      }

      .icon {
        width: 0.9 * $size;
        aspect-ratio: 1;
        position: relative;
        left: -0.3 * $size;
        top: -0.4 * $size;
        background-color: rgb(0, 0, 0);
        background-image: url('./images/empty_equip_03.png');
        background-size: contain;
        background-repeat: no-repeat;
        background-position: center;
        border-radius: 50%;

        img {
          width: 100%;
          height: 100%;
          object-fit: contain;
          display: block;
        }
      }

      .info {
        display: flex;
        padding-left: 2.2em;
        margin-top: -2.5em;
        gap: 0.5em;
        align-items: center;

        .level {
          flex-grow: 1;
          flex-shrink: 1;
          text-align: center;
          font-size: 0.76em;
          background-color: #000;
          padding: 0.1em 0.5em;
          border-radius: 1em;
          margin-bottom: 0.3em;
        }

        .rarity-icon {
          width: 2.2em;
        }
      }

      .name {
        padding: 0 0.5em;
        overflow: hidden;
        text-overflow: ellipsis;
        white-space: nowrap;
        text-align: center;
      }

      .score {
        display: flex;
        justify-content: center;
        gap: 0.2em;
        font-size: 0.9em;
        align-items: flex-end;
        .value {
          font-size: 0.9em;
          background: linear-gradient(
            0deg,
            rgba(255, 255, 255, 0.1),
            rgba(255, 255, 255, 1)
          );
          -webkit-background-clip: text;
          background-clip: text;
          color: transparent;
        }
      }

      .property-list {
        padding: 0 0.5em;
        overflow: hidden;
        .properties {
          display: flex;
          align-items: center;
          background-color: rgb(0, 0, 0);
          gap: 0.2em;
          padding: 0 0.5em;
          border-radius: 1em;
          margin: 0.2em 0;

          .prop-icon {
            width: 1em;
            flex-grow: 0;
            flex-shrink: 0;
          }

          .count {
            display: flex;
            align-items: center;
            gap: 0.1em;
            flex-grow: 0;
            flex-shrink: 0;
            span {
              // 箭头样式
              width: 0.3em;
              aspect-ratio: 1;
              border-right: 0.1em solid rgb(255, 255, 255);
              border-top: 0.1em solid rgb(255, 255, 255);
              transform: rotate(45deg);
              margin-left: -0.15em;
            }
          }

          .label {
            flex-grow: 1;
            flex-shrink: 1;
            font-size: 0.7em;
            color: rgb(222, 222, 222);
            overflow: hidden;
            text-overflow: ellipsis;
            white-space: nowrap;
            opacity: 1;
            &.hit0 {
              opacity: 0.6;
            }
            &.hit50 {
              opacity: 0.8;
            }
            &.hit75 {
              opacity: 1;
            }
            &.hit100 {
              opacity: 1;
              color: rgb(249, 189, 64);
            }
          }

          .value {
            color: rgb(249, 189, 64);
            font-size: 0.7em;
            margin-left: auto;
          }

          &.main {
            background-color: rgb(65, 147, 237);
            .prop-icon {
              width: 1.2em;
              margin-bottom: 0.2em;
              filter: drop-shadow(0 0 0.4em rgba(0, 0, 0, 0.3));
            }
            .label {
              color: rgb(255, 255, 255);
              text-shadow: 0 0 0.4em rgba(0, 0, 0, 0.3);
              font-size: 0.8em;
              opacity: 1;
            }
            .value {
              color: rgb(255, 255, 255);
              text-shadow: 0 0 0.4em rgba(0, 0, 0, 0.3);
              font-size: 1em;
            }
          }
        }
      }
    }
  }

  .damage-title {
    padding-top: 1.2em;
  }

  .damagelist {
    margin: 0 2em;
    margin-top: 1em;
    text-align: center;
    display: grid;
    backdrop-filter: blur(0.2em);
    border-radius: 0.5em;
    overflow: hidden;
    box-shadow: 0 0 3em rgba(0, 0, 0, 0.6);
    border: 0.1em solid rgba(255, 255, 255, 0.2);

    .dmg-tr {
      display: grid;
      grid-template-columns: 1.5fr 1fr 1fr;
      border-bottom: 0.1em solid rgba(255, 255, 255, 0.2);

      &:first-child {
        border-top: 0.2em solid rgba(255, 255, 255, 0.2);
        border-bottom: 0.2em solid rgba(255, 255, 255, 0.2);
        font-size: 1.1em;
        background: rgba(0, 0, 0, 0.2);
        text-shadow: 0 0 0.2em rgba(0, 0, 0, 0.6);
        color: rgb(206, 190, 149);
        .dmg-td {
          text-align: center !important;
          background: none !important;
        }
      }
    }

    .dmg-td {
      padding: 0.5em 0.5em;
      font-size: 0.9em;
      border-right: 0.1em solid rgba(255, 255, 255, 0.2);
      &:first-child {
        text-align: left;
        background: rgba(0, 0, 0, 0.2);
        color: rgb(206, 190, 149);
      }
      &:last-child {
        border-right: none;
      }
    }
  }
}

.copyright {
  margin-top: -3.3em;
  position: relative;
  z-index: 5;
}
