@charset "utf-8";
/*  **********************
decoration.css：10pressで配布しているてがろぐスキン用共通スタイルシートです
Ver. 2025/02/26 23:20
https://10prs.com
 ************************ */
/*  **********************
汎用スタイル
 ************************ */
*,
*::before,
*::after {
	box-sizing: border-box;
}

/* スクロール関連 */
html {
	scroll-behavior: smooth;
	scrollbar-width: thin;
}

/* ダイアログ表示時背景スクロール禁止 */
html:has(dialog[open]),
html:has(#quickpost_toggle:checked) {
	overflow: hidden;
}

/* <body> */
body {
	margin: auto;
	/* 文字詰め */
	font-feature-settings: "palt";
	text-spacing-trim: trim-start;
	/* 禁則処理*/
	overflow-wrap: anywhere;
	word-break: auto-phrase;
	line-break: strict;
}

/* 画像などのはみだし防止 */
img,
iframe,
audio,
video {
	max-width: 100%;
}

/* 画像への操作無効 */
img:not(.cemoji img) {
	pointer-events: none;
	user-drag: none;
	user-select: none;
	-webkit-user-drag: none; /* Chrome, Safari, Opera */
	-khtml-user-drag: none; /* Konqueror */
	-moz-user-select: none; /* Firefox */
	-o-user-drag: none; /* Opera */
}
.imagelink {
	-webkit-user-drag: none; /* Chrome, Safari, Opera */
	-khtml-user-drag: none;  /* Konqueror */
	-moz-user-select: none;    /* Firefox */
	-o-user-drag: none;      /* Opera */
	user-drag: none;         /* Standard property */
}

/* ルビ */
ruby {
	position: relative;
	ruby-position: over;
}

/* フォーム関連 */
/* iOSでのデフォルトスタイルをリセット */
button {
	-webkit-box-sizing: content-box;
	-webkit-appearance: button;
	-moz-appearance: button;
	appearance: button;
	border: none;
	-webkit-box-sizing: border-box;
	box-sizing: border-box;
}
button::-webkit-search-decoration {
	display: none;
}
button::focus {
	outline-offset: -2px;
}
button,
[type="button"],
[type="submit"],
label {
	cursor: pointer;
}
[type="input"],
textarea,
select {
	border-style: solid;
	border-width: 1px;
}
select {
	-moz-appearance: menulist-button;
	-webkit-appearance: menulist-button;
	appearance: menulist-button;
}
textarea {
	field-sizing: content;
	width: 100%;
	min-width: 150px;
	min-height: 3lh;
}

/* details */
details summary {
	list-style: none;
	cursor: pointer;
}
/* iOSでのデフォルトスタイルをリセット */
details summary::-webkit-details-marker {
	display: none;
}
/* detailsが開き方をスムーズアニメーションに
-- ※details直下に開くコンテンツを囲むdivが必要です */
details[open] div {
	animation: accordion .4s linear;
	overflow: hidden;
}
@keyframes accordion {
	0% {
		opacity: 0;
		height: 0;
	}
	70% {
		opacity: 0;
		height: 100px;
	}
	100% {
		opacity: 1;
	}
}

/* table */
table {
	border-collapse: collapse;
}

/* 中身のない要素を非表示 */
:not(img)*:empty {
	margin: 0;
	padding: 0;
	display: none;
}
/* a */
a {
	text-decoration: none;
}
/* pre */
pre,
pre[class*="language-"],
code[class*="language-"] {
	max-width: 100%!important;
	overflow: auto!important;
	word-break: break-all!important;
}

/* Twemoji用 */
img.emoji {
	margin: 0 .05em 0 .1em;
	height: 1em;
	width: 1em;
	vertical-align: -.1em;
}

/* ローディング画面：HTML：<div id="preloader"><div class="loader"><!-- loading --></div></div>
-- addon.jsがないとページ読み込みが終わってもローディング画面が消えないことに注意が必要です */
#preloader {
	width: 100%;
	height: 100vh;
	display: grid;
	place-content: center;
	position: fixed;
	background-color: #fff;
	z-index: 999999;
	opacity: .9;
	transition: opacity 1s ease-out;
}
/* ローディングアニメは https://css-loaders.com/ からCSSをコピーするなどしてスキンごとのCSSで設定してください
.loader {

}
 */

/*  **********************
てがろぐ機能用
 ************************ */
/* カテゴリアイコンを設定しているとき
-- 記事表示部分内・カテゴリツリー内 */
.categoryicon img,
.caticon img {
	height: 1.2em;
	width: auto;
	vertical-align: middle;
	margin: 0 1px;
}

/* もっと読む・畳むボタンを開閉したときの挙動用 */
.readmorebutton {
	margin-top: .4em;
	transform: translateY(-.3em);
}

/* 隠しハッシュタグ非表示 */
.taglink[title^="-"] {
	display: none !important;
}

/*  **********************
投稿画像：
	-- [PICT:FIG:ファイルパス] - figure.embeddedpictbox>(a.imagelink>img.embeddedimage)+figcaption
	-- [PICT:ファイルパス] - a.imagelink>img.embeddedimage
	-- [PICT:MP4ファイルパス]（※addon.jsが必要です） - span.imagelink>video.embeddedimage
	-- NSFWフラグ付 - すべての要素に.nsfwが付きます
	-- 一覧外 - すべての要素に.nolistedが付きます
新着画像リスト：
	-- span.imagelistitem>a.imagesearch>img.oneimage
	-- NSFWフラグ付 - span.imagelistitem>a.imagesearch>img.oneimage.nsfw
	-- 一覧外 - そもそも出力されない
【設定＞（投稿本文内画像/ギャラリーモード）＞画像を(原寸画像への)リンクにするのチェック】を外した場合
	-- NSFWフラグ付 - img.embeddedimage.nsfw
	-- ※NSFWフラグ付き画像の目隠しはimg.nsfwの親要素に作っているので別のスタイルになります。基本的に上記のチェックは外さないでください
 ************************ */
/* キャプション付ボックス */
.embeddedpictbox {
	display: inline-table;
	border-collapse: collapse;
	position: relative;
}
.embeddedpictbox figcaption {
	padding: 3px;
	display: table-caption;
	caption-side: bottom;
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	color: #fff;
	background: rgba(0, 0, 0, .3);
	font-size: .8em;
	text-align: center;
}

/* 画像リンク */
.imagelink,
.imagesearch {
	display: inline-block;
	line-height: 1;
	position: relative;
	overflow: hidden;
	vertical-align: middle;/* ソース内改行による余白除け */
}

/* 画像 */
img.embeddedimage {
	width: auto;
	height: auto;
	max-height: 500px;
	vertical-align: middle;
	object-fit: cover;
	transition: 1s;
}
:where(.imagelink, .imagesearch):hover img.embeddedimage {
	transform: scale(1.05);
}

@media (width < 520px) {
	img.embeddedimage {
		max-height: 300px;
	}
}

/* NSFWフラグ付
	-- ※基本的にNSFWフラグ付き画像の目隠しはimg.nsfwの親要素に作っています */
:where(.imagelink, .imagesearch):has(>.nsfw)::after {
	content: url('data:image/svg+xml;utf-8,<svg xmlns="http://www.w3.org/2000/svg" width="2em" height="2em" viewBox="0 -960 960 960" fill="%23ffffff"><path d="m40-120 440-760 440 760H40Zm138-80h604L480-720 178-200Zm302-40q17 0 28.5-11.5T520-280q0-17-11.5-28.5T480-320q-17 0-28.5 11.5T440-280q0 17 11.5 28.5T480-240Zm-40-120h80v-200h-80v200Zm40-100Z"/></svg>');
	/* https://fonts.google.com/icons?selected=Material+Symbols+Outlined:warning:FILL@0;wght@400;GRAD@0;opsz@24&icon.size=24&icon.color=%23FFFFFF&icon.query=alert */
	display: grid;
	place-content: center;
	width: 100%;
	height: 100%;
	position: absolute;
	top: 0;
	left: 0;
	color: #fff;
	background-color: rgba(0, 0, 0, .7);
	font-size: 2em;
	font-weight: 900;
	backdrop-filter: blur(20px);
	transition: 1s;
}
a.nsfw:hover::after {
	backdrop-filter: blur(10px);
}
.imagesearch:has(.nsfw)::after {
	backdrop-filter: blur(5px);
}

/* NSFWフラグ付の画像 */
:where(.imagelink, .imagesearch) img.nsfw {
	filter: grayscale(.7);
}
:where(.imagelink, .imagesearch):hover img.nsfw {
	filter: grayscale(0);
}

/* リンクが張られていないNSFWフラグ付の画像 */
:not(a)>:not(video).embeddedimage.nsfw {
	overflow: hidden;
	filter: grayscale(1) opacity(.3) blur(5px);
	transition: 1s;
}
:not(a)>:not(video).embeddedimage.nsfw:hover {
	filter: grayscale(0) opacity(1) blur(0);
}

/* NSFWフラグ付mp4（※addon.jsが必要です） */
:has(video.nsfw):hover::after {
	height:0;
	opacity:0;
}

/*  **********************
カスタム絵文字・他埋め込み要素
 ************************ */
/* カスタム絵文字 */
.cemoji img {
	width: auto;
	height: auto;
	max-height: 2em;
	/* デフォ設定ではインラインスタイルにvertical-align: middle;が出力される */
	image-rendering: pixelated;
}

/* 埋め込みツイート・動画のサイズ */
div.twitter-tweet {
	max-width: 349px !important;
}
iframe.instagram-media.instagram-media-rendered {
	min-width: revert !important;
}
.embeddedmovie,
.embeddedmusic {
	display: inline-block;
	max-width: 100%;
}

/*  **********************
てがろぐ自由装飾
 ************************ */
/* リスト */
.decorationL {
	padding-left: 1.5em;
}
/* 強調のデフォルトスタイルをリセット */
.decorationE {
	font-style: normal;
	font-weight: bold;
}
/* 引用のデフォルトスタイルをリセット */
.decorationQ {
	margin-block: 1em;
}
.decorationQ::before,
.decorationQ::after {
	content: none;
}

/* ボタンぽいリンク：例：[リンクテキスト:CL(btn)]https://eample.com */
.uc-btn {
	margin: .5em auto;
	padding: 1em;
	border: 2px solid;
	display: inline-block;
	color: currentColor;
}

/* すごい斜め：例：[I:[I:斜体をさらに斜めに]] */
.decorationI .decorationI {
	transform: skewX(-30deg);
	font-style: normal;
	display: inline-block;
	font-size: .94em;
}

/* すごい打消し：例：[D:[D:さらに打消し]] */
.decorationD .decorationD {
	display: inline-block;
	position: relative;
	text-decoration: none;
	z-index: 1;
}
.decorationD .decorationD::before {
	content: '';
	display: inline-block;
	width: 100%;
	height: .5em;
	position: absolute;
	top: .55em;
	left: 0;
	z-index: -1;
	background-color: currentColor;
	opacity: 1;
	transition: .3s;
}
.decorationD:is(:hover, :active) .decorationD::before {
	opacity: .6;
}

/* HTML・CSS類コード用：例：[F:code:<h1>大見出し</h1>] */
[class*="deco-code"],
pre,
code {
	font-family: Consolas,Monaco,"Andale Mono","Ubuntu Mono",monospace;
}

/* ぼかし：例：[F:bokashi:ぼかし] */
.deco-bokashi {
	filter: blur(.3em);
	transition: .3s;
}
.deco-bokashi:is(:hover, :active) {
	filter: revert;
}

/* 横並びリスト：例：[L:yoko:～～] */
.decorationL.listdeco-yoko {
	padding-left: 0;
	li {
		padding: 0;
		display: inline;
	}
	li:not(:first-child)::before {
		content: ' / ';
	}
}

/* 画像（+文章）をカードのように並べるリスト：例：[L:cards:[PICT:xxx.jpg]文章] */
.decorationL.listdeco-cards {
	padding-left: 0;
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
	gap: 1em .8em;
	grid-template-rows: auto;
	li {
		padding: .2em;
		list-style: none;
		box-shadow: 0 0 3px #c0c0c0;
		background-color: #fff;
	}
	img {
		width: 100%;
		max-width: 100%;
		aspect-ratio: 320/240;
		object-position: top center;
	}
	a {
		font-weight: bold;
	}
}

/* 中央寄せ：例：[F:center:中央寄せ] */
.deco-center {
	display: block;
	text-align: center;
}

/* 右寄せ：例：[F:right:右寄せ] */
.deco-right {
	display: block;
	text-align: right;
}

/* 非表示：例：[F:hidden:非表示] */
.deco-hidden {
	display: none;
}

/* 各ブロック要素の次の改行タグを無効に */
:is(.decorationQ, .decorationL, .deco-hr, .deco-center, .deco-right)+br {
	display: none;
}

/* 独自装飾・画像を旧ツイッターぽくまとめて表示：例：[F:twimage:[PICT:xxx.jpg][PICT:FIG:yyy.jpg]]
-- 【設定＞（...）＞画像を(原寸画像への)リンクにするのチェック】を外すと表示が乱れます
-- ※奇数個の画像を囲んでいい感じにするにはaddon.jsが必要です */
.deco-twimage {
	border: 1px solid rgb(207, 217, 222);
	display: flex;
	overflow: hidden;
	gap: 1px;
	flex-wrap: wrap;
	border-radius: 16px;
	>:is(.embeddedpictbox, .imagelink) {
		margin: 0;
		display: inline-block;
		width: calc(50% - .5px);
		height: 180px;
	}
	>.embeddedpictbox>.imagelink {
		margin: 0;
		display: inline-block;
		width: 100%;
		height: 180px;
	}
	.embeddedimage {
		width: 100%;
		height: 100%;
		max-height: fit-content;
		object-fit: cover;
	}
	br {
		display: none;
	}
}

/*  **********************
ワンクリックポストIDリンク挿入ボタン
クイックポスト：
-- #quickpost>.postarea>form.postform
	-- p.line-textarea>textarea.tegalogpost
	-- div.line-control
 ************************ */
/* ワンクリックポストIDリンク挿入ボタン */
.resbutton {
	margin: 1px auto;
	padding: 0 4px;
	border: 1px solid #cecece;
	width: fit-content;
	display: block;
	color: #333;
	background-color: #efefef;
	font-size: .8em;
	border-radius: 3px;
}

/* クイックポスト表示非表示トグル */
#quickpost_toggle,
#quickpost,
[for="quickpost_toggle"] span {
	display: none;
}

/* クイックポスト表示時 */
#quickpost_toggle:checked~#quickpost {
	display: block;
	width: 100%;
	height: 100vh;
	position: fixed;
	top: 0;
	left: 0;
	z-index: 3;
	overflow: auto;
	[for="quickpost_toggle"] {
		display: block;
	}
	#close_form_btn {
		margin: auto;
		width: fit-content;
	}
	#close_form_btn::after {
		border: 2px solid #666;
		content: url('data:image/svg+xml;utf-8,<svg xmlns="http://www.w3.org/2000/svg" height="1.5em" viewBox="0 -960 960 960" width="1.5em" fill="%23666666"><path d="m256-200-56-56 224-224-224-224 56-56 224 224 224-224 56 56-224 224 224 224-56 56-224-224-224 224Z"/></svg>');
		/* https://fonts.google.com/icons?selected=Material+Symbols+Outlined:close:FILL@0;wght@400;GRAD@0;opsz@24&icon.size=24&icon.color=%23666666 */
		display: grid;
		place-content: center;
		width: 2.5em;
		height: 2.5em;
		line-height: .5em;
		position: absolute;
		top: -1em;
		right: -1em;
		background-color: #efefef;
		border-radius: 100vmax;
	}
	#close_form_bg {
		width: 100%;
		height: 100dvh;
		position: fixed;
		top: 0;
		left: 0;
		z-index: -1;
		background-color: rgba(0, 0, 0, .6);
	}
}

/* フォーム表示エリア */
.postarea {
	margin: 1.5em;
	padding-bottom: 1em;
	position: relative;
	color: #333;
	background-color: #efefef;
	.postform {
		padding: 1em;
	}
	/* 設定で日時自由記入OKにした時 */
	input[name="datetime"] {
		margin-bottom: 2px;
		padding: 0 0 0 2px;
		border: 1px solid rgba(0, 0, 0, .3);
		background-color: #fff;
	}
}

/* field-sizingがFirefoxに対応するまで以下でテキストエリア自動拡大
- https://css-tricks.com/the-cleanest-trick-for-autogrowing-textareas/ */
.line-textarea {
	display: grid;
}
.line-textarea::after {
	padding: .5em;
	content: attr(data-replicated-value) " ";
	white-space: pre-wrap;
	visibility: hidden;
}
.line-textarea>textarea {
	padding: .5em;
	border: 1px solid rgba(0, 0, 0, .3);
	width: 100%;
	line-height: 1.2;
	overflow-wrap: break-word;
	overflow: auto;
	background-color: #fff;
	resize: none;
	overflow: hidden;
}
.line-textarea>textarea,
.line-textarea::after {
	font: inherit;
	grid-area: 1 / 1 / 2 / 2;
}
@media (width < 800px) {
	textarea.tegalogpost {
		font-size: 16px;
		padding: .4em;
	}
}
textarea.tegalogpost {
	padding: .5em;
	border: 1px solid rgba(0, 0, 0, .3);
	width: 100%;
	line-height: 1.2;
	overflow-wrap: break-word;
	overflow: auto;
	background-color: #fff;
}
textarea.tegalogpost:not([style*="calc"]) {
	height: unset !important;
}

/* 以下ほぼてがろぐ公式のままです */
/* 投稿ボタン・字数カウンタなど */
.line-control {
	margin-top: .25em;
}
.postbutton[type="submit"] {
	display: inline-block;
	color: #fff;
	background: #333;
	font-weight: bold;
	text-decoration: none;
	padding: .25em 2em;
}
.postbutton:hover {
	background-color: #aaa;
}

/* 装飾ボタン */
.line-control {
	margin-top: .5em;
	input,
	select,
	button {
		margin: 1px;
		padding: 0 4px;
		border: 1px solid #aaa;
		min-width: 32px;
		min-height: 28px;
		display: inline-block;
		color: inherit;
		background-color: #eee;
		font-size: 14px;
		border-radius: 3px;
		vertical-align: middle;
	}
	:where(input:not(.postbutton), select, button):hover {
		background-color: #e5f1fb;
		border-color: #0078d7;
	}
}
@media (width < 800px) {
	.decoBtns {
		margin-top: 0;
	}
}
.decoBtnB {
	font-weight: bold;
}
.decoBtnD {
	text-decoration: line-through red double;
}
.decoBtnE {
	font-weight: bold;
	color: blue;
}
.decoBtnI {
	font-style: italic;
}
.decoBtnT {
	font-size: 11px !important;
}
.decoBtnU {
	text-decoration: underline red;
}
.decoBtnC {
	color: red;
}
.decoBtnM {
	color: blue;
}

/* カテゴリ選択チェックボックス */
.catChecks {
	font-size: .9em;
	padding-top: .5em;
	label {
		display: inline-block;
		margin: 0 .75em 0 0;
	}
	label:hover {
		text-decoration: underline;
	}
	input {
		min-width: 0;
		min-height: 0;
		margin-right: .2em;
	}
}

/* 投稿欄下部：「鍵付き」チェックボックスと「個別鍵」ボタンの間を詰める一時的なスタイル */
.funcUIs .catChecks {
	margin: 0 .75em 0 0;
	label {
		margin: 0;
	}
}

/* カスタム絵文字ピッカー(その1) | Takotubo Club
https://10rin0.github.io/takodoc/tegalog/%E3%83%91%E3%83%BC%E3%83%84/cemoji_01/ */
.cepicker {
	margin: 10px auto;
	padding: 5px 0;
	max-height: 300px;
	overflow-y: auto;
	background-color: var(--light-bg-color);
	#CemojiList {
		display: flex;
		flex-wrap: wrap;
		justify-content: center;
		gap: 6px 3px;
	}
	.oneCemoji {
		display: inline-grid;
		justify-items: center;
		padding: 2px;
		background-color: var(--main-bg-color);
	}
	.cename,
	.cectrl {
		display: none;
	}
	.oneCemoji img {
		height: 2em;
		cursor: pointer;
	}
}
.cepicker:empty {
	display: none;
}

/* 画像一覧取得 */
.postarea {
	summary {
		margin: 10px auto;
		padding: .2em .5em;
		width: fit-content;
		display: flex;
		align-items: center;
		background-color: #eee;
	}
	summary::after {
		margin: 3px .25em;
		display: grid;
		place-content: center;
		width: 20px;
		height: 20px;
		line-height: .5em;
		content: url('data:image/svg+xml;utf-8,<svg xmlns="http://www.w3.org/2000/svg" height="18px" viewBox="0 -960 960 960" width="18px" fill="%23ffffff"><path d="M504-480 320-664l56-56 240 240-240 240-56-56 184-184Z"/></svg>');
		background-color: #666;
		border-radius: 100vmax;
		transition: .5s;
		transform: rotate(90deg);
	}
	details[open] summary::after {
		transform: rotate(-90deg);
	}
	.img_list {
		width: 100%;
		overflow-x: scroll
	}
}
.postarea .images.standard {
	:is(.embcode *, img[src$=".mp3"], img[src$=".mp4"]) {
		display: none;
	}
	td:has(img[src$=".mp3"])::before {
		display: block;
		width: 100px;
		content: 'mp3';
		font-size: 1.2em;
		font-weight: bold;
		text-align: center;
	}
	td:has(img[src$=".mp4"])::before {
		display: block;
		width: 100px;
		content: 'mp4';
		font-size: 1.2em;
		font-weight: bold;
		text-align: center;
	}
	.embcode :is(.codeui, .codeui input[type="text"]) {
		display: block;
	}
	tr {
		padding: 0 .25em;
		display: table-cell;
		background-color: #efefef;
	}
	tr:nth-child(even) {
		background-color: #e0e0e0;
	}
	td {
		font-size: .7em;
	}
	img {
		max-width: 100px;
		max-height: 100px;
		width: auto;
		height: auto;
	}
}
/* 画像アップロード拡張 */
.ex_uploader {
	font-size: .8em;
}
/*  **********************
他：
 ************************ */
