/**
 * 採用の混沌と輪時代の人生設計 — saiyou-no-konton.css
 *
 * 設計思想:
 *   - #snk-root 配下のみ完全独立デザイン
 *   - Cocoon / entry-content / article 干渉を完全排除
 *   - CSS カスタムプロパティで全色・全値を管理
 *   - モバイルファースト + clamp() 流体タイポグラフィ
 *   - アニメーションは opacity / transform / filter のみ使用
 *   - デザイン美学: 「夜の羅針盤」— 深い夜の海を黄金の羅針盤が指す
 *   - カラーパレット: 深ネイビー × アンバーゴールド × ティール × ローズ
 *   - フォント: Playfair Display (Display EN) + Noto Serif JP (本文) + Space Mono (ラベル)
 *
 * @package cocoon-child-master
 */


/* ================================================================
   1. COCOON 干渉リセット
   ================================================================ */
.saiyou-no-konton .article,
.saiyou-no-konton .entry-content,
.saiyou-no-konton .main,
.saiyou-no-konton .content,
.saiyou-no-konton .wrap,
.saiyou-no-konton #main,
.saiyou-no-konton #body-in,
.saiyou-no-konton #container,
.saiyou-no-konton #container-in,
.saiyou-no-konton #contents,
.saiyou-no-konton #contents-in {
  display: block !important;
  width: 100% !important;
  max-width: 100% !important;
  padding: 0 !important;
  margin: 0 !important;
  background: transparent !important;
  border: none !important;
  box-shadow: none !important;
  float: none !important;
  position: static !important;
  overflow: visible !important;
  height: auto !important;
  min-height: 0 !important;
  flex: none !important;
}
.saiyou-no-konton #sidebar,
.saiyou-no-konton .sidebar,
.saiyou-no-konton #sidebar-scroll,
.saiyou-no-konton .sidebar-top,
.saiyou-no-konton .sidebar-bottom { display: none !important; }

.saiyou-no-konton #footer:not(.tp-footer),
.saiyou-no-konton .site-footer:not(.tp-footer),
.saiyou-no-konton .footer:not(.tp-footer) { display: none !important; }


/* ================================================================
   2. CSS カスタムプロパティ
   ================================================================ */
#snk-root {
  /* ─ カラーパレット「夜の羅針盤」 ─ */
  --snk-bg:        #06080d;
  --snk-bg-2:      #0b1221;
  --snk-bg-3:      #111c2e;
  --snk-bg-4:      #17253c;
  --snk-bg-5:      #1d2f4a;
  --snk-bg-card:   #0e1828;

  --snk-gold:      #c8924a;
  --snk-gold-l:    #e8b870;
  --snk-gold-pale: rgba(200, 146, 74, 0.14);
  --snk-gold-ghost:rgba(200, 146, 74, 0.06);
  --snk-gold-bdr:  rgba(200, 146, 74, 0.28);

  --snk-teal:      #3a9a9a;
  --snk-teal-pale: rgba(58, 154, 154, 0.12);
  --snk-rose:      #b04462;
  --snk-rose-pale: rgba(176, 68, 98, 0.12);
  --snk-indigo:    #5a72c0;
  --snk-sage:      #4a9a6a;
  --snk-amber:     #c87030;

  --snk-text:   #ede4d4;
  --snk-text-2: #9e8e78;
  --snk-text-3: #5a6070;
  --snk-bdr:    rgba(255,255,255,0.07);
  --snk-bdr-2:  rgba(255,255,255,0.12);

  /* ─ タイポグラフィ ─ */
  --snk-font-display: 'Playfair Display', Georgia, serif;
  --snk-font-body:    'Noto Serif JP', 'Hiragino Mincho ProN', serif;
  --snk-font-mono:    'Space Mono', 'Courier New', monospace;

  /* ─ スペーシング ─ */
  --snk-section-py:     clamp(3.5rem, 7vw, 7rem);
  --snk-container-max:  840px;
  --snk-container-wide: 1080px;
  --snk-radius:         10px;
  --snk-radius-sm:      6px;
  --snk-radius-lg:      18px;

  /* ─ トランジション ─ */
  --snk-ease:            cubic-bezier(0.25, 0.46, 0.45, 0.94);
  --snk-ease-out:        cubic-bezier(0.16, 1, 0.3, 1);
  --snk-transition:      0.4s cubic-bezier(0.25, 0.46, 0.45, 0.94);
  --snk-transition-slow: 0.7s cubic-bezier(0.16, 1, 0.3, 1);
}


/* ================================================================
   3. GLOBAL RESET — #snk-root スコープ
   ================================================================ */
#snk-root,
#snk-root *,
#snk-root *::before,
#snk-root *::after { box-sizing: border-box; }

#snk-root h1, #snk-root h2, #snk-root h3,
#snk-root h4, #snk-root h5, #snk-root h6,
#snk-root p, #snk-root ul, #snk-root ol,
#snk-root li, #snk-root figure, #snk-root blockquote,
#snk-root dl, #snk-root dd { margin: 0; padding: 0; }

#snk-root ul, #snk-root ol { list-style: none; }

#snk-root {
  background-color: var(--snk-bg);
  color: var(--snk-text);
  font-family: var(--snk-font-body);
  font-weight: 400;
  line-height: 1.85;
  overflow-x: clip;
  overflow-y: visible;
  position: relative;
  width: 100%;
  max-width: 100%;
  padding: 0;
  margin: 0;
  overflow-wrap: break-word;
  word-break: normal;
  -webkit-font-smoothing: antialiased;
}

/* Cocoonデフォルト blockquote 白抜き完全解消 */
#snk-root blockquote {
  background: var(--snk-bg-card) !important;
  border-left: 3px solid var(--snk-gold) !important;
  border-right: none !important;
  color: var(--snk-text) !important;
  padding: 1.5rem 1.75rem !important;
  margin: 0 !important;
  box-shadow: none !important;
  border-radius: 0 var(--snk-radius-sm) var(--snk-radius-sm) 0 !important;
}
#snk-root blockquote::before,
#snk-root blockquote::after { display: none !important; }

/* Cocoon table 白抜き完全解消 */
#snk-root table {
  background: transparent !important;
  border-collapse: collapse !important;
  color: var(--snk-text-2) !important;
}
#snk-root table th,
#snk-root table td {
  background: transparent !important;
  border-color: var(--snk-bdr) !important;
  color: var(--snk-text-2) !important;
}
#snk-root hr {
  border-color: var(--snk-bdr) !important;
  border-top: 1px solid var(--snk-bdr) !important;
}
#snk-root code,
#snk-root pre {
  background: rgba(200,146,74,0.08) !important;
  color: var(--snk-gold-l) !important;
  border: 1px solid var(--snk-gold-bdr) !important;
}


/* ================================================================
   4. テキスト選択・スクロールバー
   ================================================================ */
#snk-root ::selection {
  background: var(--snk-gold);
  color: var(--snk-bg);
}


/* ================================================================
   5. ベースコンポーネント
   ================================================================ */

/* コンテナ */
.snk-container {
  max-width: var(--snk-container-max);
  margin-inline: auto;
  padding-inline: clamp(1.25rem, 4vw, 2.5rem);
}
.snk-container--wide {
  max-width: var(--snk-container-wide);
  margin-inline: auto;
  padding-inline: clamp(1.25rem, 4vw, 2.5rem);
}

/* セクション共通 */
.snk-section {
  padding-block: var(--snk-section-py);
  position: relative;
}
.snk-section--alt {
  background-color: var(--snk-bg-2);
}

/* セクションヘッダー */
.snk-section-header {
  margin-bottom: clamp(2rem, 5vw, 4rem);
}

/* アイブロウ（上部ラベル） */
.snk-eyebrow {
  display: flex;
  align-items: center;
  gap: 1rem;
  font-family: var(--snk-font-mono);
  font-size: clamp(0.6rem, 1.2vw, 0.68rem);
  letter-spacing: 0.32em;
  color: var(--snk-gold);
  text-transform: uppercase;
  margin-bottom: 1.25rem;
}
.snk-eyebrow::after {
  content: '';
  flex: 1;
  height: 1px;
  background: var(--snk-gold-bdr);
}

/* セクションタイトル */
.snk-section-title {
  font-family: var(--snk-font-body);
  font-size: clamp(1.5rem, 3.5vw, 2.2rem);
  font-weight: 700;
  line-height: 1.4;
  color: var(--snk-text);
  margin-bottom: 0.75rem;
}
.snk-section-title__sub {
  font-size: 0.65em;
  font-weight: 400;
  color: var(--snk-text-2);
}
.snk-section-desc {
  font-size: clamp(0.88rem, 1.8vw, 0.95rem);
  color: var(--snk-text-2);
  line-height: 2;
  max-width: 640px;
}

/* スクロールリビール */
.snk-reveal {
  opacity: 0;
  transform: translateY(28px);
  transition:
    opacity  0.75s cubic-bezier(0.16, 1, 0.3, 1),
    transform 0.75s cubic-bezier(0.16, 1, 0.3, 1);
}
.snk-reveal.is-visible {
  opacity: 1;
  transform: translateY(0);
}
.snk-reveal--d1 { transition-delay: 0.1s; }
.snk-reveal--d2 { transition-delay: 0.2s; }
.snk-reveal--d3 { transition-delay: 0.3s; }
.snk-reveal--d4 { transition-delay: 0.4s; }

/* ================================================================
   6. COVER / HERO — ファーストビュー
   ================================================================ */
.snk-cover {
  position: relative;
  min-height: 100vh;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  text-align: center;
  padding: clamp(5rem, 10vw, 8rem) clamp(1.25rem, 4vw, 2.5rem) 5rem;
  overflow: hidden;
  background:
    radial-gradient(ellipse 80% 60% at 25% 15%, rgba(200,146,74,0.07) 0%, transparent 55%),
    radial-gradient(ellipse 60% 50% at 75% 80%, rgba(58,154,154,0.05) 0%, transparent 55%),
    radial-gradient(ellipse 40% 40% at 50% 50%, rgba(90,114,192,0.04) 0%, transparent 60%),
    var(--snk-bg);
}

/* グレイングレイン */
.snk-cover__grain {
  position: absolute;
  inset: 0;
  pointer-events: none;
  z-index: 1;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='300' height='300'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='300' height='300' filter='url(%23n)' opacity='0.04'/%3E%3C/svg%3E");
  opacity: 0.5;
}

/* 装飾リング */
.snk-cover__rings {
  position: absolute;
  inset: 0;
  pointer-events: none;
  z-index: 0;
}
.snk-cover__ring {
  position: absolute;
  border-radius: 50%;
  border: 1px solid rgba(200,146,74,0.07);
  top: 50%; left: 50%;
  animation: snkRingPulse 8s ease-in-out infinite;
}
.snk-cover__ring--1 { width: clamp(300px,60vw,600px); height: clamp(300px,60vw,600px); margin: calc(clamp(300px,60vw,600px)/-2) 0 0 calc(clamp(300px,60vw,600px)/-2); animation-delay: 0s; }
.snk-cover__ring--2 { width: clamp(500px,90vw,900px); height: clamp(500px,90vw,900px); margin: calc(clamp(500px,90vw,900px)/-2) 0 0 calc(clamp(500px,90vw,900px)/-2); animation-delay: -3s; }
.snk-cover__ring--3 { width: clamp(700px,120vw,1200px); height: clamp(700px,120vw,1200px); margin: calc(clamp(700px,120vw,1200px)/-2) 0 0 calc(clamp(700px,120vw,1200px)/-2); animation-delay: -6s; }

@keyframes snkRingPulse {
  0%,100% { opacity: 0.5; transform: scale(1); }
  50%      { opacity: 1;   transform: scale(1.02); }
}

.snk-cover__inner {
  position: relative;
  z-index: 2;
  max-width: 800px;
  margin-inline: auto;
}

/* アイブロウ (モノ) */
.snk-cover__eyebrow {
  margin-bottom: 2.5rem;
}
.snk-cover__eyebrow-mono {
  font-family: var(--snk-font-mono);
  font-size: clamp(0.58rem, 1.2vw, 0.68rem);
  letter-spacing: 0.3em;
  color: var(--snk-gold);
  text-transform: uppercase;
  display: block;
  opacity: 0;
  animation: snkFadeUp 0.9s 0.3s var(--snk-ease) forwards;
}

/* タイトル */
.snk-cover__title {
  margin-bottom: 1rem;
  opacity: 0;
  animation: snkFadeUp 0.9s 0.55s var(--snk-ease) forwards;
}
.snk-cover__title-en {
  display: block;
  font-family: var(--snk-font-display);
  font-size: clamp(2rem, 5.5vw, 5rem);
  font-weight: 900;
  line-height: 1.1;
  letter-spacing: -0.01em;
  background: linear-gradient(135deg, #d4b070 0%, var(--snk-text) 60%);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
}
.snk-cover__title-ja {
  display: block;
  font-family: var(--snk-font-body);
  font-size: clamp(1.3rem, 3.2vw, 2.6rem);
  font-weight: 700;
  background: linear-gradient(135deg, var(--snk-gold), var(--snk-text) 70%);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
  margin-top: 0.5rem;
}
.snk-br-sp { display: none; }

/* ルール */
.snk-cover__rule {
  width: 90px;
  height: 1px;
  margin: 2rem auto;
  background: linear-gradient(to right, transparent, var(--snk-gold), transparent);
  opacity: 0;
  animation: snkFadeUp 0.9s 0.75s var(--snk-ease) forwards;
}

/* リード */
.snk-cover__lead {
  font-size: clamp(0.9rem, 1.8vw, 1rem);
  color: var(--snk-text-2);
  line-height: 2.1;
  max-width: 520px;
  margin: 0 auto 2.5rem;
  opacity: 0;
  animation: snkFadeUp 0.9s 0.95s var(--snk-ease) forwards;
}

/* 統計バッジ */
.snk-cover__stats {
  display: flex;
  align-items: center;
  justify-content: center;
  flex-wrap: wrap;
  gap: 1.5rem;
  margin-bottom: 2.5rem;
  opacity: 0;
  animation: snkFadeUp 0.9s 1.15s var(--snk-ease) forwards;
}
.snk-cover__stat {
  display: flex;
  flex-direction: column;
  align-items: center;
}
.snk-cover__stat-num {
  font-family: var(--snk-font-display);
  font-size: clamp(1.8rem, 4vw, 2.4rem);
  font-style: italic;
  color: var(--snk-gold-l);
  font-weight: 400;
  line-height: 1;
}
.snk-cover__stat-num sup {
  font-size: 0.55em;
  vertical-align: super;
}
.snk-cover__stat-label {
  font-family: var(--snk-font-mono);
  font-size: 0.6rem;
  letter-spacing: 0.18em;
  color: var(--snk-text-3);
  margin-top: 0.3rem;
}
.snk-cover__stat-divider {
  width: 1px;
  height: 2rem;
  background: var(--snk-bdr-2);
  flex-shrink: 0;
}

/* スクロールキュー */
.snk-cover__scroll-cue {
  position: absolute;
  bottom: 2.5rem;
  left: 50%;
  transform: translateX(-50%);
  z-index: 2;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.5rem;
  font-family: var(--snk-font-mono);
  font-size: 0.6rem;
  color: var(--snk-text-3);
  letter-spacing: 0.25em;
  opacity: 0;
  animation: snkFadeUp 1s 1.7s forwards;
}
.snk-cover__scroll-line {
  width: 1px;
  height: 48px;
  background: linear-gradient(to bottom, var(--snk-gold), transparent);
  animation: snkScrollDrop 2.2s 2.2s ease-in-out infinite;
}
.snk-cover__scroll-label { order: 2; }

@keyframes snkScrollDrop {
  0%,100% { opacity: 1; transform: scaleY(1); transform-origin: top; }
  50%      { opacity: 0.3; transform: scaleY(0.4); transform-origin: top; }
}
@keyframes snkFadeUp {
  from { opacity: 0; transform: translateY(22px); }
  to   { opacity: 1; transform: translateY(0); }
}


/* ================================================================
   7. CTA ボタン共通
   ================================================================ */
.snk-cta-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: clamp(0.9rem, 2vw, 1.1rem) clamp(2rem, 5vw, 3.5rem);
  border-radius: 60px;
  font-family: var(--snk-font-body);
  font-size: clamp(0.95rem, 2vw, 1.05rem);
  font-weight: 700;
  color: #fff;
  text-decoration: none;
  letter-spacing: 0.08em;
  box-shadow:
    0 0 0 1px rgba(255,255,255,0.15),
    0 8px 32px rgba(0,0,0,0.5),
    0 0 30px rgba(200,146,74,0.25);
  transition:
    transform var(--snk-transition),
    box-shadow var(--snk-transition);
  position: relative;
  overflow: hidden;
}
.snk-cta-btn::before {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(135deg, rgba(255,255,255,0.12) 0%, transparent 60%);
  pointer-events: none;
}
.snk-cta-btn:hover {
  transform: translateY(-3px) scale(1.02);
  box-shadow:
    0 0 0 1px rgba(255,255,255,0.2),
    0 12px 40px rgba(0,0,0,0.6),
    0 0 50px rgba(200,146,74,0.4);
}
.snk-cta-btn--lg {
  padding: clamp(1rem, 2.5vw, 1.3rem) clamp(2.5rem, 6vw, 4.5rem);
  font-size: clamp(1rem, 2.2vw, 1.15rem);
}
.snk-cta-btn-wrap {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.75rem;
}
.snk-cta-btn__sub {
  font-family: var(--snk-font-mono);
  font-size: 0.65rem;
  color: var(--snk-text-3);
  letter-spacing: 0.15em;
}

/* カバーCTA */
.snk-cover__cta {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.75rem;
}


/* ================================================================
   8. KEY STATS
   ================================================================ */
.snk-keystats {
  background: linear-gradient(180deg, var(--snk-bg) 0%, var(--snk-bg-2) 100%);
  border-bottom: 1px solid var(--snk-bdr);
}
.snk-keystats__bg-word {
  position: absolute;
  right: -1rem;
  top: 50%;
  transform: translateY(-50%);
  font-family: var(--snk-font-display);
  font-size: clamp(6rem, 18vw, 18rem);
  font-weight: 900;
  color: rgba(200,146,74,0.025);
  pointer-events: none;
  line-height: 1;
  user-select: none;
}

.snk-ks-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1px;
  background: var(--snk-bdr);
  border: 1px solid var(--snk-bdr);
}
.snk-ks-item {
  padding: clamp(1.8rem, 3vw, 2.8rem) clamp(1.2rem, 2vw, 2rem);
  background: var(--snk-bg-2);
  text-align: center;
  position: relative;
  overflow: hidden;
  transition: background var(--snk-transition);
}
.snk-ks-item:hover { background: var(--snk-bg-3); }
.snk-ks-item::before {
  content: '';
  position: absolute;
  top: 0; left: 0; right: 0;
  height: 2px;
}
.snk-ks-item--1::before { background: linear-gradient(90deg, var(--snk-gold), var(--snk-gold-l)); }
.snk-ks-item--2::before { background: linear-gradient(90deg, var(--snk-teal), #6bcecf); }
.snk-ks-item--3::before { background: linear-gradient(90deg, var(--snk-rose), #d06080); }
.snk-ks-item--4::before { background: linear-gradient(90deg, var(--snk-indigo), #8ba0e0); }
.snk-ks-item--5::before { background: linear-gradient(90deg, var(--snk-sage), #6abf88); }
.snk-ks-item--6::before { background: linear-gradient(90deg, var(--snk-amber), #e09050); }

.snk-ks-num-wrap {
  display: flex;
  align-items: baseline;
  justify-content: center;
  gap: 0.2rem;
  margin-bottom: 0.5rem;
}
.snk-ks-num {
  font-family: var(--snk-font-display);
  font-size: clamp(2.4rem, 5vw, 4rem);
  font-weight: 900;
  line-height: 1;
}
.snk-ks-item--1 .snk-ks-num { color: var(--snk-gold-l); }
.snk-ks-item--2 .snk-ks-num { color: var(--snk-teal); }
.snk-ks-item--3 .snk-ks-num { color: var(--snk-rose); }
.snk-ks-item--4 .snk-ks-num { color: var(--snk-indigo); }
.snk-ks-item--5 .snk-ks-num { color: var(--snk-sage); }
.snk-ks-item--6 .snk-ks-num { color: var(--snk-amber); }

.snk-ks-prefix {
  font-family: var(--snk-font-mono);
  font-size: 0.8rem;
  color: var(--snk-text-3);
  align-self: flex-end;
  padding-bottom: 0.4em;
}
.snk-ks-label {
  font-size: 0.82rem;
  color: var(--snk-text);
  font-weight: 700;
  margin-bottom: 0.5rem;
  line-height: 1.4;
}
.snk-ks-body {
  font-size: 0.78rem;
  color: var(--snk-text-2);
  line-height: 1.75;
}
.snk-ks-src {
  font-family: var(--snk-font-mono);
  font-size: 0.58rem;
  color: var(--snk-text-3);
  margin-top: 0.75rem;
  padding-top: 0.75rem;
  border-top: 1px solid var(--snk-bdr);
  letter-spacing: 0.04em;
}


/* ================================================================
   9. ESSAYS
   ================================================================ */
.snk-essays-wrap {
  background: var(--snk-bg);
}
.snk-essay {
  border-bottom: 1px solid var(--snk-bdr);
  padding-block: clamp(4rem, 7vw, 6rem);
}
.snk-essay:last-of-type { border-bottom: none; }

/* チャプター番号（背景装飾） */
.snk-ch-num {
  font-family: var(--snk-font-display);
  font-size: clamp(5rem, 12vw, 10rem);
  font-weight: 900;
  color: rgba(200,146,74,0.06);
  line-height: 1;
  margin-bottom: -0.3em;
  pointer-events: none;
  user-select: none;
}

/* チャプタータイトル */
.snk-ch-title {
  font-family: var(--snk-font-body);
  font-size: clamp(1.5rem, 3.2vw, 2.1rem);
  font-weight: 700;
  line-height: 1.45;
  margin-bottom: 2.5rem;
  color: var(--snk-text);
  padding-left: 1.5rem;
  position: relative;
}
.snk-ch-title::before {
  content: '';
  position: absolute;
  left: 0; top: 0.2em; bottom: 0.2em;
  width: 3px;
  background: linear-gradient(to bottom, var(--snk-gold), var(--snk-gold-pale));
  border-radius: 2px;
}

/* エッセイ本文 */
.snk-essay-body {
  font-size: clamp(0.92rem, 1.8vw, 1.02rem);
  line-height: 2.15;
  color: var(--snk-text);
}
.snk-essay-body p {
  margin-bottom: 1.85em;
}
.snk-essay-body strong { color: var(--snk-gold-l); font-weight: 600; }

.snk-essay-body__first {
  font-size: clamp(0.96rem, 1.9vw, 1.08rem);
  line-height: 2.1;
  font-weight: 400;
  margin-bottom: 2em;
}

/* プルクォート */
.snk-pullquote {
  margin-block: 3rem !important;
  padding: 2rem 2.5rem 2rem 3rem !important;
  border-left: 3px solid var(--snk-gold) !important;
  background: var(--snk-gold-ghost) !important;
  position: relative;
}
.snk-pullquote::before {
  content: '\201C';
  position: absolute;
  top: -0.5rem;
  left: 1.5rem;
  font-family: var(--snk-font-display);
  font-size: 5rem;
  color: var(--snk-gold);
  opacity: 0.35;
  line-height: 1;
  pointer-events: none;
}
.snk-pullquote p {
  font-family: var(--snk-font-display) !important;
  font-size: clamp(1rem, 2.2vw, 1.2rem) !important;
  font-style: italic;
  color: var(--snk-text) !important;
  line-height: 1.75 !important;
  margin: 0 !important;
}

/* アサイド（ユーモラスな余談） */
.snk-aside {
  margin-block: 2.5rem;
  padding: 1.75rem 2rem;
  background: var(--snk-gold-pale);
  border: 1px solid var(--snk-gold-bdr);
  font-style: italic;
  font-size: 0.95rem;
  line-height: 2;
  color: var(--snk-text-2);
  border-radius: var(--snk-radius-sm);
}

/* ライティングノート */
.snk-writing-note {
  margin-top: 2.5rem;
  padding: 1.5rem 2rem;
  background: var(--snk-teal-pale);
  border-left: 3px solid var(--snk-teal);
  border-radius: 0 var(--snk-radius-sm) var(--snk-radius-sm) 0;
}
.snk-writing-note__label {
  font-family: var(--snk-font-mono);
  font-size: 0.63rem;
  color: var(--snk-teal);
  letter-spacing: 0.22em;
  margin-bottom: 0.7rem;
}
.snk-writing-note p {
  font-size: 0.88rem;
  color: var(--snk-text-2);
  line-height: 1.95;
  margin: 0;
}

/* アプローチカード */
.snk-approach-row {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
  gap: 1.25rem;
  margin-block: 2.5rem;
}
.snk-approach-card {
  padding: 2rem 1.75rem;
  background: var(--snk-bg-3);
  border: 1px solid var(--snk-bdr);
  border-top: 2px solid var(--snk-gold);
  transition: transform var(--snk-transition), background var(--snk-transition), box-shadow var(--snk-transition);
  position: relative;
  overflow: hidden;
}
.snk-approach-card::after {
  content: '';
  position: absolute;
  inset: 0;
  pointer-events: none;
  background: linear-gradient(135deg, var(--snk-gold-ghost), transparent);
  opacity: 0;
  transition: opacity var(--snk-transition);
}
.snk-approach-card:hover {
  transform: translateY(-6px);
  background: var(--snk-bg-4);
  box-shadow: 0 16px 48px rgba(0,0,0,0.5);
}
.snk-approach-card:hover::after { opacity: 1; }
.snk-approach-card__num {
  font-family: var(--snk-font-mono);
  font-size: 0.62rem;
  color: var(--snk-gold);
  letter-spacing: 0.25em;
  margin-bottom: 0.75rem;
}
.snk-approach-card__title {
  font-size: 1.1rem;
  font-weight: 700;
  color: var(--snk-text);
  margin-bottom: 0.9rem;
}
.snk-approach-card__body {
  font-size: 0.88rem;
  color: var(--snk-text-2);
  line-height: 1.85;
  margin: 0;
}

/* セクションディバイダー */
.snk-s-divider {
  display: flex;
  align-items: center;
  gap: 1.8rem;
  padding: 0 clamp(1.25rem, 4vw, 2.5rem);
  max-width: var(--snk-container-max);
  margin: 0 auto;
}
.snk-s-divider__line {
  flex: 1;
  height: 1px;
  background: linear-gradient(to right, transparent, var(--snk-bdr-2), transparent);
}
.snk-s-divider__ornament {
  font-family: var(--snk-font-display);
  color: var(--snk-gold);
  opacity: 0.5;
  font-size: 1.1rem;
  letter-spacing: 0.6em;
}


/* ================================================================
   10. MID CTA
   ================================================================ */
.snk-cta-mid {
  background: linear-gradient(135deg, var(--snk-bg-2) 0%, var(--snk-bg-3) 100%);
  border-top: 1px solid var(--snk-bdr);
  border-bottom: 1px solid var(--snk-bdr);
}
.snk-cta-mid__title {
  font-family: var(--snk-font-body);
  font-size: clamp(1.4rem, 3vw, 2rem);
  font-weight: 700;
  color: var(--snk-text);
  line-height: 1.4;
  margin-bottom: 0.75rem;
}
.snk-cta-mid__desc {
  font-size: 0.95rem;
  color: var(--snk-text-2);
  line-height: 1.9;
  max-width: 520px;
  margin: 0 auto 2.5rem;
}


/* ================================================================
   11. TIMELINE
   ================================================================ */
.snk-timeline-section { background: var(--snk-bg); border-top: 1px solid var(--snk-bdr); }

.snk-tl-track {
  position: relative;
  margin-top: 3rem;
}
.snk-tl-spine {
  position: absolute;
  left: 5.8rem;
  top: 1.5rem;
  bottom: 1.5rem;
  width: 1px;
  background: linear-gradient(to bottom, transparent, var(--snk-gold-bdr) 8%, var(--snk-gold-bdr) 92%, transparent);
}
.snk-tl-item {
  display: flex;
  gap: 0;
  padding: 1.6rem 0;
  position: relative;
  align-items: flex-start;
}
.snk-tl-yr {
  min-width: 5.8rem;
  text-align: right;
  padding-right: 1.4rem;
  padding-top: 0.2em;
  flex-shrink: 0;
}
.snk-tl-year {
  font-family: var(--snk-font-display);
  font-size: 0.95rem;
  font-style: italic;
  color: var(--snk-gold);
  font-weight: 700;
  line-height: 1;
}
.snk-tl-dot-col {
  width: 1.4rem;
  flex-shrink: 0;
  display: flex;
  justify-content: center;
  padding-top: 0.3em;
}
.snk-tl-dot {
  width: 9px;
  height: 9px;
  border-radius: 50%;
  background: var(--snk-bg-3);
  border: 1.5px solid var(--snk-gold-bdr);
  transition: all var(--snk-transition);
  flex-shrink: 0;
}
.snk-tl-item:hover .snk-tl-dot {
  background: var(--snk-gold);
  border-color: var(--snk-gold);
  box-shadow: 0 0 14px rgba(200,146,74,0.5);
  transform: scale(1.4);
}
.snk-tl-item--major .snk-tl-dot {
  background: var(--snk-gold);
  border-color: var(--snk-gold-l);
  width: 13px;
  height: 13px;
  box-shadow: 0 0 20px rgba(200,146,74,0.45);
  margin-top: -2px;
}
.snk-tl-content {
  flex: 1;
  padding-left: 1.4rem;
}
.snk-tl-event {
  font-weight: 700;
  font-size: 0.95rem;
  color: var(--snk-text);
  line-height: 1.4;
  margin-bottom: 0.35rem;
}
.snk-tl-desc {
  font-size: 0.84rem;
  color: var(--snk-text-2);
  line-height: 1.85;
  margin: 0;
}

/* タグ */
.snk-tag {
  display: inline-flex;
  align-items: center;
  font-family: var(--snk-font-mono);
  font-size: 0.56rem;
  letter-spacing: 0.1em;
  padding: 0.15em 0.65em;
  margin-left: 0.5rem;
  vertical-align: middle;
  border-radius: 2px;
}
.snk-tag--ai     { background: rgba(90,114,192,0.18); color: var(--snk-indigo); border: 1px solid rgba(90,114,192,0.3); }
.snk-tag--labor  { background: var(--snk-gold-pale); color: var(--snk-gold); border: 1px solid var(--snk-gold-bdr); }
.snk-tag--global { background: var(--snk-teal-pale); color: var(--snk-teal); border: 1px solid rgba(58,154,154,0.3); }
.snk-tag--future { background: var(--snk-rose-pale); color: var(--snk-rose); border: 1px solid rgba(176,68,98,0.3); }


/* ================================================================
   12. VIEWPOINTS / ACCORDION
   ================================================================ */
.snk-viewpoints { background: var(--snk-bg-2); border-top: 1px solid var(--snk-bdr); }

.snk-accordion-wrap {
  display: flex;
  flex-direction: column;
  gap: 0.6rem;
}
.snk-accordion {
  border: 1px solid var(--snk-bdr);
  transition: border-color var(--snk-transition);
}
.snk-accordion--open { border-color: var(--snk-gold-bdr); }

.snk-accordion__hd {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 1.15rem 1.6rem;
  cursor: pointer;
  background: var(--snk-bg-3);
  transition: background var(--snk-transition);
  border: none;
  width: 100%;
  text-align: left;
  user-select: none;
  color: inherit;
  font-family: inherit;
}
.snk-accordion__hd:hover { background: var(--snk-bg-4); }
.snk-accordion--open .snk-accordion__hd {
  background: var(--snk-bg-4);
  border-bottom: 1px solid var(--snk-bdr);
}
.snk-accordion__left {
  display: flex;
  align-items: center;
  gap: 1.25rem;
}
.snk-accordion__cat-n {
  font-family: var(--snk-font-mono);
  font-size: 0.63rem;
  color: var(--snk-gold);
  letter-spacing: 0.2em;
  min-width: 36px;
}
.snk-accordion__cat-title {
  font-weight: 600;
  font-size: 0.92rem;
  color: var(--snk-text);
}
.snk-accordion__right {
  display: flex;
  align-items: center;
  gap: 1.5rem;
  flex-shrink: 0;
}
.snk-accordion__count {
  font-family: var(--snk-font-mono);
  font-size: 0.62rem;
  color: var(--snk-text-3);
  letter-spacing: 0.1em;
}
.snk-accordion__arrow {
  width: 16px;
  height: 16px;
  fill: none;
  stroke: var(--snk-gold);
  stroke-width: 2;
  transition: transform var(--snk-transition);
  flex-shrink: 0;
}
.snk-accordion--open .snk-accordion__arrow { transform: rotate(180deg); }

.snk-accordion__bd {
  display: none;
  padding: 1.25rem 1.6rem 1.5rem;
  background: var(--snk-bg-2);
}
.snk-accordion--open .snk-accordion__bd { display: block; }

.snk-vp-list { list-style: none; }
.snk-vp-item {
  display: flex;
  gap: 1rem;
  padding: 0.7rem 0;
  border-bottom: 1px solid var(--snk-bdr);
  font-size: 0.9rem;
  line-height: 1.75;
  color: var(--snk-text-2);
}
.snk-vp-item:last-child { border-bottom: none; }
.snk-vp-n {
  font-family: var(--snk-font-mono);
  font-size: 0.62rem;
  color: var(--snk-gold);
  min-width: 24px;
  padding-top: 0.2em;
  letter-spacing: 0.1em;
  flex-shrink: 0;
}


/* ================================================================
   13. EMOTIONAL THEMES
   ================================================================ */
.snk-emotions { background: var(--snk-bg-2); }

.snk-emo-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
  gap: 0.9rem;
  margin-top: 2.5rem;
}
.snk-emo-card {
  padding: 1.2rem 1.4rem;
  background: var(--snk-bg-3);
  border: 1px solid var(--snk-bdr);
  border-left: 3px solid transparent;
  transition: transform var(--snk-transition), background var(--snk-transition);
}
.snk-emo-card:hover { transform: translateY(-4px); background: var(--snk-bg-4); }
.snk-emo-card:nth-child(5n+1) { border-left-color: var(--snk-gold); }
.snk-emo-card:nth-child(5n+2) { border-left-color: var(--snk-teal); }
.snk-emo-card:nth-child(5n+3) { border-left-color: var(--snk-rose); }
.snk-emo-card:nth-child(5n+4) { border-left-color: var(--snk-indigo); }
.snk-emo-card:nth-child(5n+5) { border-left-color: var(--snk-sage); }
.snk-emo-n {
  font-family: var(--snk-font-mono);
  font-size: 0.6rem;
  color: var(--snk-text-3);
  letter-spacing: 0.12em;
  margin-bottom: 0.35rem;
}
.snk-emo-title {
  font-weight: 600;
  font-size: 0.9rem;
  color: var(--snk-text);
  margin-bottom: 0.3rem;
}
.snk-emo-desc {
  font-size: 0.8rem;
  color: var(--snk-text-2);
  line-height: 1.75;
  margin: 0;
}


/* ================================================================
   14. SDGs
   ================================================================ */
.snk-sdgs { background: var(--snk-bg); border-top: 1px solid var(--snk-bdr); }

.snk-sdg-text {
  font-size: 0.97rem;
  color: var(--snk-text-2);
  line-height: 2;
  margin-bottom: 1.5rem;
}
.snk-infobox {
  margin-block: 2rem;
  padding: 1.6rem 2rem;
  background: var(--snk-bg-3);
  border: 1px solid var(--snk-bdr);
}
.snk-infobox--teal { border-left: 3px solid var(--snk-teal); }
.snk-infobox p {
  font-size: 0.95rem;
  line-height: 2;
  color: var(--snk-text-2);
  margin: 0 0 0.6rem;
}
.snk-infobox p:last-child { margin: 0; }
.snk-infobox strong { color: var(--snk-teal); font-weight: 600; }

.snk-year-tag {
  display: inline-block;
  font-family: var(--snk-font-mono);
  font-size: 0.68rem;
  color: var(--snk-gold);
  background: var(--snk-gold-ghost);
  border: 1px solid var(--snk-gold-bdr);
  padding: 0.15em 0.6em;
  letter-spacing: 0.08em;
  margin-right: 0.4rem;
}

.snk-five-p {
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  gap: 0.9rem;
  margin-block: 2.5rem;
}
.snk-p-card {
  padding: 1.8rem 1rem 1.5rem;
  background: var(--snk-bg-3);
  border: 1px solid var(--snk-bdr);
  text-align: center;
  position: relative;
  overflow: hidden;
  transition: transform var(--snk-transition), box-shadow var(--snk-transition);
}
.snk-p-card:hover { transform: translateY(-6px); box-shadow: 0 16px 48px rgba(0,0,0,0.5); }
.snk-p-card::before {
  content: '';
  position: absolute;
  top: 0; left: 0; right: 0;
  height: 2px;
  background: var(--snk-p-color, var(--snk-gold));
}
.snk-p-bg-letter {
  font-family: var(--snk-font-display);
  font-size: 5.5rem;
  font-weight: 900;
  opacity: 0.07;
  line-height: 1;
  margin-bottom: -1.5rem;
  display: block;
  color: var(--snk-p-color, var(--snk-gold));
  pointer-events: none;
  user-select: none;
}
.snk-p-ja { font-size: 1.2rem; font-weight: 700; color: var(--snk-text); margin-bottom: 0.2rem; position: relative; }
.snk-p-en { font-family: var(--snk-font-display); font-style: italic; font-size: 0.8rem; color: var(--snk-text-3); margin-bottom: 0.7rem; }
.snk-p-desc { font-size: 0.76rem; color: var(--snk-text-2); line-height: 1.65; margin: 0; }


/* ================================================================
   15. EVIDENCE
   ================================================================ */
.snk-evidence { background: var(--snk-bg-2); }

.snk-ev-category { margin-bottom: 3.5rem; }
.snk-ev-cat-title {
  font-family: var(--snk-font-mono);
  font-size: 0.7rem;
  letter-spacing: 0.28em;
  color: var(--snk-gold);
  text-transform: uppercase;
  padding-bottom: 0.75rem;
  border-bottom: 1px solid var(--snk-gold-bdr);
  margin-bottom: 1.5rem;
}
.snk-ev-item {
  display: flex;
  gap: 1.5rem;
  padding: 1.2rem 0;
  border-bottom: 1px solid var(--snk-bdr);
  align-items: flex-start;
}
.snk-ev-item:last-child { border-bottom: none; }
.snk-ev-org {
  font-family: var(--snk-font-mono);
  font-size: 0.65rem;
  color: var(--snk-gold);
  letter-spacing: 0.04em;
  min-width: 120px;
  padding-top: 0.3em;
  line-height: 1.6;
  flex-shrink: 0;
}
.snk-ev-body { flex: 1; }
.snk-ev-finding {
  font-size: 0.92rem;
  color: var(--snk-text);
  line-height: 1.85;
  margin: 0 0 0.35rem;
}
.snk-ev-source {
  font-family: var(--snk-font-mono);
  font-size: 0.63rem;
  color: var(--snk-text-3);
  letter-spacing: 0.04em;
}


/* ================================================================
   16. SYNTHESIS
   ================================================================ */
.snk-synthesis {
  background: linear-gradient(180deg, var(--snk-bg-2) 0%, var(--snk-bg) 100%);
  border-top: 1px solid var(--snk-bdr);
}

/* 三本の柱 */
.snk-pillar-trio {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1px;
  background: var(--snk-bdr);
  border: 1px solid var(--snk-bdr);
  margin-bottom: 4rem;
}
.snk-pillar-card {
  padding: clamp(2rem, 3vw, 2.5rem) clamp(1.25rem, 2vw, 1.75rem);
  background: var(--snk-bg-3);
  position: relative;
  overflow: hidden;
  text-align: center;
  transition: background var(--snk-transition);
}
.snk-pillar-card:hover { background: var(--snk-bg-4); }
.snk-pillar-card::before {
  content: '';
  position: absolute;
  top: 0; left: 0; right: 0;
  height: 3px;
}
.snk-pillar-card--1::before { background: linear-gradient(90deg, var(--snk-gold), var(--snk-gold-l)); }
.snk-pillar-card--2::before { background: linear-gradient(90deg, var(--snk-teal), #6bcecf); }
.snk-pillar-card--3::before { background: linear-gradient(90deg, var(--snk-indigo), #8ba0e0); }

.snk-pillar-ghost-num {
  font-family: var(--snk-font-display);
  font-size: 6rem;
  font-weight: 900;
  opacity: 0.05;
  line-height: 1;
  margin-bottom: -1.5rem;
  display: block;
  pointer-events: none;
  user-select: none;
}
.snk-pillar-card--1 .snk-pillar-ghost-num { color: var(--snk-gold); }
.snk-pillar-card--2 .snk-pillar-ghost-num { color: var(--snk-teal); }
.snk-pillar-card--3 .snk-pillar-ghost-num { color: var(--snk-indigo); }

.snk-pillar-icon {
  font-size: 2.2rem;
  display: block;
  margin-bottom: 0.9rem;
  position: relative;
  z-index: 1;
}
.snk-pillar-name {
  font-weight: 700;
  font-size: 1.1rem;
  color: var(--snk-text);
  margin-bottom: 0.2rem;
  position: relative;
  z-index: 1;
}
.snk-pillar-name-en {
  font-family: var(--snk-font-display);
  font-style: italic;
  font-size: 0.73rem;
  color: var(--snk-text-3);
  display: block;
  margin-bottom: 0.7rem;
}
.snk-pillar-rule {
  width: 28px;
  height: 1px;
  background: var(--snk-gold-bdr);
  margin: 0 auto 0.9rem;
}
.snk-pillar-desc {
  font-size: 0.82rem;
  color: var(--snk-text-2);
  line-height: 1.9;
  position: relative;
  z-index: 1;
  margin: 0;
}

/* シンセシス引用 */
.snk-syn-quote {
  text-align: center;
  padding: clamp(2.5rem, 4vw, 3.5rem) clamp(1.5rem, 4vw, 2.5rem);
  background: radial-gradient(ellipse 80% 80% at 50% 50%, rgba(200,146,74,0.05), transparent);
  border: 1px solid var(--snk-gold-bdr);
  margin-bottom: 4rem;
  position: relative;
}
.snk-syn-quote::before {
  content: '\201C';
  position: absolute;
  top: -2.5rem;
  left: 50%;
  transform: translateX(-50%);
  font-family: var(--snk-font-display);
  font-size: 8rem;
  color: var(--snk-gold);
  opacity: 0.18;
  line-height: 1;
  pointer-events: none;
}
.snk-syn-quote__text {
  font-family: var(--snk-font-display);
  font-size: clamp(1rem, 2.5vw, 1.4rem);
  font-style: italic;
  color: var(--snk-text);
  line-height: 1.9;
  position: relative;
  max-width: 640px;
  margin: 0 auto;
}
.snk-syn-quote__text em { font-style: normal; color: var(--snk-gold-l); }
.snk-syn-quote__src {
  display: block;
  font-family: var(--snk-font-mono);
  font-size: 0.61rem;
  color: var(--snk-gold);
  letter-spacing: 0.22em;
  margin-top: 1.5rem;
  font-style: normal;
  text-transform: uppercase;
}

/* アクション */
.snk-action-header { margin-bottom: 2rem; }
.snk-action-headline {
  font-family: var(--snk-font-body);
  font-size: clamp(1.2rem, 2.5vw, 1.5rem);
  font-weight: 700;
  color: var(--snk-text);
  line-height: 1.4;
}
.snk-action-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  gap: 0.9rem;
  margin-bottom: 4rem;
}
.snk-action-item {
  padding: 1.6rem 1.4rem;
  background: var(--snk-bg-3);
  border: 1px solid var(--snk-bdr);
  border-bottom: 2px solid var(--snk-action-color, var(--snk-gold));
  transition: transform var(--snk-transition), background var(--snk-transition);
}
.snk-action-item:hover { transform: translateY(-5px); background: var(--snk-bg-4); }
.snk-action-q {
  font-family: var(--snk-font-mono);
  font-size: 0.58rem;
  color: var(--snk-action-color, var(--snk-gold));
  letter-spacing: 0.2em;
  margin-bottom: 0.6rem;
}
.snk-action-name {
  font-weight: 700;
  font-size: 0.95rem;
  color: var(--snk-text);
  margin-bottom: 0.5rem;
  line-height: 1.4;
}
.snk-action-body {
  font-size: 0.82rem;
  color: var(--snk-text-2);
  line-height: 1.85;
  margin: 0;
}

/* マニフェスト */
.snk-manifesto {
  padding: clamp(2rem, 4vw, 3rem) clamp(1.5rem, 4vw, 2.5rem);
  text-align: center;
  background: var(--snk-bg-2);
  border: 1px solid var(--snk-bdr);
  position: relative;
  overflow: hidden;
}
.snk-manifesto__glow {
  position: absolute;
  inset: 0;
  pointer-events: none;
  background: radial-gradient(ellipse 60% 60% at 50% 50%, rgba(200,146,74,0.04), transparent);
}
.snk-manifesto__lines { position: relative; z-index: 1; }
.snk-manifesto__line {
  display: block;
  font-family: var(--snk-font-body);
  font-weight: 700;
  font-size: clamp(0.84rem, 1.5vw, 1rem);
  line-height: 2.6;
  color: var(--snk-text-2);
}
.snk-manifesto__line strong { color: var(--snk-gold-l); font-size: 1.1em; }
.snk-manifesto__line--big {
  font-size: clamp(1.1rem, 2.2vw, 1.5rem);
  color: var(--snk-text);
  margin: 0.5rem 0;
}
.snk-manifesto__rule {
  width: 40px;
  height: 1px;
  background: var(--snk-gold-bdr);
  margin: 1.5rem auto;
}
.snk-manifesto__sig {
  font-family: var(--snk-font-display);
  font-style: italic;
  font-size: 0.85rem;
  color: var(--snk-text-3);
  letter-spacing: 0.08em;
}


/* ================================================================
   17. FLOATING TOC
   ================================================================ */
.snk-ftoc {
  position: fixed;
  right: 1.75rem;
  top: 50%;
  transform: translateY(-50%);
  z-index: 300;
  display: flex;
  flex-direction: column;
  gap: 0.6rem;
  opacity: 0;
  transition: opacity 0.6s;
  pointer-events: none;
}
.snk-ftoc.is-visible {
  opacity: 1;
  pointer-events: auto;
}
.snk-ftoc__item {
  display: flex;
  align-items: center;
  gap: 0.65rem;
  cursor: pointer;
  justify-content: flex-end;
  padding: 0.15rem 0;
  text-decoration: none;
}
.snk-ftoc__label {
  font-family: var(--snk-font-mono);
  font-size: 0.56rem;
  color: var(--snk-text-3);
  letter-spacing: 0.1em;
  opacity: 0;
  transform: translateX(10px);
  transition: all 0.3s;
  white-space: nowrap;
}
.snk-ftoc__dot {
  width: 5px;
  height: 5px;
  border-radius: 50%;
  background: var(--snk-text-3);
  transition: all 0.3s;
  flex-shrink: 0;
  border: 1px solid transparent;
}
.snk-ftoc__item:hover .snk-ftoc__dot,
.snk-ftoc__item.is-active .snk-ftoc__dot {
  background: var(--snk-gold);
  transform: scale(1.8);
  box-shadow: 0 0 8px rgba(200,146,74,0.6);
}
.snk-ftoc__item:hover .snk-ftoc__label,
.snk-ftoc__item.is-active .snk-ftoc__label {
  opacity: 1;
  transform: translateX(0);
  color: var(--snk-gold-l);
}


/* ================================================================
   18. RESPONSIVE
   ================================================================ */
@media (max-width: 1180px) {
  .snk-ftoc { display: none; }
}

@media (max-width: 900px) {
  .snk-ks-grid { grid-template-columns: repeat(2, 1fr); }
  .snk-five-p  { grid-template-columns: repeat(3, 1fr); }
}

@media (max-width: 768px) {
  .snk-pillar-trio { grid-template-columns: 1fr; }
  .snk-emo-grid    { grid-template-columns: 1fr; }
  .snk-approach-row { grid-template-columns: 1fr; }
  .snk-tl-spine  { left: 3.8rem; }
  .snk-tl-yr     { min-width: 3.8rem; padding-right: 1rem; }
  .snk-tl-year   { font-size: 0.8rem; }
  .snk-cover__stat-divider { display: none; }
}

@media (max-width: 600px) {
  .snk-ks-grid   { grid-template-columns: 1fr; }
  .snk-five-p    { grid-template-columns: repeat(2, 1fr); }
  .snk-action-grid { grid-template-columns: 1fr; }
  .snk-ev-item   { flex-direction: column; gap: 0.5rem; }
  .snk-ev-org    { min-width: unset; }
  .snk-br-sp     { display: block; }
  .snk-accordion__count { display: none; }
}

@media (max-width: 480px) {
  .snk-five-p { grid-template-columns: 1fr 1fr; }
  .snk-cover__stats { gap: 1rem; }
}
