*{box-sizing:border-box}body{margin:0;color:#3d3d3d;background:#faf8ef;font-family:Clear Sans,Helvetica Neue,Arial,sans-serif}button{font:inherit;cursor:pointer;border:0}button:focus-visible{outline:3px solid #e9986d;outline-offset:5px}.workspace{max-width:600px;margin:auto;padding:20px}header,footer{display:flex;justify-content:space-between;gap:12px;font-size:11px;color:#8f7a66;letter-spacing:1px}header{padding-bottom:12px;border-bottom:1px solid #dcd7ce}.game-section{padding:20px 0}.game-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}.game-title{font-size:52px;font-weight:700;color:#776e65;margin:0;line-height:1}.game-intro{color:#776e65;font-size:14px;margin:6px 0 0}.score-area{display:flex;gap:8px}.score-box{background:#bbada0;padding:8px 12px;border-radius:6px;text-align:center;min-width:80px}.score-label{display:block;font-size:10px;color:#eee4da;text-transform:uppercase;font-weight:700}.score-value{display:block;font-size:18px;color:#fff;font-weight:700}.control-bar{display:flex;gap:10px;margin-bottom:16px}.btn-action{background:#8f7a66;color:#f9f6f2;font-weight:700;padding:10px 18px;border-radius:4px;font-size:14px;transition:background .2s;flex:1;text-align:center}.btn-action:hover{background:#776e65}.btn-action:disabled{background:#dcd7ce;color:#8f7a66;cursor:not-allowed}.error-alert{background:#f8d7da;color:#721c24;padding:10px;border-radius:4px;margin-bottom:12px;display:flex;justify-content:space-between;align-items:center}.btn-retry{background:#721c24;color:#fff;padding:4px 8px;border-radius:4px;font-size:12px}.grid-container-wrapper{background:#bbada0;padding:12px;border-radius:8px;position:relative;width:100%;aspect-ratio:1 / 1}.grid-container{display:grid;grid-template-columns:repeat(4,1fr);grid-template-rows:repeat(4,1fr);gap:12px;width:100%;height:100%}.grid-cell{background:#eee4da59;border-radius:4px;display:flex;align-items:center;justify-content:center;font-size:28px;font-weight:700;-webkit-user-select:none;user-select:none;transition:background-color .15s ease,transform .1s ease}.overlay{position:absolute;inset:0;background:#eee4daba;border-radius:8px;display:flex;align-items:center;justify-content:center;z-index:10;animation:fadeIn .4s ease}.overlay-won{background:#edc22ed9}.overlay-content{text-align:center;color:#776e65;padding:20px}.overlay-won .overlay-content{color:#fff}.overlay-content h2{font-size:36px;margin:0 0 10px}.overlay-content p{font-size:18px;margin:0 0 20px}.btn-overlay{background:#8f7a66;color:#fff;border-radius:4px;padding:12px 24px;font-size:16px;font-weight:700}.btn-overlay:hover{background:#776e65}.overlay-buttons{display:flex;gap:10px;justify-content:center}.overlay-won .btn-overlay{background:#fff;color:#776e65}.overlay-won .btn-overlay:hover{background:#eee4da}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.virtual-keys{margin-top:24px;display:flex;flex-direction:column;align-items:center}.row-up,.row-middle,.row-down{display:flex;justify-content:center;gap:10px;margin-bottom:10px}.v-key{width:56px;height:50px;background:#8f7a66;color:#fff;font-size:18px;font-weight:700;border-radius:6px;display:flex;align-items:center;justify-content:center;box-shadow:0 3px #776e65;transition:transform .05s,box-shadow .05s}.v-key:active{transform:translateY(3px);box-shadow:none}.v-key.center-key{background:#bbada0;color:#eee4da;box-shadow:none;cursor:default;font-size:11px}.controls-tip{color:#8f7a66;font-size:12px;margin-top:6px;text-align:center}footer{margin-top:20px;padding-top:12px;border-top:1px solid #dcd7ce}@media(max-width:480px){.game-title{font-size:40px}.score-box{min-width:60px;padding:6px 8px}.grid-container-wrapper{padding:8px}.grid-container{gap:8px}.grid-cell{font-size:20px;border-radius:3px}.v-key{width:48px;height:44px;font-size:16px}}
