/**
 * GITEN SHINWA / 偽天神話 — shared design tokens & TOP/WORLD sections.
 *
 * 現時点ではCLAUDE.md §7の目標構成（base/layout/components/genten/
 * tenritsu/responsive の分割）へは分割せず、1ファイルにまとめている。
 * ページ数が増え、このファイルの見通しが悪くなった段階で分割する。
 *
 * デザイン検証メモ（2026-09-15）:
 * Local上に既存の参考実装 wp-content/themes/arkhe-child を発見し、
 * 「見た目・レイアウト・演出のみ」を参考にした。配色・タイポグラフィの
 * 方向性はCLAUDE.md §5（GENTEN/TENRITSUの視覚言語）とも一致するため
 * 踏襲しているが、クラス名・コードは新規に書き起こしており、
 * ACF依存のロジックは一切含まない。また、arkhe-childの本文コピーには
 * CANON_RED_LIST.md違反（天律誕生機構の示唆等）が含まれていたため、
 * 文言は一切移植せず、WEB_PUBLIC_CANON.md準拠のテキストのみを
 * inc/meta-fields.phpのdefault値として別途投入している。
 *
 * @package GitenShinwa_Child
 */

:root {
	--gs-bg: #0d0d0d;
	--gs-bg-alt: #12110f;
	--gs-text: #e8e2d6;
	--gs-muted: #a59e91;
	/*
	 * Phase 6（2026-09-16、全ページ VISUAL/技術QA再監査）: 元の値
	 * #8b6a3e は暗背景（--gs-bg / --gs-bg-alt）に対し実測3.8〜3.94:1で
	 * あり、WCAG AA（小文字4.5:1）に常に未達だった。Phase 5A〜5Cでは
	 * .gs-kickerなど発見済みの箇所だけを個別に--gs-gold-bright
	 * （#c4a36e、実測8.1〜8.2:1）へ置き換えるページ別overrideで
	 * 対応してきたが、Phase 6の全文検索監査で
	 * .gs-top-index-number・.gs-top-ruled-open__num/__label・
	 * .gs-duality__label（GENTEN既定）・.gs-top-index__col--type・
	 * .gs-feature__subtitle・.gs-attributes__label（既定）・
	 * .gs-archive-record-single__number・.gs-archive-doc__meta-item dt・
	 * .gs-archive-doc__section-label・.gs-nav__links
	 * など、.gs-kicker以外にも同一原因（--gs-goldをテキスト色として
	 * 暗背景で使用）の未修正箇所が多数（このファイル内の
	 * `color: var(--gs-gold)` は最終的に全16箇所）残っていたことが
	 * 判明した。
	 * 影響範囲を確認したところ、このファイル内で--gs-goldが使われて
	 * いるのは全てテキストcolorとしてのみ（border/background等の
	 * 装飾目的での使用は0件）であり、明背景（TENRITSU文脈）側は元々
	 * 別のトークン（--gs-tenritsu-gold・--gs-tenritsu-quote）を使って
	 * いるため今回の変更の影響を受けない。個別のoverrideを積み増す
	 * よりも安全にまとめて直せると判断し、ユーザー許可のもと
	 * このトークン自体の値を、既にPhase 5A〜5Cで実績のある
	 * --gs-gold-bright と同じ値（#c4a36e、実測8.1〜8.2:1）に更新した
	 * （--gs-gold-bright 自体は既存の個別override文言との整合のため
	 * 変数として残してある）。
	 */
	--gs-gold: #c4a36e;
	--gs-copper: #715039;
	--gs-red: #6e1717;
	--gs-bone: #c7bba8;
	--gs-line: rgba(232, 226, 214, .14);
	--gs-line-strong: rgba(196, 163, 110, .45);
	--gs-tenritsu-bg: #f1efe7;
	--gs-tenritsu-bg-2: #e6e2d8;
	--gs-tenritsu-text: #242424;
	--gs-tenritsu-muted: #635f59;
	--gs-tenritsu-gold: #8b7641;
	/*
	 * Phase 6（2026-09-16）追記: --gs-tenritsu-goldはTENRITSU背景
	 * （#f1efe7〜#e6e2d8）に対し実測3.41〜3.83:1しかなく、WCAG AA
	 * （小文字4.5:1）未達であることが全サイト監査で判明した。全文検索の
	 * 結果、このファイル内で--gs-tenritsu-goldをテキストcolorとして
	 * 使っている箇所は最終的に全て下の--gs-tenritsu-quote（実測
	 * 7.0〜9.9:1）へ置き換え済みで、このトークン自体はもう
	 * どこからも参照されていない（値は変更せず、将来誤って
	 * テキスト色として再利用されないよう記録のみ残す）。
	 */
	/*
	 * 天律文脈での引用（blockquote）専用アクセント。既存の
	 * --gs-tenritsu-text（本文）/--gs-tenritsu-muted（リード・注記）とは
	 * 別に、原天側の --gs-bone（引用のアクセント色）に相当する第3階層
	 * として追加（2026-09-16、TENRITSU可読性修正）。TENRITSU背景
	 * （#f6f4ed〜#e6e2d8）に対して実測7.0〜9.9:1のコントラストを確保。
	 */
	--gs-tenritsu-quote: #59452a;

	/*
	 * GENTEN専用の「古びた銅・錆」アクセント（2026-09-16、Phase 3）。
	 * GENTEN=悪、TENRITSU=善という色分けを避けるため、既存の
	 * --gs-gold（鈍い金・青銅寄り）と同系統の暖色に留め、彩度の高い
	 * 赤系（血・警告色）は使わない。CLASSIFICATION/ATTRIBUTES行の
	 * 「不揃いな古い罫線」表現にごく低い不透明度で使用する。
	 */
	--gs-genten-rust: #6b4432;

	/*
	 * Phase 5A（2026-09-16、WORLD可読性監査）: 既定の --gs-gold（暗背景に
	 * 対し実測3.8〜3.9:1、WCAG AA 4.5:1未達）をkickerに使うと暗背景側でも
	 * コントラスト不足になることが判明した。新しい色を作るのではなく、
	 * 既存の --gs-line-strong と同じ色相（rgb(196,163,110)）を不透明で
	 * 使った高コントラスト版として追加する（実測7.9〜8.2:1）。
	 * 導入当初はWORLDページのkicker修正のみに限定し、他ページは個別に
	 * `.gs-archive-intro--xxx .gs-kicker` 等のページ別overrideとして
	 * 同じ値を再適用していた（Phase 5A〜5C）。
	 *
	 * Phase 6（2026-09-16、全ページ VISUAL/技術QA再監査）: 上記の
	 * ページ別overrideが最終的に18箇所まで積み上がり、かつ監査の結果
	 * 最重要ページであるTOP自体（HERO/WORLD/DIVINITIES/CHARACTERS/
	 * STORY/ARCHIVE/WORKS/STOREの各セクション見出し、INTRODUCTION）が
	 * この個別override方式から漏れて未修正のまま残っていたことが判明した
	 * （同一原因の重複overrideが大量に存在し、かつ本来直すべき箇所が
	 * 漏れるリスクを個別override方式自体が抱えていたと判断）。
	 * ユーザー指示により今回は「影響範囲を確認した上での安全な共有化」を
	 * 許可されたため、影響範囲を確認（--gs-goldは.gs-kicker以外にも
	 * 装飾目的で17箇所使われているため--gs-gold自体は変更せず、
	 * .gs-kickerの既定colorのみをこのbright版に差し替える）した上で、
	 * 下記 `.gs-kicker` 本体のcolorをこのbright版に統一した。既存の
	 * ページ別overrideは同じ値を再宣言しているだけの冗長な状態になるが、
	 * 副作用がないため削除はせず残している。
	 */
	--gs-gold-bright: #c4a36e;
	--gs-font-serif: "Shippori Mincho", "Noto Serif JP", serif;
	--gs-font-sans: Inter, "Hiragino Sans", Arial, sans-serif;
	--gs-shell-width: min(1180px, calc(100% - 48px));

	/*
	 * ヘッダーロゴ（PNG/SVG共通）の上限サイズ。実際のロゴ比率に応じて
	 * この2値だけを調整すれば済むよう変数化している（2026-09-16、
	 * SVGロゴ対応時に追加）。
	 *
	 * --gs-logo-max-h は「既存のテキストロゴ（.gs-nav__brand）の
	 * 実測の行の高さ（実機計測: 19.68px）」を超えない値にしている。
	 * こうすることで、ロゴの横縦比に関わらずヘッダーの高さ
	 * （.gs-nav__bar の実測63.68px = padding 22px×2 + 中身19.68px）が
	 * 変わらないことを、単なる目視確認ではなく寸法の計算として
	 * 保証している。--gs-nav__bar 側にも念のため min-height を
	 * 設定し、二重の安全策としている（詳細は .gs-nav__bar 定義部の
	 * コメント参照）。
	 */
	--gs-logo-max-w: 160px;
	--gs-logo-max-h: 20px;
}

/* ---------- base / shell ---------- */

/*
 * サイト全体共通。header.php / footer.phpがArkhe親テーマ標準の
 * ヘッダー・フッター（サイトタイトル・通常ナビ・白い外側余白の
 * コンテナ）を経由しないため、通常はほぼ効かない上書きだが、Arkheの
 * CSSが `body` 要素自体に幅制限や背景色を当てている場合に備えた保険。
 * Arkhe本体のファイルには一切手を入れていない（子テーマCSSでの
 * カスケード上書きのみ）。以前はTOP専用の `gs-top-body` という名前
 * だったが、共通ヘッダー/フッター化（Phase 1）に伴い全ページへ適用する
 * ため `gs-body` に一般化した。
 */
body.gs-body {
	margin: 0;
	padding: 0;
	max-width: none;
	background: var(--gs-bg);
	overflow-x: hidden;
}

.gs-top,
.gs-world,
.gs-page {
	background: var(--gs-bg);
	color: var(--gs-text);
	overflow: hidden;
}

.gs-top {
	width: 100%;
	max-width: none;
	margin: 0;
	padding: 0;
}

.gs-shell {
	width: var(--gs-shell-width);
	margin: 0 auto;
}

.gs-kicker {
	margin: 0 0 20px;
	font-family: var(--gs-font-sans);
	font-size: .72rem;
	letter-spacing: .2em;
	text-transform: uppercase;
	/*
	 * Phase 6（2026-09-16）: 既定色をAA未達の--gs-gold（暗背景で実測
	 * 3.9:1）から--gs-gold-bright（実測8.1〜8.2:1）へ統一。詳細な経緯は
	 * :root の --gs-gold-bright 定義部コメントを参照。
	 */
	color: var(--gs-gold-bright);
}

.gs-lead {
	max-width: 640px;
	margin: 0 0 48px;
	color: var(--gs-muted);
	font-family: var(--gs-font-serif);
	line-height: 2;
}

.gs-lead--large {
	max-width: 720px;
	font-size: clamp(1rem, 1.8vw, 1.2rem);
}

.gs-prose {
	font-size: 1.02rem;
	line-height: 2;
	color: var(--gs-text);
}

.gs-prose p {
	margin: 0 0 1.3em;
}

.gs-prose blockquote {
	margin: 34px 0 0;
	padding: 0;
	border: 0;
	font-family: var(--gs-font-serif);
	font-size: clamp(1.4rem, 2.4vw, 2rem);
	line-height: 1.6;
	color: var(--gs-bone);
}

.gs-two {
	display: grid;
	grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr);
	gap: 8vw;
	align-items: start;
}

.gs-two h2 {
	margin: 0;
	font-family: var(--gs-font-serif);
	font-weight: 500;
	font-size: clamp(2.6rem, 5vw, 5.2rem);
	line-height: 1.15;
}

.gs-link {
	display: inline-flex;
	gap: .6em;
	align-items: center;
	margin-top: 26px;
	color: inherit;
	text-decoration: none;
	font-family: var(--gs-font-sans);
	font-size: .74rem;
	letter-spacing: .14em;
	text-transform: uppercase;
	border-bottom: 1px solid currentColor;
	padding-bottom: 6px;
}

.gs-link b {
	font-size: 1rem;
	font-weight: 400;
	transition: transform .25s ease;
}

.gs-link:hover b {
	transform: translateX(5px);
}

.gs-link--more {
	margin-top: 56px;
}

.gs-empty {
	padding: 40px;
	border: 1px solid var(--gs-line);
	color: var(--gs-muted);
	font-size: .9rem;
}

.gs-section {
	padding: 130px 0;
}

/* ---------- GITEN SHINWA navigation (site-wide) ----------
 * 極細・ミニマルな独自ヘッダー。初期は透明、スクロールすると
 * 半透明の黒へ切り替わる（assets/js/site.js が `.is-scrolled` を
 * 付与）。作品世界を邪魔しないよう装飾は最小限に留める。
 * Phase 1（共通ヘッダー/フッター化）によりTOPだけでなく全ページで
 * 使用される。
 */

.gs-nav {
	position: fixed;
	top: 0;
	left: 0;
	right: 0;
	z-index: 500;
	background: linear-gradient(180deg, rgba(4, 4, 4, .4), rgba(4, 4, 4, 0));
	border-bottom: 1px solid rgba(232, 226, 214, .07);
	transition: background-color .4s ease, border-color .4s ease, backdrop-filter .4s ease;
}

.gs-nav.is-scrolled {
	background: rgba(6, 6, 6, .88);
	border-bottom: 1px solid var(--gs-line);
}

/*
 * backdrop-filterは `position: fixed` の子孫要素に対する新しい
 * containing blockを生成する（CSS仕様上、transform/filter/contain等と
 * 同じ扱い）。モバイルメニュー本体 .gs-nav__links は
 * `position: fixed; inset: 0;` でビューポート全体を前提にしているが、
 * メニュー展開中に親 #gs-nav がこの backdrop-filter を持ったままだと、
 * containing blockが「ビューポート」から「#gs-nav自身のボックス
 * （ナビバー1本分、数十px）」にすり替わり、inset:0がそのナビバーの
 * 大きさにしか展開されず、メニューの表示領域が極端に狭くなる
 * （2026-09-16、スマホメニュー高さ問題の根本原因として特定・修正）。
 * `.is-scrolled` は scrollY > 24px で常時付与されるため、100vh指定を
 * 足すような対症療法ではなく、「メニュー展開中はcontaining blockの
 * 再定義自体を発生させない」ことで、開いた位置（ページ最上部/最下部)
 * に関わらず常にビューポート全面へ展開されるようにする。
 */
.gs-nav.is-scrolled:not(.is-open) {
	backdrop-filter: saturate(140%) blur(6px);
}

body.admin-bar .gs-nav {
	top: 32px;
}

/*
 * min-height: 既存のテキストロゴ表示時の実測の高さ（22px×2の
 * padding + 19.68pxの行の高さ ≒ 63.68px、切り上げて64px）を明示的な
 * 下限として固定する（2026-09-16、SVGロゴ対応時に追加）。
 * --gs-logo-max-h は既にこの範囲に収まる値にしているため通常は
 * 効かないが、万一ロゴ画像側の計算が想定とズレた場合でも、ヘッダー
 * バー自体がこれより縮むことはあっても伸びることはない、という
 * 二重の安全策にしている。
 */
.gs-nav__bar {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 24px;
	padding: 22px clamp(4px, 2vw, 28px);
	min-height: 64px;
}

.gs-nav__brand {
	font-family: var(--gs-font-sans);
	font-size: .78rem;
	font-weight: 500;
	letter-spacing: .22em;
	color: var(--gs-text);
	text-decoration: none;
	white-space: nowrap;
}

/* ヘッダーロゴ画像（wp-adminで設定時のみ出力される .custom-logo-link）。
   テキストロゴ（.gs-nav__brand）と同じ行の高さに収め、ヘッダー全体の
   高さ・ナビの垂直位置を変えないようにする。画像は縦横比を保ったまま
   最大高さのみを制限し、拡大縮小や切り抜きは行わない。 */
.custom-logo-link {
	display: flex;
	align-items: center;
	line-height: 0;
}

.custom-logo-link img.custom-logo {
	display: block;
	width: auto;
	height: auto;
	max-width: var(--gs-logo-max-w);
	max-height: var(--gs-logo-max-h);
}

.gs-nav__links {
	display: flex;
	align-items: center;
	gap: clamp(1.1rem, 2.4vw, 2.4rem);
}

.gs-nav__links a {
	font-family: var(--gs-font-sans);
	font-size: .64rem;
	letter-spacing: .2em;
	text-transform: uppercase;
	color: var(--gs-muted);
	text-decoration: none;
	white-space: nowrap;
	transition: color .25s ease;
}

.gs-nav__links a:hover,
.gs-nav__links a:focus-visible {
	color: var(--gs-text);
}

.gs-nav__links a.is-current {
	color: var(--gs-gold);
}

.gs-nav__toggle {
	display: none;
	flex-direction: column;
	justify-content: center;
	align-items: center;
	gap: 6px;
	width: 34px;
	height: 34px;
	padding: 0;
	background: none;
	border: 0;
	cursor: pointer;
}

.gs-nav__toggle-bar {
	display: block;
	width: 22px;
	height: 1px;
	background: var(--gs-text);
	transition: transform .3s ease, opacity .3s ease;
}

.gs-nav.is-open .gs-nav__toggle-bar:first-child {
	transform: translateY(3.5px) rotate(45deg);
}

.gs-nav.is-open .gs-nav__toggle-bar:last-child {
	transform: translateY(-3.5px) rotate(-45deg);
}

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

/* ---------- サイト共通フッター ----------
 * Arkhe標準フッター（ウィジェットエリア等）は使わず、極小のクレジット
 * のみを残す（完全に何も無いと未完成に見えるための最小限の着地点）。
 * 以前はTOP専用の `gs-top-footer` だったが、Phase 1で全ページ共通の
 * `gs-footer` に一般化した。
 */

.gs-footer {
	background: #050505;
	border-top: 1px solid var(--gs-line);
}

/*
 * Phase 4.1（2026-09-16）: 一般的な「3カラム企業サイト型フッター」から、
 * 展覧会を出た後のエンドクレジットのような終端へ作り直した。
 * サイト名（.gs-footer__title）を大きく単独で扱い、実務的な情報
 * （ページリンク・著作権表記）は下に小さなINDEX行として残す。
 */
.gs-footer__title {
	display: flex;
	flex-direction: column;
	gap: 10px;
	padding: 120px 0 48px;
	text-align: center;
}

.gs-footer__title-en {
	font-family: var(--gs-font-sans);
	font-size: clamp(1.1rem, 3vw, 1.6rem);
	font-weight: 500;
	letter-spacing: .32em;
	color: var(--gs-text);
}

.gs-footer__title-ja {
	font-family: var(--gs-font-serif);
	font-size: clamp(1.6rem, 5vw, 2.6rem);
	color: var(--gs-bone);
}

.gs-footer__inner {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: center;
	gap: 12px 28px;
	padding: 28px 0 48px;
	border-top: 1px solid var(--gs-line);
	font-family: var(--gs-font-sans);
	font-size: .64rem;
	letter-spacing: .16em;
	text-transform: uppercase;
	color: var(--gs-muted);
}

/* ---------- HERO (TOP) ----------
 * コンセプト: 古代神話 × 現代美術館 × 禁忌のデジタルアーカイブ（CLAUDE.md §4）。
 * 装飾を増やすのではなく、余白・巨大タイポグラフィ・画像を主役にし、
 * 展示室の壁面や観測記録の台紙を思わせる「額縁」「粒状ノイズ」
 * 「縦組みのサイン」を最小限だけ添える。全体としては原天寄り（暗色・
 * 非対称）のトーンを基調とし、DIVINITIES二極構成へのつなぎとする。
 * 編集可能なのは背景画像とキャッチコピー本文のみ（CLAUDE.md §23）。
 */

.gs-hero {
	position: relative;
	isolation: isolate;
	min-height: 100svh;
	display: flex;
	align-items: flex-end;
	background:
		var(--gs-hero-image, none) center / cover no-repeat,
		radial-gradient(circle at 64% 16%, rgba(139, 106, 62, .16), transparent 38%),
		#070707;
}

.gs-hero__veil {
	position: absolute;
	inset: 0;
	z-index: 1;
	/*
	 * Phase 4.2（2026-09-16）: 実写のMASTER画像投入に伴い追加した
	 * 第1レイヤー（HEADER帯の可読性確保用の短い上部スクリム）。
	 * HEADERはHERO上に重なる透明ナビ（Phase 4.1）のため、画像の
	 * 明部（空・アーチ・月）とナビ文字が衝突しないよう、上部12%だけ
	 * 強めに暗くしてすぐ透明へ戻す。第2レイヤーは従来からの全体スクリム。
	 */
	background:
		linear-gradient(180deg, rgba(0, 0, 0, .62) 0%, rgba(0, 0, 0, 0) 13%),
		linear-gradient(180deg, rgba(0, 0, 0, .12) 0%, rgba(0, 0, 0, .24) 46%, rgba(0, 0, 0, .92) 100%);
}

/* 粒状ノイズ（禁忌の記録らしい質感）。CSSのみ、画像アセット不要。 */
.gs-hero__grain {
	position: absolute;
	inset: 0;
	z-index: 1;
	opacity: .05;
	mix-blend-mode: overlay;
	pointer-events: none;
	background-image: url("data:image/svg+xml;charset=UTF-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='140'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
	background-size: 180px 180px;
}

/* 展示ケースの額縁を思わせる四隅の罫線。 */
.gs-hero__frame {
	position: absolute;
	top: 96px;
	right: 34px;
	bottom: 34px;
	left: 34px;
	z-index: 2;
	pointer-events: none;
}

.gs-hero__frame-corner {
	position: absolute;
	width: 38px;
	height: 38px;
}

.gs-hero__frame-corner--tl {
	top: 0;
	left: 0;
	border-top: 1px solid var(--gs-line-strong);
	border-left: 1px solid var(--gs-line-strong);
}

.gs-hero__frame-corner--br {
	bottom: 0;
	right: 0;
	border-bottom: 1px solid var(--gs-line-strong);
	border-right: 1px solid var(--gs-line-strong);
}

/* 展示台のサインのような縦組みラベル。装飾のみで新規設定は含まない。 */
.gs-hero__edge-mark {
	position: absolute;
	z-index: 2;
	right: 26px;
	bottom: 130px;
	writing-mode: vertical-rl;
	text-orientation: upright;
	font-family: var(--gs-font-sans);
	font-size: .64rem;
	letter-spacing: .3em;
	color: var(--gs-muted);
	opacity: .55;
}

.gs-hero__grid {
	position: relative;
	z-index: 2;
	padding-bottom: 19vh;
}

.gs-hero__content {
	/*
	 * Phase 4.2（2026-09-16）: MASTER画像実写投入に伴い、画像下部中央に
	 * 佇む人影と本文が重ならないよう、従来の920pxから狭め、かつ
	 * .gs-hero__grid の padding-bottom を上げてコピー全体を少し高い
	 * 位置へ持ち上げた（画像自体は一切加工していない、CSS配置のみの
	 * 調整）。
	 */
	max-width: 720px;
}

.gs-hero__kicker {
	margin-bottom: 28px;
}

.gs-hero__title {
	margin: 0;
	font-family: var(--gs-font-serif);
	font-weight: 600;
	font-size: clamp(3.2rem, 7.4vw, 6.8rem);
	line-height: 1.24;
	letter-spacing: .01em;
}

.gs-hero__title span {
	display: block;
	/*
	 * Phase 7（2026-09-16）: 「優しかった」の「優」が行末で分断される
	 * 問題への対応。既定のCJK折り返し（文字の間ならどこでも改行可）を
	 * word-break:keep-allで止め、gitenshinwa_child_soft_wrap_japanese_line()
	 * が読点・助詞の直後にだけ差し込む<wbr>でのみ折り返すようにする。
	 * overflow-wrap:break-wordは、万一<wbr>が無い長い1行が入っても
	 * 画面外にはみ出さないための最終手段のフォールバック
	 * （.gs-feature__titleと同じ既存の書式に合わせている）。
	 */
	word-break: keep-all;
	overflow-wrap: break-word;
}

.gs-hero__scrollcue {
	position: absolute;
	z-index: 2;
	left: 50%;
	bottom: 40px;
	transform: translateX(-50%);
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 10px;
}

.gs-hero__scrollcue-line {
	width: 1px;
	height: 48px;
	background: linear-gradient(180deg, var(--gs-muted), transparent);
}

.gs-hero__scrollcue-label {
	font-family: var(--gs-font-sans);
	font-size: .66rem;
	letter-spacing: .28em;
	text-transform: uppercase;
	color: var(--gs-muted);
}

/* ---------- entrance / scroll reveal ----------
 * プログレッシブエンハンスメント: `.gs-js` はJS実行時にのみ付与される
 * （assets/js/site.js）。JS無効・失敗時は常に通常表示のまま
 * （CLAUDE.md §14 アクセシビリティ）。
 */

.gs-js .gs-hero__kicker,
.gs-js .gs-hero__title span,
.gs-js .gs-hero__scrollcue,
.gs-js .gs-hero__frame-corner {
	opacity: 0;
	transform: translateY(22px);
	transition: opacity .9s cubic-bezier(.16, .84, .44, 1), transform .9s cubic-bezier(.16, .84, .44, 1);
}

.gs-js .gs-hero__frame-corner {
	transform: none;
	transition-delay: 1.1s;
}

.gs-js .gs-hero__kicker {
	transition-delay: .05s;
}

.gs-js .gs-hero__title span {
	transition-delay: calc(.22s + var(--gs-line-index, 0) * .12s);
}

.gs-js .gs-hero__scrollcue {
	transition-delay: .95s;
}

.gs-js .gs-hero.is-revealed .gs-hero__kicker,
.gs-js .gs-hero.is-revealed .gs-hero__title span,
.gs-js .gs-hero.is-revealed .gs-hero__scrollcue,
.gs-js .gs-hero.is-revealed .gs-hero__frame-corner {
	opacity: 1;
	transform: none;
}

.gs-js [data-gs-reveal] {
	opacity: 0;
	transform: translateY(28px);
	transition: opacity .9s cubic-bezier(.16, .84, .44, 1), transform .9s cubic-bezier(.16, .84, .44, 1);
}

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

@media (prefers-reduced-motion: reduce) {
	.gs-js .gs-hero__kicker,
	.gs-js .gs-hero__title span,
	.gs-js .gs-hero__scrollcue,
	.gs-js .gs-hero__frame-corner,
	.gs-js [data-gs-reveal] {
		opacity: 1 !important;
		transform: none !important;
		transition: none !important;
	}
}

/* ---------- STORY feature (TOP) ---------- */

.gs-section--story {
	position: relative;
	background: var(--gs-bg-alt);
	border-top: 1px solid var(--gs-line);
}

/* セクションごとの質感差（CLAUDE.md §11要件）: STORYは経年した紙の
 * ような粒状の質感、ARCHIVEは台帳/インデックスを思わせる罫線格子。
 * 両方ともCSSのみ、装飾は極薄（opacity .04-.05）に抑える。
 */
.gs-section__texture {
	position: absolute;
	inset: 0;
	z-index: 0;
	opacity: .045;
	mix-blend-mode: overlay;
	pointer-events: none;
	background-image: url("data:image/svg+xml;charset=UTF-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='150' height='150'%3E%3Cfilter id='t'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.8' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23t)'/%3E%3C/svg%3E");
	background-size: 200px 200px;
}

.gs-section__texture--grid {
	opacity: .05;
	mix-blend-mode: normal;
	background-image:
		linear-gradient(rgba(232, 226, 214, .5) 1px, transparent 1px),
		linear-gradient(90deg, rgba(232, 226, 214, .5) 1px, transparent 1px);
	background-size: 64px 64px;
}

.gs-section--story > .gs-shell {
	position: relative;
	z-index: 1;
}

.gs-feature {
	display: grid;
	grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr);
	gap: 6vw;
	align-items: center;
	margin-bottom: 40px;
}

.gs-feature--type {
	grid-template-columns: minmax(0, .5fr) minmax(0, 1.5fr);
}

.gs-feature__media {
	aspect-ratio: 4 / 5;
	background: #171614;
	overflow: hidden;
	/* Phase 7（2026-09-16）: DIVINITIES/CHARACTERSの額縁と揃え、STORYの
	   キービジュアルも「展示ケースの中の1点」として見えるようにする。 */
	border: 1px solid var(--gs-line);
}

.gs-feature__media img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

/* 画像未設定時: 空の画像枠を出す代わりに、章番号を大きな装飾ナンバー
 * として見せる（「写真がまだ無い資料」というアーカイブ的な体裁）。
 */
.gs-feature__ghost-number {
	font-family: var(--gs-font-serif);
	font-size: clamp(5rem, 13vw, 11rem);
	line-height: 1;
	color: transparent;
	-webkit-text-stroke: 1px var(--gs-line-strong);
	text-stroke: 1px var(--gs-line-strong);
	user-select: none;
}

.gs-feature__title {
	margin: 0 0 14px;
	font-family: var(--gs-font-serif);
	font-weight: 500;
	font-size: clamp(1.7rem, 4.4vw, 3.4rem);
	line-height: 1.35;
	word-break: keep-all;
	overflow-wrap: break-word;
}

.gs-feature__subtitle {
	margin: 0 0 20px;
	color: var(--gs-gold);
	font-size: .9rem;
	letter-spacing: .05em;
}

.gs-feature__text {
	margin: 0;
	color: var(--gs-muted);
	line-height: 1.9;
}

/* ---------- DIVINITIES duality split (TOP) ---------- */

.gs-duality {
	display: grid;
	grid-template-columns: 1fr 1fr;
	min-height: 92svh;
}

.gs-duality__panel {
	position: relative;
	display: flex;
	flex-direction: column;
	justify-content: flex-end;
	padding: 70px max(5vw, 40px);
	text-decoration: none;
	color: inherit;
	overflow: hidden;
}

.gs-duality__panel:before {
	content: "";
	position: absolute;
	inset: 0;
	opacity: .85;
	transition: transform .8s cubic-bezier(.2, .7, .2, 1), opacity .4s ease;
}

.gs-duality__panel:hover:before {
	transform: scale(1.035);
	opacity: 1;
}

/* GENTEN: 非対称・経年・鉱物的なノイズ（CLAUDE.md §5）。 */
.gs-duality__panel--genten {
	background: var(--gs-bg-alt);
	color: var(--gs-text);
	justify-content: flex-end;
	align-items: flex-start;
	text-align: left;
}

.gs-duality__panel--genten:before {
	background: radial-gradient(circle at 76% 24%, rgba(139, 106, 62, .28), transparent 34%);
}

.gs-duality__panel--genten:after {
	content: "";
	position: absolute;
	inset: 0;
	opacity: .12;
	mix-blend-mode: overlay;
	pointer-events: none;
	background-image: url("data:image/svg+xml;charset=UTF-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='150' height='150'%3E%3Cfilter id='gn'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.75' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23gn)'/%3E%3C/svg%3E");
	background-size: 220px 220px;
}

/* TENRITSU: 対称・清澄・完全円（CLAUDE.md §5「救いは、いつも美しい。」）。 */
.gs-duality__panel--tenritsu {
	background: var(--gs-tenritsu-bg-2);
	color: var(--gs-tenritsu-text);
	justify-content: center;
	align-items: center;
	text-align: center;
}

.gs-duality__panel--tenritsu:before {
	background: radial-gradient(circle at 50% 46%, rgba(255, 255, 255, .85), transparent 42%);
}

.gs-duality__panel--tenritsu:after {
	content: "";
	position: absolute;
	top: 50%;
	left: 50%;
	width: min(66%, 420px);
	aspect-ratio: 1;
	border: 1px solid rgba(139, 118, 65, .32);
	border-radius: 50%;
	transform: translate(-50%, -50%);
	pointer-events: none;
}

.gs-duality__panel--tenritsu .gs-duality__label {
	color: var(--gs-tenritsu-quote);
}

.gs-duality__label {
	position: relative;
	z-index: 1;
	font-family: var(--gs-font-sans);
	font-size: .72rem;
	letter-spacing: .22em;
	color: var(--gs-gold);
}

.gs-duality__title {
	position: relative;
	z-index: 1;
	margin: 18px 0 22px;
	font-family: var(--gs-font-serif);
	font-weight: 500;
	font-size: clamp(3.4rem, 6.5vw, 6.5rem);
	line-height: .95;
}

.gs-duality__panel .gs-link {
	position: relative;
	z-index: 1;
}

/*
 * 神格の実画像（main_visual）表示（2026-09-16、Phase 4）。
 * 従来はテクスチャ（:before/:after）のみだったパネルへ、実際の神格
 * ビジュアルを背景として敷けるようにする。画像未設定時はこれらの
 * 要素自体が出力されないため、既存の見た目（テクスチャ+単色背景）は
 * 一切変わらない。
 */
.gs-duality__visual {
	position: absolute;
	inset: 0;
}

.gs-duality__visual img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.gs-duality__scrim {
	position: absolute;
	inset: 0;
}

/* GENTEN: テキストが左下に寄るレイアウトに合わせ、非対称な線形グラデ
   （下方向ほど濃い）で判読性を確保する。 */
.gs-duality__panel--genten .gs-duality__scrim {
	background: linear-gradient(200deg, rgba(10, 9, 8, .15) 8%, rgba(10, 9, 8, .95) 78%);
}

/* TENRITSU: テキストが中央に寄るレイアウトに合わせ、円形の淡いグロー
   （既存の:after円環装飾と同じ中心）で判読性を確保する。 */
.gs-duality__panel--tenritsu .gs-duality__scrim {
	background: radial-gradient(circle at 50% 50%, rgba(230, 226, 216, .97) 0%, rgba(230, 226, 216, .68) 46%, rgba(230, 226, 216, .22) 100%);
}

.gs-duality__ghost-number {
	position: relative;
	z-index: 1;
	display: block;
	margin-bottom: 6px;
	font-family: var(--gs-font-serif);
	font-size: clamp(3.2rem, 8vw, 5.6rem);
	line-height: 1;
	color: transparent;
	-webkit-text-stroke: 1px var(--gs-line-strong);
	user-select: none;
}

.gs-duality__epithet {
	position: relative;
	z-index: 1;
	margin: 0 0 18px;
	font-family: var(--gs-font-serif);
	font-style: italic;
	font-size: .95rem;
	color: var(--gs-muted);
}

.gs-duality__panel--tenritsu .gs-duality__epithet {
	color: var(--gs-tenritsu-muted);
}

/* ---------- WORLD teaser (TOP) ----------
 * 2026-09-16、Phase 4新設。旧INTRODUCTIONセクションの役割をここへ
 * 統合し、原天/天律という「世界の二重構造」の概念的な提示を行う。
 * 神格個体そのもの（main_visual）はDIVINITIESセクションで見せるため、
 * ここではWORLD固定ページの説明文・代表画像に留める。
 */
.gs-section--world {
	position: relative;
	background: #0b0a09;
	border-top: 1px solid var(--gs-line);
}

.gs-world-teaser__title {
	margin: 0 0 20px;
	font-family: var(--gs-font-serif);
	font-weight: 500;
	font-size: clamp(2.4rem, 5.6vw, 4.4rem);
	line-height: 1.15;
}

.gs-world-teaser {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 1px;
	background: var(--gs-line);
	margin: 56px 0 0;
}

.gs-world-teaser__panel {
	position: relative;
	padding: 56px max(5vw, 32px);
	background: var(--gs-bg-alt);
	color: var(--gs-text);
}

.gs-world-teaser__panel--tenritsu {
	background: var(--gs-tenritsu-bg-2);
	color: var(--gs-tenritsu-text);
}

.gs-world-teaser__panel--tenritsu .gs-kicker {
	color: var(--gs-tenritsu-quote);
}

.gs-world-teaser__image {
	margin: 0 0 24px;
	aspect-ratio: 16 / 9;
	overflow: hidden;
}

.gs-world-teaser__image img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

/*
 * Phase 7（2026-09-16）: genten_image/tenritsu_imageがLocal上で未設定
 * のため、画像が無い間も「空のカード」に見えないよう額縁だけの
 * フォールバックを表示する（WORLD単体ページの.gs-world-record__specimenと
 * 同じ考え方）。
 */
.gs-world-teaser__image--empty {
	display: flex;
	align-items: center;
	justify-content: center;
	border: 1px solid rgba(139, 106, 62, .32);
}

.gs-world-teaser__panel--tenritsu .gs-world-teaser__image--empty {
	border-color: rgba(139, 118, 65, .4);
}

.gs-world-teaser__image-label {
	font-family: var(--gs-font-sans);
	font-size: .62rem;
	letter-spacing: .3em;
	text-transform: uppercase;
	color: var(--gs-muted);
	opacity: .5;
}

.gs-world-teaser__panel--tenritsu .gs-world-teaser__image-label {
	color: var(--gs-tenritsu-muted);
	opacity: .7;
}

.gs-world-teaser__name {
	margin: 0 0 16px;
	font-family: var(--gs-font-serif);
	font-weight: 500;
	font-size: clamp(1.5rem, 2.6vw, 2.1rem);
}

.gs-world-teaser__text {
	margin: 0;
	line-height: 1.9;
	color: var(--gs-muted);
}

.gs-world-teaser__panel--tenritsu .gs-world-teaser__text {
	color: var(--gs-tenritsu-muted);
}

.gs-world-teaser__quote-wrap {
	margin-top: 56px;
	text-align: center;
}

.gs-world-teaser__quote {
	margin: 0;
	padding: 0;
	border: 0;
	font-family: var(--gs-font-serif);
	font-style: italic;
	font-size: clamp(1.15rem, 2.2vw, 1.5rem);
	color: var(--gs-bone);
}

/* ---------- CHARACTERS teaser (TOP) ----------
 * 2026-09-16、Phase 4新設。DIVINITIESで神々の顔を見せた直後に、人間
 * 側の視点人物を単一の大きな展示として見せる。カード的な一覧にはせず、
 * Visual BibleのCHARACTER DESIGNページに近い「作品として人物を見る」
 * 構成をTOPでも踏襲する（ステータス表示・複数カード羅列は行わない）。
 */
.gs-section--characters {
	position: relative;
	background: #0d0c0a;
	border-top: 1px solid var(--gs-line);
}

.gs-character-feature {
	display: grid;
	/*
	 * Phase 7（2026-09-16）: 「作品世界の中にWeb UIが存在する」方針の
	 * 一環として、CHARACTERS単体ページと同じ1:1に近い比率へ拡大し
	 * （従来の.8fr/1.2fr）、TOPでの人物ポートレートの存在感を単体
	 * ページと揃えた。
	 */
	grid-template-columns: minmax(0, 1fr) minmax(0, 1.1fr);
	gap: 6vw;
	align-items: center;
	margin: 48px 0 40px;
}

.gs-character-feature__portrait {
	position: relative;
	aspect-ratio: 3 / 4;
	background: #171614;
	overflow: hidden;
	/* Phase 7: CHARACTERS単体の額縁（border）とTOPでも揃える。 */
	border: 1px solid var(--gs-line);
}

.gs-character-feature__portrait img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.gs-character-feature__initial {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	height: 100%;
	font-family: var(--gs-font-serif);
	font-size: clamp(5rem, 13vw, 9rem);
	color: transparent;
	-webkit-text-stroke: 1px var(--gs-line-strong);
	user-select: none;
}

.gs-character-feature__name {
	margin: 0 0 10px;
	font-family: var(--gs-font-serif);
	font-weight: 500;
	font-size: clamp(2.4rem, 5.4vw, 4.4rem);
}

.gs-character-feature__reading {
	margin: 0 0 18px;
	font-family: var(--gs-font-sans);
	font-size: .78rem;
	letter-spacing: .18em;
	text-transform: uppercase;
	color: var(--gs-muted);
}

.gs-character-feature__epithet {
	margin: 0 0 24px;
	font-family: var(--gs-font-serif);
	font-style: italic;
	color: var(--gs-muted);
}

/* =========================================================
 * TOP専用：図録番号システム / CTAコンポーネント / ARCHIVE INDEX /
 * WORKS・STORE 展示リスト（Phase 4.1、2026-09-16）。
 *
 * Phase 4.1の指示は「全SECTIONを同じ KICKER→H2→LEAD→BODY→CTA の
 * 位置・幅・順序で反復しない」「10箇所同一のCTAをやめる」
 * 「ARCHIVEのカードグリッドを廃止し資料INDEXにする」の3点。
 * ここで追加するクラスはすべてTOP（front-page.php）専用の新規クラス
 * であり、既存の .gs-link / .gs-card-grid 等の共有コンポーネントは
 * 一切変更していない（他ページの見た目に影響しない）。
 * ========================================================= */

.gs-top-section {
	position: relative;
}

/* WORLD: 罫線上に番号を置く開幕行。 */
.gs-top-ruled-open__row {
	display: flex;
	align-items: baseline;
	gap: 18px;
	margin: 0 0 20px;
}

.gs-top-ruled-open__num {
	flex: none;
	font-family: var(--gs-font-sans);
	font-size: .68rem;
	letter-spacing: .1em;
	color: var(--gs-gold);
}

.gs-top-ruled-open__rule {
	flex: 1 1 auto;
	height: 1px;
	background: var(--gs-line);
}

.gs-top-ruled-open__label {
	flex: none;
	font-family: var(--gs-font-sans);
	font-size: .72rem;
	letter-spacing: .2em;
	text-transform: uppercase;
	color: var(--gs-gold);
}

.gs-top-section__lead-wide {
	max-width: 820px;
}

/* DIVINITIES: 小さな図版番号（セクション右上のコーナータグ）。
   既存の巨大ゴースト数字（神格個体の表示番号）とは意味が異なる
   ——こちらはセクション自体の通し番号——ため、控えめな扱いに留める。 */
.gs-top-plate-number {
	position: absolute;
	top: 28px;
	right: max(5vw, 32px);
	z-index: 2;
	font-family: var(--gs-font-sans);
	font-size: .62rem;
	letter-spacing: .18em;
	color: var(--gs-muted);
	opacity: .6;
}

/* CHARACTERS: HEROの縦組みサイン（.gs-hero__edge-mark）と同じ語彙を
   別セクションでも使う「縦組みに近いINDEX」。 */
.gs-top-vertical-index {
	position: absolute;
	top: 40px;
	left: 18px;
	z-index: 2;
	writing-mode: vertical-rl;
	text-orientation: upright;
	font-family: var(--gs-font-sans);
	font-size: .62rem;
	letter-spacing: .3em;
	color: var(--gs-muted);
	opacity: .5;
}

/* STORY: 巨大背景数字（章番号を紙面の外側へ大きく敷く）。 */
.gs-top-bg-number {
	position: absolute;
	top: 50%;
	right: max(1vw, 8px);
	z-index: 0;
	transform: translateY(-50%);
	font-family: var(--gs-font-serif);
	font-size: clamp(8rem, 24vw, 20rem);
	line-height: 1;
	color: transparent;
	-webkit-text-stroke: 1px var(--gs-line);
	pointer-events: none;
	user-select: none;
}

/* ARCHIVE / WORKS / STORE: 見出し行に番号を添える（WORLDの罫線番号とは
   別の、より控えめな「NN / LABEL」表記）。 */
.gs-top-index-number {
	margin: 0 0 20px;
	font-family: var(--gs-font-sans);
	font-size: .72rem;
	letter-spacing: .2em;
	text-transform: uppercase;
	color: var(--gs-gold);
}

/* ---------- TOP専用CTA ----------
 * 「〜を見る →」10箇所同一のリンク表現をやめ、英字主体の見出し＋
 * 既存CMSフィールドの文言を小さな日本語補助として添える構成にする。
 * CMS側の文言（$cta等）は削除せず、表示上の優先順位を変えただけ。
 */
.gs-top-cta {
	display: inline-flex;
	flex-direction: column;
	gap: 6px;
	margin-top: 32px;
	padding-top: 14px;
	border-top: 1px solid var(--gs-line);
	color: inherit;
	text-decoration: none;
}

.gs-top-cta__en {
	font-family: var(--gs-font-sans);
	font-size: .9rem;
	letter-spacing: .12em;
	transition: letter-spacing .3s ease;
}

.gs-top-cta:hover .gs-top-cta__en {
	letter-spacing: .2em;
}

.gs-top-cta__ja {
	font-family: var(--gs-font-serif);
	font-size: .76rem;
	color: var(--gs-muted);
}

.gs-top-cta__arrow {
	display: inline-block;
	font-size: .9rem;
	transition: transform .25s ease;
}

.gs-top-cta:hover .gs-top-cta__arrow {
	transform: translateX(6px);
}

.gs-top-cta--inline {
	margin-top: 22px;
	padding-top: 10px;
}

.gs-top-cta--minor {
	margin-top: 24px;
	padding-top: 10px;
	opacity: .72;
}

.gs-top-cta--minor .gs-top-cta__en {
	font-size: .74rem;
}

/* ---------- CHARACTERS: 巨大人物ビジュアルを主役にした構図 ---------- */

.gs-character-feature--top {
	display: grid;
	grid-template-columns: 1.4fr 1fr;
	align-items: stretch;
	gap: 0;
	margin: 0;
	min-height: 78svh;
}

.gs-character-feature--top .gs-character-feature__portrait {
	aspect-ratio: auto;
	height: 100%;
}

.gs-character-feature__caption {
	display: flex;
	flex-direction: column;
	justify-content: center;
	padding: 64px max(5vw, 32px);
	background: #0d0c0a;
}

.gs-character-feature__kicker {
	margin-bottom: 16px;
}

.gs-character-feature__lead {
	max-width: 420px;
	margin: 0 0 32px;
	color: var(--gs-muted);
	font-family: var(--gs-font-serif);
	line-height: 1.9;
}

.gs-character-feature__figure-number {
	display: block;
	margin-bottom: 8px;
	font-family: var(--gs-font-sans);
	font-size: .68rem;
	letter-spacing: .2em;
	color: var(--gs-muted);
	opacity: .75;
}

/* ---------- ARCHIVE: 収蔵資料INDEX（カードグリッドを廃止） ---------- */

.gs-top-index {
	margin: 40px 0 0;
	border-top: 1px solid var(--gs-line);
}

.gs-top-index__head,
.gs-top-index__row {
	display: flex;
	align-items: baseline;
	gap: 24px;
}

.gs-top-index__head {
	padding: 14px 0;
	font-family: var(--gs-font-sans);
	font-size: .6rem;
	letter-spacing: .16em;
	text-transform: uppercase;
	color: var(--gs-muted);
	opacity: .7;
	border-bottom: 1px solid var(--gs-line);
}

.gs-top-index__row {
	padding: 22px 0;
	border-bottom: 1px solid var(--gs-line);
	color: inherit;
	text-decoration: none;
	transition: padding-left .3s ease, background-color .3s ease;
}

.gs-top-index__row:hover {
	padding-left: 12px;
	background: rgba(232, 226, 214, .03);
}

.gs-top-index__col--number {
	flex: 0 0 auto;
	min-width: 84px;
	font-family: var(--gs-font-sans);
	font-size: .78rem;
	color: var(--gs-muted);
}

.gs-top-index__col--title {
	flex: 1 1 auto;
	min-width: 0;
	font-family: var(--gs-font-serif);
	font-size: clamp(1.05rem, 1.8vw, 1.4rem);
}

.gs-top-index__head .gs-top-index__col--title {
	font-family: var(--gs-font-sans);
}

.gs-top-index__col--type {
	flex: 0 0 auto;
	min-width: 120px;
	font-family: var(--gs-font-sans);
	font-size: .66rem;
	letter-spacing: .1em;
	text-transform: uppercase;
	color: var(--gs-gold);
	text-align: right;
}

.gs-top-index__arrow {
	flex: none;
	margin-left: auto;
	padding-left: 12px;
	opacity: 0;
	transition: opacity .25s ease, transform .25s ease;
}

.gs-top-index__row:hover .gs-top-index__arrow {
	opacity: 1;
	transform: translateX(4px);
}

/* ---------- WORKS / STORE: 展示リスト（カードグリッドを廃止） ---------- */

.gs-top-showcase {
	margin: 40px 0 0;
	border-top: 1px solid var(--gs-line);
}

.gs-top-showcase__item {
	display: flex;
	align-items: center;
	gap: 28px;
	padding: 26px 0;
	border-bottom: 1px solid var(--gs-line);
	color: inherit;
	text-decoration: none;
	transition: padding-left .3s ease;
}

.gs-top-showcase__item:hover {
	padding-left: 12px;
}

.gs-top-showcase__number {
	flex: none;
	font-family: var(--gs-font-sans);
	font-size: .66rem;
	color: var(--gs-muted);
}

.gs-top-showcase__visual {
	flex: none;
	display: block;
	width: 88px;
	aspect-ratio: 3 / 4;
	overflow: hidden;
	background: #171614;
}

.gs-top-showcase__visual img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.gs-top-showcase__no-image {
	display: block;
	width: 100%;
	height: 100%;
	background-image: repeating-linear-gradient(45deg, rgba(232, 226, 214, .1) 0 1px, transparent 1px 10px);
}

.gs-top-showcase__body {
	flex: 1 1 auto;
	min-width: 0;
	display: flex;
	flex-direction: column;
	gap: 4px;
}

.gs-top-showcase__title {
	font-family: var(--gs-font-serif);
	font-size: clamp(1.1rem, 2vw, 1.5rem);
}

.gs-top-showcase__caption {
	font-family: var(--gs-font-sans);
	font-size: .78rem;
	color: var(--gs-muted);
}

.gs-top-showcase__arrow {
	flex: none;
	margin-left: auto;
	opacity: 0;
	transition: opacity .25s ease, transform .25s ease;
}

.gs-top-showcase__item:hover .gs-top-showcase__arrow {
	opacity: 1;
	transform: translateX(4px);
}

/* ---------- card grid (ARCHIVE / WORKS / STORE teasers) ---------- */

.gs-section--archive {
	position: relative;
	background: #0a0a0a;
	border-top: 1px solid var(--gs-line);
}

.gs-section--archive > .gs-shell {
	position: relative;
	z-index: 1;
}

.gs-section--works {
	background: var(--gs-tenritsu-bg);
	color: var(--gs-tenritsu-text);
	border-top: 1px solid rgba(139, 118, 65, .25);
}

.gs-section--works .gs-kicker {
	color: var(--gs-tenritsu-quote);
}

.gs-section--store {
	background: linear-gradient(160deg, #18100f, #0a0908);
	border-top: 1px solid rgba(110, 23, 23, .3);
}

.gs-card-grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 24px;
	margin-top: 12px;
}

.gs-card {
	display: block;
	color: inherit;
	text-decoration: none;
}

.gs-card__image {
	aspect-ratio: 4 / 5;
	background: #171614;
	overflow: hidden;
	margin-bottom: 18px;
}

.gs-card__image img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform .5s ease;
}

.gs-card:hover .gs-card__image img {
	transform: scale(1.03);
}

.gs-card__title {
	margin: 0 0 8px;
	font-family: var(--gs-font-serif);
	font-weight: 500;
	font-size: 1.5rem;
}

.gs-card__excerpt {
	margin: 0;
	color: var(--gs-muted);
	font-size: .88rem;
	line-height: 1.8;
}

.gs-card-grid--archive .gs-card {
	position: relative;
	padding: 24px;
	border: 1px solid var(--gs-line);
}

.gs-card-grid--archive .gs-card__image {
	aspect-ratio: 5 / 4;
	margin-bottom: 14px;
}

/* TOPティザーカードの画像フォールバック（2026-09-15）。
 * 専用archiveページ（ARCHIVE/WORKS/STORE）側の画像未設定時の表現と
 * 同じ視覚原則を、TOP固有のカード構造(.gs-card__image)はそのまま
 * 使い、中身の.gs-card__no-image--{variant}だけをCPTごとに描き分ける。
 * 単なる暗い長方形(.gs-card__imageの背景色のみ)にしないための対応。
 */
.gs-card__no-image {
	display: block;
	width: 100%;
	height: 100%;
}

.gs-card-grid--archive .gs-card__no-image--archive {
	background-color: rgba(255, 255, 255, .02);
	background-image: repeating-linear-gradient(
		45deg,
		var(--gs-line) 0,
		var(--gs-line) 1px,
		transparent 1px,
		transparent 14px
	);
	border: 1px dashed var(--gs-line-strong);
}

.gs-card-grid--works .gs-card__no-image--works {
	position: relative;
	border: 1px solid rgba(139, 118, 65, .35);
}

.gs-card-grid--works .gs-card__no-image--works::before {
	content: '';
	position: absolute;
	inset: 10px;
	border: 1px solid rgba(139, 118, 65, .2);
}

.gs-card-grid--store .gs-card__no-image--store {
	background-image: repeating-linear-gradient(
		135deg,
		rgba(110, 23, 23, .18) 0,
		rgba(110, 23, 23, .18) 1px,
		transparent 1px,
		transparent 16px
	);
}

/* ---------- INTRODUCTION（物語への入口） ---------- */

.gs-section--intro {
	background: var(--gs-bg);
	border-top: 1px solid var(--gs-line);
	border-bottom: 1px solid var(--gs-line);
	text-align: center;
}

/* 単なる左寄せ文章ではなく、展示室の中央に置かれた一枚の碑文のような
 * 佇まいにする: 中央寄せ・狭い読了幅・段落ごとに少しずつ本来の色へ
 * 「像を結んでいく」ような濃淡（CLAUDE.md「恐ろしいほど優しい世界」）。
 */
.gs-intro-mark {
	width: 1px;
	height: 56px;
	margin: 0 auto 46px;
	background: linear-gradient(180deg, transparent, var(--gs-line-strong) 60%, transparent);
}

.gs-intro {
	max-width: 720px;
}

.gs-intro__kicker {
	text-align: center;
}

.gs-prose--intro {
	font-size: clamp(1.05rem, 1.6vw, 1.28rem);
	line-height: 2.2;
	letter-spacing: .01em;
}

.gs-prose--intro p {
	margin: 0 0 1.6em;
	color: var(--gs-muted);
	transition: color .4s ease;
}

.gs-prose--intro p:first-of-type {
	font-family: var(--gs-font-serif);
	font-size: 1.28em;
	color: var(--gs-bone);
}

.gs-prose--intro p:last-of-type {
	color: var(--gs-text);
}

/* ---------- WORLD ---------- */

.gs-world-hero {
	position: relative;
	overflow: hidden;
	min-height: 70vh;
	display: flex;
	align-items: flex-end;
	padding: 140px 0 90px;
	background: radial-gradient(circle at 68% 22%, rgba(139, 106, 62, .18), transparent 30%), linear-gradient(180deg, #141311, #0b0b0b);
}

.gs-world-hero > .gs-shell {
	position: relative;
	z-index: 1;
}

.gs-world-hero__title {
	margin: 0 0 30px;
	font-family: var(--gs-font-serif);
	font-weight: 500;
	font-size: clamp(3rem, 7.5vw, 6.6rem);
	line-height: 1.1;
}

.gs-world-hero__image img {
	display: block;
	width: 100%;
	max-width: 640px;
	margin-top: 36px;
}

.gs-world-section {
	position: relative;
	overflow: hidden;
	padding: 130px 0;
	border-top: 1px solid var(--gs-line);
}

.gs-world-section > .gs-shell {
	position: relative;
	z-index: 1;
}

.gs-world-section--junkaishu {
	background: #0a0a0a;
}

.gs-world-section--stage {
	background: var(--gs-bg-alt);
}

/*
 * Phase 5A（2026-09-16）: 03/ORGANIZATION・04/STAGEのkickerは中立
 * セクション（GENTEN/TENRITSUどちらでもない）だが、既定の.gs-kicker
 * （--gs-gold）が暗背景で実測3.8〜3.9:1とAA未達だったため、WORLDページ
 * 内に限定して高コントラスト版に差し替える。他ページの既定.gs-kicker
 * は変更しない。
 */
.gs-world-section--junkaishu .gs-kicker,
.gs-world-section--stage .gs-kicker {
	color: var(--gs-gold-bright);
}

.gs-world-system {
	position: relative;
	overflow: hidden;
	padding: 130px 0;
}

.gs-world-system > .gs-shell {
	position: relative;
	z-index: 1;
}

.gs-world-system--genten {
	background: radial-gradient(circle at 72% 18%, rgba(139, 106, 62, .2), transparent 32%), var(--gs-bg-alt);
}

/*
 * Phase 5A（2026-09-16、WORLD可読性監査）: GENTEN/TENRITSUのkickerを
 * 色のコントラスト是正だけでなく、DIVINITY単体（.gs-divinity-single__number）
 * と同じ「不揃いな二重線（GENTEN）／均一な一本線（TENRITSU）」という
 * 構造的な語彙で描き分ける。「暗い原天＝悪／明るい天律＝善」という
 * 色の二項対立だけに頼らないための最小限の差分（新色・新規装飾は
 * 追加せず、既存の意匠語彙をWORLDのkickerにも適用するのみ）。
 */
.gs-world-system--genten .gs-kicker {
	display: inline-block;
	padding-bottom: 6px;
	color: var(--gs-gold-bright);
	border-bottom: 1px solid rgba(139, 106, 62, .5);
	box-shadow: 0 3px 0 -2px rgba(107, 68, 50, .35);
}

.gs-world-system--tenritsu {
	background: linear-gradient(150deg, #f6f4ed, var(--gs-tenritsu-bg-2));
	color: var(--gs-tenritsu-text);
}

/*
 * Phase 5A（2026-09-16）: 実測でkickerが3.41〜4.0:1（AA 4.5:1未達）、
 * .gs-proseが4.9〜5.8:1（AAは満たすがPhase 1でDIVINITY単体に適用した
 * 基準＝12〜14:1を下回る）だったため是正する。
 * - kicker: --gs-tenritsu-gold → --gs-tenritsu-quote（7.0〜8.3:1）
 * - .gs-prose: --gs-tenritsu-muted → --gs-tenritsu-text（12〜14:1、
 *   Phase 1でDIVINITY単体の本文に適用したのと同じトークン・同じ基準）
 * あわせてkickerに均一な一本線（TENRITSU側の意匠語彙）を追加。
 */
.gs-world-system--tenritsu .gs-kicker {
	display: inline-block;
	padding-bottom: 6px;
	color: var(--gs-tenritsu-quote);
	border-bottom: 1px solid rgba(139, 118, 65, .55);
}

.gs-world-system--tenritsu .gs-prose {
	color: var(--gs-tenritsu-text);
}

/*
 * Phase 7（2026-09-16、VISUAL IMPACT REBASE）: 「標本／地誌スロット」
 * （gitenshinwa_child_render_world_specimen()）。原天/天律/巡界衆/舞台
 * 紹介の4セクションいずれも、Local上では対応する画像フィールド
 * （genten_image等）が現時点で未設定（画像0件）だったため、旧実装
 * （画像がある時だけ.gs-proseの内側に小さく差し込む）のままだと
 * 「テキスト1カラム＋ほぼ空白の1カラム」という普通のWordPress
 * 2カラムページに見えてしまっていた。画像の有無に関わらず必ず
 * このスロット自体を描画し、無い場合はWORKS/STORE
 * （gs-work-card__empty-frame等）と同じ「まだ写真の無い展示ケース」
 * の額縁で埋める。画像が入った時点で自動的に額縁いっぱいの主役画像
 * へ切り替わる（コード変更不要）。
 */
.gs-world-record__grid {
	display: grid;
	grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr);
	gap: 6vw;
	align-items: stretch;
}

.gs-world-record__text {
	display: flex;
	flex-direction: column;
	justify-content: center;
}

.gs-world-record__text h2 {
	margin: 10px 0 20px;
	font-family: var(--gs-font-serif);
	font-weight: 500;
	font-size: clamp(2.2rem, 4.6vw, 3.8rem);
	line-height: 1.2;
}

.gs-world-record__specimen {
	position: relative;
	min-height: 380px;
	overflow: hidden;
	background: rgba(255, 255, 255, .03);
}

.gs-world-record__specimen img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.gs-world-record__specimen-empty {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	height: 100%;
	min-height: 380px;
}

.gs-world-record__specimen-label {
	font-family: var(--gs-font-sans);
	font-size: .66rem;
	letter-spacing: .32em;
	text-transform: uppercase;
	color: var(--gs-muted);
	opacity: .48;
}

/* GENTEN: DIVINITY単体・DIVINITIES目録と同じ、わずかな傾き＋ずらした二重縁取り。 */
.gs-world-record__specimen--genten {
	border: 1px solid var(--gs-line-strong);
	transform: rotate(-.35deg);
}

.gs-world-record__specimen--genten::after {
	content: '';
	position: absolute;
	inset: 7px -5px -7px 9px;
	border: 1px solid rgba(107, 68, 50, .4);
	pointer-events: none;
}

/* TENRITSU: 均一な縁取り＋対称な光暈。明色背景のため地色・ラベル色をDIVINITIES目録と同じ濃色側に合わせる。 */
.gs-world-record__specimen--tenritsu {
	background: rgba(0, 0, 0, .03);
	border: 1px solid rgba(139, 118, 65, .4);
}

.gs-world-record__specimen--tenritsu .gs-world-record__specimen-label {
	color: var(--gs-tenritsu-muted);
	opacity: .65;
}

.gs-world-record__specimen--tenritsu::before {
	content: '';
	position: absolute;
	inset: -10%;
	background: radial-gradient(circle, rgba(139, 118, 65, .16), transparent 68%);
	z-index: -1;
}

.gs-world-section--stage .gs-world-record__specimen--neutral,
.gs-world-section--junkaishu .gs-world-record__specimen--neutral {
	background: rgba(255, 255, 255, .03);
}

/* 中立（巡界衆・舞台紹介）: GENTEN/TENRITSUどちらの装飾にも寄らない、均整の取れた単線の額縁。 */
.gs-world-record__specimen--neutral {
	border: 1px solid rgba(139, 106, 62, .32);
}

.gs-world-record__specimen--neutral::before {
	content: '';
	position: absolute;
	inset: 12px;
	border: 1px solid rgba(139, 106, 62, .18);
	pointer-events: none;
}

.gs-world-final {
	min-height: 400px;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 110px 0;
	background: radial-gradient(circle at 50% 45%, #221c17 0, #0e0e0e 45%, #070707 100%);
}

.gs-world-final__links {
	display: flex;
	justify-content: center;
	gap: 36px;
	flex-wrap: wrap;
}

.gs-section--aux {
	padding: 100px 0;
	border-top: 1px solid var(--gs-line);
}

/* ---------- DIVINITIES（archive-divinity.php / single-divinity.php） ----------
 * 「神格を観察する」役割。原天＝非対称・粗いグリッド線・暗い質感、
 * 天律＝対称・明るい質感、というTOPの.gs-dualityで確立した対比を、
 * 一覧・詳細ページでも一貫して使う。
 */

.gs-archive-intro {
	position: relative;
	padding: 200px 0 90px;
	background: linear-gradient(180deg, #141311, #0b0b0b);
}

/*
 * Phase 5B（2026-09-16）: DIVINITIES archiveのintro kicker（既定の
 * .gs-kicker／--gs-gold）が、この背景に対し実測3.74〜3.96:1と
 * WCAG AA未達だったため、Phase 5Aで追加済みの --gs-gold-bright を
 * このページのintroに限定して適用する（共有の.gs-kicker・--gs-gold・
 * 他ページの.gs-archive-introは変更しない）。
 */
.gs-archive-intro--divinities .gs-kicker {
	color: var(--gs-gold-bright);
}

.gs-archive-intro__title {
	margin: 18px 0 22px;
	font-family: var(--gs-font-serif);
	font-weight: 500;
	font-size: clamp(2.6rem, 6vw, 4.6rem);
	line-height: 1.2;
}

.gs-divinities-group {
	position: relative;
	overflow: hidden;
	padding: 110px 0 130px;
}

.gs-divinities-group--genten {
	background: radial-gradient(circle at 78% 14%, rgba(139, 106, 62, .2), transparent 34%), var(--gs-bg-alt);
}

.gs-divinities-group--tenritsu {
	background: linear-gradient(150deg, #f6f4ed, var(--gs-tenritsu-bg-2));
	color: var(--gs-tenritsu-text);
}

/*
 * Phase 5B（2026-09-16）: グループ見出しkicker（「01 / GENTEN」
 * 「02 / TENRITSU」）を実測したところ、GENTEN側は既定の.gs-kicker
 * （--gs-gold）が3.13〜3.80:1、TENRITSU側は既定の--gs-tenritsu-goldが
 * 3.41〜4.00:1で、いずれもAA未達だった（Phase 5AでWORLDに発見した
 * ものと同じバグパターン）。Phase 5Aで追加済みの
 * --gs-gold-bright／--gs-tenritsu-quoteを、このページのグループ見出し
 * に限定して再利用する。共有の.gs-kicker・--gs-gold・
 * --gs-tenritsu-goldは変更しない。
 */
.gs-divinities-group--genten .gs-divinities-group__head .gs-kicker {
	color: var(--gs-gold-bright);
}

.gs-divinities-group--tenritsu .gs-kicker {
	color: var(--gs-tenritsu-quote);
}

.gs-divinities-group--tenritsu .gs-lead {
	color: var(--gs-tenritsu-muted);
}

.gs-divinities-group > .gs-shell {
	position: relative;
	z-index: 1;
}

.gs-divinities-group__head {
	max-width: 720px;
	margin-bottom: 56px;
}

.gs-divinities-group__head h2 {
	margin: 10px 0 20px;
	font-family: var(--gs-font-serif);
	font-weight: 500;
	font-size: clamp(2.2rem, 4.4vw, 3.6rem);
}

/*
 * Phase 5B（2026-09-16、DIVINITIES archive「神格目録」化）:
 * 均等なカードグリッド（.gs-divinity-grid／.gs-divinity-card）を廃止し、
 * 1件ずつ縦に並ぶ「特別展示の目録」に変更した。GENTEN/TENRITSUの
 * 分類差は、DIVINITY単体（.gs-divinity-single--genten/--tenritsu）で
 * 確立済みの構造語彙をそのまま転用して表現する：
 * GENTEN＝2カラムの非対称構図＋わずかに傾いた二重縁取りの画像枠、
 * TENRITSU＝1カラム中央揃えの対称構図＋均一な縁取り＋淡い光暈。
 * 単純な「暗い／明るい」の色分けだけに頼らない。
 */
.gs-divinity-catalog {
	display: flex;
	flex-direction: column;
	gap: 1px;
	background: var(--gs-line);
}

.gs-divinity-entry {
	position: relative;
	display: grid;
	grid-template-columns: minmax(0, .36fr) minmax(0, .64fr);
	gap: 6vw;
	align-items: center;
	padding: 56px 40px;
	background: #0d0d0d;
	color: inherit;
	text-decoration: none;
	transition: background-color .3s ease;
}

.gs-divinities-group--tenritsu .gs-divinity-entry {
	background: #fff;
}

.gs-divinity-entry:hover {
	background: #161616;
}

.gs-divinities-group--tenritsu .gs-divinity-entry:hover {
	background: var(--gs-tenritsu-bg);
}

.gs-divinity-entry__visual {
	position: relative;
	aspect-ratio: 3 / 4;
	display: flex;
	align-items: center;
	justify-content: center;
	overflow: hidden;
	background: rgba(255, 255, 255, .03);
}

.gs-divinities-group--tenritsu .gs-divinity-entry__visual {
	background: rgba(0, 0, 0, .03);
}

.gs-divinity-entry__visual img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

/*
 * GENTEN: DIVINITY単体の画像枠と同じ、わずかな傾き＋ずらした二重縁取り
 * （「壁に無造作に立てかけられた収蔵品」の据わりの悪さ）。
 */
.gs-divinities-group--genten .gs-divinity-entry__visual {
	border: 1px solid var(--gs-line-strong);
	transform: rotate(-.35deg);
}

.gs-divinities-group--genten .gs-divinity-entry__visual::after {
	content: '';
	position: absolute;
	inset: 6px -4px -6px 8px;
	border: 1px solid rgba(107, 68, 50, .4);
	pointer-events: none;
}

/*
 * TENRITSU: DIVINITY単体と同じく1カラム中央揃えへ切り替え、均等な
 * 縁取り＋対称な光暈を添える。GENTENの2カラム非対称構図とは構造その
 * ものが異なるため、「暗い＝悪／明るい＝善」という色だけの二項対立に
 * ならない。
 */
.gs-divinities-group--tenritsu .gs-divinity-entry {
	grid-template-columns: 1fr;
	justify-items: center;
	text-align: center;
	max-width: 640px;
	margin: 0 auto;
}

.gs-divinities-group--tenritsu .gs-divinity-entry__visual {
	width: min(320px, 60%);
	border: 1px solid rgba(139, 118, 65, .4);
}

.gs-divinities-group--tenritsu .gs-divinity-entry__visual::before {
	content: '';
	position: absolute;
	inset: -10%;
	background: radial-gradient(circle, rgba(139, 118, 65, .16), transparent 68%);
	z-index: -1;
}

.gs-divinities-group--tenritsu .gs-divinity-entry__body {
	display: flex;
	flex-direction: column;
	align-items: center;
}

.gs-divinity-entry__ghost-number {
	font-family: var(--gs-font-serif);
	font-size: clamp(3.6rem, 9vw, 5.6rem);
	color: transparent;
	-webkit-text-stroke: 1px var(--gs-line-strong);
	text-stroke: 1px var(--gs-line-strong);
}

.gs-divinities-group--tenritsu .gs-divinity-entry__ghost-number {
	-webkit-text-stroke: 1px rgba(139, 106, 62, .4);
	text-stroke: 1px rgba(139, 106, 62, .4);
}

/*
 * kicker（番号 / CLASSIFICATION）: Phase 5A・Phase 3で確立した
 * 「GENTEN＝不揃いな二重下線／TENRITSU＝均一な一本線」の造形語彙を
 * 転用。色も、既定の.gs-kicker（--gs-gold）／--gs-tenritsu-goldが
 * このページの背景に対し実測でAA未達（詳細はPhase 5B完了報告参照）
 * だったため、Phase 5Aで追加済みの --gs-gold-bright と
 * --gs-tenritsu-quote を再利用する。共有の.gs-kicker本体・
 * --gs-gold・--gs-tenritsu-goldは変更しない。
 */
.gs-divinity-entry__number {
	display: inline-block;
	padding-bottom: 6px;
	color: var(--gs-gold-bright);
}

.gs-divinities-group--genten .gs-divinity-entry__number {
	border-bottom: 1px solid rgba(139, 106, 62, .5);
	box-shadow: 0 3px 0 -2px rgba(107, 68, 50, .35);
}

.gs-divinities-group--tenritsu .gs-divinity-entry__number {
	color: var(--gs-tenritsu-quote);
	border-bottom: 1px solid rgba(139, 118, 65, .55);
}

.gs-divinity-entry__name {
	margin: 14px 0 6px;
	font-family: var(--gs-font-serif);
	font-weight: 500;
	font-size: clamp(1.8rem, 3.4vw, 2.8rem);
	line-height: 1.3;
}

.gs-divinity-entry__reading {
	margin: 0 0 14px;
	font-family: var(--gs-font-sans);
	font-size: .7rem;
	letter-spacing: .16em;
	text-transform: uppercase;
	color: var(--gs-muted);
}

.gs-divinities-group--tenritsu .gs-divinity-entry__reading {
	color: var(--gs-tenritsu-muted);
}

/*
 * EPITHET（通り名）: DIVINITY単体と同じ役割・色階層。TENRITSU側は
 * 単体と同じ「碑文・銘板」風の上下二重線を添える。
 */
.gs-divinity-entry__epithet {
	margin: 0 0 16px;
	font-family: var(--gs-font-serif);
	font-style: italic;
	font-size: .96rem;
	color: var(--gs-muted);
}

.gs-divinities-group--tenritsu .gs-divinity-entry__epithet {
	color: var(--gs-tenritsu-muted);
	padding: 12px 0;
	border-top: 1px solid rgba(139, 118, 65, .35);
	border-bottom: 1px solid rgba(139, 118, 65, .35);
}

.gs-divinity-entry__catch {
	margin: 0;
	font-size: .9rem;
	line-height: 1.9;
	color: var(--gs-muted);
}

.gs-divinities-group--tenritsu .gs-divinity-entry__catch {
	color: var(--gs-tenritsu-muted);
}

.gs-divinity-entry__arrow {
	position: absolute;
	right: 40px;
	bottom: 32px;
	opacity: 0;
	transition: opacity .25s ease, transform .25s ease;
}

.gs-divinity-entry:hover .gs-divinity-entry__arrow {
	opacity: 1;
	transform: translateX(4px);
}

.gs-divinities-group--tenritsu .gs-divinity-entry__arrow {
	position: static;
	margin-top: 8px;
}

/* ---------- DIVINITIES single ---------- */

.gs-divinity-single {
	position: relative;
	overflow: hidden;
	padding: 190px 0 130px;
	background: linear-gradient(180deg, #141311, #0b0b0b);
}

.gs-divinity-single--tenritsu {
	background: linear-gradient(150deg, #f6f4ed, var(--gs-tenritsu-bg-2));
	color: var(--gs-tenritsu-text);
}

.gs-divinity-single--tenritsu .gs-kicker {
	color: var(--gs-tenritsu-quote);
}

/*
 * TENRITSU文字階層（2026-09-16、可読性バグ修正）。
 * 修正前は .gs-lead / .gs-prose / .gs-prose blockquote に天律用の
 * 文字色上書きが無く、GENTEN向けの既定色（明色文字）がそのまま
 * 明色背景に乗り、実測コントラスト比1.00〜2.42:1（WCAG AA基準
 * 4.5:1を大きく下回る）となっていた。GENTEN側の階層設計
 * （name/prose=強、lead=中間の--gs-muted、blockquote=--gs-boneの
 * 独立アクセント）を、既存の天律トークンで同じ関係のまま再現する。
 * - 本文（.gs-prose）: --gs-tenritsu-text（12〜14:1、長文可読性を優先）
 * - リード（.gs-lead）: --gs-tenritsu-muted（4.9〜5.8:1、見出しより一段弱く）
 * - 引用（blockquote）: --gs-tenritsu-quote（7.0〜9.9:1、独立アクセント）
 * このブロック（.gs-divinity-single--tenritsu）以外のTENRITSU文脈
 * （WORLD/DIVINITIES一覧等）は、実測で既にAA基準を満たしているため
 * 意図的に対象外としている。
 */
.gs-divinity-single--tenritsu .gs-lead {
	color: var(--gs-tenritsu-muted);
}

.gs-divinity-single--tenritsu .gs-prose {
	color: var(--gs-tenritsu-text);
}

/*
 * 実際のマークアップでは <blockquote>（quoteフィールド）は
 * .gs-prose（descriptionフィールド）の兄弟要素であり子要素ではない
 * （gitenshinwa_child_render_divinity_single()参照）。基底の
 * `.gs-prose blockquote` セレクタ自体がこの構造にそもそも一致しない
 * ため、GENTEN側も含めてblockquote固有のタイポグラフィ
 * （serif・大きめフォントサイズ）は現状どちらの配色でも適用されて
 * いない。今回はTENRITSU可読性の範囲に限定し、実際の要素を正しく
 * 指すセレクタで文字色のみ修正する（タイポグラフィの是正・マーク
 * アップ変更は本フェーズの対象外、別途報告する）。
 */
.gs-divinity-single--tenritsu blockquote {
	color: var(--gs-tenritsu-quote);
}

.gs-divinity-single__inner {
	position: relative;
	z-index: 1;
	display: grid;
	/* 2026-09-16 Phase 3: 「大胆な画像占有率」のため.8fr/1.2frから拡大。 */
	grid-template-columns: minmax(0, 1fr) minmax(0, 1.1fr);
	gap: 8vw;
	align-items: start;
}

.gs-divinity-single__visual {
	position: relative;
	aspect-ratio: 3 / 4;
	display: flex;
	align-items: center;
	justify-content: center;
	background: rgba(255, 255, 255, .03);
}

.gs-divinity-single--tenritsu .gs-divinity-single__visual {
	background: rgba(0, 0, 0, .03);
}

/*
 * GENTEN / TENRITSUの造形言語の違い（2026-09-16、Phase 3）。
 * GENTEN=悪、TENRITSU=善という単純な色分けにはせず、「非対称・
 * わずかな崩れ」対「対称・過剰な秩序」という構造的な対比だけで
 * 描き分ける（どちらも神聖、異なる種類の不穏さ）。
 *
 * GENTEN: ビジュアル枠をわずかに傾け（0.35deg）、内側に色調の違う
 * 二重の縁取りをずらして重ねることで「壁に無造作に立てかけられた
 * 収蔵品」のような据わりの悪さを出す。過剰装飾にならないよう、
 * 傾き・ずれともにごく小さい値に留めている。
 */
.gs-divinity-single--genten .gs-divinity-single__visual {
	border: 1px solid var(--gs-line-strong);
	transform: rotate(-.35deg);
}

.gs-divinity-single--genten .gs-divinity-single__visual::after {
	content: '';
	position: absolute;
	inset: 7px -5px -7px 9px;
	border: 1px solid rgba(107, 68, 50, .4);
	pointer-events: none;
}

/*
 * TENRITSU: 枠を完全に均等な太さ・色で囲み、背景にごく淡い左右対称の
 * 光暈（radial-gradient）を添える。「精密な細線・円形秩序」を、
 * 装飾を増やさず罫線と光の量だけで表現する。
 */
.gs-divinity-single--tenritsu .gs-divinity-single__visual {
	border: 1px solid rgba(139, 118, 65, .4);
}

.gs-divinity-single--tenritsu .gs-divinity-single__visual::before {
	content: '';
	position: absolute;
	inset: -10%;
	background: radial-gradient(circle, rgba(139, 118, 65, .16), transparent 68%);
	z-index: -1;
}

/*
 * TENRITSU単体ページ全体を左右対称・中央揃えの1カラム構成へ
 * 切り替える（GENTENは従来通り非対称の2カラムを維持）。文字色は
 * Phase 1で修正した.gs-lead/.gs-prose/blockquoteのトークンを一切
 * 変更していないため、コントラストはそのまま維持される。
 */
.gs-divinity-single--tenritsu .gs-divinity-single__inner {
	grid-template-columns: 1fr;
	justify-items: center;
	text-align: center;
	max-width: 760px;
	margin: 0 auto;
}

.gs-divinity-single--tenritsu .gs-divinity-single__visual {
	width: min(420px, 70%);
}

.gs-divinity-single--tenritsu .gs-divinity-single__body {
	display: flex;
	flex-direction: column;
	align-items: center;
}

.gs-divinity-single--tenritsu .gs-lead,
.gs-divinity-single--tenritsu .gs-prose {
	max-width: 620px;
}

.gs-divinity-single__visual img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.gs-divinity-single__ghost-number {
	font-family: var(--gs-font-serif);
	font-size: clamp(5rem, 12vw, 8rem);
	color: transparent;
	-webkit-text-stroke: 1px var(--gs-line-strong);
	text-stroke: 1px var(--gs-line-strong);
}

.gs-divinity-single__name {
	margin: 14px 0 6px;
	font-family: var(--gs-font-serif);
	font-weight: 500;
	/* 2026-09-16 Phase 3: 「大きなタイポグラフィ」のため上限を拡大。 */
	font-size: clamp(2.8rem, 7vw, 5.6rem);
	line-height: 1.15;
}

/*
 * CATEGORY/NUMBER（kicker）の造形言語差（2026-09-16、Phase 3）。
 * GENTENは下線を不揃いな二重線に、TENRITSUは均一な一本線にする
 * ことで、「崩れた記録」対「過剰な秩序」を最小限の罫線だけで表現する。
 */
.gs-divinity-single__number {
	display: inline-block;
	padding-bottom: 6px;
}

.gs-divinity-single--genten .gs-divinity-single__number {
	border-bottom: 1px solid rgba(139, 106, 62, .5);
	box-shadow: 0 3px 0 -2px rgba(107, 68, 50, .35);
}

.gs-divinity-single--tenritsu .gs-divinity-single__number {
	border-bottom: 1px solid rgba(139, 118, 65, .55);
}

.gs-divinity-single__reading {
	margin: 0 0 26px;
	font-family: var(--gs-font-sans);
	font-size: .72rem;
	letter-spacing: .16em;
	text-transform: uppercase;
	color: var(--gs-muted);
}

.gs-divinity-single--tenritsu .gs-divinity-single__reading {
	color: var(--gs-tenritsu-muted);
}

/*
 * 通り名 / EPITHET（2026-09-16、Phase 2 CMS機能整備で追加）。
 * NAME → RUBY（reading）→ EPITHET → CLASSIFICATION/ATTRIBUTES → LEAD
 * → BODY という将来の情報階層を見据え、readingの直後・リード文の直前に
 * 配置する。読み（ふりがな、英字トラッキング表示）とは役割が違う
 * （通り名は日本語の句として読ませる）ため、text-transform:uppercaseは
 * 使わず、本文と同じserif系でイタリック体にして区別している。
 * 色階層はreadingと同じ--gs-muted系（name/prose本体より一段弱く）。
 */
.gs-divinity-single__epithet {
	margin: 0 0 22px;
	font-family: var(--gs-font-serif);
	font-style: italic;
	font-size: 1rem;
	color: var(--gs-muted);
}

.gs-divinity-single--tenritsu .gs-divinity-single__epithet {
	color: var(--gs-tenritsu-muted);
	/* 「碑文・銘板」風の上下二重線（2026-09-16、Phase 3）。GENTEN側の
	   片側だけの罫線と対比させ、TENRITSUらしい対称・秩序を出す。 */
	padding: 14px 0;
	border-top: 1px solid rgba(139, 118, 65, .35);
	border-bottom: 1px solid rgba(139, 118, 65, .35);
}

.gs-divinity-single__related {
	margin-top: 44px;
}

/*
 * CLASSIFICATION / ATTRIBUTES 共通コンポーネント（2026-09-16、Phase 3）。
 * DIVINITY（分類・シンボル）とCHARACTER（所属・年齢）の双方で共有する。
 * 「ステータス欄」ではなく美術館の展示ラベルにある「材質／制作年代」
 * のようなラベル：値のテキスト行として組み、アイコン・チップ・
 * カード化は行わない（ゲームUI排除の指示のため）。
 */
.gs-attributes {
	margin: 4px 0 30px;
	display: flex;
	flex-direction: column;
}

.gs-attributes__row {
	display: flex;
	flex-wrap: wrap;
	gap: 6px 18px;
	padding: 10px 0;
	border-bottom: 1px solid var(--gs-line);
	font-size: .86rem;
}

.gs-attributes__row:first-child {
	border-top: 1px solid var(--gs-line);
}

.gs-attributes__label {
	flex: 0 0 auto;
	min-width: 7em;
	margin: 0;
	font-family: var(--gs-font-sans);
	font-size: .68rem;
	letter-spacing: .14em;
	text-transform: uppercase;
	color: var(--gs-gold);
}

.gs-attributes__value {
	margin: 0;
	color: var(--gs-muted);
}

/* GENTEN: 行の罫線に不揃いさ（濃淡差）を持たせ「古い台帳」感を出す。 */
.gs-divinity-single--genten .gs-attributes__row:nth-child(2n) {
	border-bottom-color: rgba(107, 68, 50, .3);
}

/* TENRITSU: 均一な淡金の罫線・中央揃えで「秩序」を強調する。文字色は
   Phase 1で検証済みの --gs-tenritsu-muted のままなのでコントラストは
   維持される。 */
.gs-divinity-single--tenritsu .gs-attributes {
	align-items: center;
}

.gs-divinity-single--tenritsu .gs-attributes__row {
	justify-content: center;
	border-bottom-color: rgba(139, 118, 65, .35);
}

.gs-divinity-single--tenritsu .gs-attributes__row:first-child {
	border-top-color: rgba(139, 118, 65, .35);
}

.gs-divinity-single--tenritsu .gs-attributes__label {
	color: var(--gs-tenritsu-quote);
}

.gs-divinity-single--tenritsu .gs-attributes__value {
	color: var(--gs-tenritsu-muted);
}

.gs-related-list {
	margin: 12px 0 0;
	padding: 0;
	list-style: none;
	display: flex;
	flex-direction: column;
	gap: 10px;
}

/* ---------- CHARACTERS（archive-character.php / single-character.php） ----------
 * 「人間を知る」役割。DIVINITIES（原天/天律の二極構造）とは対照的に、
 * 単一の温かみのあるドキュメント/身上書のような質感にする。
 */

.gs-archive-intro--characters {
	background: linear-gradient(180deg, #171512, #0d0c0a);
}

/*
 * Phase 5C（2026-09-16）: 実測3.67〜3.94:1でAA未達だったため、
 * WORLD/DIVINITIES/STORY/ARCHIVEと同じ --gs-gold-bright をこの
 * ページのintroに限定して適用する（共有.gs-kicker/--gs-gold自体は
 * 変更しない）。
 */
.gs-archive-intro--characters .gs-kicker {
	color: var(--gs-gold-bright);
}

.gs-characters-group {
	position: relative;
	padding: 40px 0 140px;
	background: var(--gs-bg-alt);
}

/*
 * Phase 5C（2026-09-16、CHARACTERS「人物展示」化）: DIVINITIES神格目録
 * （GENTEN/TENRITSUの二極構造・回転/対称という構造差）をそのまま
 * 流用せず、CHARACTERS独自の「1人の人物をじっくり見せる」語彙にする。
 * 幅220pxの小さなチーム紹介グリッドをやめ、ポートレートを大きく
 * （4:5）し、カード間をヘアラインで区切った「展示台帳」寄りの1枚
 * ずつの構成に変更。DIVINITIESのような分類（原天/天律）は存在
 * しないため、色や配置での二極対比は付けていない（単一の温かみの
 * あるトーンを維持）。
 */
.gs-character-grid {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
	gap: 1px;
	background: var(--gs-line);
}

.gs-character-card {
	display: flex;
	flex-direction: column;
	gap: 20px;
	padding: 44px 32px;
	background: var(--gs-bg-alt);
	color: inherit;
	text-decoration: none;
	transition: background-color .3s ease;
}

.gs-character-card:hover {
	background: #17140f;
}

.gs-character-card__portrait {
	position: relative;
	aspect-ratio: 4 / 5;
	display: flex;
	align-items: center;
	justify-content: center;
	overflow: hidden;
	background: rgba(255, 255, 255, .03);
	border: 1px solid var(--gs-line);
}

.gs-character-card__portrait img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.gs-character-card__initial {
	font-family: var(--gs-font-serif);
	font-size: clamp(2.6rem, 6vw, 3.6rem);
	color: var(--gs-muted);
}

.gs-character-card__name {
	margin: 0;
	font-family: var(--gs-font-serif);
	font-weight: 500;
	font-size: 1.5rem;
}

.gs-character-card__reading {
	margin: 0;
	font-family: var(--gs-font-sans);
	font-size: .68rem;
	letter-spacing: .1em;
	color: var(--gs-muted);
}

/*
 * EPITHET（Phase 5C追加）: CHARACTER単体の.gs-character-single__epithetと
 * 同じ役割・同じトーンをカード側にも展開し、NAME/RUBY/EPITHET/所属を
 * 優先する情報階層にする（新規フィールドは追加せず、単体側で既に
 * 使用しているepithetメタを一覧側でも表示するだけ）。
 */
.gs-character-card__epithet {
	margin: 0;
	font-family: var(--gs-font-serif);
	font-style: italic;
	font-size: .92rem;
	color: var(--gs-muted);
}

.gs-character-card__meta {
	margin: 0;
	font-family: var(--gs-font-sans);
	font-size: .68rem;
	letter-spacing: .1em;
	color: var(--gs-muted);
}

.gs-character-single {
	position: relative;
	padding: 190px 0 130px;
	background: var(--gs-bg-alt);
}

.gs-character-single__inner {
	display: grid;
	/* 2026-09-16 Phase 3: Visual BibleのCHARACTER DESIGN的な「作品として
	   人物を見る」構成に合わせ、.7fr/1.3frから画像側を拡大。 */
	grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
	gap: 6vw;
	align-items: start;
}

.gs-character-single__portrait {
	position: relative;
	aspect-ratio: 3 / 4;
	display: flex;
	align-items: center;
	justify-content: center;
	overflow: hidden;
	background: rgba(255, 255, 255, .03);
	border: 1px solid var(--gs-line);
}

.gs-character-single__portrait img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.gs-character-single__initial {
	font-family: var(--gs-font-serif);
	font-size: clamp(4rem, 9vw, 6rem);
	color: var(--gs-muted);
}

/*
 * Phase 5C（2026-09-16）: 実測3.80:1でAA未達だったため（--gs-bg-alt上の
 * 既定--gs-gold）、WEB DESIGN MASTERとの整合のための最小限の調整として
 * --gs-gold-brightに限定して適用する。CHARACTER単体の全面改修は行わない。
 */
.gs-character-single .gs-kicker {
	color: var(--gs-gold-bright);
}

.gs-character-single__name {
	margin: 14px 0 6px;
	font-family: var(--gs-font-serif);
	font-weight: 500;
	/* 2026-09-16 Phase 3: 「大きなタイポグラフィ」のため上限を拡大。 */
	font-size: clamp(2.8rem, 6.4vw, 5.2rem);
	line-height: 1.15;
}

.gs-character-single__reading {
	margin: 0 0 14px;
	font-family: var(--gs-font-sans);
	font-size: .72rem;
	letter-spacing: .16em;
	text-transform: uppercase;
	color: var(--gs-muted);
}

/*
 * 通り名 / EPITHET（2026-09-16、Phase 2 CMS機能整備で追加）。
 * DIVINITY単体（.gs-divinity-single__epithet）と同じ役割・同じ
 * トーンで統一し、将来CHARACTER/DIVINITYの情報階層
 * （NAME→RUBY→EPITHET→CLASSIFICATION/ATTRIBUTES→LEAD→BODY）を
 * 揃えやすくしている。CHARACTERにはGENTEN/TENRITSUのような配色
 * バリアントが無いため、天律用の上書きは不要。
 */
.gs-character-single__epithet {
	margin: 0 0 22px;
	font-family: var(--gs-font-serif);
	font-style: italic;
	font-size: 1rem;
	color: var(--gs-muted);
}

.gs-character-single__related {
	margin-top: 44px;
}

/* ---------- STORY（archive-story.php / single-story.php） ----------
 * 「物語を読む」役割。TOPティザーの.gs-section--story（紙めくり質感の
 * grain + bg-alt）と同じ質感を一覧・詳細ページでも一貫させる。
 * 詳細ページは可読性優先で本文の測度（行長）を絞る。
 */

.gs-archive-intro--story {
	background: linear-gradient(180deg, #171512, #0d0c0a);
}

/*
 * Phase 5B（2026-09-16）: 実測3.67〜3.94:1でAA未達だったため、
 * --gs-gold-brightをこのページのintroに限定して適用する。
 */
.gs-archive-intro--story .gs-kicker {
	color: var(--gs-gold-bright);
}

.gs-stories-group {
	position: relative;
	overflow: hidden;
	padding: 40px 0 140px;
	background: var(--gs-bg-alt);
}

/*
 * Phase 5B（2026-09-16、STORY archive「章目録」化）: サムネイル＋
 * あらすじ抜粋という記事一覧的な行リスト（.gs-story-row）を廃止し、
 * 各章のhero_imageを画面の大部分に敷いた「章の扉」1枚が縦に並ぶ
 * 構成にした。synopsisの抜粋は表示せず、CHAPTER番号・タイトル・
 * サブタイトルだけを大きく見せることで、第一章のキービジュアルと
 * タイトルが主役になるようにしている。CHAPTER 02以降が増えても
 * 同じ「扉」が積み重なるだけで成立する。
 */
.gs-story-list {
	display: flex;
	flex-direction: column;
	gap: 4px;
}

/*
 * Phase 7（2026-09-16、VISUAL IMPACT REBASE）: 「章の扉」をより画面
 * いっぱいの没入的なものにするため、62vh→92vhへ拡大。あわせて上部の
 * 暗さを弱め（0%を.05→0、50%地点を新設）、画像そのものがより長く
 * 見える時間を作りつつ、文字が乗る下部の暗さ（78%以降）は可読性の
 * ため従来通り強く保つ。額縁の四隅マーク（.gs-hero__frame-cornerと
 * 同じ意匠語彙）を追加し、TOP HEROとSTORYで一貫した「展示ケース」の
 * 印象を作る。
 */
.gs-story-plate {
	position: relative;
	display: flex;
	align-items: flex-end;
	min-height: 92vh;
	overflow: hidden;
	background-image:
		linear-gradient(180deg, rgba(10, 9, 8, 0) 0%, rgba(9, 8, 7, .32) 52%, rgba(8, 7, 6, .82) 80%, rgba(6, 5, 4, .96) 100%),
		var(--gs-story-plate-image, none);
	background-size: cover;
	background-position: center;
	background-color: #0d0c0a;
	color: var(--gs-text);
	text-decoration: none;
}

.gs-story-plate::before,
.gs-story-plate::after {
	content: '';
	position: absolute;
	z-index: 1;
	width: 34px;
	height: 34px;
	pointer-events: none;
}

.gs-story-plate::before {
	top: 28px;
	left: 28px;
	border-top: 1px solid var(--gs-line-strong);
	border-left: 1px solid var(--gs-line-strong);
}

.gs-story-plate::after {
	bottom: 28px;
	right: 28px;
	border-bottom: 1px solid var(--gs-line-strong);
	border-right: 1px solid var(--gs-line-strong);
}

.gs-story-plate__ghost-number {
	position: absolute;
	inset: 0;
	display: flex;
	align-items: center;
	justify-content: center;
	font-family: var(--gs-font-serif);
	font-size: clamp(6rem, 18vw, 12rem);
	color: transparent;
	-webkit-text-stroke: 1px var(--gs-line-strong);
	text-stroke: 1px var(--gs-line-strong);
}

/*
 * Phase 7（2026-09-16）: 一覧側の.gs-story-listから.gs-shellを外して
 * 画面幅いっぱいの写真にしたため（gitenshinwa_child_render_stories_archive()
 * 参照）、文字位置はこのoverlay自身をgs-shellと同じ最大幅で中央寄せ
 * することで他セクションの見出し左端と揃える。
 */
.gs-story-plate__overlay {
	position: relative;
	z-index: 1;
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 10px;
	width: 100%;
	max-width: var(--gs-shell-width);
	margin: 0 auto;
	padding: 64px max(5vw, 32px) 72px;
}

.gs-story-plate__title,
.gs-story-plate__subtitle {
	max-width: 760px;
}

/*
 * kicker（CHAPTER番号）: 既定の.gs-kicker（--gs-gold）はこの暗い
 * オーバーレイに対し実測3.67〜3.94:1でAA未達だったため、Phase 5Aで
 * 追加済みの--gs-gold-brightをこのページの章プレートに限定して
 * 適用する（共有の.gs-kicker・--gs-goldは変更しない）。
 */
.gs-story-plate__kicker {
	color: var(--gs-gold-bright);
}

.gs-story-plate__title {
	display: block;
	font-family: var(--gs-font-serif);
	font-weight: 500;
	font-size: clamp(2.2rem, 5vw, 3.8rem);
	line-height: 1.25;
}

.gs-story-plate__subtitle {
	display: block;
	font-family: var(--gs-font-serif);
	color: var(--gs-bone);
	font-size: clamp(1rem, 1.6vw, 1.2rem);
}

.gs-story-plate__arrow {
	display: inline-block;
	margin-top: 4px;
	opacity: .75;
	transition: opacity .25s ease, transform .25s ease;
}

.gs-story-plate:hover .gs-story-plate__arrow {
	opacity: 1;
	transform: translateX(4px);
}

/*
 * Phase 7（2026-09-16）: 章単体HEROを62vh→78vhへ拡大し、一覧側の
 * .gs-story-plateと高さの体感を揃える。あわせて可読性の保険として、
 * 画像の上に薄いスクリム（.gs-story-plateと同じグラデーション）を
 * 明示的な最前面レイヤーとして追加する（従来は画像が不透明な写真の
 * 場合、背後のlinear-gradientフォールバックが完全に隠れてしまい、
 * 実質的にスクリムが存在しない状態だった）。
 */
.gs-story-single__head {
	position: relative;
	overflow: hidden;
	min-height: 78vh;
	display: flex;
	align-items: flex-end;
	padding: 160px 0 80px;
	background-image:
		linear-gradient(180deg, rgba(10, 9, 8, 0) 0%, rgba(9, 8, 7, .3) 55%, rgba(8, 7, 6, .78) 84%, rgba(6, 5, 4, .92) 100%),
		var(--gs-story-hero, none),
		linear-gradient(180deg, #171512, #0d0c0a);
	background-size: cover;
	background-position: center;
}

.gs-story-single__head > .gs-shell {
	position: relative;
	z-index: 1;
}

.gs-story-single__title {
	margin: 12px 0 20px;
	font-family: var(--gs-font-serif);
	font-weight: 500;
	font-size: clamp(2.4rem, 6vw, 4.6rem);
	line-height: 1.25;
}

.gs-story-single__body {
	padding: 90px 0 130px;
	background: var(--gs-bg-alt);
}

/*
 * .gs-prose--story: STORY本編（約3万字規模の長編和文）専用の読書用
 * タイポグラフィ（2026-09-15追加）。Arkhe親テーマの既定スタイル
 * （bodyへの直接適用によるsans-serif/line-height:1.5等）への依存を
 * 減らし、黒（--gs-bg-alt）・象牙（--gs-text/--gs-bone）・鈍い金
 * （--gs-gold/--gs-line-strong）とShippori Mincho（見出し）/Inter
 * （欧文・キャプション等）を軸にした本サイトのデザイン体系を、本文
 * 領域でも一貫させる。装飾よりも日本語長文の可読性を優先し、
 * p/h2/h3/h4/blockquote/ul/ol/figure/figcaption/img/
 * .wp-block-separator を対象とする。alignwide/alignfullは
 * 幅・位置の計算をこのブロックで変更していないため、標準WordPress
 * ブロックとの互換性はそのまま維持される。
 */
.gs-prose--story {
	max-width: 700px;
	font-size: 1.06rem;
	line-height: 2.1;
}

.gs-prose > *:first-child {
	margin-top: 0;
}

/*
 * 2026-09-15: 原稿を「非空行1行＝1段落ブロック」で保存しているため、
 * 23,640字・2,529段落規模の実データでは、汎用 .gs-prose p の
 * margin-bottom（1.3em）をそのまま使うとスクロール量が大きくなり
 * すぎる。文字サイズ・行間・カラム幅・配色は変更せず、段落の下余白
 * のみを現状比おおむね60%（55〜65%の目安内）に詰め、短文が連続する
 * 場面でも「間」と静かなリズムを保ちながら読書密度を上げる。
 * blockquote内のp（.gs-prose--story blockquote p:last-child）は
 * 別途specificityの高いルールで margin-bottom:0 のまま維持される。
 */
.gs-prose.gs-prose--story p {
	margin-bottom: .78em;
}

/*
 * 2026-09-16: H2/H3デザイン刷新。以前は `.gs-prose--story`（STORY本編）
 * のみに適用していたが、「古代神話×現代美術館×禁忌のデジタルアーカイブ」
 * の世界観を本文見出し全般（WORLD/WORK/STORE等の自由記述本文を含む
 * `.gs-prose`全般）で統一するため、セレクタを `.gs-prose` へ一般化した。
 * ページ固有のセクション見出し（`.gs-world-hero__title` 等の
 * `__title`/`__name`系）やHEROタイトルは `.gs-prose` の子孫ではないため
 * 影響を受けない。
 *
 * H2＝「展示キャプション」: 上に極小の記録マーク（--gs-copper の短い線）、
 * 下に --gs-line による非常に細い区切り線。背景・箱組み・角丸・太い線は
 * 使わず、余白と細い線だけで「古い記録に現代美術館のラベルを添えた」
 * 印象を作る。
 * H3＝「禁忌インデックス」: 左に --gs-copper の極細縦線＋控えめな
 * padding-leftのみ。装飾を増やさずH2より明確に弱い階層にする。
 */
.gs-prose h2,
.gs-prose h3,
.gs-prose h4 {
	margin: 2.6em 0 1em;
	font-weight: 500;
	line-height: 1.5;
}

.gs-prose h2 {
	font-family: var(--gs-font-serif);
	font-size: clamp(1.5rem, 2.4vw, 2rem);
	color: var(--gs-bone);
	border-bottom: 1px solid var(--gs-line);
	padding-bottom: .55em;
}

.gs-prose h2::before {
	content: "";
	display: block;
	width: 28px;
	height: 1px;
	margin-bottom: .85em;
	background: var(--gs-copper);
}

.gs-prose h3 {
	font-family: var(--gs-font-serif);
	font-size: clamp(1.25rem, 1.9vw, 1.55rem);
	color: var(--gs-bone);
	padding-left: .85em;
	border-left: 1px solid var(--gs-copper);
}

.gs-prose h4 {
	font-family: var(--gs-font-sans);
	font-size: .82rem;
	letter-spacing: .14em;
	text-transform: uppercase;
	color: var(--gs-gold);
}

.gs-prose--story blockquote {
	margin: 2.2em 0 1.6em;
	padding-left: 26px;
	border-left: 2px solid var(--gs-line-strong);
}

.gs-prose--story blockquote p:last-child {
	margin-bottom: 0;
}

.gs-prose--story ul,
.gs-prose--story ol {
	margin: 0 0 1.3em;
	padding-left: 1.3em;
	color: var(--gs-text);
}

.gs-prose--story ul {
	list-style: disc;
}

.gs-prose--story ol {
	list-style: decimal;
}

.gs-prose--story li {
	margin: 0 0 .6em;
}

.gs-prose--story li:last-child {
	margin-bottom: 0;
}

.gs-prose--story li > ul,
.gs-prose--story li > ol {
	margin-top: .6em;
	margin-bottom: 0;
}

.gs-prose--story figure {
	margin: 2.6em 0;
}

.gs-prose--story img {
	display: block;
	max-width: 100%;
	height: auto;
}

.gs-prose--story figcaption {
	margin-top: 12px;
	font-family: var(--gs-font-sans);
	font-size: .78rem;
	letter-spacing: .04em;
	line-height: 1.7;
	color: var(--gs-muted);
}

/*
 * Arkhe側の `.wp-block-separator:not(.is-style-wide):not(.is-style-dots)`
 * (specificity 0,3,0) と同等以上のspecificityにして、子テーマCSSの
 * 読み込み順（親テーマより後・優先度20。inc/assets.php参照）で確実に
 * 上書きされるようにする。
 */
.gs-prose.gs-prose--story .wp-block-separator {
	margin: 3.2em auto;
	max-width: 120px;
	height: 1px;
	background-color: var(--gs-line-strong);
	opacity: 1;
	border: none;
}

/*
 * STORY本文 挿絵（第一章・シネマティック画像。2026-09-15追加）。
 * デザインコンセプト：古代神話×現代美術館×禁忌のデジタルアーカイブ。
 * カード化・角丸・枠線・ドロップシャドウ・文字重ねは行わない。
 *
 * .gs-prose--story（本文カラム）自体には左マージン/paddingが無く、
 * 常に親の .gs-shell.gs-story-single__body と同じ左端から始まる
 * （= 2026-09-15実機確認済み）。そのため .gs-story-figure の幅を
 * .gs-shell自体と同じ実効幅にし、左マージンを0のまま（本文と同じ
 * 左端）にすると、画像は本文（最大700px）より広く、.gs-shell自体の
 * 右端まで自然に広がる。.gs-shellはページ中央に配置される
 * （margin:0 auto）ため、画像も結果的にページ全体として中央に
 * 揃って見える。
 *
 * 注意（実機検証で発見・修正）: 単純に `width: var(--gs-shell-width)`
 * （calc(100% - 48px)を含む）を流用すると、`%` は .gs-story-figure
 * 自身の包含ブロック（= 700px幅の.gs-prose--story、モバイルでは
 * それより狭い実際の本文幅）を基準に解決されてしまい、.gs-shell
 * 本来の（ビューポート基準の）幅より最大48px以上も狭くなる
 * （実測: 1440pxビューポートで652px = 700-48の狭い画像になり、
 * 本文より広くならない不具合）。そのため `%` ではなく包含ブロックに
 * 依存しない `100vw` を使い、.gs-shellの計算式
 * （min(1180px, calc(100% - 48px)); 640px以下では
 * min(100% - 32px, 1180px)）をビューポート基準で再現している。
 * 上限は1180pxのため横スクロールも発生しない
 * （body.gs-bodyのoverflow-x:hiddenは保険として残る）。
 */
.gs-prose.gs-prose--story .gs-story-figure {
	width: min(1180px, calc(100vw - 48px));
	max-width: none;
	margin: 4.4em 0;
}

.gs-prose.gs-prose--story .gs-story-figure img {
	display: block;
	width: 100%;
	height: auto;
	border: none;
	border-radius: 0;
	box-shadow: none;
}

.gs-prose.gs-prose--story .gs-story-figure figcaption {
	display: none;
}

/*
 * FINAL（章末）画像は挿絵ではなく「章を締めくくる作品」として扱う。
 * 文字や「END」等の追加はせず、余白の大きさだけで終幕の重みを出す。
 */
.gs-prose.gs-prose--story .gs-story-figure--final {
	margin: 6.2em 0 3em;
}

@media (max-width: 900px) {
	.gs-prose.gs-prose--story .gs-story-figure {
		margin: 3.2em 0;
	}

	.gs-prose.gs-prose--story .gs-story-figure--final {
		margin: 4.6em 0 2.4em;
	}
}

@media (max-width: 640px) {
	.gs-prose.gs-prose--story .gs-story-figure {
		/* .gs-shellが640px以下でガター32pxへ切り替わるのに合わせる
		 * （base側の48pxのままだと画像が本文よりわずかに狭くなる）。*/
		width: min(1180px, calc(100vw - 32px));
		margin: 2.4em 0;
	}

	.gs-prose.gs-prose--story .gs-story-figure--final {
		margin: 3.4em 0 2em;
	}
}

.gs-story-single__pagenav {
	display: flex;
	justify-content: space-between;
	gap: 24px;
	flex-wrap: wrap;
	margin-top: 56px;
	padding-top: 40px;
	border-top: 1px solid var(--gs-line);
	max-width: 700px;
}

.gs-story-single__related {
	margin-top: 44px;
	max-width: 700px;
}

/* ---------- ARCHIVE（archive-archive_record.php / single-archive_record.php） ----------
 * 「記録を調査する」役割。禁忌のデジタルアーカイブ＝資料庫の質感
 * （近黒背景 + 方眼の資料台紙テクスチャ）を一覧・詳細で一貫させる。
 * 資料写真が無い場合は、斜線ハッチングで「未着」を示す
 * プレースホルダーにする（画像アセットを必要としない）。
 */

.gs-archive-intro--archive {
	background: #0a0a0a;
}

/*
 * Phase 5B（2026-09-16）: 実測3.99:1でAA未達だったため、
 * --gs-gold-brightをこのページのintroに限定して適用する。
 */
.gs-archive-intro--archive .gs-kicker {
	color: var(--gs-gold-bright);
}

.gs-archive-records-group {
	position: relative;
	overflow: hidden;
	padding: 40px 0 140px;
	background: #0a0a0a;
}

.gs-archive-records-group > .gs-shell {
	position: relative;
	z-index: 1;
}

/*
 * Phase 5B（2026-09-16、ARCHIVE archive「資料INDEX」化）: 画像・抜粋
 * つきのカードグリッド（.gs-archive-card-grid／.gs-archive-card）を
 * 廃止し、TOP専用の.gs-top-index（収蔵資料INDEX／台帳）と同じ設計
 * 語彙をこのページ専用に複製した.gs-archive-index*で置き換えた。
 * TOP側の.gs-top-index*は一切変更していない（重複はTOPへの影響を
 * ゼロにするための意図的な選択）。
 *
 * 以下の.gs-archive-card__visual／__no-image／__number（および
 * .gs-archive-card__type）は、ARCHIVE single側
 * （gs-archive-record-single__visual等）と共有のカンマ区切り
 * セレクタ、またはsingle側マークアップが直接参照しているクラスで
 * あるため、このページでは使われなくなった後もCSSごと残している
 * （ARCHIVE singleには触れない、という指示を優先）。
 */
.gs-archive-index {
	border-top: 1px solid var(--gs-line);
}

.gs-archive-index__head,
.gs-archive-index__row {
	display: flex;
	align-items: baseline;
	gap: 24px;
}

.gs-archive-index__head {
	padding: 14px 0;
	font-family: var(--gs-font-sans);
	font-size: .6rem;
	letter-spacing: .16em;
	text-transform: uppercase;
	color: var(--gs-muted);
	opacity: .7;
	border-bottom: 1px solid var(--gs-line);
}

.gs-archive-index__row {
	padding: 22px 0;
	border-bottom: 1px solid var(--gs-line);
	color: inherit;
	text-decoration: none;
	transition: padding-left .3s ease, background-color .3s ease;
}

.gs-archive-index__row:hover {
	padding-left: 12px;
	background: rgba(232, 226, 214, .03);
}

.gs-archive-index__col--number {
	flex: 0 0 auto;
	min-width: 84px;
	font-family: var(--gs-font-sans);
	font-size: .78rem;
	color: var(--gs-muted);
}

.gs-archive-index__col--title {
	flex: 1 1 auto;
	min-width: 0;
	font-family: var(--gs-font-serif);
	font-size: clamp(1.05rem, 1.8vw, 1.4rem);
}

.gs-archive-index__head .gs-archive-index__col--title {
	font-family: var(--gs-font-sans);
}

/*
 * CLASSIFICATION列: TOPの.gs-top-index__col--typeは既定の--gs-goldを
 * 使っているが、TOP側のコンテキストでも同じ未達バグを抱えている
 * （Phase 6での検討事項として別途記録）。ここでは新規クラスなので
 * 最初から--gs-gold-brightを使い、AA未達を持ち込まない。
 */
.gs-archive-index__col--type {
	flex: 0 0 auto;
	min-width: 120px;
	font-family: var(--gs-font-sans);
	font-size: .66rem;
	letter-spacing: .1em;
	text-transform: uppercase;
	color: var(--gs-gold-bright);
	text-align: right;
}

.gs-archive-index__arrow {
	flex: none;
	margin-left: auto;
	padding-left: 12px;
	opacity: 0;
	transition: opacity .25s ease, transform .25s ease;
}

.gs-archive-index__row:hover .gs-archive-index__arrow {
	opacity: 1;
	transform: translateX(4px);
}

.gs-archive-card__visual,
.gs-archive-record-single__visual {
	position: relative;
	aspect-ratio: 4 / 3;
	overflow: hidden;
}

.gs-archive-card__visual img,
.gs-archive-record-single__visual img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.gs-archive-card__no-image,
.gs-archive-record-single__no-image {
	display: block;
	width: 100%;
	height: 100%;
	background-color: rgba(255, 255, 255, .02);
	background-image: repeating-linear-gradient(
		45deg,
		var(--gs-line) 0,
		var(--gs-line) 1px,
		transparent 1px,
		transparent 14px
	);
	border: 1px dashed var(--gs-line-strong);
}

.gs-archive-card__number,
.gs-archive-record-single__number {
	display: flex;
	align-items: center;
	gap: 12px;
	margin: 0;
	font-family: var(--gs-font-sans);
	font-size: .7rem;
	letter-spacing: .14em;
	color: var(--gs-gold);
}

.gs-archive-card__type {
	padding: 3px 8px;
	border: 1px solid var(--gs-line-strong);
	color: var(--gs-muted);
	text-transform: uppercase;
}

.gs-archive-record-single {
	position: relative;
	overflow: hidden;
	padding: 190px 0 130px;
	background: #0a0a0a;
}

.gs-archive-record-single__inner {
	position: relative;
	z-index: 1;
	display: grid;
	grid-template-columns: minmax(0, .7fr) minmax(0, 1.3fr);
	gap: 6vw;
	align-items: start;
}

.gs-archive-record-single__title {
	margin: 14px 0 26px;
	font-family: var(--gs-font-serif);
	font-weight: 500;
	font-size: clamp(2rem, 4.6vw, 3.2rem);
	line-height: 1.35;
}

.gs-archive-record-single__related {
	margin-top: 44px;
}

/*
 * ---------- ARCHIVE 詳細本文（.gs-archive-doc） ----------
 * public_body の構造化解析結果（inc/template-tags.php の
 * gitenshinwa_child_parse_archive_record_body）専用の表示スタイル
 * （2026-09-16追加）。古い行政資料／機密ARCHIVEをデジタル閲覧して
 * いるような、静かで学術的な情報階層を意図している。カードUIには
 * せず、細い罫線と余白だけで区画を分ける。背景色・角丸・影は使わない。
 * HEROの`.gs-archive-record-single__number`とタイトルに既に出ている
 * 資料番号・種別・資料名は、解析側（gitenshinwa_child_parse_archive_record_body）
 * で本文から除いた上でここに渡ってくる。
 */
.gs-archive-doc {
	margin-top: 8px;
	font-size: 1.05rem;
	line-height: 1.8;
	color: var(--gs-text);
}

.gs-archive-doc__english {
	margin: 0 0 40px;
	font-family: var(--gs-font-sans);
	font-size: .74rem;
	letter-spacing: .16em;
	line-height: 1.8;
	color: var(--gs-muted);
	text-transform: uppercase;
}

/* メタデータパネル: 「ラベル/値」の対を2列グリッドで並べる。 */
.gs-archive-doc__meta {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 22px 32px;
	margin: 0 0 48px;
	padding: 24px 0;
	border-top: 1px solid var(--gs-line);
	border-bottom: 1px solid var(--gs-line);
}

.gs-archive-doc__meta-item dt {
	margin: 0 0 6px;
	font-family: var(--gs-font-sans);
	font-size: .68rem;
	letter-spacing: .14em;
	text-transform: uppercase;
	color: var(--gs-gold);
}

.gs-archive-doc__meta-item dd {
	margin: 0;
	font-family: var(--gs-font-serif);
	font-size: 1rem;
	color: var(--gs-bone);
}

.gs-archive-doc__section {
	margin: 0 0 56px;
}

.gs-archive-doc__section:last-child {
	margin-bottom: 0;
}

.gs-archive-doc__section-label {
	margin: 0 0 20px;
	padding-bottom: 12px;
	font-family: var(--gs-font-sans);
	font-size: .72rem;
	letter-spacing: .2em;
	text-transform: uppercase;
	color: var(--gs-gold);
	border-bottom: 1px solid var(--gs-line);
}

.gs-archive-doc__section p {
	margin: 0 0 1.3em;
}

.gs-archive-doc__section p:last-child {
	margin-bottom: 0;
}

/*
 * 強調したい単独の異常値（例:「146歳」）。カード化・背景色は使わず、
 * サイズ・色・下線だけで存在感を出す。デザイントークンとして
 * 定義済みだが未使用だった --gs-red（暗い朱）を、初めての実用途と
 * して下線に用いている。
 */
.gs-archive-doc__figure {
	display: inline-block;
	margin: .4em 0 1.3em;
	padding-bottom: .12em;
	font-family: var(--gs-font-serif);
	font-size: clamp(2rem, 6vw, 2.8rem);
	font-weight: 500;
	letter-spacing: .04em;
	color: var(--gs-gold);
	border-bottom: 2px solid var(--gs-red);
}

/*
 * 判定BOX。背景で目立たせるのではなく、細い罫線＋左側のみ --gs-red の
 * アクセント線で「独立した公式な判定区画」であることを示す。
 */
.gs-archive-doc__verdict {
	margin: 0 0 1.6em;
	padding: 22px 26px;
	border: 1px solid var(--gs-line-strong);
	border-left: 3px solid var(--gs-red);
}

.gs-archive-doc__verdict-mark {
	margin: 0 0 10px;
	font-family: var(--gs-font-sans);
	font-size: .68rem;
	letter-spacing: .2em;
	text-transform: uppercase;
	color: var(--gs-muted);
}

.gs-archive-doc__verdict-text {
	margin: 0;
	font-family: var(--gs-font-serif);
	font-size: 1.15rem;
	line-height: 1.7;
	color: var(--gs-bone);
}

/* 記録抄録などの表。縞模様・カード的な背景は使わず、罫線のみで区切る。 */
.gs-archive-doc__table-wrap {
	margin: 0 0 .5em;
	overflow-x: auto;
}

.gs-archive-doc__table {
	width: 100%;
	border-collapse: collapse;
	font-size: .95rem;
}

.gs-archive-doc__table th,
.gs-archive-doc__table td {
	padding: 10px 20px 10px 0;
	text-align: left;
	border-bottom: 1px solid var(--gs-line);
	white-space: nowrap;
}

.gs-archive-doc__table th {
	font-family: var(--gs-font-sans);
	font-size: .68rem;
	letter-spacing: .12em;
	text-transform: uppercase;
	color: var(--gs-muted);
	font-weight: 400;
}

.gs-archive-doc__table td {
	font-family: var(--gs-font-serif);
	color: var(--gs-text);
}

.gs-archive-doc__table-row--note td {
	color: var(--gs-muted);
	font-style: italic;
	text-align: center;
	white-space: normal;
}

.gs-archive-doc__table tr.is-anomalous td {
	color: var(--gs-gold);
	font-weight: 600;
}

.gs-archive-doc__table tr.is-anomalous td:first-child {
	padding-left: 14px;
	border-left: 2px solid var(--gs-red);
}

/* ---------- WORKS（archive-work.php / single-work.php） ----------
 * 「作品を鑑賞する」役割。TOPティザーの.gs-section--worksと同じ
 * 天律寄りの明るいギャラリー壁の質感を一覧・詳細で一貫させる。
 * アイキャッチが無い場合は空の額縁アウトラインだけを見せる。
 */

.gs-archive-intro--works {
	background: linear-gradient(180deg, #141311, #0b0b0b);
}

/*
 * Phase 5C（2026-09-16）: 実測3.74〜3.97:1でAA未達だったため、
 * --gs-gold-brightをこのページのintroに限定して適用する。
 */
.gs-archive-intro--works .gs-kicker {
	color: var(--gs-gold-bright);
}

.gs-works-group {
	padding: 40px 0 140px;
	background: var(--gs-tenritsu-bg);
	color: var(--gs-tenritsu-text);
	border-top: 1px solid rgba(139, 118, 65, .25);
}

/*
 * Phase 5C（2026-09-16）: 実測3.41〜3.83:1でAA未達だったため、
 * Phase 5AでTENRITSU文脈向けに確立した--gs-tenritsu-quote
 * （明背景で実測7.0〜7.9:1）に差し替える。--gs-tenritsu-gold自体は
 * 変更しない。
 */
.gs-works-group .gs-kicker {
	color: var(--gs-tenritsu-quote);
}

/*
 * Phase 5C（2026-09-16、WORKS「鑑賞ギャラリー」強化）: STOREの
 * 「所有のための一覧（縦積みの陳列棚）」と構図から区別するため、
 * WORKSは大きな余白を持つグリッド＋作品ビジュアル優先のまま維持し、
 * 列幅と余白をさらに広げてギャラリー壁としての性格を強める
 * （情報はPLATE番号・タイトル・素材メモのみ、最小限を維持）。
 */
.gs-work-grid {
	display: grid;
	/*
	 * Phase 7（2026-09-16）: 現状データ0件のため実際のグリッド挙動は
	 * 「準備中」1枚のみだが、将来複数の正式画像が投入された時に
	 * ギャラリーの壁としての迫力が出るよう、列幅・余白をさらに拡大
	 * した（300px→360px、gapを48px→56px）。画像自体は追加していない。
	 */
	grid-template-columns: repeat(auto-fill, minmax(360px, 1fr));
	gap: 72px 56px;
}

.gs-work-card {
	display: flex;
	flex-direction: column;
	gap: 18px;
	color: inherit;
	text-decoration: none;
}

.gs-work-card__frame,
.gs-work-single__frame {
	position: relative;
	aspect-ratio: 3 / 4;
	overflow: hidden;
	background: rgba(0, 0, 0, .03);
}

.gs-work-card__frame img,
.gs-work-single__frame img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.gs-work-card__empty-frame,
.gs-work-single__empty-frame {
	display: block;
	width: 100%;
	height: 100%;
	border: 1px solid rgba(139, 118, 65, .35);
}

.gs-work-card__empty-frame::before,
.gs-work-single__empty-frame::before {
	content: '';
	position: absolute;
	inset: 14px;
	border: 1px solid rgba(139, 118, 65, .2);
}

.gs-work-card__title {
	margin: 4px 0 0;
	font-family: var(--gs-font-serif);
	font-weight: 500;
	font-size: 1.2rem;
}

.gs-work-card__subtitle {
	margin: 0;
	font-size: .82rem;
	color: var(--gs-tenritsu-muted);
}

.gs-work-single {
	padding: 190px 0 130px;
	background: var(--gs-tenritsu-bg);
	color: var(--gs-tenritsu-text);
	border-top: 1px solid rgba(139, 118, 65, .25);
}

/*
 * Phase 5C（2026-09-16）: archive側と同じ理由でtenritsu-quoteに差し替え。
 */
.gs-work-single .gs-kicker {
	color: var(--gs-tenritsu-quote);
}

.gs-work-single__inner {
	display: grid;
	grid-template-columns: minmax(0, .7fr) minmax(0, 1.3fr);
	gap: 6vw;
	align-items: start;
}

.gs-work-single__title {
	margin: 14px 0 6px;
	font-family: var(--gs-font-serif);
	font-weight: 500;
	font-size: clamp(2rem, 4.6vw, 3.2rem);
	line-height: 1.3;
}

.gs-work-single__subtitle {
	margin: 0 0 26px;
	color: var(--gs-tenritsu-muted);
}

.gs-work-single .gs-prose {
	color: var(--gs-tenritsu-text);
}

/* ---------- STORE（archive-store_item.php / single-store_item.php） ----------
 * 「作品を所有する」役割。TOPティザーの.gs-section--storeと同じ
 * 暖色の暗色＋赤みがかった質感を一覧・詳細で一貫させる。
 */

/*
 * Phase 5C（2026-09-16）: 実測3.74〜3.97:1でAA未達だったため、
 * --gs-gold-brightをこのページのintroに限定して適用する。
 */
.gs-archive-intro--store .gs-kicker {
	color: var(--gs-gold-bright);
}

.gs-store-group {
	padding: 40px 0 140px;
	background: linear-gradient(160deg, #18100f, #0a0908);
	border-top: 1px solid rgba(110, 23, 23, .3);
}

/*
 * Phase 5C（2026-09-16、STORE「所有可能なOBJECT」化）: WORKSの
 * 「作品ビジュアル優先の大きなグリッド（鑑賞ギャラリー）」とは構図から
 * 区別するため、STOREは正方形カードのグリッドをやめ、1点ずつを
 * ヘアラインで区切った縦積みの「陳列棚／収蔵目録」列にする。
 * サムネイルは小さめの正方形に固定し、OBJECT番号・タイトル・価格を
 * 帳票的にまとめて見せることで、「鑑賞記録（WORKS）」と
 * 「所有できるOBJECT（STORE）」の違いをコピーだけでなく構図でも
 * 表現する。一般的なECの商品カードグリッドには戻していない。
 */
.gs-store-grid {
	display: flex;
	flex-direction: column;
}

.gs-store-card {
	display: flex;
	flex-direction: row;
	align-items: center;
	gap: 32px;
	padding: 30px 4px;
	border-bottom: 1px solid rgba(110, 23, 23, .28);
	color: inherit;
	text-decoration: none;
	transition: background-color .3s ease;
}

.gs-store-grid .gs-store-card:first-child {
	border-top: 1px solid rgba(110, 23, 23, .28);
}

.gs-store-card:hover {
	background: rgba(110, 23, 23, .07);
}

.gs-store-card .gs-store-card__frame {
	flex: 0 0 148px;
	width: 148px;
}

.gs-store-card .gs-kicker,
.gs-store-single .gs-kicker {
	color: var(--gs-gold-bright);
}

.gs-store-card__body {
	display: flex;
	flex-direction: column;
	gap: 6px;
	min-width: 0;
}

.gs-store-card__frame,
.gs-store-single__frame {
	position: relative;
	aspect-ratio: 1;
	overflow: hidden;
	background: rgba(255, 255, 255, .03);
	border: 1px solid rgba(110, 23, 23, .25);
}

.gs-store-card__frame img,
.gs-store-single__frame img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.gs-store-card__empty-frame,
.gs-store-single__empty-frame {
	display: block;
	width: 100%;
	height: 100%;
	background-image: repeating-linear-gradient(
		135deg,
		rgba(110, 23, 23, .18) 0,
		rgba(110, 23, 23, .18) 1px,
		transparent 1px,
		transparent 16px
	);
}

.gs-store-card__title {
	margin: 0;
	font-family: var(--gs-font-serif);
	font-weight: 500;
	font-size: 1.15rem;
}

.gs-store-card__price {
	margin: 0;
	font-family: var(--gs-font-sans);
	font-size: .82rem;
	letter-spacing: .04em;
	color: var(--gs-muted);
}

.gs-store-single {
	padding: 190px 0 130px;
	background: linear-gradient(160deg, #18100f, #0a0908);
	border-top: 1px solid rgba(110, 23, 23, .3);
}

.gs-store-single__inner {
	display: grid;
	grid-template-columns: minmax(0, .7fr) minmax(0, 1.3fr);
	gap: 6vw;
	align-items: start;
}

.gs-store-single__title {
	margin: 0 0 12px;
	font-family: var(--gs-font-serif);
	font-weight: 500;
	font-size: clamp(2rem, 4.6vw, 3.2rem);
	line-height: 1.3;
}

.gs-store-single__price {
	margin: 0 0 26px;
	font-family: var(--gs-font-sans);
	font-size: 1rem;
	letter-spacing: .04em;
	color: var(--gs-bone);
}

.gs-store-single__buy {
	margin-top: 30px;
}

/* ---------- フッター補助リンク / 汎用固定ページ / 404 ---------- */

.gs-footer__pages {
	display: flex;
	gap: 20px;
	flex-wrap: wrap;
}

.gs-footer__pages a {
	color: inherit;
	text-decoration: none;
	letter-spacing: .1em;
	text-transform: uppercase;
	opacity: .75;
	transition: opacity .25s ease;
}

.gs-footer__pages a:hover,
.gs-footer__pages a:focus-visible {
	opacity: 1;
}

.gs-basic-page {
	padding: 190px 0 140px;
	background: var(--gs-bg);
}

.gs-basic-page__title {
	/* 2026-09-15: ABOUT/CREATOR/CONTACT等は和文タイトルを持たない
	 * 英字のみの見出しのため、和文ディスプレイフォント(--gs-font-serif、
	 * Shippori Mincho)ではなく、サイト全体の英字表記
	 * （GITEN SHINWAロゴ/ナビゲーション/各セクションのkickerラベル）と
	 * 同じ --gs-font-sans 系の大文字・トラッキング表現に統一する。
	 * HERO/INTRODUCTION/STORY/DIVINITIES等、承認済みの和文見出しの
	 * フォントには影響しない。
	 */
	margin: 0 0 40px;
	font-family: var(--gs-font-sans);
	font-weight: 600;
	font-size: clamp(2rem, 4.4vw, 3.2rem);
	letter-spacing: .05em;
	text-transform: uppercase;
}

/*
 * Phase 5D（2026-09-16）: ABOUT/CREATOR/CONTACTは「サイト内で最も
 * 作り込みが薄いテンプレート」（Phase 5事前監査）だったため、他ページ
 * 共通のkicker+極細罫線の識別要素を追加する。本文（the_content）は
 * 一切自動生成・転用しない（ABOUTにTOPのIntroduction本文を転用しない、
 * CREATORに捏造した経歴を書かない、という指示を反映）。
 */
/*
 * Phase 5D（2026-09-16）: 実測3.91:1でAA未達だったため（--gs-bg上の
 * 既定--gs-gold）、Phase 5A〜5Cと同じ--gs-gold-brightに限定して適用する
 * （共有.gs-kicker本体・--gs-goldトークン自体は変更しない）。
 */
.gs-basic-page .gs-kicker,
.gs-error-404 .gs-kicker {
	color: var(--gs-gold-bright);
}

.gs-basic-page__inner {
	max-width: 46em;
}

.gs-basic-page__inner::before {
	content: '';
	display: block;
	width: 64px;
	height: 1px;
	margin: 28px 0 40px;
	background: var(--gs-line-strong);
}

/* ABOUT: 「作品そのものについて」を語る宣言文的な佇まい。
 * 単一の長文を静かに読ませるため、本文をやや大きく・行間広めの
 * 引用的な組版にする。 */
.gs-basic-page--about .gs-basic-page__statement {
	font-family: var(--gs-font-serif);
	font-size: 1.15rem;
	line-height: 2.1;
	color: var(--gs-bone);
}

.gs-basic-page__related {
	display: flex;
	flex-direction: column;
	gap: 14px;
	margin-top: 56px;
	padding-top: 32px;
	border-top: 1px solid var(--gs-line);
}

/* CONTACT: 意図的に最も静かなページ。冒頭の罫線以外の追加装飾は
 * 付けず、余白のみで密度を抑える。 */
.gs-basic-page__inner--quiet {
	padding-bottom: 40px;
}

/* CREATOR: 実データ（氏名・肖像・経歴）が投入されるまでの「まだ
 * 記録されていない人物資料」を、額縁だけが用意された空の展示ケースで
 * 表現する。CHARACTER単体の2カラム構成と近い語彙を使うが、CHARACTERの
 * クラス自体は共有せずCREATOR専用クラスとして独立させている
 * （CHARACTER単体には一切触れないため）。 */
.gs-creator-page__inner {
	display: grid;
	grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr);
	gap: 6vw;
	align-items: start;
	max-width: none;
}

.gs-creator-page__inner::before {
	display: none;
}

.gs-creator-page__frame {
	position: relative;
	aspect-ratio: 3 / 4;
	background: rgba(255, 255, 255, .02);
	border: 1px solid var(--gs-line);
}

.gs-creator-page__empty-frame {
	display: block;
	width: 100%;
	height: 100%;
}

.gs-creator-page__empty-frame::before {
	content: '';
	position: absolute;
	inset: 20px;
	border: 1px solid var(--gs-line);
}

.gs-creator-page__body {
	padding-top: 4px;
}

.gs-creator-page__body::before {
	content: '';
	display: block;
	width: 64px;
	height: 1px;
	margin: 28px 0 40px;
	background: var(--gs-line-strong);
}

.gs-creator-page__plaque {
	color: var(--gs-muted);
}

.gs-error-404 {
	min-height: 70vh;
	display: flex;
	align-items: center;
	padding: 190px 0 120px;
	background:
		repeating-linear-gradient(45deg, rgba(232, 226, 214, .04) 0 1px, transparent 1px 14px),
		var(--gs-bg);
}

.gs-error-404__inner {
	max-width: 46em;
}

.gs-error-404__title {
	margin: 10px 0 18px;
	font-family: var(--gs-font-serif);
	font-weight: 500;
	font-size: clamp(2.4rem, 6vw, 4.4rem);
}

.gs-error-404__lead {
	color: var(--gs-bone);
}

.gs-error-404__note {
	margin: 18px 0 36px;
	color: var(--gs-muted);
	font-size: .92rem;
}

/* ---------- responsive ---------- */

@media (max-width: 900px) {
	.gs-two,
	.gs-feature,
	.gs-world-record__grid {
		grid-template-columns: 1fr;
		gap: 44px;
	}

	.gs-world-record__specimen,
	.gs-world-record__specimen-empty {
		min-height: 300px;
	}

	.gs-duality {
		grid-template-columns: 1fr;
		min-height: auto;
	}

	.gs-duality__panel {
		min-height: 420px;
		padding: 56px 24px;
	}

	.gs-world-teaser {
		grid-template-columns: 1fr;
	}

	.gs-character-feature {
		grid-template-columns: 1fr;
		gap: 36px;
	}

	.gs-character-feature__portrait {
		max-width: 320px;
		aspect-ratio: 3 / 4;
	}

	/*
	 * Phase 4.1: CHARACTERSのmobileは「PCの2カラムを1カラムに畳んだ
	 * だけ」にしない。PCは横長寄りのトリミング＋高さいっぱいの分割
	 * 構図だが、mobileでは画像を縦長（object-position指定で顔付近を
	 * 優先表示）のフルブリードにし、直後に番号→名前→短い情報→CTAが
	 * 縦に続く「展示物を1点ずつ見る」体験にする。元画像ファイル自体は
	 * 加工していない（CSSのobject-fit/object-position/aspect-ratioの
	 * みで表示上のトリミングを変えている）。
	 */
	.gs-character-feature--top {
		grid-template-columns: 1fr;
		min-height: auto;
	}

	.gs-character-feature--top .gs-character-feature__portrait {
		max-width: none;
		width: 100%;
		height: auto;
		aspect-ratio: 4 / 5;
	}

	.gs-character-feature--top .gs-character-feature__portrait img {
		object-position: top center;
	}

	.gs-character-feature__caption {
		padding: 40px 24px 56px;
	}

	.gs-top-vertical-index {
		top: 20px;
		left: 12px;
		font-size: .56rem;
	}

	.gs-top-bg-number {
		font-size: clamp(6rem, 34vw, 11rem);
		right: -4px;
	}

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

	.gs-hero__edge-mark {
		display: none;
	}

	.gs-feature--type {
		grid-template-columns: 1fr;
	}

	.gs-feature__ghost-number {
		font-size: clamp(4rem, 22vw, 7rem);
	}

	/*
	 * Phase 5B（2026-09-16）: DIVINITIES archiveの神格目録は、PCでは
	 * GENTEN=非対称2カラム／TENRITSU=中央1カラムという構造差を保った
	 * まま、390pxでは両方とも縦積み1カラムの「展示台帳」に再編集する。
	 * TENRITSU側は元々center揃えの1カラムなのでこの調整は不要
	 * （.gs-divinities-group--tenritsu .gs-divinity-entryの詳細度が
	 * 優先されるため、下のGENTEN向けの汎用ルールでは上書きされない）。
	 */
	.gs-divinity-entry {
		grid-template-columns: 1fr;
		gap: 28px;
		padding: 40px 24px;
		text-align: left;
	}

	.gs-divinity-entry__visual {
		aspect-ratio: 16 / 10;
	}

	.gs-divinity-entry__arrow {
		position: static;
		display: inline-block;
		margin-top: 8px;
		opacity: .7;
	}

	.gs-divinity-single__inner {
		grid-template-columns: 1fr;
		gap: 40px;
	}

	.gs-divinity-single__visual {
		aspect-ratio: 16 / 10;
	}

	.gs-character-single__inner {
		grid-template-columns: 1fr;
		gap: 32px;
	}

	.gs-character-single__portrait {
		max-width: 280px;
		aspect-ratio: 1;
	}

	/*
	 * Phase 5D（2026-09-16）: CREATORの空の展示ケースも、CHARACTER単体と
	 * 同様に縦積みへ再編集する（枠を先に見せてから銘板本文へ続く順序を
	 * 維持）。
	 */
	.gs-creator-page__inner {
		grid-template-columns: 1fr;
		gap: 32px;
	}

	.gs-creator-page__frame {
		max-width: 280px;
	}

	/*
	 * Phase 5B（2026-09-16）: STORY archiveの章プレートは、PCと同じ
	 * 「背景いっぱいのキービジュアル＋重ねたタイトル」を保ったまま、
	 * 高さと余白だけを390px向けに縮める（PCの単純な縮小ではなく、
	 * 縦画面でも1画面1章の展示として読めるようにするための調整）。
	 */
	.gs-story-plate {
		min-height: 52vh;
	}

	.gs-story-plate__overlay {
		padding: 32px 24px;
		max-width: none;
	}

	/*
	 * Phase 5B（2026-09-16）: ARCHIVE archiveの資料INDEXは、TOP専用の
	 * .gs-top-index（Phase 4.1）と同じモバイル再配置パターンを、
	 * このページ専用のクラスに複製する。PC版の横一列（番号→タイトル→
	 * 種別→矢印）を、390pxでは「番号／種別」を1行目、「タイトル」を
	 * 2行目、矢印を3要素目として折り返す（データ・リンク先は不変）。
	 */
	.gs-archive-index__head,
	.gs-archive-index__row {
		flex-wrap: wrap;
		row-gap: 6px;
		column-gap: 16px;
	}

	.gs-archive-index__col--number {
		order: 1;
		min-width: 0;
	}

	.gs-archive-index__col--type {
		order: 2;
		min-width: 0;
		margin-left: auto;
	}

	.gs-archive-index__col--title {
		order: 3;
		flex-basis: 100%;
	}

	.gs-archive-index__arrow {
		order: 4;
		margin-left: 0;
	}

	.gs-archive-record-single__inner {
		grid-template-columns: 1fr;
		gap: 32px;
	}

	.gs-work-single__inner {
		grid-template-columns: 1fr;
		gap: 32px;
	}

	.gs-store-single__inner {
		grid-template-columns: 1fr;
		gap: 32px;
	}

	/* STORY本文（.gs-prose--story）: タブレット幅での読書用調整 */
	.gs-prose--story {
		font-size: 1rem;
		line-height: 1.95;
	}

	.gs-prose h2,
	.gs-prose h3,
	.gs-prose h4 {
		margin-top: 2.2em;
	}

	/* ---------- mobile nav overlay ---------- */

	.gs-nav__toggle {
		display: flex;
	}

	/*
	 * モバイルメニューを単なる「開閉するリンク一覧」ではなく、偽天神話の
	 * 目次（INDEX）として見せる（Phase 4.1）。DOM構造・開閉ロジック
	 * （assets/js/site.js の openMenu/closeMenu、scroll lock）は一切
	 * 変更せず、既存の <nav id="gs-nav-links"><a>...</a>×7</nav> を
	 * そのままCSSカウンタと疑似要素だけで台帳的な体裁に組み替えている。
	 */
	.gs-nav__links {
		position: fixed;
		inset: 0;
		z-index: 499;
		flex-direction: column;
		justify-content: flex-start;
		align-items: stretch;
		gap: 0;
		padding: 112px 28px 40px;
		overflow-y: auto;
		background: rgba(6, 6, 6, .97);
		opacity: 0;
		pointer-events: none;
		transform: translateY(-8px);
		transition: opacity .3s ease, transform .3s ease;
		counter-reset: gs-index-count;
	}

	.gs-nav__links::before {
		content: "GITEN SHINWA \2014  INDEX";
		display: block;
		margin: 0 0 28px;
		font-family: var(--gs-font-sans);
		font-size: .62rem;
		letter-spacing: .24em;
		text-transform: uppercase;
		color: var(--gs-muted);
	}

	.gs-nav__links::after {
		content: "偽天神話";
		display: block;
		margin: 28px 0 0;
		font-family: var(--gs-font-serif);
		font-size: .78rem;
		letter-spacing: .3em;
		color: var(--gs-muted);
	}

	.gs-nav__links a {
		display: flex;
		align-items: baseline;
		gap: .9em;
		padding: 16px 0;
		border-bottom: 1px solid var(--gs-line);
		font-family: var(--gs-font-serif);
		font-size: 1.3rem;
		letter-spacing: .04em;
		color: var(--gs-text);
		counter-increment: gs-index-count;
	}

	.gs-nav__links a::before {
		content: counter(gs-index-count, decimal-leading-zero);
		font-family: var(--gs-font-sans);
		font-size: .68rem;
		letter-spacing: .1em;
		color: var(--gs-gold);
	}

	.gs-nav__links a.is-current::before {
		color: var(--gs-gold);
	}

	.gs-nav.is-open .gs-nav__links {
		opacity: 1;
		pointer-events: auto;
		transform: none;
	}
}

@media (max-width: 640px) {
	.gs-shell {
		width: min(100% - 32px, 1180px);
	}

	.gs-section,
	.gs-world-section,
	.gs-world-system,
	.gs-divinities-group {
		padding: 90px 0;
	}

	/*
	 * Phase 4.1: ARCHIVE INDEXは390px幅では「番号／種別」を1行目、
	 * 「タイトル」を2行目、矢印を3要素目として折り返す。PC版の
	 * 横一列（番号→タイトル→種別→矢印）をそのまま縮めると390pxでは
	 * 窮屈になるため、モバイル専用の並びに組み替える
	 * （データ・リンク先は一切変えていない）。
	 */
	.gs-top-index__head,
	.gs-top-index__row {
		flex-wrap: wrap;
		row-gap: 6px;
		column-gap: 16px;
	}

	.gs-top-index__col--number {
		order: 1;
		min-width: 0;
	}

	.gs-top-index__col--type {
		order: 2;
		min-width: 0;
		margin-left: auto;
	}

	.gs-top-index__col--title {
		order: 3;
		flex-basis: 100%;
	}

	.gs-top-index__arrow {
		order: 4;
		margin-left: 0;
	}

	.gs-top-showcase__item {
		gap: 18px;
	}

	.gs-top-showcase__visual {
		width: 64px;
	}

	.gs-top-cta {
		width: 100%;
	}

	.gs-archive-intro {
		padding: 160px 0 60px;
	}

	.gs-hero {
		min-height: 86svh;
		/*
		 * Phase 4.2（2026-09-16）: mobileでは 'cover' のまま中央crop
		 * すると、縦長ビューポートに対して横長(約16:9)のMASTER画像を
		 * 大きく拡大する必要があり、原天（左端の暗い遺構）と天律
		 * （右端の明るいアーチ・月）が画面外に切れて対比が失われる。
		 * 画像自体を加工・トリミングする代わりに、'contain' で画像
		 * 全幅を必ず見せる形に変更し、余白は地の色（#070707）で
		 * 埋める（画像下端と地色の境目が目立たないよう、実際の背景
		 * グラデーションと同系色にしている）。
		 */
		background:
			var(--gs-hero-image-mobile, var(--gs-hero-image, none)) top center / contain no-repeat,
			radial-gradient(circle at 64% 16%, rgba(139, 106, 62, .16), transparent 38%),
			#070707;
	}

	.gs-hero__frame {
		inset: 20px;
	}

	.gs-hero__grid {
		padding-bottom: 8vh;
	}

	.gs-hero__content {
		max-width: 100%;
	}

	.gs-hero__scrollcue {
		bottom: 26px;
	}

	.gs-card-grid {
		grid-template-columns: 1fr;
	}

	.gs-world-final__links {
		flex-direction: column;
		align-items: center;
	}

	.gs-nav__brand {
		font-size: .72rem;
		letter-spacing: .12em;
	}

	/* スマホ幅でのテキストロゴ実測（font-size.72rem→line-height
	   17.28px）に合わせ、ヘッダー高が変わらない範囲に調整している。
	   PC/スマホでロゴ上限サイズを変える場合は、ここと:rootの
	   --gs-logo-max-w/--gs-logo-max-h の2値、および直下の
	   .gs-nav__bar の min-height を合わせて調整すること。 */
	:root {
		--gs-logo-max-w: 130px;
		--gs-logo-max-h: 17px;
	}

	.gs-nav__bar {
		min-height: 62px;
	}

	.gs-intro-mark {
		height: 40px;
		margin-bottom: 32px;
	}

	.gs-footer__title {
		padding: 90px 0 40px;
	}

	.gs-footer__inner {
		flex-direction: column;
		align-items: center;
		gap: 10px;
	}

	/* STORY本文（.gs-prose--story）: スマートフォン幅での読書用調整。
	 * 左右余白は .gs-shell 側の調整（本ブロック冒頭）でまとまって
	 * 確保されるため、ここでは文字サイズ・行間・段落/見出し間隔・
	 * 引用の余白のみを狭い画面向けに整える。 */
	.gs-story-single__body {
		padding: 64px 0 90px;
	}

	.gs-prose--story {
		font-size: .96rem;
		line-height: 1.85;
	}

	/* 2026-09-15: 上の基本ルールと同じ .gs-prose.gs-prose--story p
	 * セレクタ（specificity同一）を使い、ソース順で本ブロックが
	 * 後勝ちすることで640px以下でのみ適用されるようにする。
	 * 1.1em比でおおむね60%（0.66em）に詰める。 */
	.gs-prose.gs-prose--story p {
		margin-bottom: .66em;
	}

	.gs-prose h2,
	.gs-prose h3,
	.gs-prose h4 {
		margin-top: 1.8em;
		margin-bottom: .8em;
	}

	/* スマホ幅では記録マークと縦線の余白をわずかに詰め、狭い画面での
	   行間バランスを保つ（装飾の縮小のみ。色・太さ・構造は変更しない）。*/
	.gs-prose h2::before {
		margin-bottom: .6em;
	}

	.gs-prose h3 {
		padding-left: .7em;
	}

	.gs-prose--story blockquote {
		margin-top: 1.8em;
		margin-bottom: 1.3em;
		padding-left: 18px;
	}

	.gs-prose--story figure {
		margin: 2em 0;
	}

	/*
	 * Phase 5C（2026-09-16）: CHARACTERS/WORKS/STOREのmobileは、PCの
	 * グリッドを単純に1カラム化するのではなく、それぞれ「縦型人物展示」
	 * 「縦型ギャラリー」「縦型OBJECT展示」として別々に再編集する
	 * （データ・リンク先・CPT/metaは一切変更していない）。
	 */

	/* 縦型人物展示（CHARACTERS）: ヘアライン区切りの1人1プレート。 */
	.gs-character-grid {
		grid-template-columns: 1fr;
		gap: 1px;
	}

	.gs-character-card {
		padding: 40px 24px;
	}

	.gs-character-card__portrait {
		aspect-ratio: 4 / 5;
	}

	/* 縦型ギャラリー（WORKS）: 大きな余白で1点ずつ展示壁を歩く構図。 */
	.gs-work-grid {
		grid-template-columns: 1fr;
		gap: 72px;
	}

	.gs-work-card__frame {
		aspect-ratio: 4 / 5;
	}

	/* 縦型OBJECT展示（STORE）: 正方形サムネイルを畳んだ縦積みの陳列棚。 */
	.gs-store-card {
		flex-direction: column;
		align-items: stretch;
		gap: 18px;
		padding: 28px 0;
	}

	.gs-store-card .gs-store-card__frame {
		flex: none;
		width: 100%;
		max-width: 240px;
	}
}
