/* ===========================================================
   SLEUTH — a 1983 DOS whodunit, reborn in the browser.
   Aesthetic: IBM CGA / EGA phosphor terminal.
   =========================================================== */

:root {
  /* CGA-ish palette */
  --bg:        #0a0a0f;
  --amber:     #ffb000;   /* primary phosphor */
  --amber-dim: #a06e00;
  --green:     #33ff66;
  --cyan:      #22d3ee;
  --red:       #ff5555;
  --white:     #e8e8e8;
  --gray:      #8a8a8a;
  --panel:     #12121a;
  --border:    #3a3a10;
  --border-hi: #ffb000;
}

* { box-sizing: border-box; }

html, body {
  margin: 0;
  padding: 0;
  background: #000;
  color: var(--amber);
  font-family: "Courier New", "Lucida Console", Consolas, monospace;
  font-size: 13px;
  line-height: 1.3;
  -webkit-font-smoothing: none;
}

/* CRT shell */
#crt {
  min-height: 100vh;
  padding: 10px;
  background:
    radial-gradient(ellipse at center, #0e0e14 0%, #000 100%);
}

#screen {
  max-width: 620px;
  margin: 0 auto;
  border: 2px solid var(--border);
  background: var(--bg);
  padding: 10px 12px 12px;
  position: relative;
  box-shadow: 0 0 30px rgba(255, 176, 0, 0.08), inset 0 0 60px rgba(0,0,0,0.6);
}
/* the start screen can breathe a little wider */
#screen:has(#game-screen.hidden) { max-width: 760px; }

/* scanlines overlay */
#screen::after {
  content: "";
  position: fixed;
  inset: 0;
  pointer-events: none;
  background: repeating-linear-gradient(
    to bottom,
    rgba(0,0,0,0) 0px,
    rgba(0,0,0,0) 2px,
    rgba(0,0,0,0.18) 3px,
    rgba(0,0,0,0.18) 3px
  );
  z-index: 50;
  mix-blend-mode: multiply;
}

.hidden { display: none !important; }

.hl  { color: var(--white); text-shadow: 0 0 6px rgba(255,176,0,0.5); }
.good { color: var(--green); }
.bad  { color: var(--red); }
.cyan { color: var(--cyan); }
.dim  { color: var(--gray); }

/* ============ START SCREEN ============ */
#title-art {
  color: var(--amber);
  text-shadow: 0 0 10px rgba(255,176,0,0.4);
  font-size: 11px;
  line-height: 1.05;
  margin: 4px 0 0;
  white-space: pre;
  overflow-x: auto;
}
.tag {
  letter-spacing: 6px;
  color: var(--cyan);
  margin: 2px 0 2px;
  font-size: 13px;
}
.sub { color: var(--gray); margin: 0 0 14px; font-size: 13px; }

.briefing { border-left: 3px solid var(--border-hi); padding-left: 14px; margin: 14px 0; }
.briefing p { margin: 8px 0; color: var(--amber); }

.names-label { display: block; color: var(--cyan); margin: 16px 0 4px; font-size: 13px; }
#names-input {
  width: 100%;
  background: #000;
  border: 1px solid var(--border);
  color: var(--green);
  padding: 8px 10px;
  font-family: inherit;
  font-size: 14px;
}
#names-input:focus { outline: none; border-color: var(--border-hi); }

.difficulty { margin: 16px 0; display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.difficulty > span { color: var(--cyan); }
.diff-btn {
  background: #000; border: 1px solid var(--border); color: var(--amber-dim);
  padding: 6px 12px; font-family: inherit; cursor: pointer; font-size: 13px;
}
.diff-btn.active { border-color: var(--border-hi); color: var(--amber); background: #1a1400; }
.diff-btn:hover { color: var(--amber); }

.big-btn {
  background: #1a1400; border: 2px solid var(--border-hi); color: var(--amber);
  padding: 10px 20px; font-family: inherit; font-size: 15px; cursor: pointer;
  text-shadow: 0 0 6px rgba(255,176,0,0.4); margin-top: 8px;
}
.big-btn:hover { background: var(--amber); color: #000; }
.big-btn.danger { border-color: var(--red); color: var(--red); }
.big-btn.danger:hover { background: var(--red); color: #000; }

/* ============ GAME LAYOUT — map, a few lines of text, a prompt ============ */
/* The game is a compact block bundled at the TOP of the viewport — it does not
   stretch to fill the screen. JS (fitMap) sizes the map so the whole stack still
   fits within the *visible* viewport (window.visualViewport), so when the
   on-screen keyboard is raised the map shrinks and map + log + input + D-pad all
   stay above it. --game-h tracks the visible height for that budget. */
#screen:has(#game-screen:not(.hidden)) {
  max-width: none;
  padding: 6px 8px 8px;
}
#game-screen:not(.hidden) {
  display: flex; flex-direction: column; gap: 6px;
}
/* don't let the page scroll the map under the keyboard */
body:has(#game-screen:not(.hidden)) { overflow: hidden; }

/* ---- Map (overhead floorplan) — natural fitted size; JS sizes the font to the
   width AND the height budget left within the visible viewport. ---- */
#map {
  display: flex; justify-content: center; align-items: flex-start;
  flex: 0 0 auto; overflow: hidden;
  background: #000; border: 1px solid var(--border); padding: 4px;
}
.floor { min-width: 0; }
.floormap {
  margin: 0;
  /* Source Code Pro Medium — the font the map was authored in, so the block-wall
     glyphs (incl. the ▛▜▙▟ corners) and the ☺/☻ faces render exactly as drawn.
     Bundled below via @font-face; local() lets an installed copy win. */
  font-family: "Source Code Pro", monospace;
  font-size: 13px;
  line-height: 1.0;
  letter-spacing: 0;
  white-space: pre;
  background: #000;
  padding: 6px 8px;
  border: 1px solid var(--border);
}
.floormap .g-wall  { color: #b4b4b4; }               /* solid gray walls, like the original */
/* You are the filled ☺/☻ smiley in yellow, guests the same glyph in cyan —
   just the face, no background, rendered by Source Code Pro. */
.floormap .g-you   { color: #ffe000; text-shadow: 0 0 5px rgba(255,224,0,0.7); }
.floormap .g-guest { color: var(--cyan); }
.floormap .g-stair { color: #8ae234; }
.floormap .g-here  { color: #4a3a10; }               /* faint dots mark the room you're standing in */
.floormap .g-pass  { color: #ff5fff; font-weight: bold; }   /* an opened secret passage */
.g-pass { color: #ff5fff; }


/* ---- Narrative: the last few lines of description / dialogue / actions ---- */
#log {
  flex: 0 0 auto;
  height: 5em; overflow-y: auto; background: #000;
  border: 1px solid var(--border); padding: 6px 8px; margin: 0; font-size: 12.5px;
}
#log .line { margin: 2px 0; white-space: pre-wrap; }
#log .sys { color: var(--gray); }
#log .you { color: var(--green); }
#log .evt { color: var(--amber); }
#log .warn { color: var(--red); }
#log .clue { color: var(--cyan); }

/* ---- Prompt (with a small time readout on the right) ---- */
#prompt-row { display: flex; align-items: center; gap: 6px; flex: 0 0 auto; }
.prompt-caret { color: var(--green); font-size: 16px; }
#cmd-input {
  flex: 1; background: #000; border: 1px solid var(--border);
  color: var(--green); padding: 6px 8px; font-family: inherit; font-size: 13px;
}
#cmd-input:focus { outline: none; border-color: var(--border-hi); }
#cmd-input::placeholder { color: #4a4a2a; }
#status { font-size: 12px; color: var(--gray); white-space: nowrap; }

/* ---- Touch D-pad — hidden on desktop, shown on touch devices (iPad/phones) ---- */
#dpad {
  display: none;
  grid-template-columns: repeat(3, 1fr);
  grid-template-rows: repeat(3, 1fr);
  gap: 8px;
  width: min(240px, 62vw);
  margin: 4px auto 0;
  flex: 0 0 auto;
  touch-action: manipulation;
}
.dbtn {
  background: #1a1400; border: 2px solid var(--border-hi); color: var(--amber);
  font-family: inherit; font-size: 22px; line-height: 1; padding: 14px 0;
  cursor: pointer; text-shadow: 0 0 6px rgba(255,176,0,0.4);
  -webkit-user-select: none; user-select: none; touch-action: manipulation;
}
.dbtn:active { background: var(--amber); color: #000; }
.dbtn.up    { grid-area: 1 / 2; }
.dbtn.left  { grid-area: 2 / 1; }
.dbtn.right { grid-area: 2 / 3; }
.dbtn.down  { grid-area: 3 / 2; }
@media (hover: none), (pointer: coarse) { #dpad { display: grid; } }

/* short visible viewport (phone + keyboard): shrink the log and D-pad so the
   whole stack still fits above the keyboard (toggled from JS via visualViewport) */
body.short-view #log { height: 3.6em; }
body.short-view #dpad { width: min(196px, 52vw); gap: 6px; }
body.short-view .dbtn { padding: 8px 0; font-size: 18px; }

/* ============ MODALS ============ */
.modal {
  position: fixed; inset: 0; z-index: 100;
  background: rgba(0,0,0,0.82);
  display: flex; align-items: center; justify-content: center; padding: 20px;
}
.modal-inner { max-width: 480px; width: 100%; background: var(--bg); border: 2px solid var(--border-hi); padding: 12px 14px; }
.box-title { color: var(--cyan); font-size: 13px; letter-spacing: 2px; border-bottom: 1px solid var(--border); padding-bottom: 5px; margin-bottom: 8px; }
.modal-warn { color: var(--red); font-size: 13px; }
.accuse-row { display: flex; align-items: center; gap: 8px; margin: 10px 0; flex-wrap: wrap; }
.accuse-row label { color: var(--amber); min-width: 120px; }
.accuse-row select {
  flex: 1; background: #000; border: 1px solid var(--border); color: var(--green);
  padding: 6px; font-family: inherit; font-size: 14px; min-width: 140px;
}
.modal-buttons { display: flex; gap: 10px; margin-top: 12px; }

#end-body { margin: 10px 0; }
#end-body p { margin: 8px 0; }
#end-title.win  { color: var(--green); }
#end-title.lose { color: var(--red); }

/* blinking cursor flourish */
@keyframes blink { 0%,49% { opacity: 1; } 50%,100% { opacity: 0; } }
.cursor { animation: blink 1s steps(1) infinite; }

/* ---- Source Code Pro Medium (Adobe, SIL OFL 1.1) — subset to the map's
   glyphs and embedded so the map renders in the font it was drawn in. ---- */
@font-face{font-family:"Source Code Pro";font-style:normal;font-weight:500;font-display:swap;src:local("Source Code Pro Medium"),local("SourceCodePro-Medium"),url(data:font/woff2;base64,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) format("woff2");}
