/* aurimux-web — M9 ガラス風スタイル
 *
 * AuriMux 本体 (WPF) の DarkTheme.xaml / GlassPanel と統一されたデザイン感。
 * Web では backdrop-filter で実ブラーが使える（WPF の DWM アクリル制約と違って軽量）。
 * doc/plan-distribution-with-lolipop.md §3 のマッピング表に基づく。
 */

:root {
  /* 背景 */
  --bg-base: #0E0E10;
  --bg-grad-start: #0B0B0D;
  --bg-grad-end: #15161A;

  /* ガラス面（縦グラデ・8桁HEX=RGBA） */
  --glass-bg-start: #22202AD9;
  --glass-bg-end: #15161ACC;

  /* 上辺ハイライト→中→下端の縦グラデ枠 */
  --glass-edge-top: rgba(255,255,255,0.20);
  --glass-edge-mid: rgba(44,45,52,0.13);
  --glass-edge-bottom: rgba(0,0,0,0.07);

  /* アクセント=ゴールド */
  --accent: #FFD27A;
  --accent-strong: #E7B156;
  --accent-glow: rgba(255, 210, 122, 0.35);

  /* 文字 */
  --text: #E8E8E8;
  --text-dim: #B4B5B8;
  --text-muted: #7E8086;

  /* 区切り */
  --border-dim: rgba(255,255,255,0.06);

  /* 警告/エラー */
  --danger: #E66B6B;
  --success: #82D8A4;

  --radius: 12px;
  --radius-sm: 8px;
}

* {
  box-sizing: border-box;
}

html, body {
  margin: 0;
  padding: 0;
  min-height: 100%;
}

body {
  background: var(--bg-base);
  background-image: linear-gradient(180deg, var(--bg-grad-start), var(--bg-grad-end));
  background-attachment: fixed;
  color: var(--text);
  font-family: "Yu Gothic UI", "Segoe UI", "Meiryo", system-ui, -apple-system, sans-serif;
  font-size: 16px;
  line-height: 1.7;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}

img { max-width: 100%; height: auto; }
a {
  color: var(--accent);
  text-decoration: none;
  transition: color .15s ease;
}
a:hover { color: var(--accent-strong); text-decoration: underline; }

/* ===== レイアウト ===== */

.container {
  width: 100%;
  max-width: 1080px;
  margin: 0 auto;
  padding: 24px;
}

.site-header {
  position: sticky;
  top: 0;
  z-index: 10;
  background: linear-gradient(180deg, rgba(14,14,16,0.85), rgba(14,14,16,0.7));
  backdrop-filter: blur(16px) saturate(180%);
  -webkit-backdrop-filter: blur(16px) saturate(180%);
  border-bottom: 1px solid var(--border-dim);
}

.site-header-inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 12px 24px;
  max-width: 1080px;
  margin: 0 auto;
}

.brand {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  font-weight: 700;
  font-size: 18px;
  letter-spacing: 0.02em;
}

.brand-mark {
  width: 28px;
  height: 28px;
  border-radius: 7px;
  background: linear-gradient(135deg, #FFD27A, #E7B156);
  display: inline-block;
  box-shadow: 0 0 14px var(--accent-glow);
}

.brand-name {
  color: var(--text);
}

.site-nav {
  display: flex;
  gap: 22px;
  font-size: 14px;
}

.site-nav a {
  color: var(--text-dim);
}

.site-nav a:hover {
  color: var(--accent);
  text-decoration: none;
}

.site-footer {
  margin-top: 64px;
  padding: 24px;
  text-align: center;
  color: var(--text-muted);
  font-size: 13px;
  border-top: 1px solid var(--border-dim);
}

/* ===== ガラス面 ===== */

.glass-panel {
  position: relative;
  background: linear-gradient(180deg, var(--glass-bg-start), var(--glass-bg-end));
  backdrop-filter: blur(20px) saturate(180%);
  -webkit-backdrop-filter: blur(20px) saturate(180%);
  border-radius: var(--radius);
  padding: 24px;
  margin: 16px 0;
  border: 1px solid var(--border-dim);
  box-shadow: 0 10px 32px rgba(0,0,0,0.45);
}

.glass-panel::before {
  content: '';
  position: absolute;
  inset: 0;
  border-radius: var(--radius);
  pointer-events: none;
  padding: 1px;
  background: linear-gradient(180deg,
    var(--glass-edge-top) 0%,
    var(--glass-edge-mid) 50%,
    var(--glass-edge-bottom) 100%);
  -webkit-mask:
    linear-gradient(#000 0 0) content-box,
    linear-gradient(#000 0 0);
  -webkit-mask-composite: xor;
          mask-composite: exclude;
}

/* ===== ヒーロー ===== */

.hero {
  padding: 80px 24px 56px;
  text-align: center;
}

.hero-title {
  font-size: clamp(36px, 5vw, 56px);
  font-weight: 700;
  margin: 0 0 16px;
  letter-spacing: -0.01em;
  background: linear-gradient(135deg, #FFEBC4, #FFD27A 40%, #E7B156);
  -webkit-background-clip: text;
          background-clip: text;
  -webkit-text-fill-color: transparent;
  color: transparent;
}

.hero-sub {
  font-size: clamp(16px, 2vw, 19px);
  color: var(--text-dim);
  margin: 0 0 36px;
}

.hero-actions {
  display: inline-flex;
  flex-wrap: wrap;
  gap: 16px;
  justify-content: center;
}

/* ===== ボタン ===== */

.btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  padding: 14px 28px;
  border-radius: var(--radius-sm);
  font-weight: 600;
  font-size: 15px;
  border: 1px solid transparent;
  cursor: pointer;
  transition: transform .12s ease, box-shadow .15s ease, background .15s ease;
  text-decoration: none;
  font-family: inherit;
}

.btn-primary {
  background: linear-gradient(135deg, var(--accent), var(--accent-strong));
  color: #1A1308;
  box-shadow: 0 6px 18px var(--accent-glow);
}
.btn-primary:hover {
  transform: translateY(-1px);
  box-shadow: 0 10px 24px var(--accent-glow);
  color: #1A1308;
  text-decoration: none;
}
.btn-primary:active { transform: translateY(0); }

.btn-secondary {
  background: rgba(255,255,255,0.06);
  color: var(--text);
  border-color: var(--border-dim);
}
.btn-secondary:hover {
  background: rgba(255,255,255,0.10);
  color: var(--accent);
  text-decoration: none;
}

.btn-small {
  padding: 8px 14px;
  font-size: 13px;
}

/* ===== 特徴グリッド ===== */

.features {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
  gap: 16px;
  margin: 32px 0;
}

.feature {
  padding: 20px;
}

.feature h3 {
  margin: 0 0 8px;
  font-size: 17px;
  color: var(--accent);
}

.feature p {
  margin: 0;
  font-size: 14px;
  color: var(--text-dim);
  line-height: 1.65;
}

/* ===== スクリーンショット ===== */

.screenshots {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(420px, 1fr));
  gap: 24px;
  margin: 32px 0;
}

.screenshot {
  position: relative;
  border-radius: var(--radius);
  overflow: hidden;
  background: #15161A;
  border: 1px solid var(--border-dim);
  aspect-ratio: 16 / 10;
  display: flex;
  align-items: center;
  justify-content: center;
}

.screenshot img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.screenshot-placeholder {
  color: var(--text-muted);
  font-size: 13px;
  letter-spacing: 0.05em;
}

/* ===== 見出し ===== */

h1, h2, h3, h4 {
  color: var(--text);
  line-height: 1.3;
}

h2 {
  font-size: 28px;
  margin: 48px 0 16px;
  letter-spacing: -0.005em;
}

h3 { font-size: 19px; margin: 24px 0 12px; }
h4 { font-size: 16px; margin: 18px 0 8px; color: var(--text-dim); }

p { margin: 0 0 14px; }

ul, ol { padding-left: 22px; }
li { margin: 4px 0; }

code, kbd {
  font-family: "Cascadia Code", "Consolas", "Menlo", monospace;
  font-size: 0.92em;
  background: rgba(255,255,255,0.05);
  border: 1px solid var(--border-dim);
  padding: 1px 6px;
  border-radius: 4px;
  color: var(--accent);
}

pre {
  background: #0A0A0C;
  border: 1px solid var(--border-dim);
  border-radius: var(--radius-sm);
  padding: 14px 16px;
  overflow-x: auto;
  font-family: "Cascadia Code", "Consolas", "Menlo", monospace;
  font-size: 13.5px;
  line-height: 1.55;
}

pre code { background: none; border: none; padding: 0; color: var(--text); }

/* ===== バージョンチップ ===== */

.version-chip {
  display: inline-block;
  padding: 4px 10px;
  border-radius: 20px;
  background: rgba(255, 210, 122, 0.12);
  color: var(--accent);
  border: 1px solid rgba(255, 210, 122, 0.25);
  font-size: 12px;
  font-weight: 600;
  letter-spacing: 0.05em;
}

.meta-line {
  color: var(--text-muted);
  font-size: 13px;
  margin: 8px 0 0;
}

/* ===== フォーム ===== */

.form {
  display: grid;
  gap: 16px;
}

.form-row { display: flex; flex-direction: column; gap: 6px; }

.form-label {
  font-size: 13px;
  color: var(--text-dim);
  font-weight: 600;
}

.form-required {
  color: var(--accent);
  margin-left: 4px;
}

.form-input,
.form-textarea {
  width: 100%;
  background: rgba(0,0,0,0.35);
  border: 1px solid var(--border-dim);
  color: var(--text);
  padding: 11px 14px;
  border-radius: var(--radius-sm);
  font-size: 15px;
  font-family: inherit;
  transition: border-color .15s ease, box-shadow .15s ease;
}

.form-input:focus,
.form-textarea:focus {
  outline: none;
  border-color: var(--accent);
  box-shadow: 0 0 0 3px var(--accent-glow);
}

.form-textarea {
  min-height: 160px;
  resize: vertical;
  line-height: 1.6;
}

/* honeypot: 完全に視認不可・キーボード到達不可 */
.honeypot {
  position: absolute;
  left: -9999px;
  top: -9999px;
  width: 1px;
  height: 1px;
  opacity: 0;
  pointer-events: none;
}

.form-note {
  color: var(--text-muted);
  font-size: 13px;
}

.form-status {
  padding: 14px 18px;
  border-radius: var(--radius-sm);
  font-size: 14px;
  border: 1px solid var(--border-dim);
}

.form-status.ok {
  background: rgba(130, 216, 164, 0.10);
  color: var(--success);
  border-color: rgba(130, 216, 164, 0.30);
}

.form-status.err {
  background: rgba(230, 107, 107, 0.10);
  color: var(--danger);
  border-color: rgba(230, 107, 107, 0.30);
}

/* ===== レスポンシブ ===== */

@media (max-width: 720px) {
  .site-nav { gap: 14px; font-size: 13px; }
  .site-header-inner { padding: 10px 16px; }
  .container { padding: 16px; }
  .hero { padding: 48px 16px 40px; }
  .glass-panel { padding: 18px; }
  h2 { font-size: 24px; margin-top: 36px; }
}

/* ===== レガシーブラウザ向け backdrop-filter フォールバック ===== */

@supports not ((backdrop-filter: blur(1px)) or (-webkit-backdrop-filter: blur(1px))) {
  .glass-panel { background: #1A1B22; }
  .site-header { background: rgba(14,14,16,0.95); }
}

/* ===== スクロールバー（M9 と統一） ===== */

::-webkit-scrollbar { width: 10px; height: 10px; }
::-webkit-scrollbar-track { background: transparent; }
::-webkit-scrollbar-thumb {
  background: rgba(255,255,255,0.10);
  border-radius: 5px;
}
::-webkit-scrollbar-thumb:hover {
  background: rgba(255, 210, 122, 0.35);
}
