/* Hangman Puzzle - self-contained styling. The widget root carries ".hangman"
   plus a data-theme attribute; dark mode follows the OS by default (theme
   "auto") or can be forced with theme="light"/"dark" on the shortcode. */

.hangman {
  --bg: #fbfbfa;
  --surface: #ffffff;
  --surface-2: #f0f1f4;
  --border: #d8dbe2;
  --text: #1f2430;
  --muted: #6b7280;
  --accent: #4f46e5;
  --accent-text: #ffffff;
  --correct: #1a9c5e;
  --correct-edge: #12703f;
  --wrong: #e0483e;
  --key: #eceef2;
  --key-edge: #c3c7d1;

  font-family: 'IBM Plex Sans', system-ui, sans-serif;
  color: var(--text);
  background: var(--bg);
  border-radius: 14px;
  padding: 8px;
  box-sizing: border-box;
}
.hangman, .hangman *, .hangman *::before, .hangman *::after { box-sizing: border-box; }
.hangman button { font-family: inherit; cursor: pointer; }

@media (prefers-color-scheme: dark) {
  .hangman[data-theme="auto"] {
    --bg: #14161c; --surface: #1c1f28; --surface-2: #262b36; --border: #3a4150;
    --text: #eef0f4; --muted: #9aa1ae; --accent: #8b85f6; --accent-text: #12131a;
    --correct: #37c983; --correct-edge: #1f8a58; --wrong: #ff6f66; --figure: #eef0f4;
    --rig: #c9903f; --rig-edge: #8a5f2a; --key: #2f3542; --key-edge: #12141a;
  }
}
.hangman[data-theme="dark"] {
  --bg: #14161c; --surface: #1c1f28; --surface-2: #262b36; --border: #3a4150;
  --text: #eef0f4; --muted: #9aa1ae; --accent: #8b85f6; --accent-text: #12131a;
  --correct: #37c983; --correct-edge: #1f8a58; --wrong: #ff6f66; --figure: #eef0f4;
  --rig: #c9903f; --rig-edge: #8a5f2a; --key: #2f3542; --key-edge: #12141a;
}

.hm-wrap { max-width: 780px; margin: 0 auto; padding: 22px 20px 26px; background: var(--surface); border: 1px solid var(--border); border-radius: 14px; }

.hm-header { display: flex; flex-direction: column; align-items: center; text-align: center; gap: 10px; padding-bottom: 16px; border-bottom: 1px solid var(--border); margin-bottom: 20px; }
.hm-title { font-family: 'Baloo 2', 'IBM Plex Sans', sans-serif; font-weight: 800; font-size: 1.7rem; margin: 0 0 4px; letter-spacing: .01em; }
.hm-tag { margin: 0 auto; color: var(--muted); font-size: .92rem; max-width: 46ch; }

.hm-controls-row { display: flex; align-items: center; justify-content: center; gap: 8px; flex-wrap: wrap; }
.hm-cat-label { font-size: .75rem; font-weight: 600; text-transform: uppercase; letter-spacing: .08em; color: var(--muted); }
.hm-cat-select {
  font-family: inherit; font-size: .88rem; color: var(--text); background: var(--surface-2);
  border: 1px solid var(--border); border-radius: 8px; padding: 7px 10px; max-width: 180px;
}
.hm-btn {
  font-family: inherit; font-weight: 600; font-size: .85rem; color: var(--text);
  background: var(--surface-2); border: 1px solid var(--border); border-radius: 8px;
  padding: 8px 14px; transition: background-color .15s ease;
}
.hm-btn:hover:not(:disabled) { background: var(--border); }
.hm-btn:disabled { opacity: .5; cursor: default; }
.hm-btn.hm-new { background: var(--accent); color: var(--accent-text); border-color: var(--accent); }
.hm-btn.hm-new:hover { filter: brightness(1.06); }

.hm-stage { display: flex; gap: 28px; align-items: flex-start; flex-wrap: wrap; justify-content: center; }

/* The frame itself is the user's own 3D gallows illustration (a cropped
   photo, embedded below); only the stick figure is still drawn live, as an
   SVG overlay positioned to hang from the photo's noose. Its own viewBox
   (230x465) matches the photo's pixel dimensions exactly so the two stay
   aligned at any display size. */
.hm-gallows-col { flex: 0 0 auto; width: 190px; text-align: center; }
.hm-gallows-wrap {
  width: 190px; aspect-ratio: 230 / 465;
  position: relative; border-radius: 12px; overflow: hidden;
  background-image: url("data:image/jpeg;base64,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");
  background-size: cover; background-position: center; background-repeat: no-repeat;
  box-shadow: 0 6px 16px rgba(0, 0, 0, .2);
}
.hm-gallows { position: absolute; inset: 0; width: 100%; height: 100%; }
/* The figure is a small "person" built from a handful of filled shapes
   (head with a face, a shirt-shaped torso, capsule limbs with hands/feet)
   instead of bare stick lines, grouped six-to-a-part so each wrong guess
   still reveals exactly one part, same as before. */
.hm-gallows .hm-part {
  opacity: 0; transform-origin: 185px 150px; transition: opacity .25s ease, transform .3s ease; transform: scale(.6);
  filter: drop-shadow(0 0 3px rgba(255, 255, 255, .9)) drop-shadow(0 0 2px rgba(255, 255, 255, .9));
}
.hm-gallows .hm-part.shown { opacity: 1; transform: scale(1); }
.hm-gallows .hm-skin { fill: #e7b98c; stroke: #241b12; stroke-width: 2; }
.hm-gallows .hm-eye { fill: #241b12; }
.hm-gallows .hm-mouth {
  fill: none; stroke: #241b12; stroke-width: 2; stroke-linecap: round;
  transition: d .3s ease;
}
/* Solved the word -- same mouth path, curved the other way into a smile.
   The CSS `d` property overrides the SVG `d` attribute where supported; the
   JS just toggles this class, so browsers without `d` support simply keep
   the neutral/worried mouth instead of erroring. */
.hm-gallows .hm-mouth.smile { d: path("M177,159 Q185,168 193,159"); }
.hm-gallows .hm-shirt { fill: #3d5a99; stroke: #241b12; stroke-width: 2; }
.hm-gallows .hm-limb-outline { fill: none; stroke: #241b12; stroke-width: 11; stroke-linecap: round; }
.hm-gallows .hm-limb { fill: none; stroke: #e7b98c; stroke-width: 7; stroke-linecap: round; }
.hm-gallows .hm-shoe { fill: #241b12; }
/* A clean, fully rounded rope loop drawn over the photo -- replaces the
   angular hook baked into the original image (which was erased from the
   photo itself), so the noose stays a simple hoop at any size. */
.hm-gallows .hm-rope-outline { fill: none; stroke: #4a3319; stroke-width: 10; stroke-linecap: round; }
.hm-gallows .hm-rope { fill: none; stroke: #cbb07a; stroke-width: 6; stroke-linecap: round; }
.hm-gallows .hm-knot { fill: #cbb07a; stroke: #4a3319; stroke-width: 2; }
.hm-lives { margin: 8px 0 0; font-size: .82rem; color: var(--muted); font-weight: 600; }
.hm-lives-count.zero { color: var(--wrong); }

.hm-play-col { flex: 1 1 380px; min-width: 260px; }

.hm-cat-hint { margin: 0 0 8px; text-align: center; font-size: .74rem; font-weight: 700; text-transform: uppercase; letter-spacing: .1em; color: var(--accent); min-height: 1.2em; }

.hm-word { display: flex; flex-wrap: wrap; justify-content: center; align-content: center; gap: 6px; row-gap: 10px; min-height: 56px; outline: none; padding: 4px; border-radius: 8px; }
.hm-word:focus-visible { box-shadow: 0 0 0 3px color-mix(in srgb, var(--accent) 40%, transparent); }
.hm-tile {
  width: clamp(26px, 7vw, 42px); height: clamp(34px, 8vw, 50px);
  display: flex; align-items: center; justify-content: center;
  border: 2px solid var(--border); border-radius: 6px; background: var(--surface);
  font-family: 'Baloo 2', sans-serif; font-weight: 700; font-size: clamp(1rem, 3.2vw, 1.35rem);
  text-transform: uppercase; color: var(--text);
}
.hm-tile.filled { border-color: var(--muted); }
.hm-tile.reveal-miss { border-color: var(--wrong); color: var(--wrong); }
.hm-space { width: clamp(12px, 3vw, 20px); }

/* Solved-word celebration: every tile flashes to the "correct" color and
   back, three times, the moment the last letter is guessed. Triggered by
   toggling .flash-win on .hm-word (see hangman-puzzle.js); harmless if the
   class is ever left on since it only plays on animation start. */
@keyframes hm-tile-flash {
  0%, 100% { background: var(--surface); color: var(--text); box-shadow: none; }
  50% { background: var(--correct); color: #fff; box-shadow: 0 0 0 2px var(--correct); }
}
.hm-word.flash-win .hm-tile {
  animation: hm-tile-flash .4s ease-in-out 3;
}
@media (prefers-reduced-motion: reduce) {
  .hm-word.flash-win .hm-tile { animation: none; }
}

.hm-hint { text-align: center; color: var(--muted); font-size: .86rem; margin: 14px 0 0; min-height: 2.4em; text-wrap: balance; }
.hm-hint strong { color: var(--text); }
.hm-hint.win strong { color: var(--correct); }
.hm-hint.lose strong { color: var(--wrong); }

/* Keyboard: same "keycap" treatment as the Wordle Sleuth solver -- a lit
   face, a darker edge below to fake thickness, and a press that sinks the
   key onto that edge. */
.hm-kb { margin-top: 16px; display: grid; gap: 8px; padding-bottom: 5px; }
.hm-kb-row { display: flex; justify-content: center; gap: 6px; }
.hm-key {
  --cap: var(--key); --edge: var(--key-edge); --cap-text: var(--text);
  display: flex; align-items: center; justify-content: center;
  height: 46px; flex: 1 0 0; max-width: 40px; min-width: 0; padding: 0; border: 0; border-radius: 6px;
  background-color: var(--cap);
  background-image: linear-gradient(180deg, rgba(255, 255, 255, .24), rgba(255, 255, 255, 0) 55%, rgba(0, 0, 0, .07));
  color: var(--cap-text);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, .4), inset 0 -1px 0 rgba(0, 0, 0, .1),
              0 3px 0 var(--edge), 0 5px 5px rgba(0, 0, 0, .2);
  transform: translateY(0);
  transition: transform 70ms ease, box-shadow 70ms ease, background-color .15s ease;
  font-family: 'Baloo 2', sans-serif; font-weight: 700; font-size: .92rem; text-transform: uppercase;
}
.hm-key:hover:not(:disabled) { background-image: linear-gradient(180deg, rgba(255, 255, 255, .32), rgba(255, 255, 255, .06) 55%, rgba(0, 0, 0, .05)); }
.hm-key:active:not(:disabled) {
  transform: translateY(3px);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, .25), inset 0 -1px 0 rgba(0, 0, 0, .1),
              0 0 0 var(--edge), 0 1px 1px rgba(0, 0, 0, .25);
}
.hm-key:disabled { cursor: default; }
.hm-key.correct { --cap: var(--correct); --edge: var(--correct-edge); --cap-text: #fff; }
.hm-key.wrong {
  --cap-text: var(--muted); opacity: .55;
  transform: translateY(3px);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, .15), inset 0 -1px 0 rgba(0, 0, 0, .08), 0 0 0 var(--edge);
}
@media (prefers-reduced-motion: reduce) { .hm-key { transition: none; } }

.hm-actions { display: flex; justify-content: center; gap: 10px; margin-top: 16px; flex-wrap: wrap; }
.hm-hint-cost { font-weight: 400; color: var(--muted); font-size: .78em; }

.hm-stats { text-align: center; color: var(--muted); font-size: .82rem; margin: 20px 0 0; }
.hm-footer { text-align: center; color: var(--muted); font-size: .76rem; margin: 14px 0 0; }

.hangman.pre .hm-stats { visibility: hidden; }

@media (max-width: 620px) {
  .hm-stage { flex-direction: column; align-items: center; }
  .hm-play-col { width: 100%; }
}
