html, body { margin: 0; height: 100%; overflow: hidden; background: #06070a; color: #cfd6d2;
  font-family: "Segoe UI", system-ui, sans-serif; }
#game-root { position: fixed; inset: 0; }
#game-root canvas { display: block; width: 100%; height: 100%; }
#hud { position: fixed; inset: 0; pointer-events: none; }
.hidden { display: none !important; }
#crosshair { position: absolute; left: 50%; top: 50%; width: 6px; height: 6px; margin: -3px;
  border-radius: 50%; border: 1px solid rgba(220, 230, 225, 0.7); }
#sigils { position: absolute; top: 12px; left: 14px; font-size: 15px; letter-spacing: 1px;
  text-shadow: 0 0 8px #000; }
#sigils .gem { display: inline-block; width: 12px; height: 12px; margin-right: 6px;
  border: 1px solid #7fd4c8; transform: rotate(45deg); opacity: 0.25; }
#sigils .gem.on { opacity: 1; background: #7fd4c8; box-shadow: 0 0 10px #7fd4c8; }
#meter { position: absolute; top: 12px; right: 14px; width: 130px; }
#meter .label { font-size: 11px; letter-spacing: 2px; opacity: 0.75; text-align: right; }
#meter .bar { height: 6px; background: rgba(255,255,255,0.12); margin-top: 4px; }
#meter .bar i { display: block; height: 100%; width: 0%; background: #b33; }
#stam .bar i { background: #6fa8dc; }
#prompt { position: absolute; left: 50%; top: 58%; transform: translateX(-50%);
  font-size: 14px; letter-spacing: 1px; text-shadow: 0 0 8px #000; opacity: 0.9; }
#score { position: absolute; top: 44px; left: 14px; font-size: 12px; opacity: 0.8; }
#vignette { position: fixed; inset: 0; pointer-events: none;
  background: radial-gradient(ellipse at center, transparent 45%, rgba(0,0,0,0.75) 100%); }
#dread { position: fixed; inset: 0; pointer-events: none; opacity: 0;
  background: radial-gradient(ellipse at center, transparent 30%, rgba(120,0,0,0.55) 100%); }
.overlay { position: fixed; inset: 0; display: flex; flex-direction: column; align-items: center;
  justify-content: center; gap: 14px; background: rgba(4, 5, 8, 0.88); text-align: center;
  padding: 20px; box-sizing: border-box; z-index: 10; }
.overlay h1 { font-size: 34px; margin: 0; letter-spacing: 6px; color: #dfe8e3; font-weight: 600; }
.overlay h1.dead { color: #c43b3b; }
.overlay p { max-width: 460px; line-height: 1.6; font-size: 14px; opacity: 0.85; margin: 0; }
.overlay button { pointer-events: auto; cursor: pointer; background: #14312c; color: #a9e6d8;
  border: 1px solid #2f6b60; padding: 12px 30px; font-size: 15px; letter-spacing: 2px; }
.overlay button:hover { background: #1c443d; }
#touch { position: fixed; inset: 0; pointer-events: none; z-index: 9; }
#touch .tbtn { position: absolute; pointer-events: auto; width: 62px; height: 62px;
  border-radius: 50%; border: 1px solid rgba(190,220,210,0.4); background: rgba(20,30,28,0.45);
  color: #cfe6df; font-size: 11px; letter-spacing: 1px; display: flex; align-items: center;
  justify-content: center; user-select: none; -webkit-user-select: none; touch-action: none; }
#t-stick { left: 16px; bottom: 16px; width: 110px; height: 110px; border-radius: 50%; }
#t-stick .knob { position: absolute; left: 50%; top: 50%; width: 46px; height: 46px; margin: -23px;
  border-radius: 50%; background: rgba(160,200,190,0.35); border: 1px solid rgba(190,220,210,0.5); }
#t-interact { right: 16px; bottom: 110px; }
#t-sprint { right: 92px; bottom: 30px; }
#t-pause { right: 16px; top: 16px; width: 44px; height: 44px; font-size: 10px; }
@media (max-width: 700px) { #meter { width: 96px; } }
