:root{--bg-color: #050505;--bg-panel: #111216;--bg-panel-hover: #1a1c23;--border-color: #2a2d36;--accent-primary: #00e676;--accent-secondary: #3e8dff;--accent-danger: #ff3b3b;--text-primary: #ffffff;--text-secondary: #a0a5b5;--radius-sm: 8px;--radius-md: 12px;--radius-lg: 20px;--transition-smooth: all .3s cubic-bezier(.16, 1, .3, 1);--tetris-i: #00e5ff;--tetris-j: #2979ff;--tetris-l: #ff9100;--tetris-o: #ffea00;--tetris-s: #00e676;--tetris-t: #d500f9;--tetris-z: #ff1744}*{box-sizing:border-box;margin:0;padding:0;-webkit-tap-highlight-color:transparent}body{background-color:var(--bg-color);color:var(--text-primary);font-family:Outfit,sans-serif;font-weight:400;overflow:hidden;height:100vh;display:flex;justify-content:center;align-items:center;background-image:none}#app{width:100%;max-width:1200px;height:100vh;display:flex;flex-direction:column;padding:2vw}@keyframes smoothFadeUp{0%{opacity:0;transform:translateY(30px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes smoothDropIn{0%{opacity:0;transform:translateY(-30px)}to{opacity:1;transform:translateY(0)}}.overlay:not(.hidden) .lobby-content,#game-view:not(.hidden){animation:smoothFadeUp .6s cubic-bezier(.16,1,.3,1) forwards}header{display:flex;justify-content:space-between;align-items:center;margin-bottom:0;z-index:1000;position:relative;animation:smoothDropIn .6s cubic-bezier(.16,1,.3,1) forwards}.title-logo{height:24px;width:auto;display:block;filter:drop-shadow(0 2px 4px rgba(0,0,0,.4))}.main-title-container{text-align:center;margin-bottom:30px;width:100%;display:flex;justify-content:center}.main-title-img{max-width:100%;height:auto;max-height:120px;object-fit:contain;filter:drop-shadow(0 4px 12px rgba(0,230,118,.3));animation:smoothFadeUp .8s cubic-bezier(.16,1,.3,1) forwards}h2,h3{font-weight:800;letter-spacing:.5px}h2{font-size:2rem;margin-bottom:30px;color:var(--text-primary);text-align:center}.glass,.glass-heavy,.lobby-content{background:var(--bg-panel);border:1px solid var(--border-color);border-radius:var(--radius-lg);box-shadow:0 10px 30px #00000080}.overlay{position:fixed;top:0;left:0;width:100%;height:100%;z-index:100;display:flex;flex-direction:column;justify-content:center;align-items:center;padding:20px;background:#050505d9;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}#selection-overlay,#spectator-overlay{background:transparent;backdrop-filter:none;-webkit-backdrop-filter:none}#selection-overlay .lobby-content,#spectator-overlay .lobby-content,#spectator-overlay.glass-heavy{background:transparent!important;border:none!important;box-shadow:none!important}.lobby-content{width:100%;max-width:480px;padding:40px 30px;max-height:85vh;overflow-y:auto;scrollbar-width:thin;scrollbar-color:var(--accent-primary) transparent}.input-group{margin-bottom:24px;text-align:left}.input-group label{display:block;font-size:.85rem;font-weight:600;color:var(--text-secondary);margin-bottom:8px;margin-left:4px;text-transform:uppercase;letter-spacing:1px}input[type=text],input[type=number]{width:100%;background:#000;border:1px solid var(--border-color);border-radius:var(--radius-md);padding:14px 16px;color:var(--text-primary);font-family:inherit;font-size:1rem;outline:none;transition:var(--transition-smooth)}input:focus{border-color:var(--accent-primary);background:#111419;box-shadow:0 0 0 3px #00e6761a}.modern-toggle{display:flex;align-items:center;gap:12px;cursor:pointer;font-size:.95rem;color:var(--text-primary);-webkit-user-select:none;user-select:none}.modern-toggle input{display:none}.toggle-slider{position:relative;width:48px;height:26px;background:#000;border:1px solid var(--border-color);border-radius:20px;transition:var(--transition-smooth)}.toggle-slider:before{content:"";position:absolute;width:18px;height:18px;background:var(--text-secondary);border-radius:50%;top:3px;left:3px;transition:var(--transition-smooth)}.modern-toggle input:checked+.toggle-slider{background:var(--accent-primary);border-color:var(--accent-primary)}.modern-toggle input:checked+.toggle-slider:before{background:#000;transform:translate(22px)}.modern-toggle.small{font-size:.8rem;color:var(--text-secondary)}.modern-toggle.small .toggle-slider{width:36px;height:20px}.modern-toggle.small .toggle-slider:before{width:14px;height:14px;top:2px;left:2px}.modern-toggle.small input:checked+.toggle-slider:before{transform:translate(16px)}button{font-family:Outfit,sans-serif;border:none;border-radius:var(--radius-md);padding:16px 24px;font-weight:800;font-size:1rem;letter-spacing:1px;cursor:pointer;transition:var(--transition-smooth);width:100%;display:flex;justify-content:center;align-items:center;gap:8px}.btn-primary,.btn-accent,.btn-standout{background:var(--accent-primary);color:#000}.btn-primary:hover,.btn-accent:hover,.btn-standout:hover{background:#1aff8c;transform:translateY(-2px);box-shadow:0 8px 16px #00e67633}.btn-primary:active,.btn-accent:active,.btn-standout:active{transform:translateY(1px);box-shadow:none}.btn-secondary{background:#3e8dff1a;color:var(--accent-secondary);border:1px solid rgba(62,141,255,.4)}.btn-secondary:hover{background:#3e8dff33;border-color:var(--accent-secondary);transform:translateY(-2px)}.sns-share,.share-btns{display:flex;flex-direction:row;justify-content:center;align-items:center;gap:12px;margin-top:20px;width:100%}.share-btns button,.sns-share button{flex:1;width:auto;padding:12px 5px;font-size:.9rem;border-radius:var(--radius-md);font-weight:600}.btn-sns.twitter{background:#1da1f2;color:#fff;border:none}.btn-sns.line{background:#06c755;color:#fff;border:none}.btn-sns:hover{transform:translateY(-2px);filter:brightness(1.1)}.level-btn{padding:12px 0;border-radius:var(--radius-sm);font-weight:800;cursor:pointer;background:#000;border:1px solid var(--border-color);color:var(--text-secondary);transition:var(--transition-smooth)}.level-btn:hover{background:var(--bg-panel-hover);color:var(--text-primary)}.level-btn.selected{background:var(--accent-primary);color:#000;border-color:var(--accent-primary)}.level-btn.selected.p2{background:var(--accent-secondary);color:#fff;border-color:var(--accent-secondary)}.level-btn.ml-model-btn{border-color:var(--accent-secondary);color:var(--accent-secondary)}.level-btn.ml-model-btn:hover{background:#3e8dff1a}.level-btn.ml-model-btn.selected{background:var(--accent-secondary);color:#fff;border-color:var(--accent-secondary)}.players-ready{display:flex;align-items:center;justify-content:space-around;margin:30px 0;width:100%}.player-ready-card{display:flex;flex-direction:column;align-items:center;gap:12px}.player-ready-card .name{font-size:1.1rem;font-weight:800;color:var(--text-primary)}.status-dot{width:14px;height:14px;border-radius:50%;background:#2a2d36;box-shadow:inset 0 2px 4px #00000080;transition:var(--transition-smooth)}.status-dot.ready{background:var(--accent-primary);box-shadow:0 0 12px var(--accent-primary),inset 0 0 4px #fffc}.vs{font-size:1.5rem;font-weight:900;color:var(--text-secondary);opacity:.3}#game-view{flex:1;display:flex;flex-direction:column;justify-content:center}.game-container{flex:1;display:flex;justify-content:center;align-items:center;gap:8vw;margin-bottom:10px}.player-area{padding:24px;background:var(--bg-panel);border:1px solid var(--border-color);border-radius:var(--radius-lg);display:flex;flex-direction:column;align-items:center}.player-info{width:100%;display:flex;justify-content:space-between;align-items:center;margin-bottom:15px;padding-bottom:15px;border-bottom:1px solid var(--border-color)}.player-name{font-size:1.2rem;font-weight:800;color:var(--text-primary)}.score{font-size:1rem;color:var(--text-secondary);font-weight:600;position:relative}#p1-score,#p2-score{color:var(--accent-primary);font-size:1.2rem;font-weight:800;margin-left:5px}canvas{max-width:100%;height:auto;background:#050505;border-radius:var(--radius-sm)}.next-box{width:80px;height:100px;background:#050505;border:1px solid var(--border-color);border-radius:var(--radius-md);display:flex;flex-direction:column;align-items:center;justify-content:center;padding:10px;position:absolute;right:-95px;top:0}.next-box .label{font-size:.7rem;font-weight:800;color:var(--text-secondary);letter-spacing:1px;margin-bottom:8px}#mobile-controls{display:grid;grid-template-columns:65px 65px 65px;grid-template-rows:auto auto auto;gap:15px;justify-content:center;margin-top:auto;padding-bottom:20px;width:100%;z-index:1000}.controls-left,.controls-right,.control-row{display:contents}#btn-rot-left{grid-column:1;grid-row:1;justify-self:center}#btn-rot-right{grid-column:3;grid-row:1;justify-self:center}#btn-left{grid-column:1;grid-row:2;justify-self:center}#btn-down{grid-column:2;grid-row:2;justify-self:center}#btn-right{grid-column:3;grid-row:2;justify-self:center}#btn-drop{grid-column:1 / span 3;grid-row:3;justify-self:center;width:140px;border-radius:20px;flex-direction:row;gap:8px}#btn-drop span{font-size:1.2rem;margin-bottom:0}#btn-drop small{font-size:.8rem}.ctrl-btn{width:65px;height:65px;border-radius:50%;background:#1a1e26;border:2px solid rgba(255,255,255,.1);color:var(--accent-primary);display:flex;flex-direction:column;align-items:center;justify-content:center;cursor:pointer;transition:var(--transition-smooth)}.ctrl-btn:active{background:#222732;transform:scale(.95)}.ctrl-btn span{font-size:1.5rem;line-height:1;margin-bottom:2px}.ctrl-btn small{display:block;font-size:.75rem;font-weight:800;color:var(--text-secondary)}#selection-timer{width:100%;height:6px;background:var(--accent-primary);border-radius:3px;margin-bottom:20px;transition:width .1s linear}.selection-instructions{text-align:center;margin-bottom:20px}#selection-prompt{font-size:1.1rem;font-weight:600;color:var(--text-primary);margin-bottom:15px;text-shadow:0 2px 4px rgba(0,0,0,.8)}.selection-status-pills{display:flex;justify-content:center;gap:10px}.status-pill{padding:6px 14px;border-radius:20px;font-size:.75rem;font-weight:800;letter-spacing:1px;background:#00000080;color:var(--text-secondary);transition:var(--transition-smooth)}.status-pill.blue.ready{background:#00e67633;color:var(--accent-primary)}.status-pill.red.ready{background:#fff3;color:var(--text-primary)}.choice-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:16px;margin:20px 0}.choice-item{background:transparent;border-radius:var(--radius-md);padding:24px;position:relative;border:2px solid rgba(255,255,255,.25);box-shadow:0 0 15px #ffffff1a,inset 0 0 15px #ffffff1a;display:flex;justify-content:center;align-items:center;transition:var(--transition-smooth);cursor:pointer}.choice-item canvas{transition:var(--transition-smooth);filter:drop-shadow(0 0 8px rgba(255,255,255,.6))}.choice-item:hover{transform:translateY(-4px);border-color:#ffffff80;background:#ffffff0d;box-shadow:0 0 20px #ffffff4d,inset 0 0 20px #ffffff26}.choice-item:hover canvas{filter:drop-shadow(0 0 12px rgba(255,255,255,.9))}.kb-hint{position:absolute;top:10px;left:10px;background:#0009;color:#fff;border-radius:6px;width:24px;height:24px;display:flex;align-items:center;justify-content:center;font-size:.8rem;font-weight:800;border:1px solid rgba(255,255,255,.3);box-shadow:0 0 8px #ffffff4d;text-shadow:0 0 5px rgba(255,255,255,.8)}.choice-item.selected-self{border-color:var(--accent-primary);background:#00e6760d;box-shadow:0 0 20px #00e67666,inset 0 0 20px #00e67633}.choice-item.selected-self canvas{filter:drop-shadow(0 0 12px rgba(0,230,118,.8))}.choice-item.selected-opp{border-color:var(--accent-secondary);background:#3e8dff0d;box-shadow:0 0 20px #3e8dff66,inset 0 0 20px #3e8dff33}.choice-item.selected-opp canvas{filter:drop-shadow(0 0 12px rgba(62,141,255,.8))}.result-screen{max-width:600px}.result-outcome-text{font-size:3rem;font-weight:900;margin:10px 0 30px;color:var(--accent-primary);letter-spacing:2px;text-shadow:0 0 20px rgba(0,230,118,.3)}.stats-grid{display:grid;grid-template-columns:1fr auto 1fr;gap:15px;align-items:center;margin-bottom:30px}.vs-small{font-weight:900;color:var(--text-secondary);font-size:1.2rem;text-align:center;padding:0 10px}.stat-item{background:#000;padding:24px 20px;border-radius:var(--radius-md);border:1px solid var(--border-color);position:relative;width:100%}.state-label{position:absolute;top:-10px;left:50%;transform:translate(-50%);font-size:.75rem;font-weight:800;padding:4px 12px;border-radius:12px;letter-spacing:1px}.state-label.winner{background:var(--accent-primary);color:#000}.state-label.loser{background:#2a0a0a;color:var(--accent-danger);border:1px solid var(--accent-danger)}.stat-item .name{display:block;font-size:1.1rem;font-weight:800;margin-bottom:15px;color:var(--text-primary);text-align:left}.val-box{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}.val-box .label{font-size:.85rem;color:var(--text-secondary);font-weight:600}.val-box .value{font-size:1.2rem;font-weight:800;color:var(--text-primary)}.stat-footer{background:#000;border-radius:var(--radius-sm);padding:12px 20px;display:flex;justify-content:space-between;border:1px solid var(--border-color);margin-bottom:10px}.stat-footer .stat-label{color:var(--text-secondary);font-weight:600;font-size:.9rem}.stat-footer .stat-value{font-weight:800;color:var(--text-primary)}.action-text-container{position:absolute;top:40%;left:50%;transform:translate(-50%,-50%);pointer-events:none;z-index:50;display:flex;flex-direction:column;align-items:center;gap:8px}.battle-action-text{font-family:Outfit,sans-serif;font-size:1.6rem;font-weight:900;color:#fff;text-shadow:0 4px 12px rgba(0,0,0,.8);letter-spacing:1px;animation:modernPop 2s cubic-bezier(.16,1,.3,1) forwards;white-space:nowrap}@keyframes modernPop{0%{transform:translateY(10px) scale(.8);opacity:0}10%{transform:translateY(0) scale(1.1);opacity:1}85%{transform:translateY(-5px) scale(1);opacity:1}to{transform:translateY(-10px) scale(.9);opacity:0}}.garbage-alert{color:#000;background:var(--accent-danger);font-size:.8rem;font-weight:800;margin-top:10px;padding:4px 12px;border-radius:12px;animation:pulseRed 1.5s infinite}@keyframes pulseRed{0%{opacity:.8;box-shadow:0 0 #ff3b3b66}70%{opacity:1;box-shadow:0 0 0 6px #ff3b3b00}to{opacity:.8}}.garbage-particle{position:fixed;width:12px;height:12px;background:var(--accent-primary);border-radius:50%;pointer-events:none;z-index:9999;opacity:0;box-shadow:0 0 10px var(--accent-primary)}.score-popup{position:absolute;top:-20px;right:0;font-size:1.2rem;font-weight:900;color:var(--accent-primary);pointer-events:none;z-index:100;text-shadow:0 0 10px rgba(0,230,118,.5);animation:scoreFloat 1.2s cubic-bezier(.16,1,.3,1) forwards;white-space:nowrap}@keyframes scoreFloat{0%{transform:translateY(0) scale(.8);opacity:0}20%{transform:translateY(-10px) scale(1.2);opacity:1}to{transform:translateY(-30px) scale(1);opacity:0}}.hidden{display:none!important}#status-badge{width:40px;height:36px;background-image:url(/connect.png);background-size:330% auto;background-repeat:no-repeat;background-position:50% 10px;text-indent:-9999px;overflow:hidden;transition:var(--transition-smooth);border:none;background-color:transparent;margin-left:5px}#status-badge.ready{background-position:0% 10px;filter:drop-shadow(0 0 10px var(--accent-primary))}#status-badge.connecting{background-position:100% 10px}.header-menu-container{position:relative}#header-menu-dropdown{position:absolute;top:calc(100% + 12px);right:0;width:260px;z-index:1000;padding:8px;transform-origin:top right;animation:menuAppear .3s cubic-bezier(.16,1,.3,1)}@keyframes menuAppear{0%{opacity:0;transform:translateY(-10px) scale(.95)}to{opacity:1;transform:translateY(0) scale(1)}}.menu-items{display:flex;flex-direction:column;gap:4px}.menu-item{background:transparent!important;border:none!important;color:var(--text-primary)!important;padding:12px 16px!important;text-align:left!important;display:flex!important;align-items:center!important;gap:12px!important;border-radius:var(--radius-md)!important;cursor:pointer!important;font-size:.95rem!important;font-weight:600!important;width:100%!important;transition:var(--transition-smooth)!important;white-space:nowrap!important}.menu-item:hover{background:#ffffff14!important}.menu-item span:first-child{font-size:1.2rem;width:24px;display:flex;justify-content:center}.toast{position:fixed;bottom:40px;left:50%;transform:translate(-50%);background:var(--bg-panel);border:1px solid var(--accent-primary);color:var(--accent-primary);padding:14px 28px;border-radius:30px;font-size:.95rem;font-weight:600;z-index:2000;box-shadow:0 10px 25px #00000080;animation:smoothFadeUp .4s cubic-bezier(.16,1,.3,1)}input[type=range]{-webkit-appearance:none;appearance:none;width:100%;height:6px;background:var(--border-color);border-radius:3px;outline:none;cursor:pointer}input[type=range]::-webkit-slider-runnable-track{width:100%;height:6px;cursor:pointer;background:transparent;border-radius:3px}input[type=range]::-webkit-slider-thumb{height:20px;width:20px;border-radius:50%;background:var(--accent-primary);cursor:pointer;-webkit-appearance:none;appearance:none;margin-top:-7px;box-shadow:0 0 10px #00e6764d;transition:var(--transition-smooth)}input[type=range]:active::-webkit-slider-thumb{transform:scale(1.2);box-shadow:0 0 15px #00e67680}input[type=range]::-moz-range-thumb{height:20px;width:20px;border:none;border-radius:50%;background:var(--accent-primary);cursor:pointer;box-shadow:0 0 10px #00e67699;transition:var(--transition-smooth)}#pwa-install-overlay .lobby-content div[style*="font-size: 3.5rem"]{filter:drop-shadow(0 0 15px var(--accent-primary))}@media(orientation:portrait){body.is-mobile #app{padding:10px 5px!important}body.is-mobile header{padding:0!important;gap:5px}body.is-mobile .title-logo{height:15px!important;max-width:45vw;object-fit:contain}body.is-mobile #status-badge{width:28px!important;height:28px!important;background-size:300% auto!important;margin-left:0!important}body.is-mobile #hamburger-btn{width:32px!important;height:32px!important;min-width:32px!important;min-height:32px!important;font-size:1.1rem!important}body.is-mobile .overlay{padding:10px!important}body.is-mobile .overlay .lobby-content{padding:15px!important;width:100%;max-width:100%;margin:0;transform:none!important;max-height:90dvh!important;overflow-y:auto}body.is-mobile h2{font-size:1.3rem!important;margin-bottom:10px!important}body.is-mobile .main-title-img{max-height:80px!important;margin-bottom:10px!important}body.is-mobile h3{font-size:1.1rem!important;margin-bottom:5px!important}body.is-mobile .glass{padding:12px!important}body.is-mobile #vs-mode-area,body.is-mobile #main-menu-area{gap:8px!important}body.is-mobile #main-menu-area button{padding:12px!important;font-size:1rem!important}body.is-mobile .input-group{margin-bottom:8px!important}body.is-mobile .input-group label{font-size:.7rem!important;margin-bottom:2px!important}body.is-mobile input[type=text],body.is-mobile input[type=number]{padding:6px 10px!important;font-size:.85rem!important}body.is-mobile button{padding:10px!important;font-size:.85rem!important;height:auto!important}body.is-mobile .share-box{padding:8px!important;gap:8px!important;margin-top:5px!important;flex-direction:row!important;align-items:center}body.is-mobile #invite-qr{width:70px!important;height:70px!important;margin-left:auto}body.is-mobile .settings-sync{margin-bottom:8px!important;padding:10px!important}body.is-mobile .players-ready{margin:10px 0!important}body.is-mobile .player-ready-card .name{font-size:.8rem!important}body.is-mobile .status-dot{width:10px!important;height:10px!important}body.is-mobile .lobby-actions{margin-top:10px;display:flex;gap:10px}body.is-mobile .lobby-actions button{flex:1}body.is-mobile #cpu-level-area p{margin-bottom:10px!important;font-size:.75rem!important}body.is-mobile .level-btn{padding:8px 0!important;font-size:.9rem!important}body.is-mobile .result-outcome-text{font-size:1.8rem!important;margin-bottom:10px!important}body.is-mobile .stats-grid{gap:8px!important;margin-bottom:10px!important}body.is-mobile .stat-item{padding:10px!important}body.is-mobile .stat-item .name{font-size:.8rem!important;margin-bottom:5px!important}body.is-mobile .val-box .value{font-size:.9rem!important}body.is-mobile .stat-footer{padding:8px 12px!important;margin-bottom:5px!important}body.is-mobile .game-container{gap:2vw}body.is-mobile .player-area{width:48%;padding:5px!important}body.is-mobile .player-name{font-size:.9rem!important}body.is-mobile .score{font-size:.8rem!important}body.is-mobile #p1-score,body.is-mobile #p2-score{font-size:1rem!important;margin-left:2px!important}body.is-mobile .board-container{margin-top:0}body.is-mobile .next-box{right:0;top:-65px;transform:scale(.6);width:60px;height:80px}body.is-mobile.is-playing #orientation-warning{display:flex!important;flex-direction:column;justify-content:center;align-items:center;z-index:9999}body.is-mobile #orientation-warning,body.is-mobile.is-playing #game-view{display:none!important}}@media(orientation:landscape){body.is-mobile.is-playing #app{padding:0!important;max-width:100%!important}body.is-mobile.is-playing header{position:absolute;top:0;left:0;width:100%;padding:5px 15px!important;margin-bottom:0!important;z-index:2000;pointer-events:none;align-items:flex-start!important}body.is-mobile.is-playing header *{pointer-events:auto}body.is-mobile.is-playing .title-logo{height:16px!important}body.is-mobile #status-badge{height:28px!important;width:32px!important}body.is-mobile #hamburger-btn{width:32px!important;height:32px!important;min-width:32px!important;min-height:32px!important;font-size:1rem!important}body.is-mobile #game-view{position:relative;width:100%;height:100dvh;display:flex;flex-direction:column;justify-content:center;align-items:center;padding-top:0;overflow:hidden}body.is-mobile .game-container{transform:scale(var(--mobile-scale, .55));transform-origin:center center;margin:0;gap:2vw!important;flex-direction:row!important}body.is-mobile .player-area{padding:0!important;background:transparent!important;border:none!important;box-shadow:none!important;position:relative}body.is-mobile .player-info{position:absolute;top:0;width:150px;flex-direction:column!important;border-bottom:none!important;margin-bottom:0!important;background:#00000080;padding:10px!important;border-radius:12px}body.is-mobile .p1 .player-info{left:-160px;align-items:flex-end!important;text-align:right}body.is-mobile .p2 .player-info{right:-160px;align-items:flex-start!important;text-align:left}body.is-mobile .player-name{font-size:1.4rem!important;margin-bottom:5px}body.is-mobile .score{font-size:1.2rem!important}body.is-mobile #p1-score,body.is-mobile #p2-score{font-size:1.5rem!important;display:block;margin-left:0!important}body.is-mobile .p1 .next-box{position:absolute;left:-120px;top:110px;transform:scale(1.4);transform-origin:top right}body.is-mobile .p2 .next-box{position:absolute;right:-120px;top:110px;transform:scale(1.4);transform-origin:top left}body.is-mobile #mobile-controls{display:flex;position:absolute;bottom:max(30px,env(safe-area-inset-bottom));left:0;width:100%;padding:0 15px;flex-direction:row;justify-content:space-between;align-items:flex-end;pointer-events:none;z-index:1000}body.is-mobile .controls-left,body.is-mobile .controls-right{pointer-events:auto;display:flex;flex-direction:column;gap:12px}body.is-mobile .control-row{display:contents}body.is-mobile .controls-left{align-items:flex-start}body.is-mobile .controls-right{align-items:flex-end}body.is-mobile .ctrl-btn{width:55px!important;height:55px!important;min-height:55px!important;flex-direction:column!important}body.is-mobile .ctrl-btn.wide{width:85px!important;height:55px!important}body.is-mobile .ctrl-btn span{font-size:1.3rem!important;margin-bottom:2px!important}body.is-mobile .ctrl-btn small{font-size:.65rem!important}body.is-mobile .overlay .lobby-content{transform:none!important;width:95vw!important;max-width:900px!important;margin:0!important;max-height:95dvh!important;padding:10px 20px!important;overflow-y:auto}body.is-mobile .lobby-content h2{font-size:1.3rem!important;margin-bottom:5px!important}body.is-mobile .main-title-img{max-height:60px!important;margin-bottom:5px!important}body.is-mobile .lobby-content h3{font-size:1rem!important;margin-bottom:5px!important}body.is-mobile .lobby-content p{font-size:.8rem!important;margin-bottom:5px!important}body.is-mobile .input-group{margin-bottom:8px!important}body.is-mobile .input-group label{font-size:.7rem!important;margin-bottom:2px!important}body.is-mobile input[type=text],body.is-mobile input[type=number]{padding:6px 10px!important;font-size:.85rem!important}body.is-mobile button{padding:8px 12px!important;font-size:.85rem!important;height:auto!important;min-height:36px}body.is-mobile #main-menu-area{flex-direction:row!important;gap:10px!important}body.is-mobile #main-menu-area button{padding:15px 10px!important;font-size:1rem!important}body.is-mobile #vs-mode-area:not(.hidden){display:grid!important;grid-template-columns:1fr 1fr 1fr;gap:10px!important;align-items:start}body.is-mobile #vs-mode-area .glass{padding:10px!important}body.is-mobile #back-from-vs-btn{grid-column:1 / -1}body.is-mobile #dual-cpu-section{display:flex;flex-wrap:wrap;justify-content:space-between}body.is-mobile #dual-cpu-section>p,body.is-mobile #dual-cpu-section>.input-group,body.is-mobile #start-dual-cpu-btn{width:100%;margin-bottom:5px!important}body.is-mobile #dual-cpu-section>div[style*=margin-bottom]{width:48%;margin-bottom:0!important}body.is-mobile #lobby-overlay .lobby-content{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:flex-start}body.is-mobile #lobby-title{width:100%}body.is-mobile #room-info{width:48%;padding:10px!important}body.is-mobile .share-box{flex-direction:row!important;align-items:center;padding:5px!important;gap:10px!important;margin-top:0!important}body.is-mobile #invite-qr{width:60px!important;height:60px!important;margin-left:auto}body.is-mobile .settings-sync{width:48%;padding:10px!important;margin-bottom:5px!important}body.is-mobile .players-ready{width:48%;margin:5px 0!important}body.is-mobile .lobby-actions{width:48%;flex-direction:row!important;gap:10px!important;margin-top:5px!important}body.is-mobile .lobby-actions button{flex:1}body.is-mobile #game-over-overlay .lobby-content{display:grid;grid-template-columns:1.3fr 1fr;gap:5px 20px}body.is-mobile #result-text{grid-column:1 / -1;font-size:1rem!important;margin:0!important}body.is-mobile #result-winner{grid-column:1 / -1;font-size:1.8rem!important;margin:0 0 5px!important;line-height:1}body.is-mobile .result-stats{grid-column:1;grid-row:3 / span 2;margin:0!important}body.is-mobile .social-share-area{grid-column:2;grid-row:3;margin:0!important}body.is-mobile .final-actions{grid-column:2;grid-row:4;margin:0!important;display:flex;flex-direction:column;gap:5px}body.is-mobile .final-actions>div{margin-bottom:0!important}body.is-mobile .final-actions button{margin-bottom:0!important}body.is-mobile .stats-grid{gap:8px!important;margin-bottom:5px!important}body.is-mobile .stat-item{padding:10px!important}body.is-mobile .stat-item .name{font-size:.85rem!important;margin-bottom:5px!important}body.is-mobile .val-box .value{font-size:1rem!important}body.is-mobile .stat-footer{padding:8px 12px!important;margin-bottom:0!important}body.is-mobile #selection-overlay .lobby-content{width:auto!important;min-width:300px}body.is-mobile .choice-grid{gap:8px!important;margin:5px 0!important}body.is-mobile .choice-item{padding:10px!important}body.is-mobile .choice-item canvas{width:45px!important;height:45px!important}body.is-mobile #selection-prompt{font-size:1rem!important;margin-bottom:5px!important}}body.is-desktop #game-view:not(.hidden){display:flex!important;flex-direction:column!important;justify-content:flex-start!important;align-items:center!important;gap:15px!important;overflow:visible!important;transform:scale(var(--desktop-scale, 1))!important;transform-origin:top center!important;height:auto!important;margin:0 auto!important;padding-top:2vh!important}body.is-desktop .game-container{transform:none!important;margin:0!important}body.is-desktop #mobile-controls{position:relative!important;margin:0!important;padding-bottom:0!important;transform:none!important}body.is-desktop .overlay:not(.hidden) .lobby-content{transform:scale(var(--desktop-scale, 1));transform-origin:center;max-height:calc(90vh / var(--desktop-scale, 1))!important}.menu-item.hidden{display:none!important}
