@import url('https://fonts.googleapis.com/css2?family=M+PLUS+1p:wght@300&family=Train+One&display=swap');
@import url('https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.1.1/css/all.min.css');

* {
  box-sizing: border-box;
}
:root {
  --light-blue: #A3E4DB;
  --white: #FFF8F3;
  --blue: #1C6DD0;
  --pink: #fcc0e8;
  --moji: #45474a;
}
a,
a::after,
a::before,
button,
button::after,
button::before,
input,
textarea,
select {
  transition: all 0.7s;
}
a{
  color: var(--pink);
  text-decoration:none;
}
p{
  line-height: 1.75;
}
a:hover{
  transition:all 0.5s;
}
img{
  max-width: 100%;
  height: auto;
}

/* ローディング */
.loader-wrap {
  position: fixed;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  height: 100%;
  background: var(--blue);
  z-index: 100;
}

.intersecting-circles-spinner, .intersecting-circles-spinner * {
  box-sizing: border-box;
}
.intersecting-circles-spinner {
  height: 70px;
  width: 70px;
  position: relative;
  display: flex;
  flex-direction: row;
  justify-content: center;
  align-items: center;
}
.intersecting-circles-spinner .spinnerBlock {
  animation: intersecting-circles-spinners-animation 1200ms linear infinite;
  transform-origin: center;
  display: block;
  height: 35px;
  width: 35px;
}
.intersecting-circles-spinner .circle {
  display: block;
  border: 2px solid var(--pink);
  border-radius: 50%;
  height: 100%;
  width: 100%;
  position: absolute;
  left: 0;
  top: 0;
}
.intersecting-circles-spinner .circle:nth-child(1) {
  left: 0;
  top: 0;
}
.intersecting-circles-spinner .circle:nth-child(2) {
  left: calc(35px * -0.36);
  top: calc(35px * 0.2);
}
.intersecting-circles-spinner .circle:nth-child(3) {
  left: calc(35px * -0.36);
  top: calc(35px * -0.2);
}
.intersecting-circles-spinner .circle:nth-child(4) {
  left: 0;
  top: calc(35px * -0.36);
}
.intersecting-circles-spinner .circle:nth-child(5) {
  left: calc(35px * 0.36);
  top: calc(35px * -0.2);
}
.intersecting-circles-spinner .circle:nth-child(6) {
  left: calc(35px * 0.36);
  top: calc(35px * 0.2);
}
.intersecting-circles-spinner .circle:nth-child(7) {
  left: 0;
  top: calc(35px * 0.36);
}
@keyframes intersecting-circles-spinners-animation {
  from { transform: rotate(0deg); }
  to { transform: rotate(360deg); }
}
/* ローディング */

html{
  scroll-behavior: smooth;
   overflow-y: scroll;
  /*スクロールバー非表示（IE・Edge）*/
  -ms-overflow-style: none;
  /*スクロールバー非表示（Firefox）*/
  scrollbar-width: none;
}
/*スクロールバー非表示（Chrome・Safari）*/
html::-webkit-scrollbar{
  display:none;
}
body {
  margin: 0;
  padding: 0;
  background-color: var(--light-blue);
  background-image:  linear-gradient(var(--white) 1px, transparent 1px), linear-gradient(to right, var(--white) 1px, var(--light-blue) 1px);
  background-size: 20px 20px;
  background-attachment: fixed; /*--背景画像の固定--*/
  color: var(--moji);
  font-family: 'M PLUS 1p', sans-serif;
  display: flex;
  flex-flow: column;
  min-height: 100vh;
  line-height: 1.6;
  letter-spacing: 0.12em;
}

#contents{
  display: flex;
  padding: 40px;
  box-sizing: border-box;
}
#main {
  box-sizing: border-box;
  height: auto;
  flex: 1;
  display: flex;
  flex-direction: column;
}

h2 {
  padding: 0.7rem 0;
  margin-bottom: 0.2rem;
  background-image: repeating-linear-gradient(45deg, transparent 0 3px, var(--pink) 3px 6px);
  background-repeat: no-repeat;
  background-size: 100% 10px;
  background-position: left 0 bottom 10px;
  color: var(--blue);
  /*font-weight: bold;*/
  font-size: 2.8em;
  font-family: 'Train One', cursive;
}
@media screen and (max-width: 1000px) {
  #contents{
    display: block;
    padding: 15px;
    box-sizing: border-box;
  }
  #main {
    display: block;
    width: 100%;
  }
  h2 {
    font-size: 1.9em;
  }
}

.box{
  margin-right: auto;
  margin-left: auto;
  margin: 3.2em auto; /* ボックスの余白 */
  background-color: var(--white); /* ボックス背景色 */
  padding:2.5em 2em 2em; /* ボックス内側余白 */
  box-shadow: 6px 6px var(--blue);
  border-radius: 5px;
  border: 2px solid var(--moji);
  max-width: 850px;
  width: 100%;
}
.bigbox {
  max-width: 850px;
  width: 100%;
  height: auto;
  display: flex;
  margin: 3.2em auto; /* ボックスの余白 */
  align-items: stretch;
}
.smallbox {
  width: 48%;
  height: auto;
  margin: auto 0.5em; /* ボックスの余白 */
  background-color: var(--white); /* ボックス背景色 */
  padding:2.5em 2em 2em; /* ボックス内側余白 */
  box-shadow: 6px 6px var(--blue);
  border-radius: 5px;
  border: 2px solid var(--moji);
}
.pin {
  position: relative;
}
.pin::after {
  font-family: 'Font Awesome 6 Free';
  content: '\f08d';
  position: absolute;
  right: .3rem;
  margin: 0 auto;
  font-weight: bold;
  text-align: right;
  top: -1rem;
  width: 2.6rem;
  font-size: 2rem;
  transform: rotate(20deg);
  color: var(--blue);
}
@media screen and (max-width: 1000px) {
  .box{
    padding: 1.5em 1em 1em; /* ボックス内側余白 */
    width: 100%;
  }
  .bigbox {
    width: 100%;
    height: auto;
    display: flex;
    flex-direction: column;
  }
  .smallbox {
    width: 100%;
    height: auto;
    margin: 3.2em 0; /* ボックスの余白 */
    background-color: var(--white); /* ボックス背景色 */
    padding:1.5em 1em 1em; /* ボックス内側余白 */
  }
  .pin::after {
    right: .3rem;
    margin: 0 auto;
    font-weight: bold;
    text-align: right;
    top: -1rem;
    width: 2.6rem;
    font-size: 1.5rem;
  }
}

.list-genle {
  list-style-type: '👉';
  padding: 0 .5em 0 2em; /* ボックス内側余白 */
}
.list-genle li {
  padding: .5em;
}
.list-bat {
  list-style-type: '🤮';
  padding: 0 .5em 0 2em; /* ボックス内側余白 */
}
.list-bat li {
  padding: .5em;
}

.list-offline {
  padding: 0 2em 0 0; /* ボックス内側余白 */
}
.list-offline li {
  padding: .5em;
}
.list-offline .item {
  display: flex;
  flex-wrap: wrap;
  flex-wrap: nowrap;
  align-items: center;
}
.list-offline .item .date{
  margin: 0;
  min-width: 150px;
  font-size: .9em;
  font-weight: bold;
  color: var(--blue);
}
.list-offline .item .date::before {
  content: "📚";
  padding-right: .5em;
  font-size: 1.3em;
}
.list-offline .item .title{
  margin: 0;
  width: 100%;
  padding-left: 10px;
}

.list-online {
  padding: 0 2em 0 0; /* ボックス内側余白 */
}
.list-online li {
  padding: .5em;
}
.list-online .item {
  display: flex;
  flex-wrap: wrap;
  flex-wrap: nowrap;
  align-items: center;
}
.list-online .item .date{
  margin: 0;
  min-width: 150px;
  font-size: .9em;
  font-weight: bold;
  color: var(--blue);
}
.list-online .item .date::before {
  content: "💻";
  padding-right: .5em;
  font-size: 1.3em;
}
.list-online .item .title{
  margin: 0;
  width: 100%;
  padding-left: 10px;
}

.list-ban {
  list-style-type: '❌';
  padding: 0 .5em 0 2em; /* ボックス内側余白 */
}
.list-ban li {
  padding: .5em;
}
@media screen and (max-width: 1000px) {
  .list-offline {
    display: flex;
    justify-content: center;
    flex-direction: column;
  }
  .list-offline .item {
    flex-wrap: wrap;
  }
  .list-offline .item .date{
    min-width: 100px;
  }
  .list-offline .item .title{
    margin-top: 10px;
  }

  .list-online {
    display: flex;
    justify-content: center;
    flex-direction: column;
  }  
  .list-online .item {
    flex-wrap: wrap;
  }
  .list-online .item .date{
    min-width: 100px;
  }
  .list-online .item .title{
    margin-top: 10px;
  }
}


#sub {
  box-sizing: border-box;
  width: 300px;
  margin-left: 40px;
}
#sub .sub-box {
  position: sticky;
  top: 25px;
  width: 100%;
  height: auto;
  padding: 25px 15px;
  background: var(--white);
  border-radius: 5px;
  box-shadow: 6px 6px var(--blue);
  border: 3px solid var(--moji);
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
}
.clip {
  position: relative;
}
.clip::after {
  font-family: 'Font Awesome 6 Free';
  content: '\f0c6';
  position: absolute;
  right: .3rem;
  margin: 0 auto;
  font-weight: bold;
  text-align: right;
  top: -.7rem;
  width: 2.6rem;
  font-size: 2rem;
  transform: rotate(-45deg);
  color: var(--blue);
}

@media screen and (max-width: 1000px) {
  #sub {
    box-sizing: border-box;
    width: 100%;
    margin: 40px 0;
  }
  #sub .sub-box {
    position: static;
    width: 100%;
    height: auto;
    padding: 25px 15px;
  }
  .clip {
    position: relative!important;
  }
  .clip::after {
    right: .3rem;
    margin: 0 auto;
    font-weight: bold;
    text-align: right;
    top: -.7rem;
    width: 2.6rem;
    font-size: 2rem;
  }
}

.icon {
  width: 150px;
  height: 150px;
  margin-top: 10px;
  object-fit: cover; /* この一行を追加するだけ！ */
  border-radius: 15px;
  background: var(--light-blue);
}
.icon:hover{
  animation: rumble 0.12s linear infinite;
}
@keyframes rumble{
  0%	{transform:rotate(0deg)	translate(0,0);}
  12.5%	{transform:rotate(0.4deg)	translate(1px,-1px);}
  25%	{transform:rotate(0.8deg)	translate(0px,1px);}
  37.5%	{transform:rotate(0.4deg)	translate(-1px,0);}
  50%	{transform:rotate(0deg)	translate(0,0);}
  62.5%	{transform:rotate(-0.4deg)	translate(1px,0);}
  75%	{transform:rotate(-0.8deg)	translate(0,1px);}
  87.5%	{transform:rotate(-0.4deg)	translate(-1px,-1px);}
  100%	{transform:rotate(0deg)	translate(0,0);}
}

#sub .sub-box p {
  font-size: 1.8em;
}
.snsbox {
  width: 100%;
  height: auto;
  margin: 30px 0;
  display: flex;
  justify-content: center;
  align-items: center;
  flex-wrap: wrap;
}
.home, .poipiku, .pixiv, .pawoo, .amazon, .clap, .res {
  width: auto;
  height: auto;
  border-radius: 50px;
  background-color: var(--white);
  padding: 5px 10px;
  display: inline-block;
  margin: 8px;
}

.home {
  border: 2px solid #f734ac;
  color: #f734ac;
}
.home:hover {
  color: var(--white);
  background-color: #f734ac;
  transition: 0.8s;
}
.home::before {
  content: "\f015";
  padding-right: 5px;
  color: #f734ac;
  font-family: "Font Awesome 5 Free";
  font-weight: 900;
}
.home:hover::before {
  color: var(--white);
  transition: 0.8s;
}

.poipiku {
  border: 2px solid #E8B647;
  color: #E8B647;
}
.poipiku:hover {
  color: var(--white);
  background-color: #E8B647;
  transition: 0.8s;
}
.poipiku::before {
  content: "\f49e";
  padding-right: 5px;
  color: #E8B647;
  font-family: "Font Awesome 5 Free";
  font-weight: 900;
}
.poipiku:hover::before {
  color: var(--white);
  transition: 0.8s;
}
  
.pixiv {
  border: 2px solid #0494fc;
  color: #0494fc;
}
.pixiv:hover {
  color: var(--white);
  background-color: #0494fc;
  transition: 0.8s;
}
.pixiv::before {
  content: "\50";
  padding-right: 5px;
  color: #0494fc;
  font-family: 'Font Awesome 6 Free';
  font-weight: 900;
  vertical-align: middle;
}
.pixiv:hover::before {
  color: var(--white);
  transition: 0.8s;
}

.pawoo {
  border: 2px solid #444c54;
  color: #444c54;
}
.pawoo:hover {
  color: var(--white);
  background-color: #444c54;
  transition: 0.8s;
}
.pawoo::before {
  content: "\f0c0";
  padding-right: 5px;
  color: #444c54;
  font-family: "Font Awesome 5 Free";
  font-weight: 900;
}
.pawoo:hover::before {
  color: var(--white);
  transition: 0.8s;
}

.amazon {
  border: 2px solid #FF9900;
  color: #FF9900;
}
.amazon:hover {
  color: var(--white);
  background-color: #FF9900;
  transition: 0.8s;
}
.amazon::before {
  content: "\f005";
  padding-right: 5px;
  color: #FF9900;
  font-family: 'Font Awesome 6 Free';
  font-weight: 900;
}
.amazon:hover::before {
  color: var(--white);
  transition: 0.8s;
}

.clap {
  border: 2px solid #e8c009;
  color: #e8c009;
}
.clap:hover {
  color: var(--white);
  background-color: #e8c009;
  transition: 0.8s;
}
.clap::before {
  content: "\e1a8";
  padding-right: 5px;
  color: #e8c009;
  font-family: 'Font Awesome 6 Free';
  font-weight: 900;
}
.clap:hover::before {
  color: var(--white);
  transition: 0.8s;
}

.res {
  border: 2px solid #60CAAD;
  color: #60CAAD;
}
.res:hover {
  color: var(--white);
  background-color: #60CAAD;
  transition: 0.8s;
}
.res::before {
  content: "\f086";
  padding-right: 5px;
  color: #60CAAD;
  font-family: 'Font Awesome 6 Free';
  font-weight: 900;
}
.res:hover::before {
  color: var(--white);
  transition: 0.8s;
}


footer {
  text-align: center;
  padding: 10px;
  width: 100%;
  background-color: var(--white);
  background-size: 18px 18px;
  background-image: repeating-linear-gradient(45deg, #fcd4e7 0, #fcd4e7 1.8px, var(--white) 0, var(--white) 50%);
}