@import "https://fonts.googleapis.com/css2?family=Nunito:wght@600;700;800;900&display=swap";:root{--mini-cell:26px;--board-bg:#0a1628;--cell-bg:#132040;--cell-border:#1a2d54;--app-bg:#060e1e;--panel-bg:#0d1a30;--panel-border:#1a2d54;--text-primary:#e8edf5;--text-muted:#5a7099;--gold:gold}*{box-sizing:border-box;margin:0;padding:0}html,body{height:100%;overflow:hidden}body{background:var(--app-bg);color:var(--text-primary);touch-action:none;-webkit-user-select:none;user-select:none;justify-content:center;min-height:100dvh;font-family:Nunito,-apple-system,BlinkMacSystemFont,sans-serif;display:flex}.app{flex-direction:column;align-items:center;width:100%;max-width:440px;padding:12px 16px;display:flex;position:relative}.header{width:100%;margin-bottom:12px}.score-panel{background:var(--panel-bg);border:1px solid var(--panel-border);border-radius:16px;justify-content:space-between;align-items:center;width:100%;padding:10px 16px;display:flex}.score-item{align-items:center;gap:8px;display:flex}.score-icon{font-size:22px}.score-label{letter-spacing:1.5px;color:var(--text-muted);font-size:9px;font-weight:700}.score-value{color:var(--text-primary);font-size:22px;font-weight:900;line-height:1}.best-val{color:var(--gold)}.title-block h1{letter-spacing:2px;background:linear-gradient(135deg,#4fc3f7,#7c4dff,#ff4081);-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text;font-size:18px;font-weight:900}.streak-badge{color:#fff;background:linear-gradient(135deg,#ff6d00,#ff3d00);border-radius:20px;margin-bottom:8px;padding:5px 20px;font-size:15px;font-weight:800;animation:.4s cubic-bezier(.175,.885,.32,1.275) streakPop;box-shadow:0 4px 15px #ff3d0066}@keyframes streakPop{0%{opacity:0;transform:scale(.3)}70%{transform:scale(1.15)}to{opacity:1;transform:scale(1)}}.score-popup{text-align:center;z-index:10;pointer-events:none;animation:1.5s ease-out forwards popFloat;position:absolute;top:80px;left:50%;transform:translate(-50%)}.popup-score{color:var(--gold);text-shadow:0 0 20px #ffd70099,0 2px 4px #00000080;font-size:36px;font-weight:900}.popup-lines{color:#ff4081;margin-top:-2px;font-size:16px;font-weight:800}@keyframes popFloat{0%{opacity:1;transform:translate(-50%)translateY(0)scale(.5)}20%{opacity:1;transform:translate(-50%)translateY(-5px)scale(1.3)}to{opacity:0;transform:translate(-50%)translateY(-60px)scale(.9)}}.board-container{justify-content:center;display:flex}.board{background:var(--board-bg);border:2px solid var(--panel-border);aspect-ratio:1;border-radius:14px;grid-template-rows:repeat(8,1fr);grid-template-columns:repeat(8,1fr);gap:3px;width:min(400px,100vw - 32px);padding:8px;display:grid;box-shadow:0 0 0 1px #4fc3f70d,0 8px 32px #0009,inset 0 1px #ffffff08}.cell{aspect-ratio:1;background:var(--cell-bg);border:1px solid var(--cell-border);border-radius:5px;transition:all .12s}.cell.filled{border-color:#ffffff1a}.cell.highlight-valid{transform:scale(1.02)}.cell.highlight-invalid{border-color:#ff3c3c4d;background:#ff3c3c26!important}.cell.clearing{animation:.5s ease-out forwards clearBlast}@keyframes clearBlast{0%{opacity:1;transform:scale(1)}30%{opacity:1;transform:scale(1.2);box-shadow:0 0 20px #ffffff80}60%{opacity:.6;transform:scale(1.1)}to{opacity:0;background:0 0;transform:scale(0)}}.stats-bar{color:var(--text-muted);justify-content:center;gap:20px;margin-top:10px;font-size:13px;font-weight:700;display:flex}.blocks-tray{background:var(--panel-bg);border:1px solid var(--panel-border);border-radius:16px;justify-content:center;align-items:center;gap:12px;width:100%;min-height:110px;margin-top:12px;padding:12px 16px;display:flex}.block-piece{cursor:grab;border-radius:10px;flex:1;justify-content:center;align-items:center;max-width:120px;padding:8px;transition:transform .2s,box-shadow .2s;display:flex}.block-piece:hover{transform:translateY(-3px);box-shadow:0 6px 20px #0000004d}.block-piece:active{cursor:grabbing;transform:scale(.92)}.block-slot.empty{border:2px dashed var(--cell-border);opacity:.3;border-radius:10px;flex:1;max-width:120px;height:80px}.block-grid{gap:2px;display:grid}.mini-cell{width:var(--mini-cell);height:var(--mini-cell);border-radius:4px}.ghost-piece{pointer-events:none;z-index:100;opacity:.85;position:fixed}.game-over-overlay{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);z-index:200;background:#000000bf;justify-content:center;align-items:center;animation:.3s fadeIn;display:flex;position:fixed;inset:0}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.game-over-modal{border:1px solid var(--panel-border);text-align:center;background:linear-gradient(#0d1a30 0%,#0a1628 100%);border-radius:24px;min-width:280px;padding:32px 40px;animation:.5s cubic-bezier(.175,.885,.32,1.275) modalBounce;box-shadow:0 20px 60px #0009}@keyframes modalBounce{0%{opacity:0;transform:scale(.5)translateY(40px)}to{opacity:1;transform:scale(1)translateY(0)}}.game-over-icon{margin-bottom:8px;font-size:48px}.game-over-modal h2{background:linear-gradient(135deg,#ff4081,#ff6d00);-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text;margin-bottom:16px;font-size:28px;font-weight:900}.game-over-stats{margin-bottom:16px}.stat-row{border-bottom:1px solid var(--panel-border);color:var(--text-muted);justify-content:space-between;align-items:center;padding:8px 0;font-size:15px;font-weight:700;display:flex}.stat-row:last-child{border-bottom:none}.stat-val{color:var(--text-primary);font-size:18px;font-weight:900}.stat-val.gold{color:var(--gold)}.new-best{color:var(--gold);margin-bottom:12px;font-size:20px;font-weight:900;animation:.5s cubic-bezier(.175,.885,.32,1.275) streakPop}.play-again-btn{color:#fff;cursor:pointer;letter-spacing:.5px;background:linear-gradient(135deg,#7c4dff,#536dfe);border:none;border-radius:14px;padding:14px 48px;font-family:inherit;font-size:18px;font-weight:800;transition:transform .2s,box-shadow .2s;box-shadow:0 4px 15px #7c4dff66}.play-again-btn:hover{transform:translateY(-2px);box-shadow:0 6px 20px #7c4dff80}.play-again-btn:active{transform:translateY(0)}@media (width<=420px){:root{--mini-cell:22px}.board{padding:5px}.title-block h1{font-size:14px}.score-value,.score-icon{font-size:18px}.score-panel{padding:8px 12px}.blocks-tray{gap:8px;padding:10px 12px}.block-piece{padding:6px}}@media (width<=360px){:root{--mini-cell:18px}.score-panel{padding:6px 10px}.title-block h1{font-size:12px}.score-value{font-size:16px}}@media (height>=800px){.app{padding-top:24px}.blocks-tray{min-height:120px;margin-top:20px}}
