/* ============================================================
   The Vault — steel-and-teal heist noir over the shared engine CSS.
   Cold bank steel, a green console glow, brass tumblers and dials;
   found documents restyled as case-file cards; and the four-station
   role-select screen.
   ============================================================ */

:root {
  --serif: "Palatino Linotype", "Book Antiqua", Palatino, Georgia, serif;
  --bg-0: #070a0f;
  --bg-1: #0d1420;
  --bg-2: #131c2a;
  --stone-1: #2b3547;
  --stone-2: #1a2230;
  --torch: #7cf0be;          /* console green */
  --torch-deep: #46d39a;
  --gold: #c9a227;
  --gold-bright: #e8c85a;
  --parchment: #e6ddc9;
  --ink: #0c141d;
}

/* title screen: a dark bank floor lit by a low green console + brass wheel */
#title-screen {
  background:
    radial-gradient(1100px 640px at 50% 122%, #12303a 0%, transparent 60%),
    radial-gradient(820px 480px at 82% -6%, #1a2536 0%, transparent 55%),
    linear-gradient(180deg, #070a0f 0%, #0d1420 60%, #131c2a 100%);
}
#title-bg {
  background:
    radial-gradient(680px 420px at 50% 40%, rgba(120,240,190,0.08) 0%, transparent 60%);
}
#title-bg::after { display: none; }
#title-stars { opacity: 0.25; }

#game-title {
  background: linear-gradient(180deg, #eafffb 0%, #7cf0be 48%, #46d39a 100%);
  -webkit-background-clip: text;
  background-clip: text;
  letter-spacing: 0.05em;
  font-weight: 700;
  filter: drop-shadow(0 6px 30px rgba(120,240,190,0.24));
}
.title-kicker { letter-spacing: 0.3em; }
.title-foot { letter-spacing: 0.2em; }

.ember { background: radial-gradient(circle, #cfeee3 0%, #7cf0be 55%, transparent 75%); }

/* HUD: instrument-ish */
#room-title { letter-spacing: 0.14em; font-weight: 600; }
#timer { font-family: Consolas, "Cascadia Mono", monospace; letter-spacing: 0.05em; }
#room-badge { font-family: Consolas, "Cascadia Mono", monospace; letter-spacing: 0.14em; }

#message-text { font-style: normal; font-size: 15.5px; letter-spacing: 0.01em; }
#message-card { border-color: rgba(120,240,190,0.28); }

/* ---------- role select screen ---------- */
.role-content {
  position: relative; z-index: 2; max-width: 1000px; margin: 0 auto; min-height: 100%;
  display: flex; flex-direction: column; align-items: center; justify-content: center;
  gap: 22px; padding: 40px 24px; text-align: center;
}
.role-heading { font-size: clamp(26px, 4vw, 40px); color: var(--parchment); letter-spacing: 0.04em; margin: 0; }
.role-note { max-width: 660px; color: var(--text-dim); line-height: 1.7; font-size: 15px; }
.role-note strong { color: var(--gold-bright); }
.role-note em { color: var(--parchment); font-style: italic; }
.role-cards { display: flex; gap: 20px; flex-wrap: wrap; justify-content: center; }
.role-cards-4 .role-card { width: 210px; }
.role-card {
  width: 210px; padding: 24px 18px 20px;
  background: linear-gradient(170deg, #14202e80 0%, #0a121c 100%);
  border: 1px solid rgba(120,240,190,0.26); border-radius: 16px; cursor: pointer;
  color: var(--text); transition: transform 0.18s var(--ease-out), box-shadow 0.18s var(--ease-out), border-color 0.18s;
  display: flex; flex-direction: column; align-items: center; gap: 7px;
}
.role-card:hover {
  transform: translateY(-6px); border-color: var(--torch);
  box-shadow: 0 18px 46px rgba(0,0,0,0.5), 0 0 30px rgba(120,240,190,0.16);
}
.role-card-badge { font-size: 11px; letter-spacing: 0.24em; text-transform: uppercase; color: var(--torch-deep); }
.role-card-art { font-size: 40px; line-height: 1; margin: 4px 0; }
.role-card-name { font-size: 21px; color: var(--parchment); letter-spacing: 0.05em; }
.role-card-sub { font-size: 12.5px; color: var(--text-dim); letter-spacing: 0.08em; }
.role-card-resume { margin-top: 8px; font-size: 11.5px; color: var(--ok); border: 1px solid rgba(123,196,127,0.4); border-radius: 20px; padding: 3px 12px; }

/* ---------- documents ---------- */
.logbook {
  position: relative; margin: 6px auto; padding: 20px 24px; max-width: 520px;
  background: linear-gradient(170deg, #e7e0cf 0%, #d3c9ae 100%); color: #2c2517;
  border: 1px solid #b6a374; border-left: 5px solid #8a7f6a; border-radius: 6px;
  box-shadow: 0 14px 40px rgba(0,0,0,0.5); font-size: 15px; line-height: 1.75;
  animation: fadeUp 0.5s var(--ease-out) both;
}
.logbook .log-title { font-weight: 700; letter-spacing: 0.1em; text-transform: uppercase; font-size: 12px; margin-bottom: 10px; color: #6b4f2c; }
.logbook.aged { filter: sepia(0.25) brightness(0.97); }

.chartcard {
  position: relative; margin: 6px auto; padding: 18px 22px; max-width: 560px;
  background: linear-gradient(170deg, #0f1f2b 0%, #0a1622 100%); color: #cfe9de;
  border: 1px solid rgba(120,240,190,0.3); border-radius: 8px;
  box-shadow: 0 14px 40px rgba(0,0,0,0.5), inset 0 0 30px rgba(120,240,190,0.05);
  font-family: Consolas, "Cascadia Mono", monospace; font-size: 14px; line-height: 1.7;
}
.chartcard .chart-title { font-weight: 700; letter-spacing: 0.16em; text-transform: uppercase; font-size: 11.5px; margin-bottom: 10px; color: #7cf0be; }
.chartcard .warn { color: var(--gold-bright); }
.chartcard .bad { color: #ff8f8f; }
.chartcard .ok { color: #8fe0a0; }
.chartcard b, .chartcard strong { color: #eafffb; }

.relay {
  margin: 10px auto; max-width: 520px; padding: 10px 16px;
  border: 1px dashed rgba(120,240,190,0.5); border-radius: 8px;
  background: rgba(120,240,190,0.06); color: var(--torch); font-size: 13.5px; letter-spacing: 0.02em;
}
.relay::before { content: "\1F4E3  "; }

.dial-face { font-family: Consolas, "Cascadia Mono", monospace; }

/* Gus's dock glow: cool console green */
#gus-dock { filter: drop-shadow(0 0 14px rgba(120,240,190,0.4)); }
#gus-dock:hover { filter: drop-shadow(0 0 24px rgba(120,240,190,0.7)); }
#gus-dock::after { color: var(--parchment); border-color: rgba(120,240,190,0.45); }
.gus-portrait { filter: drop-shadow(0 0 18px rgba(120,240,190,0.3)); }
.gus-tier.next { border-color: rgba(120,240,190,0.4); }
