:root{
	--client-hue: 50deg;
	--bg-lume: 100%;
	--_noti-bg: hsl(0deg 0% 0% / 0.025);
	--postlink-bg: hsl(0deg 0% 100%);
	--postbg-opacity: 0.5;
	--anchor-color: hsl(210deg 77% 44%);
	--max-width: 920px;
}
*,*::before,*::after{
	margin: 0;
	padding: 0;
	box-sizing: border-box;
}
html{
	scroll-behavior: smooth;
	scroll-padding-top: 60px;
}
body{
	--body-bg: var(--client-hue) 80% 90%;
	display: grid;
	font-family: "Noto Sans JP", sans-serif;
	color: hsl(0deg 0% 20%);
	grid-template-columns: 1fr;
	grid-template-rows: auto 1fr auto;
	min-height: 100vh;
	min-height: 100dvh;
	word-break: break-all;
	background: hsl(var(--body-bg));
}
@media (prefers-color-scheme: dark) {
	body {
		--bg-lume: 13%;
		--body-bg: var(--client-hue) 13% 17%;
		--postlink-bg: hsl(0deg 0% 20%);
		--_noti-bg: hsl(0deg 0% 70% / 0.025);
		--postbg-opacity: 0.85;
		--anchor-color: hsl(210deg 77% 64%);
		color: hsl(0deg 0% 90%);
	}
}
a{
	color: var(--anchor-color);
}
header{
	--_icon-width: 4.5rem;
	background: hsl(0deg 0% var(--bg-lume) / 0.55);
}
header > div{
	max-width: var(--max-width);
	margin-inline: auto;
}
main{
	--_inline-padding: 0;
	padding: 1.5rem var(--_inline-padding);
	background: hsl(0deg 0% var(--bg-lume) / 0.85);
	position: relative;
}
footer{
	padding: 2rem 1rem 1rem;
	text-align: center;
}
@media(min-width: 800px){
	main{
		--_inline-padding: 1rem;
	}
}
img{
	max-width: 100%;
	vertical-align: middle;
}
button{
	-webkit-appearance: none;
	appearance: none;
	cursor: pointer;
}
.client_thumb{
	outline: 1px solid hsl(var(--client-hue) 80% 55%);
	border-radius: 0 0 1rem 1rem;
	overflow: hidden;
	width: -webkit-fit-content;
	width: fit-content;
	margin-inline: auto;
}
.client_infowrap{
	padding: 1rem;
}
.client_iconname{
	display: flex;
	gap: 0.5rem;
	align-items: center;
	margin-bottom: 1rem;
}
.client_icon{
	width: var(--_icon-width);
	aspect-ratio: 1;
	border-radius: 50%;
	overflow: hidden;
	text-align: center;
	border: 2px solid hsl(var(--client-hue) 80% 55%);
	position: relative;
	z-index: 10;
	font-size: 1.5rem;
	font-weight: 600;
	background: hsl(var(--client-hue) 80% 85%);
	display: grid;
	place-items: center;
	color: hsl(var(--client-hue) 80% 25%);
}
.client_icon img{
	position: absolute;
	inset: 0;
}
.client_info{
	text-align: center;
	position: relative;
	font-size: 0.9375rem;
}
.client_info__name{
	font-weight: 600;
}
.client_info__subscribers{
	display: inline-flex;
	align-items: center;
	gap: 0.25rem;
	font-size: 0.875rem;
	font-weight: 600;
}
.client_info__subscribers span{
	padding: 0.25rem;
	border-radius: 0.25rem;
	background: hsl(var(--client-hue) 50% 75%);
	line-height: 1;
}
.client_info__actions{
	bottom: 0.75rem;
	z-index: 99;
	display: grid;
	margin-inline: auto;
	width: max-content;
}
.client_info__actions button{
	-webkit-appearance: none;
	appearance: none;
	background: 0;
	border: 0;
	outline: 0;
}
.client_info__actions img{
	width: 175px;
}
.client_info__actions a{
	display: inline-block;
	text-decoration: none;
}
.client_info__actions:has(.noti_off){
	margin-right: auto;
}
.client_info__actions .noti_off{
	background-image: url(../../client-assets/images/subdomain/btn_subscribe_off.webp);
	background-repeat: no-repeat;
	background-size: contain;
}
.client_info__actions--msg .noti_off{
	visibility: hidden;
}
@media (prefers-color-scheme: dark) {
	.client_info__actions .noti_off{
		background-image: url(../../client-assets/images/subdomain/btn_subscribe_off_dark.webp);
	}
}
.client_info__actions .noti_off img{
	opacity: 0;
}
.client_info__desc{
	text-align: left;
}
.client_info__desc a{
	color: hsl(var(--client-hue) 50% 25%);
	font-weight: 600;
}
.client_info__msg{
	--_radius: 0.75rem;
	position: sticky;
	top: 0;
	display: flex;
	justify-content: center;
	z-index: 99;
	background: hsl(0deg 0% var(--bg-lume) / 0.75);
	padding: 0.5rem;
}
.client_info__msg a{
	text-decoration: none;
	border: 1px solid hsl(var(--client-hue) 100% 25%);
	border-radius: var(--_radius);
	background: hsl(0deg 0% var(--bg-lume));
	text-align: center;
	width: min(50%, 10rem);
	padding: 0.75rem;
	line-height: 1.15;
	color: inherit;
}
.client_info__msg a:has( + a){
	border-radius: var(--_radius) 0 0 var(--_radius);
}
.client_info__msg a:has(.fa-comments){
	position: relative;
	border-radius: 0 var(--_radius) var(--_radius) 0;
}
.client_info__msg a:has(.fa-comments) span{
	position: absolute;
	right: -0.5rem;
	top: -0.5rem;
	font-size: 0.75rem;
	width: 2rem;
	line-height: 2rem;
	text-align: center;
	background: hsl(0deg 60% 25%);
	font-weight: 600;
	color: hsl(0deg 0% 100%);
	border-radius: 50%;
	outline: 1px solid hsl(0deg 0% 85%);
}
.client_info__msg .active{
	background: hsl(var(--client-hue) 100% 25%);
	color: hsl(0deg 0% 100%);
}
.client_info__msg small{
	font-size: 0.75rem;
	margin-left: 0.25rem;
}
#loading-overlay{
	display: none;
}
.noposts{
	text-align: center;
	margin-block: 2rem;
}
.notiposts{
	margin: 2rem auto;
	max-width: var(--max-width);
}
.notipost{
	display: grid;
	gap: 1rem;
	padding: 1.5rem 1rem;
	background: var(--_noti-bg);
}
.notipost:nth-child(even):not(:is(.notipost--page)){
	--_noti-bg: hsl(var(--body-bg) / var(--postbg-opacity));
}
.notipost--page{
	--_noti-bg: hsl(var(--client-hue) 66% 35% / 0.85);
	--postlink-bg: hsl(var(--client-hue) 36% 25% / 0.75);
	color: hsl(0deg 0% 100%);
}
.notipost--page:has(+ .notipost--page){
	border-bottom: 1px solid hsl(var(--client-hue) 66% 75%);
}
.notipost__title{
	font-weight: 600;
	line-height: 1.15;
	padding-bottom: 0.75rem;
	border-bottom: 1px solid hsl(0deg 0% calc(100% - var(--bg-lume)) / 0.25);
}
.notipost__title--page{
	font-size: 1.2rem;
	text-align: center;
	font-weight: 600;
}
.notipost__title--page small,
.notipost__title small{
	font-size: 0.75rem;
}
.notipost__texts{
	font-size: 0.875rem;
	display: flex;
	gap: 1rem;
	flex-wrap: wrap;
	align-items: flex-start;
	justify-content: center;
	container-type: inline-size;
}
.notipost__texts:has(.notipost__imgs){
	display: grid;
	justify-content: start;
	grid-template-columns: 1fr;
}
.notipost__content{
	flex: 1 0 min(20rem, 100%);
	display: grid;
	gap: 0.75rem;
}
.notipost__content .readmore{
	justify-self: center;
	padding: 0.5rem 1rem;
	font-weight: 600;
	font: inherti;
	color: inherit;
	border-radius: 0.75rem;
	text-decoration: none;
	background: 0;
	border: 1px solid;
}
.notipost__content .readmore:not(:last-child){
	margin-bottom: 1rem;
}
.overcontent{
	display: none;
}
.display-hidden .limitcontent{
	display: none;
}
.display-hidden .overcontent{
	display: block;
}
.display-hidden .notipost__content .readmore{
	/*display: none;*/
}
.notipost__imgs{
	display: flex;
	overflow-x: auto;
	gap: 1rem;
	white-space: nowrap;
	padding: 0.75rem;
}/* width */
.notipost__imgs::-webkit-scrollbar {
  width: 0.75rem;
}

/* Track */
.notipost__imgs::-webkit-scrollbar-track {
	outline: 1px solid hsl(0deg 0% calc(100% - var(--bg-lume)) / 0.55);
  border-radius: 5rem;
}
 
/* Handle */
.notipost__imgs::-webkit-scrollbar-thumb {
  background: hsl(0deg 0% calc(100% - var(--bg-lume)) / 0.25); 
  border-radius: 5rem;
}

/* Handle on hover */
.notipost__imgs::-webkit-scrollbar-thumb:hover {
  background: hsl(0deg 0% calc(100% - var(--bg-lume)) / 0.55);
}
.notipost__img{
	box-shadow: 0 0 0.5rem hsl(0deg 0% 50% / 50%);
	width: 100%;
	max-height: 50vh;
	position: relative;
	overflow: hidden;
	padding-bottom: 2.75rem;
}
.notipost__imgs .notipost__img{
	flex-shrink: 0;
	aspect-ratio: 1;
	width: 45%;
	background: hsl(0deg 0% 0% / 0.25);
}
@container(min-width: 495px){
	.notipost__img{
		width: min(13rem, 100%);
	}
	.notipost__imgs .notipost__img{
		width: min(10rem, 40%);
	}
}
.notipost--single:not(:has(.notipost__imgs)) .notipost__img{
	aspect-ratio: auto;
	width: 100%;
}
.notipost__img--within{
	display: grid;
	align-content: center;
}
.notipost__img--show{
	aspect-ratio: 0;
}
.notipost__img img{
	display: block;
	margin-inline: auto;
	object-fit: contain;
	object-position: center top;
}
.notipost__imgs .notipost__img img{
	object-position: center;
	height: 100%;
}
.notipost__img button{
	position: absolute;
	bottom: 0;
	text-align: center;
	border-width: 1px;
	border-color: hsl(0deg 0% 100% / 75%);
	background: hsl(0deg 0% 0% / 50%);
	color: hsl(0deg 0% 100% / 95%);
	font-size: 0.875rem;
	padding: 0.5rem;
}
.activatebutton{
	text-align: center;
}
.activatebutton button{
	padding: 0.5rem 0.75rem;
	-webkit-appearance: none;
	appearance: none;
	background: hsl(0deg 0% 100%);
	border-radius: 5rem;
	line-height: 1;
	font-size: 0.875rem;
	border: 1px solid hsl(0deg 0% 50%);
	color: hsl(0deg 0% 50%);
}
.notipost__link{
	text-align: center;
}
.notipost__link a{
	display: inline-block;
	padding: 0.5rem 1rem;
	width: min(12rem, 95%);
	background: var(--postlink-bg);
	color: inherit;
	text-decoration: none;
	border: 1px solid;
	font-weight: 600;
	border-radius: 5rem;
}
.listslink{
	margin-top: 2rem;
}
.tolists{
	color: hsl(var(--client-hue) 100% calc(100% - var(--bg-lume)));
}
.backtotop{
	display: grid;
	position: sticky;
	bottom: 0.5rem;
	margin-top: 1rem;
}
.backtotop a{
	margin-left: auto;
	padding: 0.75rem;
	text-align: center;
	border: 1px solid currentColor;
	line-height: 1;
	background: hsl(0deg 0% 100% / 0.75);
	border-radius: 0.75rem;
}
.messagebox{
	display: grid;
	gap: 1rem;
	margin: 2rem auto;
	max-width: var(--max-width);
	/*height: 100%;*/
}
.message_texts{
	--_scroll-size: 0.5rem;
	padding: 1rem;
	border: 1px solid hsl(var(--client-hue) 50% 25%);
	position: relative;
}/* width */
.message_texts::-webkit-scrollbar {
  width: var(--_scroll-size);
}

/* Track */
.message_texts::-webkit-scrollbar-track {
  background: hsl(var(--client-hue) 100% 40%);
}
 
/* Handle */
.message_texts::-webkit-scrollbar-thumb {
  background: hsl(var(--client-hue) 100% 50%);
}

/* Handle on hover */
.message_texts::-webkit-scrollbar-thumb:hover {
  background: hsl(var(--client-hue) 100% 65%);
}

.message_texts__inner{
	display: grid;
	gap: 0.5rem;
	padding-bottom: 1rem;
	height: min-content;
}
.message_texts__inner > div:last-child{
	padding-bottom: 1rem;
}
.msg{
	--_border-radius: 2rem;
	--_bg-color: hsl(0deg 0% var(--bg-lume) / 0.15);
	display: flex;
	gap: 0.25rem;
	align-items: flex-end;
}
.msg div,
.msg--date small{
	border: 1px solid hsl(var(--client-hue) 100% 25%);
	font-size: 0.875rem;
	border-radius: var(--_border-radius);
	background: var(--_bg-color);
}
.msg div{
	max-width: 80%;
	padding: 1rem;
}
.msg--client{
	--_border-radius: 0 1rem 1rem 1rem;
	justify-self: start;
}
.msg--user{
	--_border-radius: 1rem 0 1rem 1rem;
	--_bg-color: hsl(var(--client-hue) 100% 85% / 0.15);
	justify-self: end;
	flex-direction: row-reverse;
}
.msg-reload,
.msg--date{
	justify-self: center;
	align-self: start;
}
.msg-error{
	color: crimson;
}
.msg-error:empty{
	display: none;
}
.msg--date small{
	padding: 0.5em 0.75em;
	font-weight: 600;
	display: block;
	font-size: 0.75rem;
	border-radius: 2rem;
}
.message_input{
	display: flex;
	gap: 0.5rem;
	align-items: flex-end;
	position: sticky;
	bottom: 0;
	padding: 0.5rem;
	background: hsl(0deg 0% var(--bg-lume) / 0.75);
}
.message_input textarea{
	min-height: calc(2rem + 1em);
	max-height: calc(2rem + 10em);
	padding: 1rem;
	width: 100%;
	resize: none;
	border-radius: 1rem;
	border-color: hsl(var(--client-hue) 50% 25%);
	font: inherit;
}
.message_input button{
	padding: 0.75rem;
	font-size: 1rem;
	border-radius: 1rem;
	border-width: 1px;
	background: hsl(var(--client-hue) 50% 25%);
	color: hsl(0deg 0% 100%);
	border-color: hsl(var(--client-hue) 50% 15%);
}
@media(max-width: 800px){
	.messagebox{
		grid-template-columns: 1fr;
	}
}
.modalbutton button,
.msg-reload button{
	appearance: none;
	background: hsl(var(--client-hue) 50% 25%);
	color: hsl(0deg 0% 100%);
	border-color: hsl(var(--client-hue) 50% 15%);
	border-width: 1px;
	padding: 0.75rem 1rem;
	border-radius: 0.75rem;
	cursor: pointer;
}
.modal{
	display: none;
	position: fixed;
	inset: 0;
	background: hsl(0deg 0% 0% / 75%);
	z-index: 999;
	padding: 1rem;
	isolation: isolate;
}
.modal small{
	display: block;
}
.modal.active{
	display: grid;
	place-items: center;
}
.modalbg{
	position: absolute;
	inset: 0;
	z-index: -1;
}
.modalconts{
	background: hsl(0deg 0% var(--bg-lume));
	padding: 0.75rem;
	border-radius: 0.75rem;
	box-shadow: 0 0 0.5rem hsl(0deg 0% 0%);
	max-height: 100%;
	overflow-y: auto;
	max-width: 500px;
	margin-inline: auto;
}
.modal--postimg .modalconts{
	padding: 0;
	max-width: 800px;
}
.modalconts--popup{
	width: min(550px, 100%);
}
.modalconts ol{
	padding-left: 1.75rem;
	margin-block: 1rem;
}
.modaltitle{
	font-size: 1.15rem;
	font-weight: 600;
	text-align: center;
	margin-bottom: 1.25rem;
}
.modalbutton{
	margin-top: 1rem;
	text-align: center;
}
.modal--postimg .modalbutton{
	position: sticky;
	bottom: 0;
	padding-bottom: 0.5rem;
	display: flex;
	gap: 0.5rem;
	flex-wrap: wrap;
	justify-content: center;
	align-items: center;
}
.modalbutton a{
	padding: 0.5rem;
	font-weight: 600;
	background: hsl(0deg 0% 100%);
	text-decoration: none;
	line-height: 1.15;
	border-radius: 0.5rem;
	box-shadow: 0 0 0.5rem hsl(0deg 0% 25%);
	color: hsl(0deg 0% 25%);
	font-size: 0.875rem;
}
.modalnav{
	position: fixed;
	display: grid;
	gap: 0.5rem;
	padding: 0.25rem;
	border-radius: 10rem;
	right: 1rem;
	bottom: 1rem;
	background: white;
	border: 1px outset hsl(0deg 0% 75%);
	box-shadow: 0 0 0.5rem hsl(0deg 0% 25% / 75%);
	text-align: center;
}
.modalnav button{
	width: 1.5rem;
	margin-inline: auto;
	line-height: 3rem;
	border-radius: 10rem;
	border-width: 1px;
	border-color: hsl(0deg 0% 75%);
	background: linear-gradient(135deg, hsl(0deg 0% 100%),hsl(0deg 0% 75%));
	box-shadow: inset 0 0 0.5rem hsl(0deg 0% 25% / 25%);
}
.modalnav div{
	font-size: 0.875rem;
	color: black;
}
.iosshare{
	display: inline-flex;
	align-items: baseline;
	line-height: 1;
	vertical-align: bottom;
	margin-inline: 0.15em;
}
.iosshare::before{
	content: "";
	width: 1.5em;
	height: 1.5em;
	background: url(../../client-assets/images/subdomain/ios-share.webp) no-repeat center;
	background-size: contain;
}

.noti_on.loading,
.noti_off.loading
{
	opacity: 0.5;
}
.stick-front{
	position: sticky;
}
.stick-front:has(.noti_off){
	position: static;
}

#reload-icon {
	display: none; 
	position: fixed; 
	top: 50%; 
	left: 50%; 
	transform: translate(-50%, -50%); 
	font-size: 2em; 
	z-index: 9999;
}