:root{color-scheme:light;--accent:#8c62a0;--bg:#faf8fc;--panel:#fff;--muted:#776d81;--line:#e5dfea}
*{box-sizing:border-box}
body{margin:0;background:var(--bg);color:#403648;font-family:system-ui,-apple-system,"Segoe UI",sans-serif;min-width:1000px;min-height:100vh}
main{width:100%;margin:0}.game-content{width:min(1100px,94%);margin:24px auto 40px}
a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}
.game-hero{position:relative;padding:48px 24px;background:linear-gradient(120deg,#fcf4fb,#eeeaf8,#f5f4fd);overflow:hidden}
.hero-content{position:relative;z-index:1;max-width:1152px;margin:0 auto;text-align:center}
h1{font-family:inherit;font-size:40px;font-weight:600;line-height:1.125;margin:0;color:#44334c}h2{margin:8px 0 18px}
.toolbar{display:flex;align-items:center;gap:14px;margin:0 0 18px}button{font:inherit;cursor:pointer;color:#54465e;border:1px solid #dcd1e3;border-radius:7px;background:#fff;padding:10px 19px;transition:border-color .15s,box-shadow .15s}button:hover{border-color:var(--accent)}button:focus-visible,a:focus-visible,summary:focus-visible{outline:3px solid var(--accent);outline-offset:3px}button.primary{background:var(--accent);border-color:var(--accent);color:#fff;font-weight:650}.sound{font-size:13px;color:var(--muted);cursor:pointer}#best{margin-left:auto;color:var(--accent);font:650 16px ui-monospace,monospace}
.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}.stats>div{background:#fff;border:1px solid var(--line);border-radius:9px;padding:12px 20px;box-shadow:0 2px 8px #6e5b7a06}.stats small{display:block;letter-spacing:.1em;font-size:10px;color:var(--muted)}.stats strong{display:block;font:650 27px ui-monospace,monospace;margin-top:6px;color:#55435f}
#notice{min-height:22px;color:var(--accent);font-size:13px;margin:16px 0 10px}.board{border:1px solid var(--line);border-radius:13px;background:#fff;padding:24px;min-height:280px;overflow:hidden;box-shadow:0 6px 22px #6a4e7a08}.board.miss{animation:miss .22s ease-out}@keyframes miss{0%{box-shadow:inset 0 0 0 3px #e3768a}100%{box-shadow:none}}
.choices{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.word-card{background:#fdfbfe;border:1px solid var(--line);border-radius:10px;padding:22px 12px;text-align:center;position:relative}.word-card.active{border-color:var(--accent);box-shadow:inset 0 0 0 1px var(--accent);background:color-mix(in srgb,var(--accent) 5%,white)}.word{font:700 29px ui-monospace,monospace;letter-spacing:.04em;white-space:nowrap}.typed{color:#bbb0c2}.remaining{color:#4b3c55}.hint{color:var(--muted);font-size:12px;line-height:1.8}
.instructions{border-top:1px solid var(--line);margin-top:22px;padding-top:15px;color:var(--muted);font-size:13px;line-height:1.9}.instructions summary{color:#776581;cursor:pointer;font-size:13px;width:max-content}.instructions li{margin:3px 0}.instructions p{margin-bottom:10px}kbd{font-family:ui-monospace,monospace;border:1px solid #c6b7cf;border-bottom-width:3px;border-radius:4px;padding:1px 6px;color:#65516f;background:#fff;font-size:.9em}.result{margin-top:20px;padding:24px;text-align:center;border:1px solid var(--accent);border-radius:12px;background:#fff}.result h2{color:var(--accent);font-size:22px}.result-score{font:700 44px ui-monospace,monospace;color:var(--accent);margin:14px}.result-score small{font-size:18px}.game-footer{padding:16px 24px 48px;background:#fafafa;text-align:center;font-size:16px;line-height:1.5}.game-footer ul{list-style:none;margin:0;padding:0}.game-footer a{color:#485fc7}
.empty{display:grid;place-content:center;justify-items:center;min-height:230px;text-align:center;color:var(--muted);gap:15px}.empty h2,.empty p{display:none}.empty::before{content:"";display:block;width:122px;height:122px;background:var(--game-icon) center/contain no-repeat;border-radius:25px}.empty::after{content:"Enter でスタート";font-size:14px}
[hidden]{display:none!important}.meter{height:5px;background:#e8e3ed;border-radius:8px;margin-top:18px;overflow:hidden}.meter>i{height:100%;display:block;background:var(--accent);transition:width .1s}.board-caption{display:flex;justify-content:space-between;align-items:center;color:var(--muted);font-size:12px;margin:0 0 16px}.badge{border-radius:20px;background:color-mix(in srgb,var(--accent) 10%,white);padding:4px 12px;color:var(--accent);font-size:11px}
.stats.score-only{grid-template-columns:repeat(2,1fr);margin-bottom:18px}
