:root{
  --ink:#0b0805;
  --ink-elev:#171009;
  --card-bg:#1c140d;
  --blood:#5e1119;
  --blood-deep:#2c0a0f;
  --blood-bright:#9c2430;
  --warn:#c9a227;
  --warn-dim:#8a6d1c;
  --moss:#748049;
  --moss-dim:#4d5730;
  --paper:#e8dcc0;
  --paper-dim:#a89873;
  --paper-faint:#6e6248;
  --line:rgba(232,220,192,0.14);
  --line-strong:rgba(232,220,192,0.28);
}
*{box-sizing:border-box;margin:0;padding:0;}
html{scroll-behavior:smooth;}
body{
  background:
    repeating-radial-gradient(circle at 0 0, transparent 0, transparent 2px, rgba(232,220,192,0.025) 2px, rgba(232,220,192,0.025) 3px),
    radial-gradient(ellipse 1300px 700px at 50% -8%, rgba(94,17,25,0.28), transparent 62%),
    var(--ink);
  color:var(--paper);
  font-family:'Noto Serif JP', serif;
  line-height:1.85;
  min-height:100vh;
  letter-spacing:0.01em;
}
::selection{background:var(--blood-bright);color:var(--paper);}

.mono{font-family:'Noto Sans Mono', monospace;}

/* ---------- 粒子ノイズ + スキャン線 ---------- */
.grain{
  position:fixed;inset:0;pointer-events:none;z-index:1;
  opacity:0.09;
  background-image:
    repeating-linear-gradient(0deg, transparent, transparent 2px, rgba(255,255,255,0.5) 2px, transparent 3px),
    repeating-linear-gradient(90deg, transparent, transparent 3px, rgba(0,0,0,0.4) 3px, transparent 4px);
  mix-blend-mode:overlay;
}
.grain::after{
  content:'';position:absolute;inset:0;
  background:radial-gradient(circle at 15% 30%, rgba(255,255,255,0.05), transparent 35%),
              radial-gradient(circle at 85% 70%, rgba(255,255,255,0.04), transparent 40%);
}

/* ---------- ヘッダー(雑誌の題字) ---------- */
header{
  position:sticky;top:0;z-index:50;
  background:rgba(9,6,4,0.94);
  backdrop-filter:blur(6px);
  border-bottom:3px double var(--line-strong);
}
.header-top{
  max-width:1180px;margin:0 auto;
  padding:6px 28px 0;
  display:flex;justify-content:space-between;
  font-family:'Noto Sans Mono',monospace;
  font-size:10px;letter-spacing:0.15em;
  color:var(--paper-faint);
}
.header-inner{
  max-width:1180px;margin:0 auto;
  padding:10px 28px 16px;
  display:flex;align-items:flex-end;justify-content:space-between;
  gap:24px;flex-wrap:wrap;
}
.logo{
  font-family:'Shippori Mincho', serif;
  font-weight:800;
  font-size:26px;
  color:var(--paper);
  letter-spacing:0.14em;
  display:flex;align-items:baseline;gap:10px;
  white-space:nowrap;
  text-decoration:none;
}
.logo .mark{
  display:inline-block;width:11px;height:11px;
  background:var(--blood-bright);
  transform:rotate(45deg);
  box-shadow:0 0 10px rgba(156,36,48,0.8);
  flex-shrink:0;
  align-self:center;
}
.logo .sub{
  font-family:'Noto Sans Mono',monospace;
  font-weight:400;font-size:10px;color:var(--paper-faint);
  letter-spacing:0.2em;display:block;margin-top:4px;
}
nav.cat-nav{
  display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end;
}
.cat-btn{
  font-family:'Noto Sans Mono',monospace;
  font-size:11.5px;font-weight:500;
  color:var(--paper-dim);
  background:transparent;
  border:1px solid var(--line);
  padding:7px 13px;
  cursor:pointer;
  letter-spacing:0.06em;
  transition:all 0.2s ease;
  white-space:nowrap;
  text-decoration:none;
  display:inline-block;
}
.cat-btn:hover{color:var(--warn);border-color:var(--line-strong);}
.cat-btn.active{
  color:var(--ink);
  background:var(--warn);
  border-color:var(--warn);
  font-weight:700;
}

/* ---------- 募集ティッカー ---------- */
.ticker{
  border-bottom:1px solid var(--line);
  background:rgba(94,17,25,0.1);
  overflow:hidden;
  white-space:nowrap;
}
.ticker-inner{
  max-width:1180px;margin:0 auto;padding:7px 28px;
  font-family:'Noto Sans Mono',monospace;
  font-size:10.5px;letter-spacing:0.1em;color:var(--paper-dim);
  display:flex;gap:36px;flex-wrap:wrap;
}
.ticker-inner b{color:var(--warn);}

/* ---------- ヒーロー ---------- */
.hero{
  max-width:1180px;margin:0 auto;
  padding:56px 28px 34px;
  position:relative;z-index:2;
}
.hero .eyebrow{
  font-family:'Noto Sans Mono',monospace;
  font-size:11px;letter-spacing:0.35em;color:var(--blood-bright);
  font-weight:700;margin-bottom:16px;
}
.hero h1{
  font-family:'Shippori Mincho', serif;
  font-weight:800;
  font-size:clamp(28px, 4.2vw, 42px);
  color:var(--paper);
  line-height:1.45;
  letter-spacing:0.02em;
  max-width:760px;
}
.hero h1 .accent{color:var(--warn);}
.hero p.desc{
  margin-top:18px;color:var(--paper-dim);font-size:13.5px;
  max-width:600px;line-height:2;
}

/* ---------- 破線(切り取り線) ---------- */
.tear-line{
  max-width:1180px;margin:0 auto;padding:0 28px;
  display:flex;align-items:center;gap:10px;
  color:var(--paper-faint);font-size:11px;
}
.tear-line::before,.tear-line::after{
  content:'';flex:1;border-top:1px dashed var(--line-strong);
}

/* ---------- ツールバー ---------- */
.toolbar{
  max-width:1180px;margin:0 auto;
  padding:20px 28px;
  display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:14px;
}
.result-count{font-family:'Noto Sans Mono',monospace;font-size:11.5px;color:var(--paper-faint);letter-spacing:0.05em;}
.result-count b{color:var(--warn);font-weight:700;}
.archive-select{display:flex;align-items:center;gap:10px;}
.archive-select label{font-family:'Noto Sans Mono',monospace;font-size:11px;color:var(--paper-faint);letter-spacing:0.1em;}
select{
  background:var(--ink-elev);
  border:1px solid var(--line-strong);
  color:var(--paper);
  padding:7px 11px;
  font-family:'Noto Sans Mono',monospace;
  font-size:11.5px;
  cursor:pointer;
}

/* ---------- 記事一覧(切り抜き風カード) ---------- */
main{max-width:1180px;margin:0 auto;padding:20px 28px 100px;position:relative;z-index:2;}
.grid{
  display:grid;grid-template-columns:repeat(2, 1fr);gap:26px 22px;
}
@media(max-width:760px){.grid{grid-template-columns:1fr;}}

.card{
  background:linear-gradient(168deg, var(--card-bg), var(--ink-elev));
  border:1px solid var(--line);
  padding:0;overflow:hidden;
  display:flex;flex-direction:column;
  transition:transform 0.25s ease, box-shadow 0.25s ease;
  position:relative;
  text-decoration:none;
  color:inherit;
  box-shadow:2px 3px 0 rgba(0,0,0,0.35);
}
.card:nth-child(odd){transform:rotate(-0.4deg);}
.card:nth-child(even){transform:rotate(0.35deg);}
.card:hover{transform:rotate(0deg) translateY(-3px);box-shadow:3px 6px 14px rgba(0,0,0,0.45);border-color:var(--line-strong);}
.card.hidden{display:none;}
.card-thumb{
  height:104px;
  position:relative;
  background:var(--blood-deep);
  overflow:hidden;
  display:flex;align-items:center;justify-content:center;
}
.card-thumb::before{
  content:'';position:absolute;inset:0;
  background:
    repeating-radial-gradient(circle, rgba(232,220,192,0.09) 0 1px, transparent 1px 5px),
    repeating-linear-gradient(115deg, transparent 0 16px, rgba(232,220,192,0.05) 16px 17px),
    radial-gradient(circle at 30% 20%, rgba(156,36,48,0.55), transparent 60%);
}
.thumb-mark{
  font-family:'Noto Sans Mono',monospace;font-weight:700;
  font-size:10.5px;letter-spacing:0.2em;color:var(--warn);
  z-index:1;
  border:2px solid var(--blood-bright);
  border-radius:255px 15px 225px 15px/15px 225px 15px 255px;
  padding:6px 14px;
  background:rgba(11,8,5,0.55);
  transform:rotate(-4deg);
}
.card-body{padding:18px 20px 20px;flex:1;display:flex;flex-direction:column;}
.card-meta{display:flex;gap:10px;align-items:center;margin-bottom:10px;flex-wrap:wrap;}
.tag{
  font-family:'Noto Sans Mono',monospace;
  font-size:10px;font-weight:700;letter-spacing:0.05em;
  padding:3px 9px;
  border:1px solid;
  transform:rotate(-1.5deg);
  display:inline-block;
}
.tag.case{color:var(--blood-bright);border-color:rgba(156,36,48,0.55);}
.tag.legend{color:var(--warn);border-color:rgba(201,162,39,0.45);}
.tag.folklore{color:#a6b389;border-color:rgba(116,128,73,0.55);}
.date{font-family:'Noto Sans Mono',monospace;font-size:10.5px;color:var(--paper-faint);letter-spacing:0.03em;}
.card h2{
  font-family:'Shippori Mincho',serif;
  font-size:16.5px;font-weight:700;
  color:var(--paper);line-height:1.6;margin-bottom:9px;
}
.card p.excerpt{
  font-size:12.5px;color:var(--paper-dim);line-height:1.85;
  flex:1;
}
.card-foot{
  margin-top:14px;padding-top:12px;border-top:1px dashed var(--line);
  display:flex;justify-content:space-between;align-items:center;
}
.read-more{
  font-family:'Noto Sans Mono',monospace;
  font-size:11px;color:var(--warn);letter-spacing:0.04em;font-weight:700;
}
.comment-count{font-family:'Noto Sans Mono',monospace;font-size:10.5px;color:var(--paper-faint);}

/* ---------- 記事詳細ページ ---------- */
.article-page main{padding-top:34px;}
.article-wrap{
  background:linear-gradient(168deg, var(--card-bg), var(--ink-elev));
  border:1px solid var(--line-strong);
  padding:42px 46px;
  max-width:800px;margin:0 auto;
  box-shadow:3px 5px 0 rgba(0,0,0,0.35);
}
@media(max-width:640px){.article-wrap{padding:28px 20px;}}
.close-article{
  font-family:'Noto Sans Mono',monospace;
  font-size:11.5px;color:var(--paper-faint);
  margin-bottom:24px;letter-spacing:0.06em;
  display:inline-flex;align-items:center;gap:6px;
  text-decoration:none;
}
.close-article:hover{color:var(--warn);}
.article-wrap .card-meta{margin-bottom:16px;}
.article-wrap h2{
  font-family:'Shippori Mincho',serif;font-weight:700;
  font-size:clamp(21px,3vw,27px);
  color:var(--paper);line-height:1.6;margin-bottom:22px;
}
.article-wrap .body-text{color:var(--paper-dim);font-size:14px;line-height:2.05;}
.article-wrap .body-text p{margin-bottom:19px;}
.article-wrap .body-text .quote-line{
  border-left:3px solid var(--blood-bright);
  padding:13px 18px;
  margin:24px 0;
  color:var(--paper);
  font-family:'Noto Serif JP',serif;
  font-size:14px;
  background:rgba(94,17,25,0.1);
}

/* ---------- コメント欄(投稿用紙風) ---------- */
.comments{margin-top:34px;padding-top:28px;border-top:2px dashed var(--line-strong);}
.comments-title{
  font-family:'Noto Sans Mono',monospace;
  font-size:12px;letter-spacing:0.08em;color:var(--warn);
  font-weight:700;margin-bottom:20px;
  display:flex;align-items:center;gap:8px;
}
.comment{
  padding:16px 18px;margin-bottom:12px;
  background:rgba(0,0,0,0.22);
  border:1px solid var(--line);
  border-left:3px solid var(--line-strong);
}
.comment-head{
  display:flex;justify-content:space-between;align-items:baseline;margin-bottom:7px;
  flex-wrap:wrap;gap:6px;
}
.comment-author{font-size:12px;font-weight:700;color:var(--paper);}
.commenter-blog{font-family:'Noto Sans Mono',monospace;font-size:10px;font-weight:400;color:var(--paper-faint);letter-spacing:0.01em;}

/* ---------- コメント投稿者アイコン/プロフィールリンク ---------- */
.comment-user{
  display:inline-flex;align-items:center;gap:7px;
  text-decoration:none;
}
.comment-user:hover .comment-author{color:var(--warn);}
.avatar{
  width:22px;height:22px;border-radius:50%;
  background:linear-gradient(160deg, var(--blood), var(--blood-deep));
  border:1px solid var(--line-strong);
  display:inline-flex;align-items:center;justify-content:center;
  font-family:'Shippori Mincho',serif;font-weight:700;font-size:11px;
  color:var(--paper);flex-shrink:0;
}
.avatar.anon{
  background:linear-gradient(160deg, #3a342b, #201c17);
  color:var(--paper-faint);
}

/* ---------- プロフィールページ ---------- */
.profile-wrap{
  max-width:480px;margin:60px auto 0;
  background:linear-gradient(168deg, var(--card-bg), var(--ink-elev));
  border:1px solid var(--line-strong);
  padding:40px 36px;
  text-align:center;
  box-shadow:3px 5px 0 rgba(0,0,0,0.35);
}
.profile-wrap .avatar{
  width:72px;height:72px;font-size:28px;margin:0 auto 18px;
}
.profile-wrap h2{
  font-family:'Shippori Mincho',serif;font-weight:700;
  font-size:22px;color:var(--paper);margin-bottom:6px;
}
.profile-wrap .profile-sub{
  font-family:'Noto Sans Mono',monospace;font-size:11px;
  color:var(--paper-faint);letter-spacing:0.08em;margin-bottom:26px;
}
.profile-table{
  text-align:left;border-top:1px dashed var(--line);margin-bottom:22px;
}
.profile-row{
  display:flex;gap:12px;padding:12px 0;border-bottom:1px dashed var(--line);
  font-size:13px;
}
.profile-row .p-label{
  font-family:'Noto Sans Mono',monospace;color:var(--paper-faint);
  width:6.5em;flex-shrink:0;font-size:11px;padding-top:1px;
}
.profile-row .p-value{color:var(--paper-dim);}
.profile-quote{
  font-family:'Noto Serif JP',serif;color:var(--paper);
  font-size:14px;line-height:1.9;
  border-left:3px solid var(--blood-bright);
  padding:12px 16px;text-align:left;
  background:rgba(94,17,25,0.08);
}
.profile-back{
  display:inline-block;margin-top:28px;
  font-family:'Noto Sans Mono',monospace;font-size:11.5px;
  color:var(--paper-faint);text-decoration:none;
}
.profile-back:hover{color:var(--warn);}

.comment-date{font-family:'Noto Sans Mono',monospace;font-size:10.5px;color:var(--paper-faint);}
.comment-body{font-size:13px;color:var(--paper-dim);line-height:1.9;}

/* ---------- 記事間ナビ ---------- */
.article-nav{
  max-width:800px;margin:26px auto 0;
  display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;
}
.article-nav a{
  font-family:'Noto Sans Mono',monospace;
  font-size:11.5px;color:var(--paper-faint);text-decoration:none;
  border:1px solid var(--line);padding:9px 15px;
  letter-spacing:0.04em;
  transition:all 0.2s ease;
}
.article-nav a:hover{color:var(--warn);border-color:var(--line-strong);}

/* ---------- 行方不明者情報(月次特集)の注記 ---------- */
.missing-note{
  margin-top:22px;padding-top:16px;border-top:1px dashed var(--line);
  font-size:13px;color:var(--paper-dim);text-align:center;
}

footer{
  border-top:3px double var(--line-strong);
  padding:32px 28px 40px;
  text-align:center;
  position:relative;z-index:2;
}
footer .site-credit{
  font-family:'Noto Sans Mono',monospace;
  font-size:11px;color:var(--paper-faint);letter-spacing:0.06em;
}
footer .disclaimer{
  margin-top:9px;font-size:10px;color:var(--paper-faint);opacity:0.6;
}
