/* ╔════════════════════════════════════════════════════════════╗
   ║  KENSAI WEB · v4 chassis tokens                             ║
   ╚════════════════════════════════════════════════════════════╝ */

:root {
  --v4-bg:       #08090b;
  --v4-bg-1:     #0b0c0f;
  --v4-bg-2:     #101115;
  --v4-bg-3:     #16181d;
  --v4-bg-4:     #1e2028;
  --v4-panel:    #0c0e12;
  --v4-panel-2:  #11131a;

  --v4-line:     rgba(255,255,255,0.06);
  --v4-line-2:   rgba(255,255,255,0.10);
  --v4-line-3:   rgba(255,255,255,0.18);

  --v4-text:     #eceae2;
  --v4-dim:      #a2a298;
  --v4-mute:     #6d6e66;
  --v4-faint:    #44453f;
  --v4-ghost:    #2a2b26;

  --v4-signal:   #e8c87d;
  --v4-signal-2: #c9a858;
  --v4-signal-dim: rgba(232,200,125,0.10);
  --v4-signal-line: rgba(232,200,125,0.30);

  --v4-crit:     #ef6a5a;
  --v4-high:     #d9954c;
  --v4-med:      #9a8f5a;
  --v4-low:      #6a7a5e;
  --v4-ok:       #8fa780;

  --v4-mono:     "JetBrains Mono", "Geist Mono", ui-monospace, SFMono-Regular, Menlo, monospace;
  --v4-sans:     "Inter", "Geist", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  --v4-display:  "Cormorant Garamond", "EB Garamond", Georgia, serif;
  --v4-jp:       "Noto Serif JP", serif;
}

* { box-sizing: border-box; }
html, body {
  margin: 0; padding: 0;
  background: var(--v4-bg);
  color: var(--v4-text);
  font-family: var(--v4-sans);
  font-size: 13.5px;
  line-height: 1.5;
  letter-spacing: -0.003em;
  -webkit-font-smoothing: antialiased;
  font-feature-settings: "cv11","ss01";
}

::-webkit-scrollbar { width: 8px; height: 8px; }
::-webkit-scrollbar-track { background: var(--v4-bg); }
::-webkit-scrollbar-thumb { background: var(--v4-line-2); border-radius: 4px; }
::-webkit-scrollbar-thumb:hover { background: var(--v4-line-3); }

.mono { font-family: var(--v4-mono); font-variant-numeric: tabular-nums; letter-spacing: 0.01em; }
.disp { font-family: var(--v4-display); font-weight: 300; letter-spacing: -0.02em; }
.it   { font-style: italic; }
.jp   { font-family: var(--v4-jp); font-weight: 400; }

.eyebrow {
  font-family: var(--v4-mono);
  font-size: 10px;
  letter-spacing: 0.22em;
  color: var(--v4-mute);
  font-weight: 600;
  text-transform: uppercase;
}

.btn {
  display: inline-flex; align-items: center; gap: 8px;
  padding: 10px 18px;
  background: transparent;
  border: 1px solid var(--v4-line-2);
  color: var(--v4-text);
  font-family: var(--v4-mono);
  font-size: 11px;
  letter-spacing: 0.14em;
  font-weight: 600;
  text-transform: uppercase;
  cursor: pointer;
  transition: all .14s;
  border-radius: 0;
  text-decoration: none;
}
.btn:hover { border-color: var(--v4-line-3); background: var(--v4-bg-3); }
.btn-primary {
  background: var(--v4-signal);
  color: #1a1609;
  border-color: var(--v4-signal);
}
.btn-primary:hover { background: var(--v4-signal-2); border-color: var(--v4-signal-2); }
.btn-ghost { padding: 8px 12px; }

.kbd {
  display: inline-block; padding: 1px 6px; min-width: 18px;
  font-family: var(--v4-mono); font-size: 10px;
  background: var(--v4-bg-3); color: var(--v4-dim);
  border: 1px solid var(--v4-line-2); border-radius: 2px;
  text-align: center; font-weight: 500;
}

.dot { display: inline-block; width: 6px; height: 6px; border-radius: 50%; }
.dot-live { background: var(--v4-signal); box-shadow: 0 0 6px var(--v4-signal); animation: pulse 1.6s ease-in-out infinite; }
@keyframes pulse { 0%,100% { opacity: 1; } 50% { opacity: 0.35; } }

.hairline { border: 0; border-top: 1px solid var(--v4-line); margin: 0; }

.sev { font-family: var(--v4-mono); font-size: 10px; letter-spacing: 0.16em; font-weight: 600; text-transform: uppercase; }
.sev-crit { color: var(--v4-crit); }
.sev-high { color: var(--v4-high); }
.sev-med  { color: var(--v4-med); }
.sev-low  { color: var(--v4-low); }

/* containers */
.wrap { max-width: 1320px; margin: 0 auto; padding: 0 32px; }
.wrap-wide { max-width: 1480px; margin: 0 auto; padding: 0 32px; }

/* section eyebrow header */
.section-head {
  display: flex; align-items: baseline; gap: 18px;
  padding: 14px 0; border-bottom: 1px solid var(--v4-line);
  font-family: var(--v4-mono); font-size: 10.5px;
  letter-spacing: 0.2em; color: var(--v4-mute); font-weight: 600;
  text-transform: uppercase;
}
.section-head .num { color: var(--v4-signal); }
.section-head .desc { margin-left: auto; color: var(--v4-faint); letter-spacing: 0.16em; font-size: 9.5px; }

/* gradient line accent (v4: subtle amber, not gradient) */
.amber-line {
  height: 1px; background: linear-gradient(90deg, transparent, var(--v4-signal-line), transparent);
}

/* Display headline */
.display-h {
  font-family: var(--v4-display);
  font-weight: 300;
  font-size: clamp(56px, 8vw, 124px);
  line-height: 0.94;
  letter-spacing: -0.025em;
  color: var(--v4-text);
}
.display-h .it { font-style: italic; opacity: 0.86; }
.display-h .signal { color: var(--v4-signal); }

/* link */
a { color: var(--v4-signal); text-decoration: none; border-bottom: 1px solid transparent; transition: border-color .14s; }
a:hover { border-bottom-color: var(--v4-signal-line); }

/* status strip util */
.strip {
  height: 28px; display: flex; align-items: center; padding: 0 24px;
  background: var(--v4-bg-1); border-top: 1px solid var(--v4-line); border-bottom: 1px solid var(--v4-line);
  font-family: var(--v4-mono); font-size: 10.5px; color: var(--v4-mute);
  letter-spacing: 0.14em; gap: 24px; overflow: hidden;
}
.strip .item { display: flex; gap: 8px; align-items: center; flex-shrink: 0; }
.strip .item b { color: var(--v4-text); font-weight: 600; }
.strip .item i { color: var(--v4-signal); font-style: normal; }

/* table */
table.k { width: 100%; border-collapse: collapse; font-family: var(--v4-mono); font-size: 11.5px; }
table.k th, table.k td { padding: 13px 16px; text-align: left; border-bottom: 1px solid var(--v4-line); }
table.k th { font-size: 9.5px; letter-spacing: 0.18em; color: var(--v4-mute); font-weight: 600; text-transform: uppercase; }
table.k td { color: var(--v4-dim); }
table.k td.t { color: var(--v4-text); font-weight: 500; }
table.k td.signal { color: var(--v4-signal); font-weight: 600; }
table.k tr:hover td { background: rgba(232,200,125,0.02); }
