/* 来場者用ページ（index / stamp / result）専用の配色。
   夜の病棟をさまよう、という世界観に合わせて style.css の暖色フェスカラーを
   夜更け×月明かり×ランタンの灯り、という落ち着いたトーンで上書きする。
   管理者・スタッフ用ページ（style.css のみ読み込み）には影響しない。 */

:root {
  --color-bg: #101a2c;
  --color-primary: #c9822f;
  --color-primary-dark: #f0c68c;
  --color-accent: #7fb8c9;
  --color-text: #e6ecf7;
  --color-card: #17233c;
  --color-muted: #8496b8;
  --shadow: 0 10px 26px rgba(0, 0, 0, 0.45);
  --font-brush: "Yomogi", cursive;
  --font-body: "Shippori Mincho", "Hiragino Mincho ProN", serif;
}

body {
  background: radial-gradient(circle at 50% 0%, #16233b 0%, #05080f 75%);
  font-family: var(--font-body);
  position: relative;
}

/* 粒子ノイズ（フィルムグレイン）とビネットで、少し不穏な空気感を出す */
body::before {
  content: "";
  position: fixed;
  inset: 0;
  z-index: 1;
  pointer-events: none;
  opacity: 0.05;
  mix-blend-mode: overlay;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='120'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
}

body::after {
  content: "";
  position: fixed;
  inset: 0;
  z-index: 1;
  pointer-events: none;
  background: radial-gradient(ellipse at 50% 40%, transparent 35%, rgba(0, 0, 0, 0.6) 100%);
}

.page,
.app-shell {
  position: relative;
  z-index: 2;
}

@keyframes flicker {
  0%, 19%, 21%, 23%, 80%, 100% { opacity: 1; }
  20%, 22% { opacity: 0.45; }
  50% { opacity: 0.88; }
}

.app-title,
#story-title,
.status-banner h2 {
  font-family: var(--font-brush);
  letter-spacing: 0.06em;
  text-shadow: 0 0 14px rgba(201, 130, 47, 0.35);
  animation: flicker 7s infinite;
}

.card {
  border: 1px solid rgba(255, 255, 255, 0.06);
}

.status-banner.invalid {
  background: #331c20;
  border: 2px solid #b8555f;
}

.status-banner.happy {
  background: linear-gradient(180deg, #3a2f14 0%, #24200e 100%);
  border: 2px solid #e0b35c;
}

.status-banner.true-end {
  background: #1a2338;
  border: 2px solid #6f88b3;
}

.status-banner.bad-end {
  background: #120c17;
  border: 2px solid #5c3f70;
  color: #e6d9ec;
}

.qr-item {
  background: #17233c;
}

.reveal-item {
  border-bottom-color: rgba(255, 255, 255, 0.08);
}

.reveal-badge.real {
  background: #1f3a24;
  color: #8fd39c;
}

.reveal-badge.decoy {
  background: #3a1f22;
  color: #e08c8c;
}
