body {
  font-family: 'Roboto Condensed', 'Noto Sans JP', sans-serif;
  background-color: #fff;
}

.katex {
  font: normal 1.21em KaTeX_Main, Times New Roman, serif;
}

.h2-1 {
  position: relative;
  font-size: 32px;
  font-weight: 400;
  padding-left: 32px;
  margin: 25px 0 10px 0;
}

.h2-2 {
  position: relative;
  font-size: 26px;
  font-weight: 400;
  padding-left: 32px;
}

.h3-1 {
  position: relative;
  font-size: 24px;
  font-weight: 500;
  padding-left: 32px;
  margin: 15px 0;
}

.h2-1::before, .h2-2::before, .h3-1::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  display: inline-block;
  height: 40px;
  width: 32px;
  background-image: url("data:image/svg+xml,%3Csvg fill='%23000000' xmlns='http://www.w3.org/2000/svg' viewBox='0 0 32 40'%3E%3Cpolygon points='0 4, 32 4, 28 8, 0 8' stroke='%23000000' fill='%23000000' stroke-width='0'/%3E%3Cpolygon points='0 12, 24 12, 20 16, 0 16' stroke='%23000000' fill='%23000000' stroke-width='0'/%3E%3Cpolygon points='0 20, 16 20, 12 24, 0 24' stroke='%23000000' fill='%23000000' stroke-width='0'/%3E%3Cpolygon points='0 28, 8 28, 4 32, 0 32' stroke='%23000000' fill='%23000000' stroke-width='0'/%3E%3C/svg%3E%0A");
  background-repeat: no-repeat;
  background-size: contain;
  background-position: center;
}

.main-container-1 {
  width: 95%;
  margin: 5px auto;
}

.table-flex {
  width: 100%;
  overflow-x: auto;
}

.contest-table, .profile-table {
  text-align: left;
  border-collapse: collapse;
  width: 100%;
}

.contest-table thead tr, .profile-table th {
  background-color: #000;
  color: #fff;
  box-sizing: border-box;
}

.contest-table thead th {
  padding: 5px 5px;
  box-sizing: border-box;
}

.contest-table td, .profile-table td, .profile-table th {
  padding: 15px 5px;
  box-sizing: border-box;
}

.contest-table th, .profile-table th {
  position: relative;
  font-weight: 500;
  height: 40px;
}

.contest-table thead th::before, .profile-table th::before {
  content: "";
  position: absolute;
  right: 0;
  top: 0;
  height: 100%;
  aspect-ratio: 1;
  clip-path: polygon(101% 80%, 101% 101%, 80% 101%);
  background-color: #fff;
}

.contest-table tbody tr, .profile-table tbody tr {
  border-bottom: solid 1px #888;
}

.contest-table tbody td {
  border-left: solid 1px #eee;
}

.user_name_tag {
  font-weight: 500;
  text-decoration: none;
  white-space: nowrap;
}

.button-container {
  display: flex;
  flex-wrap: wrap;
  width: 100%;
  gap: 3px;
  margin: 10px;
}

.button {
  display: inline-block;
  position: relative;
  height: 40px;
  width: 120px;
  text-align: center;
  line-height: 40px;
  font-weight: 500;
  box-sizing: border-box;
}

.button>a {
  position: absolute;
  top: 0;
  left: 0;
  height: 100%;
  width: 100%;
}

.button>a:hover {
  background-color: #00000022;
}

.button-white {
  background-color: #fff;
  border: solid 1px #000;
}

.button-blue {
  background-color: #04f;
  color: #fff;
}

.button-red {
  background-color: #f00;
  color: #fff;
}

.button-black {
  background-color: #000;
  color: #fff;
}

.profile-container {
  width: 100%; border: solid 2px #000;
}

.profile-name-banner {
  background-color: #000; overflow: hidden; padding-bottom: 5px; box-sizing: border-box; height: 50px; position: relative;
}

.profile-name-banner-container {
  height: 100%; width: 340px; padding: 5px 75px 5px 45px; box-sizing: border-box; position: relative;
}

.profile-rating-base-container {
  display: flex; background-color: #000;
}

.profile-rating-container-text {
  width: 70px; height: 100%;
}

.profile-rating-container-text>p {
  color: #fff; font-size: 14px; margin: 5px 0 0 0; height: 20px; text-align: center;
}

.profile-rating-container {
  display: flex; flex-wrap: wrap; position: relative; width: calc(100% - 70px); gap: 2px 2px;
}

.profile-name {
  font-weight: 500; font-size: 24px; position: absolute;
}

.profile-rating-item {
  min-width: 160px; height: 32px; border: solid 2px #000; box-sizing: border-box; background-color: #fff; position: relative;
}

@media only screen and (min-width:1115px) {
  .profile-rating-item {
    width: calc((100% - 2px * (6 - 1)) / 6);
  }
}

@media only screen and (max-width:1115px) {
  .profile-rating-item {
    width: calc((100% - 2px * (5 - 1)) / 5);
  }
}

@media only screen and (max-width:955px) {
  .profile-rating-item {
    width: calc((100% - 2px * (4 - 1)) / 4);
  }
}

@media only screen and (max-width:795px) {
  .profile-rating-item {
    width: calc((100% - 2px * (3 - 1)) / 3);
  }
}

@media only screen and (max-width:635px) {
  .profile-rating-item {
    width: calc((100% - 2px * (2 - 1)) / 2);
  }
}

@media only screen and (max-width:475px) {
  .profile-rating-item {
    width: 100%;
  }
}

.profile-rating-genre {
  color: #fff; position: absolute; top: -2px; left: 10px; margin: 0; padding: 0; font-size: 24px;
}

.profile-rating-value {
  font-size: 24px; position: absolute; right: 40px; font-weight: 500;
}

.profile-decoration-A {
  box-sizing: border-box; position: absolute; top: 0; left: 0;
}

.profile-decoration-B {
  box-sizing: border-box; position: absolute; bottom: 0; right: 0;
}

.dec-1 {
  background-color: #fff; clip-path: polygon(0 0, 343px 0, 293px 50px, 0 50px); height: 100%; width: 120%;
}

.dec-2 {
  background-color: #000; clip-path: polygon(0 3px, 10px 3px, 7px 6px, 0 6px); height: 100%; width: 100%;
}

.dec-3 {
  background-color: #000; clip-path: polygon(0 8px, 5px 8px, 2px 11px, 0 11px); height: 100%; width: 100%;
}

.dec-4 {
  background-color: #000; clip-path: polygon(325px 2px, 335px 2px, 294px 43px, 36px 43px, 39px 40px, 287px 40px); height: 100%; width: 100%;
}

.dec-5 {
  background-color: #fff; clip-path: polygon(347px 3px, 357px 3px, 315px 45px, 305px 45px); height: 100%; width: 200%;
}

.dec-6 {
  background-color: #fff; clip-path: polygon(362px 3px, 372px 3px, 340px 35px, 330px 35px); height: 100%; width: 200%;
}

.dec-7 {
  background-color: #fff; clip-path: polygon(377px 3px, 387px 3px, 365px 25px, 355px 25px); height: 100%; width: 200%;
}

.dec-8 {
  height: 100%; width: 100%; background-color: #000; clip-path: polygon(0 0, 64px 0, 32px 32px, 0 32px);
}

.dec-9 {
  height: 100%; width: 100%; background-color: #fff; clip-path: polygon(57px 0, 62px 0, 30px 32px, 25px 32px);
}

.dec-10 {
  background-color: #000; height: 100%; width: 20px; clip-path: polygon(20px 27px, 0 27px, 3px 24px, 20px 24px);
}

.dec-11 {
  background-color: #000; height: 100%; width: 20px; clip-path: polygon(20px 22px, 5px 22px, 8px 19px, 20px 19px);
}

.dec-12 {
  background-color: #000; height: 100%; width: 20px; clip-path: polygon(20px 17px, 10px 17px, 13px 14px, 20px 14px);
}

.dec-13 {
  background-color: #000; height: 100%; width: 20px; clip-path: polygon(20px 12px, 15px 12px, 18px 9px, 20px 9px);
}

.icon-A {
  background-image: url("data:image/svg+xml,%3Csvg fill='%23000000' xmlns='http://www.w3.org/2000/svg' viewBox='0 0 32 32'%3E%3Cpolygon points='16 16, 15 12, 16 4, 17 12' stroke='%23000000' fill='%23000000' stroke-width='0'/%3E%3Cpolygon points='16 16, 20 15, 28 16, 20 17' stroke='%23000000' fill='%23000000' stroke-width='0'/%3E%3Cpolygon points='16 16, 17 20, 16 28, 15 20' stroke='%23000000' fill='%23000000' stroke-width='0'/%3E%3Cpolygon points='16 16, 12 17, 4 16, 12 15' stroke='%23000000' fill='%23000000' stroke-width='0'/%3E%3C/svg%3E%0A");
  height: 100%; width: 32px; box-sizing: border-box; position: absolute; top: -2px; left: -2px;
  background-repeat: no-repeat;
  transform-origin: 0 0;
  transform: scale(calc(50 / 32));
}

.contest-rule-container {
  width: 100%; display: flex; flex-wrap: wrap;
}

.contest-rule-item {
  height: 40px; width: 200px; background-color: #000; position: relative;
}

.contest-rule-text {
  position: absolute; top: 0; left: 0; display: inline-block; margin: 0; padding: 0 5px; line-height: 40px; height: 40px; color: #fff; font-size: 12px; width: 160px;
}

.contest-rule-value-A {
  position: absolute; top: 0; right: 0; display: inline-block; margin: 0; height: 40px; width: 40px; color: #fff; line-height: 40px; font-size: 24px; text-align: center;
}

.contest-rule-value-B {
  position: absolute; top: 0; right: 0; display: inline-block; margin: 0; height: 40px; width: 60px; color: #fff; line-height: 40px; font-size: 24px; text-align: center;
}

.contest-rule-ng {
  background-color: #f00; 
}

.contest-rule-neutral {
  background-color: #444; 
}

.contest-rule-ok {
  background-color: #00b;
}

.page-button-container {
  display: flex; flex-wrap: wrap; margin: 10px;
}

.page-button {
  height: 25px; width: 40px; text-align: center; padding: 7px 0 5px 0; color: #2196f3;
  position: relative;
}

.page-button>a {
  position: absolute; top: 0; left: 0; height: 100%; width: 100%;
}

.page-button>a:hover {
  background-color: #00000022;
}

.page-button-selected {
  height: 25px; width: 40px; text-align: center; padding: 7px 0 5px 0; background-color: #000000; color: #ffffff;
  position: relative;
}

.page-button-selected>a {
  position: absolute; top: 0; left: 0; height: 100%; width: 100%;
}