:root {
  --vh: 1vh;
}

html {
  background-color: #000000;
  color: #ffffff;
}

body {
  margin: 0;
  font-family: -apple-system, BlinkMacSystemFont, 'Hiragino Sans', "ヒラギノ角ゴ ProN W3", "Yu Gothic UI", "メイリオ", Meiryo, sans-serif;
  display: flex;
  flex-direction: column;
  align-items: center;
  user-select: none;
  -webkit-user-select: none;
  -webkit-touch-callout: none;
  text-spacing-trim: space-all;
}

body:not(.field) {
  max-width: 500px;
  margin: auto;
}

a {
  display: inline-block;
  text-decoration: none;
  font-weight: bold;
  color: #ffffff;
  background-color: #0000EE;
  border-radius: 4px;
  padding: 1px 4px;
}

h1,
h2,
h3,
h4,
h5 {
  font-size: 1rem;
  margin: 0;
}

ul,
ol {
  margin: 8px 0;
  padding: 0 24px;
}

::-webkit-scrollbar {
  background: rgba(0, 0, 0, .2);
  width: 0px;
  height: 0px;
}

::-webkit-scrollbar-thumb {
  background: rgba(0, 0, 0, .66);
}

@media screen and (min-width:769px) {
  ::-webkit-scrollbar {
    background: rgba(0, 0, 0, .2);
    width: 5px;
    height: 5px;
  }
}

header {
  font-weight: bold;
  line-height: calc(var(--vh, 1vh) * 5);
  box-sizing: border-box;
  height: calc(var(--vh, 1vh) * 5);
}

main {
  box-sizing: border-box;
  height: calc(var(--vh, 1vh) * 95);
  overflow-y: auto;
}

.none {
  display: none !important;
}

button {
  border: none;
  background-color: #eeeeee;
  color: #000000;
  border-radius: 6px;
  padding: 4px 8px;
  transition: all 200ms;
  border: 1px solid #000000;
  margin: 3px 0;
  cursor: pointer;
}

button:hover {
  background-color: #ffcc99;
}

button[disabled] {
  background-color: #999999 !important;
  color: #bbbbbb;
  border: 1px solid #888888;
  cursor: default;
}

input {
  border: none;
  background-color: rgba(255, 255, 255, 1);
  border-radius: 6px;
  padding: 8px 12px;
  transition: all 200ms;
  border-top: 1px solid rgba(0, 0, 0, .66);
  margin: 3px 0;
}

input[type="checkbox"] {
  margin: 0 4px 2px 0;
  vertical-align: bottom;
}

::placeholder {
  font-weight: bold;
  color: rgba(80, 120, 255, .8);
}

input::-webkit-input-placeholder {
  font-weight: bold;
  color: rgba(80, 120, 255, .8);
}

input:-moz-placeholder {
  font-weight: bold;
  color: rgba(80, 120, 255, .8);
}

input::-moz-placeholder {
  font-weight: bold;
  color: rgba(80, 120, 255, .8);
}

input:-ms-input-placeholder {
  font-weight: bold;
  color: rgba(80, 120, 255, .8);
}

dt {
  margin-top: 2%;
}

dd {
  margin-left: 3%;
}

#game_logo {
  z-index: 1000;
  width: 100%;
  height: 100%;
  position: absolute;
  top: 0;
  left: 0;
  background-color: rgba(0, 0, 0, .8);
  animation: logo-back 4s linear forwards;
  overflow: hidden;
}

#game_logo img {
  position: absolute;
  width: 66vw;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  margin: auto;
  animation: logo 4s ease-in-out forwards;
}

@keyframes logo-back {
  0% {
    opacity: 1;
  }

  55% {
    opacity: 1;
  }

  100% {
    opacity: 0;
  }
}

@keyframes logo {
  0% {
    opacity: 0;
    transform: scale(0.75);
  }

  45% {
    opacity: 1;
    transform: scale(1);
  }

  55% {
    transform: scale(1);
  }

  100% {
    transform: scale(2);
  }
}

#info {
  position: fixed;
  background-color: rgba(0, 0, 0, 0.8);
  color: #ffffff;
  font-weight: bold;
  border-radius: 3px;
  padding: 4px 8px;
  top: 10%;
  left: 0;
  right: 0;
  margin: 0 auto;
  width: 80%;
  animation: info 3500ms ease-in-out forwards;
  z-index: 1000;
}


@keyframes info {
  0% {
    top: 0%;
    opacity: 0;
  }

  10% {
    top: 10%;
    opacity: 1;
  }

  90% {
    top: 10%;
    opacity: 1;
  }

  100% {
    top: 0%;
    opacity: 0;
  }
}

#check {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: 1000;
}

#checkWindow {
  border: solid 2px rgba(255, 255, 255, .66);
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  width: 80%;
  height: fit-content;
  margin: auto;
  background-color: rgba(0, 0, 0, .75);
  border-radius: 4px;
  box-sizing: border-box;
  overflow: visible;
  color: #ffffff;
  animation: checkWindow 500ms ease-in-out forwards;
}

@keyframes checkWindow {
  0% {
    opacity: 0;
    transform: scale(0.6);
  }

  50% {
    opacity: 1;
    transform: scale(1.05);
  }

  100% {
    opacity: 1;
    transform: scale(1);
  }
}

@keyframes checkWindowClose {
  0% {
    opacity: 1;
    transform: scale(1);
  }

  50% {
    opacity: 1;
    transform: scale(1.025);
  }

  100% {
    opacity: 0;
    transform: scale(0.9);
  }
}

#checkWindow i.close {
  position: absolute;
  top: -8px;
  right: -8px;
  font-size: 24px;
  cursor: pointer;
  z-index: 100;
}

#checkWindow .contents {
  min-height: calc(var(--vh, 1vh) * 32);
  height: fit-content;
  max-height: calc(var(--vh, 1vh) * 64);
  width: 100%;
  overflow-x: auto;
  position: relative;
  padding: 8px 8px 4px 8px;
  box-sizing: border-box;
  text-align: left;
}

.alert {
  font-weight: bold;
  color: rgb(200, 0, 0);
}

header.mini,
div.mini,
span.mini,
button.mini {
  font-size: .8rem;
}

hr.mini {
  margin: 1.2% 0;
  border: none;
}

.npc img {
  vertical-align: bottom;
}

main #exit {
  position: fixed;
  width:66%;
  left: 0;
  right: 0;
  bottom: 2px;
  margin:0 auto;
}

.attackCount500 {
  animation: attackCount500 3000ms linear infinite;
}

.attackCount1500,
.attackCount3500,
.attackCount7500 {
  animation: attackCount1500 2000ms linear infinite;
}

.attackCount15500 {
  animation: attackCount15500 1000ms linear infinite;
}

@keyframes attackCount500 {
  0% {
    filter: blur(0px) brightness(100%) contrast(100%) saturate(100%);
  }

  50% {
    filter: blur(0.5px) brightness(120%) contrast(110%) saturate(110%);
  }

  100% {
    filter: blur(0px) brightness(100%) contrast(100%) saturate(100%);
  }
}

@keyframes attackCount1500 {
  0% {
    filter: blur(0px) brightness(100%) contrast(100%) saturate(100%);
  }

  50% {
    filter: blur(1px) brightness(150%) contrast(150%) saturate(150%);
  }

  100% {
    filter: blur(0px) brightness(100%) contrast(100%) saturate(100%);
  }
}

@keyframes attackCount15500 {
  0% {
    filter: blur(1px) brightness(150%) contrast(150%) saturate(150%) hue-rotate(10deg);
  }

  50% {
    filter: blur(1px) brightness(150%) contrast(150%) saturate(150%) hue-rotate(10deg) opacity(.8);
  }

  100% {
    filter: blur(1px) brightness(150%) contrast(150%) saturate(150%) hue-rotate(10deg);
  }
}