:root{color-scheme:dark;font-family:ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,sans-serif;line-height:1.5}*{box-sizing:border-box;margin:0;padding:0}html,body,#root{min-height:100vh;min-height:100dvh;background:#0f172a;color:#f1f5f9;overflow:hidden;touch-action:none;user-select:none;-webkit-user-select:none}.app{min-height:100vh;min-height:100dvh;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1.5rem;padding:1rem;max-width:500px;margin:0 auto}.header{display:flex;align-items:center;justify-content:space-between;width:100%;max-width:400px}.title{font-size:1.25rem;font-weight:800;letter-spacing:.1em;color:#f1f5f9;text-align:center}.score-section{text-align:center;min-width:70px}.score-label{font-size:.65rem;letter-spacing:.15em;color:#64748b;font-weight:600}.score-value{font-size:1.5rem;font-weight:800;color:#f1f5f9}.board{display:grid;grid-template-columns:repeat(8,1fr);grid-template-rows:repeat(8,1fr);gap:3px;width:min(90vw,400px);height:min(90vw,400px);background:#1e293b;border-radius:12px;padding:6px;box-shadow:0 8px 32px #0006}.cell{background:#334155;border-radius:6px;position:relative;transition:background .15s}.cell-inner{position:absolute;top:2px;right:2px;bottom:2px;left:2px;border-radius:4px;transition:transform .15s,opacity .15s}.cell.filled .cell-inner{box-shadow:inset 0 2px 4px #ffffff40,inset 0 -2px 4px #0000004d}.cell.ghost .cell-inner{opacity:.35;box-shadow:none}.cell.clearing .cell-inner{animation:clearFlash .4s ease-out forwards}.cell.placed .cell-inner{animation:placePop .3s ease-out}@keyframes clearFlash{0%{opacity:1;transform:scale(1)}50%{opacity:1;transform:scale(1.15);background:#fff!important}to{opacity:0;transform:scale(.5)}}@keyframes placePop{0%{transform:scale(.5)}60%{transform:scale(1.1)}to{transform:scale(1)}}.pieces-tray{display:flex;gap:1rem;justify-content:center;align-items:center;padding:.75rem 0}.piece-slot{width:100px;height:100px;display:flex;align-items:center;justify-content:center;border-radius:12px;background:#1e293b;border:2px solid #334155;cursor:pointer;transition:border-color .2s,transform .15s,box-shadow .2s}.piece-slot:hover{border-color:#64748b;transform:scale(1.05)}.piece-slot.selected{border-color:#3b82f6;box-shadow:0 0 16px #3b82f666;transform:scale(1.08)}.piece-slot.empty{opacity:.3;pointer-events:none;border-style:dashed}.piece-grid{display:grid;gap:1px;width:70px;height:70px}.piece-cell{position:relative;border-radius:3px}.piece-cell .cell-inner{position:absolute;top:1px;right:1px;bottom:1px;left:1px;border-radius:2px;box-shadow:inset 0 1px 2px #fff3,inset 0 -1px 2px #0003}.overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0f172ad9;display:flex;align-items:center;justify-content:center;z-index:100;animation:fadeIn .3s ease-out}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.game-over-box{background:#1e293b;border:1px solid #334155;border-radius:16px;padding:2rem 3rem;text-align:center;animation:slideUp .3s ease-out}@keyframes slideUp{0%{transform:translateY(20px);opacity:0}to{transform:translateY(0);opacity:1}}.game-over-box h2{font-size:1.5rem;font-weight:800;margin-bottom:.5rem;color:#ef4444}.game-over-box p{font-size:1.1rem;color:#94a3b8;margin-bottom:1.5rem}.game-over-box button{background:#3b82f6;color:#fff;border:none;padding:.75rem 2rem;border-radius:8px;font-size:1rem;font-weight:600;cursor:pointer;transition:background .2s,transform .1s}.game-over-box button:hover{background:#2563eb}.game-over-box button:active{transform:scale(.97)}
