/**
 * SOA About Page — v1.9.241 「私たちについて」
 *
 * プロ 7 視点による設計：
 *   - 心理層を順次発火（理解 → 尊敬 → 安全 → 共感 → 希望 → 決断）
 *   - 雲の上へ昇る縦パララックス
 *   - ホログラフィック CEO ポートレート
 *   - 紺 × 金、明朝 × Inter、行間 2.2 の品格
 */

/* ===========================================
 * 0. デザイントークン
 * =========================================== */
.soa-about-page {
	--ab-navy: #0a1628;
	--ab-navy-deep: #050a14;
	--ab-navy-light: #1a2640;
	--ab-navy-mid: #14213a;
	--ab-gold: #b89968;
	--ab-gold-light: #d4c4a0;
	--ab-gold-bright: #e8d8b0;
	--ab-gold-glow: rgba(184, 153, 104, 0.6);
	--ab-cream: #fdfaf3;
	--ab-cream-soft: #f5efe2;
	--ab-text: #1a2640;
	--ab-text-soft: #50575e;
	--ab-text-mute: #8b8680;
	--ab-line: rgba(184, 153, 104, 0.22);
	--ab-line-soft: rgba(184, 153, 104, 0.12);
	--ab-glass: rgba(255, 255, 255, 0.03);
	--ab-glass-border: rgba(184, 153, 104, 0.18);

	font-family: 'Inter', -apple-system, 'Hiragino Kaku Gothic ProN', 'Noto Sans JP', sans-serif;
	color: var(--ab-text);
	background: #fff;
	overflow-x: hidden;
	position: relative;
}

.ab-container {
	max-width: 1180px;
	margin: 0 auto;
	padding: 0 32px;
	position: relative;
	z-index: 2;
}

@media (max-width: 768px) {
	.ab-container { padding: 0 22px; }
}

/* ===========================================
 * 0.1 グローバル金粉パーティクル
 * =========================================== */
.ab-particles {
	position: fixed;
	top: 0;
	left: 0;
	width: 100vw;
	height: 100vh;
	pointer-events: none;
	z-index: 0;
	opacity: 0.05;
	mix-blend-mode: screen;
	transition: opacity 0.6s ease;
	/* v1.9.252: 中央 92% を完全マスク（粒子は画面左右の 4% のみ表示） */
	mask-image:
		linear-gradient(90deg,
			#000 0%,
			#000 3%,
			transparent 7%,
			transparent 93%,
			#000 97%,
			#000 100%);
	-webkit-mask-image:
		linear-gradient(90deg,
			#000 0%,
			#000 3%,
			transparent 7%,
			transparent 93%,
			#000 97%,
			#000 100%);
}

/* v1.9.246: OPENING セクションが画面に表示されている間はパーティクル非表示 */
.soa-about-page.is-opening-visible .ab-particles {
	opacity: 0 !important;
}

/* ===========================================
 * 0.2 セクション共通ヘッダー
 * =========================================== */
.ab-section-head {
	text-align: center;
	max-width: 780px;
	margin: 0 auto 100px;
	position: relative;
}

.ab-section-head__num {
	display: inline-block;
	font-family: 'JetBrains Mono', 'Courier New', monospace;
	font-size: 11px;
	letter-spacing: 0.5em;
	color: var(--ab-gold);
	font-weight: 500;
	margin-bottom: 24px;
	padding: 4px 0;
	position: relative;
}
.ab-section-head__num::before,
.ab-section-head__num::after {
	content: "";
	position: absolute;
	top: 50%;
	width: 32px;
	height: 1px;
	background: var(--ab-gold);
	opacity: 0.4;
}
.ab-section-head__num::before { right: 100%; margin-right: 12px; }
.ab-section-head__num::after  { left: 100%; margin-left: 12px; }

.ab-section-head__eyebrow {
	display: block;
	font-family: 'Inter', sans-serif;
	font-size: 11px;
	letter-spacing: 0.45em;
	color: var(--ab-gold);
	font-weight: 700;
	margin-bottom: 24px;
	text-transform: uppercase;
}

.ab-section-head__title {
	font-family: 'Shippori Mincho', 'Noto Serif JP', serif;
	font-size: clamp(30px, 4.8vw, 52px);
	font-weight: 500;
	line-height: 1.55;
	letter-spacing: 0.05em;
	color: var(--ab-navy);
	margin: 0 0 24px;
}

.ab-section-head__lead {
	font-family: 'Shippori Mincho', serif;
	font-size: clamp(15px, 1.8vw, 17px);
	line-height: 2.0;
	color: var(--ab-text-soft);
	margin: 0;
	letter-spacing: 0.04em;
}

.ab-section-head--light .ab-section-head__title { color: #fff; text-shadow: 0 2px 12px rgba(0, 0, 0, 0.8), 0 0 40px rgba(184, 153, 104, 0.3); }
.ab-section-head--light .ab-section-head__lead  { color: #ffffff; font-weight: 500; font-size: clamp(16px, 1.9vw, 19px); text-shadow: 0 2px 12px rgba(0, 0, 0, 0.9), 0 0 24px rgba(0, 0, 0, 0.6), 0 1px 2px rgba(0, 0, 0, 0.9); }
.ab-section-head--light .ab-section-head__num   { color: var(--ab-gold); }
.ab-section-head--light .ab-section-head__num::before,
.ab-section-head--light .ab-section-head__num::after { background: var(--ab-gold); opacity: 0.5; }

/* ===========================================
 * 0.3 reveal アニメーション基盤（v1.9.258 opacity廃止、可読性最優先）
 *     translateY だけでふわっと出る演出。文字は常に不透明。
 * =========================================== */
[data-soa-ab-reveal] {
	transform: translateY(20px);
	transition: transform 1.0s cubic-bezier(0.22, 1, 0.36, 1) var(--ab-delay, 0s);
}
[data-soa-ab-reveal].is-visible {
	transform: translateY(0);
}

/* ===========================================
 * 1. OPENING — 雲の上へ昇る、観察者の視点
 * =========================================== */
/* ===========================================
 * 2. MANIFESTO — 厳粛、宣言、降りてくる
 * =========================================== */
.ab-manifesto {
	position: relative;
	padding: 200px 0 180px;
	background:
		linear-gradient(180deg,
			#a89571 0%,
			#5a4a35 18%,
			var(--ab-navy-light) 35%,
			var(--ab-navy) 65%,
			var(--ab-navy-deep) 100%);
	color: #fff;
	overflow: hidden;
	isolation: isolate;
}

.ab-manifesto__bg {
	position: absolute;
	inset: 0;
	pointer-events: none;
	z-index: 1;
}

.ab-manifesto__grid {
	position: absolute;
	inset: 0;
	background-image:
		linear-gradient(rgba(184, 153, 104, 0.06) 1px, transparent 1px),
		linear-gradient(90deg, rgba(184, 153, 104, 0.06) 1px, transparent 1px);
	background-size: 80px 80px;
	mask-image: radial-gradient(ellipse at center, #000 30%, transparent 80%);
	-webkit-mask-image: radial-gradient(ellipse at center, #000 30%, transparent 80%);
}

.ab-manifesto__light {
	position: absolute;
	top: 50%;
	left: 50%;
	width: 80%;
	height: 80%;
	transform: translate(-50%, -50%);
	background: radial-gradient(ellipse at center, rgba(184, 153, 104, 0.18) 0%, transparent 60%);
	pointer-events: none;
	animation: ab-mf-light 8s ease-in-out infinite;
}
@keyframes ab-mf-light {
	0%, 100% { opacity: 0.5; }
	50%      { opacity: 0.9; }
}

.ab-manifesto .ab-section-head {
	margin-bottom: 80px;
}

.ab-manifesto__short {
	font-family: 'Shippori Mincho', serif;
	font-size: clamp(34px, 5vw, 56px);
	font-weight: 500;
	line-height: 1.55;
	letter-spacing: 0.08em;
	color: #fff;
	margin: 0 auto 100px;
	max-width: 880px;
	text-align: center;
	text-shadow: 0 0 50px rgba(184, 153, 104, 0.4);
}
.ab-manifesto__short-line {
	display: block;
}
.ab-manifesto__short-line:not(:last-child) {
	margin-bottom: 4px;
}

.ab-manifesto__body {
	max-width: 720px;
	margin: 0 auto 80px;
}

.ab-manifesto__p {
	font-family: 'Hiragino Mincho ProN', 'Yu Mincho', serif;
	font-size: clamp(15px, 1.8vw, 17px);
	line-height: 2.5;
	color: #ffffff;
	margin: 0 0 18px;
	letter-spacing: 0.07em;
	text-align: center;
	font-weight: 500;
	text-shadow: 0 1px 6px rgba(0, 0, 0, 0.5);
}

.ab-manifesto__space {
	height: 36px;
}

.ab-manifesto__signature {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 16px;
	max-width: 400px;
	margin: 0 auto;
}
.ab-manifesto__signature-line {
	flex: 1;
	height: 1px;
	background: linear-gradient(90deg, transparent, var(--ab-gold), transparent);
}
.ab-manifesto__signature-name {
	font-family: 'Shippori Mincho', serif;
	font-size: 13px;
	letter-spacing: 0.4em;
	color: var(--ab-gold);
	font-weight: 500;
}

/* ===========================================
 * 3. THE STORY — 数字を物語に溶け込ませる（v1.9.244 完全リライト）
 *    カード型グリッドを廃止。Stripe / Anthropic / Patagonia 級のエッセイ組版。
 * =========================================== */
.ab-story {
	padding: 200px 0 200px;
	background: linear-gradient(180deg, var(--ab-navy-deep) 0%, var(--ab-navy) 100%);
	color: #fff;
	position: relative;
	overflow: hidden;
}

.ab-story::before {
	content: "";
	position: absolute;
	inset: 0;
	background-image:
		linear-gradient(rgba(184, 153, 104, 0.03) 1px, transparent 1px),
		linear-gradient(90deg, rgba(184, 153, 104, 0.03) 1px, transparent 1px);
	background-size: 80px 80px;
	mask-image: radial-gradient(ellipse at center, #000 30%, transparent 75%);
	-webkit-mask-image: radial-gradient(ellipse at center, #000 30%, transparent 75%);
	pointer-events: none;
}

.ab-story .ab-section-head__title {
	color: #fff !important;
	text-shadow:
		0 2px 12px rgba(0, 0, 0, 0.8),
		0 0 30px rgba(184, 153, 104, 0.3);
}
.ab-story .ab-section-head__lead {
	color: #ffffff !important;
	font-size: clamp(15px, 1.8vw, 18px) !important;
	font-weight: 500 !important;
	text-shadow:
		0 2px 10px rgba(0, 0, 0, 0.8),
		0 0 20px rgba(0, 0, 0, 0.5);
}
.ab-story .ab-section-head__num { color: var(--ab-gold); }
.ab-story .ab-section-head__num::before,
.ab-story .ab-section-head__num::after { background: var(--ab-gold); opacity: 0.5; }

.ab-story__essay {
	max-width: 760px;
	margin: 0 auto;
	display: flex;
	flex-direction: column;
	gap: 100px;
	position: relative;
	z-index: 2;
	text-align: center;
}

@media (max-width: 768px) {
	.ab-story__essay { gap: 64px; }
}

/* 各ブロック：見出し → 数字 → 物語、すべて中央 */
.ab-story__block {
	text-align: center;
	position: relative;
	padding-left: 0;
}

/* 見出し（インデックス + ラベル）：中央配置 */
.ab-story__heading {
	display: inline-flex;
	align-items: center;
	gap: 16px;
	margin-bottom: 40px;
	justify-content: center;
}

.ab-story__heading-idx {
	font-family: 'JetBrains Mono', 'Courier New', monospace;
	font-size: 11px;
	letter-spacing: 0.3em;
	color: var(--ab-gold-bright);
	font-weight: 700;
	flex-shrink: 0;
	text-shadow: 0 1px 4px rgba(0, 0, 0, 0.6);
}

.ab-story__heading-line {
	width: 48px;
	height: 1px;
	background: var(--ab-gold-bright);
	opacity: 1;
	flex-shrink: 0;
	box-shadow: 0 0 4px rgba(184, 153, 104, 0.5);
}

.ab-story__heading-text {
	font-family: 'Shippori Mincho', 'Noto Serif JP', serif;
	font-size: clamp(15px, 1.7vw, 17px);
	font-weight: 600;
	color: #fff;
	letter-spacing: 0.18em;
	text-shadow:
		0 2px 8px rgba(0, 0, 0, 0.8),
		0 0 16px rgba(184, 153, 104, 0.4);
}

/* 数字：物語の主役、巨大、明朝とサンセリフのハイブリッド */
.ab-story__measure {
	font-family: 'Shippori Mincho', 'Noto Serif JP', 'Yu Mincho', serif;
	font-size: clamp(56px, 8vw, 96px);
	font-weight: 400;
	line-height: 1.1;
	letter-spacing: 0.01em;
	color: #fff;
	margin: 0 0 32px;
	text-shadow: 0 0 50px rgba(184, 153, 104, 0.2);
	white-space: nowrap;
}

.ab-story__value {
	color: var(--ab-gold-light);
	font-feature-settings: "palt" 1;
	font-weight: 500;
	letter-spacing: 0.02em;
}

.ab-story__suffix {
	font-family: 'Shippori Mincho', serif;
	font-size: 0.42em;
	font-weight: 500;
	color: #ffffff;
	letter-spacing: 0.08em;
	margin-left: 0.15em;
	vertical-align: 0.35em;
}

/* 物語の note：v1.9.259 完全強制
   !important で他CSS・キャッシュに上書きされない、親 opacity 遮断 */
.ab-story__note {
	font-family: 'Shippori Mincho', 'Hiragino Mincho ProN', 'Yu Mincho', serif !important;
	font-size: clamp(18px, 2.2vw, 21px) !important;
	line-height: 2.1 !important;
	color: #ffffff !important;
	margin: 0 auto !important;
	letter-spacing: 0.05em !important;
	max-width: 680px !important;
	text-align: center !important;
	font-weight: 600 !important;
	opacity: 1 !important;
	text-shadow:
		0 2px 12px rgba(0, 0, 0, 0.95),
		0 0 20px rgba(0, 0, 0, 0.8),
		0 0 6px rgba(0, 0, 0, 0.7),
		0 1px 2px rgba(0, 0, 0, 0.9) !important;
	/* 親要素の opacity から独立した新規スタッキングコンテキスト */
	isolation: isolate;
	position: relative;
	z-index: 5;
}

/* STORY block の親要素に opacity が掛かっていても、note 自体は不透明 */
.ab-story__block {
	opacity: 1 !important;
}
.ab-story__block .ab-story__note {
	opacity: 1 !important;
}

/* ブロック間に淡い金色の罫線（中央配置） */
.ab-story__block:not(:last-child)::after {
	content: "";
	display: block;
	width: 32px;
	height: 1px;
	background: var(--ab-gold);
	opacity: 0.25;
	margin: 100px auto 0;
}

@media (max-width: 768px) {
	.ab-story__block:not(:last-child)::after { margin-top: 64px; }
	.ab-story__heading { margin-bottom: 28px; gap: 12px; }
	.ab-story__heading-line { width: 24px; }
	.ab-story__measure { margin-bottom: 22px; white-space: normal; }
}

/* ===========================================
 * 4. THE FOUNDER — 代表が語る、ホログラフィック
 * =========================================== */
.ab-founder {
	position: relative;
	padding: 200px 0 180px;
	background:
		linear-gradient(180deg, var(--ab-navy) 0%, var(--ab-navy-light) 40%, var(--ab-navy) 100%);
	color: #fff;
	overflow: hidden;
	isolation: isolate;
}

.ab-founder__bg {
	position: absolute;
	inset: 0;
	pointer-events: none;
	z-index: 1;
}

.ab-founder__halo {
	position: absolute;
	top: 25%;
	left: 50%;
	transform: translate(-50%, -50%);
	width: 800px;
	height: 800px;
	border-radius: 50%;
	background: radial-gradient(circle,
		rgba(184, 153, 104, 0.18) 0%,
		rgba(184, 153, 104, 0.08) 30%,
		transparent 60%);
	filter: blur(30px);
	animation: ab-halo 12s ease-in-out infinite;
}
@keyframes ab-halo {
	0%, 100% { transform: translate(-50%, -50%) scale(1);   opacity: 0.6; }
	50%      { transform: translate(-50%, -50%) scale(1.1); opacity: 1; }
}

.ab-founder__intro {
	display: grid;
	grid-template-columns: 280px 1fr;
	gap: 56px;
	align-items: center;
	max-width: 880px;
	margin: 0 auto 100px;
}

@media (max-width: 768px) {
	.ab-founder__intro {
		grid-template-columns: 1fr;
		gap: 36px;
		text-align: center;
		justify-items: center;
	}
}

.ab-founder__portrait {
	position: relative;
	width: 240px;
	height: 240px;
	margin: 0 auto;
	border-radius: 50%;
	overflow: hidden;
	transform-style: preserve-3d;
	transition: transform 0.6s cubic-bezier(0.22, 1, 0.36, 1);
	box-shadow:
		0 0 0 1px var(--ab-gold),
		0 0 40px rgba(184, 153, 104, 0.4),
		0 0 80px rgba(184, 153, 104, 0.2);
}

.ab-founder__portrait-img {
	width: 92%;
	height: 92%;
	margin: 4%;
	object-fit: cover;
	object-position: center 28%;
	display: block;
	border-radius: 50%;
	position: relative;
	z-index: 2;
}

.ab-founder__portrait-placeholder {
	width: 100%;
	height: 100%;
	background: linear-gradient(135deg, var(--ab-navy-light) 0%, var(--ab-navy) 100%);
	display: flex;
	align-items: center;
	justify-content: center;
	position: relative;
}
.ab-founder__portrait-placeholder::before {
	content: "";
	position: absolute;
	inset: 0;
	background:
		linear-gradient(rgba(184, 153, 104, 0.08) 1px, transparent 1px),
		linear-gradient(90deg, rgba(184, 153, 104, 0.08) 1px, transparent 1px);
	background-size: 20px 20px;
}
.ab-founder__portrait-initial {
	position: relative;
	font-family: 'Shippori Mincho', serif;
	font-size: 90px;
	font-weight: 300;
	color: var(--ab-gold-light);
	letter-spacing: -0.02em;
	text-shadow: 0 0 30px var(--ab-gold-glow);
}

.ab-founder__portrait-frame {
	position: absolute;
	inset: -16px;
	pointer-events: none;
	border-radius: 50%;
}
.ab-founder__portrait-corner {
	position: absolute;
	width: 24px;
	height: 24px;
	border: 1px solid var(--ab-gold);
}
.ab-founder__portrait-corner--tl { top: 0;    left: 0;    border-right: 0; border-bottom: 0; }
.ab-founder__portrait-corner--tr { top: 0;    right: 0;   border-left: 0;  border-bottom: 0; }
.ab-founder__portrait-corner--bl { bottom: 0; left: 0;    border-right: 0; border-top: 0;    }
.ab-founder__portrait-corner--br { bottom: 0; right: 0;   border-left: 0;  border-top: 0;    }

.ab-founder__profile {
	display: flex;
	flex-direction: column;
	gap: 8px;
}

.ab-founder__name-en {
	font-family: 'Inter', sans-serif;
	font-size: 12px;
	font-weight: 500;
	letter-spacing: 0.3em;
	color: var(--ab-gold);
	margin: 0;
	text-transform: uppercase;
}

.ab-founder__name {
	font-family: 'Shippori Mincho', serif;
	font-size: clamp(28px, 4vw, 38px);
	font-weight: 600;
	color: #fff;
	margin: 0;
	letter-spacing: 0.08em;
	line-height: 1.3;
	text-shadow: 0 0 30px rgba(184, 153, 104, 0.3);
}

.ab-founder__title-text {
	font-family: 'Hiragino Mincho ProN', serif;
	font-size: 14px;
	font-weight: 400;
	color: var(--ab-gold-light);
	margin: 4px 0 0;
	letter-spacing: 0.08em;
}

.ab-founder__dialog {
	max-width: 760px;
	margin: 0 auto;
	display: flex;
	flex-direction: column;
	gap: 64px;
}

.ab-founder__qa {
	position: relative;
}

.ab-founder__q {
	display: flex;
	gap: 16px;
	align-items: flex-start;
	margin-bottom: 28px;
	padding-bottom: 24px;
	border-bottom: 1px solid var(--ab-line-soft);
}

.ab-founder__q-mark {
	font-family: 'Shippori Mincho', serif;
	font-size: 24px;
	font-weight: 500;
	color: var(--ab-gold);
	line-height: 1.2;
	flex-shrink: 0;
}

.ab-founder__q-text {
	font-family: 'Shippori Mincho', serif;
	font-size: clamp(20px, 2.6vw, 26px);
	font-weight: 600;
	color: #fff;
	line-height: 1.55;
	letter-spacing: 0.05em;
	text-shadow: 0 0 30px rgba(184, 153, 104, 0.4), 0 2px 8px rgba(0, 0, 0, 0.6);
}

.ab-founder__a {
	padding-left: 40px;
}
@media (max-width: 540px) {
	.ab-founder__a { padding-left: 0; }
}

.ab-founder__a-text {
	font-family: 'Hiragino Mincho ProN', 'Yu Mincho', serif;
	font-size: clamp(15px, 1.8vw, 17px);
	line-height: 2.4;
	color: #ffffff;
	margin: 0;
	letter-spacing: 0.06em;
	font-weight: 500;
	text-shadow: 0 1px 6px rgba(0, 0, 0, 0.5);
}

.ab-founder__a-space { height: 22px; }

.ab-founder__signature {
	margin-top: 80px;
	text-align: right;
	max-width: 760px;
	margin-left: auto;
	margin-right: auto;
	padding-right: 40px;
}
.ab-founder__signature-text {
	display: inline-block;
	font-family: 'Shippori Mincho', serif;
	font-size: 22px;
	font-weight: 600;
	color: #fff;
	letter-spacing: 0.15em;
	padding: 12px 4px 12px 16px;
	border-top: 1px solid var(--ab-gold);
	border-bottom: 1px solid var(--ab-gold);
	text-shadow: 0 0 20px rgba(184, 153, 104, 0.4), 0 1px 6px rgba(0, 0, 0, 0.6);
}

/* ===========================================
 * 5. HOW WE THINK — 5 つの考え方、タイムライン
 * =========================================== */
.ab-think {
	padding: 180px 0 160px;
	background: linear-gradient(180deg, #fff 0%, var(--ab-cream) 100%);
	position: relative;
	overflow: hidden;
}

.ab-think::before {
	content: "";
	position: absolute;
	inset: 0;
	background:
		radial-gradient(circle at 20% 30%, rgba(184, 153, 104, 0.08), transparent 50%),
		radial-gradient(circle at 80% 70%, rgba(212, 196, 160, 0.06), transparent 50%);
	pointer-events: none;
}

.ab-think__list {
	list-style: none;
	padding: 0;
	margin: 0 auto;
	max-width: 880px;
	position: relative;
}

.ab-think__item {
	display: grid;
	grid-template-columns: 56px 1fr;
	gap: 32px;
	padding: 48px 0;
	position: relative;
	align-items: flex-start;
}

@media (max-width: 768px) {
	.ab-think__item {
		grid-template-columns: 36px 1fr;
		gap: 20px;
		padding: 36px 0;
	}
}

.ab-think__rail {
	position: relative;
	height: 100%;
	min-height: 80px;
	display: flex;
	justify-content: center;
}

.ab-think__rail-dot {
	position: absolute;
	top: 12px;
	width: 14px;
	height: 14px;
	border-radius: 50%;
	background: var(--ab-gold);
	box-shadow:
		0 0 0 4px rgba(184, 153, 104, 0.18),
		0 0 20px rgba(184, 153, 104, 0.5);
	z-index: 2;
}

.ab-think__rail-line {
	position: absolute;
	top: 32px;
	bottom: -48px;
	width: 1px;
	background: linear-gradient(180deg, var(--ab-gold), transparent);
	opacity: 0.4;
}
.ab-think__item:last-child .ab-think__rail-line { display: none; }

.ab-think__content {
	padding-top: 4px;
}

.ab-think__num {
	display: inline-block;
	font-family: 'JetBrains Mono', monospace;
	font-size: 12px;
	font-weight: 600;
	letter-spacing: 0.3em;
	color: var(--ab-gold);
	margin-bottom: 16px;
	padding: 4px 10px;
	border: 1px solid var(--ab-gold);
	border-radius: 2px;
}

.ab-think__title {
	font-family: 'Shippori Mincho', serif;
	font-size: clamp(22px, 3vw, 28px);
	font-weight: 600;
	color: var(--ab-navy);
	margin: 0 0 20px;
	line-height: 1.55;
	letter-spacing: 0.04em;
}

.ab-think__body {
	font-family: 'Hiragino Mincho ProN', serif;
	font-size: clamp(14px, 1.6vw, 16px);
	line-height: 2.15;
	color: var(--ab-text-soft);
	margin: 0;
	letter-spacing: 0.04em;
}

/* ===========================================
 * モバイル全体調整（前半）
 * =========================================== */
@media (max-width: 768px) {
	.ab-opening { padding: 100px 0 80px; min-height: auto; }
	.ab-manifesto { padding: 120px 0 100px; }
	.ab-story { padding: 120px 0 100px; }
	.ab-founder { padding: 120px 0 100px; }
	.ab-think { padding: 120px 0 100px; }
	.ab-section-head { margin-bottom: 64px; }
	.ab-manifesto .ab-section-head { margin-bottom: 56px; }
	.ab-manifesto__short { margin-bottom: 64px; }
}

/* ===========================================
 * モーション削減対応
 * =========================================== */
@media (prefers-reduced-motion: reduce) {
	.soa-about-page * {
		animation-duration: 0.01ms !important;
		animation-iteration-count: 1 !important;
		transition-duration: 0.01ms !important;
	}
	.ab-particles { display: none; }
	.ab-opening__cloud { display: none; }
	.ab-founder__halo { display: none; }
	[data-soa-ab-reveal] { opacity: 1; transform: none; }
	.ab-opening__qline { opacity: 1; animation: none; }
	.ab-opening__lead { opacity: 1; animation: none; }
	.ab-opening__scroll { opacity: 1; animation: none; }
}

/* ===========================================
 * 6. OUR PROMISE — 約束、紺地に番号付きリスト
 * =========================================== */
.ab-promise {
	position: relative;
	padding: 200px 0 180px;
	background: linear-gradient(180deg, var(--ab-navy-light) 0%, var(--ab-navy) 50%, var(--ab-navy-deep) 100%);
	color: #fff;
	overflow: hidden;
	isolation: isolate;
}

.ab-promise__bg {
	position: absolute;
	inset: 0;
	pointer-events: none;
	z-index: 1;
	background-image:
		linear-gradient(rgba(184, 153, 104, 0.05) 1px, transparent 1px),
		linear-gradient(90deg, rgba(184, 153, 104, 0.05) 1px, transparent 1px);
	background-size: 100px 100px;
	mask-image: radial-gradient(ellipse at center, #000 30%, transparent 80%);
	-webkit-mask-image: radial-gradient(ellipse at center, #000 30%, transparent 80%);
}

.ab-promise__list {
	list-style: none;
	padding: 0;
	margin: 0 auto;
	max-width: 880px;
	display: flex;
	flex-direction: column;
	gap: 4px;
}

.ab-promise__item {
	display: grid;
	grid-template-columns: 80px 1fr;
	gap: 32px;
	padding: 32px 36px;
	background: rgba(255, 255, 255, 0.02);
	border: 1px solid var(--ab-glass-border);
	backdrop-filter: blur(20px);
	-webkit-backdrop-filter: blur(20px);
	border-radius: 4px;
	transition: all 0.5s cubic-bezier(0.22, 1, 0.36, 1);
	align-items: center;
	position: relative;
	overflow: hidden;
}

.ab-promise__item::before {
	content: "";
	position: absolute;
	top: 0;
	left: 0;
	width: 3px;
	height: 100%;
	background: var(--ab-gold);
	opacity: 0;
	transition: opacity 0.5s ease;
}

.ab-promise__item:hover {
	background: rgba(184, 153, 104, 0.06);
	border-color: var(--ab-gold);
	transform: translateX(6px);
}
.ab-promise__item:hover::before { opacity: 1; }
.ab-promise__item:hover .ab-promise__num { color: var(--ab-navy); background: var(--ab-gold); }

@media (max-width: 768px) {
	.ab-promise__item {
		grid-template-columns: 1fr;
		gap: 14px;
		padding: 24px 22px;
		text-align: left;
	}
}

.ab-promise__num {
	font-family: 'JetBrains Mono', monospace;
	font-size: 16px;
	font-weight: 600;
	letter-spacing: 0.2em;
	color: var(--ab-gold);
	padding: 8px 14px;
	border: 1px solid var(--ab-gold);
	display: inline-flex;
	align-items: center;
	justify-content: center;
	height: 40px;
	transition: all 0.4s ease;
	background: transparent;
	justify-self: start;
}

.ab-promise__text {
	font-family: 'Shippori Mincho', serif;
	font-size: clamp(15px, 1.9vw, 18px);
	font-weight: 600;
	color: #fff;
	line-height: 1.85;
	letter-spacing: 0.05em;
	text-shadow: 0 1px 6px rgba(0, 0, 0, 0.5);
}

/* ===========================================
 * 7. VOICES — 経営者からの声、4 カード
 * =========================================== */
.ab-voices {
	padding: 180px 0 160px;
	background: var(--ab-cream);
	position: relative;
	overflow: hidden;
}

.ab-voices::before {
	content: "";
	position: absolute;
	inset: 0;
	background:
		radial-gradient(circle at 30% 20%, rgba(184, 153, 104, 0.08), transparent 50%),
		radial-gradient(circle at 70% 80%, rgba(212, 196, 160, 0.06), transparent 50%);
	pointer-events: none;
}

.ab-voices__grid {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 28px;
	max-width: 1080px;
	margin: 0 auto;
}

@media (max-width: 768px) {
	.ab-voices__grid { grid-template-columns: 1fr; gap: 18px; }
}

.ab-voices__item {
	position: relative;
	background: #fff;
	border: 1px solid var(--ab-line);
	border-radius: 4px;
	padding: 56px 44px 36px;
	margin: 0;
	transition: all 0.5s cubic-bezier(0.22, 1, 0.36, 1);
	overflow: hidden;
}

.ab-voices__item::before {
	content: "";
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	height: 1px;
	background: linear-gradient(90deg, transparent, var(--ab-gold), transparent);
	opacity: 0.6;
}

.ab-voices__item:hover {
	border-color: var(--ab-gold);
	transform: translateY(-6px);
	box-shadow: 0 30px 60px rgba(10, 22, 40, 0.1);
}
.ab-voices__item:hover .ab-voices__mark {
	color: var(--ab-gold);
	transform: scale(1.05);
}

.ab-voices__mark {
	position: absolute;
	top: 20px;
	left: 32px;
	font-family: 'Shippori Mincho', serif;
	font-size: 72px;
	font-weight: 400;
	color: rgba(184, 153, 104, 0.25);
	line-height: 1;
	transition: all 0.5s ease;
}

.ab-voices__quote {
	font-family: 'Hiragino Mincho ProN', 'Yu Mincho', serif;
	font-size: clamp(15px, 1.7vw, 17px);
	line-height: 2.15;
	color: var(--ab-navy);
	margin: 0 0 32px;
	letter-spacing: 0.04em;
	font-weight: 400;
}

.ab-voices__footer {
	border-top: 1px solid var(--ab-line);
	padding-top: 20px;
	display: flex;
	flex-direction: column;
	gap: 4px;
}

.ab-voices__name {
	font-family: 'Shippori Mincho', serif;
	font-size: 14px;
	font-weight: 600;
	color: var(--ab-navy);
	letter-spacing: 0.05em;
	font-style: normal;
}

.ab-voices__meta {
	font-family: 'JetBrains Mono', monospace;
	font-size: 10px;
	font-weight: 500;
	color: var(--ab-gold);
	letter-spacing: 0.15em;
	text-transform: uppercase;
}

/* ===========================================
 * 8. TEAM PHILOSOPHY — チームの空気、3 柱
 * =========================================== */
.ab-team {
	position: relative;
	padding: 200px 0 180px;
	background:
		linear-gradient(180deg, var(--ab-navy-deep) 0%, #000 50%, var(--ab-navy-deep) 100%);
	color: #fff;
	overflow: hidden;
	isolation: isolate;
}

.ab-team__bg {
	position: absolute;
	inset: 0;
	pointer-events: none;
	z-index: 1;
	background-image:
		linear-gradient(rgba(184, 153, 104, 0.04) 1px, transparent 1px),
		linear-gradient(90deg, rgba(184, 153, 104, 0.04) 1px, transparent 1px);
	background-size: 80px 80px;
	mask-image: radial-gradient(ellipse at center, #000 25%, transparent 75%);
	-webkit-mask-image: radial-gradient(ellipse at center, #000 25%, transparent 75%);
}

.ab-team__pillars {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 28px;
	max-width: 1080px;
	margin: 0 auto;
}

@media (max-width: 768px) {
	.ab-team__pillars { grid-template-columns: 1fr; gap: 18px; }
}

.ab-team__pillar {
	position: relative;
	background: rgba(10, 22, 40, 0.55);
	border: 1px solid rgba(184, 153, 104, 0.35);
	backdrop-filter: blur(20px);
	-webkit-backdrop-filter: blur(20px);
	padding: 56px 36px 48px;
	border-radius: 4px;
	transition: all 0.6s cubic-bezier(0.22, 1, 0.36, 1);
	overflow: hidden;
	transform-style: preserve-3d;
	box-shadow: 0 10px 40px rgba(0, 0, 0, 0.4);
}

.ab-team__pillar::before {
	content: "";
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	height: 1px;
	background: linear-gradient(90deg, transparent, var(--ab-gold), transparent);
	opacity: 0.6;
}

.ab-team__pillar:hover {
	background: rgba(184, 153, 104, 0.18);
	border-color: var(--ab-gold-bright);
	box-shadow: 0 14px 50px rgba(0, 0, 0, 0.5), 0 0 30px rgba(184, 153, 104, 0.15);
}
.ab-team__pillar:hover .ab-team__pillar-glow { opacity: 1; }

.ab-team__pillar-label {
	display: inline-block;
	font-family: 'Inter', sans-serif;
	font-size: 11px;
	letter-spacing: 0.4em;
	font-weight: 700;
	color: var(--ab-gold-bright);
	margin-bottom: 32px;
	padding: 8px 16px;
	border: 1px solid var(--ab-gold);
	background: rgba(184, 153, 104, 0.12);
	text-transform: uppercase;
	text-shadow: 0 1px 4px rgba(0, 0, 0, 0.5);
}

.ab-team__pillar-body {
	font-family: 'Hiragino Mincho ProN', 'Yu Mincho', serif !important;
	font-size: clamp(16px, 1.85vw, 18px) !important;
	line-height: 2.0 !important;
	color: #ffffff !important;
	margin: 0 !important;
	letter-spacing: 0.04em !important;
	position: relative;
	z-index: 2;
	font-weight: 500 !important;
	opacity: 1 !important;
	text-shadow:
		0 2px 10px rgba(0, 0, 0, 0.95),
		0 0 16px rgba(0, 0, 0, 0.7),
		0 1px 2px rgba(0, 0, 0, 0.9) !important;
	isolation: isolate;
}

.ab-team__pillar-glow {
	position: absolute;
	top: 50%;
	left: 50%;
	transform: translate(-50%, -50%);
	width: 80%;
	height: 80%;
	background: radial-gradient(circle, rgba(184, 153, 104, 0.18) 0%, transparent 60%);
	filter: blur(40px);
	opacity: 0;
	transition: opacity 0.6s ease;
	pointer-events: none;
}

/* ===========================================
 * 9. WHY NOW — AI 時代だからこそ
 * =========================================== */
.ab-whynow {
	position: relative;
	padding: 200px 0 180px;
	background: var(--ab-navy);
	color: #fff;
	overflow: hidden;
	isolation: isolate;
}

.ab-whynow__bg {
	position: absolute;
	inset: 0;
	pointer-events: none;
	z-index: 1;
	opacity: 0.5;
}
.ab-whynow__bg canvas {
	width: 100%;
	height: 100%;
	display: block;
}

.ab-whynow .ab-section-head {
	margin-bottom: 100px;
}
.ab-whynow .ab-section-head__title { color: #fff; text-shadow: 0 2px 12px rgba(0, 0, 0, 0.8), 0 0 30px rgba(184, 153, 104, 0.3); }
.ab-whynow .ab-section-head__lead { color: #ffffff; font-weight: 500; text-shadow: 0 2px 10px rgba(0, 0, 0, 0.8); }
.ab-whynow .ab-section-head__num { color: var(--ab-gold); }
.ab-whynow .ab-section-head__num::before,
.ab-whynow .ab-section-head__num::after { background: var(--ab-gold); opacity: 0.5; }

.ab-whynow__body {
	max-width: 720px;
	margin: 0 auto;
	text-align: center;
}

.ab-whynow__p {
	font-family: 'Hiragino Mincho ProN', 'Yu Mincho', serif;
	font-size: clamp(16px, 2vw, 19px);
	line-height: 2.5;
	color: #ffffff;
	margin: 0 0 22px;
	letter-spacing: 0.07em;
	font-weight: 500;
	text-shadow: 0 1px 6px rgba(0, 0, 0, 0.6);
}

.ab-whynow__p:last-child {
	color: var(--ab-gold-light);
	font-family: 'Shippori Mincho', serif;
	font-weight: 500;
	font-size: clamp(18px, 2.3vw, 22px);
	text-shadow: 0 0 40px rgba(184, 153, 104, 0.3);
	margin-top: 32px;
}

.ab-whynow__space {
	height: 32px;
}

/* ===========================================
 * 10. INVITATION — 招待状、CTA
 * =========================================== */
.ab-invite {
	position: relative;
	padding: 200px 0 180px;
	background:
		radial-gradient(ellipse at center,
			var(--ab-navy-light) 0%,
			var(--ab-navy) 40%,
			var(--ab-navy-deep) 100%);
	color: #fff;
	overflow: hidden;
	isolation: isolate;
	text-align: center;
}

.ab-invite__bg {
	position: absolute;
	inset: 0;
	pointer-events: none;
	z-index: 1;
}

.ab-invite__bg-ring {
	position: absolute;
	top: 50%;
	left: 50%;
	transform: translate(-50%, -50%);
	border: 1px solid rgba(184, 153, 104, 0.2);
	border-radius: 50%;
	pointer-events: none;
}
.ab-invite__bg-ring--1 {
	width: 400px;
	height: 400px;
	animation: ab-invite-ring 8s ease-in-out infinite;
}
.ab-invite__bg-ring--2 {
	width: 600px;
	height: 600px;
	animation: ab-invite-ring 12s ease-in-out infinite 1s;
	opacity: 0.7;
}
.ab-invite__bg-ring--3 {
	width: 800px;
	height: 800px;
	animation: ab-invite-ring 16s ease-in-out infinite 2s;
	opacity: 0.4;
}
@keyframes ab-invite-ring {
	0%, 100% { transform: translate(-50%, -50%) scale(1); opacity: 0.5; }
	50%      { transform: translate(-50%, -50%) scale(1.05); opacity: 0.9; }
}

.ab-invite__inner {
	position: relative;
	z-index: 3;
	max-width: 760px;
	margin: 0 auto;
}

.ab-invite__eyebrow {
	display: inline-block;
	font-family: 'Inter', sans-serif;
	font-size: 11px;
	letter-spacing: 0.5em;
	color: var(--ab-gold);
	font-weight: 700;
	margin-bottom: 32px;
	padding: 10px 24px;
	border: 1px solid var(--ab-gold);
	background: rgba(184, 153, 104, 0.06);
	backdrop-filter: blur(20px);
	-webkit-backdrop-filter: blur(20px);
	text-transform: uppercase;
}

.ab-invite__title {
	font-family: 'Shippori Mincho', serif;
	font-size: clamp(34px, 5.5vw, 56px);
	font-weight: 600;
	line-height: 1.5;
	color: #fff;
	margin: 0 0 36px;
	letter-spacing: 0.06em;
	text-shadow: 0 0 50px rgba(184, 153, 104, 0.4);
}

.ab-invite__body {
	font-family: 'Hiragino Mincho ProN', serif;
	font-size: clamp(15px, 1.8vw, 17px);
	line-height: 2.3;
	color: #ffffff;
	margin: 0 0 56px;
	letter-spacing: 0.05em;
	font-weight: 500;
	text-shadow: 0 1px 6px rgba(0, 0, 0, 0.6);
}

.ab-invite__btn {
	display: inline-flex;
	align-items: center;
	gap: 18px;
	padding: 22px 56px;
	background: var(--ab-gold);
	color: var(--ab-navy);
	text-decoration: none;
	font-family: 'Inter', sans-serif;
	font-size: 14px;
	font-weight: 700;
	letter-spacing: 0.18em;
	transition: all 0.5s cubic-bezier(0.22, 1, 0.36, 1);
	border: 1px solid var(--ab-gold);
	position: relative;
	overflow: hidden;
	border-radius: 2px;
	box-shadow: 0 20px 60px rgba(184, 153, 104, 0.3);
}

.ab-invite__btn::before {
	content: "";
	position: absolute;
	top: 0;
	left: -100%;
	width: 100%;
	height: 100%;
	background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.4), transparent);
	transition: left 0.7s ease;
}

.ab-invite__btn::after {
	content: "";
	position: absolute;
	inset: -2px;
	border: 1px solid var(--ab-gold);
	border-radius: 4px;
	opacity: 0;
	transition: all 0.5s ease;
	transform: scale(0.95);
}

.ab-invite__btn:hover {
	background: var(--ab-gold-bright);
	letter-spacing: 0.22em;
	box-shadow: 0 30px 80px rgba(184, 153, 104, 0.5);
	transform: translateY(-3px);
}
.ab-invite__btn:hover::before { left: 100%; }
.ab-invite__btn:hover::after { opacity: 0.6; transform: scale(1.05); }
.ab-invite__btn:hover .ab-invite__btn-arrow { transform: translateX(6px); }

.ab-invite__btn.is-pressed {
	animation: ab-cta-press 0.6s ease-out;
}
@keyframes ab-cta-press {
	0% { transform: scale(1); }
	30% { transform: scale(0.96); box-shadow: 0 0 0 0 rgba(184, 153, 104, 0.8); }
	100% { transform: scale(1); box-shadow: 0 0 0 80px rgba(184, 153, 104, 0); }
}

.ab-invite__btn-arrow {
	transition: transform 0.4s ease;
}

.ab-invite__sub {
	margin: 28px 0 0;
	font-family: 'JetBrains Mono', monospace;
	font-size: 11px;
	letter-spacing: 0.25em;
	color: #e6d5a8;
	font-weight: 500;
}

/* ===========================================
 * モバイル全体調整（後半）
 * =========================================== */
@media (max-width: 768px) {
	.ab-promise { padding: 120px 0 100px; }
	.ab-voices  { padding: 120px 0 100px; }
	.ab-team    { padding: 120px 0 100px; }
	.ab-whynow  { padding: 120px 0 100px; }
	.ab-invite  { padding: 120px 0 100px; }
	.ab-voices__item { padding: 48px 32px 28px; }
	.ab-voices__mark { font-size: 60px; }
	.ab-invite__bg-ring--3 { width: 500px; height: 500px; }
	.ab-invite__bg-ring--2 { width: 400px; height: 400px; }
	.ab-invite__bg-ring--1 { width: 280px; height: 280px; }
	.ab-invite__btn { padding: 18px 36px; font-size: 13px; }
}

/* モーション削減対応（後半セクション） */
@media (prefers-reduced-motion: reduce) {
	.ab-invite__bg-ring { display: none; }
	.ab-whynow__bg canvas { display: none; }
}

/* ===========================================
 * v1.9.242 インパクト強化アップデート
 * - OPENING 光線、巨大化
 * - CEO ポートレート 480px + 3 層リング + スキャン
 * - グリッチタイトル
 * - NUMBERS 巨大化
 * =========================================== */

/* ===========================================
 * 1. OPENING — 4D 5 層パララックス空間（v1.9.247 完全リライト）
 *    プロ4Dデザイナー設計：奥行きを感じさせる7技法
 *    1. マルチレイヤー Parallax  2. 大気遠近法
 *    3. 透視グリッド地平線        4. マウス追従視差
 *    5. 垂直の光柱                6. 遠景・中景・近景3層
 *    7. テキストの Z軸移動
 * =========================================== */
.ab-opening {
	position: relative;
	min-height: 100vh;
	display: flex;
	align-items: center;
	overflow: hidden;
	background:
		linear-gradient(180deg,
			#050a14 0%,
			#0a1628 20%,
			#0f1d35 40%,
			#1a2640 65%,
			#3a2e1f 90%,
			#5a4a35 100%);
	padding: 120px 0;
	isolation: isolate;
	perspective: 1500px;
	perspective-origin: center 65%;
	transform-style: preserve-3d;
}

/* OPENING テキストの背後に暗いベール（読みやすさを保証） */
.ab-opening::before {
	content: "";
	position: absolute;
	top: 50%;
	left: 50%;
	transform: translate(-50%, -50%);
	width: 100%;
	height: 70%;
	background: radial-gradient(ellipse at center,
		rgba(5, 10, 20, 0.65) 0%,
		rgba(5, 10, 20, 0.35) 35%,
		transparent 70%);
	pointer-events: none;
	z-index: 6;
}

/* 全レイヤー基本 */
.ab-opening__layer {
	position: absolute;
	inset: 0;
	pointer-events: none;
	will-change: transform;
}

/* === Layer 0: 最遠景 — 星空（薄く、ほぼ動かない） === */
.ab-opening__layer--stars {
	z-index: 1;
	opacity: 0.45;
}
.ab-opening__starfield {
	position: absolute;
	inset: 0;
	background-image:
		radial-gradient(1.2px 1.2px at 12% 8%,   rgba(255, 240, 200, 0.95), transparent 50%),
		radial-gradient(1px 1px at 28% 14%, rgba(255, 240, 200, 0.7), transparent 50%),
		radial-gradient(1.5px 1.5px at 45% 6%, rgba(255, 240, 200, 0.9), transparent 50%),
		radial-gradient(0.8px 0.8px at 62% 12%, rgba(255, 240, 200, 0.5), transparent 50%),
		radial-gradient(1.3px 1.3px at 78% 5%, rgba(255, 240, 200, 0.85), transparent 50%),
		radial-gradient(1px 1px at 92% 18%, rgba(255, 240, 200, 0.7), transparent 50%),
		radial-gradient(0.9px 0.9px at 8% 22%, rgba(255, 240, 200, 0.6), transparent 50%),
		radial-gradient(1.1px 1.1px at 35% 26%, rgba(255, 240, 200, 0.75), transparent 50%),
		radial-gradient(0.7px 0.7px at 55% 24%, rgba(255, 240, 200, 0.5), transparent 50%),
		radial-gradient(1.4px 1.4px at 88% 32%, rgba(255, 240, 200, 0.85), transparent 50%);
	background-size: 100% 100%;
	background-repeat: no-repeat;
	animation: ab-stars-twinkle 6s ease-in-out infinite;
}
@keyframes ab-stars-twinkle {
	0%, 100% { opacity: 1; }
	50% { opacity: 0.55; }
}

/* === Layer 1: 遠景の雲（強くぼかし） === */
.ab-opening__layer--far {
	z-index: 2;
}
.ab-opening__cloud-far {
	position: absolute;
	border-radius: 50%;
	background: radial-gradient(ellipse at center,
		rgba(255, 245, 220, 0.45) 0%,
		rgba(255, 230, 180, 0.18) 40%,
		transparent 75%);
	filter: blur(40px);
}
.ab-opening__cloud-far--1 {
	width: 90%;
	height: 200px;
	top: 35%;
	left: -5%;
	animation: ab-cloud-far-1 60s ease-in-out infinite;
}
.ab-opening__cloud-far--2 {
	width: 80%;
	height: 180px;
	top: 45%;
	right: -10%;
	animation: ab-cloud-far-2 80s ease-in-out infinite reverse;
}
@keyframes ab-cloud-far-1 {
	0%, 100% { transform: translateX(0); }
	50%      { transform: translateX(60px); }
}
@keyframes ab-cloud-far-2 {
	0%, 100% { transform: translateX(0); }
	50%      { transform: translateX(-80px); }
}

/* === Layer 2: 中景 — 透視グリッド地平線（消失点の核心） === */
.ab-opening__layer--horizon {
	z-index: 3;
}

/* 透視グリッド：手前に向かって広がる */
.ab-opening__perspective-grid {
	position: absolute;
	bottom: 0;
	left: 50%;
	width: 250%;
	height: 50vh;
	transform: translateX(-50%) perspective(900px) rotateX(75deg);
	transform-origin: center bottom;
	background:
		linear-gradient(transparent 0%, rgba(184, 153, 104, 0.15) 100%),
		linear-gradient(rgba(184, 153, 104, 0.35) 1px, transparent 1px),
		linear-gradient(90deg, rgba(184, 153, 104, 0.35) 1px, transparent 1px);
	background-size: 100% 100%, 70px 70px, 70px 70px;
	animation: ab-grid-flow 12s linear infinite;
	mask-image: linear-gradient(transparent 0%, #000 25%, #000 100%);
	-webkit-mask-image: linear-gradient(transparent 0%, #000 25%, #000 100%);
}
@keyframes ab-grid-flow {
	from { background-position: 0 0, 0 0, 0 0; }
	to   { background-position: 0 0, 0 70px, 0 0; }
}

/* 沈む太陽（光源、観察者の視線の中心） */
.ab-opening__sun {
	position: absolute;
	top: 78%;
	left: 50%;
	transform: translate(-50%, -50%);
	width: 140px;
	height: 140px;
	border-radius: 50%;
	background: radial-gradient(circle,
		rgba(255, 240, 210, 0.55) 0%,
		rgba(255, 225, 170, 0.35) 25%,
		rgba(220, 175, 110, 0.18) 50%,
		transparent 75%);
	filter: blur(6px);
	animation: ab-sun-pulse 10s ease-in-out infinite;
	z-index: 1;
}
@keyframes ab-sun-pulse {
	0%, 100% { transform: translate(-50%, -50%) scale(1); opacity: 0.5; }
	50%      { transform: translate(-50%, -50%) scale(1.08); opacity: 0.7; }
}

/* 水平線（消失点の境界） */
.ab-opening__horizon-line {
	position: absolute;
	top: 60%;
	left: 0;
	right: 0;
	height: 1px;
	background: linear-gradient(90deg,
		transparent 0%,
		rgba(184, 153, 104, 0.45) 30%,
		rgba(212, 196, 160, 0.75) 50%,
		rgba(184, 153, 104, 0.45) 70%,
		transparent 100%);
	box-shadow: 0 0 30px rgba(184, 153, 104, 0.35);
}

/* === ゴッドレイ：太陽から放射状に伸びる神の光線（v1.9.249） === */
.ab-opening__godrays {
	position: absolute;
	top: 55%;
	left: 50%;
	width: 1px;
	height: 1px;
	transform: translate(-50%, -50%);
	pointer-events: none;
}
.ab-opening__godray {
	position: absolute;
	top: 0;
	left: 50%;
	width: 2px;
	height: 80vh;
	background: linear-gradient(180deg,
		rgba(255, 240, 200, 0.65) 0%,
		rgba(212, 196, 160, 0.35) 25%,
		rgba(184, 153, 104, 0.15) 50%,
		transparent 100%);
	transform-origin: top center;
	filter: blur(3px);
	opacity: 0;
	animation: ab-godray-pulse 7s ease-in-out infinite;
	mix-blend-mode: screen;
}
.ab-opening__godray--1 { transform: translateX(-50%) rotate(-45deg); animation-delay: 0s; }
.ab-opening__godray--2 { transform: translateX(-50%) rotate(-30deg); animation-delay: 0.8s; }
.ab-opening__godray--3 { transform: translateX(-50%) rotate(-15deg); animation-delay: 1.6s; }
.ab-opening__godray--4 { transform: translateX(-50%) rotate(0deg);   animation-delay: 2.4s; width: 3px; }
.ab-opening__godray--5 { transform: translateX(-50%) rotate(15deg);  animation-delay: 3.2s; }
.ab-opening__godray--6 { transform: translateX(-50%) rotate(30deg);  animation-delay: 4.0s; }
.ab-opening__godray--7 { transform: translateX(-50%) rotate(45deg);  animation-delay: 4.8s; }
@keyframes ab-godray-pulse {
	0%, 100% { opacity: 0; }
	40%      { opacity: 0.25; }
	60%      { opacity: 0.25; }
}

/* === 中央の光の柱：神々しい一筋（v1.9.252 抑制版） === */
.ab-opening__light-column {
	position: absolute;
	top: 0;
	left: 50%;
	transform: translateX(-50%);
	width: 240px;
	height: 100vh;
	pointer-events: none;
	z-index: 5;
	background:
		radial-gradient(ellipse 80% 100% at center 50%,
			rgba(255, 245, 220, 0.08) 0%,
			rgba(255, 235, 195, 0.04) 25%,
			rgba(212, 196, 160, 0.02) 50%,
			transparent 80%);
	mix-blend-mode: screen;
	filter: blur(30px);
	animation: ab-light-column-breath 6s ease-in-out infinite;
}
@keyframes ab-light-column-breath {
	0%, 100% { opacity: 0.25; transform: translateX(-50%) scaleY(1); }
	50%      { opacity: 0.45; transform: translateX(-50%) scaleY(1.04); }
}

/* === Layer 3: 近景の雲（手前で速く動く） === */
.ab-opening__layer--near {
	z-index: 4;
}
.ab-opening__cloud-near {
	position: absolute;
	border-radius: 50%;
	background: radial-gradient(ellipse at center,
		rgba(255, 255, 245, 0.7) 0%,
		rgba(255, 245, 220, 0.3) 35%,
		transparent 70%);
	filter: blur(25px);
}
.ab-opening__cloud-near--1 {
	width: 700px;
	height: 220px;
	top: 22%;
	left: -180px;
	animation: ab-cloud-near-1 28s ease-in-out infinite;
	opacity: 0.85;
}
.ab-opening__cloud-near--2 {
	width: 800px;
	height: 240px;
	top: 70%;
	right: -200px;
	animation: ab-cloud-near-2 32s ease-in-out infinite reverse;
	opacity: 0.7;
}
.ab-opening__cloud-near--3 {
	width: 600px;
	height: 180px;
	bottom: 12%;
	left: 20%;
	animation: ab-cloud-near-1 36s ease-in-out infinite 6s;
	opacity: 0.6;
}
@keyframes ab-cloud-near-1 {
	0%, 100% { transform: translateX(0); }
	50%      { transform: translateX(120px); }
}
@keyframes ab-cloud-near-2 {
	0%, 100% { transform: translateX(0); }
	50%      { transform: translateX(-150px); }
}

/* === Layer 4: 垂直の光柱（高さを感じさせる） === */
.ab-opening__layer--pillars {
	z-index: 5;
}
.ab-opening__pillar {
	position: absolute;
	bottom: 0;
	width: 1px;
	height: 70vh;
	background: linear-gradient(180deg,
		transparent 0%,
		rgba(184, 153, 104, 0.4) 30%,
		rgba(212, 196, 160, 0.6) 60%,
		rgba(184, 153, 104, 0.3) 80%,
		transparent 100%);
	transform-origin: bottom center;
	animation: ab-pillar-rise 8s ease-in-out infinite;
	filter: blur(0.5px);
	box-shadow: 0 0 8px rgba(184, 153, 104, 0.4);
}
.ab-opening__pillar--1 { left: 18%; animation-delay: 0s; }
.ab-opening__pillar--2 { left: 50%; animation-delay: 2s; transform: translateX(-50%); }
.ab-opening__pillar--3 { right: 18%; animation-delay: 4s; }
@keyframes ab-pillar-rise {
	0%, 100% { opacity: 0; transform: scaleY(0.8) translateX(0); }
	50%      { opacity: 0.7; transform: scaleY(1.05) translateX(0); }
}
.ab-opening__pillar--2 {
	transform: translateX(-50%);
}
.ab-opening__pillar--2 {
	animation-name: ab-pillar-rise-center;
}
@keyframes ab-pillar-rise-center {
	0%, 100% { opacity: 0; transform: translateX(-50%) scaleY(0.8); }
	50%      { opacity: 0.7; transform: translateX(-50%) scaleY(1.05); }
}

/* === Layer 5: テキスト（最前景、Z軸移動） === */
.ab-opening__inner {
	position: relative;
	z-index: 10;
	max-width: 900px;
	margin: 0 auto;
	text-align: center;
	transform-style: preserve-3d;
	transition: transform 0.6s cubic-bezier(0.22, 1, 0.36, 1);
}

/* タイトル：v1.9.255 blur 完全廃止、可読性が演出より絶対優先
   フェードイン + 軽い上昇のみで品格を保つ */
.ab-opening__qline {
	display: block;
	text-align: center;
	text-indent: 0.04em; /* letter-spacing 0.04em 相殺 */
	opacity: 0;
	transform: translateY(20px);
	animation: ab-title-emerge 1.0s cubic-bezier(0.22, 1, 0.36, 1) var(--ab-delay, 0s) forwards;
}
@keyframes ab-title-emerge {
	0%   { opacity: 0; transform: translateY(20px); }
	100% { opacity: 1; transform: translateY(0); }
}

/* eyebrow：v1.9.255 blur 除去 */
.ab-opening__eyebrow {
	opacity: 0;
	animation: ab-eyebrow-emerge 1.0s cubic-bezier(0.22, 1, 0.36, 1) 0.2s forwards;
}
@keyframes ab-eyebrow-emerge {
	from { opacity: 0; transform: translateY(-10px); }
	to   { opacity: 1; transform: translateY(0); }
}

/* lead：v1.9.255 blur 除去 */
.ab-opening__lead {
	opacity: 0;
	animation: ab-lead-emerge 1.2s cubic-bezier(0.22, 1, 0.36, 1) 1.0s forwards;
}
@keyframes ab-lead-emerge {
	from { opacity: 0; transform: translateY(10px); }
	to   { opacity: 1; transform: translateY(0); }
}

/* === 大気遠近法のフォグ（最前面、画面下部に薄いベール） === */
.ab-opening__atmosphere {
	position: absolute;
	left: 0;
	right: 0;
	bottom: 0;
	height: 40%;
	background: linear-gradient(180deg,
		transparent 0%,
		rgba(245, 230, 200, 0.06) 30%,
		rgba(245, 230, 200, 0.12) 70%,
		rgba(245, 230, 200, 0.2) 100%);
	pointer-events: none;
	z-index: 6;
}

/* === eyebrow バッジ（紺背景に変更、新しい配色に合わせる） === */
.ab-opening__eyebrow {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	font-family: 'Inter', sans-serif;
	font-size: 11px;
	letter-spacing: 0.5em;
	color: var(--ab-gold-light);
	font-weight: 700;
	margin-bottom: 56px;
	padding: 10px 24px;
	border: 1px solid rgba(184, 153, 104, 0.5);
	border-radius: 2px;
	background: rgba(10, 22, 40, 0.35);
	backdrop-filter: blur(20px);
	-webkit-backdrop-filter: blur(20px);
	text-transform: uppercase;
	position: relative;
	z-index: 11;
}
.ab-opening__eyebrow-dot {
	width: 5px;
	height: 5px;
	background: var(--ab-gold-bright);
	border-radius: 50%;
	box-shadow: 0 0 8px var(--ab-gold);
	animation: ab-eyebrow-dot 2s ease-in-out infinite;
}

/* === タイトル：v1.9.252 可読性最優先 === */
.ab-opening__question {
	font-size: clamp(28px, 4.6vw, 50px) !important;
	font-weight: 500 !important;
	letter-spacing: 0.04em !important;
	line-height: 1.85 !important;
	color: #fff !important;
	text-shadow:
		0 2px 12px rgba(0, 0, 0, 0.85),
		0 0 30px rgba(0, 0, 0, 0.6),
		0 0 60px rgba(184, 153, 104, 0.2);
	max-width: 760px !important;
	margin: 0 auto 56px !important;
	text-align: center !important;
	text-wrap: balance;
	word-break: keep-all;
	overflow-wrap: break-word;
	position: relative;
	z-index: 10;
	padding: 0 16px;
}

/* OPENING 各行：letter-spacing 相殺（block + text-indent） */
.ab-opening__qline {
	display: block;
	text-align: center;
	text-indent: 0.04em;
}

/* === リード文：v1.9.252 可読性最優先 === */
.ab-opening__lead {
	max-width: 600px !important;
	margin: 0 auto !important;
	text-align: center;
	position: relative;
	z-index: 10;
	word-break: keep-all;
	overflow-wrap: break-word;
	color: #ffffff !important;
	font-weight: 500 !important;
	text-shadow:
		0 2px 10px rgba(0, 0, 0, 0.85),
		0 0 24px rgba(0, 0, 0, 0.6);
}

/* === スクロール促し === */
.ab-opening__scroll {
	z-index: 11;
}
.ab-opening__scroll-line {
	background: linear-gradient(180deg, #e6d5a8, transparent) !important;
}
.ab-opening__scroll-label {
	color: #e6d5a8 !important;
}

/* === モバイル調整 === */
@media (max-width: 768px) {
	.ab-opening { padding: 100px 0 80px; }
	.ab-opening__perspective-grid { display: none; }
	.ab-opening__sun { width: 220px; height: 220px; }
	.ab-opening__cloud-near--1,
	.ab-opening__cloud-near--2,
	.ab-opening__cloud-near--3 { width: 100%; }
	.ab-opening__pillar { display: none; }
	.ab-opening__godrays { display: none; }
	.ab-opening__light-column { width: 200px; opacity: 0.5; }
}

/* === モーション削減 === */
@media (prefers-reduced-motion: reduce) {
	.ab-opening__starfield,
	.ab-opening__cloud-far,
	.ab-opening__cloud-near,
	.ab-opening__perspective-grid,
	.ab-opening__sun,
	.ab-opening__pillar,
	.ab-opening__godray,
	.ab-opening__light-column {
		animation: none !important;
	}
	.ab-opening__qline {
		opacity: 1 !important;
		transform: none !important;
		filter: none !important;
		animation: none !important;
	}
	.ab-opening__eyebrow,
	.ab-opening__lead {
		opacity: 1 !important;
		animation: none !important;
	}
}

/* === グリッチ：crpma aberration === */
[data-soa-ab-glitch] {
	position: relative;
	display: inline-block;
}
[data-soa-ab-glitch].is-glitching::before,
[data-soa-ab-glitch].is-glitching::after {
	content: attr(data-soa-ab-glitch);
	position: absolute;
	top: 0; left: 0;
	width: 100%; height: 100%;
	pointer-events: none;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
}
[data-soa-ab-glitch].is-glitching::before {
	color: #00ffea;
	transform: translate(-3px, 0);
	clip-path: polygon(0 15%, 100% 15%, 100% 50%, 0 50%);
	mix-blend-mode: screen;
	opacity: 0.85;
}
[data-soa-ab-glitch].is-glitching::after {
	color: #ff00aa;
	transform: translate(3px, 0);
	clip-path: polygon(0 55%, 100% 55%, 100% 90%, 0 90%);
	mix-blend-mode: screen;
	opacity: 0.85;
}

/* v1.9.347: モバイルではクロマアバレーション(グリッチ)の分身を無効化。
 * 分身は data 属性の1行テキストを flex 中央寄せで重ねるため、狭幅で本体（複数行に
 * 折返した見出し）と折返し位置がズレ、シアン/マゼンタが中心から外れて見えていた。
 * 本体は text-align:center で既に中央寄せ済みなので、分身を消せばクリーンに中央表示される。 */
@media (max-width: 768px) {
	[data-soa-ab-glitch].is-glitching::before,
	[data-soa-ab-glitch].is-glitching::after {
		display: none !important;
	}
}

/* === MANIFESTO short：v1.9.251 letter-spacing 相殺で真センター === */
.ab-manifesto__short {
	font-size: clamp(28px, 4.6vw, 52px) !important;
	font-weight: 600 !important;
	letter-spacing: 0.06em !important;
	line-height: 1.65 !important;
	max-width: 100% !important;
	margin: 0 auto 100px !important;
	text-align: center !important;
	padding: 0 24px;
	text-wrap: initial;
	word-break: keep-all;
	display: block;
}

/* 各行：letter-spacing で生じる右余白を text-indent で相殺 */
.ab-manifesto__short-line {
	display: block;
	text-align: center;
	text-indent: 0.06em; /* letter-spacing 0.06em 相殺 */
	white-space: nowrap;
	overflow: visible;
}

.ab-manifesto__short-line:not(:last-child) {
	margin-bottom: 4px;
}

/* モバイル */
@media (max-width: 540px) {
	.ab-manifesto__short {
		font-size: clamp(22px, 6vw, 28px) !important;
		letter-spacing: 0.04em !important;
		padding: 0 16px;
	}
	.ab-manifesto__short-line {
		text-indent: 0.04em;
	}
}

/* MANIFESTO 本文も同じ相殺 */
.ab-manifesto__p {
	text-align: center !important;
	max-width: 720px;
	margin-left: auto !important;
	margin-right: auto !important;
	word-break: keep-all;
	text-indent: 0.07em;
}

/* === CEO ポートレート：写真ありの場合（2 列レイアウト） === */
.ab-founder__intro.has-image {
	grid-template-columns: 380px 1fr !important;
	gap: 72px !important;
}
@media (max-width: 768px) {
	.ab-founder__intro.has-image {
		grid-template-columns: 1fr !important;
		gap: 48px !important;
	}
}

/* === CEO ポートレート：写真なしの場合（2列、placeholderで誘導） === */
.ab-founder__intro.no-image {
	grid-template-columns: 380px 1fr !important;
	gap: 72px !important;
}
@media (max-width: 768px) {
	.ab-founder__intro.no-image {
		grid-template-columns: 1fr !important;
		gap: 48px !important;
	}
}

/* placeholder（写真未登録時の枠） */
.ab-founder__portrait-placeholder {
	position: absolute;
	inset: 0;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 20px;
	border: 2px dashed rgba(184, 153, 104, 0.4);
	border-radius: 50%;
	background:
		radial-gradient(circle at center, rgba(184, 153, 104, 0.08) 0%, transparent 70%);
	color: #e6d5a8;
	transition: all 0.4s ease;
}
.ab-founder__portrait-placeholder:hover {
	border-color: rgba(184, 153, 104, 0.7);
	color: var(--ab-gold-bright);
	background: radial-gradient(circle at center, rgba(184, 153, 104, 0.15) 0%, transparent 70%);
}
.ab-founder__portrait-icon {
	width: 72px;
	height: 72px;
	opacity: 0.8;
}
.ab-founder__portrait-hint {
	font-family: 'Shippori Mincho', serif;
	font-size: 13px;
	letter-spacing: 0.1em;
	text-align: center;
	line-height: 1.7;
	font-weight: 500;
	padding: 0 20px;
}

.ab-founder__portrait {
	width: 360px !important;
	height: 360px !important;
	position: relative;
	background: transparent !important;
	box-shadow: none !important;
	overflow: visible !important;
}
@media (max-width: 768px) {
	.ab-founder__portrait { width: 280px !important; height: 280px !important; }
}

.ab-founder__portrait-inner {
	position: absolute;
	top: 50%;
	left: 50%;
	transform: translate(-50%, -50%);
	width: 240px;
	height: 240px;
	border-radius: 50%;
	overflow: hidden;
	box-shadow:
		0 0 0 1px var(--ab-gold),
		0 0 40px rgba(184, 153, 104, 0.5),
		0 0 80px rgba(184, 153, 104, 0.3),
		0 0 120px rgba(184, 153, 104, 0.15);
	z-index: 2;
}
@media (max-width: 768px) {
	.ab-founder__portrait-inner { width: 200px; height: 200px; }
}

/* 3層リング */
.ab-founder__portrait-rings {
	position: absolute;
	inset: 0;
	pointer-events: none;
	z-index: 1;
}
.ab-founder__portrait-ring {
	position: absolute;
	top: 50%;
	left: 50%;
	transform: translate(-50%, -50%);
	border-radius: 50%;
}
.ab-founder__portrait-ring--1 {
	width: 280px;
	height: 280px;
	border: 1px solid rgba(184, 153, 104, 0.4);
	animation: ab-ring-spin 20s linear infinite;
}
.ab-founder__portrait-ring--1::before,
.ab-founder__portrait-ring--1::after {
	content: "";
	position: absolute;
	width: 8px;
	height: 8px;
	background: var(--ab-gold);
	border-radius: 50%;
	box-shadow: 0 0 12px var(--ab-gold);
}
.ab-founder__portrait-ring--1::before { top: -4px; left: 50%; transform: translateX(-50%); }
.ab-founder__portrait-ring--1::after  { bottom: -4px; left: 50%; transform: translateX(-50%); }

.ab-founder__portrait-ring--2 {
	width: 320px;
	height: 320px;
	border: 1px dashed rgba(212, 196, 160, 0.3);
	animation: ab-ring-spin 32s linear infinite reverse;
}

.ab-founder__portrait-ring--3 {
	width: 360px;
	height: 360px;
	border: 1px solid rgba(184, 153, 104, 0.15);
	animation: ab-ring-spin 48s linear infinite;
}
.ab-founder__portrait-ring--3::before {
	content: "";
	position: absolute;
	width: 12px;
	height: 12px;
	background: var(--ab-gold-bright);
	border-radius: 50%;
	box-shadow: 0 0 16px var(--ab-gold), 0 0 32px rgba(184, 153, 104, 0.4);
	top: 50%;
	right: -6px;
	transform: translateY(-50%);
}

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

@media (max-width: 768px) {
	.ab-founder__portrait-ring--1 { width: 240px; height: 240px; }
	.ab-founder__portrait-ring--2 { width: 270px; height: 270px; }
	.ab-founder__portrait-ring--3 { width: 300px; height: 300px; }
}

/* スキャンライン */
.ab-founder__portrait-scan {
	position: absolute;
	top: 50%;
	left: 50%;
	transform: translate(-50%, -50%);
	width: 240px;
	height: 240px;
	border-radius: 50%;
	overflow: hidden;
	pointer-events: none;
	z-index: 3;
}
.ab-founder__portrait-scan::before {
	content: "";
	position: absolute;
	left: 0;
	top: 0;
	width: 100%;
	height: 4px;
	background: linear-gradient(90deg, transparent, rgba(184, 153, 104, 0.9), transparent);
	box-shadow: 0 0 20px var(--ab-gold);
	animation: ab-scan-vertical 4s ease-in-out infinite;
}
@keyframes ab-scan-vertical {
	0%, 100% { transform: translateY(-10px); opacity: 0; }
	50% { transform: translateY(240px); opacity: 1; }
}
@media (max-width: 768px) {
	.ab-founder__portrait-scan { width: 200px; height: 200px; }
	@keyframes ab-scan-vertical {
		0%, 100% { transform: translateY(-10px); opacity: 0; }
		50% { transform: translateY(200px); opacity: 1; }
	}
}

/* CEO 名前ブロック巨大化 */
.ab-founder__profile {
	gap: 12px !important;
}

.ab-founder__name-en {
	font-size: clamp(13px, 1.5vw, 15px) !important;
	letter-spacing: 0.4em !important;
	font-weight: 700 !important;
	color: var(--ab-gold-bright) !important;
	text-shadow: 0 0 12px rgba(184, 153, 104, 0.5), 0 1px 4px rgba(0, 0, 0, 0.6);
	position: relative;
	display: inline-block;
	padding-left: 0.4em; /* letter-spacing 相殺 */
}

.ab-founder__name {
	font-size: clamp(36px, 5vw, 56px) !important;
	letter-spacing: 0.12em !important;
	font-weight: 600 !important;
	margin-top: 2px !important;
	color: #fff !important;
	text-shadow: 0 0 30px rgba(184, 153, 104, 0.4), 0 2px 12px rgba(0, 0, 0, 0.7);
}

.ab-founder__title-text {
	font-size: 15px !important;
	margin-top: 8px !important;
	color: #ffffff !important;
	font-weight: 500 !important;
	text-shadow: 0 1px 6px rgba(0, 0, 0, 0.6);
}

.ab-founder__profile-meta {
	display: flex;
	gap: 24px;
	margin-top: 28px;
	font-family: 'JetBrains Mono', monospace;
	font-size: 11px;
	letter-spacing: 0.3em;
	color: var(--ab-gold-bright);
	opacity: 1;
	flex-wrap: wrap;
	font-weight: 600;
	text-shadow: 0 1px 4px rgba(0, 0, 0, 0.6);
}
.ab-founder__meta-item {
	display: inline-flex;
	align-items: center;
	gap: 8px;
}
.ab-founder__meta-dot {
	width: 6px;
	height: 6px;
	border-radius: 50%;
	background: #5ac26b;
	box-shadow: 0 0 8px #5ac26b;
	animation: ab-meta-blink 1.5s ease-in-out infinite;
}
@keyframes ab-meta-blink {
	0%, 100% { opacity: 1; }
	50% { opacity: 0.4; }
}

/* === NUMBERS: v1.9.243 で本体に巨大サイズ統合済み、ここでは何もしない === */

/* === Manifesto, Founder, Whynow タイトル間の余白調整 === */
.ab-founder__intro { margin-bottom: 120px !important; }

/* モーション削減対応 */
@media (prefers-reduced-motion: reduce) {
	.ab-opening__rays { display: none; }
	.ab-founder__portrait-rings { display: none; }
	.ab-founder__portrait-scan { display: none; }
}


/* ===========================================
 * v1.9.259 強制可読化ルール（最終手段）
 * 全ての本文テキストの透過を絶対に許さない
 * =========================================== */
.ab-story__heading-text,
.ab-story__heading-idx,
.ab-story__note,
.ab-manifesto__p,
.ab-manifesto__short-line,
.ab-founder__a-text,
.ab-founder__q-text,
.ab-founder__name,
.ab-founder__name-en,
.ab-founder__title-text,
.ab-team__pillar-body,
.ab-team__pillar-label,
.ab-whynow__p,
.ab-invite__body,
.ab-invite__title,
.ab-promise__text,
.ab-section-head__title,
.ab-section-head__lead,
.ab-section-head__eyebrow,
.ab-section-head__num,
.ab-opening__question,
.ab-opening__qline,
.ab-opening__lead {
	opacity: 1 !important;
}

/* 親ブロックも常に不透明（reveal 中も含む） */
.ab-story__block,
.ab-manifesto__body,
.ab-founder__intro,
.ab-team__pillar,
.ab-whynow__body,
.ab-invite__inner,
[data-soa-ab-reveal] {
	opacity: 1 !important;
}


/* ===========================================
 * v1.9.260 アンカーリンクの正しい着地
 * フッターから「代表メッセージ」「SOAの想い」「大切にしている価値観」をクリック時、
 * ヘッダーの下に文字が隠れないよう scroll-margin で 100px オフセット
 * =========================================== */
#manifesto,
#founder,
#values,
#team,
#promise,
#why {
	scroll-margin-top: 100px;
}

/* アンカー到着時の一瞬のハイライト演出（雲の上の体験） */
@keyframes ab-anchor-flash {
	0%   { box-shadow: inset 0 0 0 0 rgba(184, 153, 104, 0); }
	30%  { box-shadow: inset 0 0 200px 0 rgba(184, 153, 104, 0.08); }
	100% { box-shadow: inset 0 0 0 0 rgba(184, 153, 104, 0); }
}
#manifesto:target,
#founder:target,
#values:target,
#team:target {
	animation: ab-anchor-flash 1.6s ease-out;
}

/* スムーズスクロール（HTML 全体） */
html {
	scroll-behavior: smooth;
}
@media (prefers-reduced-motion: reduce) {
	html { scroll-behavior: auto; }
}


/* ===========================================
 * v1.9.262 TEAM カード本文 - 絶対可読化（最後の砦）
 * 他のどのCSSルールよりも後に書かれ、最高の特異性で勝つ
 * =========================================== */
section.ab-team .ab-team__pillar .ab-team__pillar-body,
section#team .ab-team__pillar .ab-team__pillar-body,
.ab-team__pillar > p.ab-team__pillar-body {
	color: #ffffff !important;
	font-size: 18px !important;
	line-height: 1.95 !important;
	font-weight: 600 !important;
	opacity: 1 !important;
	-webkit-text-fill-color: #ffffff !important;
	text-shadow:
		0 2px 12px rgba(0, 0, 0, 1),
		0 0 18px rgba(0, 0, 0, 0.9),
		0 0 4px rgba(0, 0, 0, 1),
		0 1px 1px rgba(0, 0, 0, 1) !important;
	filter: none !important;
	mix-blend-mode: normal !important;
}

@media (max-width: 768px) {
	section.ab-team .ab-team__pillar .ab-team__pillar-body,
	section#team .ab-team__pillar .ab-team__pillar-body {
		font-size: 16px !important;
	}
}

/* カード背景もより濃く */
section.ab-team .ab-team__pillar,
section#team .ab-team__pillar {
	background: rgba(8, 18, 35, 0.75) !important;
	border-color: rgba(184, 153, 104, 0.5) !important;
}


/* ===========================================
 * v1.9.263 STORY note の絶対勝利 — 最後の砦
 * 4段階のセレクタ詳細度で他のあらゆる CSS に勝つ
 * =========================================== */
html body section.ab-story article.ab-story__block p.ab-story__note,
html body section#story article.ab-story__block p.ab-story__note,
html body .ab-story .ab-story__block .ab-story__note,
.ab-story__note.ab-story__note.ab-story__note {
	color: #ffffff !important;
	-webkit-text-fill-color: #ffffff !important;
	font-size: 18px !important;
	font-weight: 600 !important;
	opacity: 1 !important;
	filter: none !important;
	mix-blend-mode: normal !important;
	background: transparent !important;
	-webkit-background-clip: initial !important;
	background-clip: initial !important;
	text-shadow:
		0 2px 12px rgba(0, 0, 0, 1),
		0 0 20px rgba(0, 0, 0, 0.95),
		0 0 6px rgba(0, 0, 0, 1),
		0 1px 1px rgba(0, 0, 0, 1) !important;
}

@media (max-width: 768px) {
	html body section.ab-story article.ab-story__block p.ab-story__note,
	html body .ab-story .ab-story__block .ab-story__note {
		font-size: 16px !important;
	}
}

/* STORY セクション全体に色強制（継承の遮断） */
html body section.ab-story,
html body section.ab-story * {
	-webkit-text-fill-color: inherit;
}
html body section.ab-story .ab-story__note,
html body section.ab-story .ab-story__note * {
	-webkit-text-fill-color: #ffffff !important;
	color: #ffffff !important;
}



/* ===========================================
 * v1.9.273 BRAND — 10年の基盤と、4つの軸
 * 透過ロゴ + 4本の光柱 + 雲の上の演出
 * =========================================== */
.ab-brand {
	position: relative;
	padding: 220px 0 240px;
	background:
		radial-gradient(ellipse 80% 60% at center 70%, rgba(184, 153, 104, 0.10) 0%, transparent 60%),
		linear-gradient(180deg, #050a16 0%, #0a1628 40%, #050a16 100%);
	overflow: hidden;
	isolation: isolate;
}

/* === 背景レイヤー === */
.ab-brand__sky {
	position: absolute;
	inset: 0;
	pointer-events: none;
	z-index: 0;
}

/* 星雲（中央上のぼんやり光） */
.ab-brand__nebula {
	position: absolute;
	top: -10%;
	left: 50%;
	transform: translateX(-50%);
	width: 1200px;
	height: 800px;
	background:
		radial-gradient(ellipse at center, rgba(184, 153, 104, 0.15) 0%, transparent 60%);
	filter: blur(80px);
	animation: ab-brand-nebula 12s ease-in-out infinite;
}
@keyframes ab-brand-nebula {
	0%, 100% { opacity: 0.7; transform: translateX(-50%) scale(1); }
	50%      { opacity: 1;   transform: translateX(-50%) scale(1.08); }
}

/* 星粒 */
.ab-brand__stars {
	position: absolute;
	inset: 0;
}
.ab-brand__star {
	position: absolute;
	left: var(--x);
	top: var(--y);
	width: 2px;
	height: 2px;
	background: #d4c4a0;
	border-radius: 50%;
	box-shadow: 0 0 6px rgba(212, 196, 160, 0.8);
	opacity: 0.4;
	transform: scale(var(--s));
	animation: ab-brand-twinkle 4s ease-in-out infinite;
	animation-delay: var(--d);
}
@keyframes ab-brand-twinkle {
	0%, 100% { opacity: 0.2; }
	50%      { opacity: 1; }
}

/* 4 本の光の柱 */
.ab-brand__beams {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	pointer-events: none;
}
.ab-brand__beam {
	position: absolute;
	top: 0;
	left: var(--pos);
	width: 1px;
	height: 50%;
	background: linear-gradient(180deg,
		transparent 0%,
		rgba(184, 153, 104, 0) 8%,
		rgba(184, 153, 104, 0.22) 50%,
		rgba(212, 196, 160, 0.10) 85%,
		transparent 100%);
	animation: ab-brand-beam 6s ease-in-out infinite;
	animation-delay: var(--delay);
	transform-origin: top;
}
.ab-brand__beam::before {
	content: "";
	position: absolute;
	top: 50%;
	left: 50%;
	transform: translate(-50%, -50%);
	width: 4px;
	height: 40%;
	background: linear-gradient(180deg,
		transparent 0%,
		rgba(184, 153, 104, 0.06) 50%,
		transparent 100%);
	filter: blur(6px);
}
@keyframes ab-brand-beam {
	0%, 100% { opacity: 0.25; transform: scaleY(0.85); }
	50%      { opacity: 0.6;  transform: scaleY(1.1); }
}

/* 中央のオーラ（ロゴの背後で光る） */
.ab-brand__aura {
	position: absolute;
	top: 56%;
	left: 50%;
	transform: translate(-50%, -50%);
	width: 800px;
	height: 320px;
	background:
		radial-gradient(ellipse at center, rgba(184, 153, 104, 0.14) 0%, rgba(184, 153, 104, 0.05) 30%, transparent 70%);
	filter: blur(60px);
	animation: ab-brand-aura 8s ease-in-out infinite;
}
@keyframes ab-brand-aura {
	0%, 100% { opacity: 0.55; transform: translate(-50%, -50%) scale(1); }
	50%      { opacity: 0.8;  transform: translate(-50%, -50%) scale(1.05); }
}

/* 水平基盤ライン（10 年の地平線） */
.ab-brand__horizon {
	position: absolute;
	left: 0;
	right: 0;
	top: 60%;
	height: 1px;
	background: linear-gradient(90deg,
		transparent 0%,
		rgba(184, 153, 104, 0.15) 15%,
		rgba(184, 153, 104, 0.55) 50%,
		rgba(184, 153, 104, 0.15) 85%,
		transparent 100%);
}
.ab-brand__horizon::after {
	content: "";
	position: absolute;
	left: 0;
	right: 0;
	top: -1px;
	height: 3px;
	background: linear-gradient(90deg,
		transparent 0%,
		rgba(184, 153, 104, 0.25) 50%,
		transparent 100%);
	filter: blur(3px);
}

/* === コンテンツコンテナ === */
.ab-brand .ab-container {
	position: relative;
	z-index: 2;
}

/* === ヘッダー === */
.ab-brand__head {
	text-align: center;
	margin-bottom: 100px;
}
.ab-brand__eyebrow {
	display: inline-block;
	font-family: 'JetBrains Mono', monospace;
	font-size: 12px;
	color: #d4c4a0;
	letter-spacing: 0.45em;
	font-weight: 500;
	padding: 10px 28px;
	border: 1px solid rgba(184, 153, 104, 0.35);
	border-radius: 2px;
	margin-bottom: 36px;
	text-shadow: 0 0 14px rgba(184, 153, 104, 0.4);
	position: relative;
}
.ab-brand__eyebrow::before,
.ab-brand__eyebrow::after {
	content: "";
	position: absolute;
	top: 50%;
	width: 60px;
	height: 1px;
	background: linear-gradient(90deg, rgba(184, 153, 104, 0.5) 0%, transparent 100%);
}
.ab-brand__eyebrow::before { left: -76px; }
.ab-brand__eyebrow::after  { right: -76px; transform: scaleX(-1); }
@media (max-width: 640px) {
	.ab-brand__eyebrow::before,
	.ab-brand__eyebrow::after { display: none; }
}

.ab-brand__title {
	font-family: 'Shippori Mincho', 'Noto Serif JP', serif;
	font-size: clamp(28px, 4.8vw, 52px);
	color: #ffffff;
	letter-spacing: 0.08em;
	font-weight: 400;
	line-height: 1.55;
	margin: 0 0 28px;
	text-shadow: 0 4px 24px rgba(0, 0, 0, 0.7);
}
.ab-brand__lead {
	font-family: 'Hiragino Mincho ProN', serif;
	font-size: clamp(15px, 1.6vw, 17px);
	color: rgba(255, 255, 255, 0.9);
	letter-spacing: 0.08em;
	line-height: 2;
	margin: 0;
	font-style: italic;
}

/* === 縦組ロゴ（基盤の象徴） === */
.ab-brand__mark {
	position: relative;
	/* v1.9.314: max-width 制約撤廃。子要素 .ab-brand__mark-img のサイズに従って柔軟に伸縮。
	   親コンテナの制約があると、SOA設定で大きく指定しても子画像が拡大できなかった問題を解消。 */
	max-width: none;
	margin: 0 auto 140px;
	padding: 40px 40px;
	text-align: center;
}
.ab-brand__mark-halo {
	/* v1.9.298: しょうさんの要望「白い影は一切いらない」を厳格に遵守 → 完全削除 */
	display: none !important;
}
.ab-brand__mark-img {
	width: 100%;
	/* v1.9.308: しょうさんのご要望「サイズが小さすぎる、バランスよく」に応えてサイズ拡大。
	   ヒーロー的存在感を出すため、デスクトップで580px幅に拡大。
	   原本(v308)は3Dマーク下の cast shadow を持たないクリーンな縦組ロゴ。 */
	max-width: 580px;
	height: auto;
	display: block;
	margin: 0 auto 56px;
	position: relative;
	z-index: 2;
	/* v1.9.305: マスク・filter・あらゆる切り取り処理を完全削除（文字を絶対切らない）。 */
	filter: none !important;
	-webkit-mask-image: none !important;
	mask-image: none !important;
	clip-path: none !important;
	transition: transform 0.8s cubic-bezier(0.22, 1, 0.36, 1);
}
.ab-brand__mark:hover .ab-brand__mark-img {
	filter: none !important;
	transform: translateY(-6px);
}

.ab-brand__mark-caption {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 20px;
	position: relative;
	z-index: 2;
}
.ab-brand__mark-line {
	width: 80px;
	height: 1px;
	background: linear-gradient(90deg, transparent 0%, rgba(184, 153, 104, 0.7) 50%, transparent 100%);
}
.ab-brand__mark-meta {
	font-family: 'JetBrains Mono', monospace;
	font-size: 11px;
	color: #d4c4a0;
	letter-spacing: 0.35em;
	font-weight: 500;
	white-space: nowrap;
}
@media (max-width: 960px) {
	/* v1.9.308: タブレットサイズではロゴをやや控えめに */
	.ab-brand__mark-img { max-width: 480px; margin-bottom: 48px; }
}
@media (max-width: 720px) {
	.ab-brand__mark { padding: 40px 20px; margin-bottom: 100px; }
	.ab-brand__mark-line { width: 30px; }
	.ab-brand__mark-meta { font-size: 9px; letter-spacing: 0.25em; }
	/* v1.9.308: モバイルでも十分な存在感を維持 */
	.ab-brand__mark-img { max-width: 360px; margin-bottom: 40px; }
}
@media (max-width: 480px) {
	.ab-brand__mark-meta { font-size: 8px; letter-spacing: 0.2em; }
	.ab-brand__mark-img { max-width: 280px; margin-bottom: 32px; }
}

/* === 4つの柱：ヘッダー === */
.ab-brand__pillars-head {
	text-align: center;
	margin-bottom: 60px;
}
.ab-brand__pillars-label {
	display: block;
	font-family: 'JetBrains Mono', monospace;
	font-size: 11px;
	color: #d4c4a0;
	letter-spacing: 0.5em;
	font-weight: 500;
	margin-bottom: 18px;
	opacity: 0.85;
}
.ab-brand__pillars-title {
	font-family: 'Shippori Mincho', serif;
	font-size: clamp(22px, 3vw, 32px);
	color: #ffffff;
	letter-spacing: 0.1em;
	font-weight: 400;
	margin: 0;
	text-shadow: 0 2px 14px rgba(0, 0, 0, 0.5);
}

/* === 4つの柱：グリッド === */
.ab-brand__pillars {
	list-style: none;
	padding: 0;
	margin: 0;
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 1px;
	background: rgba(184, 153, 104, 0.18);
	border: 1px solid rgba(184, 153, 104, 0.18);
	position: relative;
}
.ab-brand__pillars::before,
.ab-brand__pillars::after {
	content: "";
	position: absolute;
	left: -1px;
	right: -1px;
	height: 2px;
	background: linear-gradient(90deg,
		transparent 0%,
		rgba(184, 153, 104, 0.8) 25%,
		rgba(212, 196, 160, 1) 50%,
		rgba(184, 153, 104, 0.8) 75%,
		transparent 100%);
	filter: drop-shadow(0 0 6px rgba(184, 153, 104, 0.6));
}
.ab-brand__pillars::before { top: -2px; }
.ab-brand__pillars::after  { bottom: -2px; }

.ab-brand__pillar {
	padding: 48px 32px 56px;
	background:
		linear-gradient(180deg, rgba(8, 18, 35, 0.7) 0%, rgba(5, 11, 22, 0.85) 100%);
	position: relative;
	transition: all 0.6s cubic-bezier(0.22, 1, 0.36, 1);
	display: flex;
	flex-direction: column;
	gap: 18px;
	animation: ab-pillar-rise 1.2s cubic-bezier(0.22, 1, 0.36, 1) backwards;
	animation-delay: var(--delay);
	overflow: hidden;
}
@keyframes ab-pillar-rise {
	from { opacity: 0; transform: translateY(28px); }
	to   { opacity: 1; transform: translateY(0); }
}
.ab-brand__pillar::before {
	content: "";
	position: absolute;
	top: 0;
	left: 50%;
	transform: translateX(-50%);
	width: 1px;
	height: 0;
	background: linear-gradient(180deg, rgba(184, 153, 104, 0.8) 0%, transparent 100%);
	transition: height 0.8s cubic-bezier(0.22, 1, 0.36, 1);
}
.ab-brand__pillar:hover {
	background:
		linear-gradient(180deg, rgba(184, 153, 104, 0.10) 0%, rgba(8, 18, 35, 0.95) 100%);
	transform: translateY(-6px);
}
.ab-brand__pillar:hover::before { height: 100%; }

.ab-brand__pillar-top {
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	gap: 12px;
	margin-bottom: 6px;
}
.ab-brand__pillar-num {
	font-family: 'Shippori Mincho', serif;
	font-size: clamp(36px, 4vw, 48px);
	color: #d4c4a0;
	letter-spacing: 0.04em;
	font-weight: 300;
	line-height: 1;
	text-shadow: 0 4px 20px rgba(184, 153, 104, 0.4);
}
.ab-brand__pillar-label {
	font-family: 'JetBrains Mono', monospace;
	font-size: 10px;
	color: #b89968;
	letter-spacing: 0.35em;
	font-weight: 500;
	opacity: 0.85;
	writing-mode: horizontal-tb;
}

.ab-brand__pillar-divider {
	width: 100%;
	height: 1px;
	background: linear-gradient(90deg,
		rgba(184, 153, 104, 0.6) 0%,
		transparent 100%);
}

.ab-brand__pillar-title {
	font-family: 'Shippori Mincho', serif;
	font-size: clamp(18px, 2.2vw, 24px);
	color: #ffffff;
	letter-spacing: 0.1em;
	font-weight: 500;
	margin: 0;
	line-height: 1.4;
	text-shadow: 0 2px 12px rgba(0, 0, 0, 0.7);
}

.ab-brand__pillar-body {
	font-family: 'Hiragino Mincho ProN', serif;
	font-size: 14px;
	color: rgba(255, 255, 255, 0.88);
	letter-spacing: 0.04em;
	line-height: 2;
	margin: 0;
	flex: 1;
	text-shadow: 0 1px 6px rgba(0, 0, 0, 0.5);
}

/* === レスポンシブ === */
@media (max-width: 980px) {
	.ab-brand__pillars { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 580px) {
	.ab-brand { padding: 160px 0 180px; }
	.ab-brand__head { margin-bottom: 70px; }
	.ab-brand__pillars { grid-template-columns: 1fr; }
	.ab-brand__pillar { padding: 40px 28px 44px; }
	.ab-brand__mark { margin-bottom: 80px; }
}
