body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;-webkit-tap-highlight-color:transparent;background:linear-gradient(135deg,#1a1c2c,#222639);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;margin:0;overflow-x:hidden;touch-action:manipulation;user-select:none;-webkit-user-select:none}body,html{height:100%}html{overscroll-behavior:none}*,html{box-sizing:border-box}button{-webkit-touch-callout:none;-webkit-tap-highlight-color:transparent;cursor:pointer;touch-action:manipulation;user-select:none;-webkit-user-select:none}@media (max-width:768px){html{font-size:14px;overscroll-behavior:none}body{overflow:hidden;position:fixed;width:100%}#root,body{height:100%}#root{-webkit-overflow-scrolling:touch;overflow-y:auto;overscroll-behavior-y:none}}@media (max-width:380px){html{font-size:12px}}.App{background:linear-gradient(135deg,#404040,grey);font-family:Courier New,monospace;font-weight:700;min-height:100vh;text-align:center}.App-logo{height:40vmin;pointer-events:none}@media (prefers-reduced-motion:no-preference){.App-logo{animation:App-logo-spin 20s linear infinite}}.App-header{align-items:center;box-sizing:border-box;color:#fff;display:flex;flex-direction:column;font-family:Courier New,monospace;font-size:calc(10px + 1vmin);font-weight:700;justify-content:flex-start;min-height:100vh;overflow-x:hidden;padding:20px;width:100%}.App-link{color:#8bac0f}@keyframes App-logo-spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}h1{color:#fff;font-family:Courier New,monospace;font-weight:700;letter-spacing:2px;margin-bottom:30px;text-shadow:2px 2px 0 #000}h2{color:#61dafb;font-size:18px;margin:0 0 10px}@keyframes level-up{0%{transform:scale(1)}50%{color:#fd0;transform:scale(1.3)}to{transform:scale(1)}}.level{font-size:24px;font-weight:700;margin-top:10px;transition:color .3s}.level-up{animation:level-up 1s ease}@media screen and (max-width:768px){h1{font-size:2rem;margin-bottom:15px}.App-header{padding:15px 10px}}@media screen and (max-width:380px){h1{font-size:1.7rem;margin-bottom:10px}.App-header{padding:10px 5px}}:root{--primaryColor:#8bac0f;--secondaryColor:#306230;--textColor:#9bbd0f;--boardBg:#0f380f;--boardBorder:#8bac0f;--cellBorder:#9bbd0f;--infoBg:#306230;--buttonHover:#9bbd0f;--overlayBg:#0f380fe6;--iBlock:#0ff;--jBlock:#00f;--lBlock:orange;--oBlock:#ff0;--sBlock:#0f0;--tBlock:#f0f;--zBlock:red;--iGhost:#00ffff4d;--jGhost:#0000ff4d;--lGhost:#ffa5004d;--oGhost:#ffff004d;--sGhost:#00ff004d;--tGhost:#ff00ff4d;--zGhost:#ff00004d}.tetris-container{align-items:stretch;display:flex;gap:20px;justify-content:center;margin:0 auto;max-width:100%;width:100%}.tetris-container .game-board,.tetris-container .game-info{box-sizing:border-box;margin-bottom:0!important;margin-top:0!important;vertical-align:top}.game-board{background-color:#0f380f;background-color:var(--boardBg);border:8px solid #8bac0f;border:8px outset var(--boardBorder);border-radius:0;box-shadow:6px 6px 0 #0f380f,inset 0 0 0 2px #9bbd0f;box-shadow:6px 6px 0 #0f380f,inset 0 0 0 2px var(--cellBorder);display:flex;flex:3 1;flex-direction:column;max-width:300px;overflow:hidden;position:relative;width:300px}.game-board[data-gesture-enabled=true]{cursor:grab;touch-action:none;-webkit-user-select:none;user-select:none}.game-board[data-gesture-enabled=true]:active{cursor:grabbing}.game-info{align-self:stretch;background-color:#306230;background-color:var(--infoBg);border:8px solid #8bac0f;border:8px outset var(--boardBorder);border-radius:0;box-shadow:6px 6px 0 #0f380f;color:#9bbd0f;color:var(--textColor);flex:1 1;font-family:Courier New,monospace;font-weight:700;height:auto;justify-content:space-between;max-width:150px;padding:10px}.game-info,.info-main-section{display:flex;flex-direction:column;gap:5px}.hold-next-container{display:flex;gap:5px;justify-content:space-between;margin-bottom:5px}.hold-piece-mini,.next-pieces-mini{align-items:center;background-color:#0003;border-radius:4px;display:flex;flex:1 1;flex-direction:column;height:80px;overflow:hidden;padding:4px;width:100%}.hold-piece-mini{position:relative}.hold-piece-mini .next-piece-grid-mini{left:50%;position:absolute;top:50%;transform:translate(-50%,-50%) scale(.8)}.hold-piece-mini .next-piece-grid-mini[data-piece=I]{transform:translate(-50%,-50%) scale(.6)}.hold-piece-mini .next-piece-grid-mini[data-piece=O]{transform:translate(-50%,-50%) scale(.9)}.hold-piece-mini .next-piece-grid-mini[data-piece=J],.hold-piece-mini .next-piece-grid-mini[data-piece=L],.hold-piece-mini .next-piece-grid-mini[data-piece=S],.hold-piece-mini .next-piece-grid-mini[data-piece=T],.hold-piece-mini .next-piece-grid-mini[data-piece=Z]{transform:translate(-50%,-50%) scale(.75)}.hold-piece-mini.hold-disabled{opacity:.6}.section-label{color:#8bac0f;color:var(--primaryColor);font-size:10px;font-weight:700;margin-bottom:2px;text-transform:uppercase}.compact-next-pieces{align-items:center;display:flex;flex-direction:column;gap:2px;height:100%;width:100%}.next-piece-primary{height:40px;margin-bottom:8px;transform:scale(.8);width:48px}.next-piece-primary,.next-pieces-secondary-horizontal{align-items:center;display:flex;justify-content:center}.next-pieces-secondary-horizontal{flex-direction:row;gap:4px;min-height:30px;width:100%}.mini-next-piece-horizontal{align-items:center;display:flex;flex:1 1;height:24px;justify-content:center;width:auto}.next-pieces-mini{height:auto!important;min-height:80px;padding-top:5px}.tiny-grid{align-items:center;flex-direction:column;justify-content:center}.tiny-grid,.tiny-row{display:flex}.tiny-cell{border:1px solid #9bbd0f;border:1px solid var(--cellBorder);box-sizing:border-box;height:10px;width:10px}.tiny-cell.I{background-color:#0ff;background-color:var(--iBlock)}.tiny-cell.J{background-color:#00f;background-color:var(--jBlock)}.tiny-cell.L{background-color:orange;background-color:var(--lBlock)}.tiny-cell.O{background-color:#ff0;background-color:var(--oBlock)}.tiny-cell.S{background-color:#0f0;background-color:var(--sBlock)}.tiny-cell.T{background-color:#f0f;background-color:var(--tBlock)}.tiny-cell.Z{background-color:red;background-color:var(--zBlock)}.next-piece-grid-mini{justify-content:center}.score-stats-compact{display:flex;flex-direction:column;gap:5px;margin-bottom:5px}.lines-combo-container,.score-level-container{display:flex;gap:5px;justify-content:space-between}.combo-compact,.level-compact,.lines-compact,.score-compact{align-items:center;background-color:#00000026;border-radius:4px;display:flex;flex:1 1;flex-direction:column;padding:4px}.data-label{color:#8bac0f;color:var(--primaryColor);font-size:9px;text-transform:uppercase}.combo-value,.level,.lines,.score{font-size:14px;font-weight:700}.game-controls-compact{display:flex;flex-direction:column;gap:5px}.pause-button{border-radius:4px;color:#0f380f;color:var(--boardBg);font-size:12px;padding:6px 8px}.control-buttons-row{display:flex;gap:5px}.compact-button{border:none;border-radius:4px;cursor:pointer;flex:1 1;font-size:10px;font-weight:700;padding:4px 6px;transition:background-color .3s}.compact-button.leaderboard{background-color:#ff9800;color:#0f380f;color:var(--boardBg)}.compact-button.theme{background-color:#4caf50;color:#0f380f;color:var(--boardBg)}.compact-button:hover{opacity:.9}.level.level-up{color:#fd0;text-shadow:0 0 5px #fd0}@media screen and (max-width:768px){.tetris-container{align-items:stretch!important;flex-direction:row!important;gap:12px!important;max-width:100vw!important;padding:8px!important;width:100%!important}.game-board{max-width:65vw!important;min-width:280px!important;width:400px!important}.game-board,.game-info{align-self:stretch!important;flex:none!important}.game-info{gap:4px;height:auto!important;max-width:32vw!important;min-width:140px!important;padding:6px;width:180px!important}.hold-next-container{gap:3px;margin-bottom:3px}.hold-piece-mini,.next-pieces-mini{padding:3px}.data-label,.section-label{font-size:8px}.combo-value,.level,.lines,.score{font-size:12px}.mini-next-piece{transform:scale(.5)}.compact-button,.pause-button{font-size:9px;padding:3px 4px}}@media screen and (max-width:480px){.tetris-container{align-items:stretch!important;box-sizing:border-box!important;flex-direction:row!important;gap:8px!important;max-width:100vw!important;padding:5px!important;width:100%!important}.game-board{align-self:stretch!important;flex:none!important;max-width:260px!important;min-height:auto!important;min-width:220px!important;width:65vw!important}.game-board .cell,.game-board .row{flex:1 1!important;height:auto!important}.game-board .cell{aspect-ratio:1/1!important;width:auto!important}.game-info{align-self:stretch!important;flex:none!important;height:auto!important;max-width:140px!important;min-width:110px!important;width:32vw!important}}@media screen and (max-width:380px){.tetris-container{align-items:stretch!important;flex-direction:row!important;gap:6px!important;max-width:100vw!important;padding:3px!important;width:100%!important}.game-board{max-width:240px!important;min-width:200px!important;width:66vw!important}.game-board,.game-info{align-self:stretch!important;flex:none!important}.game-info{height:auto!important;max-width:120px!important;min-width:100px!important;padding:4px!important;width:31vw!important}.game-info .data-label,.game-info .section-label{font-size:7px!important}.game-info .combo-value,.game-info .level,.game-info .lines,.game-info .score{font-size:10px!important}.game-info .compact-button,.game-info .pause-button{font-size:8px!important;padding:2px 3px!important}}.row{display:flex}.cell,.row{height:30px}.cell{border:1px solid #9bbd0f;border:1px solid var(--cellBorder);box-sizing:border-box;width:30px}.cell.I{background:radial-gradient(ellipse at 30% 30%,#ffffffb3 0,#0000 50%),linear-gradient(135deg,#4dffff,#0ff 50%,#00b3b3);background:radial-gradient(ellipse at 30% 30%,#ffffffb3 0,#0000 50%),linear-gradient(135deg,#4dffff 0,var(--iBlock) 50%,#00b3b3 100%);border:1px solid #004d4d;box-shadow:inset 3px 3px 6px #fff6,inset -3px -3px 6px #00000080,0 6px 12px #0000004d,0 2px 4px #0003;position:relative;transform:translateZ(0);transition:all .15s cubic-bezier(.4,0,.2,1)}.cell.I:before{background:linear-gradient(135deg,#ffffff4d,#0000 50%);border-radius:1px;bottom:2px;left:2px;right:2px;top:2px}.cell.I:after,.cell.I:before{content:"";pointer-events:none;position:absolute}.cell.I:after{background:radial-gradient(circle,#fffc 0,#0000 70%);border-radius:50%;height:8px;left:1px;top:1px;width:8px}.cell.J{background:radial-gradient(ellipse at 30% 30%,#ffffffb3 0,#0000 50%),linear-gradient(135deg,#4d4dff,#00f 50%,#0000b3);background:radial-gradient(ellipse at 30% 30%,#ffffffb3 0,#0000 50%),linear-gradient(135deg,#4d4dff 0,var(--jBlock) 50%,#0000b3 100%);border:1px solid #006;box-shadow:inset 3px 3px 6px #fff6,inset -3px -3px 6px #00000080,0 6px 12px #0000004d,0 2px 4px #0003;position:relative;transform:translateZ(0);transition:all .15s cubic-bezier(.4,0,.2,1)}.cell.J:before{background:linear-gradient(135deg,#ffffff4d,#0000 50%);border-radius:1px;bottom:2px;left:2px;right:2px;top:2px}.cell.J:after,.cell.J:before{content:"";pointer-events:none;position:absolute}.cell.J:after{background:radial-gradient(circle,#fffc 0,#0000 70%);border-radius:50%;height:8px;left:1px;top:1px;width:8px}.cell.L{background:radial-gradient(ellipse at 30% 30%,#ffffffb3 0,#0000 50%),linear-gradient(135deg,#ffd966,orange 50%,#cc7a00);background:radial-gradient(ellipse at 30% 30%,#ffffffb3 0,#0000 50%),linear-gradient(135deg,#ffd966 0,var(--lBlock) 50%,#cc7a00 100%);border:1px solid #995c00;box-shadow:inset 3px 3px 6px #fff6,inset -3px -3px 6px #00000080,0 6px 12px #0000004d,0 2px 4px #0003;position:relative;transform:translateZ(0);transition:all .15s cubic-bezier(.4,0,.2,1)}.cell.L:before{background:linear-gradient(135deg,#ffffff4d,#0000 50%);border-radius:1px;bottom:2px;left:2px;right:2px;top:2px}.cell.L:after,.cell.L:before{content:"";pointer-events:none;position:absolute}.cell.L:after{background:radial-gradient(circle,#fffc 0,#0000 70%);border-radius:50%;height:8px;left:1px;top:1px;width:8px}.cell.O{background:radial-gradient(ellipse at 30% 30%,#ffffffb3 0,#0000 50%),linear-gradient(135deg,#ffff4d,#ff0 50%,#cc0);background:radial-gradient(ellipse at 30% 30%,#ffffffb3 0,#0000 50%),linear-gradient(135deg,#ffff4d 0,var(--oBlock) 50%,#cc0 100%);border:1px solid #990;box-shadow:inset 3px 3px 6px #fff6,inset -3px -3px 6px #00000080,0 6px 12px #0000004d,0 2px 4px #0003;position:relative;transform:translateZ(0);transition:all .15s cubic-bezier(.4,0,.2,1)}.cell.O:before{background:linear-gradient(135deg,#ffffff4d,#0000 50%);border-radius:1px;bottom:2px;left:2px;right:2px;top:2px}.cell.O:after,.cell.O:before{content:"";pointer-events:none;position:absolute}.cell.O:after{background:radial-gradient(circle,#fffc 0,#0000 70%);border-radius:50%;height:8px;left:1px;top:1px;width:8px}.cell.S{background:radial-gradient(ellipse at 30% 30%,#ffffffb3 0,#0000 50%),linear-gradient(135deg,#4dff4d,#0f0 50%,#00b300);background:radial-gradient(ellipse at 30% 30%,#ffffffb3 0,#0000 50%),linear-gradient(135deg,#4dff4d 0,var(--sBlock) 50%,#00b300 100%);border:1px solid #060;box-shadow:inset 3px 3px 6px #fff6,inset -3px -3px 6px #00000080,0 6px 12px #0000004d,0 2px 4px #0003;position:relative;transform:translateZ(0);transition:all .15s cubic-bezier(.4,0,.2,1)}.cell.S:before{background:linear-gradient(135deg,#ffffff4d,#0000 50%);border-radius:1px;bottom:2px;left:2px;right:2px;top:2px}.cell.S:after,.cell.S:before{content:"";pointer-events:none;position:absolute}.cell.S:after{background:radial-gradient(circle,#fffc 0,#0000 70%);border-radius:50%;height:8px;left:1px;top:1px;width:8px}.cell.T{background:radial-gradient(ellipse at 30% 30%,#ffffffb3 0,#0000 50%),linear-gradient(135deg,#ff4dff,#f0f 50%,#c0c);background:radial-gradient(ellipse at 30% 30%,#ffffffb3 0,#0000 50%),linear-gradient(135deg,#ff4dff 0,var(--tBlock) 50%,#c0c 100%);border:1px solid #909;box-shadow:inset 3px 3px 6px #fff6,inset -3px -3px 6px #00000080,0 6px 12px #0000004d,0 2px 4px #0003;position:relative;transform:translateZ(0);transition:all .15s cubic-bezier(.4,0,.2,1)}.cell.T:before{background:linear-gradient(135deg,#ffffff4d,#0000 50%);border-radius:1px;bottom:2px;left:2px;right:2px;top:2px}.cell.T:after,.cell.T:before{content:"";pointer-events:none;position:absolute}.cell.T:after{background:radial-gradient(circle,#fffc 0,#0000 70%);border-radius:50%;height:8px;left:1px;top:1px;width:8px}.cell.Z{background:radial-gradient(ellipse at 30% 30%,#ffffffb3 0,#0000 50%),linear-gradient(135deg,#ff4d4d,red 50%,#c00);background:radial-gradient(ellipse at 30% 30%,#ffffffb3 0,#0000 50%),linear-gradient(135deg,#ff4d4d 0,var(--zBlock) 50%,#c00 100%);border:1px solid #900;box-shadow:inset 3px 3px 6px #fff6,inset -3px -3px 6px #00000080,0 6px 12px #0000004d,0 2px 4px #0003;position:relative;transform:translateZ(0);transition:all .15s cubic-bezier(.4,0,.2,1)}.cell.Z:before{background:linear-gradient(135deg,#ffffff4d,#0000 50%);border-radius:1px;bottom:2px;left:2px;right:2px;top:2px}.cell.Z:after,.cell.Z:before{content:"";pointer-events:none;position:absolute}.cell.Z:after{background:radial-gradient(circle,#fffc 0,#0000 70%);border-radius:50%;height:8px;left:1px;top:1px;width:8px}.cell.I-ghost{background-color:#00ffff4d;background-color:var(--iGhost);border:1px dashed #0ff;border:1px dashed var(--iBlock)}.cell.J-ghost{background-color:#0000ff4d;background-color:var(--jGhost);border:1px dashed #00f;border:1px dashed var(--jBlock)}.cell.L-ghost{background-color:#ffa5004d;background-color:var(--lGhost);border:1px dashed orange;border:1px dashed var(--lBlock)}.cell.O-ghost{background-color:#ffff004d;background-color:var(--oGhost);border:1px dashed #ff0;border:1px dashed var(--oBlock)}.cell.S-ghost{background-color:#00ff004d;background-color:var(--sGhost);border:1px dashed #0f0;border:1px dashed var(--sBlock)}.cell.T-ghost{background-color:#ff00ff4d;background-color:var(--tGhost);border:1px dashed #f0f;border:1px dashed var(--tBlock)}.cell.Z-ghost{background-color:#ff00004d;background-color:var(--zGhost);border:1px dashed red;border:1px dashed var(--zBlock)}.level-container,.lines-container,.next-piece-container,.score-container{margin-bottom:20px;text-align:center}.next-piece-preview{align-items:center;background-color:#0f380f;background-color:var(--boardBg);border:2px solid #8bac0f;border:2px solid var(--boardBorder);display:flex;height:120px;justify-content:center;margin:0 auto;width:120px}.preview-row{display:flex}.preview-cell{border:1px solid #9bbd0f;border:1px solid var(--cellBorder);box-sizing:border-box;height:20px;width:20px}.preview-cell.I{background:linear-gradient(135deg,#6ff,#0ff 50%,#0cc);background:linear-gradient(135deg,#6ff 0,var(--iBlock) 50%,#0cc 100%);border:1px outset #0ff;border:1px outset var(--iBlock)}.preview-cell.I,.preview-cell.J{box-shadow:inset 1px 1px 0 #ffffff80,inset -1px -1px 0 #0000004d}.preview-cell.J{background:linear-gradient(135deg,#33f,#00f 50%,#00c);background:linear-gradient(135deg,#33f 0,var(--jBlock) 50%,#00c 100%);border:1px outset #00f;border:1px outset var(--jBlock)}.preview-cell.L{background:linear-gradient(135deg,#fc6,orange 50%,#c60);background:linear-gradient(135deg,#fc6 0,var(--lBlock) 50%,#c60 100%);border:1px outset orange;border:1px outset var(--lBlock)}.preview-cell.L,.preview-cell.O{box-shadow:inset 1px 1px 0 #ffffff80,inset -1px -1px 0 #0000004d}.preview-cell.O{background:linear-gradient(135deg,#ff6,#ff0 50%,#cc0);background:linear-gradient(135deg,#ff6 0,var(--oBlock) 50%,#cc0 100%);border:1px outset #ff0;border:1px outset var(--oBlock)}.preview-cell.S{background:linear-gradient(135deg,#6f6,#0f0 50%,#0c0);background:linear-gradient(135deg,#6f6 0,var(--sBlock) 50%,#0c0 100%);border:1px outset #0f0;border:1px outset var(--sBlock)}.preview-cell.S,.preview-cell.T{box-shadow:inset 1px 1px 0 #ffffff80,inset -1px -1px 0 #0000004d}.preview-cell.T{background:linear-gradient(135deg,#f6f,#f0f 50%,#c0c);background:linear-gradient(135deg,#f6f 0,var(--tBlock) 50%,#c0c 100%);border:1px outset #f0f;border:1px outset var(--tBlock)}.preview-cell.Z{background:linear-gradient(135deg,#f66,red 50%,#c00);background:linear-gradient(135deg,#f66 0,var(--zBlock) 50%,#c00 100%);border:1px outset red;border:1px outset var(--zBlock);box-shadow:inset 1px 1px 0 #ffffff80,inset -1px -1px 0 #0000004d}.level,.lines,.score{font-size:24px;font-weight:700;margin-top:10px}.hold-piece-container{margin-bottom:20px;text-align:center}.hold-piece-preview{align-items:center;background-color:#0f380f;background-color:var(--boardBg);border:2px solid #8bac0f;border:2px solid var(--boardBorder);cursor:pointer;display:flex;height:120px;justify-content:center;margin:0 auto;transition:all .2s ease;width:120px}.hold-piece-preview:hover{border-color:#8bac0f;border-color:var(--primaryColor);box-shadow:0 0 10px #61dafb80}.hold-piece-preview.hold-disabled{border-color:#555;cursor:not-allowed;opacity:.6}.empty-holder{color:#555;font-size:24px;font-weight:700;left:50%;position:absolute;top:50%;transform:translate(-50%,-50%)}.hold-tip{color:#999;font-size:12px;margin-top:5px}.control-btn.hold{align-items:center;border-radius:50%;box-shadow:0 4px 8px #0000004d;display:flex;height:min(70px,18vw);justify-content:center;margin-top:10px;position:relative;width:min(70px,18vw)}.next-piece-grid,.next-pieces-preview,.piece-grid{align-items:center;display:flex;flex-direction:column}.next-pieces-preview{background-color:#0f380f;background-color:var(--boardBg);border:2px solid #8bac0f;border:2px solid var(--boardBorder);height:210px;justify-content:space-around;margin:0 auto;padding:5px 0;width:120px}.next-pieces-container{align-items:center;display:flex;flex-direction:column;gap:10px;width:100%}.next-piece-mini{border:1px solid #0000;border-radius:4px;padding:3px;transition:all .2s ease}.next-piece-first{background-color:#ffffff0d;border-color:#ffffff1a}.next-piece-grid-mini{align-items:center;display:flex;flex-direction:column;transform:scale(.8)}.preview-row-mini{display:flex}.preview-cell-mini{border:1px solid #9bbd0f;border:1px solid var(--cellBorder);box-sizing:border-box;height:16px;width:16px}.preview-cell-mini.I{background-color:#0ff;background-color:var(--iBlock)}.preview-cell-mini.J{background-color:#00f;background-color:var(--jBlock)}.preview-cell-mini.L{background-color:orange;background-color:var(--lBlock)}.preview-cell-mini.O{background-color:#ff0;background-color:var(--oBlock)}.preview-cell-mini.S{background-color:#0f0;background-color:var(--sBlock)}.preview-cell-mini.T{background-color:#f0f;background-color:var(--tBlock)}.preview-cell-mini.Z{background-color:red;background-color:var(--zBlock)}@media screen and (max-width:768px){.mini-next-piece-horizontal{height:20px;transform:scale(.9)}.next-pieces-secondary-horizontal{gap:4px}.tiny-cell{height:8px;width:8px}}.cell.garbage{background:linear-gradient(135deg,#666,#888 50%,#666);border:2px solid #aaa;box-shadow:inset 0 0 4px #0000004d;opacity:.9;position:relative}.cell.garbage:before{color:#ccc;content:"▓";font-size:10px;font-weight:700;left:50%;opacity:.7;position:absolute;top:50%;transform:translate(-50%,-50%)}@keyframes board-shake{0%,to{transform:translateX(0)}10%{transform:translateX(-4px)}20%{transform:translateX(4px)}30%{transform:translateX(-4px)}40%{transform:translateX(4px)}50%{transform:translateX(-2px)}60%{transform:translateX(2px)}70%{transform:translateX(-2px)}80%{transform:translateX(2px)}90%{transform:translateX(-1px)}}.board-shake{animation:board-shake .6s ease-in-out}.game-over-overlay{align-items:center;background-color:#0f380fe6;background-color:var(--overlayBg);display:flex;height:100%;justify-content:center;left:0;position:absolute;top:0;width:100%;z-index:10}.game-over-content{background-color:#222;border:5px solid #8bac0f;border:5px solid var(--primaryColor);border-radius:10px;color:#fff;max-width:80%;padding:30px}.game-over-content h2{color:#ff5252;font-size:32px;margin-bottom:20px;text-transform:uppercase}.final-score{margin-bottom:25px}.final-score p{font-size:20px;margin:10px 0}.restart-button{background-color:#8bac0f;background-color:var(--primaryColor);border:none;border-radius:5px;color:#0f380f;color:var(--boardBg);cursor:pointer;font-size:18px;font-weight:700;margin-bottom:15px;padding:12px 25px;transition:background-color .3s}.restart-button:hover{background-color:#9bbd0f;background-color:var(--buttonHover)}.restart-hint{color:#999;font-size:14px;margin:0}.pause-overlay{align-items:center;background-color:#000000b3;display:flex;height:100%;justify-content:center;left:0;position:absolute;top:0;width:100%;z-index:10}.pause-content{background-color:#222;border:5px solid #8bac0f;border:5px solid var(--primaryColor);border-radius:10px;color:#fff;padding:25px;text-align:center}.pause-content h2{color:#8bac0f;color:var(--primaryColor);font-size:28px;margin-bottom:15px;text-transform:uppercase}.pause-content p{font-size:18px;margin:0}.pause-button-container{margin-top:30px;text-align:center}.pause-button{background-color:#8bac0f;background-color:var(--primaryColor);border:none;border-radius:5px;color:#222;cursor:pointer;font-size:16px;font-weight:700;padding:10px 20px;transition:background-color .3s;width:100%}.pause-button:hover{background-color:#9bbd0f;background-color:var(--buttonHover)}.next-level,.speed-info{color:#999;font-size:12px;margin-top:5px}.level-up{color:#fd0;text-shadow:0 0 10px #fd0}.high-score-display{color:#ccc;font-size:14px;margin-top:5px}.new-high-score{animation:pulse 1.5s infinite;color:#fd0;font-weight:700;text-shadow:0 0 5px #fd0}@keyframes pulse{0%{opacity:.7}50%{opacity:1}to{opacity:.7}}.mobile-controls{background-color:#e0e0e0;border-radius:15px;box-shadow:0 4px 12px #0000004d;display:none;margin:20px auto 0;max-width:400px;padding:15px;width:100%}.controls-container{align-items:center;display:flex;flex-direction:column;gap:15px;width:100%}.gameboy-controls{display:flex;justify-content:space-between;margin-top:10px;width:100%}.d-pad-container{height:min(150px,40vw);position:relative;width:min(150px,40vw)}.d-pad-center{height:25%;left:50%;top:50%;transform:translate(-50%,-50%);width:25%;z-index:1}.control-btn,.d-pad-center{background-color:#333;position:absolute}.control-btn{align-items:center;border:none;border-radius:5px;box-shadow:0 4px 8px #0000004d;color:#fff;cursor:pointer;display:flex;font-size:clamp(16px,5vw,24px);height:40%;justify-content:center;touch-action:none;transition:all .15s ease;user-select:none;-webkit-user-select:none;width:40%}.control-btn:active{background-color:#555;box-shadow:inset 0 0 8px #0006;transform:scale(.95)}.control-btn.down{-webkit-touch-callout:none;touch-action:none;-webkit-user-select:none;user-select:none}.control-btn.down.active,.control-btn.down:active{background-color:#777;box-shadow:inset 0 0 10px #00000080;transform:translateX(-50%) translateY(2px)}.control-btn.left.active{transform:translateY(-50%) translateX(-2px)}.control-btn.left.active,.control-btn.right.active{background-color:#777;box-shadow:inset 0 0 10px #00000080}.control-btn.right.active{transform:translateY(-50%) translateX(2px)}.control-btn.left:active{transform:translate(-2px,-50%)}.control-btn.right:active{transform:translate(2px,-50%)}.control-btn.up:active{transform:translateX(-50%) translateY(-2px)}.control-btn.drop:active,.control-btn.rotate:active{background-color:#666;transform:scale(.95)}.control-btn.left{border-bottom-right-radius:0;border-top-right-radius:0;left:0;top:50%;transform:translateY(-50%)}.control-btn.right{border-bottom-left-radius:0;border-top-left-radius:0;right:0;top:50%;transform:translateY(-50%)}.control-btn.down{border-top-left-radius:0;border-top-right-radius:0;bottom:0}.control-btn.down,.control-btn.up{left:50%;transform:translateX(-50%)}.control-btn.up{border-bottom-left-radius:0;border-bottom-right-radius:0;top:0}.action-buttons{flex-direction:column;margin-right:min(10px,2vw);min-width:180px}.action-buttons,.action-row{display:flex;gap:min(15px,4vw);justify-content:center}.primary-actions{display:flex;justify-content:space-around;width:100%}.btn-label{font-size:22px;font-weight:700}.btn-function{display:block;font-size:10px;margin-top:2px;opacity:.8}.control-btn.drop,.control-btn.hold,.control-btn.rotate{align-items:center;border-radius:50%;box-shadow:0 4px 8px #0000004d;display:flex;flex-direction:column;height:min(60px,16vw);justify-content:center;position:relative;width:min(60px,16vw)}.control-btn.rotate{background-color:#a50000}.control-btn.hold{background-color:#8f00a0}.control-btn.drop{background-color:#003da5;height:min(70px,18vw);width:min(70px,18vw)}.control-btn.hold.disabled{background-color:#666;cursor:not-allowed;opacity:.5}.control-btn.drop:active,.control-btn.hold:active,.control-btn.rotate:active{box-shadow:inset 0 0 10px #00000080;transform:scale(.95)}.system-buttons{display:flex;gap:clamp(20px,10vw,40px);justify-content:center;margin-top:15px;width:100%}.system-button{background-color:#777;border:none;border-radius:10px;box-shadow:0 2px 4px #0000004d;cursor:pointer;height:min(18px,4vw);transform:rotate(-25deg);width:min(60px,16vw)}.system-labels{display:flex;gap:clamp(40px,15vw,60px);justify-content:center;margin-top:5px;width:100%}.system-label{color:#333;font-size:clamp(8px,2vw,10px);font-weight:700}.high-score-form{margin:15px 0 25px}.high-score-message{color:#fd0;font-size:18px;font-weight:700;margin-bottom:15px}.name-input{background-color:#0f380f;background-color:var(--boardBg);border:2px solid #8bac0f;border:2px solid var(--primaryColor);border-radius:5px;font-size:16px;margin-bottom:15px;padding:12px 15px;text-align:center}.name-input:focus{border-color:#fd0;box-shadow:0 0 10px #ffdd0080}.submit-button{background-color:#8bac0f;background-color:var(--primaryColor);border:none;border-radius:5px;color:#0f380f;color:var(--boardBg);cursor:pointer;font-size:16px;font-weight:700;padding:12px 25px;transition:background-color .3s;width:100%}.submit-button:hover{background-color:#9bbd0f;background-color:var(--buttonHover)}.score-saved{color:#4caf50}.leaderboard-button,.score-saved{font-weight:700;margin-bottom:15px}.leaderboard-button{background-color:#ff9800;border:none;border-radius:5px;color:#0f380f;color:var(--boardBg);cursor:pointer;font-size:16px;margin-top:10px;padding:12px 25px;transition:background-color .3s;width:100%}.leaderboard-button:hover{background-color:#f57c00}@media screen and (max-width:768px){.leaderboard-button,.name-input,.submit-button{font-size:14px;padding:10px}.high-score-message{font-size:16px}.App-header{justify-content:flex-start;padding:10px 5px}h1{font-size:1.5rem;margin:5px 0 10px}.tetris-container{align-items:flex-start;box-sizing:border-box;flex-direction:row;gap:10px;max-width:100vw;padding:0 5px;width:100%}.game-board{flex:none;max-width:280px;min-width:250px;width:65vw}.game-info{flex:none;font-size:.85rem;max-width:160px;max-width:none;min-width:120px;padding:8px;width:30vw;width:auto}.level-container,.lines-container,.next-piece-container,.score-container{margin-bottom:10px}h2{font-size:14px;margin-bottom:4px}.level,.lines,.score{font-size:16px;margin-top:4px}.high-score-display,.next-level,.speed-info{font-size:9px}.hold-piece-preview,.next-piece-preview{aspect-ratio:1/1;height:auto;padding:2px;width:100%}.empty-holder{font-size:24px}.hold-piece-container,.next-piece-container{margin-bottom:10px}.preview-cell{height:auto;min-height:8px;min-width:8px;width:auto}.pause-button{font-size:12px;padding:5px}.cell,.row{flex:1 1;height:auto}.cell{aspect-ratio:1/1;width:auto}.mobile-controls{display:block;margin-top:15px;width:95%}.action-buttons{min-width:140px}.btn-label{font-size:18px}.btn-function{font-size:8px}}@media screen and (max-width:480px){.mobile-controls{padding:10px}.gameboy-controls{gap:10px}}@media screen and (max-width:380px){.mobile-controls{padding:8px}.system-buttons{margin-top:10px}.system-labels{gap:30px}}@media screen and (max-width:768px) and (orientation:landscape){.mobile-controls{flex-direction:row;max-width:500px}.gameboy-controls{gap:5%}.d-pad-container{height:min(120px,20vh);width:min(120px,20vh)}.control-btn.drop,.control-btn.hold,.control-btn.rotate{height:min(50px,10vh);width:min(50px,10vh)}.control-btn.drop{height:min(60px,12vh);width:min(60px,12vh)}.action-buttons{align-items:center;flex-direction:row;min-width:200px}.primary-actions{flex-direction:column}}@media screen and (max-height:500px) and (orientation:landscape){.tetris-container{align-items:stretch!important;flex-direction:row!important;gap:10px!important;height:90vh!important;max-height:90vh!important;overflow:hidden!important;padding:5px!important}.game-board{height:85vh!important;max-height:85vh!important;max-width:60vw!important;width:auto!important}.game-board,.game-info{align-self:stretch!important;flex:none!important}.game-info{height:auto!important;max-height:none!important;max-width:200px!important;min-width:140px!important;overflow-y:auto!important;width:35vw!important}}.leaderboard-overlay{align-items:center;background-color:#0f380fe6;background-color:var(--overlayBg);display:flex;height:100%;justify-content:center;left:0;position:fixed;top:0;width:100%;z-index:100}.leaderboard-container{background-color:#222;border:5px solid #8bac0f;border:5px solid var(--primaryColor);border-radius:10px;box-shadow:0 0 20px #61dafb80;color:#fff;max-width:90%;padding:30px;text-align:center;width:600px}.leaderboard-container h2{color:#8bac0f;color:var(--primaryColor);font-size:28px;margin-bottom:20px;text-transform:uppercase}.leaderboard-table{border-collapse:collapse;margin-bottom:25px;width:100%}.leaderboard-table td,.leaderboard-table th{border-bottom:1px solid #444;padding:10px}.leaderboard-table th{background-color:#333;color:#8bac0f;color:var(--primaryColor);font-size:14px;font-weight:700;text-transform:uppercase}.leaderboard-table .rank{font-weight:700;text-align:center;width:50px}.leaderboard-table .name{font-weight:700;text-align:left}.leaderboard-table .score{color:#fd0;font-weight:700}.leaderboard-table .first-place{background-color:#ffd70033}.leaderboard-table .second-place{background-color:#c0c0c033}.leaderboard-table .third-place{background-color:#cd7f3233}.close-button{background-color:#8bac0f;background-color:var(--primaryColor);border:none;border-radius:5px;color:#0f380f;color:var(--boardBg);cursor:pointer;display:block;font-size:16px;font-weight:700;margin:0 auto;max-width:200px;padding:12px 25px;position:relative;transition:background-color .3s;width:100%;z-index:10}.close-button:hover{background-color:#9bbd0f;background-color:var(--buttonHover);box-shadow:0 4px 8px #0003;transform:translateY(-2px)}.close-button:active{transform:translateY(1px)}.no-scores{color:#999;font-size:18px;margin:30px 0}.info-leaderboard-button{background-color:#ff9800;border:none;border-radius:5px;color:#0f380f;color:var(--boardBg);cursor:pointer;font-size:14px;font-weight:700;margin-bottom:15px;margin-top:10px;padding:10px 20px;transition:background-color .3s;width:100%}.info-leaderboard-button:hover{background-color:#f57c00}.game-controls{margin-top:15px}@media (max-width:600px){.leaderboard-container{max-height:90vh;overflow-y:auto;padding:15px}.leaderboard-table td,.leaderboard-table th{font-size:12px;padding:8px 5px}.leaderboard-container h2{font-size:22px}.leaderboard-table th{font-size:12px}.close-button{font-size:14px;padding:10px 20px}}.mode-select-overlay{align-items:center;background:linear-gradient(135deg,#1a1c2c,#222639);display:flex;height:100%;justify-content:center;left:0;position:fixed;top:0;width:100%;z-index:50}.mode-select-container{background-color:#222;border:5px solid #8bac0f;border:5px solid var(--primaryColor);border-radius:10px;box-shadow:0 0 20px #61dafb80;color:#fff;max-width:800px;padding:30px;text-align:center;width:90%}.mode-select-container h1{color:#8bac0f;color:var(--primaryColor);font-size:3rem;margin-bottom:10px;text-shadow:0 0 10px #61dafbb3;text-transform:uppercase}.mode-select-container h2{color:#fff;font-size:1.8rem;margin-bottom:30px}.mode-options{display:flex;flex-wrap:wrap;gap:20px;justify-content:center;margin-bottom:30px}.mode-option{background-color:#2a2a40;border:3px solid #0000;border-radius:10px;cursor:pointer;padding:20px;transition:all .3s ease;width:220px}.mode-option:hover{border-color:#8bac0f;border-color:var(--primaryColor);box-shadow:0 5px 15px #61dafb66;transform:translateY(-5px)}.mode-icon{font-size:2.5rem;margin-bottom:10px}.mode-option h3{color:#8bac0f;color:var(--primaryColor);font-size:1.5rem;margin-bottom:10px}.mode-option p{color:#ddd;font-size:.9rem;margin-bottom:15px;min-height:60px}.mode-goal,.mode-time-limit{background-color:#61dafb33;border-radius:5px;font-size:.9rem;margin-top:10px;padding:5px 10px}.mode-instruction{color:#888;font-size:1rem}.mode-indicator{align-items:center;display:flex;flex-wrap:wrap;gap:20px;justify-content:center;margin-bottom:15px}.current-mode{align-items:center;background-color:#2a2a40;display:flex;font-size:1.1rem;gap:8px}.current-mode,.goal-display,.time-display{border-radius:20px;box-shadow:0 2px 5px #0000004d;padding:5px 15px}.goal-display,.time-display{background-color:#333;font-size:1rem}.time-display{color:#fd0}.goal-display{color:#4caf50}.win-title{color:#4caf50!important}.lose-title{color:#ff5252!important}.time-result{color:#fd0;font-size:24px!important;font-weight:700}.game-over-buttons{display:flex;flex-direction:column;gap:10px;margin-bottom:15px}.menu-button{background-color:#2196f3;border:none;border-radius:5px;color:#fff;cursor:pointer;font-size:16px;font-weight:700;padding:12px 25px;transition:background-color .3s;width:100%}.menu-button:hover{background-color:#0b7dda}.pause-menu-buttons{display:flex;flex-direction:column;gap:10px;margin:20px 0}.resume-button{background-color:#4caf50;border:none;border-radius:5px;color:#fff;cursor:pointer;font-size:16px;font-weight:700;padding:12px 25px;transition:background-color .3s;width:100%}.resume-button:hover{background-color:#388e3c}.leaderboard-mode-tabs{display:flex;flex-wrap:wrap;gap:5px;justify-content:center;margin-bottom:20px}.mode-tab{background-color:#333;border:none;border-bottom:3px solid #0000;border-radius:5px 5px 0 0;color:#fff;cursor:pointer;font-size:14px;padding:8px 15px;transition:all .2s ease}.mode-tab:hover{background-color:#444}.mode-tab.active{background-color:#2a2a40;border-bottom-color:#8bac0f;border-bottom-color:var(--primaryColor);color:#8bac0f;color:var(--primaryColor)}@media (max-width:768px){.mode-select-container h1{font-size:2.2rem}.mode-select-container h2{font-size:1.3rem}.mode-option{padding:15px;width:calc(50% - 15px)}.mode-icon{font-size:2rem}.mode-option h3{font-size:1.2rem}.mode-option p{font-size:.8rem;min-height:70px}.current-mode,.goal-display,.time-display{font-size:.9rem;padding:4px 10px}}@media (max-width:480px){.mode-option{margin-bottom:10px;width:100%}.mode-option p{min-height:auto}.mode-select-container h1{font-size:1.8rem}.mode-select-container h2{font-size:1.1rem;margin-bottom:20px}.mode-indicator{flex-direction:column;gap:10px}}.theme-selector-overlay{align-items:center;background-color:var(--overlay-bg);display:flex;height:100%;justify-content:center;left:0;position:fixed;top:0;width:100%;z-index:100}.theme-selector-container{background-color:var(--secondary-color);border:5px solid var(--primary-color);border-radius:10px;box-shadow:0 0 20px #61dafb80;color:var(--text-color);max-width:90%;padding:30px;text-align:center;width:600px}.theme-selector-container h2{color:var(--primary-color);font-size:28px;margin-bottom:20px}.theme-options{display:flex;flex-wrap:wrap;gap:15px;justify-content:center;margin-bottom:25px}.theme-option{border:3px solid #0000;border-radius:10px;cursor:pointer;overflow:hidden;padding:15px;position:relative;transition:all .3s;width:calc(50% - 15px)}.theme-option:hover{box-shadow:0 5px 15px #0000004d;transform:translateY(-5px)}.theme-option.active{border-width:3px;box-shadow:0 0 15px var(--primary-color)}.theme-option h3{font-size:18px;margin-bottom:15px;margin-top:0}.theme-blocks-preview{display:flex;gap:5px;justify-content:center;margin-bottom:5px}.theme-block{border:1px solid var(--cell-border);border-radius:3px;height:20px;width:20px}.settings-button{align-items:center;background-color:var(--info-bg);border:2px solid var(--board-border);border-radius:50%;color:var(--text-color);cursor:pointer;display:flex;font-size:20px;height:40px;justify-content:center;position:absolute;right:20px;top:20px;transition:all .3s;width:40px;z-index:10}.settings-button:hover{background-color:#8bac0f;background-color:var(--primaryColor);color:#306230;color:var(--secondaryColor)}.settings-overlay{align-items:center;background-color:#0f380fe6;background-color:var(--overlayBg);display:flex;height:100%;justify-content:center;left:0;overflow-y:auto;position:fixed;top:0;width:100%;z-index:100}.settings-container{background-color:#306230;background-color:var(--secondaryColor);border:5px solid #8bac0f;border:5px solid var(--primaryColor);border-radius:10px;box-shadow:0 0 20px #61dafb80;color:#9bbd0f;color:var(--textColor);max-width:90%;padding:30px;text-align:center;width:600px}.settings-container h2{color:#8bac0f;color:var(--primaryColor);font-size:28px;margin-bottom:20px}.settings-section{margin-bottom:25px}.settings-section h3{color:#8bac0f;color:var(--primaryColor);font-size:22px;margin-bottom:15px}.setting-item{margin-bottom:15px}.setting-label{background-color:#ffffff0d;border:2px solid #0000;border-radius:8px;cursor:pointer;display:flex;flex-direction:column;gap:5px;padding:10px;transition:all .2s ease}.setting-label:hover{background-color:#ffffff1a;border-color:#8bac0f;border-color:var(--primaryColor)}.setting-checkbox{accent-color:#8bac0f;accent-color:var(--primaryColor);align-self:flex-start;height:18px;width:18px}.setting-text{font-size:16px;font-weight:700}.setting-description,.setting-text{color:#9bbd0f;color:var(--textColor)}.setting-description{font-size:12px;line-height:1.4;opacity:.8}.control-options{display:flex;flex-wrap:wrap;gap:15px;justify-content:center;margin-bottom:15px}.control-option{background-color:#ffffff1a;border:3px solid #0000;border-radius:10px;cursor:pointer;padding:15px;transition:all .3s;width:calc(50% - 15px)}.control-option:hover{background-color:#ffffff26;transform:translateY(-5px)}.control-option.active{background-color:#61dafb1a;border-color:#8bac0f;border-color:var(--primaryColor)}.control-icon{font-size:28px;margin-bottom:10px}.control-option h4{color:#9bbd0f;color:var(--textColor);font-size:18px;margin-bottom:10px;margin-top:0}.control-option p{color:#ffffffb3;font-size:14px;margin:0}.settings-controls{margin-top:20px}.gesture-controls-hint{-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);bottom:20px;color:#fff;font-size:14px;left:50%;max-width:90%;opacity:.8;padding:10px 20px;position:fixed;text-align:center;transform:translateX(-50%);z-index:10}.gamepad-indicator,.gesture-controls-hint{background-color:#000000b3;border-radius:20px}.gamepad-indicator{align-items:center;animation:fadeIn .5s ease-out;color:#4caf50;display:flex;font-size:12px;gap:5px;left:20px;padding:5px 10px;position:absolute;top:20px}.gamepad-indicator span{font-size:16px}@media screen and (max-width:600px){.settings-container{max-height:90vh;overflow-y:auto;padding:20px}.settings-container h2{font-size:22px;margin-bottom:15px}.settings-section h3{font-size:18px;margin-bottom:10px}.control-option{margin-bottom:10px;width:100%}.theme-options{gap:10px}.theme-option{width:100%}.gesture-controls-hint{bottom:15px;font-size:12px;padding:8px 15px}}.visibility-notification{animation:fadeIn .3s ease;background-color:#000c;border-radius:8px;box-shadow:0 4px 12px #00000080;color:#fff;cursor:pointer;font-size:14px;left:50%;padding:10px 20px;position:fixed;top:20px;transform:translateX(-50%);z-index:1000}.visibility-notification:hover{background-color:#000000e6}@keyframes fadeIn{0%{opacity:0;transform:translate(-50%,-10px)}to{opacity:1;transform:translate(-50%)}}.score-message{background-color:#000000b3;border-radius:5px;color:#fff;font-size:24px;font-weight:700;left:50%;opacity:0;padding:10px 20px;pointer-events:none;position:absolute;text-shadow:0 0 5px #ffffff80;top:50%;transform:translate(-50%,-50%);z-index:5}.score-message.score-message-animate{animation:score-message 2s ease-out forwards}@keyframes score-message{0%{opacity:0;transform:translate(-50%,-50%) scale(.5)}10%{opacity:1;transform:translate(-50%,-50%) scale(1.2)}20%{transform:translate(-50%,-50%) scale(1)}80%{opacity:1}to{opacity:0;transform:translate(-50%,-100%) scale(1)}}.score-message.combo{background-color:#ff0000b3;color:#fd0}.score-message.tspin{background-color:#320064b3;color:#f0f}.score-message.tetris{background-color:#000064b3;color:#0ff}.score-message.b2b{background-color:#ff6400b3;color:#fff}.button-icon{font-size:1.2em;margin-right:8px}.button-icon,.button-text{vertical-align:middle}@media screen and (max-width:480px){.pause-menu-buttons button{align-items:center;display:flex;justify-content:center}.button-icon{font-size:1em;margin-right:5px}}.cell.I:hover,.cell.J:hover,.cell.L:hover,.cell.O:hover,.cell.S:hover,.cell.T:hover,.cell.Z:hover{box-shadow:inset 2px 2px 0 #fffc,inset -2px -2px 0 #0009,3px 3px 6px #0006;transform:translateY(-1px);transition:all .1s ease}.cell.I:active,.cell.J:active,.cell.L:active,.cell.O:active,.cell.S:active,.cell.T:active,.cell.Z:active{border-style:inset;box-shadow:inset -2px -2px 0 #ffffff4d,inset 2px 2px 0 #000c,1px 1px 2px #00000080;transform:translateY(1px)}.cell.I{box-shadow:inset 2px 2px 0 #fff9,inset -2px -2px 0 #0006,2px 2px 4px #0000004d,0 0 8px #0ff3}.cell.J{box-shadow:inset 2px 2px 0 #fff9,inset -2px -2px 0 #0006,2px 2px 4px #0000004d,0 0 8px #00f3}.cell.L{box-shadow:inset 2px 2px 0 #fff9,inset -2px -2px 0 #0006,2px 2px 4px #0000004d,0 0 8px #ffa50033}.cell.O{box-shadow:inset 2px 2px 0 #fff9,inset -2px -2px 0 #0006,2px 2px 4px #0000004d,0 0 8px #ff03}.cell.S{box-shadow:inset 2px 2px 0 #fff9,inset -2px -2px 0 #0006,2px 2px 4px #0000004d,0 0 8px #0f03}.cell.T{box-shadow:inset 2px 2px 0 #fff9,inset -2px -2px 0 #0006,2px 2px 4px #0000004d,0 0 8px #f0f3}.cell.Z{box-shadow:inset 2px 2px 0 #fff9,inset -2px -2px 0 #0006,2px 2px 4px #0000004d,0 0 8px #f003}@keyframes piece-place-flash{0%{box-shadow:inset 2px 2px 0 #fff9,inset -2px -2px 0 #0006,2px 2px 4px #0000004d,0 0 20px #fffc}50%{box-shadow:inset 2px 2px 0 #ffffffe6,inset -2px -2px 0 #0003,2px 2px 4px #0000004d,0 0 30px #fff}to{box-shadow:inset 2px 2px 0 #fff9,inset -2px -2px 0 #0006,2px 2px 4px #0000004d,0 0 8px #fff3}}@keyframes line-clear-glow{0%,to{background:linear-gradient(90deg,#fff3,#fffc 50%,#fff3)}50%{background:linear-gradient(90deg,#fffc,#fff 50%,#fffc)}}.cell.placed{animation:piece-place-flash .3s ease-out}.cell.line-clear{animation:line-clear-glow .5s ease-in-out infinite}.active-piece .cell{box-shadow:inset 2px 2px 0 #fffc,inset -2px -2px 0 #0000004d,3px 3px 6px #0006,0 0 12px #ffffff4d;transform:translateZ(2px)}@media screen and (max-width:768px){.App-header .tetris-container{align-items:stretch!important;box-sizing:border-box!important;flex-direction:row!important;justify-content:center!important;margin:0!important;max-width:100vw!important;width:100%!important}.tetris-container .game-board,.tetris-container .game-info{align-self:stretch!important;flex-grow:0!important;flex-shrink:0!important}.tetris-container .game-info{height:auto!important;margin-left:auto!important}.tetris-container{flex-wrap:nowrap!important}}.leave-button{background:linear-gradient(135deg,#d32f2f,#b71c1c);border:2px outset #d32f2f;border-radius:4px;box-shadow:2px 2px 0 #b71c1c;color:#fff;cursor:pointer;font-family:Courier New,monospace;font-size:9px;font-weight:700;letter-spacing:.5px;margin-bottom:4px;padding:4px 6px;text-transform:uppercase;transition:all .2s ease;width:100%}.leave-button:focus,.leave-button:hover{background:linear-gradient(135deg,#f44336,#d32f2f);border-color:#f44336;box-shadow:3px 3px 0 #b71c1c;transform:translateY(-1px)}.leave-button:active{background:linear-gradient(135deg,#b71c1c,#8d1414);border-style:inset;box-shadow:1px 1px 0 #8d1414;transform:translateY(1px)}@media screen and (max-width:768px){.leave-button{font-size:8px;padding:3px 4px}}@media screen and (max-width:380px){.leave-button{font-size:7px;padding:2px 3px}}.player-name-display{align-items:center;background:linear-gradient(135deg,#1a472a,#2e7d32);border:2px solid #4caf50;border-radius:12px;box-shadow:0 4px 12px #4caf5033;display:flex;justify-content:space-between;margin-bottom:20px;padding:15px 20px;transition:all .3s ease}.player-name-display:hover{box-shadow:0 6px 16px #4caf504d;transform:translateY(-1px)}.name-info{display:flex;flex-direction:column;gap:5px}.welcome-text{color:#a5d6a7;font-size:.9rem;font-weight:500}.player-name{color:#4caf50;font-size:1.3rem;font-weight:700;text-shadow:0 0 5px #4caf5080}.edit-name-button{align-items:center;background:linear-gradient(135deg,#2196f3,#1976d2);border:2px solid #1976d2;border-radius:8px;color:#fff;cursor:pointer;display:flex;font-size:.9rem;font-weight:700;gap:5px;padding:8px 16px;transition:all .3s ease}.edit-name-button:hover{background:linear-gradient(135deg,#1976d2,#1565c0);box-shadow:0 4px 12px #2196f34d;transform:translateY(-1px)}.player-name-form{background:linear-gradient(135deg,#1a1a2e,#16213e);border:2px solid #0f3460;border-radius:12px;box-shadow:0 8px 24px #0006;margin:0 auto 20px;max-width:400px;padding:25px}.form-header{margin-bottom:20px;text-align:center}.form-header h3{color:#00d4ff;font-size:1.4rem;margin:0 0 8px;text-shadow:0 0 10px #00d4ff80}.form-header p{color:#ccc;font-size:.95rem;margin:0}.name-input-form{gap:20px}.input-group,.name-input-form{display:flex;flex-direction:column}.input-group{gap:8px}.name-input{background:#222;border:2px solid #333;border-radius:8px;box-sizing:border-box;color:#fff;font-family:Courier New,monospace;font-size:1rem;padding:12px 16px;transition:all .3s ease;width:100%}.name-input:focus{background:#2a2a2a;border-color:#00d4ff;box-shadow:0 0 0 3px #00d4ff33;outline:none}.name-input::placeholder{color:#888}.input-hint{color:#888;font-family:Courier New,monospace;font-size:.8rem;text-align:right}.random-name-button{align-self:flex-start;background:linear-gradient(135deg,#ff9800,#f57c00);border:2px solid #f57c00;border-radius:6px;color:#fff;cursor:pointer;font-size:.85rem;font-weight:700;padding:8px 12px;transition:all .3s ease;white-space:nowrap}.random-name-button:hover:not(:disabled){background:linear-gradient(135deg,#f57c00,#ef6c00);box-shadow:0 3px 8px #ff98004d;transform:translateY(-1px)}.random-name-button:disabled{background:#666;border-color:#555;box-shadow:none;cursor:not-allowed;opacity:.6;transform:none}.form-actions{display:flex;flex-wrap:wrap;gap:12px;justify-content:center}.confirm-button{background:linear-gradient(135deg,#4caf50,#388e3c);border:2px solid #388e3c;border-radius:8px;color:#fff;cursor:pointer;font-size:1rem;font-weight:700;min-width:140px;padding:12px 24px;transition:all .3s ease}.confirm-button:hover:not(:disabled){background:linear-gradient(135deg,#388e3c,#2e7d32);box-shadow:0 4px 12px #4caf504d;transform:translateY(-1px)}.confirm-button:disabled{background:#666;border-color:#555;box-shadow:none;cursor:not-allowed;opacity:.6;transform:none}.cancel-button{background:linear-gradient(135deg,#f44336,#d32f2f);border:2px solid #d32f2f;border-radius:8px;color:#fff;cursor:pointer;font-size:1rem;font-weight:700;min-width:120px;padding:12px 24px;transition:all .3s ease}.cancel-button:hover{background:linear-gradient(135deg,#d32f2f,#c62828);box-shadow:0 4px 12px #f443364d;transform:translateY(-1px)}@media (max-width:768px){.player-name-form{margin:0 15px 20px;max-width:none;padding:20px}.player-name-display{margin:0 15px 20px;padding:12px 16px}.player-name{font-size:1.1rem}.form-actions{align-items:stretch;flex-direction:column}.cancel-button,.confirm-button{min-width:auto}}@media (max-width:480px){.form-header h3{font-size:1.2rem}.form-header p{font-size:.85rem}.name-input{font-size:.95rem;padding:10px 12px}.cancel-button,.confirm-button{font-size:.95rem;padding:10px 20px}}.multiplayer-lobby{align-items:center;background:#000000f2;color:#fff;display:flex;font-family:Courier New,monospace;height:100%;justify-content:center;left:0;overflow-y:auto;padding:1rem;position:fixed;top:0;width:100%;z-index:1000}.lobby-container{background:linear-gradient(135deg,#1a1a2e,#16213e);border:2px solid #0f3460;border-radius:12px;box-shadow:0 20px 40px #0000004d;max-height:calc(100vh - 2rem);max-width:800px;overflow-y:auto;padding:2rem;width:100%}.lobby-header{margin-bottom:2rem;text-align:center}.lobby-header h2{color:#00d4ff;font-size:2rem;margin:0 0 .5rem;text-shadow:0 0 10px #00d4ff80}.lobby-header p{color:#ccc;font-size:1rem;margin:0}.lobby-options{flex-wrap:wrap;gap:1rem;margin-bottom:2rem}.lobby-option,.lobby-options{display:flex;justify-content:center}.lobby-option{align-items:center;background:linear-gradient(135deg,#0f3460,#1a1a2e);border:3px solid #0000;border-radius:10px;cursor:pointer;flex-direction:column;min-height:140px;padding:1.5rem;text-align:center;transition:all .3s ease;width:180px}.lobby-option:hover{border-color:#00d4ff;box-shadow:0 5px 15px #00d4ff66;transform:translateY(-5px)}.lobby-option.active{background:linear-gradient(135deg,#00d4ff,#0f3460);border-color:#00f0ff;box-shadow:0 8px 16px #00d4ff66;color:#fff;transform:translateY(-2px)}.lobby-option.disabled{border-color:#666;cursor:not-allowed;opacity:.5}.lobby-option.disabled:hover{border-color:#666;box-shadow:none;transform:none}.option-icon{display:block;font-size:2.5rem;margin-bottom:.5rem}.option-title{color:#00d4ff;font-size:1.2rem;font-weight:700;margin-bottom:.5rem}.lobby-option.active .option-title{color:#fff}.option-description{color:#ccc;font-size:.85rem;line-height:1.4}.lobby-option.active .option-description{color:#ffffffe6}.room-input-section{background:#0000004d;border:1px solid #333;border-radius:8px;margin:1.5rem 0;padding:1rem}.room-input-section h3{color:#00d4ff;font-size:1.1rem;margin:0 0 1rem}.room-input-group{display:flex;gap:.5rem;margin-bottom:1rem}.room-input{background:#1a1a1a;border:2px solid #333;border-radius:4px;color:#fff;flex:1 1;font-family:Courier New,monospace;font-size:1rem;padding:.75rem}.room-input:focus{border-color:#00d4ff;box-shadow:0 0 0 2px #00d4ff33;outline:none}.room-button{background:linear-gradient(135deg,#00d4ff,#0f3460);border:none;border-radius:4px;color:#fff;cursor:pointer;font-family:Courier New,monospace;font-weight:700;padding:.75rem 1.5rem;transition:all .3s ease}.room-button:hover{background:linear-gradient(135deg,#00a8cc,#0f3460);transform:translateY(-1px)}.room-button:disabled{background:#666;cursor:not-allowed;transform:none}.loading-spinner{animation:spin 1s linear infinite;border:2px solid #333;border-radius:50%;border-top-color:#00d4ff;display:inline-block;height:1rem;margin-right:.5rem;width:1rem}@keyframes spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.lobby-status{background:#00d4ff1a;border:1px solid #00d4ff;border-radius:8px;margin:1rem 0;padding:1rem;text-align:center}.status-message{color:#00d4ff;font-weight:700;margin-bottom:.5rem}.status-details{color:#ccc;font-size:.9rem}.back-button{background:#0000;border:2px solid #666;border-radius:8px;color:#ccc;cursor:pointer;font-family:Courier New,monospace;padding:1rem;transition:all .3s ease;width:100%}.back-button:hover{border-color:#00d4ff;color:#00d4ff}.multiplayer-game-room{align-items:center;background:#000000f2;color:#fff;display:flex;flex-direction:column;font-family:Courier New,monospace;height:100%;justify-content:center;left:0;position:fixed;top:0;width:100%;z-index:1000}.room-header{background:linear-gradient(135deg,#1a1a2e,#16213e);border:2px solid #0f3460;border-radius:12px;margin-bottom:2rem;min-width:300px;padding:1.5rem;text-align:center}.room-title{color:#00d4ff;font-size:1.8rem;margin:0 0 .5rem;text-shadow:0 0 10px #00d4ff80}.room-id{color:#ccc;font-size:1rem;margin:0 0 1rem}.player-info{justify-content:space-between;margin-top:1rem}.player-info,.player-status{align-items:center;display:flex}.player-status{background:#0000004d;border:1px solid #333;border-radius:20px;gap:.5rem;padding:.5rem 1rem}.player-status.ready{background:#4caf5033;border-color:#4caf50}.player-status.waiting{background:#ff980033;border-color:#ff9800}.status-indicator{background:#ccc;border-radius:50%;height:8px;width:8px}.status-indicator.ready{background:#4caf50;box-shadow:0 0 8px #4caf5080}.status-indicator.waiting{background:#ff9800;box-shadow:0 0 8px #ff980080}.game-boards{align-items:flex-start;display:flex;flex-wrap:wrap;gap:2rem;justify-content:center;max-width:90%}.opponent-board{background:linear-gradient(135deg,#1a1a2e,#16213e);border:2px solid #0f3460;border-radius:8px;min-width:200px;padding:1rem;text-align:center}.opponent-board h3{color:#00d4ff;font-size:1.2rem;margin:0 0 1rem}.opponent-grid{background:#000;border:2px solid #333;display:grid;grid-template-columns:repeat(10,1fr);grid-template-rows:repeat(20,1fr);height:400px;margin:0 auto 1rem;position:relative;width:200px}.opponent-cell{border:1px solid #ffffff1a;height:100%;width:100%}.opponent-cell.filled{background:#666;border-color:#999}.opponent-stats{color:#ccc;font-size:.9rem}.opponent-stats div{margin-bottom:.25rem}.attack-indicator{animation:attackFlash .5s ease-in-out;background:#f00c;border-radius:4px;color:#fff;font-weight:700;left:50%;padding:.5rem 1rem;position:absolute;top:50%;transform:translate(-50%,-50%)}@keyframes attackFlash{0%{opacity:0;transform:translate(-50%,-50%) scale(.5)}50%{opacity:1;transform:translate(-50%,-50%) scale(1.1)}to{opacity:0;transform:translate(-50%,-50%) scale(1)}}.room-actions{bottom:20px;display:flex;flex-wrap:wrap;gap:1rem;justify-content:center;left:50%;position:absolute;transform:translateX(-50%);z-index:100}.multiplayer-game-active~.room-actions{display:none}.room-action-button{background:#0000;border:2px solid;border-radius:8px;color:#fff;cursor:pointer;font-family:Courier New,monospace;font-weight:700;min-width:120px;padding:.75rem 1.5rem;transition:all .3s ease}.ready-button{border-color:#4caf50;color:#4caf50}.ready-button.active,.ready-button:hover{background:#4caf50;color:#fff}.leave-button{border-color:#f44336;color:#f44336}.leave-button:hover{background:#f44336;color:#fff}.countdown-display{align-items:center;animation:countdown-pulse 1s ease-in-out infinite;background:linear-gradient(135deg,#00d4ff,#0f3460);border:2px solid #00f0ff;border-radius:12px;box-shadow:0 8px 20px #00d4ff66;display:flex;flex-direction:column;justify-content:center;padding:2rem}.countdown-number{animation:countdownPulse 1s ease-in-out infinite;color:#fff;font-size:4rem;font-weight:700;text-shadow:0 0 20px #ffffff80}.countdown-text{color:#fff;font-size:1.2rem;letter-spacing:2px;margin-top:.5rem;text-transform:uppercase}.countdown-progress{background:#ffffff4d;border-radius:3px;height:6px;margin-top:15px;overflow:hidden;width:200px}.countdown-bar{background:linear-gradient(90deg,#4caf50,#8bc34a);border-radius:3px;height:100%;transform:translateX(-100%);width:100%}@keyframes countdownProgress{0%{transform:translateX(-100%)}to{transform:translateX(0)}}@keyframes countdown-pulse{0%,to{box-shadow:0 8px 20px #00d4ff66;transform:scale(1)}50%{box-shadow:0 12px 30px #00d4ff99;transform:scale(1.05)}}@keyframes countdownPulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.8;transform:scale(1.1)}}.start-button{animation:start-button-glow 2s ease-in-out infinite;background:linear-gradient(135deg,#ffd7001a,#ffd7000d);border-color:gold!important;box-shadow:0 0 10px #ffd7004d;color:gold!important;font-size:1.1rem;font-weight:700}.start-button:hover{background:linear-gradient(135deg,gold,orange)!important;border-color:gold!important;box-shadow:0 0 20px #ffd70099;color:#000!important;transform:translateY(-2px)}@keyframes start-button-glow{0%,to{box-shadow:0 0 10px #ffd7004d}50%{box-shadow:0 0 20px #ffd70080}}.multiplayer-game-over{align-items:center;background:#000000e6;display:flex;height:100%;justify-content:center;left:0;position:absolute;top:0;width:100%;z-index:1001}.game-over-content{background:linear-gradient(135deg,#1a1a2e,#16213e);border:2px solid #0f3460;border-radius:12px;max-width:400px;padding:2rem;text-align:center;width:90%}.game-result{font-size:2rem;font-weight:700;margin-bottom:1rem}.game-result.victory{color:#4caf50;text-shadow:0 0 10px #4caf5080}.game-result.defeat{color:#f44336;text-shadow:0 0 10px #f4433680}.game-stats{background:#0000004d;border:1px solid #333;border-radius:8px;margin:1.5rem 0;padding:1rem}.stat-row{color:#ccc;display:flex;justify-content:space-between;margin-bottom:.5rem}.stat-row:last-child{margin-bottom:0}.stat-label{font-weight:700}.stat-value{color:#00d4ff}.floating-chat{font-family:Courier New,monospace;position:fixed;right:20px;z-index:500}.floating-chat.expanded{bottom:20px!important}.floating-chat.minimized .chat-toggle-icon{align-items:center;background:linear-gradient(135deg,#2196f3,#1976d2);border:2px solid #1976d2;border-radius:50%;box-shadow:0 4px 12px #2196f34d;color:#fff;cursor:pointer;display:flex;font-size:1.2rem;height:50px;justify-content:center;position:relative;transition:all .3s ease;width:50px}.floating-chat.minimized .chat-toggle-icon:hover{box-shadow:0 6px 16px #2196f366;transform:scale(1.1)}.floating-chat.expanded{height:350px;width:280px}.floating-chat.expanded .chat-toggle-icon{display:none}.chat-notification-badge{align-items:center;animation:badgePulse 2s infinite;background:#f44336;border:2px solid #fff;border-radius:50%;color:#fff;display:flex;font-size:.7rem;font-weight:700;height:20px;justify-content:center;position:absolute;right:-5px;top:-5px;width:20px}@keyframes badgePulse{0%,to{transform:scale(1)}50%{transform:scale(1.1)}}@keyframes notification-pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.8;transform:scale(1.2)}}.chat-window{animation:chat-slide-up .3s ease-out;background:linear-gradient(135deg,#1a1a2e,#16213e);border:2px solid #0f3460;border-radius:12px;bottom:80px;box-shadow:0 8px 25px #0006;display:flex;flex-direction:column;height:400px;position:absolute;right:0;width:380px}@keyframes chat-slide-up{0%{opacity:0;transform:translateY(20px) scale(.95)}to{opacity:1;transform:translateY(0) scale(1)}}.chat-window-header{align-items:center;background:linear-gradient(135deg,#00d4ff,#0f3460);border-radius:10px 10px 0 0;color:#fff;display:flex;font-weight:700;justify-content:space-between;padding:12px 16px}.chat-close-btn{background:none;border:none;border-radius:4px;color:#fff;cursor:pointer;font-size:16px;padding:4px 8px;transition:background .2s ease}.chat-close-btn:hover{background:#fff3}.floating-chat .chat-messages{background:#0000004d;border-radius:0;flex:1 1;overflow-y:auto;padding:12px}.floating-chat .chat-message{animation:message-fade-in .3s ease-out;background:#ffffff0d;border-left:3px solid #00d4ff;border-radius:8px;display:flex;flex-direction:column;margin-bottom:8px;padding:8px 12px}.floating-chat .chat-message.my-message{align-items:flex-end;background:#00d4ff26;border-left:none;border-right:3px solid #00d4ff;margin-left:20px}.floating-chat .chat-message.other-message{align-items:flex-start;background:#ffffff0d;border-left:3px solid #4caf50;border-right:none;margin-right:20px}.floating-chat .chat-content{display:flex;flex-direction:column;max-width:100%}.floating-chat .chat-message.my-message .chat-content{align-items:flex-end;text-align:right}.floating-chat .chat-message.other-message .chat-content{align-items:flex-start;text-align:left}@keyframes message-fade-in{0%{opacity:0;transform:translateX(-10px)}to{opacity:1;transform:translateX(0)}}@keyframes my-message-fade-in{0%{opacity:0;transform:translateX(10px)}to{opacity:1;transform:translateX(0)}}.floating-chat .chat-message.my-message{animation:my-message-fade-in .3s ease-out}.floating-chat .chat-message.other-message{animation:message-fade-in .3s ease-out}.floating-chat .chat-sender{color:#00d4ff;font-size:12px;font-weight:700;margin-bottom:2px}.floating-chat .chat-message.my-message .chat-sender{color:#00d4ff}.floating-chat .chat-message.other-message .chat-sender{color:#4caf50}.floating-chat .chat-text{word-wrap:break-word;color:#fff;line-height:1.3}.chat-empty{color:#888;font-style:italic;padding:20px;text-align:center}.new-message-notification{align-items:center;animation:notification-bounce .3s ease-out;background:linear-gradient(135deg,#ff6b6b,#ee5a52);border:1px solid #fff3;border-radius:20px;bottom:70px;box-shadow:0 4px 12px #ff6b6b66;color:#fff;cursor:pointer;display:flex;font-size:12px;font-weight:700;gap:6px;left:50%;padding:8px 16px;position:absolute;transform:translateX(-50%);transition:all .2s ease;z-index:10}.new-message-notification:hover{background:linear-gradient(135deg,#ff5252,#d32f2f);box-shadow:0 6px 16px #ff6b6b99;transform:translateX(-50%) translateY(-2px)}.new-message-notification .notification-icon{animation:bounce-arrow 1.5s infinite;font-size:14px}.new-message-notification .notification-text{white-space:nowrap}@keyframes notification-bounce{0%{opacity:0;transform:translateX(-50%) translateY(10px) scale(.8)}to{opacity:1;transform:translateX(-50%) translateY(0) scale(1)}}@keyframes bounce-arrow{0%,to{transform:translateY(0)}50%{transform:translateY(2px)}}.floating-chat .chat-input{background:#0003;border-radius:0 0 10px 10px;border-top:1px solid #ffffff1a;display:flex;gap:8px;padding:12px}.floating-chat .chat-input input{background:#ffffff1a;border:1px solid #fff3;border-radius:6px;color:#fff;flex:1 1;font-size:14px;padding:8px 12px}.floating-chat .chat-input input::placeholder{color:#ffffff80}.floating-chat .chat-input input:focus{border-color:#00d4ff;box-shadow:0 0 0 2px #00d4ff33;outline:none}.floating-chat .chat-input button{background:linear-gradient(135deg,#00d4ff,#0f3460);border:none;border-radius:6px;color:#fff;cursor:pointer;font-weight:700;padding:8px 16px;transition:all .2s ease}.floating-chat .chat-input button:hover:not(:disabled){background:linear-gradient(135deg,#00f0ff,#1a4460);transform:translateY(-1px)}.floating-chat .chat-input button:disabled{cursor:not-allowed;opacity:.5}.quick-chat-section{-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);background:#0003;border-bottom:1px solid #ffffff1a;border-top:1px solid #ffffff1a;padding:10px 12px}.quick-chat-label{align-items:center;color:#fffc;display:flex;font-size:11px;font-weight:600;gap:6px;letter-spacing:.8px;margin-bottom:8px;text-transform:uppercase}.quick-chat-label:before{content:"💬";font-size:12px}.quick-chat-buttons{grid-gap:4px;display:grid;gap:4px;grid-template-columns:repeat(6,1fr)}.quick-chat-btn{align-items:center;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#ffffff14;border:1px solid #ffffff26;border-radius:8px;color:#fff;cursor:pointer;display:flex;font-size:14px;justify-content:center;min-height:36px;padding:8px 4px;transform-origin:center;transition:all .25s cubic-bezier(.4,0,.2,1)}.quick-chat-btn:hover{background:#00d4ff26;border-color:#00d4ff66;box-shadow:0 4px 12px #00d4ff40,0 0 20px #00d4ff1a;transform:translateY(-2px) scale(1.05)}.quick-chat-btn:active{box-shadow:0 2px 6px #00d4ff33;transform:translateY(0) scale(.95)}.quick-chat-btn:before{background:linear-gradient(90deg,#0000,#ffffff26,#0000);content:"";height:100%;left:-100%;position:absolute;top:0;transition:left .6s ease;width:100%}.quick-chat-btn:hover:before{left:100%}.quick-chat-btn:after{background:#fff3;border-radius:50%;content:"";height:0;left:50%;position:absolute;top:50%;transform:translate(-50%,-50%);transition:all .4s ease;width:0}.quick-chat-btn:active:after{height:100%;width:100%}@keyframes quick-chat-glow{0%,to{box-shadow:0 0 5px #00d4ff1a}50%{box-shadow:0 0 15px #00d4ff33}}.quick-chat-btn:first-child{animation-delay:0s}.quick-chat-btn:nth-child(2){animation-delay:.1s}.quick-chat-btn:nth-child(3){animation-delay:.2s}.quick-chat-btn:nth-child(4){animation-delay:.3s}.quick-chat-btn:nth-child(5){animation-delay:.4s}.quick-chat-btn:nth-child(6){animation-delay:.5s}@media (max-width:768px){.quick-chat-section{padding:8px 10px}.quick-chat-buttons{gap:3px;grid-template-columns:repeat(6,1fr)}.quick-chat-btn{border-radius:8px;font-size:14px;min-height:36px;padding:6px 4px}.quick-chat-label{font-size:10px;margin-bottom:6px}.quick-chat-label:before{font-size:10px}}@media (max-width:480px){.quick-chat-buttons{gap:2px;grid-template-columns:repeat(6,1fr)}.quick-chat-btn{font-size:12px;min-height:32px;padding:4px 2px}}.quick-chat-btn.sending{background:#00d4ff4d!important;border-color:#00d4ff99!important;transform:scale(.9)!important}.quick-chat-btn:focus{outline:2px solid #00d4ff80;outline-offset:2px}.quick-chat-btn:focus:not(:focus-visible){outline:none}.quick-chat-btn{overflow:hidden;position:relative}.quick-chat-btn .ripple{animation:ripple .6s linear;background:#fff6;border-radius:50%;pointer-events:none;position:absolute;transform:scale(0)}@keyframes ripple{to{opacity:0;transform:scale(4)}}.quick-chat-section:hover .quick-chat-btn:not(:hover){opacity:.7;transform:scale(.95)}.quick-chat-section .quick-chat-btn:hover{opacity:1;z-index:1}.game-theme-neon .quick-chat-btn:hover{background:#00ffff26;border-color:#0ff6;box-shadow:0 4px 12px #00ffff40,0 0 20px #00ffff1a}.game-theme-retro .quick-chat-btn:hover{background:#ffa50026;border-color:#ffa50066;box-shadow:0 4px 12px #ffa50040,0 0 20px #ffa5001a}.game-theme-minimal .quick-chat-btn:hover{background:#6c757d26;border-color:#6c757d66;box-shadow:0 4px 12px #6c757d40,0 0 20px #6c757d1a}@media (max-height:500px) and (orientation:landscape){.quick-chat-section{padding:6px 10px}.quick-chat-buttons{gap:3px;grid-template-columns:repeat(6,1fr)}.quick-chat-btn{font-size:12px;min-height:28px;padding:4px}.quick-chat-label{font-size:9px;margin-bottom:4px}}.power-up-earned-notification{animation:power-up-earned-slide 3s ease-out forwards;background:linear-gradient(135deg,var(--primaryColor),#4caf50);border:2px solid #fff3;border-radius:8px;box-shadow:0 4px 12px #0000004d;color:#fff;font-family:Courier New,monospace;font-size:12px;font-weight:700;padding:8px 12px;position:fixed;right:20px;top:80px;z-index:25}@keyframes power-up-earned-slide{0%{opacity:0;transform:translateX(100%)}15%{opacity:1;transform:translateX(0)}85%{opacity:1;transform:translateX(0)}to{opacity:0;transform:translateX(100%)}}.power-up-success{animation:power-up-success .6s ease-out}@keyframes power-up-success{0%{box-shadow:0 2px 4px #0000004d}30%{box-shadow:0 0 15px var(--primaryColor),0 2px 4px #0000004d}to{box-shadow:0 2px 4px #0000004d}}.power-up-notification{animation:power-up-notification-slide 3s ease-out forwards;background:var(--infoBg);border:3px outset var(--infoBg);box-shadow:var(--shadowMedium);color:var(--textColor);font-family:Courier New,monospace;font-size:12px;font-weight:700;max-width:200px;padding:12px 16px;position:fixed;right:20px;top:20px;z-index:20}@keyframes power-up-notification-slide{0%{opacity:0;transform:translateX(100%)}10%{opacity:1;transform:translateX(0)}90%{opacity:1;transform:translateX(0)}to{opacity:0;transform:translateX(100%)}}.power-up-earned{animation:power-up-earned 2s ease-out forwards;background:var(--primaryColor);border:2px outset var(--primaryColor);border-radius:0;color:var(--bodyBg);font-family:Courier New,monospace;font-size:10px;font-weight:700;left:50%;padding:4px 8px;position:absolute;top:-20px;transform:translateX(-50%);z-index:5}@keyframes power-up-earned{0%{opacity:0;transform:translateX(-50%) translateY(0) scale(.5)}20%{opacity:1;transform:translateX(-50%) translateY(-10px) scale(1.2)}40%{transform:translateX(-50%) translateY(-15px) scale(1)}to{opacity:0;transform:translateX(-50%) translateY(-30px) scale(.8)}}.power-up-btn:focus{outline:3px solid var(--primaryColor);outline-offset:2px}.power-up-btn:focus:not(:focus-visible){outline:none}.app-install-prompt{animation:slideUp .5s ease-out;background-color:#000000e6;bottom:0;box-shadow:0 -2px 10px #0000004d;color:#fff;left:0;padding:10px 0;position:fixed;width:100%;z-index:1000}.app-install-content{align-items:center;display:flex;margin:0 auto;max-width:600px;padding:0 15px}.app-install-icon{font-size:32px;margin-right:15px}.app-install-message{flex:1 1}.app-install-message p{margin:5px 0}.app-install-buttons{display:flex;flex-direction:column;gap:8px;margin-left:15px}.dismiss-button,.install-button{border:none;border-radius:4px;cursor:pointer;font-weight:700;padding:8px 16px;white-space:nowrap}.install-button{background-color:#61dafb;color:#282c34}.dismiss-button{background-color:initial;border:1px solid #555;color:#ddd}.ios-install-hint{border-top:1px solid #444;color:#bbb;font-size:12px;margin-top:5px;padding-top:5px}@keyframes slideUp{0%{transform:translateY(100%)}to{transform:translateY(0)}}@media (max-width:480px){.app-install-content{flex-direction:column;text-align:center}.app-install-icon{margin-bottom:10px;margin-right:0}.app-install-buttons{flex-direction:row;justify-content:center;margin-left:0;margin-top:10px}}
/*# sourceMappingURL=main.e1cc259c.css.map*/