/* =========================================================
   CK Guide — main.css
   コンセプト「DEEP」：地上（明るい紙の攻略手帳）と地下（洞窟の闇・コアの光）。
   読む場所は明るく、見せ場は暗く。色は :root（明るい）と .zone-dark ほか（暗い）の
   変数を切り替えているので、部品は両方の場所でそのまま使えます。
   ========================================================= */

@property --br {
	syntax: "<color>";
	inherits: true;
	initial-value: rgba(11, 125, 113, 0.5);
}

:root {
	/* ---- 明るい「地上」：本文・表・一覧など読む場所（既定） ---- */
	--void: #05090b;
	--band: #0a1316;
	--bg: #f2eee4;
	--bg-2: #faf8f2;
	--bg-3: #ece6d8;
	--bg-4: #e1d9c6;
	--surface: #fffdf8;
	--field: #ffffff;
	--well: #12201f;
	--tint: rgba(28, 38, 41, 0.035);

	/* 文字 */
	--heading: #0f1a1d;
	--ink: #1f2b2e;
	--prose: #26343a;
	--ink-2: #4a5a5d;
	--ink-3: #5f7073;
	--on-core: #ffffff;
	--on-heading: #faf8f2;

	/* 線 */
	--line: rgba(28, 38, 41, 0.11);
	--line-2: rgba(28, 38, 41, 0.2);
	--line-3: rgba(11, 125, 113, 0.5);

	/* 光（明るい場所では濃いめのティール） */
	--core: #0b7d71;
	--core-2: #096a60;
	--core-3: #bfe3dd;
	--core-a: rgba(11, 125, 113, 0.08);
	--core-glow: 0 6px 20px -8px rgba(11, 125, 113, 0.55);
	--ore: #9a5f08;
	--ore-a: rgba(201, 135, 20, 0.12);
	--ember: #c0401c;
	--ember-a: rgba(192, 64, 28, 0.1);
	--violet: #7a55e0;

	/* レアリティ（明るい背景で読める濃さ） */
	--r-poor: #74807f;
	--r-common: #5d6d6b;
	--r-uncommon: #237a30;
	--r-rare: #2160c0;
	--r-epic: #7a3fc0;
	--r-legend: #b0650a;

	/* 互換（エディタ・古いクラス用） */
	--cave: var(--well);
	--cave-2: var(--bg-3);
	--cave-3: var(--bg-4);
	--paper-2: var(--bg-3);

	--font: "Noto Sans JP", system-ui, -apple-system, "Hiragino Sans", "Yu Gothic UI", sans-serif;
	--font-px: "DotGothic16", "Noto Sans JP", monospace;
	--font-num: "Silkscreen", "DotGothic16", monospace;

	--wrap: 1160px;
	--gutter: clamp(16px, 4vw, 40px);
	--radius: 2px;
	--ease: cubic-bezier(0.2, 0.8, 0.2, 1);
	--header-h: 68px;

	/* フォーム部品・スクロールバーを明るい配色で描く */
	color-scheme: light;
}

/* ---- 暗い「地下」：ヘッダー・トップのヒーロー（と直下のアイテムの帯）・フッターだけ ---- */
.zone-dark,
.site-header,
.site-footer,
.hero,
.belt {
	--bg: #081014;
	--bg-2: #0d181c;
	--bg-3: #132328;
	--bg-4: #1a2f35;
	--surface: rgba(13, 24, 28, 0.78);
	--field: #081014;
	--well: #081014;
	--tint: rgba(255, 255, 255, 0.04);

	--heading: #ffffff;
	--ink: #e4efed;
	--prose: #d3e0de;
	--ink-2: #a8bcb9;
	--ink-3: #7d9692;
	--on-core: #05090b;
	--on-heading: #05090b;

	--line: rgba(126, 214, 202, 0.12);
	--line-2: rgba(126, 214, 202, 0.24);
	--line-3: rgba(126, 214, 202, 0.42);

	--core: #3fe6d1;
	--core-2: #1eb8a6;
	--core-3: #0d6c63;
	--core-a: rgba(63, 230, 209, 0.14);
	--core-glow: 0 0 24px rgba(63, 230, 209, 0.35);
	--ore: #f3b648;
	--ore-a: rgba(243, 182, 72, 0.14);
	--ember: #ff7448;
	--ember-a: rgba(255, 116, 72, 0.14);
	--violet: #a284ff;

	--r-poor: #8a9796;
	--r-common: #c6d2d0;
	--r-uncommon: #5fd36b;
	--r-rare: #4f9bff;
	--r-epic: #b07bff;
	--r-legend: #ffa53a;

	color: var(--ink);
	color-scheme: dark;
}

*,
*::before,
*::after {
	box-sizing: border-box;
}

html {
	-webkit-text-size-adjust: 100%;
	scroll-padding-top: calc(var(--header-h) + 16px);
	background: var(--bg);
}

body {
	position: relative;
	margin: 0;
	background: var(--bg);
	color: var(--ink);
	font-family: var(--font);
	font-size: 16px;
	line-height: 1.85;
	letter-spacing: 0.03em;
	overflow-x: hidden;
	-webkit-font-smoothing: antialiased;
}

/* 紙の質感（細かいノイズ）とうっすらしたドットの格子 */
body::before {
	position: fixed;
	inset: 0;
	z-index: -1;
	background-image:
		url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 0.2 0 0 0 0 0.16 0 0 0 0 0.1 0 0 0 0.06 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E"),
		radial-gradient(rgba(28, 38, 41, 0.06) 1px, transparent 1px);
	background-size: 160px 160px, 24px 24px;
	content: "";
	pointer-events: none;
}

/* 暗いゾーンの地（洞窟のノイズとドット） */
.belt,
.site-footer {
	background-color: var(--band);
	background-image:
		url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 0.5 0 0 0 0 0.9 0 0 0 0 0.85 0 0 0 0.05 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E"),
		radial-gradient(rgba(126, 214, 202, 0.07) 1px, transparent 1px);
	background-size: 160px 160px, 24px 24px;
}

/* 暗い場所と明るい場所の境目：ドット風のギザギザ */
.belt,
.site-footer {
	position: relative;
}

.belt::after,
.site-footer::before {
	position: absolute;
	left: 0;
	right: 0;
	z-index: 2;
	height: 12px;
	background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='96' height='12'%3E%3Cpath fill='%230a1316' d='M0 0h96v4h-8v4h-8v4h-8v-4h-8v-4h-16v4h-8v4h-8v-8h-8v4h-8v-4h-8v8h-8z'/%3E%3C/svg%3E") 0 0 / 96px 12px repeat-x;
	content: "";
	pointer-events: none;
}

.belt::after {
	top: 100%;
}

.site-footer::before {
	bottom: 100%;
	transform: scaleY(-1);
}

/* たいまつの明かり（マウスの位置。JS で --mx/--my を更新） */
.torch {
	position: fixed;
	inset: 0;
	z-index: 60;
	/* 加算合成：明るい場所ではほぼ見えず、暗い場所だけ光る */
	mix-blend-mode: screen;
	background: radial-gradient(420px circle at var(--mx, 50%) var(--my, -20%), rgba(63, 230, 209, 0.07), transparent 70%);
	pointer-events: none;
	transition: opacity 0.4s;
}

::selection {
	background: var(--core);
	color: var(--on-core);
}

img {
	max-width: 100%;
	height: auto;
}

a {
	color: var(--core);
	text-decoration-color: rgba(63, 230, 209, 0.4);
	text-underline-offset: 4px;
	transition: color 0.2s, text-decoration-color 0.2s;
}

a:hover {
	color: var(--heading);
	text-decoration-color: currentColor;
}

:focus-visible {
	outline: 2px solid var(--core);
	outline-offset: 3px;
}

/* ドット絵は補間しない（ck-px- はメディアライブラリに登録したドット絵素材） */
.px,
.item-icon,
img[src*="/ck-px-"] {
	image-rendering: pixelated;
	image-rendering: crisp-edges;
	object-fit: contain;
}

.screen-reader-text {
	position: absolute !important;
	width: 1px;
	height: 1px;
	overflow: hidden;
	clip: rect(0 0 0 0);
	white-space: nowrap;
}

.skip-link {
	position: absolute;
	left: 8px;
	top: -60px;
	z-index: 200;
	padding: 8px 14px;
	background: var(--core);
	color: var(--on-core);
	font-weight: 700;
}

.skip-link:focus {
	top: 8px;
}

.wrap {
	position: relative;
	width: 100%;
	max-width: calc(var(--wrap) + var(--gutter) * 2);
	margin: 0 auto;
	padding: 0 var(--gutter);
}

.wrap--narrow {
	max-width: calc(800px + var(--gutter) * 2);
}

.site-main {
	position: relative;
	z-index: 1;
	min-height: 60vh;
	padding-bottom: 96px;
}

/* ---------- 共通の枠：四隅のブラケット（ゲームの UI 風） ---------- */

.card,
.widget,
.portal-box,
.data-hero,
.cat-card,
.skill-card,
.boss-row__link,
.biome-card__link,
.toc,
.cmt-area,
.journey__step,
.data-pager a,
.post-navigation a,
.mini-bosses a,
.empty,
.howto,
.item-search__input,
.data-hits a {
	--br: var(--line-3);
	--br-len: 10px;
	background-color: var(--surface);
	background-image:
		linear-gradient(var(--br) 0 0), linear-gradient(var(--br) 0 0),
		linear-gradient(var(--br) 0 0), linear-gradient(var(--br) 0 0),
		linear-gradient(var(--br) 0 0), linear-gradient(var(--br) 0 0),
		linear-gradient(var(--br) 0 0), linear-gradient(var(--br) 0 0);
	background-position: 0 0, 0 0, 100% 0, 100% 0, 0 100%, 0 100%, 100% 100%, 100% 100%;
	background-size:
		var(--br-len) 2px, 2px var(--br-len), var(--br-len) 2px, 2px var(--br-len),
		var(--br-len) 2px, 2px var(--br-len), var(--br-len) 2px, 2px var(--br-len);
	background-repeat: no-repeat;
	border: 1px solid var(--line);
	-webkit-backdrop-filter: blur(6px);
	backdrop-filter: blur(6px);
	transition: border-color 0.3s var(--ease), transform 0.3s var(--ease), box-shadow 0.3s var(--ease), --br 0.3s;
}

/* ---------- ヘッダー ---------- */

.site-header {
	position: sticky;
	top: 0;
	z-index: 100;
	background: rgba(10, 19, 22, 0.95);
	border-bottom: 1px solid var(--line);
	-webkit-backdrop-filter: blur(14px) saturate(1.4);
	backdrop-filter: blur(14px) saturate(1.4);
	transition: background 0.4s, border-color 0.4s;
}

/* トップではヒーローの上に重ねる */
.home .site-header {
	position: fixed;
	left: 0;
	right: 0;
	background: transparent;
	border-color: transparent;
	-webkit-backdrop-filter: none;
	backdrop-filter: none;
}

.home .site-header.is-scrolled {
	background: rgba(10, 19, 22, 0.95);
	border-color: var(--line);
	-webkit-backdrop-filter: blur(14px) saturate(1.4);
	backdrop-filter: blur(14px) saturate(1.4);
}

.admin-bar .site-header {
	top: 32px;
}

.site-header__inner {
	display: flex;
	align-items: center;
	gap: 20px;
	min-height: var(--header-h);
}

.brand {
	display: flex;
	align-items: center;
	gap: 12px;
	min-width: 0;
	color: var(--heading);
	text-decoration: none;
}

.brand:hover {
	color: var(--heading);
}

.brand__mark {
	position: relative;
	flex: none;
	width: 36px;
	height: 36px;
	background: url("../img/game/ui/map_markers_0.png") center / 20px no-repeat, var(--bg-3);
	border: 2px solid var(--core-2);
	box-shadow: var(--core-glow), inset 0 0 12px rgba(63, 230, 209, 0.25);
	image-rendering: pixelated;
	transition: transform 0.6s var(--ease);
}

.brand:hover .brand__mark {
	transform: rotate(90deg);
}

.brand__logo {
	width: auto;
	max-height: 40px;
}

.brand__text {
	display: flex;
	flex-direction: column;
	min-width: 0;
	line-height: 1.2;
}

.brand__name {
	overflow: hidden;
	font-family: var(--font-px);
	font-size: 19px;
	letter-spacing: 0.06em;
	text-overflow: ellipsis;
	white-space: nowrap;
}

.brand__tag {
	color: var(--core);
	font-family: var(--font-num);
	font-size: 9px;
	letter-spacing: 0.24em;
}

.site-nav {
	display: flex;
	align-items: center;
	gap: 16px;
	margin-left: auto;
}

.nav__list {
	display: flex;
	gap: 4px;
	margin: 0;
	padding: 0;
	list-style: none;
}

.nav__list a {
	position: relative;
	display: block;
	padding: 8px 12px;
	color: var(--ink-2);
	font-size: 14px;
	font-weight: 500;
	text-decoration: none;
}

.nav__list a::after {
	position: absolute;
	left: 12px;
	right: 12px;
	bottom: 2px;
	height: 2px;
	background: var(--core);
	box-shadow: var(--core-glow);
	content: "";
	transform: scaleX(0);
	transform-origin: left;
	transition: transform 0.35s var(--ease);
}

.nav__list a:hover,
.nav__list .current-menu-item a {
	color: var(--heading);
}

.nav__list a:hover::after,
.nav__list .current-menu-item a::after {
	transform: scaleX(1);
}

.header-search {
	display: flex;
	align-items: center;
	gap: 8px;
	padding: 0 12px;
	background: var(--tint);
	border: 1px solid var(--line-2);
	transition: border-color 0.2s, box-shadow 0.2s;
}

.header-search:focus-within {
	border-color: var(--core);
	box-shadow: var(--core-glow);
}

.header-search__icon {
	flex: none;
	color: var(--ink-3);
}

.header-search input {
	width: 170px;
	padding: 8px 0;
	background: transparent;
	border: 0;
	outline: 0;
	color: var(--heading);
	font: inherit;
	font-size: 13px;
}

.header-search input::placeholder {
	color: var(--ink-3);
}

.nav-toggle {
	display: none;
	width: 44px;
	height: 44px;
	margin-left: auto;
	background: transparent;
	border: 1px solid var(--line-2);
	cursor: pointer;
}

.nav-toggle__bar,
.nav-toggle__bar::before,
.nav-toggle__bar::after {
	display: block;
	width: 18px;
	height: 2px;
	margin: 0 auto;
	background: var(--core);
	content: "";
	transition: transform 0.3s var(--ease), background 0.2s;
}

.nav-toggle__bar::before {
	transform: translateY(-6px);
}

.nav-toggle__bar::after {
	transform: translateY(4px);
}

.nav-toggle[aria-expanded="true"] .nav-toggle__bar {
	background: transparent;
}

.nav-toggle[aria-expanded="true"] .nav-toggle__bar::before {
	transform: translateY(0) rotate(45deg);
}

.nav-toggle[aria-expanded="true"] .nav-toggle__bar::after {
	transform: translateY(-2px) rotate(-45deg);
}

@media (max-width: 960px) {
	.nav-toggle {
		display: block;
	}

	/* ヘッダーの backdrop-filter が基準になるので、高さは画面の高さで指定する */
	.site-nav {
		position: absolute;
		top: 100%;
		left: 0;
		right: 0;
		height: calc(100vh - var(--header-h));
		height: calc(100dvh - var(--header-h));
		overflow-y: auto;
		display: flex;
		flex-direction: column;
		align-items: stretch;
		gap: 24px;
		padding: 24px var(--gutter) 40px;
		background: var(--void);
		opacity: 0;
		visibility: hidden;
		transform: translateY(-8px);
		transition: opacity 0.3s var(--ease), transform 0.3s var(--ease), visibility 0.3s;
	}

	.site-nav.is-open {
		opacity: 1;
		visibility: visible;
		transform: none;
	}

	.nav__list {
		flex-direction: column;
		gap: 0;
	}

	.nav__list a {
		padding: 16px 0;
		border-bottom: 1px solid var(--line);
		color: var(--heading);
		font-family: var(--font-px);
		font-size: 22px;
	}

	.nav__list a::after {
		display: none;
	}

	.header-search {
		order: -1;
		padding: 4px 14px;
	}

	.header-search input {
		flex: 1;
		width: auto;
		font-size: 16px;
	}

	body.nav-open {
		overflow: hidden;
	}
}

@media (max-width: 782px) {
	.admin-bar .site-header {
		top: 46px;
	}
}

/* ---------- ボタン・バッジ ---------- */

.btn,
.search-form button,
.cmt-form__submit {
	position: relative;
	display: inline-flex;
	align-items: center;
	gap: 8px;
	padding: 14px 26px;
	background: var(--core);
	border: 0;
	clip-path: polygon(0 6px, 6px 6px, 6px 0, calc(100% - 6px) 0, calc(100% - 6px) 6px, 100% 6px, 100% calc(100% - 6px), calc(100% - 6px) calc(100% - 6px), calc(100% - 6px) 100%, 6px 100%, 6px calc(100% - 6px), 0 calc(100% - 6px));
	color: var(--on-core);
	font: inherit;
	font-weight: 700;
	letter-spacing: 0.06em;
	text-decoration: none;
	cursor: pointer;
	transition: background 0.2s, transform 0.2s var(--ease), filter 0.2s;
}

.btn:hover,
.search-form button:hover,
.cmt-form__submit:hover {
	background: var(--heading);
	color: var(--on-core);
	transform: translateY(-2px);
	filter: drop-shadow(0 0 12px rgba(63, 230, 209, 0.6));
}

.btn:active,
.cmt-form__submit:active {
	transform: translateY(1px);
}

.badge {
	display: inline-block;
	padding: 0 8px;
	font-size: 11px;
	font-weight: 700;
	line-height: 1.9;
	letter-spacing: 0.06em;
	vertical-align: middle;
	white-space: nowrap;
}

.badge--soft {
	background: var(--tint);
	border: 1px solid var(--line-2);
	color: var(--ink-2);
}

.badge--ore {
	background: var(--ore-a);
	border: 1px solid rgba(243, 182, 72, 0.4);
	color: var(--ore);
}

.badge--todo {
	margin-left: 6px;
	background: var(--ember);
	color: var(--on-core);
}

/* ---------- ヒーロー ---------- */

.hero {
	position: relative;
	display: flex;
	flex-direction: column;
	justify-content: center;
	min-height: min(100svh, 860px);
	padding: calc(var(--header-h) + 40px) 0 0;
	overflow: hidden;
	background:
		radial-gradient(900px 640px at 72% 58%, rgba(30, 184, 166, 0.20), transparent 62%),
		radial-gradient(500px 340px at 72% 62%, rgba(79, 155, 255, 0.10), transparent 70%),
		var(--band);
	isolation: isolate;
}

.hero::after {
	position: absolute;
	left: 0;
	right: 0;
	bottom: 0;
	z-index: -1;
	height: 40%;
	background: linear-gradient(180deg, transparent, var(--band));
	content: "";
}

.hero__spores {
	position: absolute;
	inset: 0;
	z-index: -1;
	width: 100%;
	height: 100%;
}

.hero__core {
	position: absolute;
	right: max(-160px, calc((100vw - 1440px) / 2 - 80px));
	top: 50%;
	z-index: -2;
	width: min(960px, 72vw);
	aspect-ratio: 16 / 9;
	transform: translate3d(var(--px, 0), calc(-62% + var(--py, 0px)), 0);
	transition: transform 0.8s var(--ease);
}

.hero__core-img {
	position: relative;
	display: block;
	width: 100%;
	height: auto;
	animation: core-breathe 6s ease-in-out infinite;
}

/* 端をフェードさせて背景になじませる（表示上の透過のみ。画像そのものは加工しない） */
.hero__core {
	-webkit-mask-image: radial-gradient(closest-side at 62% 58%, #000 62%, transparent 100%);
	mask-image: radial-gradient(closest-side at 62% 58%, #000 62%, transparent 100%);
}

/* コアの光の輪（中心＝画像のコアの位置） */
.hero__ring {
	position: absolute;
	left: 65.6%;
	top: 66%;
	border: 1px dashed rgba(63, 230, 209, 0.32);
	border-radius: 50%;
	transform: translate(-50%, -50%);
	animation: ring-spin 60s linear infinite;
}

.hero__ring--1 {
	width: 46%;
	aspect-ratio: 1;
}

.hero__ring--2 {
	width: 70%;
	aspect-ratio: 1;
	border-style: dotted;
	border-color: rgba(63, 230, 209, 0.18);
	animation-duration: 90s;
	animation-direction: reverse;
}

.hero__ring--3 {
	width: 98%;
	aspect-ratio: 1;
	border-color: rgba(126, 214, 202, 0.08);
	animation-duration: 140s;
}

@keyframes ring-spin {
	to {
		transform: translate(-50%, -50%) rotate(360deg);
	}
}

@keyframes core-breathe {
	0%, 100% {
		filter: drop-shadow(0 0 18px rgba(63, 230, 209, 0.25));
	}

	50% {
		filter: drop-shadow(0 0 42px rgba(63, 230, 209, 0.5));
	}
}

.hero__inner {
	z-index: 1;
	width: 100%;
	padding-top: 24px;
	padding-bottom: 72px;
}

.hero__eyebrow {
	display: flex;
	align-items: center;
	gap: 10px;
	margin: 0 0 20px;
	color: var(--core);
	font-family: var(--font-px);
	font-size: 14px;
	letter-spacing: 0.12em;
}

.hero__blink {
	width: 8px;
	height: 8px;
	background: var(--core);
	box-shadow: var(--core-glow);
	animation: blink 1.2s steps(2, start) infinite;
}

@keyframes blink {
	to {
		visibility: hidden;
	}
}

.hero__title {
	margin: 0;
	font-family: var(--font-px);
	font-size: clamp(40px, 7vw, 104px);
	font-weight: 400;
	line-height: 1.12;
	/* 「攻略Wikidom」のような語の途中で折り返さない */
	word-break: keep-all;
	overflow-wrap: anywhere;
	text-wrap: balance;
	color: #effffc;
	text-shadow: 0 0 36px rgba(63, 230, 209, 0.38), 0 0 2px rgba(159, 245, 234, 0.6);
	animation: rise 1.1s var(--ease) both;
	letter-spacing: 0.02em;
}

@keyframes rise {
	from {
		opacity: 0;
		transform: translateY(32%);
		filter: blur(8px);
	}
}

.hero__dig {
	position: absolute;
	left: 50%;
	bottom: 16px;
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 6px;
	color: var(--ink-3);
	font-family: var(--font-num);
	font-size: 9px;
	letter-spacing: 0.3em;
	text-decoration: none;
	transform: translateX(-50%);
}

.hero__dig-arrow {
	width: 10px;
	height: 10px;
	border-right: 2px solid var(--core);
	border-bottom: 2px solid var(--core);
	transform: rotate(45deg);
	animation: dig 1.6s var(--ease) infinite;
}

@keyframes dig {
	50% {
		transform: translateY(6px) rotate(45deg);
	}
}

@media (max-width: 860px) {
	.hero {
		min-height: auto;
		padding-top: calc(var(--header-h) + 24px);
	}

	/* スマホはコアを見出しの上に大きく置く */
	.hero__core {
		position: relative;
		right: auto;
		top: auto;
		width: 128vw;
		max-width: none;
		margin: -12px -14vw -14vw;
		transform: none;
		-webkit-mask-image: radial-gradient(closest-side at 64% 60%, #000 55%, transparent 100%);
		mask-image: radial-gradient(closest-side at 64% 60%, #000 55%, transparent 100%);
	}

	.hero__eyebrow {
		font-size: 12px;
		letter-spacing: 0.08em;
	}

}

/* ---------- トップのリンクカード（ヒーロー内） ---------- */

.hero-nav {
	margin-top: clamp(32px, 5vw, 56px);
}

.hero-nav__list {
	display: grid;
	grid-template-columns: repeat(5, minmax(0, 1fr));
	gap: 12px;
	margin: 0;
	padding: 0;
	list-style: none;
}

.hero-nav__link {
	position: relative;
	display: flex;
	flex-direction: column;
	gap: 14px;
	height: 100%;
	padding: 20px 18px 18px;
	background: rgba(8, 16, 20, 0.82);
	border: 1px solid var(--line-2);
	color: var(--ink);
	text-decoration: none;
	-webkit-backdrop-filter: blur(8px);
	backdrop-filter: blur(8px);
	transition: border-color 0.25s, background 0.25s, transform 0.3s var(--ease), box-shadow 0.3s;
}

.hero-nav__link:hover {
	background: rgba(13, 32, 36, 0.92);
	border-color: var(--core);
	color: var(--ink);
	transform: translateY(-4px);
	box-shadow: 0 16px 40px -16px rgba(63, 230, 209, 0.5);
}

.hero-nav__icon {
	display: grid;
	place-items: center;
	width: 56px;
	height: 56px;
	background: radial-gradient(circle, rgba(63, 230, 209, 0.22), transparent 70%), var(--bg);
	border: 1px solid var(--line-2);
}

.hero-nav__text {
	display: flex;
	flex-direction: column;
	gap: 4px;
}

.hero-nav__name {
	color: var(--heading);
	font-family: var(--font-px);
	font-size: 18px;
	line-height: 1.4;
	letter-spacing: 0.04em;
}

.hero-nav__desc {
	color: var(--ink-2);
	font-size: 12.5px;
	line-height: 1.6;
}

.hero-nav__go {
	position: absolute;
	right: 14px;
	top: 18px;
	color: var(--core);
	transition: transform 0.3s var(--ease);
}

.hero-nav__link:hover .hero-nav__go {
	transform: translateX(4px);
}

@media (max-width: 1100px) {
	.hero-nav__list {
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}
}

/* スマホ：横長の行で縦に並べる */
@media (max-width: 680px) {
	.hero-nav__list {
		grid-template-columns: minmax(0, 1fr);
		gap: 8px;
	}

	.hero-nav__link {
		flex-direction: row;
		align-items: center;
		gap: 14px;
		padding: 12px 40px 12px 12px;
	}

	.hero-nav__icon {
		flex: none;
		width: 48px;
		height: 48px;
	}

	.hero-nav__name {
		font-size: 16px;
	}

	.hero-nav__go {
		top: 50%;
		transform: translateY(-50%);
	}

	.hero-nav__link:hover .hero-nav__go {
		transform: translate(4px, -50%);
	}
}

/* ---------- アイテムの帯（ヒーロー下） ---------- */

.belt {
	z-index: 1;
	padding: 14px 0;
	/* 横だけ切り抜く（下のギザギザは見せる） */
	overflow-x: clip;
	border-top: 1px solid var(--line);
}

.belt__track {
	-webkit-mask-image: linear-gradient(90deg, transparent, #000 10%, #000 90%, transparent);
	mask-image: linear-gradient(90deg, transparent, #000 10%, #000 90%, transparent);
}

.belt__track {
	display: flex;
	gap: 10px;
	width: max-content;
	animation: belt 70s linear infinite;
}

.belt:hover .belt__track {
	animation-play-state: paused;
}

.belt__slot {
	display: grid;
	place-items: center;
	width: 60px;
	height: 60px;
	background: radial-gradient(circle at 50% 60%, color-mix(in srgb, var(--rarity, #fff) 22%, transparent), transparent 70%), var(--well);
	border: 1px solid var(--line);
	box-shadow: inset 0 0 0 1px rgba(0, 0, 0, 0.6);
}

@keyframes belt {
	to {
		transform: translateX(-50%);
	}
}

/* ---------- トップのセクション ---------- */

.front {
	position: relative;
	z-index: 1;
}

.front-section {
	padding-top: clamp(80px, 11vw, 150px);
}

.section-head {
	position: relative;
	display: grid;
	grid-template-columns: auto minmax(0, 1fr) auto;
	align-items: end;
	gap: 8px 28px;
	margin-bottom: 40px;
}

.section-head__num {
	align-self: start;
	background: linear-gradient(180deg, var(--core) 0%, color-mix(in srgb, var(--core) 12%, transparent) 100%);
	-webkit-background-clip: text;
	background-clip: text;
	color: transparent;
	font-family: var(--font-num);
	font-size: clamp(64px, 9vw, 120px);
	line-height: 0.82;
	opacity: 0.35;
	transition: opacity 1.2s var(--ease);
}

.section-head.is-in .section-head__num {
	opacity: 0.9;
}

.section-head__label {
	margin: 0 0 8px;
	color: var(--core);
	font-family: var(--font-num);
	font-size: 11px;
	letter-spacing: 0.3em;
}

.section-head__label::before {
	display: inline-block;
	width: 24px;
	height: 1px;
	margin-right: 10px;
	background: var(--core);
	vertical-align: middle;
	content: "";
}

.section-head__title {
	margin: 0;
	font-family: var(--font-px);
	font-size: clamp(28px, 4vw, 48px);
	font-weight: 400;
	line-height: 1.25;
	letter-spacing: 0.04em;
}

.section-head__lead {
	max-width: 40em;
	margin: 12px 0 0;
	color: var(--ink-2);
	font-size: 15px;
}

.section-head__more {
	display: inline-flex;
	align-items: center;
	gap: 12px;
	padding-bottom: 6px;
	border-bottom: 1px solid var(--line-2);
	color: var(--ink);
	font-size: 14px;
	font-weight: 700;
	text-decoration: none;
	white-space: nowrap;
	transition: border-color 0.2s, color 0.2s;
}

.section-head__arrow {
	display: inline-grid;
	place-items: center;
	width: 32px;
	height: 32px;
	border: 1px solid var(--line-2);
	color: var(--core);
	transition: all 0.3s var(--ease);
}

.section-head__more:hover {
	border-color: var(--core);
	color: var(--heading);
}

.section-head__more:hover .section-head__arrow {
	background: var(--core);
	border-color: var(--core);
	color: var(--on-core);
	transform: translateX(4px);
}

@media (max-width: 720px) {
	.section-head {
		grid-template-columns: minmax(0, 1fr);
		gap: 4px;
	}

	.section-head__num {
		font-size: 56px;
	}

	.section-head__more {
		justify-self: start;
		margin-top: 12px;
	}
}

/* はじめての方へ：3 ステップ */
.journey {
	position: relative;
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 20px;
	margin: 0;
	padding: 0;
	list-style: none;
	counter-reset: none;
}

.journey::before {
	position: absolute;
	left: 8%;
	right: 8%;
	top: 64px;
	height: 2px;
	background: repeating-linear-gradient(90deg, var(--line-3) 0 8px, transparent 8px 16px);
	content: "";
}

.journey__step {
	position: relative;
	padding: 28px 26px 30px;
}

.journey__step:hover {
	--br: var(--core);
	border-color: var(--line-2);
	transform: translateY(-4px);
}

.journey__num {
	display: block;
	color: var(--core);
	font-family: var(--font-num);
	font-size: 12px;
	letter-spacing: 0.2em;
}

.journey__icon {
	position: relative;
	display: grid;
	place-items: center;
	width: 72px;
	height: 72px;
	margin: 14px 0 18px;
	background: radial-gradient(circle, rgba(63, 230, 209, 0.18), transparent 70%), var(--well);
	border: 1px solid var(--line-2);
}

.journey__step h3 {
	margin: 0 0 8px;
	font-size: 18px;
	line-height: 1.5;
}

.journey__step p {
	margin: 0;
	color: var(--ink-2);
	font-size: 14px;
	line-height: 1.8;
}

@media (max-width: 860px) {
	.journey {
		grid-template-columns: minmax(0, 1fr);
	}

	.journey::before {
		left: 61px;
		right: auto;
		top: 0;
		bottom: 0;
		width: 2px;
		height: auto;
		background: repeating-linear-gradient(180deg, var(--line-3) 0 8px, transparent 8px 16px);
	}

	.journey__step {
		display: grid;
		grid-template-columns: 72px minmax(0, 1fr);
		gap: 0 18px;
		padding: 22px;
	}

	.journey__num {
		grid-column: 2;
	}

	.journey__icon {
		grid-row: 1 / span 3;
		margin: 0;
	}
}

/* ボスの攻略ルート */
.boss-route {
	position: relative;
	display: grid;
	grid-template-columns: repeat(8, minmax(0, 1fr));
	gap: 12px;
	margin: 0 auto;
	list-style: none;
}

.boss-route::before {
	position: absolute;
	left: calc(var(--gutter) + 6%);
	right: calc(var(--gutter) + 6%);
	top: 74px;
	height: 2px;
	background: linear-gradient(90deg, var(--core-3), var(--core), var(--violet), var(--ember));
	box-shadow: 0 0 16px rgba(63, 230, 209, 0.35);
	content: "";
	opacity: 0.6;
}

.boss-route__item a {
	position: relative;
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 12px;
	height: 100%;
	padding: 8px 4px 16px;
	color: var(--ink);
	text-align: center;
	text-decoration: none;
}

.boss-route__order {
	color: var(--ink-3);
	font-family: var(--font-num);
	font-size: 12px;
	letter-spacing: 0.1em;
	transition: color 0.3s;
}

.boss-route__node {
	position: relative;
	display: grid;
	place-items: center;
	width: 84px;
	height: 84px;
	background: radial-gradient(circle at 50% 55%, rgba(63, 230, 209, 0.16), transparent 70%), var(--bg-2);
	border: 1px solid var(--line-2);
	transform: rotate(45deg);
	transition: transform 0.5s var(--ease), border-color 0.3s, box-shadow 0.3s;
}

.boss-route__node > * {
	transform: rotate(-45deg);
}

.boss-route__name {
	font-size: 13px;
	font-weight: 700;
	line-height: 1.5;
}

.boss-route__item a:hover .boss-route__node {
	border-color: var(--core);
	box-shadow: 0 0 0 4px rgba(63, 230, 209, 0.08), 0 0 32px rgba(63, 230, 209, 0.45);
	transform: rotate(45deg) scale(1.08);
}

.boss-route__item a:hover .boss-route__order {
	color: var(--core);
}

@media (max-width: 1000px) {
	.boss-route {
		grid-template-columns: repeat(8, 132px);
		overflow-x: auto;
		padding-bottom: 12px;
		scroll-snap-type: x mandatory;
		scrollbar-width: thin;
		scrollbar-color: var(--core-3) transparent;
	}

	.boss-route::before {
		left: var(--gutter);
		right: auto;
		width: calc(132px * 8 + 12px * 7);
	}

	.boss-route__item {
		scroll-snap-align: start;
	}
}

.boss-icon {
	flex: none;
	image-rendering: pixelated;
}

.boss-icon--placeholder {
	display: inline-grid;
	place-items: center;
	background: var(--bg-3);
	border: 1px dashed var(--line-2);
	border-radius: 50%;
}

/* バイオーム：地層の断面図 */
.strata {
	margin: 0;
	padding: 0;
	list-style: none;
	border-top: 1px solid var(--line);
}

.strata__layer {
	position: relative;
	--depth: 0;
	background:
		linear-gradient(90deg, color-mix(in srgb, var(--biome) 26%, transparent), color-mix(in srgb, var(--biome) 5%, transparent) 55%, transparent),
		repeating-linear-gradient(90deg, transparent 0 22px, rgba(28, 38, 41, 0.04) 22px 24px);
	border-bottom: 1px solid var(--line);
	transition: background-color 0.4s;
}

/* 地層の境目のギザギザ（ドット風） */
.strata__layer::before {
	position: absolute;
	left: 0;
	right: 0;
	top: -6px;
	height: 6px;
	background:
		linear-gradient(90deg, color-mix(in srgb, var(--biome) 26%, transparent), transparent 55%);
	-webkit-mask: repeating-linear-gradient(90deg, #000 0 12px, transparent 12px 18px, #000 18px 30px, transparent 30px 42px);
	mask: repeating-linear-gradient(90deg, #000 0 12px, transparent 12px 18px, #000 18px 30px, transparent 30px 42px);
	content: "";
}

.strata__layer:hover {
	background-color: var(--tint);
}

.strata__link {
	display: grid;
	grid-template-columns: 110px 36px minmax(0, 1fr) auto 40px;
	align-items: center;
	gap: 18px;
	min-height: 84px;
	color: var(--heading);
	text-decoration: none;
}

.strata__no {
	color: color-mix(in srgb, var(--biome) 55%, var(--heading));
	font-family: var(--font-num);
	font-size: 11px;
	letter-spacing: 0.16em;
}

.strata__icon:empty {
	visibility: hidden;
}

.strata__icon {
	display: grid;
	place-items: center;
	width: 36px;
	height: 36px;
	background: var(--well);
	border: 1px solid var(--line);
}

.strata__name {
	font-family: var(--font-px);
	font-size: clamp(18px, 2.2vw, 26px);
	line-height: 1.3;
	transition: transform 0.4s var(--ease);
}

.strata__en {
	display: block;
	color: var(--ink-3);
	font-family: var(--font);
	font-size: 12px;
	letter-spacing: 0.06em;
}

.strata__bosses {
	display: flex;
	gap: 6px;
}

.strata__go {
	display: grid;
	place-items: center;
	width: 40px;
	height: 40px;
	border: 1px solid var(--line-2);
	color: var(--ink-2);
	transition: all 0.3s var(--ease);
}

.strata__link:hover .strata__name {
	transform: translateX(8px);
}

.strata__link:hover .strata__go {
	background: var(--biome);
	border-color: var(--biome);
	color: #fff;
}

@media (max-width: 720px) {
	.strata__link {
		grid-template-columns: 36px minmax(0, 1fr) 32px;
		gap: 4px 14px;
		padding-top: 14px;
		padding-bottom: 14px;
	}

	.strata__no {
		grid-column: 2;
		grid-row: 1;
	}

	.strata__icon {
		grid-row: 1 / span 2;
	}

	.strata__name {
		grid-column: 2;
	}

	.strata__bosses {
		display: none;
	}

	.strata__go {
		grid-column: 3;
		grid-row: 1 / span 2;
		width: 32px;
		height: 32px;
	}
}

/* ---------- 記事カード ---------- */

.card-grid {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
	gap: 24px;
}

.card-grid--2 {
	grid-template-columns: repeat(auto-fill, minmax(250px, 1fr));
	gap: 18px;
}

.card-grid--front {
	grid-template-columns: repeat(3, minmax(0, 1fr));
}

.card-grid--front .card:first-child {
	grid-column: span 2;
	grid-row: span 2;
}

.card-grid--front .card:first-child .card__title {
	font-size: clamp(20px, 2.2vw, 28px);
}

@media (max-width: 960px) {
	.card-grid--front {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (max-width: 600px) {
	.card-grid--front {
		grid-template-columns: minmax(0, 1fr);
	}

	.card-grid--front .card:first-child {
		grid-column: auto;
		grid-row: auto;
	}
}

.card {
	position: relative;
	overflow: hidden;
}

.card:hover {
	--br: var(--core);
	border-color: var(--line-2);
	transform: translateY(-4px);
	box-shadow: 0 24px 48px -24px rgba(63, 230, 209, 0.35);
}

.card__link {
	display: flex;
	flex-direction: column;
	height: 100%;
	color: var(--ink);
	text-decoration: none;
}

.card__link:hover {
	color: var(--ink);
}

.card__thumb {
	position: relative;
	aspect-ratio: 16 / 9;
	overflow: hidden;
	background: var(--bg-3);
}

.card-grid--front .card:first-child .card__thumb {
	flex: 1;
	aspect-ratio: auto;
	min-height: 240px;
}

.card__thumb::after {
	position: absolute;
	inset: 0;
	background: linear-gradient(180deg, transparent 50%, rgba(5, 9, 11, 0.6));
	content: "";
}

.card__thumb img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform 0.8s var(--ease);
}

.card:hover .card__thumb img {
	transform: scale(1.05);
}

.card__thumb-fallback {
	display: block;
	height: 100%;
	background: url("../img/game/hero/core.png") 70% center / cover, var(--band);
	image-rendering: pixelated;
}

.card__thumb {
	background: var(--band);
}

.card__body {
	display: flex;
	flex-direction: column;
	gap: 10px;
	padding: 18px 20px 20px;
}

.card__cat {
	align-self: flex-start;
	color: var(--core);
	font-size: 12px;
	font-weight: 700;
	letter-spacing: 0.1em;
}

.card__cat::before {
	display: inline-block;
	width: 6px;
	height: 6px;
	margin-right: 8px;
	background: var(--core);
	vertical-align: 2px;
	content: "";
}

.card__title {
	margin: 0;
	font-size: 16px;
	line-height: 1.6;
	transition: color 0.2s;
}

.card:hover .card__title {
	color: var(--heading);
}

.card__date {
	margin-top: auto;
	color: var(--ink-3);
	font-family: var(--font-num);
	font-size: 10px;
	letter-spacing: 0.14em;
}

.empty {
	padding: 32px;
	color: var(--ink-2);
	text-align: center;
}

/* ---------- 2 カラム ---------- */

.layout {
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	gap: 48px;
}

@media (min-width: 1080px) {
	.layout {
		grid-template-columns: minmax(0, 1fr) 300px;
		gap: 64px;
	}
}

.breadcrumbs {
	padding: 28px 0 8px;
	font-size: 12px;
	color: var(--ink-3);
}

.breadcrumbs ol {
	display: flex;
	flex-wrap: wrap;
	gap: 4px 10px;
	margin: 0;
	padding: 0;
	list-style: none;
}

.breadcrumbs li:not(:last-child)::after {
	margin-left: 10px;
	color: var(--core-3);
	content: "/";
}

.breadcrumbs a {
	color: var(--ink-2);
	text-decoration: none;
}

.breadcrumbs a:hover {
	color: var(--core);
}

/* ---------- 記事 ---------- */

.entry__head {
	position: relative;
	margin: 16px 0 36px;
}

.entry__cat {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	margin-bottom: 16px;
	color: var(--core);
	font-size: 12px;
	font-weight: 700;
	letter-spacing: 0.12em;
	text-decoration: none;
}

.entry__cat::before {
	width: 6px;
	height: 6px;
	background: var(--core);
	box-shadow: var(--core-glow);
	content: "";
}

.entry__title {
	margin: 0;
	font-family: var(--font-px);
	font-size: clamp(28px, 4.4vw, 46px);
	font-weight: 400;
	line-height: 1.35;
	letter-spacing: 0.03em;
}

.entry__meta {
	display: flex;
	flex-wrap: wrap;
	gap: 4px 20px;
	margin-top: 18px;
	color: var(--ink-3);
	font-size: 13px;
}

.entry__thumb {
	position: relative;
	margin: 0 0 40px;
	border: 1px solid var(--line);
	overflow: hidden;
}

.entry__thumb img {
	display: block;
	width: 100%;
}

.entry__tags {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	margin: 40px 0 0;
	padding: 0;
	list-style: none;
}

.entry__tags a {
	display: inline-block;
	padding: 4px 12px;
	border: 1px solid var(--line-2);
	color: var(--ink-2);
	font-size: 13px;
	text-decoration: none;
}

.entry__tags a:hover {
	border-color: var(--core);
	color: var(--heading);
}

/* 本文 */
.prose {
	color: var(--prose);
	font-size: 16.5px;
	line-height: 2;
}

.prose > * + * {
	margin-top: 1.2em;
}

.prose p {
	margin: 0 0 1.4em;
}

.prose h2,
.h2 {
	position: relative;
	margin: 2.6em 0 1.1em;
	padding: 0 0 14px 22px;
	border-bottom: 1px solid var(--line-2);
	color: var(--heading);
	font-family: var(--font-px);
	font-size: clamp(21px, 2.8vw, 27px);
	font-weight: 400;
	line-height: 1.5;
	letter-spacing: 0.04em;
}

.prose h2::before,
.h2::before {
	position: absolute;
	left: 0;
	top: 0.42em;
	width: 10px;
	height: 10px;
	background: var(--core);
	box-shadow: var(--core-glow);
	content: "";
}

.prose h2::after,
.h2::after {
	position: absolute;
	left: 0;
	bottom: -1px;
	width: 80px;
	height: 1px;
	background: var(--core);
	box-shadow: var(--core-glow);
	content: "";
}

.prose h3 {
	margin: 2.2em 0 0.8em;
	padding-left: 16px;
	border-left: 2px solid var(--core);
	color: var(--heading);
	font-size: 19px;
	line-height: 1.55;
}

.prose h4 {
	margin: 1.8em 0 0.6em;
	color: var(--core);
	font-size: 16.5px;
}

.prose ul,
.prose ol {
	padding-left: 1.4em;
}

.prose ul > li::marker {
	color: var(--core);
}

.prose ol > li::marker {
	color: var(--core);
	font-family: var(--font-num);
	font-size: 0.8em;
}

.prose li + li {
	margin-top: 0.4em;
}

.prose strong {
	color: var(--heading);
	background: linear-gradient(transparent 64%, rgba(243, 182, 72, 0.32) 64%);
}

.prose blockquote {
	margin: 1.8em 0;
	padding: 18px 24px;
	background: var(--tint);
	border-left: 2px solid var(--line-3);
	color: var(--ink-2);
}

.prose figure {
	margin: 1.8em 0;
}

.prose figcaption {
	color: var(--ink-3);
	font-size: 13px;
	text-align: center;
}

.prose hr {
	height: 1px;
	margin: 3em 0;
	background: var(--line-2);
	border: 0;
}

.prose code {
	padding: 2px 6px;
	background: var(--bg-3);
	color: var(--core);
	font-size: 0.9em;
}

.prose table,
.data-table {
	width: 100%;
	border-collapse: collapse;
	font-size: 14.5px;
	line-height: 1.65;
}

.prose th,
.prose td,
.data-table th,
.data-table td {
	padding: 12px 14px;
	border-bottom: 1px solid var(--line);
	text-align: left;
	vertical-align: middle;
}

.prose thead th,
.data-table thead th {
	background: rgba(63, 230, 209, 0.06);
	border-bottom: 1px solid var(--line-3);
	color: var(--core);
	font-family: var(--font-px);
	font-size: 13px;
	font-weight: 400;
	letter-spacing: 0.08em;
	white-space: nowrap;
}

.prose tbody th,
.data-table tbody th {
	color: var(--heading);
	font-weight: 700;
}

.prose tbody tr,
.data-table tbody tr {
	transition: background 0.2s;
}

.prose tbody tr:hover,
.data-table tbody tr:hover {
	background: rgba(63, 230, 209, 0.04);
}

.wp-block-table {
	overflow-x: auto;
}

.table-scroll {
	margin: 0 0 8px;
	overflow-x: auto;
	-webkit-overflow-scrolling: touch;
	border: 1px solid var(--line);
	background: var(--surface);
}

.table-scroll .data-table tr:last-child th,
.table-scroll .data-table tr:last-child td {
	border-bottom: 0;
}

/* ブロックスタイル: ボックス */
.is-style-ck-point,
.is-style-ck-warn,
.is-style-ck-memo {
	--tone: var(--core);
	position: relative;
	margin: 2em 0;
	padding: 20px 24px 20px 26px;
	background: color-mix(in srgb, var(--tone) 8%, transparent);
	border: 1px solid color-mix(in srgb, var(--tone) 34%, transparent);
	border-left: 3px solid var(--tone);
}

.is-style-ck-warn {
	--tone: var(--ember);
}

.is-style-ck-memo {
	--tone: var(--ore);
}

.is-style-ck-point > :first-child,
.is-style-ck-warn > :first-child,
.is-style-ck-memo > :first-child {
	margin-top: 0;
}

.is-style-ck-point > :last-child,
.is-style-ck-warn > :last-child,
.is-style-ck-memo > :last-child {
	margin-bottom: 0;
}

.is-style-ck-point strong,
.is-style-ck-warn strong,
.is-style-ck-memo strong {
	background: none;
}

.is-style-ck-point > p:first-child > strong:only-child,
.is-style-ck-warn > p:first-child > strong:only-child,
.is-style-ck-memo > p:first-child > strong:only-child {
	color: var(--tone);
	font-family: var(--font-px);
	font-weight: 400;
	letter-spacing: 0.06em;
}

/* 手順リスト */
ol.is-style-ck-steps {
	counter-reset: step;
	margin: 1.8em 0;
	padding: 0;
	list-style: none;
}

ol.is-style-ck-steps > li {
	position: relative;
	margin: 0;
	padding: 4px 0 26px 60px;
	counter-increment: step;
}

ol.is-style-ck-steps > li::before {
	position: absolute;
	left: 0;
	top: 0;
	display: grid;
	place-items: center;
	width: 40px;
	height: 40px;
	background: var(--bg-3);
	border: 1px solid var(--core);
	box-shadow: var(--core-glow);
	color: var(--core);
	font-family: var(--font-num);
	font-size: 14px;
	content: counter(step, decimal-leading-zero);
}

ol.is-style-ck-steps > li:not(:last-child)::after {
	position: absolute;
	left: 19px;
	top: 46px;
	bottom: 6px;
	width: 2px;
	background: repeating-linear-gradient(180deg, var(--line-3) 0 6px, transparent 6px 12px);
	content: "";
}

/* チェックリスト */
ul.is-style-ck-check {
	margin: 1.4em 0;
	padding: 0;
	list-style: none;
}

ul.is-style-ck-check > li {
	position: relative;
	padding-left: 32px;
}

ul.is-style-ck-check > li::before {
	position: absolute;
	left: 0;
	top: 0.5em;
	width: 18px;
	height: 18px;
	background: var(--core-a);
	border: 1px solid var(--core);
	content: "";
}

ul.is-style-ck-check > li::after {
	position: absolute;
	left: 6px;
	top: calc(0.5em + 3px);
	width: 6px;
	height: 10px;
	border: solid var(--core);
	border-width: 0 2px 2px 0;
	transform: rotate(45deg);
	content: "";
}

/* データ表スタイル */
.is-style-ck-data table th {
	width: 30%;
	background: var(--tint);
}

/* 目次 */
.toc {
	margin: 0 0 2.4em;
}

.toc__title {
	padding: 16px 22px;
	color: var(--heading);
	font-family: var(--font-px);
	font-size: 15px;
	letter-spacing: 0.08em;
	cursor: pointer;
	list-style: none;
}

.toc__title::-webkit-details-marker {
	display: none;
}

.toc__title::before {
	display: inline-block;
	margin-right: 10px;
	color: var(--core);
	font-family: var(--font-num);
	font-size: 10px;
	content: "INDEX";
	letter-spacing: 0.2em;
}

.toc__title::after {
	float: right;
	color: var(--ink-3);
	content: "−";
}

.toc details:not([open]) .toc__title::after {
	content: "+";
}

.toc__list {
	margin: 0;
	padding: 0 22px 20px 48px;
	font-size: 14.5px;
	line-height: 1.7;
	counter-reset: toc;
	list-style: none;
}

.toc__item {
	position: relative;
	margin: 6px 0;
	counter-increment: toc;
}

.toc__item:not(.toc__item--h3)::before {
	position: absolute;
	left: -28px;
	top: 0.25em;
	color: var(--core);
	font-family: var(--font-num);
	font-size: 10px;
	content: counter(toc, decimal-leading-zero);
}

.toc__sub {
	margin: 4px 0 8px;
	padding-left: 1em;
	list-style: none;
}

.toc__item--h3 {
	font-size: 13.5px;
	counter-increment: none;
}

/* 本文（.prose）のリスト指定より優先させる */
.toc .toc__list {
	padding: 0 22px 20px 52px;
}

.toc .toc__sub {
	padding-left: 1em;
}

.toc__item--h3::before {
	margin-right: 8px;
	color: var(--ink-3);
	content: "—";
}

.toc a {
	color: var(--ink-2);
	text-decoration: none;
}

.toc a:hover {
	color: var(--heading);
}

.in-article,
.after-article {
	margin: 2em 0;
}

/* 関連記事 */
.related {
	margin-top: 64px;
}

.related__title {
	margin: 0 0 20px;
	color: var(--heading);
	font-family: var(--font-px);
	font-size: 22px;
	font-weight: 400;
	letter-spacing: 0.04em;
}

.related__title::before {
	display: block;
	margin-bottom: 6px;
	color: var(--core);
	font-family: var(--font-num);
	font-size: 10px;
	letter-spacing: 0.3em;
	content: "RELATED";
}

.post-navigation .nav-links,
.data-pager {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 14px;
	margin-top: 56px;
}

.post-navigation a,
.data-pager a {
	display: block;
	height: 100%;
	padding: 18px 22px;
	color: var(--heading);
	font-size: 14px;
	font-weight: 700;
	text-decoration: none;
}

.post-navigation a:hover,
.data-pager a:hover {
	--br: var(--core);
	border-color: var(--line-2);
}

.post-navigation a span,
.data-pager a span {
	display: block;
	margin-bottom: 4px;
	color: var(--core);
	font-family: var(--font-num);
	font-size: 10px;
	font-weight: 400;
	letter-spacing: 0.2em;
}

.post-navigation .nav-next,
.data-pager__next {
	text-align: right;
}

/* ---------- 一覧 ---------- */

.archive__head,
.data-head {
	position: relative;
	margin: 24px 0 48px;
}

.archive__title,
.data-head__title {
	margin: 6px 0 14px;
	font-family: var(--font-px);
	font-size: clamp(30px, 5vw, 56px);
	font-weight: 400;
	line-height: 1.25;
	letter-spacing: 0.04em;
}

.archive__lead,
.data-head__lead {
	max-width: 44em;
	margin: 0;
	color: var(--ink-2);
}

.data-head__label {
	margin: 0;
	color: var(--core);
	font-family: var(--font-num);
	font-size: 11px;
	letter-spacing: 0.3em;
}

.data-head__label::before {
	display: inline-block;
	width: 24px;
	height: 1px;
	margin-right: 10px;
	background: var(--core);
	vertical-align: middle;
	content: "";
}

/* 一覧ページ上部の見出し部分 */
.page-band {
	position: relative;
	z-index: 1;
	padding-bottom: 32px;
	margin-bottom: 48px;
	border-bottom: 1px solid var(--line);
}

.page-band .data-head,
.page-band .archive__head {
	margin-bottom: 0;
}

/* 背景の巨大な英字 */
.data-head::after {
	position: absolute;
	right: 0;
	top: -16px;
	z-index: -1;
	color: rgba(11, 125, 113, 0.05);
	font-family: var(--font-num);
	font-size: clamp(72px, 14vw, 200px);
	line-height: 1;
	content: attr(data-word);
	pointer-events: none;
	white-space: nowrap;
}

.pagination .nav-links {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 6px;
	margin-top: 48px;
}

.pagination .page-numbers {
	display: grid;
	place-items: center;
	min-width: 44px;
	height: 44px;
	padding: 0 14px;
	border: 1px solid var(--line-2);
	color: var(--ink-2);
	font-family: var(--font-num);
	font-size: 13px;
	text-decoration: none;
}

.pagination a.page-numbers:hover {
	border-color: var(--core);
	color: var(--heading);
}

.pagination .current {
	background: var(--core);
	border-color: var(--core);
	color: var(--on-core);
}

.data-hits {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	margin: 0 0 32px;
	padding: 0;
	list-style: none;
}

.data-hits a {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	padding: 10px 16px;
	color: var(--heading);
	font-weight: 700;
	text-decoration: none;
}

.data-hits a:hover {
	--br: var(--core);
}

/* ---------- サイドバー ---------- */

.sidebar {
	position: relative;
}

.sidebar .widget {
	margin-bottom: 20px;
	padding: 22px;
}

.widget__title {
	margin: 0 0 14px;
	color: var(--heading);
	font-family: var(--font-px);
	font-size: 16px;
	font-weight: 400;
	letter-spacing: 0.06em;
}

.widget__title::before {
	display: inline-block;
	width: 6px;
	height: 6px;
	margin-right: 10px;
	background: var(--core);
	box-shadow: var(--core-glow);
	vertical-align: 3px;
	content: "";
}

.widget__lead {
	margin: -6px 0 10px;
	color: var(--ink-3);
	font-size: 12.5px;
	line-height: 1.6;
}

.sidebar ul {
	margin: 0;
	padding: 0;
	list-style: none;
}

.sidebar li a {
	display: flex;
	align-items: center;
	gap: 12px;
	padding: 11px 2px;
	border-bottom: 1px solid var(--line);
	color: var(--ink);
	font-size: 14px;
	text-decoration: none;
	transition: color 0.2s, padding 0.3s var(--ease);
}

.sidebar li:last-child a {
	border-bottom: 0;
}

.sidebar li a:hover {
	padding-left: 8px;
	color: var(--heading);
}

.side-links img {
	padding: 4px;
	background: var(--well);
	border: 1px solid var(--line);
	box-sizing: content-box;
}

.sidebar .side-cats a,
.sidebar .side-posts a,
.sidebar .side-cmts a {
	justify-content: space-between;
}

.sidebar .side-posts a,
.sidebar .side-cmts a {
	flex-direction: column;
	align-items: flex-start;
	gap: 4px;
}

.side-count {
	flex: none;
	color: var(--core);
	font-family: var(--font-num);
	font-size: 10px;
	letter-spacing: 0.1em;
}

.side-meta {
	color: var(--ink-3);
	font-size: 11.5px;
	line-height: 1.6;
}

.side-cmts__text {
	line-height: 1.6;
}

@media (min-width: 1080px) {
	.sidebar {
		padding-top: 72px;
	}
}

/* ---------- データページ共通 ---------- */

.data-hero {
	position: relative;
	z-index: 0;
	display: flex;
	align-items: center;
	gap: 28px;
	margin: 20px 0 32px;
	padding: 32px;
	overflow: hidden;
}

.data-hero::before {
	position: absolute;
	left: -80px;
	top: 50%;
	z-index: -1;
	width: 360px;
	height: 360px;
	background: radial-gradient(circle, var(--hero-glow, rgba(63, 230, 209, 0.22)), transparent 65%);
	content: "";
	transform: translateY(-50%);
}

.data-hero--biome {
	--hero-glow: color-mix(in srgb, var(--biome) 40%, transparent);
}

.data-hero__icon {
	flex: none;
	display: grid;
	place-items: center;
	width: 120px;
	height: 120px;
	background: var(--well);
	/* ゲーム内メニューの枠 */
	border: 8px solid transparent;
	border-image: url("../img/game/ui/32x32_menu_border.png") 6 fill / 8px / 0 stretch;
	box-shadow: 0 0 40px rgba(63, 230, 209, 0.2);
	image-rendering: pixelated;
}

.data-hero__icon--item {
	border-image-source: url("../img/game/ui/32x32_itemui_border.png");
}

.data-hero__icon--biome {
	background: var(--biome);
}

.data-hero__no {
	color: var(--heading);
	font-family: var(--font-num);
	font-size: 40px;
}

.data-hero__label {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 10px;
	margin: 0 0 6px;
	color: var(--core);
	font-family: var(--font-num);
	font-size: 11px;
	letter-spacing: 0.2em;
}

.data-hero__label a {
	color: var(--core);
	font-family: var(--font);
	font-size: 13px;
	letter-spacing: 0.08em;
}

.data-hero__title {
	margin: 0;
	font-family: var(--font-px);
	font-size: clamp(28px, 4.2vw, 44px);
	font-weight: 400;
	line-height: 1.3;
	letter-spacing: 0.04em;
}

.data-hero__en {
	display: block;
	margin-top: 6px;
	color: var(--ink-3);
	font-family: var(--font);
	font-size: 14px;
	letter-spacing: 0.08em;
}

.data-hero__lead {
	margin: 14px 0 0;
	color: var(--ink-2);
}

@media (max-width: 600px) {
	.data-hero {
		flex-direction: column;
		align-items: flex-start;
		padding: 24px;
	}

	.data-hero__icon {
		width: 96px;
		height: 96px;
	}
}

.data-section {
	margin-top: 8px;
}

.data-note {
	margin: 10px 0 0;
	color: var(--ink-3);
	font-size: 12.5px;
	line-height: 1.8;
}

.data-table--spec th {
	width: 34%;
	color: var(--ink-2) !important;
	font-weight: 500 !important;
}

.data-table--loot tr.is-guaranteed {
	background: var(--ore-a);
}

.cell-link {
	display: inline-flex;
	align-items: center;
	gap: 12px;
	color: var(--heading);
	text-decoration: none;
}

.cell-link:hover {
	color: var(--core);
}

.cell-icon {
	display: inline-grid;
	place-items: center;
	width: 30px;
	height: 30px;
	margin-right: 10px;
	vertical-align: middle;
	background: var(--well);
	border: 1px solid var(--line);
}

.cell-link .cell-icon {
	margin-right: 0;
}

.cell-icon--plain {
	background: none;
	border: 0;
}

.ingame-text,
.prose blockquote.ingame-text {
	position: relative;
	margin: 0 0 32px;
	padding: 22px 26px 16px 52px;
	background:
		linear-gradient(180deg, var(--core-a), transparent),
		var(--surface);
	border: 1px solid var(--line-2);
	border-left: 3px solid var(--core);
	color: var(--ink);
	font-family: var(--font-px);
	font-size: 16px;
	line-height: 1.9;
	letter-spacing: 0.04em;
}

.ingame-text::before {
	position: absolute;
	left: 22px;
	top: 18px;
	color: var(--core);
	font-family: var(--font-num);
	font-size: 22px;
	content: "\"";
}

.ingame-text p {
	margin: 0;
}

.ingame-text cite {
	display: block;
	margin-top: 10px;
	color: var(--ink-3);
	font-family: var(--font-num);
	font-size: 9px;
	font-style: normal;
	letter-spacing: 0.24em;
	text-align: right;
}

.ingame-text cite::before {
	content: "— IN-GAME TEXT / ";
}

.howto {
	margin: 0 0 32px;
	padding: 24px 28px;
}

.howto__title {
	margin: 0 0 10px;
	color: var(--heading);
	font-family: var(--font-px);
	font-size: 17px;
	font-weight: 400;
}

.howto__list {
	margin: 0;
	padding-left: 1.4em;
	color: var(--ink-2);
}

.howto__list ::marker {
	color: var(--core);
	font-family: var(--font-num);
}

.howto strong {
	color: var(--heading);
}

.data-table-wrap {
	margin-top: 8px;
}

.soon {
	margin-top: 32px;
}

.icon-compare {
	display: flex;
	gap: 24px;
}

.icon-compare__item {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 8px;
	color: var(--ink-2);
	font-size: 13px;
}

.icon-compare__box {
	display: grid;
	place-items: center;
	width: 72px;
	height: 72px;
	background: var(--well);
	border: 1px solid var(--line-2);
}

/* スキル */
.skill-grid {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(270px, 1fr));
	gap: 14px;
	margin: 0;
	padding: 0;
	list-style: none;
}

.prose .skill-grid li + li {
	margin-top: 0;
}

.skill-card {
	position: relative;
	display: flex;
	gap: 16px;
	height: 100%;
	padding: 20px;
	color: var(--ink);
	text-decoration: none;
	overflow: hidden;
}

.skill-card::after {
	position: absolute;
	left: 0;
	bottom: 0;
	width: 100%;
	height: 2px;
	background: linear-gradient(90deg, var(--core), var(--ore));
	content: "";
	transform: scaleX(0);
	transform-origin: left;
	transition: transform 0.6s var(--ease);
}

.skill-card:hover {
	--br: var(--core);
	color: var(--ink);
	transform: translateY(-3px);
}

.skill-card:hover::after {
	transform: scaleX(1);
}

.skill-card__icon {
	flex: none;
	display: grid;
	place-items: center;
	width: 56px;
	height: 56px;
	background: radial-gradient(circle, rgba(63, 230, 209, 0.22), transparent 70%), var(--well);
	border: 1px solid var(--line-2);
	transition: box-shadow 0.3s;
}

.skill-card:hover .skill-card__icon {
	box-shadow: var(--core-glow);
}

.skill-card__body {
	display: flex;
	flex-direction: column;
	gap: 4px;
	min-width: 0;
}

.skill-card__name {
	color: var(--heading);
	font-family: var(--font-px);
	font-size: 18px;
	letter-spacing: 0.06em;
}

.skill-card__gain {
	color: var(--ink-2);
	font-size: 13px;
	line-height: 1.7;
}

.data-hero__icon--skill {
	background: var(--well);
}

/* ボス一覧 */
.boss-list {
	display: grid;
	gap: 12px;
	margin: 0;
	padding: 0;
	list-style: none;
	counter-reset: none;
}

.prose .boss-list li + li {
	margin-top: 0;
}

.boss-row__link {
	display: flex;
	align-items: center;
	gap: 22px;
	padding: 18px 24px;
	color: var(--ink);
	text-decoration: none;
}

.boss-row__link:hover {
	--br: var(--core);
	border-color: var(--line-2);
	color: var(--ink);
	transform: translateX(6px);
}

.boss-row__order {
	flex: none;
	width: 40px;
	color: var(--core);
	font-family: var(--font-num);
	font-size: 22px;
	text-align: center;
}

.boss-row__link > .boss-icon {
	padding: 6px;
	background: radial-gradient(circle, rgba(63, 230, 209, 0.16), transparent 70%), var(--well);
	border: 1px solid var(--line);
	box-sizing: content-box;
}

.boss-row__main {
	display: flex;
	flex: 1;
	flex-direction: column;
	min-width: 0;
}

.boss-row__name {
	color: var(--heading);
	font-family: var(--font-px);
	font-size: 19px;
	letter-spacing: 0.04em;
}

.boss-row__en {
	color: var(--ink-3);
	font-size: 12px;
}

.boss-row__sum {
	margin-top: 6px;
	color: var(--ink-2);
	font-size: 13.5px;
	line-height: 1.7;
}

.boss-row__sum:empty {
	display: none;
}

.boss-row__area {
	flex: none;
	padding: 4px 12px;
	background: color-mix(in srgb, var(--biome) 20%, transparent);
	border: 1px solid color-mix(in srgb, var(--biome) 60%, transparent);
	color: var(--heading);
	font-size: 12px;
	font-weight: 700;
}

@media (max-width: 640px) {
	.boss-row__link {
		flex-wrap: wrap;
		gap: 12px 14px;
		padding: 16px;
	}

	.boss-row__order {
		width: 28px;
		font-size: 16px;
	}

	.boss-row__main {
		flex-basis: calc(100% - 120px);
	}

	.boss-row__area {
		margin-left: 42px;
	}
}

.mini-bosses {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
	gap: 12px;
	margin: 0;
	padding: 0;
	list-style: none;
}

.mini-bosses a {
	display: flex;
	align-items: center;
	gap: 14px;
	height: 100%;
	padding: 16px;
	color: var(--ink);
	text-decoration: none;
}

.mini-bosses a:hover {
	--br: var(--core);
}

.mini-bosses strong {
	color: var(--heading);
}

.mini-bosses small {
	display: block;
	color: var(--ink-2);
	font-size: 12.5px;
	line-height: 1.6;
}

/* バイオーム一覧 */
.biome-list {
	display: grid;
	gap: 14px;
	margin: 0;
	padding: 0;
	list-style: none;
}

.biome-card__link {
	position: relative;
	display: flex;
	gap: 22px;
	padding: 24px;
	overflow: hidden;
	color: var(--ink);
	text-decoration: none;
}

.biome-card__link::before {
	position: absolute;
	inset: 0;
	z-index: -1;
	background: linear-gradient(90deg, color-mix(in srgb, var(--biome) 22%, transparent), transparent 60%);
	content: "";
	transition: opacity 0.4s;
}

.biome-card__link:hover {
	--br: var(--biome);
	color: var(--ink);
	transform: translateX(6px);
}

.biome-card__no {
	flex: none;
	display: grid;
	place-items: center;
	width: 56px;
	height: 56px;
	background: var(--biome);
	box-shadow: 0 0 24px color-mix(in srgb, var(--biome) 50%, transparent);
	color: var(--heading);
	font-family: var(--font-num);
	font-size: 22px;
}

.biome-card__body {
	display: flex;
	flex-direction: column;
	gap: 2px;
}

.biome-card__name {
	display: flex;
	align-items: center;
	gap: 10px;
	color: var(--heading);
	font-family: var(--font-px);
	font-size: 22px;
	letter-spacing: 0.04em;
}

.biome-card__icon {
	display: inline-grid;
	place-items: center;
	width: 28px;
	height: 28px;
	background: rgba(0, 0, 0, 0.35);
	border: 1px solid rgba(255, 255, 255, 0.14);
}

.biome-card__en {
	color: var(--ink-3);
	font-size: 12px;
}

.biome-card__sum {
	margin-top: 6px;
	color: var(--ink-2);
	font-size: 14px;
	line-height: 1.75;
}

.biome-card__bosses {
	margin-top: 8px;
	color: var(--core);
	font-size: 13px;
	font-weight: 700;
}

/* ---------- アイテム ---------- */

.item-icon--none {
	display: inline-block;
	background: var(--bg-3);
	border: 1px dashed var(--line-2);
}

.item-grid {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(210px, 1fr));
	gap: 8px;
	margin: 0 0 32px;
	padding: 0;
	list-style: none;
}

.item-grid--compact {
	grid-template-columns: repeat(auto-fill, minmax(190px, 1fr));
}

.item-link {
	position: relative;
	display: flex;
	align-items: center;
	gap: 12px;
	height: 100%;
	padding: 8px 12px 8px 8px;
	background: var(--surface);
	border: 1px solid var(--line);
	color: var(--ink);
	font-size: 14px;
	font-weight: 500;
	line-height: 1.45;
	text-decoration: none;
	transition: border-color 0.2s, background 0.2s, transform 0.2s var(--ease);
}

.item-link::before {
	position: absolute;
	left: -1px;
	top: -1px;
	bottom: -1px;
	width: 2px;
	background: var(--rarity, var(--r-common));
	box-shadow: 0 0 10px var(--rarity, transparent);
	content: "";
}

.item-link:hover {
	background: color-mix(in srgb, var(--rarity, #fff) 10%, var(--bg-2));
	border-color: color-mix(in srgb, var(--rarity, #fff) 50%, transparent);
	color: var(--heading);
	transform: translateY(-2px);
}

.item-link .item-icon {
	flex: none;
	padding: 4px;
	background: radial-gradient(circle at 50% 60%, color-mix(in srgb, var(--rarity, #fff) 24%, transparent), transparent 70%), var(--well);
	border: 1px solid var(--line);
	box-sizing: content-box;
}

.item-link__name {
	min-width: 0;
}

/* 表の中・文中ではコンパクトに */
.data-table .item-link {
	display: inline-flex;
	padding: 4px 12px 4px 4px;
	background: transparent;
	border: 0;
}

.data-table .item-link::before {
	display: none;
}

.data-table .item-link:hover {
	transform: none;
}

.rarity--1 { --rarity: var(--r-poor); }
.rarity-0 { --rarity: var(--r-common); }
.rarity-1 { --rarity: var(--r-uncommon); }
.rarity-2 { --rarity: var(--r-rare); }
.rarity-3 { --rarity: var(--r-epic); }
.rarity-4 { --rarity: var(--r-legend); }

.rarity-bg--1 { --hero-glow: rgba(138, 151, 150, 0.28); }
.rarity-bg-1 { --hero-glow: rgba(95, 211, 107, 0.3); }
.rarity-bg-2 { --hero-glow: rgba(79, 155, 255, 0.34); }
.rarity-bg-3 { --hero-glow: rgba(176, 123, 255, 0.36); }
.rarity-bg-4 { --hero-glow: rgba(255, 165, 58, 0.36); }

.data-hero__icon--item[class*="rarity-bg-"] {
	box-shadow: 0 0 48px var(--hero-glow, rgba(63, 230, 209, 0.2));
}

.rarity-tag {
	display: inline-block;
	padding: 0 10px;
	background: color-mix(in srgb, var(--rarity) 18%, transparent);
	border: 1px solid var(--rarity);
	color: var(--rarity);
	font-family: var(--font);
	font-size: 12px;
	font-weight: 700;
	line-height: 1.9;
	letter-spacing: 0.08em;
}

.recipe {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
	margin: 0;
	padding: 0;
	list-style: none;
}

.recipe .item-link {
	padding-right: 16px;
}

.recipe__n {
	margin-left: 8px;
	color: var(--core);
	font-family: var(--font-num);
	font-size: 14px;
}

.cat-chips {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	margin: 0 0 32px;
}

.cat-chip {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	padding: 7px 14px;
	border: 1px solid var(--line-2);
	color: var(--ink-2);
	font-size: 13px;
	text-decoration: none;
	transition: all 0.2s;
}

.cat-chip span {
	color: var(--ink-3);
	font-family: var(--font-num);
	font-size: 10px;
}

.cat-chip:hover {
	border-color: var(--core);
	color: var(--heading);
}

.cat-chip.is-current {
	background: var(--core);
	border-color: var(--core);
	color: var(--on-core);
	font-weight: 700;
}

.cat-chip.is-current span {
	color: var(--core-3);
}

/* カテゴリカード：インベントリ風 */
.cat-cards {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
	gap: 14px;
	margin-bottom: 32px;
}

.cat-cards--front {
	grid-template-columns: repeat(3, minmax(0, 1fr));
}

@media (max-width: 860px) {
	.cat-cards--front {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

.cat-card {
	position: relative;
	display: grid;
	grid-template-columns: minmax(0, 1fr) auto;
	align-items: center;
	gap: 16px 12px;
	padding: 18px;
	color: var(--ink);
	text-decoration: none;
}

.cat-card:hover {
	--br: var(--core);
	border-color: var(--line-2);
	color: var(--ink);
	transform: translateY(-4px);
}

.cat-card__icons {
	grid-column: 1 / -1;
	display: flex;
	gap: 6px;
}

.cat-card__icons > .item-icon,
.cat-card__slot {
	display: grid;
	place-items: center;
	width: 52px;
	height: 52px;
	background: radial-gradient(circle at 50% 60%, color-mix(in srgb, var(--rarity, #fff) 18%, transparent), transparent 70%), var(--well);
	border: 1px solid var(--line);
	transition: transform 0.4s var(--ease);
}

.cat-cards:not(.cat-cards--front) .cat-card__icons {
	overflow: hidden;
	-webkit-mask-image: linear-gradient(90deg, #000 78%, transparent);
	mask-image: linear-gradient(90deg, #000 78%, transparent);
}

.cat-cards:not(.cat-cards--front) .cat-card__icons > .item-icon {
	flex: none;
	width: 42px !important;
	height: 42px !important;
	padding: 6px;
}

.cat-card:hover .cat-card__slot:nth-child(1) { transform: translateY(-3px); transition-delay: 0s; }
.cat-card:hover .cat-card__slot:nth-child(2) { transform: translateY(-3px); transition-delay: 0.05s; }
.cat-card:hover .cat-card__slot:nth-child(3) { transform: translateY(-3px); transition-delay: 0.1s; }
.cat-card:hover .cat-card__slot:nth-child(4) { transform: translateY(-3px); transition-delay: 0.15s; }

.cat-card__name {
	color: var(--heading);
	font-family: var(--font-px);
	font-size: 18px;
	letter-spacing: 0.04em;
}

.cat-card__count {
	grid-column: 1;
	margin-top: -12px;
	color: var(--core);
	font-family: var(--font-num);
	font-size: 11px;
	letter-spacing: 0.1em;
}

.cat-card__go {
	display: grid;
	place-items: center;
	width: 32px;
	height: 32px;
	border: 1px solid var(--line-2);
	color: var(--core);
	transition: all 0.3s var(--ease);
}

.cat-card:hover .cat-card__go {
	background: var(--core);
	color: var(--on-core);
}

.item-search {
	position: relative;
	margin: 0 0 24px;
}

.item-search__input {
	width: 100%;
	padding: 18px 20px 18px 52px;
	background-color: var(--surface);
	color: var(--heading);
	font: inherit;
	font-size: 17px;
	outline: 0;
}

.item-search::before {
	position: absolute;
	left: 20px;
	top: 21px;
	z-index: 1;
	width: 18px;
	height: 18px;
	background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='18' height='18' viewBox='0 0 24 24'%3E%3Cpath fill='%233fe6d1' d='M10 2a8 8 0 0 1 6.3 12.9l5.4 5.4-1.4 1.4-5.4-5.4A8 8 0 1 1 10 2Zm0 2a6 6 0 1 0 0 12 6 6 0 0 0 0-12Z'/%3E%3C/svg%3E") center / contain no-repeat;
	content: "";
	pointer-events: none;
}

.item-search__input::placeholder {
	color: var(--ink-3);
}

.item-search__input:focus {
	--br: var(--core);
	border-color: var(--core);
	box-shadow: 0 0 0 4px rgba(63, 230, 209, 0.1), 0 20px 50px -24px rgba(63, 230, 209, 0.5);
}

.item-search__results {
	margin-top: 14px;
}

.item-search__empty {
	color: var(--ink-3);
}

/* インラインのリンクチップ（ショートコード） */
.chip {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	margin: 0 2px;
	padding: 1px 12px 1px 3px;
	background: var(--bg-3);
	border: 1px solid var(--line-2);
	color: var(--heading);
	font-weight: 700;
	line-height: 1.7;
	text-decoration: none;
	vertical-align: baseline;
}

.chip:hover {
	border-color: var(--core);
	color: var(--heading);
}

.chip__icon {
	display: inline-grid;
	place-items: center;
	width: 24px;
	height: 24px;
}

.chip__icon--dark {
	background: var(--well);
}

.chip__dot {
	width: 10px;
	height: 10px;
	margin-left: 6px;
}

.inline-icon {
	vertical-align: middle;
}

/* ---------- 検索フォーム / 404 ---------- */

.search-form {
	display: flex;
	max-width: 560px;
	margin: 24px 0;
	padding: 6px;
	background: var(--surface);
	border: 1px solid var(--line-2);
}

.search-form:focus-within {
	border-color: var(--core);
}

.search-form input {
	flex: 1;
	min-width: 0;
	padding: 10px 14px;
	background: transparent;
	border: 0;
	outline: 0;
	color: var(--heading);
	font: inherit;
	font-size: 16px;
}

.search-form button {
	padding: 10px 22px;
}

.notfound {
	padding-top: 96px;
	text-align: center;
}

.notfound .search-form {
	margin: 32px auto;
}

.notfound > .item-icon {
	padding: 28px;
	background: radial-gradient(circle, rgba(63, 230, 209, 0.25), transparent 70%);
	box-sizing: content-box;
	animation: core-breathe 4s ease-in-out infinite;
}

.notfound__title {
	margin: 16px 0;
	font-family: var(--font-px);
	font-size: clamp(26px, 4vw, 40px);
	font-weight: 400;
}

.notfound__title::before {
	display: block;
	margin-bottom: 8px;
	color: var(--core);
	font-family: var(--font-num);
	font-size: 12px;
	letter-spacing: 0.3em;
	content: "ERROR 404";
}

.notfound > p {
	color: var(--ink-2);
}

.notfound__links {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 8px 24px;
	padding: 0;
	list-style: none;
}

/* ---------- フッター ---------- */

.site-footer {
	position: relative;
	z-index: 1;
	padding: 96px 0 56px;
	/* 横だけ切り抜く（上のギザギザは見せる） */
	overflow-x: clip;
	margin-top: 40px;
	color: var(--ink-3);
	font-size: 13px;
}

.site-footer::after {
	position: absolute;
	inset: 0;
	z-index: -1;
	background: linear-gradient(180deg, transparent, rgba(30, 184, 166, 0.06) 60%, rgba(30, 184, 166, 0.14));
	content: "";
	pointer-events: none;
}

.site-footer__glow {
	position: absolute;
	left: 50%;
	bottom: 0;
	width: 900px;
	max-width: 100%;
	height: 260px;
	background: radial-gradient(ellipse 50% 100% at 50% 100%, rgba(63, 230, 209, 0.26), transparent 70%);
	transform: translateX(-50%);
	pointer-events: none;
}

.site-footer__inner {
	display: grid;
	gap: 40px;
}

@media (min-width: 800px) {
	.site-footer__inner {
		grid-template-columns: 1fr auto;
	}

	.rights {
		grid-column: 1 / -1;
	}
}

.site-footer__depth {
	margin: 0 0 12px;
	color: var(--core);
	font-family: var(--font-num);
	font-size: 10px;
	letter-spacing: 0.3em;
}

.site-footer__name {
	margin: 0;
	color: var(--heading);
	font-family: var(--font-px);
	font-size: 28px;
	letter-spacing: 0.06em;
}

.site-footer__desc {
	margin: 6px 0 0;
}

.site-footer__nav {
	display: flex;
	gap: 48px;
}

.footer-menu {
	display: flex;
	flex-direction: column;
	gap: 8px;
	margin: 0;
	padding: 0;
	list-style: none;
}

.footer-menu a {
	color: var(--ink-2);
	text-decoration: none;
}

.footer-menu a:hover {
	color: var(--core);
}

.rights {
	position: relative;
	padding-top: 24px;
	border-top: 1px solid var(--line);
	line-height: 1.9;
}

.rights p {
	margin: 0 0 6px;
}

.rights a {
	color: var(--core);
}

.rights__copy {
	color: var(--ink-3);
	font-size: 12px;
}

@media (max-width: 600px) {
	.site-footer {
		padding-top: 72px;
		padding-bottom: 40px;
	}

	.site-footer__nav {
		gap: 32px;
	}
}

/* ---------- 深度計（右端・スクロール量） ---------- */

.depth {
	position: fixed;
	right: 14px;
	top: 50%;
	z-index: 90;
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 10px;
	padding: 12px 6px;
	background: var(--surface);
	border: 1px solid var(--line);
	color: var(--ink-3);
	font-family: var(--font-num);
	font-size: 9px;
	letter-spacing: 0.2em;
	transform: translateY(-50%);
	pointer-events: none;
	opacity: 0;
	transition: opacity 0.6s;
}

.depth.is-on {
	opacity: 1;
}

.depth__label {
	writing-mode: vertical-rl;
}

.depth__track {
	position: relative;
	width: 2px;
	height: 160px;
	background: repeating-linear-gradient(180deg, var(--line-2) 0 1px, transparent 1px 10px);
}

.depth__fill {
	position: absolute;
	left: 0;
	top: 0;
	width: 2px;
	height: 100%;
	background: var(--core);
	box-shadow: var(--core-glow);
	transform: scaleY(var(--p, 0));
	transform-origin: top;
}

.depth__val {
	color: var(--core);
	font-variant-numeric: tabular-nums;
	writing-mode: vertical-rl;
}

@media (max-width: 1360px) {
	.depth {
		display: none;
	}
}

/* ---------- スクロールで現れる ---------- */

.js [data-reveal] {
	opacity: 0;
	transform: translateY(28px);
	transition: opacity 0.9s var(--ease), transform 0.9s var(--ease);
	transition-delay: var(--d, 0s);
}

.js [data-reveal].is-in {
	opacity: 1;
	transform: none;
}

/* 本文中に置いた一覧ショートコードはインデントしない */
.prose .skill-grid,
.prose .boss-list,
.prose .item-grid {
	padding-left: 0;
}

/* ---------- みんなの情報・コメント ---------- */

.cmt-area {
	margin: 64px 0 32px;
	padding: 32px;
}

.cmt-area__title {
	margin: 0 0 10px;
	color: var(--heading);
	font-family: var(--font-px);
	font-size: 24px;
	font-weight: 400;
	letter-spacing: 0.04em;
}

.cmt-area__title::before {
	display: block;
	margin-bottom: 6px;
	color: var(--core);
	font-family: var(--font-num);
	font-size: 10px;
	letter-spacing: 0.3em;
	content: "COMMENTS";
}

.cmt-area__lead,
.cmt-area__empty,
.cmt-area__closed {
	margin: 0 0 20px;
	color: var(--ink-2);
	font-size: 14px;
	line-height: 1.8;
}

.cmt-area__lead strong {
	color: var(--heading);
}

.cmt-area__count {
	margin: 0 0 8px;
	color: var(--core);
	font-family: var(--font-num);
	font-size: 10px;
	letter-spacing: 0.2em;
}

.cmt-list,
.cmt-list .children {
	margin: 0;
	padding: 0;
	list-style: none;
}

.cmt-list .children {
	margin-left: 20px;
	padding-left: 16px;
	border-left: 1px dashed var(--line-3);
}

.cmt__body {
	padding: 18px 0;
	border-bottom: 1px solid var(--line);
}

.cmt__meta {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 6px 12px;
	font-size: 13px;
}

.cmt__name {
	color: var(--heading);
	font-weight: 700;
}

.cmt__badge {
	padding: 0 8px;
	border: 1px solid var(--line-2);
	color: var(--ink-2);
	font-size: 11px;
	line-height: 1.9;
}

.cmt__badge--staff {
	background: var(--core);
	border-color: var(--core);
	color: var(--on-core);
	font-weight: 700;
}

.cmt__date {
	color: var(--ink-3);
	font-family: var(--font-num);
	font-size: 10px;
	letter-spacing: 0.08em;
}

.cmt__pending {
	margin: 10px 0 0;
	padding: 8px 12px;
	background: var(--ore-a);
	border: 1px solid rgba(243, 182, 72, 0.4);
	color: var(--ore);
	font-size: 13px;
}

.cmt__text {
	color: var(--ink);
	font-size: 15px;
	line-height: 1.85;
	overflow-wrap: anywhere;
}

.cmt__text p {
	margin: 8px 0 0;
}

.cmt__reply {
	margin: 8px 0 0;
	font-size: 13px;
}

.cmt-form {
	display: flex;
	flex-wrap: wrap;
	gap: 0 16px;
}

.cmt-form > * {
	flex: 1 1 100%;
}

.comment-respond {
	margin-top: 28px;
	padding-top: 24px;
	border-top: 1px solid var(--line-2);
}

.cmt-form__title {
	margin: 0 0 10px;
	color: var(--heading);
	font-family: var(--font-px);
	font-size: 18px;
	font-weight: 400;
}

.cmt-form__title small {
	margin-left: 8px;
	font-size: 13px;
}

.cmt-rules {
	margin: 0 0 20px;
	padding: 14px 16px 14px 34px;
	background: var(--core-a);
	border: 1px solid rgba(63, 230, 209, 0.24);
	color: var(--ink-2);
	font-size: 13px;
	line-height: 1.8;
}

.cmt-rules ::marker {
	color: var(--core);
}

.cmt-form__field {
	margin: 0 0 16px;
}

.cmt-form__field--half {
	flex: 1 1 220px;
}

.cmt-form__field label {
	display: block;
	margin-bottom: 6px;
	color: var(--heading);
	font-size: 14px;
	font-weight: 700;
}

.cmt-form__req,
.cmt-form__opt {
	margin-left: 6px;
	color: var(--ink-3);
	font-size: 12px;
	font-weight: 400;
}

.cmt-form__field input,
.cmt-form__field textarea {
	width: 100%;
	padding: 12px 14px;
	background: var(--field);
	border: 1px solid var(--line-2);
	border-radius: 0;
	color: var(--heading);
	font: inherit;
	font-size: 16px;
	transition: border-color 0.2s, box-shadow 0.2s;
}

.cmt-form__field input::placeholder,
.cmt-form__field textarea::placeholder {
	color: var(--ink-3);
}

.cmt-form__field input:focus,
.cmt-form__field textarea:focus {
	border-color: var(--core);
	outline: 0;
	box-shadow: 0 0 0 3px rgba(63, 230, 209, 0.12);
}

/* ボット対策の入力欄（人には見せない） */
.cmt-form__hp {
	position: absolute !important;
	left: -9999px;
	width: 1px;
	height: 1px;
	overflow: hidden;
}

.cmt-form .form-submit {
	margin: 6px 0 0;
}

@media (max-width: 600px) {
	.cmt-area {
		padding: 22px;
	}
}

/* ---------- 動きを減らす設定 ---------- */

@media (prefers-reduced-motion: reduce) {
	*,
	*::before,
	*::after {
		animation-duration: 0.01ms !important;
		animation-iteration-count: 1 !important;
		transition-duration: 0.01ms !important;
		scroll-behavior: auto !important;
	}

	.js [data-reveal] {
		opacity: 1;
		transform: none;
	}

	.torch,
	.hero__spores {
		display: none;
	}
}

/* ---------- スマホでの密度調整 ---------- */

@media (max-width: 600px) {
	.cat-card {
		padding: 14px;
	}

	.cat-card__go {
		display: none;
	}

	.cat-card__name {
		font-size: 15px;
		letter-spacing: 0;
	}

	.cat-cards--front .cat-card__slot {
		width: 40px;
		height: 40px;
	}

	.cat-cards--front .cat-card__slot .item-icon {
		width: 24px !important;
		height: 24px !important;
	}

	/* トップのスキルは 2 列のコンパクト表示 */
	.front .skill-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 10px;
	}

	.front .skill-card {
		align-items: center;
		gap: 10px;
		padding: 12px;
	}

	.front .skill-card__icon {
		width: 38px;
		height: 38px;
	}

	.front .skill-card__icon img {
		width: 22px !important;
		height: 22px !important;
	}

	.front .skill-card__gain {
		display: none;
	}

	.front .skill-card__name {
		font-size: 15px;
		letter-spacing: 0;
	}
}

/* ---------- スクロールバー ---------- */

html {
	scrollbar-color: var(--core-3) var(--void);
	scrollbar-width: thin;
}

::-webkit-scrollbar {
	width: 10px;
	height: 10px;
}

::-webkit-scrollbar-track {
	background: var(--void);
}

::-webkit-scrollbar-thumb {
	background: var(--core-3);
	border: 2px solid var(--void);
}

::-webkit-scrollbar-thumb:hover {
	background: var(--core-2);
}

/* ---------- お問い合わせフォーム（Contact Form 7） ---------- */

.contact-form {
	margin-top: 32px;
	padding: 32px;
	background: var(--surface);
	border: 1px solid var(--line);
	border-top: 3px solid var(--core);
}

.ck-cf {
	display: grid;
	gap: 20px;
}

.ck-cf__row {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 20px;
}

@media (max-width: 600px) {
	.contact-form {
		padding: 22px 18px;
	}

	.ck-cf__row {
		grid-template-columns: minmax(0, 1fr);
	}
}

.ck-cf__field label {
	display: block;
	margin-bottom: 6px;
	color: var(--heading);
	font-size: 14px;
	font-weight: 700;
}

.ck-cf__req,
.ck-cf__opt {
	margin-left: 6px;
	font-size: 12px;
	font-weight: 400;
}

.ck-cf__req {
	color: var(--ember);
}

.ck-cf__opt {
	color: var(--ink-3);
}

.ck-cf .wpcf7-form-control-wrap {
	display: block;
}

.ck-cf input[type="text"],
.ck-cf input[type="email"],
.ck-cf input[type="url"],
.ck-cf select,
.ck-cf textarea {
	width: 100%;
	padding: 12px 14px;
	background: var(--field);
	border: 1px solid var(--line-2);
	border-radius: 0;
	color: var(--ink);
	font: inherit;
	font-size: 16px;
	transition: border-color 0.2s, box-shadow 0.2s;
}

.ck-cf select {
	appearance: none;
	padding-right: 40px;
	background-image: linear-gradient(45deg, transparent 50%, var(--ink-2) 50%), linear-gradient(135deg, var(--ink-2) 50%, transparent 50%);
	background-position: calc(100% - 20px) 50%, calc(100% - 14px) 50%;
	background-size: 6px 6px;
	background-repeat: no-repeat;
}

.ck-cf textarea {
	min-height: 180px;
	resize: vertical;
}

.ck-cf input::placeholder,
.ck-cf textarea::placeholder {
	color: var(--ink-3);
}

.ck-cf input:focus,
.ck-cf select:focus,
.ck-cf textarea:focus {
	border-color: var(--core);
	outline: 0;
	box-shadow: 0 0 0 3px var(--core-a);
}

.ck-cf .wpcf7-not-valid {
	border-color: var(--ember);
}

.ck-cf .wpcf7-not-valid-tip {
	display: block;
	margin-top: 6px;
	color: var(--ember);
	font-size: 13px;
}

.ck-cf__consent {
	font-size: 14px;
}

.ck-cf__consent .wpcf7-list-item {
	margin: 0;
}

.ck-cf__consent label {
	display: flex;
	align-items: flex-start;
	gap: 10px;
	cursor: pointer;
}

.ck-cf__consent input[type="checkbox"] {
	flex: none;
	width: 18px;
	height: 18px;
	margin-top: 4px;
	accent-color: var(--core);
}

/* ボット対策の入力欄（人には見せない） */
.ck-cf__hp {
	position: absolute !important;
	left: -9999px;
	width: 1px;
	height: 1px;
	overflow: hidden;
}

.ck-cf__submit {
	display: flex;
	align-items: center;
	gap: 12px;
}

.ck-cf .wpcf7-submit:disabled {
	opacity: 0.5;
	cursor: not-allowed;
}

.ck-cf .wpcf7-spinner {
	margin: 0;
}

.contact-form .wpcf7-response-output {
	margin: 20px 0 0 !important;
	padding: 12px 16px !important;
	border: 1px solid var(--line-2) !important;
	border-left-width: 3px !important;
	font-size: 14px;
}

.contact-form .wpcf7 form.sent .wpcf7-response-output {
	background: var(--core-a);
	border-color: var(--core) !important;
	color: var(--heading);
}

.contact-form .wpcf7 form.invalid .wpcf7-response-output,
.contact-form .wpcf7 form.unaccepted .wpcf7-response-output,
.contact-form .wpcf7 form.failed .wpcf7-response-output,
.contact-form .wpcf7 form.spam .wpcf7-response-output,
.contact-form .wpcf7 form.aborted .wpcf7-response-output {
	background: var(--ember-a);
	border-color: var(--ember) !important;
	color: var(--heading);
}

/* ---------- アイテム図鑑：トップ（大分類ごとのカテゴリ） ---------- */

.item-group {
	margin-top: 56px;
	scroll-margin-top: calc(var(--header-h) + 16px);
}

.item-group__title {
	display: flex;
	align-items: center;
	gap: 12px;
	margin: 0 0 18px;
	padding-bottom: 12px;
	border-bottom: 1px solid var(--line-2);
	color: var(--heading);
	font-family: var(--font-px);
	font-size: clamp(22px, 2.6vw, 28px);
	font-weight: 400;
}

.item-group__icon {
	display: grid;
	place-items: center;
	width: 48px;
	height: 48px;
	background: var(--well);
	border: 1px solid var(--line);
}

.item-group__count {
	margin-left: auto;
	color: var(--ink-3);
	font-family: var(--font);
	font-size: 13px;
}

.item-group .cat-cards {
	grid-template-columns: repeat(auto-fill, minmax(270px, 1fr));
}

.cat-card--hub {
	display: flex;
	flex-direction: column;
	gap: 12px;
	padding: 0;
}

.cat-card--hub .cat-card__icons {
	grid-column: 1 / -1;
}

.cat-card--hub .cat-card__main {
	display: grid;
	grid-template-columns: minmax(0, 1fr) auto;
	align-items: center;
	gap: 12px;
	padding: 18px 18px 0;
	color: var(--ink);
	text-decoration: none;
}

.cat-card--hub .cat-card__main:hover .cat-card__name {
	color: var(--core);
}

.cat-card--hub .cat-card__count {
	grid-column: 2;
	margin: 0;
	align-self: center;
}

.cat-card__subs {
	display: flex;
	flex-wrap: wrap;
	gap: 6px;
	margin: 0;
	padding: 0 18px 18px;
	list-style: none;
}

.cat-card__subs a {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	padding: 3px 10px;
	background: var(--tint);
	border: 1px solid var(--line);
	color: var(--ink-2);
	font-size: 12.5px;
	text-decoration: none;
}

.cat-card__subs a:hover {
	border-color: var(--core);
	color: var(--core);
}

.cat-card__subs span,
.sub-toc span {
	color: var(--ink-3);
	font-family: var(--font-num);
	font-size: 10px;
}

/* ページ内の目次（小分類へのジャンプ） */
.sub-toc {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	margin: 0 0 32px;
}

.sub-toc a {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	padding: 7px 14px;
	background: var(--surface);
	border: 1px solid var(--line-2);
	color: var(--ink);
	font-size: 13.5px;
	text-decoration: none;
}

.sub-toc a:hover {
	border-color: var(--core);
	color: var(--core);
}

.cat-chips--siblings {
	margin: 24px 0 0;
}

/* ---------- アイテム図鑑：カテゴリ一覧 ---------- */

.item-filter {
	position: sticky;
	top: calc(var(--header-h) + 8px);
	z-index: 20;
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 10px 20px;
	margin: 0 0 20px;
	padding: 12px 16px;
	background: var(--surface);
	border: 1px solid var(--line-2);
	box-shadow: 0 8px 24px -16px rgba(28, 38, 41, 0.35);
}

.admin-bar .item-filter {
	top: calc(var(--header-h) + 40px);
}

.item-filter__q {
	flex: 1 1 260px;
}

.item-filter input[type="search"],
.item-filter select {
	width: 100%;
	padding: 9px 12px;
	background: var(--field);
	border: 1px solid var(--line-2);
	border-radius: 0;
	color: var(--ink);
	font: inherit;
	font-size: 15px;
}

.item-filter input[type="search"]:focus,
.item-filter select:focus {
	border-color: var(--core);
	outline: 0;
	box-shadow: 0 0 0 3px var(--core-a);
}

.item-filter__sel {
	display: flex;
	align-items: center;
	gap: 8px;
	font-size: 13px;
	white-space: nowrap;
}

.item-filter__sel select {
	width: auto;
}

.item-filter__check {
	display: flex;
	align-items: center;
	gap: 6px;
	font-size: 13.5px;
	cursor: pointer;
}

.item-filter__check input {
	width: 16px;
	height: 16px;
	accent-color: var(--core);
}

.item-filter__count {
	margin: 0 0 0 auto;
	color: var(--ink-2);
	font-size: 13px;
}

.item-filter__count span {
	color: var(--core);
	font-family: var(--font-num);
	font-size: 15px;
}

.item-filter__empty {
	padding: 24px;
	color: var(--ink-2);
	text-align: center;
}

.item-sec {
	margin-bottom: 40px;
	scroll-margin-top: calc(var(--header-h) + 90px);
}

.item-sec__title {
	display: flex;
	align-items: baseline;
	gap: 12px;
}

.item-sec__count {
	color: var(--ink-3);
	font-family: var(--font);
	font-size: 13px;
	letter-spacing: 0;
}

/* アイテムの一覧表 */
.item-table-wrap {
	background: var(--surface);
	border: 1px solid var(--line);
}

.item-table {
	width: 100%;
	border-collapse: collapse;
	font-size: 14px;
	line-height: 1.5;
}

.item-table thead th {
	padding: 10px 14px;
	background: var(--core-a);
	border-bottom: 1px solid var(--line-3);
	color: var(--core);
	font-family: var(--font-px);
	font-size: 13px;
	font-weight: 400;
	letter-spacing: 0.06em;
	text-align: left;
	white-space: nowrap;
}

.item-table tbody th,
.item-table tbody td {
	padding: 8px 14px;
	border-bottom: 1px solid var(--line);
	text-align: left;
	vertical-align: middle;
}

.item-table tbody tr:last-child th,
.item-table tbody tr:last-child td {
	border-bottom: 0;
}

.item-table tbody tr {
	transition: background 0.15s;
}

.item-table tbody tr:hover {
	background: var(--core-a);
}

.item-table tbody th {
	position: relative;
	min-width: 220px;
	font-weight: 400;
}

.item-table tbody th::before {
	position: absolute;
	left: 0;
	top: 6px;
	bottom: 6px;
	width: 3px;
	background: var(--rarity, var(--r-common));
	content: "";
}

.item-table__item {
	display: flex;
	align-items: center;
	gap: 12px;
	color: var(--heading);
	font-weight: 700;
	text-decoration: none;
}

.item-table__item:hover {
	color: var(--core);
}

.item-table__icon {
	flex: none;
	display: grid;
	place-items: center;
	width: 44px;
	height: 44px;
	background: radial-gradient(circle at 50% 60%, color-mix(in srgb, var(--rarity, #fff) 24%, transparent), transparent 70%), var(--well);
	border: 1px solid var(--line);
}

.item-table__name small {
	display: block;
	color: var(--ink-3);
	font-size: 11.5px;
	font-weight: 400;
}

.item-table__rarity {
	width: 1%;
	white-space: nowrap;
}

.item-table__src {
	width: 1%;
	white-space: nowrap;
}

.item-table__none {
	color: var(--ink-3);
}

.mat-list {
	display: flex;
	flex-wrap: wrap;
	gap: 4px 6px;
	margin: 0;
	padding: 0;
	list-style: none;
}

.mat {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	padding: 2px 8px 2px 2px;
	background: var(--tint);
	border: 1px solid var(--line);
	color: var(--ink);
	font-size: 12.5px;
	text-decoration: none;
	white-space: nowrap;
}

.mat:hover {
	border-color: var(--core);
	color: var(--core);
}

.mat .item-icon {
	padding: 2px;
	background: var(--well);
	box-sizing: content-box;
}

.mat__n {
	color: var(--core);
	font-family: var(--font-num);
	font-size: 11px;
}

.src-tag {
	display: inline-block;
	margin: 2px 4px 2px 0;
	padding: 0 8px;
	border: 1px solid var(--line-2);
	font-size: 11.5px;
	line-height: 1.9;
	white-space: nowrap;
}

.src-tag--craft {
	border-color: color-mix(in srgb, var(--core) 50%, transparent);
	color: var(--core);
}

.src-tag--drop {
	border-color: color-mix(in srgb, var(--ore) 50%, transparent);
	color: var(--ore);
}

/* スマホ：表の行をカードに */
@media (max-width: 720px) {
	.item-table thead {
		display: none;
	}

	.item-table,
	.item-table tbody {
		display: block;
	}

	.item-table tbody tr {
		display: grid;
		grid-template-columns: auto minmax(0, 1fr);
		grid-template-areas: "name name" "rarity src" "recipe recipe";
		align-items: center;
		gap: 6px 10px;
		padding: 10px 12px;
		border-bottom: 1px solid var(--line);
	}

	.item-table tbody th {
		grid-area: name;
	}

	.item-table td.item-table__rarity {
		grid-area: rarity;
	}

	.item-table td.item-table__src {
		grid-area: src;
	}

	.item-table td.item-table__recipe {
		grid-area: recipe;
	}

	.item-table td.item-table__recipe:has(.item-table__none) {
		display: none;
	}

	.sub-toc {
		flex-wrap: nowrap;
		overflow-x: auto;
		margin-right: calc(var(--gutter) * -1);
		padding-bottom: 6px;
		scrollbar-width: thin;
	}

	.sub-toc a {
		flex: none;
	}

	.item-table tbody th,
	.item-table tbody td {
		padding: 0;
		border: 0;
	}

	.item-table tbody th {
		min-width: 0;
	}

	.item-table tbody th::before {
		left: -12px;
		top: 0;
		bottom: 0;
	}

	.item-table__rarity,
	.item-table__src {
		width: auto;
	}

	.item-filter {
		position: static;
	}

	.item-filter__count {
		margin-left: 0;
	}
}

/* ---------- アイテム詳細 ---------- */

.page-toc {
	display: flex;
	flex-wrap: wrap;
	gap: 6px;
	margin: -12px 0 8px;
}

.page-toc a {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	padding: 5px 12px;
	background: var(--surface);
	border: 1px solid var(--line-2);
	color: var(--ink);
	font-size: 13px;
	text-decoration: none;
}

.page-toc a:hover {
	border-color: var(--core);
	color: var(--core);
}

.page-toc span {
	color: var(--core);
	font-family: var(--font-num);
	font-size: 10px;
}

.entry--item .data-section {
	scroll-margin-top: calc(var(--header-h) + 16px);
}

.data-table__num {
	color: var(--core);
	font-family: var(--font-num);
	white-space: nowrap;
}

details.more > summary {
	display: inline-block;
	margin-bottom: 12px;
	padding: 8px 16px;
	background: var(--surface);
	border: 1px solid var(--line-2);
	color: var(--core);
	font-weight: 700;
	cursor: pointer;
	list-style: none;
}

details.more > summary::-webkit-details-marker {
	display: none;
}

details.more > summary::before {
	margin-right: 8px;
	content: "＋";
}

details.more[open] > summary::before {
	content: "−";
}

/* 同じ種類のアイテム（ナビボックス） */
.navbox {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(180px, 1fr));
	gap: 6px;
	margin: 0;
	padding: 0;
	list-style: none;
}

.navbox__item {
	display: flex;
	align-items: center;
	gap: 10px;
	height: 100%;
	padding: 6px 10px 6px 6px;
	background: var(--surface);
	border: 1px solid var(--line);
	color: var(--ink);
	font-size: 13px;
	line-height: 1.4;
	text-decoration: none;
}

.navbox__item .item-icon {
	flex: none;
	padding: 3px;
	background: var(--well);
	box-sizing: content-box;
}

.navbox__item:hover {
	border-color: var(--core);
	color: var(--core);
}

.navbox .is-current .navbox__item {
	background: var(--core-a);
	border-color: var(--core);
	color: var(--heading);
	font-weight: 700;
}

/* ---------- アイテム図鑑：トップ（参考：Fandom の Item categories） ---------- */

.hub-sec {
	margin-top: 56px;
}

.hub-sec__title {
	display: flex;
	align-items: baseline;
	gap: 4px;
	margin: 0 0 18px;
	padding-bottom: 12px;
	border-bottom: 1px solid var(--line-2);
	color: var(--heading);
	font-family: var(--font-px);
	font-size: clamp(22px, 2.6vw, 28px);
	font-weight: 400;
}

.hub-sec__count {
	color: var(--ink-3);
	font-family: var(--font);
	font-size: 15px;
}

.hub-sec__lead {
	margin: -6px 0 18px;
	color: var(--ink-2);
	font-size: 14px;
}

/* よく見られるカテゴリ */
.pop-cats {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 12px;
	margin: 0;
	padding: 0;
	list-style: none;
}

@media (min-width: 720px) {
	.pop-cats {
		grid-template-columns: repeat(4, minmax(0, 1fr));
		gap: 16px;
	}
}

.pop-cat {
	display: flex;
	flex-direction: column;
	height: 100%;
	color: var(--ink);
	text-decoration: none;
}

.pop-cat__icons {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 2px;
	padding: 12px;
	background:
		radial-gradient(120% 90% at 50% 110%, color-mix(in srgb, var(--core) 30%, transparent), transparent 70%),
		var(--well);
	border: 1px solid var(--line-2);
	transition: border-color 0.3s var(--ease);
}

.pop-cat__slot {
	display: grid;
	place-items: center;
	min-width: 0;
	aspect-ratio: 1;
	transition: transform 0.3s var(--ease);
}

.pop-cat__slot .item-icon {
	width: min(32px, 100%) !important;
	height: auto !important;
	aspect-ratio: 1;
	object-fit: contain;
}

.pop-cat__name {
	margin-top: 10px;
	color: var(--heading);
	font-family: var(--font-px);
	font-size: 17px;
	line-height: 1.35;
	transition: color 0.2s;
}

.pop-cat__count {
	color: var(--ink-3);
	font-size: 12.5px;
}

.pop-cat:hover .pop-cat__icons {
	border-color: var(--core);
}

.pop-cat:hover .pop-cat__name {
	color: var(--core);
}

.pop-cat:hover .pop-cat__slot:nth-child(odd) {
	transform: translateY(-3px);
}

/* 五十音の移動 */
.kana-jump {
	display: flex;
	flex-wrap: wrap;
	gap: 4px;
	margin-bottom: 8px;
}

.kana-jump a,
.kana-jump span {
	display: grid;
	place-items: center;
	min-width: 40px;
	height: 36px;
	padding: 0 8px;
	border: 1px solid var(--line-2);
	background: var(--surface);
	color: var(--heading);
	font-family: var(--font-px);
	font-size: 15px;
	text-decoration: none;
}

.kana-jump span {
	border-color: var(--line);
	background: transparent;
	color: var(--ink-3);
	opacity: 0.5;
}

.kana-jump a:hover {
	border-color: var(--core);
	background: var(--core);
	color: var(--on-core);
}

/* 五十音順の一覧 */
.kana-index__row {
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	gap: 4px 24px;
	padding: 20px 0;
	border-bottom: 1px solid var(--line);
	scroll-margin-top: calc(var(--header-h) + 16px);
}

@media (min-width: 720px) {
	.kana-index__row {
		grid-template-columns: 56px minmax(0, 1fr);
	}
}

.kana-index__head {
	margin: 0;
	color: var(--core);
	font-family: var(--font-px);
	font-size: 26px;
	font-weight: 400;
	line-height: 1.2;
}

.kana-index__list {
	columns: 240px auto;
	column-gap: 20px;
	margin: 0;
	padding: 0;
	list-style: none;
}

.kana-index__list li {
	break-inside: avoid;
}

.kana-link {
	display: flex;
	align-items: center;
	gap: 10px;
	padding: 5px 4px;
	border-bottom: 1px dashed var(--line);
	color: var(--ink);
	font-size: 14.5px;
	line-height: 1.4;
	text-decoration: none;
}

.kana-link__icon {
	display: grid;
	flex: none;
	place-items: center;
	width: 32px;
	height: 32px;
	background: var(--well);
	border: 1px solid var(--line);
}

.kana-link__name {
	flex: 1;
	min-width: 0;
}

.kana-link__count {
	color: var(--ink-3);
	font-family: var(--font-num);
	font-size: 10px;
}

.kana-link:hover {
	color: var(--core);
}

.kana-link:hover .kana-link__icon {
	border-color: var(--core);
}

/* 分類から探す（大分類の表） */
.group-table {
	width: 100%;
	border-collapse: collapse;
	border: 1px solid var(--line-2);
	background: var(--surface);
	font-size: 14px;
}

.group-table tr {
	scroll-margin-top: calc(var(--header-h) + 16px);
}

.group-table th,
.group-table td {
	padding: 10px 14px;
	border-bottom: 1px solid var(--line);
	text-align: left;
	vertical-align: middle;
}

.group-table th {
	width: 1%;
	background: var(--bg-3);
	color: var(--heading);
	font-family: var(--font-px);
	font-weight: 400;
	white-space: nowrap;
}

.group-table__icon {
	display: inline-grid;
	place-items: center;
	width: 32px;
	height: 32px;
	margin-right: 8px;
	background: var(--well);
	vertical-align: middle;
}

.group-table__links {
	display: flex;
	flex-wrap: wrap;
	gap: 4px 0;
	margin: 0;
	padding: 0;
	list-style: none;
}

.group-table__links li {
	display: inline-flex;
	align-items: baseline;
	gap: 4px;
}

.group-table__links li + li::before {
	margin: 0 8px;
	color: var(--ink-3);
	content: "·";
}

.group-table__links a {
	color: var(--ink);
	font-weight: 700;
	text-decoration: none;
}

.group-table__links .group-table__sub a {
	color: var(--ink-2);
	font-weight: 400;
	font-size: 13px;
}

.group-table__links a:hover {
	color: var(--core);
	text-decoration: underline;
}

.group-table__links li > span {
	color: var(--ink-3);
	font-family: var(--font-num);
	font-size: 10px;
}

@media (max-width: 719px) {
	.group-table,
	.group-table tbody,
	.group-table tr,
	.group-table th,
	.group-table td {
		display: block;
		width: auto;
	}

	.group-table th {
		border-bottom: 0;
	}
}

/* ---------- トップ：ポータル（参考：Core Keeper Wiki（Fandom）のトップ） ---------- */

.portal {
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	gap: 24px;
	padding-top: clamp(40px, 6vw, 72px);
	scroll-margin-top: var(--header-h);
}

@media (min-width: 1080px) {
	.portal {
		grid-template-columns: minmax(0, 1fr) 320px;
		align-items: start;
		gap: 28px;
	}
}

.portal__main,
.portal__side {
	display: grid;
	gap: 24px;
	min-width: 0;
}

.portal-pair {
	display: grid;
	gap: 24px;
}

@media (min-width: 720px) {
	.portal-pair {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

.portal-box {
	min-width: 0;
}

.portal-box__head {
	display: flex;
	flex-wrap: wrap;
	align-items: baseline;
	gap: 4px 12px;
	padding: 14px 20px 12px;
	border-bottom: 1px solid var(--line-2);
	background: linear-gradient(90deg, var(--core-a), transparent 70%);
}

.portal-box__en {
	order: -1;
	flex-basis: 100%;
	color: var(--core);
	font-family: var(--font-num);
	font-size: 10px;
	letter-spacing: 0.2em;
}

.portal-box__title {
	margin: 0;
	color: var(--heading);
	font-family: var(--font-px);
	font-size: 20px;
	font-weight: 400;
	line-height: 1.3;
}

.portal-box__more {
	margin-left: auto;
	color: var(--core);
	font-size: 13px;
	text-decoration: none;
	white-space: nowrap;
}

.portal-box__more:hover {
	text-decoration: underline;
}

.portal-box__body {
	padding: 16px 20px 20px;
}

.portal-box__text {
	margin: 0 0 18px;
	color: var(--prose);
	font-size: 14.5px;
	line-height: 1.85;
}

.portal-box__note {
	margin: 0 0 10px;
	color: var(--ink-3);
	font-size: 12.5px;
}

/* ゲームの内容：アイコンのタイル */
.portal-tiles {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 8px;
	margin: 0;
	padding: 0;
	list-style: none;
}

@media (min-width: 600px) {
	.portal-tiles {
		grid-template-columns: repeat(6, minmax(0, 1fr));
	}
}

.portal-tile {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 8px;
	padding: 4px 2px 8px;
	color: var(--ink);
	font-size: 13px;
	text-align: center;
	text-decoration: none;
}

.portal-tile__icon {
	display: grid;
	place-items: center;
	width: 100%;
	max-width: 88px;
	aspect-ratio: 1;
	background:
		radial-gradient(90% 70% at 50% 100%, color-mix(in srgb, var(--core) 28%, transparent), transparent 70%),
		var(--well);
	border: 1px solid var(--line-2);
	transition: border-color 0.25s, transform 0.25s var(--ease);
}

.portal-tile:hover .portal-tile__icon {
	border-color: var(--core);
	transform: translateY(-3px);
}

.portal-tile:hover {
	color: var(--core);
}

/* リンク集（アイコン＋名前、段組み） */
.portal-links {
	columns: 140px auto;
	column-gap: 20px;
	margin: 0;
	padding: 0;
	list-style: none;
}

.portal-links--wide {
	columns: 240px auto;
}

.portal-links--one {
	columns: auto;
}

.portal-links--two {
	columns: 2;
}

.portal-links li {
	break-inside: avoid;
}

.portal-links a {
	display: flex;
	align-items: center;
	gap: 10px;
	padding: 5px 0;
	color: var(--ink);
	font-size: 14px;
	line-height: 1.4;
	text-decoration: none;
}

.portal-links a:hover {
	color: var(--core);
}

.portal-links__icon {
	display: grid;
	flex: none;
	place-items: center;
	width: 30px;
	height: 30px;
	background: var(--well);
	border: 1px solid var(--line);
	transition: border-color 0.2s;
}

.portal-links__icon .item-icon,
.portal-links__icon img {
	max-width: 24px;
	max-height: 24px;
}

.portal-links a:hover .portal-links__icon {
	border-color: var(--core);
}

.portal-links__icon--dot {
	background: transparent;
	border-color: transparent;
}

.portal-links__icon--dot::before {
	width: 6px;
	height: 6px;
	background: var(--core);
	content: "";
}

.portal-links__n {
	margin-left: auto;
	padding-left: 6px;
	color: var(--ink-3);
	font-family: var(--font-num);
	font-size: 10px;
}

.portal-group + .portal-group {
	margin-top: 14px;
	padding-top: 14px;
	border-top: 1px dashed var(--line-2);
}

.portal-group__title {
	margin: 0 0 6px;
	color: var(--heading);
	font-family: var(--font-px);
	font-size: 15px;
	font-weight: 400;
}

/* 右の列：新着など */
.portal-posts {
	margin: 0;
	padding: 0;
	list-style: none;
}

.portal-posts li + li {
	border-top: 1px solid var(--line);
}

.portal-posts a {
	display: flex;
	align-items: center;
	gap: 12px;
	padding: 10px 0;
	color: var(--ink);
	text-decoration: none;
}

.portal-posts li:first-child a {
	padding-top: 0;
}

.portal-posts__thumb {
	flex: none;
	width: 64px;
	height: 64px;
	overflow: hidden;
	background: var(--well);
}

.portal-posts__thumb img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.portal-posts__body {
	display: flex;
	flex-direction: column;
	gap: 3px;
	min-width: 0;
}

.portal-posts__title {
	font-size: 14px;
	line-height: 1.55;
}

.portal-posts a:hover .portal-posts__title {
	color: var(--core);
}

.portal-posts__date {
	color: var(--ink-3);
	font-size: 11.5px;
}

/* ---------- 2 カラム（一覧ページにもサイドバー）・サイドバーの中身 ---------- */

@media (min-width: 1080px) {
	.layout {
		grid-template-columns: minmax(0, 1fr) 300px;
		gap: 56px;
	}

	.layout--list .sidebar {
		padding-top: 0;
	}
}

.layout__main {
	min-width: 0;
}

/* 一覧ページの見出しの帯は、本文と同じ幅で区切る */
.page-band + .layout--list {
	margin-top: 0;
}

.widget__title a {
	color: inherit;
	text-decoration: none;
}

.widget__title a:hover {
	color: var(--core);
}

.side-more {
	display: inline-flex;
	gap: 6px;
	margin-top: 12px;
	color: var(--core);
	font-size: 13px;
	text-decoration: none;
}

.side-more:hover {
	text-decoration: underline;
}

/* アイテム図鑑：大分類 */
.sidebar .side-groups a {
	gap: 10px;
	padding: 6px 2px;
	font-size: 14px;
}

.side-groups__name {
	flex: 1;
	min-width: 0;
}

.side-groups__icon,
.side-bosses__icon,
.side-icons__icon {
	display: grid;
	flex: none;
	place-items: center;
	width: 30px;
	height: 30px;
	background: var(--well);
	border: 1px solid var(--line);
}

.side-icons__icon {
	width: 24px;
	height: 24px;
}

.side-icons__icon--dot {
	background: transparent;
	border-color: transparent;
}

.side-icons__icon--dot::before {
	width: 6px;
	height: 6px;
	background: var(--core);
	content: "";
}

/* ボスの攻略順 */
.sidebar .side-bosses a {
	gap: 10px;
	padding: 6px 2px;
	font-size: 13.5px;
}

.side-bosses__no {
	flex: none;
	width: 18px;
	color: var(--core);
	font-family: var(--font-num);
	font-size: 10px;
}

/* スキル・バイオーム（アイコン＋名前、2 列） */
.sidebar .side-icons {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	column-gap: 12px;
}

.sidebar .side-icons--one {
	grid-template-columns: minmax(0, 1fr);
}

.sidebar .side-icons a {
	gap: 8px;
	padding: 5px 0;
	font-size: 13px;
	white-space: nowrap;
}

.sidebar .side-icons li a {
	border-bottom: 0;
}

/* いま見ているページ */
.sidebar a.is-current {
	color: var(--core);
	font-weight: 700;
}

.sidebar ol {
	margin: 0;
	padding: 0;
	list-style: none;
}

/* =========================================================
   調べもの・ページ移動（inc/navigation.php・main.js）
   ========================================================= */

/* ヘッダー検索の候補 */
.header-search {
	position: relative;
}

.header-search input {
	width: 220px;
}

.hsearch {
	position: absolute;
	top: calc(100% + 6px);
	right: -1px;
	z-index: 120;
	width: min(420px, calc(100vw - 32px));
	max-height: min(70vh, 560px);
	margin: 0;
	padding: 4px;
	overflow-y: auto;
	background: var(--bg-2);
	border: 1px solid var(--line-3);
	box-shadow: 0 18px 40px -12px rgba(0, 0, 0, 0.6);
	list-style: none;
}

.hsearch a {
	display: flex;
	align-items: center;
	gap: 10px;
	padding: 7px 8px;
	color: var(--ink);
	font-size: 14px;
	line-height: 1.35;
	text-decoration: none;
}

.hsearch__icon {
	display: grid;
	flex: none;
	place-items: center;
	width: 32px;
	height: 32px;
	background: var(--well);
	border: 1px solid var(--line);
}

.hsearch__icon img {
	max-width: 24px;
	max-height: 24px;
}

.hsearch__name {
	display: flex;
	flex: 1;
	flex-direction: column;
	min-width: 0;
}

.hsearch__name small {
	overflow: hidden;
	color: var(--ink-3);
	font-size: 11.5px;
	text-overflow: ellipsis;
	white-space: nowrap;
}

.hsearch__type {
	flex: none;
	padding: 1px 6px;
	border: 1px solid var(--line-2);
	color: var(--ink-2);
	font-size: 11px;
}

.hsearch li.is-active a,
.hsearch a:hover {
	background: var(--core-a);
	color: var(--heading);
}

.hsearch li.is-active .hsearch__icon {
	border-color: var(--core);
}

.hsearch__all a {
	justify-content: center;
	margin-top: 2px;
	border-top: 1px solid var(--line);
	color: var(--core);
	font-size: 13px;
}

@media (max-width: 1023px) {
	.header-search input {
		width: 100%;
	}

	.hsearch {
		right: auto;
		left: -1px;
		width: calc(100% + 2px);
	}
}

/* アイテムの小窓 */
.ckg-tip {
	position: absolute;
	z-index: 200;
	width: 300px;
	padding: 14px;
	background: var(--surface);
	border: 1px solid var(--line-3);
	box-shadow: 0 16px 36px -14px rgba(15, 26, 29, 0.45);
	color: var(--ink);
	font-size: 13px;
	line-height: 1.6;
	pointer-events: none;
}

.ckg-tip__head {
	display: flex;
	align-items: center;
	gap: 12px;
}

.ckg-tip__head strong {
	display: block;
	color: var(--heading);
	font-family: var(--font-px);
	font-size: 17px;
	font-weight: 400;
	line-height: 1.3;
}

.ckg-tip__head small {
	color: var(--ink-3);
	font-size: 11.5px;
}

.ckg-tip__icon {
	display: grid;
	flex: none;
	place-items: center;
	width: 52px;
	height: 52px;
	background: radial-gradient(circle, var(--hero-glow, transparent), transparent 70%), var(--well);
	border: 1px solid var(--line-2);
}

.ckg-tip__meta {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 8px;
	margin: 10px 0 0;
	color: var(--ink-2);
	font-size: 12px;
}

.ckg-tip__desc {
	margin: 8px 0 0;
	padding: 8px 10px;
	background: var(--tint);
	border-left: 2px solid var(--line-3);
	color: var(--prose);
}

.ckg-tip__label {
	margin: 10px 0 4px;
	color: var(--ink-3);
	font-size: 11.5px;
}

.ckg-tip__recipe {
	display: grid;
	gap: 3px;
	margin: 0;
	padding: 0;
	list-style: none;
}

.ckg-tip__recipe li {
	display: flex;
	align-items: center;
	gap: 8px;
}

.ckg-tip__recipe img {
	padding: 2px;
	background: var(--well);
	box-sizing: content-box;
}

.ckg-tip__recipe span {
	flex: 1;
}

.ckg-tip__recipe b {
	color: var(--core);
	font-family: var(--font-num);
	font-size: 11px;
	font-weight: 400;
}

.ckg-tip__ways {
	margin: 10px 0 0;
}

/* 自動リンク（本文の中の言葉）：目立ちすぎない点線の下線 */
.autolink {
	color: inherit;
	text-decoration: underline dotted;
	text-decoration-color: var(--line-3);
	text-underline-offset: 3px;
}

.autolink:hover {
	color: var(--core);
	text-decoration-style: solid;
	text-decoration-color: var(--core);
}

/* 入手の印（リンク） */
a.src-tag {
	text-decoration: none;
}

a.src-tag:hover {
	background: var(--tint);
}

/* 表の並べ替えボタン */
.th-sort {
	display: inline-flex;
	align-items: center;
	gap: 4px;
	padding: 0;
	background: none;
	border: 0;
	color: inherit;
	font: inherit;
	cursor: pointer;
}

.th-sort::after {
	color: var(--ink-3);
	font-size: 10px;
	content: "↕";
}

th[aria-sort="ascending"] .th-sort::after {
	color: var(--core);
	content: "▲";
}

th[aria-sort="descending"] .th-sort::after {
	color: var(--core);
	content: "▼";
}

/* ナビボックス（ページ下部の一覧） */
.wnav {
	margin-top: 48px;
	border: 1px solid var(--line-2);
	background: var(--surface);
	font-size: 13.5px;
}

.wnav__head {
	display: flex;
	align-items: baseline;
	gap: 12px;
	margin: 0;
	padding: 10px 14px;
	background: var(--bg-3);
	border-bottom: 1px solid var(--line-2);
	color: var(--heading);
	font-family: var(--font-px);
	font-size: 16px;
}

.wnav__en {
	color: var(--core);
	font-family: var(--font-num);
	font-size: 10px;
	letter-spacing: 0.16em;
}

.wnav__group {
	margin: 0;
	padding: 6px 14px;
	background: var(--tint);
	border-bottom: 1px solid var(--line);
	color: var(--ink-2);
	font-size: 12px;
	font-weight: 700;
}

.wnav__row {
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	border-bottom: 1px solid var(--line);
}

.wnav__row:last-child {
	border-bottom: 0;
}

@media (min-width: 600px) {
	.wnav__row {
		grid-template-columns: 150px minmax(0, 1fr);
	}
}

.wnav__label {
	padding: 8px 14px;
	background: var(--bg-2);
	color: var(--heading);
	font-weight: 700;
	line-height: 1.5;
	text-decoration: none;
}

.wnav__row.is-here .wnav__label {
	background: var(--core-a);
	box-shadow: inset 3px 0 0 var(--core);
}

.wnav__label:hover {
	color: var(--core);
}

.wnav__links {
	display: flex;
	flex-wrap: wrap;
	margin: 0;
	padding: 8px 14px;
	list-style: none;
	line-height: 1.9;
}

.wnav__links li:not(:last-child)::after {
	margin: 0 7px;
	color: var(--ink-3);
	content: "·";
}

.wnav__links a {
	color: var(--ink);
	text-decoration: none;
}

.wnav__links a:hover {
	color: var(--core);
	text-decoration: underline;
}

.wnav__links strong {
	color: var(--core);
}

.wnav__links--more a {
	color: var(--core);
}

/* アイテムの分類（Wiki の「カテゴリ」欄） */
.cat-tags {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 6px;
	margin-top: 16px;
	padding: 10px 12px;
	border: 1px dashed var(--line-2);
	font-size: 13px;
}

.cat-tags__label {
	margin-right: 4px;
	color: var(--ink-3);
	font-size: 12px;
}

.cat-tags a {
	padding: 2px 10px;
	background: var(--tint);
	border: 1px solid var(--line);
	color: var(--ink);
	text-decoration: none;
}

.cat-tags a:hover {
	border-color: var(--core);
	color: var(--core);
}

/* ページ冒頭の要約（検索で知りたいことに 1〜3 文で答える。inc/item-taxonomy.php の ckg_*_summary） */
.data-summary {
	margin: 20px 0 24px;
	padding: 14px 18px;
	background: var(--surface);
	border: 1px solid var(--line);
	border-left: 3px solid var(--core);
	color: var(--prose);
	font-size: 15px;
	line-height: 1.85;
}

.data-summary a {
	font-weight: 700;
}
