@charset "UTF-8";

/* ↓ページ全体の設定 */
html{
	scroll-behavior: smooth;
}

body{
	position: relative;
	width:100%;
	min-height:100dvh;
	display: flex;
	flex-flow: column;
	background-color: var(--color-base);
	color: var(--color-text);
	letter-spacing: 0.12em;
	line-height: 1.8;
	font-family: var(--font-primary);
	animation: fadein 1s ease-out;
}

strong{
	color: var(--color-main);
	font-weight: 600;
}

/**** 背景 ****/
/* 背景グラデアニメーション */
.page-bg::before {
	content:"";
	display:block;
	position:fixed;
	top:0;
	left:0;
	z-index:-2;
	width:100%;
	height:100vh;
	background: linear-gradient(50deg,#9C389F,#32378c,#192359,#3a1ca6,#32378c,#3B90FF);
	background-size: 200% 200%;
	animation: gradient-animation 30s ease infinite;
  }
  
  @keyframes gradient-animation {
	0% {
	  background-position: 0% 50%;
	}
	50% {
	  background-position: 100% 50%;
	}
	100% {
	  background-position: 0% 50%;
	}
  }
  
  /* 背景星・幾何学模様 */
  #particles-js-star { 
	  position:fixed;
	  z-index:-1;
	  width: 100%;
	  height: 100%;
  }

#wrap{
	display: flex;
	flex-direction: column;
    justify-content: start;
	min-height: 100dvh;
	padding: var(--margin-base);
}

/**** ボタン ****/
.btn {
	display: flex;
	align-items: center;
	justify-content: center;
	height: 56px;
	padding: 8px 24px;
	font-size: 1.8rem;
	font-weight: 900;
	text-align: center;
	overflow-wrap: anywhere;
	border-radius: 28px;
	box-shadow: 0px 0px 10px rgba(0,0,0,0.7);
  }
  
  .btn-more {
	width: 100%;
	max-width: 240px;
	color: #393939;
	background: linear-gradient(#FFF01D,#E8652D);
  }
  
  #btn-youtube-large {
	width: 100%;
	max-width: 360px;
	background: linear-gradient(#FF0000,#E8652D);
	margin-top: 30px;
  }
  
  #btn-twitter-large {
	width: 100%;
	max-width: 360px;
	background: linear-gradient(#0F1419,#2d3f52);
	margin-top: 30px;
  }
  
  #btn-booth-large {
	width: 100%;
	max-width: 360px;
	background: linear-gradient(#FC4D50,#FFA5A6);
	margin-top: 40px;
  }
  
  .btn-more-wrapper {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 100%;
  }
  
  /**** PC・スマホ表示切り替え ****/
  .pc {
	display: block !important;
  }
  
  .sp {
	display: none !important;
  }
  
  @media only screen and (max-width: 768px) {
	.pc {
	  display: none !important;
	}
	.sp {
	  display: block !important;
	}
  }
  
  /**** hoverアニメーション系 ****/
  .opac-anim {
	transition: .4s;
  }
  
  .opac-anim:hover {
	cursor: pointer;
	opacity: 0.6;
  }
  
  .enlarge-anim-1,.enlarge-anim-2,.enlarge-anim-3 {
	transition: transform .4s ease;
  }
  
  .enlarge-anim-1:hover {
	transform: scale(1.1);
  }
  
  .enlarge-anim-2:hover {
	transform: scale(1.2);
  }
  
  .enlarge-anim-3:hover {
	transform: scale(1.05);
  }
  
  .enlarge-overflow-hidden {
	overflow: hidden;
  }

/**** ====== ヘッダー ====== ****/
.header-wrapper {
	color: var(--color-text2);
	width: 100%;
	z-index: 98;
	margin: 0 auto;
	justify-content: space-between;
	height: 66px;
	display: flex;
	background: #CA1A21;
	box-shadow: 0px 0px 10px rgba(0,0,0,0.7);
	align-items: center;
	position: relative;
	letter-spacing: 0;
  }
  
  #pc-header.HeightMin {
	  position: fixed;
	  height: 52px;
	  animation: DownAnime 0.5s forwards;
  }
  
  @keyframes DownAnime {
	from {
	  opacity: 0;
	  transform: translateY(-170px);
	}
	to {
	  opacity: 1;
	  transform: translateY(0);
	}
  }
  
  .header-item {
	text-align :center;
	margin: 0 auto;
  }
  
  .logo {
	width: 12%;
	display: flex;
	justify-content: center;
	align-items: center;
  }
  
  .pc-logo img {
	width: 100%;
  }
  
  .logo img {
	max-width: 140px;
	height: auto;
  }
  
  #pc-header.HeightMin img {
	width: 80%;
  }
  
  .navi {
	width: 88%;
  }
  
  #g-nav-pc ul {
	display: flex;
	height: 66px;
  }
  
  #pc-header.HeightMin ul {
	height: 52px;
  }
  
  #g-nav-pc ul li {
	padding: 0 2px;
	height: 100%;
	width: 20%;
	overflow: hidden;
  }
  
  #g-nav-pc ul li a {
	width: 100%;
	text-decoration: none;
	display: block;
	height: 100%;
	display: flex;
	justify-content: center;
	align-items: center;
	transition: .3s;
	font-weight: 900;
	font-size: 1.5rem;
	position: relative;
	padding: 0 10px;
	position: relative;
	z-index: 99;
	box-sizing: border-box;
  }
  
  #g-nav-pc ul li a::after {
	position: absolute;
	left: 0;
	content: '';
	width: 100%;
	height: 5px;
	background: #FFF;
	bottom: 0px;
	transform: scale(0, 1);
	transform-origin: center top;
	transition: transform 0.3s;
	}
	
  #g-nav-pc ul li a:hover::after, #g-nav-pc ul li a.current::after {
	transform: scale(1, 1);
	}
  
  .fa-square-x-twitter {
	font-size: 4rem;
  }
  
  /**** スマホ用ヘッダー ****/
  #g-nav-sp {
	color: #FFF;
	position:fixed;
	z-index: 102;
	top:-120%;
	left:0;
	width:100%;
	height: 100vh;
	background:#CA1A21;
	transition: all 0.6s;
  }
  
  /*アクティブクラスがついたら位置を0に*/
  #g-nav-sp.panelactive {
	top: 0;
  }
  
  /*ナビゲーション*/
  #g-nav-sp-item {
	position: absolute;
	z-index: 102;
	top:50%;
	left:50%;
	transform: translate(-50%,-50%);
	width: 90%;
	display:flex;
	flex-flow: column;
  }
  
  #g-nav-sp-item nav{
	margin: 30px 0px 40px 0px;
  }
  
  /*リストのレイアウト設定*/
  #g-nav-sp-item nav li {
	list-style: none;
	text-align: center; 
  }
  
  #g-nav-sp-item nav li a {
	text-decoration: none;
	padding:10px;
	display: block;
	text-transform: uppercase;
	letter-spacing: 0.1em;
	font-size: 1.5rem;
	font-weight: 900;
	border-bottom: 1px solid #FFF;
	transition: .4s cubic-bezier(0.45, 0, 0.55, 1);
  }
  
  #g-nav-sp-item nav li a:hover {
	color: #CA1A21;
	background-color: #FFF;
	letter-spacing: 0.5em;
  }

  /*=== ボタンのためのCSS ===*/
.openbtn {
	position:fixed;
	z-index: 103;
	top:13px;
	right: 10px;
	cursor: pointer;
	width: 40px;
	height:40px;
	background-color: var(--color-main);
	border-radius: 5px;
  }
  
  /*×に変化*/	
  .openbtn span {
	display: inline-block;
	transition: all .4s;
	position: absolute;
	left: 9px;
	height: 3px;
	border-radius: 2px;
	background-color: #FFF;
	width: 55%;
  }
  
  .openbtn span:nth-of-type(1) {
	top:11px;	
  }
  
  .openbtn span:nth-of-type(2) {
	top:19px;
  }
  
  .openbtn span:nth-of-type(3) {
	top:27px;
  }
  
  .openbtn.active span:nth-of-type(1) {
	top: 18px;
	left: 18px;
	transform: translateY(6px) rotate(-45deg);
	width: 30%;
  }
  
  .openbtn.active span:nth-of-type(2) {
	opacity: 0;
  }
  
  .openbtn.active span:nth-of-type(3) {
	top: 30px;
	left: 18px;
	transform: translateY(-6px) rotate(45deg);
	width: 30%;
  }
  
  /**** ====== フッター ====== ****/
  #page_top {
	position: fixed;
	right: 10px;
	bottom: -50px;
	color: var(--color-text2);
	z-index: 91;
  }

  #page_top a {
	position: relative;
	display: block;
	text-decoration: none;
  }

  #page_top a::before {
	font-family: 'Font Awesome 5 Free';
	font-weight: 900;
	content: '\f102';
	position: absolute;
	bottom: 0;
	right: 0;
	left: 0;
	margin: auto;
	text-align: center;
  }
  
  #footer-wrapper {
	width: 100%;
	z-index: 90;
	display: flex;
	flex-flow: column;
	align-items: center;
	color: var(--color-text2);
  }
  
  #footer-snsbtn {
	height: 50px;
	background: #393939;
	width: 100%;
	margin: 0 auto;
	justify-content: center;
	display: flex;
	align-items: center;
  }
  
  #footer-snsbtn span {
	width: 32px;
	height: 32px;
  }
  
  #footer-snsbtn i {
	font-size: 1.8rem;
  }
  
  #footer-copyright {
	background: #CA1A21;
	width: 100%;
	align-items: center;
	margin: 0 auto;
	display: flex;
	justify-content: center;
	flex-flow: column;
  }
  
  .footer-item {
	text-align :center;
	margin: 0 auto;
  }
  
  #footer-copyright-lo {
	width: 100%;
  }
  
  @media only screen and (min-width: 769px) {
	#footer-copyright-lo {
	  display: flex;
	  justify-content: center;
	  align-items: flex-end;
	}
  }
  
  #footer-item-link {
	font-size: 1.2rem;
	text-align: left;
  }
  
  #footer-item-copyright {
	font-size: 1.2rem;
	text-align: right;
  }
  
  #banner-own {
	margin-bottom: 10px;
  }
  
  #banner-own img {
	width: 100%;
	max-width: 200px;
	height: auto;
  }
  
  .footer {
	padding:20px;
  }
  
  /* クリップボードにコピー・成功メッセージ */
  .success-msg {
	display: none;
	position: fixed;
	width: 300px;
	height: 40px;
	line-height: 40px;
	background-color: var(--section-bg-color);
	bottom: 100px;
	left: 0;
	right: 0;
	margin: auto;
	text-align: center;
	border-radius: 5px;
  }

  /**** SNSボタン ****/
.snsbtn {
	margin: 30px 5px;
	border-radius: 50%;
	display: flex;
	align-items: center;
	justify-content: center;
  }
  
  .btn-twitter {
	background: #0F1419;
  }
  
  .btn-youtube {
	background: #CD201F;
  }
  
  .btn-pixiv {
	background: #0096FA;
  }
  
  .btn-booth {
	background: #FC4D50;
  }
  
  .btn-misskey {
	background: linear-gradient(135deg,#FB4772,#FFE600);
  }
  
  .btn-xfolio {
	background: linear-gradient(135deg,#0068b7,#74d1ea);
  }

  .btn-bluesky {
	background: #0085FF;
  }

/* リンク内にアイコン揃わないときに使う */
.inline-flex {
	display: inline-flex;
	align-items: center;
  }
  
  .margin-oneline {
	margin-top: 1.6rem;
	display: block;
  }

/* ↓サイドバー */
.side {
	border-radius: var(--border-radius);
	background-color: var(--color-light);
	box-shadow: 0px 0px 10px rgba(0,0,0,0.7);
}

.side > *{
	margin-top: calc(var(--margin-base) * 0.7);
}

.side > div h2{
	display: flex;
	align-items: center;
	gap: 0 0.4em;
	margin-bottom: 0.6em;
	font-family: var(--font-alphanumeric);
	color: var(--color-main);
	font-weight: bold;
}

.side > div h2::after{
	content:'';
	display: block;
	width: 100%;
	height: 1px;
	background-color: var(--color-main);
}

.num{
	font-family: var(--font-alphanumeric);
	font-size: 0.9em;
}

/* ↓メディア欄 */
.media-item {
	display: flex;
	justify-content: space-between;
	flex-wrap: wrap;
}

.imagelistitem {
	display: block;
	position: relative;
	width: 48%;
	margin: 1%;
}

.imagelistitem::before {
	content: "";
	display: block;
	padding-top: 100%;
}

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

/* ↓リンク一覧 */
.link ul{
	display: flex;
	flex-wrap: wrap;
	gap: 0.7em 0;
}

.link ul li a{
	display: block;
	background-color: var(--color-main);
	color: var(--color-base);
	font-family: var(--font-alphanumeric);
	text-align: center;
	font-weight: bold;
	line-height: 2em;
	border-radius: var(--border-radius);
	transition : all 0.3s ease 0s;
}

.link ul li a:hover{
	background-color: var(--color-accent);
}

/* ↓カテゴリーリスト */
ul.cattree li::before {
	margin-right: 0.3em;
	content: '\f07b';
	font-family: var(--font-icon);
	color: var(--color-main);
}

/* ↓ハッシュタグ */
ul.hashtaglist{
	display: flex;
	flex-wrap: wrap;
	gap:0.8rem;
}

ul.hashtaglist .num{
	display: none;
}

ul.hashtaglist li{
	padding: 0 0.5em;
	background-color: rgba(0,0,0,0.05);
	font-size: 0.9em;
	font-weight: 500;
	border-radius: calc(var(--border-radius) / 2);
}

ul.hashtaglist li.notexist{
	padding: 0;
	background-color: transparent;
}

/* ↓日付リスト */
form.datelimitbox{
	line-height: 2em;
	display: flex;
	background-color: var(--color-light);
}

form.datelimitbox select{
	flex: 1;
	padding: 0 0.6em;
	font-family: var(--font-alphanumeric);
	font-size: 0.9em;
	letter-spacing: 0.1em;
	z-index: 2;
}

form.datelimitbox input{
	width: 4em;
	letter-spacing: 0.2em;
	text-align: center;
	color: var(--color-light);
	background-color: var(--color-accent);
}

form.datelimitbox {
	position: relative;
}

form.datelimitbox::before {
	position: absolute;
	display: block;
	top: 0;
	bottom: 0;
	right: 4.5em;
	margin: auto;
	content: '\f078';
	font-family: var(--font-icon);
	color: var(--color-accent);
	font-weight: bold;
}

/* ↓検索 */
.searchbox{
	position: relative;
}

.searchbox::after{
	font-family: var(--font-icon);
	content:'\f002';
	font-weight: bold;
	position: absolute;
	right: 1rem;
	top: 0;
	bottom: 0;
	color: var(--color-main);
	z-index: -1;
}

.searchinputs{
	height: 2.2em;
	padding-left: 1em;
	border: solid 1px var(--color-main);
	display: block;
	border-radius: 2.2em;
}

.searchbox input{
	display:inline-block;
}

.searchbox input:focus {
	outline: none;
}

.searchbox input.queryinput{
	width: calc(100% - 2em);
}

.searchbox input.queryinput::placeholder{
	font-family: var(--font-alphanumeric);
	color: var(--color-main);
}

.searchbox input.submitbutton{
	font-size: 0;
	width: 1.5em;
	height: 1.5em;
}

/* ↓各記事 */
.main{
	width: 100%;
}

article{
	background-color: var(--color-light);
	box-shadow: 0px 0px 10px rgba(0,0,0,0.7);
}

article .comment::after {
   content: "";
   display: block;
   clear: both;
}

article,
.nodata,
.nolist
{
	margin-top: calc(var(--margin-base) * 0.6);
	border-radius: var(--border-radius);
}

.nodata,
.nolist {
	color: var(--color-text2);
}

article:first-of-type{
	margin-top: 0;
}

article .comment::after {
	content: "";
	display: table;
	clear: both;
}

article .comment a{
	color: var(--color-main);
	text-decoration: underline;
	transition : 0.5s;
}

article .comment a.taglink{
	text-decoration: none;
}

article .comment a:hover{
	color: var(--color-main);
}

article .link a{
	display: inline-block;
	padding: 0 1em;
	border: solid 1px var(--color-accent);
	border-radius: 1.7em;
	text-decoration: none;
}

article .link a:hover{
	color: var(--color-base);
	background-color: var(--color-accent);
}

article .decorationE{
	font-style: normal;
	font-weight: 600;
}

ul.decorationL{
	margin: 1em 0;
}

ul.decorationL li{
	position: relative;
	padding: 0 0 0.6em 1.4em;
}


ul.decorationL li:last-child{
	padding-bottom: 0;
}

ul.decorationL li::before {
	content:'\f058';
	position: absolute;
	left: 0;
	font-family: var(--font-icon);
	color: var(--color-accent);
	font-size: 1.1em;
}

article .decorationQ::before,
article .decorationQ::after{
	font-family: var(--font-icon);
	color: var(--color-accent);
	font-size: 1.4em;
	line-height:1;
	font-weight: bold;
}

article .decorationQ::before{
	content:'\f10d';
	margin-right: 0.2em;
}

article .decorationQ::after{
	content:'\f10e';
	margin-left: 0.2em;
}

/* ↓続きを読むボタン */
article .comment a.readmorebutton{
	display: block;
	margin: 1em 0;
	width: 100%;
	color: var(--color-accent);
	line-height: 2.3em;
	letter-spacing: 0.2em;
	text-decoration: none;
	text-align: center;
	border: solid 1px var(--color-accent);
	border-radius: var(--border-radius);
	transition : 0.5s;
}

article .comment a.readmorebutton:hover{
	background-color: var(--color-accent);
	color: var(--color-light);
}

article img{
	max-width: 50vw;
}

/* ↓パスワード入力 */
.passkeybox{
	line-height: 2.4em;
}

.passkeyguide{
	display: block;
}

.passkeyinput{
	padding: 0 0.8em;
	border: solid 1px var(--color-accent);
}

.passkeysubmit{
	padding: 0 1em;
	letter-spacing: 0.15em;
	background-color: var(--color-accent);
	color: var(--color-light);
	border: solid 1px var(--color-accent);
}

/* ↓画像 */
article .comment a.imagelink img.embeddedimage{
	margin: 0.65em 0;
	max-width: 100%;
	height: auto;
}

article .comment a.nsfw{
	display: block;
	float: left;
	margin-right: calc(var(--margin-base) * 0.7);
	overflow: hidden;
	aspect-ratio: 1 / 1;
	width:  calc(var(--margin-base) * 5);
	max-width:50%;
}

article .comment a.nsfw img.nsfw{
	width: 100%;
	height: 100%;
	object-fit: cover;
	filter: blur(0.8em);
}

iframe.embeddedmovie{
	display: block;
	max-width: 100%;
	height: auto;
	aspect-ratio: 16 / 9;
}

/* ↓日付・カテゴリ */
article .oneloginfo{
	display: flex;
	flex-wrap: wrap;
	gap: 0 1em;
	color: var(--color-accent);
}

article .oneloginfo::after{
	content:'';
	display: block;
	width:100%;
	background-image: repeating-linear-gradient(
		-45deg,
		var(--color-accent),
		var(--color-accent) 1px,
		transparent 2px,
		transparent 5px
	);
	background-position: center bottom;
	background-repeat: repeat-x;
	background-size: 100% 100%;
	opacity: 0.5;
	border-radius: 0.5em;
}

article .oneloginfo .category{
	display: flex;
	gap: 0 1em;
}

article .oneloginfo .categorylink::before {
	margin-right: 0.2em;
	content: '\f07b';
	font-family: var(--font-icon);
}

.postdate{
	font-family: var(--font-alphanumeric);
}

/* ↓ページネーション */
.pagenums{
	margin-top: var(--margin-base);
	font-family: var(--font-alphanumeric);
	text-align: center;
	color: var(--color-text2);
}

.pagenums .pagenumlink{
	display: inline-block;
	width: 2em;
	height: 2em;
	line-height: 2em;
	border-radius: 50%;
}

.pagenums .pagenumlink.pagenumhere{
	background-color: var(--color-accent);
	color: var(--color-base);
}

.pagenumhere{
	pointer-events: none;
}

/* ↓パンくずリスト */
.breadcrumb div {
	display: inline;
}

.breadcrumb {
	color: var(--color-text2);
	margin-top: var(--margin-base);
}

.breadcrumb .crumbsp {
	margin: 0 10px;
}

.fas {
	font-family: "Font Awesome 5 Free";
	-moz-osx-font-smoothing: grayscale;
    -webkit-font-smoothing: antialiased;
    display: inline-block;
    font-style: normal;
    font-variant: normal;
    text-rendering: auto;
    line-height: 1;
}

.fa-fw {
	text-align: center;
    width: 1.25em;
}

/* ↓投稿フォーム表示ボタン */
.newpost button{
	width: var(--margin-base);
	height: var(--margin-base);
	font-size: calc(var(--margin-base) * 0.8);
	line-height: var(--margin-base);
}

.newpost{
	position: fixed;
	width: fit-content;
	z-index: 101;
}

.newpost button{
	display: block;
	font-size: 1.2em;
	text-align: center;
	vertical-align:middle;
	border-radius:50%;
	background-color: var(--color-accent);
	color: var(--color-base);
	transition: 0.5s;
}

.newpost.show button{
	background-color: var(--color-main);
	color: var(--color-light);
}

/* ↓投稿フォーム */
.postarea{
	position: fixed;
	right: 0;
	top: 0;
	padding: var(--margin-base);
	background-color: var(--color-accent);
	z-index: 100;
	transition: all .4s linear;
	overflow: auto;
}

.postarea::-webkit-scrollbar {
   width: 1rem;
}

.postarea::-webkit-scrollbar-track {
	background-color: transparent;
}

.postarea::-webkit-scrollbar-thumb {
  background-color: var(--color-main);
}

.postarea.show{
  transform: translateX(0);
}

form.postform textarea{
	resize: none;
	background-color: var(--color-light);
	padding: 1em;
	width: 100%;
	border-radius: var(--border-radius) var(--border-radius) var(--border-radius) 0;
}

form.postform textarea:focus {
    outline: none;
}

.postbutton{
	margin-right: 1em;
	padding: 0 1.5em;
	background-color: var(--color-main);
	color: var(--color-light);
	line-height: 2.8em;
	letter-spacing: 0.2em;
	font-weight: bold;
	border-radius: 0 0 var(--border-radius) var(--border-radius);
}

.line-control {
	color: var(--color-text2);
}

.changelink{
	display: inline-block;
	line-height: 2.5em;
}

.line-control span.decoBtns{
	display: flex;
	flex-wrap: wrap;
	margin-top: 2em;
}

.line-control span.decoBtns input{
	padding: 0 1rem;
	height: 2.4em;
	line-height: 2.4em;
	letter-spacing: 0.15rem;
	background-color: rgba(255,255,255,0.4);
}

span.catChecks{
	display: flex;
	flex-wrap: wrap;
	gap: 0.8em;
}

span.catChecks label{
	line-height: 1.5em;
	display: inline-block;
	vertical-align: top;
}

span.catChecks input[type=checkbox]{
	height: 1.4em;
	width: 1.4em;
	margin-right: 0.4em;
	background-color: var(--color-light);
	appearance: auto;
}

input[name="upload_file"]{
	background-color: transparent !important;
	padding: 0 !important;
}

select.hashtagEasyInput{
	padding: 0 0.8em;
	background-color: #fff;
	line-height: 2.2em;
	vertical-align: top;
	color: var(--color-text);
}

/* ↓いいねボタン */
.iinebtn button{
	width: var(--margin-base);
	height: var(--margin-base);
	font-size: calc(var(--margin-base) * 0.8);
	line-height: var(--margin-base);
}

.iinebtn{
	position: fixed;
	width: fit-content;
	z-index: 89;
}

.iinebtn button{
	display: block;
	font-size: 1.2em;
	text-align: center;
	vertical-align:middle;
	transition: 0.5s;
}

/* ↓クレジット */
.credit{
	margin-top: var(--margin-base);
	text-align: center;
	line-height: 1;
	color: var(--color-main);
}


/* ↓float解除 */
.clear::after {
	content: "";
	display: table;
	clear: both;
}

/* ↓非表示 */
.dateseparator,
.utilitylinks,
.datelimitboxoptions,
.searchtarget,
.limitedsearch{
	display: none;
}