.g-hangman{max-width:760px;margin:0 auto;padding:4px 0}.g-hangman .hm-play{display:grid;grid-template-columns:minmax(150px,230px)1fr;gap:12px 20px;align-items:center}.g-hangman .hm-figwrap{display:grid;place-items:center}.g-hangman .hm-fig{width:100%;max-height:260px;height:auto}.g-hangman .hm-frame{stroke:var(--ink-2);stroke-width:6;stroke-linecap:round}.g-hangman .hm-rope{stroke-width:3}.g-hangman .hm-part{stroke:var(--ink);stroke-width:6;stroke-linecap:round;fill:none;opacity:0;transition:opacity .2s}.g-hangman .hm-part.is-on{opacity:1}.g-hangman .hm-fig.is-lost .hm-part.is-on{stroke:var(--danger)}.g-hangman .hm-word{display:flex;flex-wrap:wrap;justify-content:center;gap:10px 22px;margin:0 0 14px;min-height:calc(var(--sw,34px) * 1.4)}.g-hangman .hm-w{display:inline-flex;flex-wrap:wrap;gap:4px;justify-content:center}.g-hangman .hm-slot{width:var(--sw,34px);height:calc(var(--sw,34px) * 1.3);display:grid;place-items:center;border-bottom:3px solid var(--ink-2);font-weight:800;font-size:calc(var(--sw,34px) * .8);line-height:1;color:var(--ink);font-family:var(--font);box-sizing:border-box}.g-hangman .hm-slot.is-missed{color:var(--danger)}.g-hangman .hm-keys{display:grid;grid-template-columns:repeat(9,1fr);gap:5px}.g-hangman .hm-key{position:relative;min-height:44px;padding:0;border-radius:8px;border:1px solid var(--line);background:var(--surface);color:var(--ink);font:700 1.05rem var(--font);cursor:pointer;-webkit-tap-highlight-color:transparent}.g-hangman .hm-key:hover{background:var(--surface-2)}.g-hangman .hm-key:focus-visible{outline:3px solid var(--focus);outline-offset:1px}.g-hangman .hm-key.is-hit{background:var(--accent-soft);border-color:var(--accent);color:var(--accent);cursor:default}.g-hangman .hm-key.is-miss{background:var(--surface-2);border-color:var(--line);color:var(--muted);text-decoration:line-through;cursor:default}.g-hangman .hm-key.is-hit::after,.g-hangman .hm-key.is-miss::after{position:absolute;top:1px;right:4px;font-size:.62rem;line-height:1}.g-hangman .hm-key.is-hit::after{content:"✓"}.g-hangman .hm-key.is-miss::after{content:"✗";color:var(--danger)}.g-hangman .hm-key[aria-disabled=true]:not(.is-hit):not(.is-miss){opacity:.5;cursor:default}.g-hangman .hm-setup{max-width:420px;margin:8px auto;display:grid;gap:10px}.g-hangman .hm-setup[hidden],.g-hangman .hm-play[hidden]{display:none}.g-hangman .hm-setup h2{margin:0;font-size:1.2rem}.g-hangman .hm-setup p{margin:0;color:var(--ink-2)}.g-hangman .hm-input{font:600 1.2rem var(--font);letter-spacing:.15em;min-height:46px;padding:0 12px;border-radius:8px;border:2px solid var(--line);background:var(--surface);color:var(--ink)}.g-hangman .hm-input:focus-visible{outline:3px solid var(--focus);outline-offset:1px}.g-hangman .hm-err{margin:0;color:var(--danger);min-height:1.4em;font-weight:600}@media(max-width:640px){.g-hangman .hm-play{grid-template-columns:1fr}.g-hangman .hm-fig{max-height:170px}.g-hangman .hm-keys{grid-template-columns:repeat(7,1fr);gap:6px}.g-hangman .hm-key{min-height:46px}}@media(prefers-reduced-motion:reduce){.g-hangman .hm-part{transition:none}}