/******* Do not edit this file *******
Simple Custom CSS and JS - by Silkypress.com
Saved: Sep 12 2026 | 04:43:18 */
/* ============================================================
   世界ミステリー図鑑 記事デザインシステム  wm-system v1.2.1.1
   サイト側に1回だけ登録する共通CSS（Simple Custom CSS and JS）
   記事側は <div class="wm skin-..." data-type="casefile|dig|observe|document|travel"> でラップする。
   原則として記事固有<style>は不要。色は共通CSSのskin classで選ぶ。
   ============================================================ */
@import url('https://fonts.googleapis.com/css2?family=Shippori+Mincho+B1:wght@500;700;800&family=Noto+Sans+JP:wght@400;500;700;900&family=Noto+Serif+JP:wght@500;700&family=Courier+Prime:wght@400;700&family=Bebas+Neue&display=swap');

/* ---------- 0. ブランドトークン（全記事共通） ---------- */
.wm{
  --wm-black:#14171c;        /* 黒 */
  --wm-ink:#1d1a17;          /* 墨（紙の上の文字） */
  --wm-ink-2:#3a352e;        /* 本文 */
  --wm-muted:#6b675f;        /* 補足文字 */
  --wm-paper:#efe6d2;        /* 古紙 */
  --wm-paper-2:#e7dcc4;      /* 古紙・濃 */
  --wm-paper-3:#f7f1e4;      /* 古紙・明 */
  --wm-gray:#d9d6cf;         /* 薄灰 */
  --wm-gray-2:#a9a59c;
  --wm-slate:#262c34;        /* 暗いパネル */
  --wm-slate-2:#323a44;
  --wm-red:#b2292d;          /* くすんだ赤（赤鉛筆・警告） */
  --wm-red-deep:#7c1a1e;
  --wm-light:#f3efe7;        /* 暗地の上の文字 */
  --wm-light-2:#c9c4b8;      /* 暗地の上の補足 */
  --wm-line:rgba(29,26,23,.16);
  --wm-line-dark:rgba(243,239,231,.16);

  /* 記事ごとに変える唯一の場所（記事側の<style>で上書き） */
  --wm-accent:#b2292d;       /* 記事の1色 */
  --wm-accent-ink:#f3efe7;   /* accent座布団の上の文字 */
  --wm-accent-soft:rgba(178,41,45,.12);

  /* 型が決める地（下で型別に上書き） */
  --wm-ground:var(--wm-paper);
  --wm-ground-ink:var(--wm-ink);
  --wm-ground-ink-2:var(--wm-ink-2);
  --wm-ground-muted:var(--wm-muted);
  --wm-panel:var(--wm-paper-3);
  --wm-panel-ink:var(--wm-ink);
  --wm-rule:var(--wm-line);

  --wm-font-head:"Shippori Mincho B1","Noto Serif JP","Hiragino Mincho ProN",serif;
  --wm-font-body:"Noto Sans JP","Hiragino Kaku Gothic ProN","Yu Gothic",sans-serif;
  --wm-font-serif:"Noto Serif JP","Hiragino Mincho ProN",serif;
  --wm-font-mono:"Courier Prime","Courier New",monospace;
  --wm-font-num:"Bebas Neue","Noto Sans JP",sans-serif;

  --wm-wrap:min(1400px,94vw);
  --wm-text:1000px;
  --wm-wide:min(1560px,96vw);
  --wm-shadow:0 18px 50px rgba(20,23,28,.22);
  --wm-shadow-sm:0 8px 22px rgba(20,23,28,.14);

  /* 素材ライブラリ（WPメディア） */
  --wm-u:url("https://worldmysteriesencyclopedia.com/wp-content/uploads/2026/09/");
  --wm-tex-paper-warm:url("https://worldmysteriesencyclopedia.com/wp-content/uploads/2026/09/wm-bg-paper-warm-01.jpg");
  --wm-tex-paper-cold:url("https://worldmysteriesencyclopedia.com/wp-content/uploads/2026/09/wm-bg-paper-cold-01.jpg");
  --wm-tex-plaster:url("https://worldmysteriesencyclopedia.com/wp-content/uploads/2026/09/wm-bg-plaster-01.jpg");
  --wm-tex-lead:url("https://worldmysteriesencyclopedia.com/wp-content/uploads/2026/09/wm-bg-lead-01.jpg");
  --wm-tex-cloth:url("https://worldmysteriesencyclopedia.com/wp-content/uploads/2026/09/wm-bg-cloth-black-01.jpg");
  --wm-tex-stone:url("https://worldmysteriesencyclopedia.com/wp-content/uploads/2026/09/wm-bg-stone-01.jpg");
  --wm-tex-halftone:url("https://worldmysteriesencyclopedia.com/wp-content/uploads/2026/09/wm-bg-halftone-01.jpg");
  --wm-tex-blueprint:url("https://worldmysteriesencyclopedia.com/wp-content/uploads/2026/09/wm-bg-blueprint-01.jpg");
  --wm-deco-tape:url("https://worldmysteriesencyclopedia.com/wp-content/uploads/2026/09/wm-doc-tape-01.png");
  --wm-deco-tape2:url("https://worldmysteriesencyclopedia.com/wp-content/uploads/2026/09/wm-doc-tape-02.png");
  --wm-deco-pin:url("https://worldmysteriesencyclopedia.com/wp-content/uploads/2026/09/wm-doc-pushpin.png");
  --wm-deco-corner:url("https://worldmysteriesencyclopedia.com/wp-content/uploads/2026/09/wm-doc-photo-corner.png");
  --wm-deco-circle:url("https://worldmysteriesencyclopedia.com/wp-content/uploads/2026/09/wm-doc-pencil-circle.png");
  --wm-deco-underline:url("https://worldmysteriesencyclopedia.com/wp-content/uploads/2026/09/wm-doc-pencil-underline.png");
  --wm-deco-arrow:url("https://worldmysteriesencyclopedia.com/wp-content/uploads/2026/09/wm-doc-pencil-arrow.png");
  --wm-deco-question:url("https://worldmysteriesencyclopedia.com/wp-content/uploads/2026/09/wm-doc-pencil-question.png");
  --wm-deco-clip:url("https://worldmysteriesencyclopedia.com/wp-content/uploads/2026/09/wm-doc-paperclip.png");
  --wm-deco-string:url("https://worldmysteriesencyclopedia.com/wp-content/uploads/2026/09/wm-doc-string-red.png");
  --wm-deco-stamp:url("https://worldmysteriesencyclopedia.com/wp-content/uploads/2026/09/wm-doc-stamp-round.png");
  --wm-deco-coffee:url("https://worldmysteriesencyclopedia.com/wp-content/uploads/2026/09/wm-doc-stain-coffee.png");
  --wm-deco-redacted:url("https://worldmysteriesencyclopedia.com/wp-content/uploads/2026/09/wm-doc-redacted-bar.png");
  --wm-deco-fingerprint:url("https://worldmysteriesencyclopedia.com/wp-content/uploads/2026/09/wm-doc-fingerprint.png");
  --wm-deco-compass:url("https://worldmysteriesencyclopedia.com/wp-content/uploads/2026/09/wm-sea-compass.png");
  --wm-deco-magnifier:url("https://worldmysteriesencyclopedia.com/wp-content/uploads/2026/09/wm-doc-magnifier.png");

  /* v1.1 長文誌面用トークン */
  --wm-rust:#6d4432;
  --wm-rust-2:#8b5b43;
  --wm-night:#151b22;
  --wm-night-2:#202934;
  --wm-soot:#111316;
  --wm-editorial-gap:clamp(18px,2.4vw,38px);
  --wm-airy-y:clamp(72px,8vw,132px);
  --wm-dense-y:clamp(30px,4vw,62px);

  /* ルート：全幅・SWELL制約解除 */
  width:100vw !important;
  margin-left:calc(50% - 50vw) !important;
  margin-right:calc(50% - 50vw) !important;
  max-width:none !important;
  overflow-x:hidden;
  overflow-x:clip;
  position:relative;
  color:var(--wm-ground-ink);
  background-color:var(--wm-ground);
  font-family:var(--wm-font-body);
  font-size:19px;
  line-height:2;
  font-weight:450;
  -webkit-font-smoothing:antialiased;
}
.wm *, .wm *::before, .wm *::after{ box-sizing:border-box; }
.wm .lwptoc, .wm .p-toc{ display:none !important; }

/* ---------- 1. 型（data-type）が地を決める ---------- */
.wm[data-type="casefile"]{
  --wm-ground:#ece3cf; --wm-panel:#f7f1e4; --wm-accent-soft:rgba(178,41,45,.10);
  background-image:linear-gradient(rgba(236,227,207,.9),rgba(236,227,207,.9)),var(--wm-tex-paper-warm); background-size:auto,900px;
}
.wm[data-type="dig"]{
  --wm-ground:#e9dfc8; --wm-panel:#f4ecda; --wm-slate:#3b3128; --wm-slate-2:#4b3e33;
  background-image:linear-gradient(rgba(233,223,200,.88),rgba(233,223,200,.88)),var(--wm-tex-plaster); background-size:auto,1000px;
}
.wm[data-type="observe"]{
  --wm-ground:#161a20; --wm-ground-ink:#f3efe7; --wm-ground-ink-2:#d8d3c8; --wm-ground-muted:#9a9689;
  --wm-panel:#232a33; --wm-panel-ink:#f3efe7; --wm-rule:rgba(243,239,231,.16); --wm-line:rgba(243,239,231,.16);
  --wm-shadow:0 18px 50px rgba(0,0,0,.5); --wm-shadow-sm:0 8px 22px rgba(0,0,0,.4);
  background-image:linear-gradient(rgba(22,26,32,.9),rgba(22,26,32,.9)),var(--wm-tex-lead); background-size:auto,1100px;
}
.wm[data-type="document"]{
  --wm-ground:#e6e4df; --wm-panel:#f5f4f0; --wm-slate:#22252a; --wm-slate-2:#2f333a;
  background-image:linear-gradient(rgba(230,228,223,.9),rgba(230,228,223,.9)),var(--wm-tex-paper-cold); background-size:auto,900px;
}
.wm[data-type="travel"]{
  --wm-ground:#efeae0; --wm-panel:#f8f5ee; --wm-slate:#1f2429; --wm-slate-2:#2c333a;
  background-image:linear-gradient(rgba(239,234,224,.9),rgba(239,234,224,.9)),var(--wm-tex-plaster); background-size:auto,1000px;
}


/* ---------- 1-1. 記事側<style>不要のプリセットスキン ---------- */
/* MCP/権限差で<style>が剥がれても、rootのclassだけで色が決まる。 */
.wm.skin-signal{ --wm-accent:#c66a2d; --wm-accent-ink:#fff8ee; --wm-accent-soft:rgba(198,106,45,.16); }
.wm.skin-red-pencil{ --wm-accent:#9b3032; --wm-accent-ink:#fff6ec; --wm-accent-soft:rgba(155,48,50,.13); }
.wm.skin-verdigris{ --wm-accent:#397d6d; --wm-accent-ink:#f7fbf7; --wm-accent-soft:rgba(57,125,109,.14); }
.wm.skin-ocean{ --wm-accent:#286c78; --wm-accent-ink:#f2fbfc; --wm-accent-soft:rgba(40,108,120,.16); }
.wm.skin-sand{ --wm-accent:#9b642f; --wm-accent-ink:#fff8ed; --wm-accent-soft:rgba(155,100,47,.15); }
.wm.skin-amber{ --wm-accent:#bb7a31; --wm-accent-ink:#1a1208; --wm-accent-soft:rgba(187,122,49,.16); }
.wm.skin-night{ --wm-accent:#8aa6c1; --wm-accent-ink:#111820; --wm-accent-soft:rgba(138,166,193,.17); }
.wm.skin-plum{ --wm-accent:#7a536a; --wm-accent-ink:#fff8fa; --wm-accent-soft:rgba(122,83,106,.15); }

/* ---------- 2. 基本タイポ・SWELL打ち消し ---------- */
.wm :where(h1,h2,h3,h4,h5,h6){
  border:0 !important; background:none !important; padding:0 !important; box-shadow:none !important;
  margin:0; font-family:var(--wm-font-head); font-weight:700; color:inherit; text-align:left; letter-spacing:.01em;
}
.wm :where(h1,h2,h3,h4,h5,h6)::before,
.wm :where(h1,h2,h3,h4,h5,h6)::after{ content:none !important; display:none !important; }

/* SWELL見出しの色・余白を強制打ち消し（!importantで勝つ） */
.wm h1, .wm h2, .wm h3, .wm h4{ margin:0 !important; color:var(--wm-ground-ink) !important; line-height:1.3; }
.wm .wm-hero h1, .wm .wm-photo-break h2, .wm .wm-question h2, .wm .wm-question h3, .wm .wm-question h4, .wm .wm-note h3, .wm .wm-callout h3, .wm .wm-panel--dark h2, .wm .wm-panel--dark h3, .wm .wm-panel--dark h4, .wm .wm-hero__aside h3, .wm .wm-quote--dark h3{ color:#fff !important; }
.wm .wm-hero--paper h1{ color:var(--wm-ink) !important; text-shadow:none; }
.wm .wm-q h3, .wm .wm-evidence__item h4, .wm .wm-person__card h4, .wm .wm-conflict h4, .wm .wm-reading__item h4, .wm .wm-document__col h3{ color:var(--wm-panel-ink) !important; }
.wm[data-type="dig"] .wm-evidence__item h4{ color:#fff !important; }
.wm .wm-prose h3{ font-family:var(--wm-font-serif); font-size:clamp(23px,2.3vw,31px); line-height:1.4; color:var(--wm-accent) !important; margin:44px 0 14px !important; }
.wm .wm-sources h2{ font-size:26px; margin-bottom:14px !important; }
.wm .wm-chapter h2{ font-size:clamp(30px,3.4vw,50px); line-height:1.28; margin:0 !important; }
.wm p{ margin:0 0 1.4em; font-size:19px; line-height:2; }
.wm p:last-child{ margin-bottom:0; }
.wm a{ color:var(--wm-accent); text-decoration:underline; text-underline-offset:3px; text-decoration-thickness:1px; }
.wm a:focus-visible, .wm button:focus-visible, .wm [tabindex]:focus-visible{
  outline:3px solid var(--wm-accent);
  outline-offset:4px;
}
.wm img{ max-width:100%; height:auto; display:block; }
.wm figure{ margin:0; }
.wm ul, .wm ol{ margin:0 0 1.4em 1.3em; padding:0; }
.wm li{ font-size:19px; line-height:1.9; margin:0 0 .4em; }
.wm strong{ font-weight:900; }
.wm em{ font-style:normal; font-weight:700; color:var(--wm-accent); }
#body_wrap .post_content .wm figcaption,
.wm figcaption{ font-size:15px !important; line-height:1.7; color:var(--wm-ground-muted); margin-top:10px; text-align:left; }

/* 英字小ラベル（見出し横の OBSERVATION LOG など） */
.wm .wm-en{ font-family:var(--wm-font-body); font-size:15px; font-weight:700; letter-spacing:.22em; text-transform:uppercase; color:var(--wm-ground-muted); }
.wm .wm-mono{ font-family:var(--wm-font-mono); }
.wm .wm-num{ font-family:var(--wm-font-num); letter-spacing:.04em; }
.wm .wm-hot{ font-weight:900; color:var(--wm-accent); }
.wm .wm-mark{ background:linear-gradient(transparent 55%, var(--wm-accent-soft) 55%); font-weight:700; }
.wm .wm-label{ display:inline-block; font-size:15px; font-weight:900; letter-spacing:.1em; padding:.2em .7em; border-radius:3px; background:var(--wm-accent); color:var(--wm-accent-ink); line-height:1.6; vertical-align:middle; }

/* ---------- 3. レイアウト骨格 ---------- */
.wm .wm-wrap{ width:var(--wm-wrap); margin:0 auto; }
.wm .wm-wide{ width:var(--wm-wide); margin:0 auto; }
.wm .wm-prose{ max-width:var(--wm-text); margin-left:auto; margin-right:auto; }
.wm .wm-prose p{ font-size:clamp(19px,1.35vw,21px); color:var(--wm-ground-ink-2); }
.wm .wm-section{ padding:clamp(40px,5vw,80px) 0; }
.wm .wm-section--tight{ padding:clamp(24px,3vw,44px) 0; }
.wm .wm-board{ display:grid; grid-template-columns:repeat(12,minmax(0,1fr)); gap:clamp(18px,2vw,30px); align-items:start; }
.wm .wm-board > *{ min-width:0; }
.wm .wm-span-3{ grid-column:span 3; } .wm .wm-span-4{ grid-column:span 4; } .wm .wm-span-5{ grid-column:span 5; }
.wm .wm-span-6{ grid-column:span 6; } .wm .wm-span-7{ grid-column:span 7; } .wm .wm-span-8{ grid-column:span 8; }
.wm .wm-span-9{ grid-column:span 9; } .wm .wm-span-12{ grid-column:span 12; }

/* パネル（カード台紙） */
.wm .wm-panel{ background:var(--wm-panel); color:var(--wm-panel-ink); border:1px solid var(--wm-rule); padding:clamp(20px,2.2vw,30px); box-shadow:var(--wm-shadow-sm); position:relative; }
.wm .wm-panel--dark{ background:var(--wm-slate); color:var(--wm-light); border-color:rgba(255,255,255,.08); }
.wm .wm-panel--dark .wm-en, .wm .wm-panel--dark figcaption{ color:var(--wm-light-2); }
.wm .wm-panel--dark p{ color:var(--wm-light); }
.wm .wm-panel--accent{ background:var(--wm-accent); color:var(--wm-accent-ink); border-color:transparent; }
.wm .wm-panel--accent .wm-en{ color:var(--wm-accent-ink); opacity:.8; }
.wm .wm-panel--paper{ background:var(--wm-paper-3); color:var(--wm-ink); background-image:var(--wm-tex-paper-warm); background-size:700px; background-blend-mode:multiply; }
.wm .wm-panel--paper p, .wm .wm-panel--paper li{ color:var(--wm-ink-2); }

/* 見出し（部品共通ヘッダー：縦罫＋日本語＋英字） */
.wm .wm-head{ display:flex; align-items:baseline; gap:14px; flex-wrap:wrap; margin:0 0 clamp(16px,1.8vw,24px); padding-left:14px; border-left:4px solid var(--wm-accent); }
.wm .wm-head h2, .wm .wm-head h3{ font-size:clamp(24px,2.2vw,32px); line-height:1.3; }
.wm .wm-head .wm-en{ transform:translateY(-2px); }
.wm .wm-head--lg h2{ font-size:clamp(30px,3.2vw,46px); }

/* 章の大見出し */
.wm .wm-chapter{ max-width:var(--wm-text); margin:0 auto clamp(24px,3vw,40px); }
.wm .wm-chapter .wm-chapter__num{ font-family:var(--wm-font-num); font-size:clamp(40px,5vw,72px); line-height:1; color:var(--wm-accent); display:block; margin-bottom:6px; }

.wm .wm-chapter .wm-chapter__sub{ font-family:var(--wm-font-serif); font-size:clamp(19px,1.6vw,23px); color:var(--wm-ground-muted); margin-top:10px; line-height:1.7; }


/* ---------- 4. ヒーロー ---------- */
.wm .wm-hero{ position:relative; width:100%; min-height:clamp(520px,58vw,760px); display:grid; grid-template-columns:minmax(0,1fr) clamp(300px,26vw,420px); color:var(--wm-light); background:var(--wm-black); overflow:hidden; }
.wm .wm-hero--simple{ grid-template-columns:1fr; }
.wm .wm-hero__media{ position:absolute; inset:0; z-index:0; }
.wm .wm-hero__media img{ width:100%; height:100%; object-fit:cover; object-position:center; }
.wm .wm-hero__media::after{ content:""; position:absolute; inset:0; background:linear-gradient(90deg, rgba(20,23,28,.88) 0%, rgba(20,23,28,.55) 45%, rgba(20,23,28,.15) 100%), linear-gradient(0deg, rgba(20,23,28,.85) 0%, rgba(20,23,28,0) 45%); }
.wm .wm-hero__body{ position:relative; z-index:1; padding:clamp(36px,5vw,80px) clamp(22px,4vw,64px) clamp(30px,4vw,56px); display:flex; flex-direction:column; justify-content:flex-end; }
.wm .wm-hero__eyebrow{ display:flex; align-items:center; gap:14px; font-size:15px; font-weight:700; letter-spacing:.2em; color:var(--wm-light-2); margin-bottom:18px; }
.wm .wm-hero__eyebrow .wm-label{ letter-spacing:.14em; }
.wm .wm-hero__no{ font-family:var(--wm-font-mono); font-size:16px; letter-spacing:.1em; color:var(--wm-light-2); }
.wm .wm-hero h1{ font-size:clamp(34px,4.6vw,68px); line-height:1.2; color:#fff; text-shadow:0 2px 24px rgba(0,0,0,.5); max-width:22ch; }
.wm .wm-hero h1 .wm-hero__t2{ display:block; font-size:.62em; font-weight:500; color:var(--wm-light-2); margin-top:.35em; }
.wm .wm-hero__lead{ font-family:var(--wm-font-serif); font-size:clamp(18px,1.5vw,21px); line-height:1.9; color:var(--wm-light); max-width:640px; margin:22px 0 0; }
.wm .wm-hero__tags{ display:flex; flex-wrap:wrap; gap:8px 10px; margin-top:22px; }
.wm .wm-hero__tags span{ font-size:15px; font-weight:700; padding:6px 12px; border:1px solid rgba(255,255,255,.35); border-radius:3px; color:var(--wm-light); background:rgba(20,23,28,.4); }
.wm .wm-hero__credit{ position:absolute; right:clamp(16px,2vw,28px); bottom:14px; z-index:1; font-size:15px; color:var(--wm-light-2); font-family:var(--wm-font-mono); }
.wm .wm-hero__aside{ position:relative; z-index:1; background:rgba(20,23,28,.72); backdrop-filter:blur(3px); border-left:1px solid rgba(255,255,255,.12); padding:clamp(26px,3vw,44px) clamp(22px,2.4vw,36px); display:flex; flex-direction:column; gap:26px; justify-content:center; }
.wm .wm-hero__quote{ font-family:var(--wm-font-serif); font-size:clamp(19px,1.5vw,22px); line-height:1.9; color:#fff; margin:0; }
.wm .wm-hero__quote cite{ display:block; font-style:normal; font-size:15px; color:var(--wm-light-2); margin-top:10px; letter-spacing:.1em; }
.wm .wm-hero__vert{ position:absolute; right:clamp(12px,2vw,30px); top:clamp(30px,5vw,70px); z-index:1; writing-mode:vertical-rl; font-family:var(--wm-font-serif); font-size:clamp(16px,1.3vw,19px); letter-spacing:.3em; color:var(--wm-light-2); }
.wm .wm-hero--paper{ background:var(--wm-paper); color:var(--wm-ink); }
.wm .wm-hero--paper .wm-hero__media::after{ background:linear-gradient(90deg, rgba(239,230,210,.96) 0%, rgba(239,230,210,.75) 40%, rgba(239,230,210,.1) 100%); }

.wm .wm-hero--paper h1 .wm-hero__t2, .wm .wm-hero--paper .wm-hero__lead, .wm .wm-hero--paper .wm-hero__eyebrow{ color:var(--wm-ink-2); }
.wm .wm-hero--paper .wm-hero__tags span{ color:var(--wm-ink); border-color:var(--wm-line); background:rgba(255,255,255,.5); }

/* メタ表（この記事について） */
.wm .wm-meta{ display:grid; grid-template-columns:auto 1fr; gap:8px 18px; margin:0; font-size:16px; }
.wm .wm-meta dt{ font-weight:900; letter-spacing:.06em; color:var(--wm-ground-muted); white-space:nowrap; }
.wm .wm-meta dd{ margin:0; font-weight:500; }
.wm .wm-panel--dark .wm-meta dt, .wm .wm-hero__aside .wm-meta dt{ color:var(--wm-light-2); }

/* ---------- 5. 五つの謎 / 30秒要約 / データ帯 ---------- */
.wm .wm-mystery-grid{ display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); gap:clamp(12px,1.4vw,20px); }
.wm .wm-q{ background:var(--wm-panel); color:var(--wm-panel-ink); border:1px solid var(--wm-rule); border-top:4px solid var(--wm-accent); padding:22px 20px 20px; box-shadow:var(--wm-shadow-sm); position:relative; }
.wm .wm-q__num{ font-family:var(--wm-font-num); font-size:44px; line-height:1; color:var(--wm-accent); display:block; margin-bottom:10px; }
.wm .wm-q h3{ font-size:22px; line-height:1.4; margin-bottom:8px; }
.wm .wm-q p{ font-size:18px; line-height:1.7; color:var(--wm-ground-muted); }
.wm .wm-brief{ max-width:var(--wm-text); margin:0 auto; }
.wm .wm-brief p{ font-family:var(--wm-font-serif); font-size:clamp(20px,1.8vw,26px); line-height:1.85; font-weight:600; padding-left:22px; border-left:5px solid var(--wm-accent); }
.wm .wm-data{ display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:0; border:1px solid var(--wm-rule); background:var(--wm-panel); color:var(--wm-panel-ink); }
.wm .wm-data > div{ padding:18px 22px; border-left:1px solid var(--wm-rule); }
.wm .wm-data > div:first-child{ border-left:0; }
.wm .wm-data .wm-en{ display:block; margin-bottom:6px; }
.wm .wm-data strong{ font-size:19px; line-height:1.5; display:block; }
/* ---------- 6. 写真部品 ---------- */
.wm .wm-figure{ margin:clamp(30px,4vw,56px) auto; width:var(--wm-wide); }
.wm .wm-figure--text{ width:100%; max-width:var(--wm-text); }
.wm .wm-figure img{ width:100%; border:1px solid var(--wm-rule); box-shadow:var(--wm-shadow-sm); }
.wm .wm-photo-pair{ width:var(--wm-wide); margin:clamp(30px,4vw,56px) auto; display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:clamp(16px,2vw,28px); }
.wm .wm-photo-grid{ width:var(--wm-wide); margin:clamp(30px,4vw,56px) auto; display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:clamp(14px,1.6vw,24px); }
.wm .wm-photo-grid--4{ grid-template-columns:repeat(4,minmax(0,1fr)); }
.wm .wm-photo-pair img, .wm .wm-photo-grid img{ width:100%; aspect-ratio:4/3; object-fit:cover; border:1px solid var(--wm-rule); box-shadow:var(--wm-shadow-sm); }
.wm .wm-portrait img{ aspect-ratio:3/4; }
/* 大写真による章切り替え */
.wm .wm-photo-break{ position:relative; width:100%; min-height:clamp(340px,46vw,620px); overflow:hidden; background:var(--wm-black); color:#fff; display:flex; align-items:flex-end; margin:clamp(40px,5vw,80px) 0; }
.wm .wm-photo-break img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.wm .wm-photo-break::after{ content:""; position:absolute; inset:0; background:linear-gradient(0deg, rgba(20,23,28,.9) 0%, rgba(20,23,28,.2) 55%, rgba(20,23,28,0) 100%); }
.wm .wm-photo-break__body{ position:relative; z-index:1; width:var(--wm-wrap); margin:0 auto; padding:clamp(28px,4vw,56px) 0; }
.wm .wm-photo-break .wm-chapter__num{ font-family:var(--wm-font-num); font-size:clamp(48px,7vw,110px); line-height:.9; color:var(--wm-accent); display:block; }
.wm .wm-photo-break h2{ font-size:clamp(30px,4vw,58px); line-height:1.2; color:#fff; text-shadow:0 2px 20px rgba(0,0,0,.6); margin-top:8px; }
.wm .wm-photo-break p{ font-family:var(--wm-font-serif); font-size:clamp(18px,1.5vw,21px); color:var(--wm-light); max-width:720px; margin-top:14px; }
.wm .wm-photo-break figcaption{ position:absolute; right:clamp(14px,2vw,28px); bottom:12px; z-index:1; color:var(--wm-light-2) !important; font-family:var(--wm-font-mono); }
/* 貼った写真（コラージュ） */
.wm .wm-photo-taped{ position:relative; background:#fff; padding:12px 12px 16px; box-shadow:var(--wm-shadow); transform:rotate(-1.4deg); }
.wm .wm-photo-taped::before{ content:""; position:absolute; top:-16px; left:50%; width:150px; height:44px; transform:translateX(-50%) rotate(-3deg); background:var(--wm-deco-tape) center/contain no-repeat; z-index:2; }
.wm .wm-photo-taped img{ border:0; box-shadow:none; }
.wm .wm-photo-taped--r{ transform:rotate(1.2deg); }
.wm .wm-photo-taped figcaption{ font-family:var(--wm-font-mono); color:var(--wm-ink-2); margin-top:10px; }
.wm .wm-photo-corners{ position:relative; padding:14px; }
.wm .wm-photo-corners::before, .wm .wm-photo-corners::after{ content:""; position:absolute; width:46px; height:46px; background:var(--wm-deco-corner) center/contain no-repeat; z-index:2; }
.wm .wm-photo-corners::before{ top:0; left:0; } .wm .wm-photo-corners::after{ bottom:0; right:0; transform:rotate(180deg); }

/* ---------- 7. 証拠カード ---------- */
.wm .wm-evidence{ display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:clamp(14px,1.6vw,24px); }
.wm .wm-evidence__item{ background:var(--wm-panel); color:var(--wm-panel-ink); border:1px solid var(--wm-rule); padding:14px 14px 18px; box-shadow:var(--wm-shadow-sm); position:relative; }
.wm .wm-evidence__item img{ width:100%; aspect-ratio:4/3; object-fit:cover; border:1px solid var(--wm-rule); filter:saturate(.85); }
.wm .wm-evidence__num{ position:absolute; top:-12px; left:14px; font-family:var(--wm-font-mono); font-size:15px; font-weight:700; letter-spacing:.1em; background:var(--wm-accent); color:var(--wm-accent-ink); padding:4px 10px; z-index:2; }
.wm .wm-evidence__item h4{ font-size:20px; line-height:1.4; margin:14px 0 6px; font-family:var(--wm-font-body); font-weight:900; }
.wm .wm-evidence__item p{ font-size:16px; line-height:1.7; color:var(--wm-ground-muted); }
.wm .wm-evidence__spec{ font-family:var(--wm-font-mono); font-size:15px; color:var(--wm-ground-muted); margin-top:8px; letter-spacing:.02em; }
.wm .wm-evidence--focus .wm-evidence__item::after{ content:""; position:absolute; right:-10px; top:-10px; width:70px; height:70px; background:var(--wm-deco-circle) center/contain no-repeat; pointer-events:none; }

.wm .wm-evidence--2{ grid-template-columns:repeat(2,minmax(0,1fr)); }
.wm .wm-evidence--4{ grid-template-columns:repeat(4,minmax(0,1fr)); }
.wm .wm-mt{ margin-top:28px; }

/* ---------- 8. 人物カード ---------- */
.wm .wm-person{ display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:clamp(14px,1.6vw,24px); }
.wm .wm-person__card{ display:grid; grid-template-columns:96px 1fr; gap:14px; background:var(--wm-panel); color:var(--wm-panel-ink); border:1px solid var(--wm-rule); padding:14px; box-shadow:var(--wm-shadow-sm); align-items:start; }
.wm .wm-person__card img{ width:96px; height:120px; object-fit:cover; filter:grayscale(1) contrast(1.05); border:1px solid var(--wm-rule); }
.wm .wm-person__card h4{ font-size:19px; line-height:1.4; font-family:var(--wm-font-body); font-weight:900; margin-bottom:2px; }
.wm .wm-person__role{ font-size:15px; color:var(--wm-ground-muted); letter-spacing:.04em; margin-bottom:8px; display:block; }
.wm .wm-person__card p{ font-size:18px; line-height:1.7; }
.wm .wm-person__card blockquote{ margin:6px 0 0; padding:0; border:0; font-family:var(--wm-font-serif); font-size:16px; line-height:1.75; color:var(--wm-ground-ink-2); }
.wm .wm-person__card blockquote::before{ content:"「"; } .wm .wm-person__card blockquote::after{ content:"」"; }
.wm .wm-person__card .wm-person__time{ font-family:var(--wm-font-mono); font-size:15px; color:var(--wm-ground-muted); display:block; margin-top:6px; }
.wm .wm-person--1{ grid-template-columns:1fr; }
.wm .wm-person--2{ grid-template-columns:repeat(2,minmax(0,1fr)); }
.wm .wm-person--noimg .wm-person__card{ grid-template-columns:1fr; }
.wm .wm-person--noimg .wm-person__card img{ display:none; }

/* ---------- 9. 時系列 ---------- */
.wm .wm-timeline{ margin:0; padding:0; list-style:none; }
.wm .wm-timeline__item{ display:grid; grid-template-columns:130px 1fr; gap:22px; padding:16px 0; border-top:1px solid var(--wm-rule); position:relative; }
.wm .wm-timeline__item:last-child{ border-bottom:1px solid var(--wm-rule); }
.wm .wm-timeline__time{ font-family:var(--wm-font-num); font-size:28px; line-height:1.2; color:var(--wm-accent); letter-spacing:.04em; }
.wm .wm-timeline__time .wm-sub{ display:block; font-family:var(--wm-font-body); font-size:15px; color:var(--wm-ground-muted); letter-spacing:.06em; }
.wm .wm-timeline__body{ font-size:18px; line-height:1.8; }
.wm .wm-timeline__body strong{ display:block; font-size:19px; margin-bottom:2px; }
.wm .wm-timeline--dots .wm-timeline__item{ grid-template-columns:130px 22px 1fr; gap:14px; border:0; padding:10px 0; }
.wm .wm-timeline--dots .wm-timeline__item::before{ content:""; grid-column:2; width:12px; height:12px; border-radius:50%; background:var(--wm-accent); margin-top:12px; box-shadow:0 0 0 4px var(--wm-panel); z-index:1; }
.wm .wm-timeline--dots .wm-timeline__item::after{ content:""; position:absolute; left:calc(130px + 14px + 5px); top:0; bottom:0; width:2px; background:var(--wm-rule); }
.wm .wm-timeline--dots .wm-timeline__item:first-child::after{ top:22px; } .wm .wm-timeline--dots .wm-timeline__item:last-child::after{ bottom:auto; height:22px; }
.wm .wm-timeline--dots .wm-timeline__body{ grid-column:3; }
/* 巨大時刻（観測ログ） */
.wm .wm-clock{ display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:clamp(12px,1.4vw,20px); }
.wm .wm-clock__tick{ background:var(--wm-panel); color:var(--wm-panel-ink); border:1px solid var(--wm-rule); padding:18px 20px; }
.wm .wm-clock__tick .wm-num{ font-size:clamp(40px,4vw,60px); line-height:1; color:var(--wm-accent); display:block; margin-bottom:8px; }
.wm .wm-clock__tick p{ font-size:16px; line-height:1.7; }

/* ---------- 10. 地図・ルート ---------- */
.wm .wm-location{ display:grid; grid-template-columns:minmax(0,1.3fr) minmax(280px,.8fr); gap:clamp(18px,2vw,30px); align-items:start; }
.wm .wm-location__map{ position:relative; background:var(--wm-panel); border:1px solid var(--wm-rule); padding:10px; box-shadow:var(--wm-shadow-sm); }
.wm .wm-location__map img{ width:100%; aspect-ratio:16/10; object-fit:cover; }
.wm .wm-location__map svg{ width:100%; height:auto; display:block; }
.wm .wm-location__scale{ position:absolute; left:22px; bottom:22px; font-family:var(--wm-font-mono); font-size:15px; background:rgba(255,255,255,.85); color:var(--wm-ink); padding:4px 10px; }
.wm .wm-location__north{ position:absolute; right:22px; top:22px; font-family:var(--wm-font-num); font-size:22px; color:var(--wm-ink); background:rgba(255,255,255,.85); width:38px; height:38px; display:grid; place-items:center; border-radius:50%; }
.wm .wm-location__notes{ display:flex; flex-direction:column; gap:12px; }
.wm .wm-route{ counter-reset:pt; margin:0; padding:0; list-style:none; }
.wm .wm-route li{ counter-increment:pt; display:grid; grid-template-columns:38px 1fr; gap:12px; padding:12px 0; border-top:1px solid var(--wm-rule); font-size:17px; line-height:1.7; }
.wm .wm-route li::before{ content:counter(pt); width:32px; height:32px; border-radius:50%; background:var(--wm-accent); color:var(--wm-accent-ink); font-family:var(--wm-font-num); font-size:20px; display:grid; place-items:center; margin-top:2px; }
.wm .wm-route strong{ display:block; font-size:18px; }
.wm .wm-pin-note{ background:var(--wm-paper-3); color:var(--wm-ink); border:1px solid var(--wm-line); padding:14px 16px; font-size:16px; line-height:1.7; position:relative; transform:rotate(.8deg); box-shadow:var(--wm-shadow-sm); }
.wm .wm-pin-note::before{ content:""; position:absolute; top:-14px; left:16px; width:32px; height:32px; background:var(--wm-deco-pin) center/contain no-repeat; }

/* ---------- 11. 原文／翻刻／訳 ---------- */
.wm .wm-document{ display:grid; grid-template-columns:minmax(0,.9fr) minmax(0,1fr) minmax(0,1fr); gap:clamp(16px,2vw,28px); align-items:start; }
.wm .wm-document__col h3{ font-size:24px; margin-bottom:4px; }
.wm .wm-document__col .wm-document__desc{ font-size:15px; color:var(--wm-ground-muted); margin-bottom:14px; line-height:1.6; }
.wm .wm-document__img{ background:var(--wm-panel); padding:10px; border:1px solid var(--wm-rule); box-shadow:var(--wm-shadow-sm); }
.wm .wm-document__lines{ margin:0; padding:0; list-style:none; border:1px solid var(--wm-rule); background:var(--wm-panel); color:var(--wm-panel-ink); }
.wm .wm-document__lines li{ display:grid; grid-template-columns:44px 1fr; gap:10px; padding:10px 14px 10px 10px; border-top:1px solid var(--wm-rule); font-size:17px; line-height:1.7; margin:0; }
.wm .wm-document__lines li:first-child{ border-top:0; }
.wm .wm-document__lines li::before{ content:attr(data-n); font-family:var(--wm-font-mono); font-size:15px; color:var(--wm-ground-muted); padding-top:3px; }
.wm .wm-document__lines--src li{ font-family:var(--wm-font-mono); font-size:16px; }
.wm .wm-document__lines--src li:nth-child(even), .wm .wm-document__lines li:nth-child(even){ background:rgba(0,0,0,.025); }
.wm .wm-reading{ display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:clamp(12px,1.4vw,18px); }
.wm .wm-reading__item{ background:var(--wm-panel); border:1px solid var(--wm-rule); padding:12px; }
.wm .wm-reading__item img{ width:100%; aspect-ratio:2/1; object-fit:cover; margin-bottom:10px; }
.wm .wm-reading__item h4{ font-family:var(--wm-font-body); font-size:17px; font-weight:900; margin-bottom:4px; }
.wm .wm-reading__item p{ font-size:15px; line-height:1.65; color:var(--wm-ground-muted); }
.wm .wm-reading__item .wm-circled{ display:inline-block; position:relative; padding:0 6px; }
.wm .wm-reading__item .wm-circled::after{ content:""; position:absolute; inset:-30% -14%; background:var(--wm-deco-circle) center/100% 100% no-repeat; pointer-events:none; }

/* ---------- 12. 証言の食い違い ---------- */
.wm .wm-conflict{ display:grid; grid-template-columns:1fr 38px 1fr; gap:14px; align-items:stretch; }
.wm .wm-conflict__a, .wm .wm-conflict__b{ background:var(--wm-panel); color:var(--wm-panel-ink); border:1px solid var(--wm-rule); border-left:5px solid var(--wm-accent); padding:18px 20px; }
.wm .wm-conflict__b{ border-left-color:var(--wm-gray-2); }
.wm .wm-conflict h4{ font-family:var(--wm-font-body); font-size:18px; font-weight:900; margin-bottom:8px; }
.wm .wm-conflict blockquote{ margin:0; padding:0; border:0; font-family:var(--wm-font-serif); font-size:18px; line-height:1.8; }
.wm .wm-conflict cite{ display:block; font-style:normal; font-size:15px; color:var(--wm-ground-muted); margin-top:8px; }
.wm .wm-conflict__vs{ display:grid; place-items:center; font-family:var(--wm-font-num); font-size:26px; color:var(--wm-accent); }
.wm .wm-conflict__note{ grid-column:1 / -1; font-size:17px; line-height:1.8; padding:10px 0 0 26px; position:relative; }
.wm .wm-conflict__note::before{ content:"→"; position:absolute; left:0; top:10px; color:var(--wm-accent); font-weight:900; }

/* ---------- 13. 数値・鑑定結果 ---------- */
.wm .wm-stats{ display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:clamp(14px,1.6vw,24px); }
.wm .wm-stats--4{ grid-template-columns:repeat(4,minmax(0,1fr)); }
.wm .wm-stat{ text-align:left; padding:6px 0; }
.wm .wm-stat .wm-en{ display:block; margin-bottom:4px; }
.wm .wm-stat__value{ font-family:var(--wm-font-num); font-size:clamp(44px,4.6vw,68px); line-height:1; color:var(--wm-ground-ink); display:block; }
.wm .wm-stat__value .wm-unit, .wm .wm-clock__tick .wm-num .wm-unit{ font-family:var(--wm-font-body); font-size:17px; font-weight:700; margin-left:6px; color:var(--wm-ground-muted); }
.wm .wm-stat__note{ font-size:15px; color:var(--wm-ground-muted); line-height:1.6; margin-top:6px; display:block; }
.wm .wm-stat--ring{ display:grid; place-items:center; text-align:center; width:150px; height:150px; border-radius:50%; border:2px solid var(--wm-accent); box-shadow:inset 0 0 0 6px var(--wm-ground), inset 0 0 0 7px var(--wm-rule); margin:0 auto; padding:0; }
.wm .wm-stat--ring .wm-stat__value{ font-size:40px; }
.wm .wm-stat--accent .wm-stat__value{ color:var(--wm-accent); }
/* 鑑定表（左ラベル・右値） */
.wm .wm-spec{ margin:0; display:grid; grid-template-columns:auto 1fr; gap:0; border:1px solid var(--wm-rule); background:var(--wm-panel); color:var(--wm-panel-ink); }
.wm .wm-spec dt, .wm .wm-spec dd{ padding:10px 16px; border-top:1px solid var(--wm-rule); margin:0; font-size:16px; line-height:1.6; }
.wm .wm-spec dt:first-of-type, .wm .wm-spec dd:first-of-type{ border-top:0; }
.wm .wm-spec dt{ font-weight:900; color:var(--wm-ground-muted); letter-spacing:.04em; white-space:nowrap; font-size:15px; }
.wm .wm-spec dd{ font-family:var(--wm-font-mono); }

/* ---------- 14. 確認済み／当時報道／噂・異説 ---------- */
.wm .wm-tag{ display:inline-flex; align-items:center; gap:6px; font-size:15px; font-weight:900; letter-spacing:.08em; line-height:1.4; padding:4px 10px; border:1px solid currentColor; border-radius:2px; vertical-align:middle; }
.wm .wm-tag::before{ content:""; width:8px; height:8px; border-radius:50%; background:currentColor; }
.wm .wm-tag--confirmed{ color:#1d6b4f; background:rgba(29,107,79,.1); }
.wm .wm-tag--reported{ color:#8a5a12; background:rgba(138,90,18,.1); }
.wm .wm-tag--rumor{ color:var(--wm-red); background:rgba(178,41,45,.08); }
.wm .wm-tag--unknown{ color:var(--wm-muted); background:rgba(0,0,0,.05); }
.wm [data-type="observe"] .wm-tag--confirmed, .wm .wm-panel--dark .wm-tag--confirmed{ color:#7fd3af; }
.wm[data-type="observe"] .wm-tag--confirmed{ color:#7fd3af; } .wm[data-type="observe"] .wm-tag--reported{ color:#e6b45e; } .wm[data-type="observe"] .wm-tag--rumor{ color:#f08a8d; } .wm[data-type="observe"] .wm-tag--unknown{ color:var(--wm-light-2); }
.wm .wm-claim{ display:grid; grid-template-columns:auto 1fr; gap:14px; align-items:start; padding:12px 0; border-top:1px solid var(--wm-rule); font-size:18px; line-height:1.8; }
.wm .wm-claim:last-child{ border-bottom:1px solid var(--wm-rule); }
.wm .wm-claim .wm-tag{ margin-top:6px; }

/* ---------- 15. 未解決の問い ---------- */
.wm .wm-question{ background:var(--wm-slate); color:var(--wm-light); padding:clamp(28px,3.4vw,50px) clamp(20px,3vw,44px); position:relative; overflow:hidden; background-image:linear-gradient(rgba(38,44,52,.85),rgba(38,44,52,.85)),var(--wm-tex-cloth); background-size:auto,800px; }
.wm .wm-question .wm-head{ border-left-color:var(--wm-accent); }
.wm .wm-question .wm-head h2, .wm .wm-question .wm-head h3{ color:#fff; }
.wm .wm-question .wm-en{ color:var(--wm-light-2); }
.wm .wm-question__list{ display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:clamp(18px,2.4vw,36px); margin:0; padding:0; list-style:none; }
.wm .wm-question__item{ margin:0; padding-left:70px; position:relative; }
.wm .wm-question__num{ position:absolute; left:0; top:0; width:54px; height:54px; border-radius:50%; border:2px solid var(--wm-red); color:#fff; font-family:var(--wm-font-num); font-size:26px; display:grid; place-items:center; transform:rotate(-6deg); }
.wm .wm-question__item h4{ font-size:21px; line-height:1.4; color:#fff; margin-bottom:8px; }
.wm .wm-question__item p{ font-size:18px; line-height:1.75; color:var(--wm-light-2); }
.wm .wm-question__tail{ position:absolute; right:clamp(16px,3vw,44px); top:18px; font-family:var(--wm-font-serif); font-style:italic; font-size:16px; color:var(--wm-red); letter-spacing:.06em; }

/* ---------- 16. 考察メモ・章末「ここが変だ」 ---------- */
.wm .wm-note{ background:var(--wm-black); color:var(--wm-light); display:grid; grid-template-columns:200px 1fr auto; gap:clamp(18px,3vw,50px); align-items:center; padding:clamp(22px,2.6vw,36px) clamp(20px,3vw,44px); }
.wm .wm-note__label h3{ font-size:22px; color:#fff; }
.wm .wm-note__label .wm-en{ display:block; color:var(--wm-light-2); margin-top:4px; }
.wm .wm-note p{ font-size:18px; line-height:1.85; color:var(--wm-light); }
.wm .wm-note__sig{ font-family:var(--wm-font-mono); font-size:15px; letter-spacing:.14em; color:var(--wm-light-2); text-align:right; line-height:1.9; white-space:nowrap; }
.wm .wm-odd{ max-width:var(--wm-text); margin:28px auto 0; padding:14px 18px 14px 20px; border-left:5px solid var(--wm-red); background:var(--wm-accent-soft); font-size:19px; line-height:1.8; font-weight:700; color:var(--wm-ground-ink); }
.wm .wm-odd::before{ content:"ここが変だ"; display:block; font-size:15px; letter-spacing:.2em; color:var(--wm-red); margin-bottom:4px; font-weight:900; }

/* ---------- 17. 引用・証言メモ・豆知識 ---------- */
.wm .wm-quote{ position:relative; background:var(--wm-paper-3); color:var(--wm-ink); background-image:linear-gradient(rgba(247,241,228,.85),rgba(247,241,228,.85)),var(--wm-tex-paper-warm); background-size:auto,600px; padding:clamp(22px,2.6vw,36px) clamp(22px,3vw,40px); box-shadow:var(--wm-shadow); transform:rotate(-.8deg); margin:clamp(30px,4vw,56px) auto; max-width:var(--wm-text); }
.wm .wm-quote::before{ content:""; position:absolute; top:-18px; right:34px; width:130px; height:40px; background:var(--wm-deco-tape2) center/contain no-repeat; transform:rotate(4deg); }
.wm .wm-quote blockquote{ margin:0; padding:0; border:0; font-family:var(--wm-font-serif); font-size:clamp(20px,1.8vw,26px); line-height:1.8; font-weight:600; }
.wm .wm-quote cite{ display:block; font-style:normal; font-size:15px; color:var(--wm-muted); margin-top:12px; letter-spacing:.1em; }
.wm .wm-quote--dark{ background:var(--wm-slate); color:var(--wm-light); background-image:none; transform:none; }
.wm .wm-quote--dark::before{ content:none; }
.wm .wm-quote--dark cite{ color:var(--wm-light-2); }
.wm .wm-pull{ max-width:var(--wm-text); margin:clamp(30px,4vw,56px) auto; padding:8px 0 8px 26px; border-left:6px solid var(--wm-accent); font-family:var(--wm-font-serif); font-size:clamp(22px,2.2vw,30px); line-height:1.7; font-weight:700; }
.wm .wm-memo{ background:var(--wm-panel); color:var(--wm-panel-ink); border:1px dashed var(--wm-gray-2); padding:16px 18px 16px 18px; font-size:16px; line-height:1.75; position:relative; max-width:var(--wm-text); margin:24px auto; }
.wm .wm-memo::before{ content:"MEMO"; position:absolute; top:-11px; left:14px; font-family:var(--wm-font-mono); font-size:15px; font-weight:700; letter-spacing:.2em; background:var(--wm-accent); color:var(--wm-accent-ink); padding:1px 10px; }
.wm .wm-callout{ max-width:var(--wm-text); margin:clamp(24px,3vw,40px) auto; background:var(--wm-slate); color:var(--wm-light); padding:22px 26px; border-left:6px solid var(--wm-accent); font-size:18px; line-height:1.85; }
.wm .wm-callout strong{ color:#fff; }
.wm .wm-callout .wm-en{ display:block; color:var(--wm-light-2); margin-bottom:6px; }

/* ---------- 18. 説の対決・データテーブル ---------- */
.wm .wm-table-wrap{ max-width:var(--wm-text); margin:24px auto; overflow-x:auto; border:1px solid var(--wm-rule); background:var(--wm-panel); color:var(--wm-panel-ink); }
.wm .wm-table-wrap--wide{ max-width:none; width:var(--wm-wrap); }
.wm table.wm-table{ width:100%; border-collapse:collapse; min-width:560px; margin:0; }
.wm table.wm-table th{ background:var(--wm-slate); color:var(--wm-light); font-size:16px; font-weight:700; text-align:left; padding:12px 14px; border:0; }
.wm table.wm-table td{ font-size:16px; line-height:1.6; padding:12px 14px; border:0; border-top:1px solid var(--wm-rule); vertical-align:top; }
.wm table.wm-table tr:nth-child(even) td{ background:rgba(0,0,0,.03); }
.wm .wm-versus td.ok{ color:#1d6b4f; font-weight:900; text-align:center; font-size:20px; }
.wm .wm-versus td.ng{ color:var(--wm-red); font-weight:900; text-align:center; font-size:20px; }
.wm .wm-versus td.so{ color:#8a5a12; font-weight:900; text-align:center; font-size:20px; }
.wm .wm-versus th:not(:first-child), .wm .wm-versus td:not(:first-child){ text-align:center; }

/* ---------- 19. 関連記事・出典 ---------- */
.wm .wm-related{ display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:clamp(12px,1.4vw,20px); }
.wm .wm-related--list{ grid-template-columns:1fr; gap:10px; }
.wm .wm-related a{ display:grid; grid-template-columns:120px 1fr; gap:14px; align-items:center; text-decoration:none; color:var(--wm-panel-ink); background:var(--wm-panel); border:1px solid var(--wm-rule); padding:10px; transition:transform .2s; }
.wm .wm-related img{ width:120px; height:80px; object-fit:cover; filter:saturate(.8); }
.wm .wm-related .wm-related__no{ font-family:var(--wm-font-mono); font-size:15px; color:var(--wm-ground-muted); display:block; }
.wm .wm-related strong{ font-size:17px; line-height:1.45; display:block; font-family:var(--wm-font-head); }
.wm .wm-related span.wm-related__sub{ font-size:15px; color:var(--wm-ground-muted); display:block; margin-top:2px; }
.wm .wm-sources{ max-width:var(--wm-text); margin:clamp(40px,5vw,72px) auto 0; padding-top:26px; border-top:3px solid var(--wm-ground-ink); }

.wm .wm-sources ol{ margin:0; padding-left:1.4em; }
.wm .wm-sources li{ font-size:16px; line-height:1.75; color:var(--wm-ground-muted); margin-bottom:.5em; }
.wm .wm-sources a{ word-break:break-all; }
.wm .wm-credits{ font-size:15px; color:var(--wm-ground-muted); line-height:1.7; max-width:var(--wm-text); margin:20px auto 0; }

/* ---------- 20. 装飾（意味で呼ぶ） ---------- */
.wm .wm-deco{ position:absolute; pointer-events:none; background-repeat:no-repeat; background-size:contain; background-position:center; z-index:3; }
.wm .wm-deco--tape{ width:150px; height:44px; background-image:var(--wm-deco-tape); }
.wm .wm-deco--pin{ width:34px; height:34px; background-image:var(--wm-deco-pin); }
.wm .wm-deco--clip{ width:40px; height:90px; background-image:var(--wm-deco-clip); }
.wm .wm-deco--circle{ width:90px; height:90px; background-image:var(--wm-deco-circle); }
.wm .wm-deco--question{ width:60px; height:80px; background-image:var(--wm-deco-question); }
.wm .wm-deco--arrow{ width:120px; height:60px; background-image:var(--wm-deco-arrow); }
.wm .wm-deco--stamp{ width:110px; height:110px; background-image:var(--wm-deco-stamp); opacity:.85; }
.wm .wm-deco--coffee{ width:160px; height:160px; background-image:var(--wm-deco-coffee); opacity:.7; z-index:0; }
.wm .wm-deco--compass{ width:120px; height:120px; background-image:var(--wm-deco-compass); }
.wm .wm-deco--fingerprint{ width:90px; height:110px; background-image:var(--wm-deco-fingerprint); opacity:.6; }
.wm .wm-deco--string{ width:100%; height:100%; background-image:var(--wm-deco-string); background-size:cover; opacity:.8; }
.wm .wm-deco.tl{ top:-14px; left:-14px; } .wm .wm-deco.tr{ top:-14px; right:-14px; } .wm .wm-deco.bl{ bottom:-14px; left:-14px; } .wm .wm-deco.br{ bottom:-14px; right:-14px; }
.wm .wm-deco.tc{ top:-16px; left:50%; transform:translateX(-50%) rotate(-3deg); }
.wm .wm-underline{ background:var(--wm-deco-underline) center bottom/100% 14px no-repeat; padding-bottom:8px; }
.wm .wm-circle-word{ position:relative; display:inline-block; padding:0 .2em; }
.wm .wm-circle-word::after{ content:""; position:absolute; inset:-35% -18%; background:var(--wm-deco-circle) center/100% 100% no-repeat; pointer-events:none; }
.wm .wm-redacted{ background:var(--wm-ink); color:transparent; padding:0 .4em; border-radius:2px; user-select:none; }
.wm .wm-waveform{ height:40px; background:repeating-linear-gradient(90deg, var(--wm-ground-muted) 0 2px, transparent 2px 5px); mask-image:linear-gradient(90deg, transparent, #000 20%, #000 80%, transparent); -webkit-mask-image:linear-gradient(90deg, transparent, #000 20%, #000 80%, transparent); opacity:.5; }


/* 部品をボード内（幅100%）で使う修飾 */
.wm .wm-photo-pair--in, .wm .wm-photo-grid--in, .wm .wm-figure--in{ width:100%; margin-top:0; margin-bottom:18px; }
.wm .wm-clock--2{ grid-template-columns:repeat(2,minmax(0,1fr)); }
.wm .wm-reading--3{ grid-template-columns:repeat(3,minmax(0,1fr)); }
.wm .wm-question__list--1{ grid-template-columns:1fr; }
.wm .wm-table-wrap--in{ max-width:none; margin:0; }
.wm .wm-hero .wm-glow{ right:8%; top:12%; z-index:1; }
.wm .wm-hero__aside .wm-stats{ grid-template-columns:1fr 1fr; gap:14px; }
.wm .wm-hero__aside .wm-stat--ring{ grid-row:span 2; }
.wm .wm-hero__aside .wm-stat__value{ font-size:40px; color:#fff; }
.wm .wm-hero__aside .wm-en{ color:var(--wm-light-2); }
.wm .wm-hero__aside .wm-related a{ background:rgba(255,255,255,.06); color:#fff; border-color:rgba(255,255,255,.12); }
.wm .wm-hero__aside .wm-related .wm-related__sub{ color:var(--wm-light-2); }
.wm .wm-hero__aside .wm-head{ margin-bottom:10px; }
.wm .wm-hero__aside h3.wm-en{ color:var(--wm-light-2); font-family:var(--wm-font-body); }
.wm .wm-photo-grid figcaption strong{ color:var(--wm-ground-ink); font-size:17px; }

/* ---------- 21. 型ごとの見せ方の差 ---------- */
/* 捜査ファイル：赤鉛筆・テープ・モノスペース */
.wm[data-type="casefile"] .wm-head{ border-left:0; padding-left:0; }
.wm[data-type="casefile"] .wm-head h2::after{ content:none; }
.wm[data-type="casefile"] .wm-head h2{ padding-bottom:6px !important; background:var(--wm-deco-underline) left bottom/100% 12px no-repeat !important; }
.wm[data-type="casefile"] .wm-timeline__time{ font-family:var(--wm-font-mono); font-size:20px; color:var(--wm-ink); }
.wm[data-type="casefile"] .wm-hero__no{ color:var(--wm-accent-ink); background:var(--wm-accent); padding:3px 10px; }
.wm[data-type="casefile"] .wm-evidence__item{ background:var(--wm-paper-3); }
.wm[data-type="casefile"] .wm-person__card{ border-top:4px solid var(--wm-ink); }
/* 発掘：土色の連番と横帯 */
.wm[data-type="dig"] .wm-head{ border-left:0; padding-left:0; border-bottom:1px solid var(--wm-rule); padding-bottom:8px; }
.wm[data-type="dig"] .wm-head .wm-num{ font-size:52px; line-height:1; color:var(--wm-gray-2); margin-left:auto; }
.wm[data-type="dig"] .wm-timeline__item{ grid-template-columns:170px 1fr; }
.wm[data-type="dig"] .wm-timeline__time{ font-family:var(--wm-font-head); font-size:19px; color:var(--wm-ink); }
.wm[data-type="dig"] .wm-evidence__item{ background:var(--wm-slate); color:var(--wm-light); border-color:transparent; }
.wm[data-type="dig"] .wm-evidence__item p{ color:var(--wm-light-2); }
/* 観測ログ：発光する数字・罫線グリッド */
.wm[data-type="observe"] .wm-head{ border-left-color:var(--wm-light); }
.wm[data-type="observe"] .wm-hero__aside{ background:rgba(22,26,32,.85); }
.wm[data-type="observe"] .wm-timeline__time, .wm[data-type="observe"] .wm-clock__tick .wm-num, .wm[data-type="observe"] .wm-stat__value{ color:var(--wm-accent); text-shadow:0 0 18px var(--wm-accent-soft), 0 0 2px var(--wm-accent); }
.wm[data-type="observe"] .wm-panel{ background-image:linear-gradient(rgba(255,255,255,.03) 1px, transparent 1px), linear-gradient(90deg, rgba(255,255,255,.03) 1px, transparent 1px); background-size:24px 24px; }
.wm[data-type="observe"] .wm-q{ border-top-color:var(--wm-accent); }
.wm[data-type="observe"] .wm-q p, .wm[data-type="observe"] .wm-evidence__item p, .wm[data-type="observe"] .wm-person__card p{ color:var(--wm-light-2); }
.wm[data-type="observe"] .wm-stat--ring{ box-shadow:inset 0 0 0 6px var(--wm-ground), inset 0 0 0 7px var(--wm-rule), 0 0 30px var(--wm-accent-soft); }
.wm[data-type="observe"] table.wm-table tr:nth-child(even) td{ background:rgba(255,255,255,.04); }
.wm[data-type="observe"] .wm-document__lines li:nth-child(even){ background:rgba(255,255,255,.04); }
.wm[data-type="observe"] .wm-related a{ color:var(--wm-light); }
.wm[data-type="observe"] .wm-spec dd{ color:var(--wm-light); }
/* 古文書：冷たい灰と細い罫 */
.wm[data-type="document"] .wm-head{ border-left:0; padding-left:0; }
.wm[data-type="document"] .wm-head h2{ font-size:clamp(26px,2.4vw,34px); }
.wm[data-type="document"] .wm-q{ border-top:1px solid var(--wm-rule); border-bottom:4px solid var(--wm-accent); }
.wm[data-type="document"] .wm-timeline__time{ font-family:var(--wm-font-mono); font-size:19px; color:var(--wm-ink); }
/* 旅：番号｜見出し、縦罫 */
.wm[data-type="travel"] .wm-head{ border-left:0; padding-left:0; }
.wm[data-type="travel"] .wm-head .wm-num{ font-family:var(--wm-font-body); font-weight:900; font-size:20px; letter-spacing:.06em; color:var(--wm-ground-ink); padding-right:14px; border-right:1px solid var(--wm-ground-ink); }
.wm[data-type="travel"] .wm-timeline__time{ font-family:var(--wm-font-body); font-weight:900; font-size:19px; color:var(--wm-ink); }
.wm[data-type="travel"] .wm-route li::before{ border-radius:3px; background:var(--wm-ink); color:#fff; }

/* ---------- 22. 効果（opacityはkeyframes内のみ） ---------- */
@keyframes wm-breathe{ 0%{ opacity:.55; transform:scale(1);} 50%{ opacity:1; transform:scale(1.04);} 100%{ opacity:.55; transform:scale(1);} }
.wm .wm-glow{ position:absolute; width:clamp(160px,26vw,420px); aspect-ratio:1; border-radius:50%; background:radial-gradient(circle, var(--wm-accent) 0%, transparent 60%); filter:blur(30px); animation:wm-breathe 6s ease-in-out infinite; pointer-events:none; z-index:0; mix-blend-mode:screen; }
@keyframes wm-scan{ from{ transform:translateY(-100%);} to{ transform:translateY(100vh);} }

/* ---------- 23. スマホ（畳み方は部品ごとに固定） ---------- */
@media (max-width:1024px){
  .wm .wm-mystery-grid{ grid-template-columns:repeat(3,minmax(0,1fr)); }
  .wm .wm-span-3, .wm .wm-span-4, .wm .wm-span-5{ grid-column:span 6; }
  .wm .wm-clock, .wm .wm-reading, .wm .wm-stats--4{ grid-template-columns:repeat(2,minmax(0,1fr)); }
  .wm .wm-photo-grid--4{ grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media (max-width:820px){
  .wm{ font-size:18px; }
  .wm p, .wm li, .wm .wm-prose p{ font-size:18px; }
  .wm .wm-wrap{ width:min(100% - 32px, 100%); }
  .wm .wm-wide{ width:min(100% - 24px, 100%); }
  .wm .wm-section{ padding:32px 0; }
  .wm .wm-board{ grid-template-columns:minmax(0,1fr); gap:18px; }
  .wm .wm-board > *{ grid-column:1 / -1 !important; }
  .wm .wm-hero{ grid-template-columns:1fr; min-height:0; }
  .wm .wm-hero__media{ position:relative; height:58vw; min-height:240px; }
  .wm .wm-hero__media::after{ background:linear-gradient(0deg, var(--wm-black) 0%, rgba(20,23,28,.1) 60%); }
  .wm .wm-hero--paper .wm-hero__media::after{ background:linear-gradient(0deg, var(--wm-paper) 0%, rgba(239,230,210,.1) 60%); }
  .wm .wm-hero__body{ padding:0 18px 26px; margin-top:-60px; }
  .wm .wm-hero h1{ font-size:clamp(30px,8vw,40px); max-width:none; }
  .wm .wm-hero__vert{ display:none; }
  .wm .wm-hero__aside{ border-left:0; border-top:1px solid rgba(255,255,255,.12); padding:22px 18px; }
  .wm .wm-hero__credit{ position:static; display:block; padding:0 18px 12px; }
  .wm .wm-mystery-grid{ grid-template-columns:1fr; }
  .wm .wm-q{ display:grid; grid-template-columns:56px 1fr; gap:4px 12px; padding:16px; }
  .wm .wm-q__num{ grid-row:span 2; font-size:38px; margin:0; }
  .wm .wm-q h3{ font-size:20px; }
  .wm .wm-data{ grid-template-columns:repeat(2,minmax(0,1fr)); }
  .wm .wm-data > div{ border-left:0; border-top:1px solid var(--wm-rule); }
  .wm .wm-data > div:nth-child(2n){ border-left:1px solid var(--wm-rule); }
  .wm .wm-data > div:nth-child(-n+2){ border-top:0; }
  .wm .wm-photo-pair, .wm .wm-photo-grid, .wm .wm-photo-grid--4{ grid-template-columns:1fr; gap:14px; }
  .wm .wm-photo-break{ min-height:0; margin:32px 0; }
  .wm .wm-photo-break img{ position:relative; height:56vw; }
  .wm .wm-photo-break__body{ width:100%; padding:20px 18px 26px; margin-top:-40px; }
  .wm .wm-photo-taped{ transform:none; }
  .wm .wm-evidence, .wm .wm-evidence--2, .wm .wm-evidence--4, .wm .wm-person, .wm .wm-person--2, .wm .wm-reading--3, .wm .wm-clock--2, .wm .wm-clock, .wm .wm-reading, .wm .wm-stats, .wm .wm-stats--4, .wm .wm-related{ grid-template-columns:1fr; }
  .wm .wm-timeline__item{ grid-template-columns:1fr; gap:4px; }
  .wm[data-type="dig"] .wm-timeline__item{ grid-template-columns:1fr; }
  .wm .wm-timeline--dots .wm-timeline__item{ grid-template-columns:22px 1fr; }
  .wm .wm-timeline--dots .wm-timeline__item::before{ grid-column:1; }
  .wm .wm-timeline--dots .wm-timeline__item::after{ left:5px; }
  .wm .wm-timeline--dots .wm-timeline__time{ grid-column:2; }
  .wm .wm-timeline--dots .wm-timeline__body{ grid-column:2; }
  .wm .wm-location{ grid-template-columns:1fr; }
  .wm .wm-location__map img{ aspect-ratio:1/1; }
  .wm .wm-document{ grid-template-columns:1fr; }
  .wm .wm-conflict{ grid-template-columns:1fr; }
  .wm .wm-conflict__vs{ padding:4px 0; }
  .wm .wm-conflict__note{ padding-left:26px; }
  .wm .wm-question__list{ grid-template-columns:1fr; }
  .wm .wm-question__tail{ position:static; display:block; margin-bottom:12px; }
  .wm .wm-note{ grid-template-columns:1fr; gap:12px; }
  .wm .wm-note__sig{ text-align:left; white-space:normal; }
  .wm .wm-quote{ transform:none; }
  .wm .wm-stat__value{ font-size:44px; }
  .wm .wm-stat--ring{ width:130px; height:130px; }
  .wm .wm-pin-note{ transform:none; }
  .wm .wm-spec{ grid-template-columns:1fr; }
  .wm .wm-spec dt{ border-top:1px solid var(--wm-rule); padding-bottom:0; }
  .wm .wm-spec dd{ border-top:0; padding-top:4px; }
  .wm .wm-spec dt:first-of-type{ border-top:0; }
  .wm .wm-glow{ display:none; }
}

/* ============================================================
   24. v1.1 編集誌面レイヤー
   「部品」だけでなく、章全体の構図と記事終盤までのリズムを作る。
   既存v1部品はそのまま利用する。
   ============================================================ */

/* ---------- 24-1. 章全体の空気を切り替える wm-scene ---------- */
.wm .wm-scene{
  position:relative;
  overflow:hidden;
  padding:clamp(46px,6vw,96px) 0;
  isolation:isolate;
}
.wm .wm-scene > .wm-wrap,
.wm .wm-scene > .wm-wide,
.wm .wm-scene > .wm-prose,
.wm .wm-scene__body{ position:relative; z-index:2; }
.wm .wm-scene__media{ position:absolute; inset:0; z-index:0; }
.wm .wm-scene__media img{ width:100%; height:100%; object-fit:cover; }
.wm .wm-scene__media::after{ content:""; position:absolute; inset:0; pointer-events:none; }

.wm .wm-scene--paper{
  color:var(--wm-ink);
  background-color:var(--wm-paper);
  background-image:linear-gradient(rgba(239,230,210,.9),rgba(239,230,210,.9)),var(--wm-tex-paper-warm);
  background-size:auto,900px;
}
.wm .wm-scene--cold{
  color:var(--wm-ink);
  background-color:#e4e2dc;
  background-image:linear-gradient(rgba(228,226,220,.91),rgba(228,226,220,.91)),var(--wm-tex-paper-cold);
  background-size:auto,900px;
}
.wm .wm-scene--dark{
  color:var(--wm-light);
  --wm-ground-ink:var(--wm-light);
  --wm-ground-ink-2:#d9d4c9;
  --wm-ground-muted:#aaa59a;
  --wm-panel:#222a33;
  --wm-panel-ink:var(--wm-light);
  --wm-rule:rgba(255,255,255,.15);
  background-color:var(--wm-night);
  background-image:linear-gradient(rgba(21,27,34,.9),rgba(21,27,34,.9)),var(--wm-tex-cloth);
  background-size:auto,900px;
}
.wm .wm-scene--rust{
  color:#f2eadf;
  --wm-ground-ink:#f2eadf;
  --wm-ground-ink-2:#dfd3c5;
  --wm-ground-muted:#b9aa9a;
  --wm-panel:#342820;
  --wm-panel-ink:#f2eadf;
  --wm-rule:rgba(255,255,255,.14);
  background:
    linear-gradient(rgba(55,38,29,.9),rgba(55,38,29,.9)),
    var(--wm-tex-stone);
  background-size:auto,1000px;
}
.wm .wm-scene--blueprint{
  color:#edf1f2;
  --wm-ground-ink:#edf1f2;
  --wm-ground-ink-2:#d6dfe1;
  --wm-ground-muted:#aab8bc;
  --wm-panel:#1c2830;
  --wm-panel-ink:#edf1f2;
  --wm-rule:rgba(255,255,255,.14);
  background:
    linear-gradient(rgba(18,31,39,.90),rgba(18,31,39,.90)),
    var(--wm-tex-blueprint);
  background-size:auto,1000px;
}
.wm .wm-scene--photo{ color:#fff; min-height:clamp(520px,62vw,820px); display:flex; align-items:flex-end; }
.wm .wm-scene--photo .wm-scene__media::after{
  background:linear-gradient(0deg,rgba(10,12,15,.92) 0%,rgba(10,12,15,.48) 42%,rgba(10,12,15,.1) 80%);
}
.wm .wm-scene--photo .wm-scene__body{
  width:var(--wm-wrap);
  margin:0 auto;
  padding-bottom:clamp(10px,2vw,28px);
}
.wm .wm-scene--photo h2{ color:#fff !important; font-size:clamp(36px,4.8vw,70px); max-width:18ch; text-shadow:0 2px 26px rgba(0,0,0,.58); }
.wm .wm-scene--photo p{ color:#eee9df; max-width:720px; font-family:var(--wm-font-serif); font-size:clamp(18px,1.55vw,22px); line-height:1.9; margin-top:14px; }

/* ---------- 24-2. 密度の波 ---------- */
.wm .wm-section--airy{ padding:var(--wm-airy-y) 0; }
.wm .wm-section--dense{ padding:var(--wm-dense-y) 0; }
.wm .wm-section--airy .wm-prose{ max-width:900px; }
.wm .wm-section--airy .wm-figure{ margin-top:clamp(44px,6vw,86px); margin-bottom:clamp(44px,6vw,86px); }

/* ---------- 24-3. 非対称の編集見開き ---------- */
.wm .wm-editorial-split{
  display:grid;
  grid-template-columns:repeat(12,minmax(0,1fr));
  gap:var(--wm-editorial-gap);
  align-items:center;
}
.wm .wm-editorial-split__media,
.wm .wm-editorial-split__body{ min-width:0; }
.wm .wm-editorial-split__media{ grid-column:span 7; }
.wm .wm-editorial-split__body{ grid-column:span 5; }
.wm .wm-editorial-split--8-4 .wm-editorial-split__media{ grid-column:span 8; }
.wm .wm-editorial-split--8-4 .wm-editorial-split__body{ grid-column:span 4; }
.wm .wm-editorial-split--5-7 .wm-editorial-split__media{ grid-column:span 5; order:2; }
.wm .wm-editorial-split--5-7 .wm-editorial-split__body{ grid-column:span 7; order:1; }
.wm .wm-editorial-split--4-8 .wm-editorial-split__media{ grid-column:span 4; order:2; }
.wm .wm-editorial-split--4-8 .wm-editorial-split__body{ grid-column:span 8; order:1; }
.wm .wm-editorial-split__media img{
  width:100%; min-height:360px; max-height:720px; object-fit:cover;
  box-shadow:var(--wm-shadow); border:1px solid var(--wm-rule);
}
.wm .wm-editorial-split__body .wm-head{ margin-bottom:18px; }

/* ---------- 24-4. コラージュ ---------- */
.wm .wm-collage{
  display:grid;
  grid-template-columns:repeat(12,minmax(0,1fr));
  grid-template-rows:auto auto;
  gap:clamp(10px,1.3vw,20px);
  align-items:start;
  position:relative;
}
.wm .wm-collage figure{
  background:#f7f3e9;
  color:var(--wm-ink);
  padding:10px 10px 14px;
  box-shadow:var(--wm-shadow);
  position:relative;
  z-index:1;
}
.wm .wm-collage figure img{ width:100%; aspect-ratio:4/3; object-fit:cover; }
.wm .wm-collage figcaption{ color:var(--wm-ink-2) !important; font-family:var(--wm-font-mono); }
.wm .wm-collage__item--1{ grid-column:1 / span 7; grid-row:1 / span 2; transform:rotate(-1.2deg); }
.wm .wm-collage__item--2{ grid-column:8 / span 5; grid-row:1; transform:translateY(24px) rotate(1.5deg); }
.wm .wm-collage__item--3{ grid-column:7 / span 5; grid-row:2; transform:translate(16px,-8px) rotate(-.8deg); z-index:2; }
.wm .wm-collage__item--4{ grid-column:2 / span 4; grid-row:2; transform:translateY(24px) rotate(1deg); z-index:3; }
.wm .wm-collage--quiet figure{ transform:none !important; box-shadow:var(--wm-shadow-sm); }

/* ---------- 24-5. 巨大数字 ---------- */
.wm .wm-big-number{
  display:block;
  font-family:var(--wm-font-num);
  font-size:clamp(86px,12vw,190px);
  line-height:.78;
  letter-spacing:.02em;
  color:var(--wm-accent);
  opacity:.16;
  pointer-events:none;
  user-select:none;
  margin:0 0 -0.08em;
}
.wm .wm-big-number--right{ text-align:right; }
.wm .wm-big-number--solid{ opacity:1; color:var(--wm-accent); }

/* ---------- 24-6. ヒーロー拡張 ---------- */
.wm .wm-hero--poster{
  grid-template-columns:1fr;
  min-height:clamp(620px,70vw,900px);
}
.wm .wm-hero--poster .wm-hero__body{
  width:var(--wm-wrap); margin:0 auto;
  justify-content:flex-end;
  padding-left:0; padding-right:0;
}
.wm .wm-hero--poster h1{ max-width:15ch; font-size:clamp(42px,6vw,86px); }
.wm .wm-hero--poster .wm-hero__media::after{
  background:linear-gradient(0deg,rgba(14,16,19,.92) 0%,rgba(14,16,19,.42) 44%,rgba(14,16,19,.08) 76%);
}
.wm .wm-hero--poster .wm-hero__aside{ display:none; }

.wm .wm-hero--archive{
  grid-template-columns:1fr;
  min-height:clamp(540px,58vw,760px);
  color:var(--wm-ink);
  background:var(--wm-paper);
  background-image:linear-gradient(rgba(239,230,210,.90),rgba(239,230,210,.90)),var(--wm-tex-paper-warm);
  background-size:auto,900px;
}
.wm .wm-hero--archive .wm-hero__media{ inset:clamp(22px,3vw,44px) clamp(26px,4vw,62px) clamp(22px,3vw,44px) 52%; box-shadow:var(--wm-shadow); }
.wm .wm-hero--archive .wm-hero__media::after{ background:linear-gradient(90deg,rgba(20,23,28,.15),rgba(20,23,28,.0)); }
.wm .wm-hero--archive .wm-hero__body{ width:52%; color:var(--wm-ink); }
.wm .wm-hero--archive h1{ color:var(--wm-ink) !important; text-shadow:none; }
.wm .wm-hero--archive .wm-hero__lead,
.wm .wm-hero--archive .wm-hero__eyebrow{ color:var(--wm-ink-2); }
.wm .wm-hero--archive .wm-hero__tags span{ color:var(--wm-ink); border-color:var(--wm-line); background:rgba(255,255,255,.45); }
.wm .wm-hero--archive .wm-hero__aside{ display:none; }

.wm .wm-hero--collage{ grid-template-columns:1fr; min-height:clamp(620px,66vw,860px); }
.wm .wm-hero--collage .wm-hero__body{ width:min(760px,60vw); }
.wm .wm-hero--collage .wm-hero__aside{ display:none; }

/* ---------- 24-7. 捜査ボード ---------- */
.wm .wm-evidence-board{
  display:grid;
  grid-template-columns:repeat(12,minmax(0,1fr));
  gap:clamp(12px,1.6vw,24px);
  padding:clamp(24px,3vw,46px);
  background:
    linear-gradient(rgba(24,24,22,.92),rgba(24,24,22,.92)),
    var(--wm-tex-lead);
  background-size:auto,1000px;
  box-shadow:var(--wm-shadow);
  position:relative;
  overflow:hidden;
}
.wm .wm-evidence-board__item{
  background:#f4eedf;
  color:var(--wm-ink);
  padding:10px 10px 14px;
  box-shadow:0 10px 28px rgba(0,0,0,.3);
  min-width:0;
  position:relative;
}
.wm .wm-evidence-board__item img{ width:100%; aspect-ratio:4/3; object-fit:cover; }
.wm .wm-evidence-board__item h4{ color:var(--wm-ink) !important; font-size:18px; margin:10px 0 4px !important; font-family:var(--wm-font-body); }
.wm .wm-evidence-board__item figcaption{ color:#554f47 !important; font-size:15px !important; line-height:1.65; }
.wm .wm-evidence-board__item p{ color:#554f47 !important; font-size:18px !important; line-height:1.65; }
.wm .wm-evidence-board__item:nth-child(1){ grid-column:1 / span 4; transform:rotate(-1.3deg); }
.wm .wm-evidence-board__item:nth-child(2){ grid-column:5 / span 4; transform:translateY(16px) rotate(.8deg); }
.wm .wm-evidence-board__item:nth-child(3){ grid-column:9 / span 4; transform:rotate(1.2deg); }
.wm .wm-evidence-board__item:nth-child(4){ grid-column:2 / span 5; transform:translateY(-2px) rotate(.5deg); }
.wm .wm-evidence-board__item:nth-child(5){ grid-column:7 / span 5; transform:translateY(12px) rotate(-.9deg); }
.wm .wm-evidence-board__item:nth-child(n+6){ grid-column:span 4; transform:none; }
.wm .wm-evidence-board__item--wide{ grid-column:span 7 !important; }
.wm .wm-evidence-board__item--narrow{ grid-column:span 3 !important; }

/* ---------- 25. 記事終盤を最後まで保つ部品 ---------- */

/* 25-1. 説カード：説明できる/できないを同時に見せる */
.wm .wm-theories{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:clamp(14px,1.8vw,26px);
}
.wm .wm-theory-card{
  background:var(--wm-panel);
  color:var(--wm-panel-ink);
  border:1px solid var(--wm-rule);
  padding:22px;
  position:relative;
  box-shadow:var(--wm-shadow-sm);
}
.wm .wm-theory-card__no{ font-family:var(--wm-font-num); color:var(--wm-accent); font-size:38px; line-height:1; }
.wm .wm-theory-card h3{ font-size:22px; margin:8px 0 14px !important; color:var(--wm-panel-ink) !important; }
.wm .wm-theory-card__can,
.wm .wm-theory-card__cannot{ padding:12px 0; border-top:1px solid var(--wm-rule); }
.wm .wm-theory-card__can span,
.wm .wm-theory-card__cannot span{
  display:block; font-size:15px; font-weight:900; letter-spacing:.12em; margin-bottom:4px;
}
.wm .wm-theory-card__can span{ color:#1d6b4f; }
.wm .wm-theory-card__cannot span{ color:var(--wm-red); }
.wm .wm-theory-card p{ font-size:18px; line-height:1.7; }

/* 25-2. 最終クライマックス：一語/一問へ収束 */
.wm .wm-signal-finale{
  min-height:clamp(520px,64vw,820px);
  display:grid;
  place-items:center;
  text-align:center;
  padding:clamp(70px,9vw,150px) 24px;
  background:
    radial-gradient(circle at 50% 43%, var(--wm-accent-soft) 0%, transparent 34%),
    linear-gradient(rgba(12,15,18,.94),rgba(12,15,18,.98)),
    var(--wm-tex-cloth);
  background-size:auto,auto,900px;
  color:#fff;
  position:relative;
  overflow:hidden;
}
.wm .wm-signal-finale__inner{ max-width:980px; margin:auto; position:relative; z-index:2; }
.wm .wm-signal-finale__word{
  display:block;
  font-family:var(--wm-font-num);
  font-size:clamp(82px,14vw,230px);
  line-height:.82;
  letter-spacing:.08em;
  color:var(--wm-accent);
  text-shadow:0 0 34px var(--wm-accent-soft);
}
.wm .wm-signal-finale h2{ color:#fff !important; font-size:clamp(28px,3.6vw,52px); margin-top:26px !important; }
.wm .wm-signal-finale p{ color:#d7d2c7; max-width:760px; margin:18px auto 0; font-family:var(--wm-font-serif); font-size:clamp(18px,1.7vw,23px); line-height:1.9; }
.wm .wm-signal-finale__fragments{ display:flex; flex-wrap:wrap; justify-content:center; gap:8px 10px; margin-top:30px; }
.wm .wm-signal-finale__fragments span{ border:1px solid rgba(255,255,255,.2); padding:5px 10px; font-size:15px; color:#beb8ad; }

/* 25-3. 物語としての終点。質問のあとに静かな1枚を置く */
.wm .wm-coda{
  position:relative;
  min-height:clamp(520px,62vw,840px);
  display:flex;
  align-items:flex-end;
  overflow:hidden;
  background:var(--wm-black);
  color:#fff;
}
.wm .wm-coda > img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.wm .wm-coda::after{ content:""; position:absolute; inset:0; background:linear-gradient(0deg,rgba(10,12,14,.9),rgba(10,12,14,.1) 68%); }
.wm .wm-coda__body{
  position:relative; z-index:2;
  width:var(--wm-wrap); margin:0 auto;
  padding:clamp(36px,5vw,74px) 0;
  max-width:var(--wm-wrap);
}
.wm .wm-coda__body p{
  max-width:760px;
  color:#f0ece3;
  font-family:var(--wm-font-serif);
  font-size:clamp(21px,2vw,30px);
  line-height:1.85;
  margin:0;
}
.wm .wm-coda__credit{ display:block; margin-top:18px; color:#bcb6aa; font-family:var(--wm-font-mono); font-size:15px; }

/* 25-4. 出典を資料庫として見せる */
.wm .wm-source-groups{
  max-width:var(--wm-text);
  margin:clamp(44px,6vw,88px) auto 0;
  display:grid;
  gap:26px;
}
.wm .wm-source-group{
  border-top:1px solid var(--wm-rule);
  padding-top:18px;
}
.wm .wm-source-group__head{
  display:flex; align-items:baseline; justify-content:space-between; gap:20px; margin-bottom:12px;
}
.wm .wm-source-group__head h3{ font-size:22px; color:var(--wm-ground-ink) !important; }
.wm .wm-source-group__head .wm-en{ color:var(--wm-ground-muted); }
.wm .wm-source-group ol{ margin:0; padding-left:1.35em; }
.wm .wm-source-group li{ font-size:15px; line-height:1.75; color:var(--wm-ground-muted); margin-bottom:8px; }

/* 25-5. 写真クレジットを独立したアーカイブ部品に */
.wm .wm-archive-credits{
  width:var(--wm-wrap);
  margin:clamp(30px,4vw,58px) auto 0;
  padding:24px;
  background:var(--wm-panel);
  color:var(--wm-panel-ink);
  border:1px solid var(--wm-rule);
}
.wm .wm-archive-credits__grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:18px 26px;
}
.wm .wm-archive-credits h3{ font-size:20px; margin-bottom:12px !important; color:var(--wm-panel-ink) !important; }
.wm .wm-archive-credits p,
.wm .wm-archive-credits li{ font-size:16px; line-height:1.7; color:var(--wm-ground-muted); }

/* 25-6. 「次の事件ファイル」 */
.wm .wm-next-files{
  width:var(--wm-wrap);
  margin:0 auto;
  padding:clamp(54px,6vw,90px) 0;
}
.wm .wm-next-files__grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:clamp(14px,1.8vw,26px);
}
.wm .wm-next-file{
  display:block;
  position:relative;
  min-height:320px;
  overflow:hidden;
  background:var(--wm-black);
  color:#fff !important;
  text-decoration:none !important;
  box-shadow:var(--wm-shadow-sm);
}
.wm .wm-next-file img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; transition:transform .35s ease; }
.wm .wm-next-file::after{ content:""; position:absolute; inset:0; background:linear-gradient(0deg,rgba(12,14,17,.92),rgba(12,14,17,.1) 68%); }
.wm .wm-next-file__body{ position:absolute; inset:auto 20px 20px; z-index:2; }
.wm .wm-next-file__no{ font-family:var(--wm-font-mono); font-size:15px; letter-spacing:.12em; color:#c6c0b4; display:block; margin-bottom:6px; }
.wm .wm-next-file strong{ font-family:var(--wm-font-head); font-size:clamp(21px,2vw,28px); line-height:1.35; display:block; }
.wm .wm-next-file__sub{ display:block; margin-top:6px; font-size:15px; color:#c6c0b4; }

/* 25-7. 記事最終署名 */
.wm .wm-signoff{
  background:var(--wm-black);
  color:var(--wm-light);
  text-align:center;
  padding:34px 18px 38px;
  border-top:1px solid rgba(255,255,255,.08);
}
.wm .wm-signoff p{ margin:0; font-family:var(--wm-font-serif); font-size:clamp(17px,1.6vw,22px); letter-spacing:.08em; color:#e5e0d7; }

/* ---------- 26. v1.1 モバイル ---------- */
@media (max-width:820px){
  .wm .wm-scene{ padding:34px 0; }
  .wm .wm-scene--photo{ min-height:0; display:block; padding:0; }
  .wm .wm-scene--photo .wm-scene__media{ position:relative; height:62vw; min-height:260px; }
  .wm .wm-scene--photo .wm-scene__body{ width:auto; margin:-44px 16px 0; padding:24px 18px 28px; background:rgba(16,18,21,.88); }
  .wm .wm-section--airy{ padding:54px 0; }
  .wm .wm-section--dense{ padding:28px 0; }

  .wm .wm-editorial-split,
  .wm .wm-editorial-split--8-4,
  .wm .wm-editorial-split--5-7,
  .wm .wm-editorial-split--4-8{
    grid-template-columns:1fr;
    gap:20px;
  }
  .wm .wm-editorial-split__media,
  .wm .wm-editorial-split__body{
    grid-column:1 !important;
    order:initial !important;
  }
  .wm .wm-editorial-split__media img{ min-height:0; max-height:none; }

  .wm .wm-collage{ grid-template-columns:1fr; grid-template-rows:auto; gap:14px; }
  .wm .wm-collage figure,
  .wm .wm-collage__item--1,
  .wm .wm-collage__item--2,
  .wm .wm-collage__item--3,
  .wm .wm-collage__item--4{
    grid-column:1 !important;
    grid-row:auto !important;
    transform:none !important;
  }

  .wm .wm-big-number{ font-size:clamp(58px,18vw,92px); opacity:.17; }

  .wm .wm-hero--poster{ min-height:0; }
  .wm .wm-hero--poster .wm-hero__body{ width:auto; margin-top:-60px; padding:0 18px 28px; }
  .wm .wm-hero--archive .wm-hero__media{ position:relative; inset:auto; height:62vw; min-height:250px; margin:0 16px; }
  .wm .wm-hero--archive .wm-hero__body{ width:auto; padding:22px 18px 30px; margin:0; }
  .wm .wm-hero--collage .wm-hero__body{ width:auto; }

  .wm .wm-evidence-board{
    grid-template-columns:1fr;
    padding:18px;
    gap:14px;
  }
  .wm .wm-evidence-board__item,
  .wm .wm-evidence-board__item:nth-child(n),
  .wm .wm-evidence-board__item--wide,
  .wm .wm-evidence-board__item--narrow{
    grid-column:1 !important;
    transform:none !important;
  }

  .wm .wm-theories{ grid-template-columns:1fr; }
  .wm .wm-signal-finale{ min-height:500px; padding:72px 18px; }
  .wm .wm-signal-finale__word{ font-size:clamp(68px,24vw,118px); letter-spacing:.04em; }

  .wm .wm-coda{ min-height:0; display:block; }
  .wm .wm-coda > img{ position:relative; height:66vw; min-height:270px; }
  .wm .wm-coda__body{ width:auto; margin:-52px 16px 0; padding:26px 18px 32px; background:rgba(11,13,15,.9); }
  .wm .wm-coda__body p{ font-size:21px; }

  .wm .wm-source-groups{ margin-left:16px; margin-right:16px; }
  .wm .wm-source-group__head{ display:block; }
  .wm .wm-archive-credits{ width:calc(100% - 32px); padding:18px; }
  .wm .wm-archive-credits__grid{ grid-template-columns:1fr; }

  .wm .wm-next-files{ width:calc(100% - 32px); padding:44px 0; }
  .wm .wm-next-files__grid{ grid-template-columns:1fr; }
  .wm .wm-next-file{ min-height:280px; }
}

/* ---------- 27. モーション配慮 ---------- */
@media (prefers-reduced-motion: reduce){
  .wm *, .wm *::before, .wm *::after{
    animation-duration:.001ms !important;
    animation-iteration-count:1 !important;
    scroll-behavior:auto !important;
    transition-duration:.001ms !important;
  }
  .wm .wm-glow{ animation:none !important; }
}

/* ============================================================
   28. v1.2 雑誌シェル / 右レール / 章番号 / 編集補助
   参考誌面の「紙1枚が完成された編集面」感を再現する。
   ============================================================ */

/* ---------- 28-1. 暗い机 + 紙の束 ---------- */
.wm .wm-stage{
  position:relative;
  padding:clamp(32px,4vw,66px) 0;
}
.wm .wm-stage--desk{
  background:
    linear-gradient(rgba(18,21,24,.90),rgba(18,21,24,.90)),
    var(--wm-tex-cloth);
  background-size:auto,900px;
}
.wm .wm-stage--stone{
  background:
    linear-gradient(rgba(35,31,27,.88),rgba(35,31,27,.88)),
    var(--wm-tex-stone);
  background-size:auto,1000px;
}
.wm .wm-layout-rail{
  width:min(1580px,96vw);
  margin:0 auto;
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(280px,330px);
  gap:clamp(18px,2vw,32px);
  align-items:start;
}
.wm .wm-layout-main{ min-width:0; }
.wm .wm-sheet{
  position:relative;
  z-index:1;
  background:
    linear-gradient(rgba(243,235,218,.92),rgba(243,235,218,.92)),
    var(--wm-tex-paper-warm);
  background-size:auto,900px;
  color:var(--wm-ink);
  box-shadow:0 22px 64px rgba(0,0,0,.35);
  border:1px solid rgba(76,65,50,.18);
}
.wm .wm-sheet::before,
.wm .wm-sheet::after{
  content:"";
  position:absolute;
  inset:8px -7px -8px 7px;
  background:#e6dcc6;
  border:1px solid rgba(76,65,50,.15);
  z-index:-1;
  transform:rotate(.22deg);
  pointer-events:none;
}
.wm .wm-sheet::after{
  inset:15px 6px -14px -8px;
  background:#d9cdb6;
  transform:rotate(-.16deg);
  z-index:-2;
}
.wm .wm-sheet--cold{
  background:
    linear-gradient(rgba(235,234,230,.94),rgba(235,234,230,.94)),
    var(--wm-tex-paper-cold);
  background-size:auto,900px;
}
.wm .wm-sheet__pad{ padding:clamp(24px,3.2vw,50px); }

/* ---------- 28-2. 右サイド資料レール ---------- */
.wm .wm-rail{
  display:flex;
  flex-direction:column;
  gap:16px;
  min-width:0;
}
.wm .wm-rail-card{
  background:rgba(20,24,29,.93);
  color:var(--wm-light);
  border:1px solid rgba(255,255,255,.10);
  padding:20px;
  box-shadow:0 12px 34px rgba(0,0,0,.25);
}
.wm .wm-rail-card--paper{
  background:
    linear-gradient(rgba(244,237,222,.94),rgba(244,237,222,.94)),
    var(--wm-tex-paper-warm);
  background-size:auto,700px;
  color:var(--wm-ink);
  border-color:rgba(70,58,42,.18);
}
.wm .wm-rail-card h3{
  color:inherit !important;
  font-size:20px;
  padding-bottom:10px !important;
  margin-bottom:12px !important;
  border-bottom:1px solid currentColor !important;
  border-bottom-color:rgba(127,120,108,.35) !important;
}
.wm .wm-rail-card p,
.wm .wm-rail-card li{ font-size:15px; line-height:1.7; color:inherit; }
.wm .wm-rail-card .wm-en{ color:inherit; opacity:.62; }
.wm .wm-rail-list{ list-style:none; margin:0 !important; padding:0 !important; }
.wm .wm-rail-list li{ margin:0; padding:10px 0; border-top:1px solid rgba(127,120,108,.24); }
.wm .wm-rail-list li:first-child{ border-top:0; padding-top:0; }
.wm .wm-rail-list a{ color:inherit; text-decoration:none; display:block; }
.wm .wm-rail-list strong{ display:block; font-size:16px; line-height:1.45; }
.wm .wm-rail-list span{ display:block; font-size:15px; opacity:.68; margin-top:3px; }
.wm .wm-rail-photo{ width:100%; aspect-ratio:4/3; object-fit:cover; margin:8px 0 12px; filter:saturate(.82); }

/* ---------- 28-3. 章の薄い巨大番号 ---------- */
.wm .wm-section-frame{ position:relative; }
.wm .wm-folio{
  position:absolute;
  right:clamp(4px,1.4vw,18px);
  top:clamp(-14px,-1vw,-4px);
  font-family:var(--wm-font-num);
  font-size:clamp(72px,8vw,132px);
  line-height:1;
  color:var(--wm-ground-ink);
  opacity:.075;
  pointer-events:none;
  user-select:none;
  z-index:0;
}
.wm .wm-section-frame > *:not(.wm-folio){ position:relative; z-index:1; }

/* ---------- 28-4. 短文だけ使う2段組 ---------- */
.wm .wm-prose--columns-2{
  max-width:var(--wm-text);
  margin-left:auto;
  margin-right:auto;
  column-count:2;
  column-gap:clamp(32px,4vw,62px);
  column-rule:1px solid var(--wm-rule);
}
.wm .wm-prose--columns-2 > *{ break-inside:avoid; }
.wm .wm-prose--columns-2 p{
  font-size:18px;
  line-height:1.9;
  color:var(--wm-ground-ink-2);
}

/* ---------- 28-5. 欄外メモ ---------- */
.wm .wm-margin-note{
  max-width:340px;
  margin:20px 0 20px auto;
  padding:14px 16px;
  border-top:1px solid var(--wm-rule);
  border-bottom:1px solid var(--wm-rule);
  font-family:var(--wm-font-serif);
  font-size:15px;
  line-height:1.75;
  color:var(--wm-ground-muted);
  transform:rotate(-.35deg);
}
.wm .wm-margin-note::before{
  content:"MARGIN NOTE";
  display:block;
  margin-bottom:5px;
  font-family:var(--wm-font-mono);
  font-size:15px;
  letter-spacing:.16em;
  color:var(--wm-accent);
}

/* ---------- 28-6. 写真の比率と焦点。inline styleを使わない ---------- */
.wm .wm-ratio-cinema img{ aspect-ratio:16/9 !important; object-fit:cover; }
.wm .wm-ratio-wide img{ aspect-ratio:3/2 !important; object-fit:cover; }
.wm .wm-ratio-square img{ aspect-ratio:1/1 !important; object-fit:cover; }
.wm .wm-ratio-portrait img{ aspect-ratio:3/4 !important; object-fit:cover; }
.wm .wm-pos-top img{ object-position:center top !important; }
.wm .wm-pos-bottom img{ object-position:center bottom !important; }
.wm .wm-pos-left img{ object-position:left center !important; }
.wm .wm-pos-right img{ object-position:right center !important; }
.wm .wm-pos-top-left img{ object-position:left top !important; }
.wm .wm-pos-top-right img{ object-position:right top !important; }

/* ---------- 28-7. 細い編集罫線のタイトル ---------- */
.wm .wm-rule-head{
  display:grid;
  grid-template-columns:auto 1fr auto;
  align-items:center;
  gap:12px;
  margin-bottom:18px;
}
.wm .wm-rule-head::before,
.wm .wm-rule-head::after{
  content:"";
  height:1px;
  background:var(--wm-rule);
}
.wm .wm-rule-head::before{ display:none; }
.wm .wm-rule-head h2,
.wm .wm-rule-head h3{ font-size:clamp(22px,2vw,30px); }
.wm .wm-rule-head .wm-en{ white-space:nowrap; }

/* ---------- 28-8. 記事末の資料庫背景 ---------- */
.wm .wm-endmatter{
  background:
    linear-gradient(rgba(229,226,218,.95),rgba(229,226,218,.95)),
    var(--wm-tex-paper-cold);
  background-size:auto,900px;
  color:var(--wm-ink);
  padding:clamp(56px,7vw,104px) 0;
  border-top:1px solid rgba(29,26,23,.16);
}
.wm .wm-endmatter .wm-source-groups,
.wm .wm-endmatter .wm-archive-credits,
.wm .wm-endmatter .wm-next-files{ position:relative; }

/* ---------- 28-9. casefile専用、書類束感を強める ---------- */
.wm[data-type="casefile"] .wm-sheet{
  background-image:
    linear-gradient(rgba(243,235,218,.91),rgba(243,235,218,.91)),
    var(--wm-tex-paper-warm);
}
.wm[data-type="document"] .wm-sheet{
  background-image:
    linear-gradient(rgba(235,234,230,.94),rgba(235,234,230,.94)),
    var(--wm-tex-paper-cold);
}

/* ---------- 28-10. 紙面内だけ少し密度を下げる編集本文 ---------- */
.wm .wm-editorial-copy p{
  font-family:var(--wm-font-serif);
  font-size:clamp(18px,1.35vw,20px);
  line-height:1.92;
  color:var(--wm-ground-ink-2);
}
.wm .wm-editorial-copy p + p{ margin-top:.4em; }

/* ---------- 28-11. hoverはhover可能端末のみ ---------- */
@media (hover:hover){
    }

/* ---------- 29. v1.2 モバイル ---------- */
@media (max-width:820px){
  .wm .wm-stage{ padding:0; }
  .wm .wm-layout-rail{
    width:100%;
    display:grid;
    grid-template-columns:1fr;
    gap:0;
  }
  .wm .wm-sheet{
    box-shadow:none;
    border-left:0;
    border-right:0;
  }
  .wm .wm-sheet::before,
  .wm .wm-sheet::after{ display:none; }
  .wm .wm-sheet__pad{ padding:22px 16px; }

  .wm .wm-rail{
    padding:20px 16px 34px;
    background:var(--wm-black);
  }
  .wm .wm-rail-card{ box-shadow:none; }

  .wm .wm-folio{
    font-size:clamp(54px,18vw,84px);
    right:10px;
    top:-2px;
    opacity:.06;
  }

  .wm .wm-prose--columns-2{
    column-count:1;
    column-gap:0;
    column-rule:0;
  }

  .wm .wm-margin-note{
    max-width:none;
    margin:18px 0;
    transform:none;
  }

  .wm .wm-rule-head{
    grid-template-columns:1fr auto;
    gap:10px;
  }
  .wm .wm-rule-head::before{ display:none; }
  .wm .wm-rule-head::after{ grid-column:1 / -1; }
}

/* ---------- 30. 印刷/保存時の暴れ防止 ---------- */
@media print{
  .wm{ width:auto !important; margin:0 !important; background:#fff !important; color:#111 !important; }
  .wm .wm-stage, .wm .wm-endmatter{ background:#fff !important; }
  .wm .wm-rail{ display:none !important; }
  .wm .wm-sheet{ box-shadow:none !important; }
  .wm .wm-glow, .wm .wm-deco{ display:none !important; }
}

/* ============================================================
   31. v1.2.1 3レール誌面（旅・発掘で任意）
   左=章インデックス / 中央=本文 / 右=資料
   ============================================================ */
.wm .wm-layout-three{
  width:min(1600px,96vw);
  margin:0 auto;
  display:grid;
  grid-template-columns:minmax(170px,210px) minmax(0,1fr) minmax(260px,310px);
  gap:clamp(18px,2vw,30px);
  align-items:start;
}
.wm .wm-local-index{
  background:rgba(247,241,228,.90);
  color:var(--wm-ink);
  border:1px solid rgba(76,65,50,.16);
  padding:18px 16px;
  box-shadow:var(--wm-shadow-sm);
}
.wm .wm-local-index--dark{
  background:rgba(20,24,29,.94);
  color:var(--wm-light);
  border-color:rgba(255,255,255,.1);
}
.wm .wm-local-index__title{
  font-family:var(--wm-font-head);
  font-size:18px;
  font-weight:700;
  margin-bottom:12px;
  padding-bottom:10px;
  border-bottom:1px solid currentColor;
  border-bottom-color:rgba(120,112,100,.35);
}
.wm .wm-local-index ol{
  list-style:none;
  margin:0;
  padding:0;
  counter-reset:wmidx;
}
.wm .wm-local-index li{
  counter-increment:wmidx;
  display:grid;
  grid-template-columns:28px 1fr;
  gap:8px;
  padding:9px 0;
  margin:0;
  border-top:1px solid rgba(120,112,100,.2);
  font-size:16px;
  line-height:1.55;
}
.wm .wm-local-index li:first-child{ border-top:0; }
.wm .wm-local-index li::before{
  content:counter(wmidx, decimal-leading-zero);
  font-family:var(--wm-font-mono);
  font-size:15px;
  color:var(--wm-accent);
  padding-top:2px;
}
.wm .wm-local-index a{ color:inherit; text-decoration:none; }
.wm .wm-layout-three__main{ min-width:0; }

@media (max-width:1024px){
  .wm .wm-layout-three{
    grid-template-columns:minmax(150px,180px) minmax(0,1fr);
  }
  .wm .wm-layout-three > .wm-rail{
    grid-column:1 / -1;
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
}
@media (max-width:820px){
  .wm .wm-layout-three{
    width:100%;
    grid-template-columns:1fr;
    gap:0;
  }
  .wm .wm-local-index{
    margin:0 16px 18px;
    box-shadow:none;
  }
  .wm .wm-layout-three > .wm-rail{
    grid-column:auto;
    display:flex;
  }
}

/* ============================================================
   wm-system v1.2.1.3 VISUAL QA PATCH
   2026-09-09
   投稿4717を1440px / 390pxで実際にレンダリングして目視した結果。
   v1.2.1.2 hotfixを含む。記事側<style>には入れない。
   ============================================================ */

/* ============================================================
   wm-system v1.2.1.2 HOTFIX
   2026-09-09 / QA draft 4717
   共通CSS末尾へ統合。記事側CSSには入れない。
   ============================================================ */

.wm img{
  max-height:none !important;
}

.wm .wm-hero--archive h1 .wm-hero__t2{
  color:var(--wm-ink-2) !important;
  opacity:1;
}

.wm .wm-layout-main .wm-photo-break__body,
.wm .wm-layout-main .wm-coda__body{
  width:min(calc(100% - 48px), 1040px);
  max-width:none;
  margin-left:auto;
  margin-right:auto;
}

.wm .wm-clock__tick .wm-num{
  white-space:nowrap;
  word-break:keep-all;
  overflow-wrap:normal;
}

@media (max-width:820px){
  .wm .wm-photo-break{
    flex-direction:column;
    align-items:stretch;
  }

  .wm .wm-photo-break img{
    position:relative;
    width:100%;
    height:56vw;
    min-height:220px;
    object-fit:cover;
    flex:none;
  }

  .wm .wm-photo-break__body{
    width:auto;
    max-width:none;
    margin:-40px 16px 0;
    padding:20px 18px 26px;
    background:rgba(20,23,28,.90);
    position:relative;
    z-index:2;
  }

  .wm .wm-photo-break figcaption{
    position:relative;
    right:auto;
    bottom:auto;
    z-index:2;
    margin:0;
    padding:0 18px 16px;
    background:var(--wm-black);
    color:var(--wm-light-2) !important;
  }

  .wm .wm-layout-main .wm-coda__body{
    width:auto;
    max-width:none;
    margin:-52px 16px 0;
  }

  .wm .wm-clock__tick .wm-num{
    white-space:nowrap;
  }
}



/* VISUAL POLISH v1.2.1.3 */
.wm[data-type="casefile"]{
  --wm-airy-y:clamp(52px,5.5vw,86px);
  --wm-dense-y:clamp(28px,3.5vw,52px);
}
@media (min-width:821px){
  .wm .wm-hero--archive .wm-hero__body{ width:57%; padding-right:clamp(18px,2vw,30px); }
  .wm .wm-hero--archive .wm-hero__media{ left:58%; right:clamp(22px,3vw,44px); }
  .wm .wm-hero--archive h1{ font-size:clamp(36px,3vw,46px); line-height:1.18; max-width:16ch; }
  .wm .wm-hero--archive h1 .wm-hero__t2{ font-size:.56em; line-height:1.45; max-width:20ch; }
  .wm[data-type="casefile"] .wm-document{ grid-template-columns:minmax(0,1.15fr) minmax(0,1fr) minmax(0,1fr); }
}
.wm .wm-evidence-board--compact{ grid-auto-flow:row dense; align-items:start; }
.wm .wm-evidence-board--compact .wm-evidence-board__item:nth-child(1){ grid-column:1 / span 4; }
.wm .wm-evidence-board--compact .wm-evidence-board__item:nth-child(2){ grid-column:5 / span 4; }
.wm .wm-evidence-board--compact .wm-evidence-board__item:nth-child(3){ grid-column:9 / span 4; }
.wm .wm-evidence-board--compact .wm-evidence-board__item:nth-child(4){ grid-column:1 / span 6 !important; transform:rotate(.35deg); }
.wm .wm-evidence-board--compact .wm-evidence-board__item:nth-child(5){ grid-column:7 / span 3; transform:translateY(8px) rotate(-.5deg); }
.wm .wm-evidence-board--compact .wm-evidence-board__item:nth-child(6){ grid-column:10 / span 3; transform:translateY(2px) rotate(.45deg); }
.wm .wm-layout-rail > .wm-coda{ grid-column:1 / -1; width:100%; }
@media (min-width:1025px){
  .wm .wm-layout-rail > .wm-rail{ align-self:stretch; position:relative; }
  .wm .wm-rail-card--sticky{ position:sticky; top:22px; }
}
@media (max-width:820px){
  .wm .wm-layout-rail > .wm-rail{ display:none; }
  .wm .wm-layout-rail > .wm-coda{ order:2; }
  .wm .wm-layout-main{ order:1; }
}

/* ============================================================
   wm-system v1.2.1.4 QA FIX (Claude 2026-09-09, 4717 目視QAより)
   ============================================================ */
.wm .wm-layout-main .wm-figure{ width:100% !important; max-width:none; margin-left:0 !important; margin-right:0 !important; }
.wm .wm-clock__tick p{ color:var(--wm-panel-ink) !important; font-size:18px; }
.wm .wm-clock__tick .wm-en{ color:var(--wm-panel-ink) !important; opacity:.72; }
@media (min-width:821px){
  .wm .wm-hero--archive h1 .wm-hero__t2{ max-width:24ch; }
}


/* ============================================================
   wm-system v1.2.1.5 QA FIX (Claude 2026-09-10, 4717 PC 1280-1500px QAより)
   右レールあり(.wm-layout-rail)で本文幅が狭い1280〜1500px帯の詰まりを解消
   ============================================================ */
@media (min-width:821px) and (max-width:1500px){
  .wm .wm-layout-rail .wm-editorial-split:not(.wm-editorial-split--5-7):not(.wm-editorial-split--4-8){ grid-template-columns:1fr; }
  .wm .wm-layout-rail .wm-editorial-split:not(.wm-editorial-split--5-7):not(.wm-editorial-split--4-8) > .wm-editorial-split__media,
  .wm .wm-layout-rail .wm-editorial-split:not(.wm-editorial-split--5-7):not(.wm-editorial-split--4-8) > .wm-editorial-split__body{ grid-column:1 / -1; }
  .wm .wm-layout-rail .wm-editorial-split:not(.wm-editorial-split--5-7):not(.wm-editorial-split--4-8) > .wm-editorial-split__media img{ min-height:0; max-height:560px; }
  .wm .wm-layout-rail .wm-mystery-grid{ grid-template-columns:repeat(6,minmax(0,1fr)); }
  .wm .wm-layout-rail .wm-mystery-grid > .wm-q{ grid-column:span 2; }
  .wm .wm-layout-rail .wm-mystery-grid > .wm-q:nth-child(4),
  .wm .wm-layout-rail .wm-mystery-grid > .wm-q:nth-child(5){ grid-column:span 3; }
  .wm .wm-layout-rail .wm-evidence-board--compact .wm-evidence-board__item:nth-child(4){ grid-column:1 / span 6 !important; }
  .wm .wm-layout-rail .wm-evidence-board--compact .wm-evidence-board__item:nth-child(5){ grid-column:7 / span 6 !important; }
  .wm .wm-layout-rail .wm-evidence-board--compact .wm-evidence-board__item:nth-child(6){ grid-column:1 / span 12 !important; transform:none; }
}
@media (min-width:821px){
  .wm .wm-layout-main .wm-photo-break__body{ padding-bottom:clamp(72px,7vw,104px); }
  .wm .wm-layout-main .wm-photo-break figcaption{ max-width:min(72%,760px); text-align:right; font-size:15px; line-height:1.5; }
}

/* v1.2.1.5b: 横長の注釈付き資料写真を切らずに見せる（4717 乗車券） */
.wm .wm-layout-main .wm-figure--fit{ max-width:920px !important; margin-left:auto !important; margin-right:auto !important; }
.wm .wm-figure--fit img{ aspect-ratio:auto !important; object-fit:contain; }

/* ==========================================================
   v1.3 記事キット用の追加 2026-09-12（!important なし。既存の型記事 Post 41 には当たらないか、読みやすさだけを上げる）
   ========================================================== */

/* --- カードの題（見出しにしない題） ---
   L1 Gate は カード部品（wm-person / wm-conflict / wm-document / wm-question / wm-photo-break など）の中の
   h2/h3 を HEADING_IN_CARD で止める。記事キット（wm-kit/build.py）はカードの題を .wm-title で出す。
   見た目は、置き換える h3/h4 の実測値（Post 41、PC 1366 / SP 390）に合わせる。 */
.wm .wm-title{ margin:0; font-weight:700; }
.wm .wm-evidence-board__item .wm-title{ font-family:var(--wm-font-body); font-size:18px; line-height:1.3; margin:10px 0 4px; color:var(--wm-ink); }
.wm .wm-person__card .wm-title{ font-family:var(--wm-font-body); font-size:19px; line-height:1.4; font-weight:900; margin:0; color:var(--wm-panel-ink); }
.wm .wm-conflict .wm-title{ font-family:var(--wm-font-body); font-size:18px; line-height:1.3; font-weight:900; margin:0; color:var(--wm-panel-ink); }
.wm .wm-question__item .wm-title{ font-family:var(--wm-font-head); font-size:21px; line-height:1.4; margin:0; color:#fff; }
.wm .wm-document__col .wm-title{ font-family:var(--wm-font-head); font-size:24px; line-height:1.3; margin:0; color:var(--wm-panel-ink); }
.wm .wm-photo-break .wm-title{ font-family:var(--wm-font-head); font-size:clamp(30px,4vw,58px); line-height:1.2; margin:0; color:#fff; text-shadow:0 2px 20px rgba(0,0,0,.6); }
.wm .wm-timeline__body .wm-title{ display:block; font-family:var(--wm-font-body); font-size:19px; line-height:1.5; font-weight:900; margin:0 0 4px; }
.wm .wm-credit{ display:inline; }

/* --- 読みやすさ（コントラスト 4.5 以上） ---
   紙色のヒーロー（--archive）ではクレジットを濃い字に。巻末の出典リストと英字ラベルは 4.41 → 約7。
   「Still a mystery…」は暗い地の上の赤（約1.4〜2）→ 明るい朱（約5）。 */
.wm .wm-hero--archive .wm-hero__credit{ color:var(--wm-ink-2); }
.wm .wm-source-group li, .wm .wm-source-group__head .wm-en, .wm .wm-endmatter .wm-head .wm-en{ color:#4e4943; }
.wm .wm-question__tail{ color:#e0826f; }

/* --- v1.3.1 右レールつき紙面の重ね紙（2026-09-12） ---
   .wm-sheet::before/::after の rotate(.22deg / -.16deg) は、長い記事（紙面の高さ 1万px 超）では上端が横に数十px ずれ、
   右レールの左端を覆って文字が欠ける（1920px で「この事件について」→「の事件について」）。右レールつきの紙面では回転させない。 */
.wm .wm-layout-rail .wm-sheet::before, .wm .wm-layout-rail .wm-sheet::after{ transform:none; }

/* --- v1.3.2 読みやすさの床（2026-09-12）: 説明文を 18px 以上に。謎カード・人物カード・未解決の問い・説のカード・証拠カードの説明文は元の区画の値を直した（キャプションは 15px のまま） --- */

/* --- v1.3.2（2026-09-12） ---
   ヒーローの FILE No.（.wm-hero__no）は casefile だけ地色（accent）が付く。dig / document / travel では
   明るい字（--wm-light-2）が紙色のヒーローに乗ってコントラスト 1.43（verify 実測）。紙色のヒーローでは濃い字にする。 */
.wm:not([data-type="casefile"]) .wm-hero--archive .wm-hero__no{ color:var(--wm-ink-2); }

/* --- v1.3.3 引用の地と疑似要素・題の折り返し・問いの並び・コントラスト（2026-09-12） ---
   (1) SWELL は本文の blockquote に灰色の地（main.css の .post_content blockquote）と、
       二重線の疑似要素（インライン CSS の .post_content blockquote::before）を付ける。
       型記事 Post 41 は記事内 <style> で打ち消していたが、記事に CSS を書かない型（記事キット）では
       対立ブロックの引用に線と地が出た（verify 実測）。4606 が受け持つ。
       詳細度は .wm .wm-conflict blockquote（0,2,1）／::before（0,2,2）で SWELL（0,1,1／0,1,2）に勝つので !important は付けない。
       人物カードの「」は残し、SWELL の線の形（絶対配置・幅5px・左右の線）だけ外す。
   (2) 行の長さをそろえて折り返す（最後の行に1字だけ落ちるのを防ぐ）: カード・章扉の題、ヒーローの見出しと小見出し、レールの値。
       実測の例: 章4扉「…教え／た」、問いのカード「…したの／か」、ヒーロー「…起きたの／か」、レール「5月22／日」。
       balance だけだと語の途中で割れる（「敵国の潜／水艦」）ので、文節で折り返す word-break:auto-phrase を併用する
       （対応していない閲覧環境では balance だけが効く）。
   (3) 未解決の問いが4つのときは、PC で 3＋1 にせず 2×2 に並べる（スマホは従来どおり1列）。
   (4) コントラスト: 「Still a mystery…」は暗いパネルの上の赤（verify の見積り 3.15）→ 明るい赤 #f4b3a2（同 4.88）。
       casefile の FILE No. は accent の地に明るい字（3.62）→ 地を暗い accent に（skin ごとに16進で定義。6.0〜6.2）。
       color-mix() は verify の色の読み取りが対応していないので使わない（実測で 1.15 と出た）。
   (5) 巻末の出典・画像クレジット: 取り込み元の URL が非常に長いと（コモンズの長いファイル名）、項目の最小幅がその URL の長さになり、
       1列グリッドの列が 2,087px まで広がって文字が画面外で切れていた（スマホ390pxで実測。ページの横スクロールは出ないので気づきにくい）。
       列を minmax(0,1fr) に固定し、項目を overflow-wrap:anywhere にして URL の途中でも折り返す。
   (6) v1.3.2 候補: 紙色のヒーロー（casefile 以外）の FILE No. を濃い字にする（コントラスト 1.43 → 修正）。 */
.wm .wm-conflict blockquote, .wm .wm-quote blockquote, .wm .wm-person__card blockquote{ background:none; box-shadow:none; }
.wm .wm-conflict blockquote::before, .wm .wm-conflict blockquote::after,
.wm .wm-quote blockquote::before, .wm .wm-quote blockquote::after{ content:none; display:none; }
.wm .wm-person__card blockquote::before, .wm .wm-person__card blockquote::after{ position:static; display:inline; width:auto; height:auto; border:0; }
.wm .wm-title, .wm .wm-hero h1, .wm .wm-hero h1 .wm-hero__t2, .wm .wm-meta dd{ text-wrap:balance; word-break:auto-phrase; }
@media (min-width:821px){
  .wm .wm-question__list:has(> .wm-question__item:nth-child(4):last-child){ grid-template-columns:repeat(2,minmax(0,1fr)); }
}
.wm .wm-source-groups{ grid-template-columns:minmax(0,1fr); }
.wm .wm-source-group li{ overflow-wrap:anywhere; }
.wm .wm-question__tail{ color:#f4b3a2; }
.wm.skin-signal{ --wm-accent-deep:#8f4c20; }
.wm.skin-verdigris{ --wm-accent-deep:#306a5d; }
.wm.skin-sand{ --wm-accent-deep:#845528; }
.wm[data-type="casefile"] .wm-hero__no{ background:var(--wm-accent-deep, var(--wm-accent)); }
.wm:not([data-type="casefile"]) .wm-hero--archive .wm-hero__no{ color:var(--wm-ink-2); }

/* --- v1.3.4 右レールは 1025px 以上でだけ出す（2026-09-12） ---
   レールの「追従（position:sticky）」と「高さを伸ばす（align-self:stretch）」は @media (min-width:1025px) に書かれているのに、
   レールの2列そのものは 821px から出ていた。821〜1024px では、カードを過ぎると右の列が空のまま最後まで黒く残り、
   本文が左に寄って見えていた（幅900pxで実測: rail が position:static / align-self:auto）。
   型記事 Post 41 は記事内 <style> で sticky を補っていたため、差し込み検査では出なかった。
   レールが成立する幅（1025px以上）に切りそろえ、それ未満は1カラムにする（本文が広がって読みやすくもなる）。 */
@media (max-width:1024px){
  .wm .wm-layout-rail{ grid-template-columns:minmax(0,1fr); }
  .wm .wm-layout-rail > .wm-rail{ display:none; }
  .wm .wm-layout-rail > .wm-coda{ order:2; }
  .wm .wm-layout-main{ order:1; }
}

/* --- v1.3.5 タグと出典リンクの色のコントラスト（2026-09-12） ---
   `.wm-tag--reported`（当時報道）は紙色の上で 4.44、`.wm-tag--unknown`（不明）は 4.32 で、
   15px の小さな文字の基準（4.5）に届いていなかった（Post 41 の実測 13件）。字を濃くして 5.4／5.7 にする。
   巻末の出典リンクは accent（橙）そのままで 2.99 だった。v1.3.3 で skin ごとに定義した暗い accent を使い 4.9 にする。
   観察記録（data-type=observe）や暗いパネルの中の色分けは、より詳しい指定が勝つので変わらない。 */
.wm .wm-tag--reported{ color:#7a4e0c; }
.wm .wm-tag--unknown{ color:#574f45; }
.wm .wm-endmatter a, .wm .wm-source-group a{ color:var(--wm-accent-deep, var(--wm-accent)); }

/* --- v1.3.6 入口ページ（地図・テーマ別ポータル）の見た目（2026-09-12） ---
   地図ページと分類ページは `.wm-portal` / `.wm-world-map` / `.wm-map-marker` などの目印だけが残り、
   それを飾る CSS がサイトのどこにも無い状態だった（child.css・4606・スニペットのいずれにも定義なし）。
   ピンはただのリンク文字列として本文に並び、地図として読めなかった。記事と同じ design system で作り直す。 */
.wm .wm-portal, .wm-portal{ max-width:1120px; margin:clamp(28px,4vw,56px) auto; padding:0 20px; font-family:var(--wm-font-body,system-ui,sans-serif); color:var(--wm-ink,#1d1a17); }
.wm-portal-hero{ background:var(--wm-panel,#f7f1e4); border:1px solid var(--wm-rule,rgba(29,26,23,.16)); border-top:4px solid var(--wm-accent,#c66a2d); padding:clamp(22px,3vw,38px); }
.wm-portal-kicker{ font-family:var(--wm-font-mono,ui-monospace,monospace); font-size:15px; letter-spacing:.12em; color:var(--wm-accent,#c66a2d); margin:0 0 10px; }
.wm-portal-hero h2{ font-family:var(--wm-font-head,serif); font-size:clamp(26px,3.2vw,40px); line-height:1.3; margin:0 0 12px; text-wrap:balance; word-break:auto-phrase; }
.wm-portal-hero p{ font-size:17px; line-height:1.95; margin:0 0 16px; }
.wm-portal-actions{ display:flex; flex-wrap:wrap; gap:10px; }
.wm-portal-btn{ display:inline-block; padding:10px 18px; border-radius:999px; font-size:15px; font-weight:700; text-decoration:none;
  background:var(--wm-accent-deep,#8f4c20); color:#fff8ee; border:1px solid transparent; }
.wm-portal-btn.secondary{ background:transparent; color:var(--wm-ink-2,#3a352e); border-color:var(--wm-rule,rgba(29,26,23,.28)); }
.wm-portal-btn:hover{ opacity:.88; }
.wm-focus-box{ background:var(--wm-panel,#f7f1e4); border:1px solid var(--wm-rule,rgba(29,26,23,.16)); padding:clamp(20px,2.6vw,32px); margin-top:clamp(20px,3vw,36px); }
.wm-focus-box h2{ font-family:var(--wm-font-head,serif); font-size:clamp(21px,2.4vw,28px); margin:0 0 10px; }
.wm-focus-box p{ font-size:17px; line-height:1.95; margin:0 0 14px; }
.wm-focus-list{ list-style:none; margin:0; padding:0; display:grid; gap:12px; }
.wm-focus-list li{ padding-left:16px; border-left:3px solid var(--wm-accent,#c66a2d); font-size:16px; line-height:1.9; }
.wm-focus-list strong{ display:block; font-size:17px; }

/* 地図本体：正距円筒図法の下地に、記事ごとの緯度経度から出した点を重ねる */
.wm-world-map{ position:relative; width:100%; aspect-ratio:940/477; margin:18px 0 6px; background:var(--wm-slate,#262c34); border:1px solid var(--wm-rule,rgba(29,26,23,.16)); overflow:hidden; }
.wm-world-map-base{ position:absolute; inset:0; width:100%; height:100%; display:block; }
.wm-world-land{ fill:rgba(243,239,231,.22); stroke:rgba(243,239,231,.35); stroke-width:.6; }
.wm-map-marker{ position:absolute; left:var(--x,50%); top:var(--y,50%); width:11px; height:11px; margin:-6px 0 0 -6px; padding:0;
  border-radius:50%; background:var(--wm-accent,#c66a2d); box-shadow:0 0 0 3px rgba(198,106,45,.28);
  overflow:hidden; white-space:nowrap; text-indent:-999em; text-decoration:none; z-index:2; }
.wm-map-marker:hover, .wm-map-marker:focus-visible{ background:#fff; box-shadow:0 0 0 5px rgba(198,106,45,.55); outline:none; z-index:3; }
.wm-map-marker.is-approx{ background:var(--wm-light-2,#c9c4b8); box-shadow:0 0 0 3px rgba(201,196,184,.28); }
.wm-map-note{ font-size:15px; line-height:1.85; color:var(--wm-ground-muted,#5a5349); margin:10px 0 0; }
.wm-map-legend{ display:flex; flex-wrap:wrap; gap:14px; font-size:14px; color:var(--wm-ground-muted,#5a5349); margin:8px 0 0; }
.wm-map-legend span::before{ content:""; display:inline-block; width:9px; height:9px; border-radius:50%; background:var(--wm-accent,#c66a2d); margin-right:6px; vertical-align:middle; }
.wm-map-list{ list-style:none; margin:18px 0 0; padding:0; display:grid; grid-template-columns:repeat(auto-fill,minmax(300px,1fr)); gap:2px 20px; }
.wm-map-list li{ padding:10px 0; border-top:1px solid var(--wm-rule,rgba(29,26,23,.16)); }
.wm-map-list a{ display:block; font-size:16px; line-height:1.6; font-weight:700; color:var(--wm-ink,#1d1a17); text-decoration:none; text-wrap:balance; word-break:auto-phrase; }
.wm-map-list a:hover{ color:var(--wm-accent-deep,#8f4c20); text-decoration:underline; }
.wm-map-list span{ display:block; font-size:14px; color:var(--wm-ground-muted,#5a5349); margin-top:3px; }
.wm-region-grid, .wm-route-list{ display:grid; grid-template-columns:repeat(auto-fill,minmax(260px,1fr)); gap:14px; margin:18px 0 0; }
.wm-region-card, .wm-route-card{ display:block; padding:16px 18px; background:var(--wm-panel,#f7f1e4); border:1px solid var(--wm-rule,rgba(29,26,23,.16)); border-left:4px solid var(--wm-accent,#c66a2d); text-decoration:none; color:var(--wm-ink,#1d1a17); }
.wm-region-card:hover, .wm-route-card:hover{ background:#fff; }
.wm-region-card strong, .wm-route-card strong{ display:block; font-size:17px; margin-bottom:4px; }
.wm-region-card span, .wm-route-card span{ display:block; font-size:14px; line-height:1.8; color:var(--wm-ground-muted,#5a5349); }
@media (max-width:820px){
  .wm-world-map{ aspect-ratio:940/520; }
  .wm-map-marker{ width:13px; height:13px; margin:-7px 0 0 -7px; }
  .wm-map-list{ grid-template-columns:1fr; }
}

/* SWELL の見出し装飾（帯・疑似要素）は入口ページでは外す。記事側と同じ考え方。 */
.wm-portal h2, .wm-portal h3, .wm-focus-box h2, .wm-map-note + h2{ background:none; border:0; padding:0; box-shadow:none; color:inherit; }
.wm-portal h2::before, .wm-portal h2::after, .wm-portal h3::before, .wm-portal h3::after,
.wm-focus-box h2::before, .wm-focus-box h2::after{ content:none; display:none; }
.wm-portal > h2{ font-family:var(--wm-font-head,serif); font-size:clamp(22px,2.6vw,30px); margin:clamp(26px,3vw,40px) 0 6px; }

/* --- v1.3.7 地図の作り直し（2026-09-12） ---
   平面の影絵に同じ色の点を置いただけで、種別も分からず凡例も実態と合っていなかった。
   紙とインクの配色に合わせ、経緯線・ふち取り・種別の色分け・ホバーの題名札・地域の絞り込みを入れる。 */
.wm-map-panel{ background:var(--wm-panel,#f7f1e4); border:1px solid var(--wm-rule,rgba(29,26,23,.16)); padding:clamp(14px,2vw,22px); margin:18px 0 0; }
.wm-map-head{ display:flex; flex-wrap:wrap; align-items:baseline; gap:10px 16px; margin:0 0 12px; }
.wm-map-head strong{ font-family:var(--wm-font-head,serif); font-size:clamp(18px,2vw,23px); }
.wm-map-head .wm-map-sub{ font-size:14px; color:var(--wm-ground-muted,#5a5349); }

/* 海・陸・経緯線 */
.wm-world-map{ position:relative; width:100%; aspect-ratio:940/477; overflow:hidden;
  background:
    repeating-linear-gradient(to right, rgba(243,239,231,.07) 0 1px, transparent 1px 8.3333%),
    repeating-linear-gradient(to bottom, rgba(243,239,231,.07) 0 1px, transparent 1px 16.6667%),
    radial-gradient(120% 90% at 50% 40%, #2c333c 0%, #1b2027 100%);
  border:1px solid rgba(243,239,231,.18); box-shadow:inset 0 0 60px rgba(0,0,0,.45); }
.wm-world-map::after{ content:""; position:absolute; left:0; right:0; top:50%; height:1px; background:rgba(198,106,45,.35); z-index:1; } /* 赤道 */
.wm-world-map-base{ position:absolute; inset:0; width:100%; height:100%; display:block; z-index:1; }
.wm-world-land{ fill:#cbc4b4; stroke:rgba(247,241,228,.65); stroke-width:.5; }

/* ピン：種別で色を変え、ホバーで題名の札を出す */
.wm-map-marker{ position:absolute; left:var(--x,50%); top:var(--y,50%); width:11px; height:11px; margin:-6px 0 0 -6px; padding:0;
  border-radius:50%; background:var(--pin,#c66a2d); border:1.5px solid rgba(255,255,255,.85);
  box-shadow:0 0 0 3px color-mix(in srgb, var(--pin,#c66a2d) 35%, transparent), 0 1px 3px rgba(0,0,0,.5);
  text-indent:0; font-size:0; line-height:0; color:transparent; text-decoration:none; z-index:3; transition:transform .12s ease; }
.wm-map-marker[data-kind="遺跡"], .wm-map-marker[data-kind="巨石"]{ --pin:#c66a2d; }
.wm-map-marker[data-kind="事件"]{ --pin:#b2292d; }
.wm-map-marker[data-kind="技術"], .wm-map-marker[data-kind="要塞"], .wm-map-marker[data-kind="建築"], .wm-map-marker[data-kind="施設"]{ --pin:#1d6b4f; }
.wm-map-marker[data-kind="自然"], .wm-map-marker[data-kind="自然現象"], .wm-map-marker[data-kind="地質"], .wm-map-marker[data-kind="化石"]{ --pin:#286c78; }
.wm-map-marker[data-kind="文書"], .wm-map-marker[data-kind="美術"], .wm-map-marker[data-kind="遺物"], .wm-map-marker[data-kind="歴史"], .wm-map-marker[data-kind="伝承"], .wm-map-marker[data-kind="考古"]{ --pin:#8a5a12; }
.wm-map-marker[data-kind="宇宙"], .wm-map-marker[data-kind="医学"]{ --pin:#6b5ea8; }
.wm-map-marker:hover, .wm-map-marker:focus-visible{ transform:scale(1.7); outline:none; z-index:6; }
.wm-map-marker::after{ content:attr(data-label); position:absolute; left:50%; bottom:150%; transform:translateX(-50%) scale(.6);
  white-space:nowrap; max-width:280px; overflow:hidden; text-overflow:ellipsis; font-size:12px; line-height:1.5; color:#1d1a17;
  background:rgba(247,241,228,.97); border:1px solid rgba(29,26,23,.25); border-radius:3px; padding:3px 8px;
  opacity:0; pointer-events:none; transition:opacity .12s ease; }
.wm-map-marker:hover::after, .wm-map-marker:focus-visible::after{ opacity:1; transform:translateX(-50%) scale(.6); }
.wm-map-marker.is-dim{ opacity:.18; }

/* 凡例と絞り込み */
.wm-map-legend{ display:flex; flex-wrap:wrap; gap:8px 14px; font-size:13px; color:var(--wm-ground-muted,#5a5349); margin:10px 0 0; }
.wm-map-legend span{ display:inline-flex; align-items:center; gap:6px; }
.wm-map-legend span::before{ content:""; width:9px; height:9px; border-radius:50%; background:var(--pin,#c66a2d); border:1.5px solid rgba(255,255,255,.9); box-shadow:0 0 0 2px color-mix(in srgb, var(--pin,#c66a2d) 35%, transparent); }
.wm-map-filters{ display:flex; flex-wrap:wrap; gap:8px; margin:12px 0 0; }
.wm-map-filter{ font-size:13px; font-weight:700; padding:6px 12px; border-radius:999px; cursor:pointer;
  background:transparent; color:var(--wm-ink-2,#3a352e); border:1px solid var(--wm-rule,rgba(29,26,23,.28)); }
.wm-map-filter[aria-pressed="true"]{ background:var(--wm-accent-deep,#8f4c20); color:#fff8ee; border-color:transparent; }
.wm-map-note{ font-size:14px; line-height:1.85; color:var(--wm-ground-muted,#5a5349); margin:10px 0 0; }

/* 下の一覧：地域ごとに */
.wm-map-groups{ margin:26px 0 0; }
.wm-map-group{ margin:0 0 22px; }
.wm-map-group > h3{ font-family:var(--wm-font-head,serif); font-size:18px; margin:0 0 6px; padding:0 0 4px; border-bottom:2px solid var(--wm-accent,#c66a2d); display:inline-block; background:none; }
.wm-map-group > h3::before, .wm-map-group > h3::after{ content:none; display:none; }
.wm-map-group ul{ list-style:none; margin:0; padding:0; display:grid; grid-template-columns:repeat(auto-fill,minmax(290px,1fr)); gap:0 22px; }
.wm-map-group li{ padding:9px 0; border-top:1px solid var(--wm-rule,rgba(29,26,23,.14)); }
.wm-map-group a{ display:block; font-size:15.5px; line-height:1.6; font-weight:700; color:var(--wm-ink,#1d1a17); text-decoration:none; text-wrap:balance; word-break:auto-phrase; }
.wm-map-group a:hover{ color:var(--wm-accent-deep,#8f4c20); text-decoration:underline; }
.wm-map-group span{ display:block; font-size:13px; color:var(--wm-ground-muted,#5a5349); margin-top:2px; }
@media (max-width:820px){
  .wm-world-map{ aspect-ratio:940/560; }
  .wm-map-marker{ width:12px; height:12px; margin:-7px 0 0 -7px; }
  .wm-map-marker::after{ display:none; }
  .wm-map-group ul{ grid-template-columns:1fr; }
}

/* 地図の枠と見出し（紙の面に置く） */
.wm-map-panel{ background:var(--wm-panel,#f7f1e4); border:1px solid var(--wm-rule,rgba(29,26,23,.16)); padding:clamp(14px,2vw,22px); margin:18px 0 0; }
.wm-map-panel > .wm-map-title{ display:flex; flex-wrap:wrap; align-items:baseline; gap:8px 14px; margin:0 0 10px; }
.wm-map-panel > .wm-map-title strong{ font-family:var(--wm-font-head,serif); font-size:clamp(17px,1.9vw,21px); }
.wm-map-panel > .wm-map-title span{ font-size:13px; color:var(--wm-ground-muted,#5a5349); }
.wm-map-groups > .wm-map-group > h3{ display:flex; align-items:baseline; gap:8px; }

/* スマホでは地図を横スクロールで少し大きく見せる（点が押しやすい） */
.wm-map-scroll{ overflow-x:auto; overscroll-behavior-x:contain; }
.wm-map-scroll::-webkit-scrollbar{ height:6px; }
.wm-map-scroll::-webkit-scrollbar-thumb{ background:rgba(29,26,23,.3); border-radius:3px; }
.wm-map-hint{ display:none; font-size:12.5px; color:var(--wm-ground-muted,#5a5349); margin:6px 0 0; }
@media (max-width:820px){
  .wm-map-scroll .wm-world-map{ width:190%; aspect-ratio:940/520; }
  .wm-map-hint{ display:block; }
}
