:root{color-scheme:dark;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;background:#151716;color:#f3f0e8}*{box-sizing:border-box}body{margin:0;min-width:0;min-height:100vh;background:#151716}button,input,select{font:inherit}button{min-height:36px;border:1px solid #58615a;border-radius:6px;background:#27312b;color:#f3f0e8;cursor:pointer}button:hover{border-color:#90b494;background:#324037}button:disabled{cursor:not-allowed;opacity:.55}input,select{width:100%;min-height:38px;border:1px solid #4b554f;border-radius:6px;background:#111412;color:#f3f0e8;padding:0 10px}input[type=checkbox]{width:auto;min-height:0;margin:0;accent-color:#78a083}.app-shell{display:grid;grid-template-columns:320px 1fr;min-height:100vh}.app-shell:not(.game-focus){min-width:1080px}.app-shell.game-focus{grid-template-columns:1fr;width:100vw;height:100dvh;min-height:100dvh;overflow:hidden;background:#101411}.app-shell.game-focus .side-panel,.app-shell.game-focus .top-bar{display:none}.app-shell.game-focus .main-panel{grid-template-rows:1fr;min-height:100dvh;overflow:hidden}.side-panel{border-right:1px solid #30362f;padding:18px;background:#1d211e;overflow-y:auto}.brand{display:flex;align-items:center;gap:12px;margin-bottom:18px}.brand-mark{display:grid;place-items:center;width:46px;height:46px;border-radius:8px;background:#78a083;color:#101411;font-weight:900;font-size:26px}.brand h1,.top-bar h2{margin:0;font-size:24px}.brand p,.top-bar p,.form-note{margin:4px 0 0;color:#aeb8ae;font-size:13px}.team-color-team-a,.team-color-team-1{--team-color: #e46262;--team-soft: rgba(228, 98, 98, .16)}.team-color-team-b,.team-color-team-2{--team-color: #5b8fe8;--team-soft: rgba(91, 143, 232, .16)}.team-color-team-c,.team-color-team-3{--team-color: #64bd76;--team-soft: rgba(100, 189, 118, .16)}.team-color-team-d,.team-color-team-4{--team-color: #d9b84f;--team-soft: rgba(217, 184, 79, .16)}.panel-section,.lobby-panel,.board-panel{border:1px solid #333b35;border-radius:8px;background:#202620;padding:14px;margin-bottom:14px}.panel-section h2,.lobby-panel h3{margin:0 0 10px;font-size:16px}.field-row,.button-row{display:flex;gap:8px;margin-top:8px}.add-ai-controls{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;margin-top:8px;width:100%}.registration-panel{margin-top:8px}.user-line{display:flex;justify-content:space-between;align-items:center;gap:10px}.stats-grid{display:grid;grid-template-columns:1fr auto;gap:6px 10px;margin-top:12px;color:#b7c3b8;font-size:13px}.stats-grid strong{color:#f3f0e8}.dev-code{margin-top:8px;padding:8px;border-radius:6px;background:#28372e;color:#bdf0bf}.segmented{display:grid;grid-template-columns:1fr 1fr;gap:6px;margin-top:8px}.segmented .active,.active-action{background:#78a083;color:#101411;border-color:#a8d5ad}.range-row{display:grid;gap:6px;margin-top:10px;color:#c6d0c6;font-size:13px}.rules-panel{display:grid;gap:10px;margin-top:10px;padding-top:10px;border-top:1px solid #323b35}.rules-lobby-panel{display:grid;gap:8px;margin-top:12px;padding-top:12px;border-top:1px solid #323b35}.rules-lobby-panel h3{margin:0;font-size:15px}.rules-summary{display:flex;flex-wrap:wrap;gap:6px}.rules-summary span{border:1px solid #3d4840;border-radius:999px;padding:5px 8px;color:#c6d0c6;font-size:12px}.rules-summary strong{color:#eef4ec}.preset-diff-panel{display:grid;gap:8px;margin-top:2px;padding:10px;border:1px solid #4f5a44;border-radius:8px;background:#1d251d}.preset-diff-panel h4{margin:0;color:#eef4ec;font-size:13px}.preset-diff-panel ul{display:grid;gap:6px;margin:0;padding:0;list-style:none}.preset-diff-panel li{display:grid;grid-template-columns:minmax(92px,.9fr) minmax(0,1fr) auto minmax(0,1fr);align-items:center;gap:6px;color:#c6d0c6;font-size:12px}.preset-diff-panel strong{min-width:0;overflow-wrap:anywhere;color:#eef4ec;font-weight:700}.config-grid{display:grid;gap:8px}.config-grid.two-col{grid-template-columns:repeat(2,minmax(0,1fr))}.setting-field{display:grid;gap:5px;margin-top:8px;color:#c6d0c6;font-size:13px}.setting-field input,.setting-field select{min-width:0}.setting-label-with-help{position:relative;display:flex;align-items:center;gap:6px;min-width:0}.help-bubble-wrap{position:relative;display:inline-flex}.help-bubble{display:inline-grid;place-items:center;width:18px;height:18px;min-height:0;padding:0;border-radius:50%;border-color:#526153;background:#222922;color:#dcead9;font-size:12px;font-weight:800;line-height:1}.help-bubble:hover,.help-bubble:focus-visible{border-color:#d4bd72;color:#f0dda0}.help-bubble-content{position:absolute;right:0;top:calc(100% + 8px);z-index:20;display:none;width:max-content;max-width:min(340px,calc(100vw - 44px));gap:6px;padding:10px;border:1px solid #526153;border-radius:8px;background:#151a16;color:#d8ded7;box-shadow:0 14px 30px #00000061;font-size:12px;line-height:1.35}.help-bubble-content:before{content:"";position:absolute;top:-5px;right:7px;width:8px;height:8px;border-left:1px solid #526153;border-top:1px solid #526153;background:#151a16;transform:rotate(45deg)}.help-bubble-content span{display:block}.help-bubble-content strong{color:#eef4ec}.help-bubble-wrap:hover .help-bubble-content,.help-bubble-wrap:focus-within .help-bubble-content{display:grid}.check-row{display:flex;align-items:center;gap:8px;margin-top:10px;color:#c6d0c6;font-size:13px}.toggle-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:2px 10px}.settings-page{display:grid;align-content:start;gap:14px;padding:20px;min-width:0}.settings-header{display:flex;align-items:center;justify-content:space-between;gap:12px}.settings-header h3{margin:0;font-size:18px}.key-bindings{display:grid;gap:8px;max-width:760px}.key-preset-panel{display:grid;gap:6px;max-width:420px;color:#c6d0c6;font-size:13px}.key-preset-panel .segmented{grid-template-columns:repeat(3,minmax(0,1fr))}.controller-bindings{display:grid;gap:8px;max-width:760px;margin-top:4px}.controller-bindings h4{margin:0;color:#eef4ec;font-size:15px}.key-binding-row{display:grid;grid-template-columns:minmax(140px,1fr) minmax(150px,190px) auto;align-items:center;gap:10px;border:1px solid #323b35;border-radius:8px;background:#202620;padding:10px}.controller-binding-row{display:grid;grid-template-columns:minmax(140px,.75fr) minmax(180px,1fr) auto;align-items:center;gap:10px;border:1px solid #323b35;border-radius:8px;background:#202620;padding:10px}.key-binding-row>span{min-width:0;overflow-wrap:anywhere;color:#d8ded7}.controller-binding-row>span{min-width:0;overflow-wrap:anywhere;color:#d8ded7}.controller-binding-row strong{min-width:0;overflow-wrap:anywhere;color:#eef4ec}.controller-binding-actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:8px}.key-binding-button{background:#111412;font-weight:700}.key-binding-button.capturing,.secondary-action.compact.capturing{border-color:#d4bd72;color:#f0dda0}.main-panel{display:grid;grid-template-rows:auto 1fr;min-width:0}.top-bar{display:flex;justify-content:space-between;align-items:center;min-height:76px;padding:16px 20px;border-bottom:1px solid #30362f;background:#1b201c}.toast{max-width:460px;border:1px solid #51624f;border-radius:6px;background:#263127;padding:10px 12px;color:#dcead9}.top-actions{display:flex;align-items:center;justify-content:flex-end;gap:10px;min-width:0}.connection-pill{min-width:104px;border:1px solid #465149;border-radius:999px;padding:7px 10px;color:#dcead9;text-align:center;font-size:12px}.connection-pill.connected{border-color:#77a883;color:#c8f1cb}.connection-pill.connecting,.connection-pill.reconnecting{border-color:#d4bd72;color:#f0dda0}.connection-pill.disconnected{border-color:#c07777;color:#f0baba}.room-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:14px;padding:20px}.room-card{display:grid;gap:6px;min-height:128px;padding:14px;text-align:left;align-content:start}.room-card strong{font-size:17px}.room-card small{color:#9ba89d;word-break:break-all}.room-layout{display:grid;grid-template-columns:260px 1fr;gap:18px;padding:18px;min-height:0}.app-shell.game-focus .room-layout{grid-template-columns:1fr;height:100dvh;min-height:0;overflow:hidden;padding:clamp(10px,2vmin,22px)}.app-shell.game-focus .lobby-panel{display:none}.player-row{display:grid;grid-template-columns:minmax(0,1fr);gap:8px;padding:7px 0 7px 8px;border-left:3px solid transparent;border-bottom:1px solid #323a34;color:#d8ded7}.player-row[class*=team-color-]{border-left-color:var(--team-color);background:linear-gradient(90deg,var(--team-soft),transparent 42%)}.player-row-main{display:grid;gap:3px;min-width:0}.player-row-main>span{min-width:0;overflow-wrap:anywhere}.player-name-line,.board-player-name{display:flex;align-items:center;gap:7px;min-width:0}.player-name-line>span:last-child,.board-player-name>span:last-child{min-width:0;overflow-wrap:anywhere}.player-status{color:#aeb8ae;font-size:12px}.team-swatch{flex:0 0 auto;width:11px;height:11px;border:1px solid #526153;border-radius:999px;background:#526153}.team-swatch[class*=team-color-]{border-color:color-mix(in srgb,var(--team-color) 72%,#f3f0e8);background:var(--team-color);box-shadow:0 0 8px var(--team-soft)}.player-controls{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px}.player-select{min-width:0;padding:7px 8px}.control-help{display:grid;gap:6px;margin-top:12px;color:#9fad9f;font-size:13px}.secondary-action{width:100%;margin-top:10px;background:#1a1f1b}.keyboard-reset-action{max-width:760px}.secondary-action.compact{width:auto;margin-top:0;padding:0 12px}.full-width-action{width:100%;margin-bottom:8px}.game-layout{position:relative;display:grid;grid-template-columns:minmax(300px,420px) 1fr;gap:18px;align-items:start}.app-shell.game-focus .game-layout{grid-template-columns:minmax(0,max-content) minmax(150px,min(24vw,280px));justify-content:center;align-items:center;gap:clamp(12px,2.4vw,30px);width:100%;height:100%;min-height:0}.match-complete{grid-column:1 / -1;display:flex;justify-content:space-between;align-items:center;gap:14px;border:1px solid #e8c76c;border-radius:8px;background:#332c18;padding:12px 14px;color:#fff4c7}.match-complete strong{font-size:18px}.match-complete span{color:#e5d8a5}.app-shell.game-focus .match-complete{position:absolute;top:clamp(10px,2vmin,18px);left:50%;z-index:8;width:min(720px,calc(100vw - 24px));transform:translate(-50%)}.opponents{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:12px}.app-shell.game-focus .opponents{align-self:center;grid-template-columns:1fr;max-height:calc(100dvh - 24px);min-width:0;overflow:auto}.board-panel{margin:0}.board-panel[class*=team-color-]{border-left-color:var(--team-color);box-shadow:inset 3px 0 0 var(--team-color)}.app-shell.game-focus .board-panel{background:#202620db}.app-shell.game-focus .board-panel.large{justify-self:center;align-self:center;padding:clamp(10px,1.8vmin,16px)}.app-shell.game-focus .board-panel.focused:not(.large){padding:10px}.app-shell.game-focus .board-panel.large header{font-size:clamp(16px,2vmin,20px)}.app-shell.game-focus .board-panel.large .stat-line{font-size:clamp(12px,1.4vmin,14px)}.board-panel.targeted-by-you{border-color:#e8c76c;box-shadow:0 0 0 1px #e8c76c73,0 0 18px #e8c76c38}.board-panel.targeted-by-you[class*=team-color-]{box-shadow:inset 3px 0 0 var(--team-color),0 0 0 1px #e8c76c73,0 0 18px #e8c76c38}.board-panel.targeting-you:not(.targeted-by-you){border-color:#c07777}.board-panel.targeting-you header{color:#f0c1b8}.board-panel.targeted-by-you header{color:#f0dc9a}.board-panel header,.stat-line{display:flex;justify-content:space-between;gap:8px;margin-bottom:8px}.stat-line{color:#aeb8ae;flex-wrap:wrap;font-size:12px}.board{--cell: 22px;--board-gap: 3px;--board-padding: 8px;--pressure: 0;--pressure-scale: 1;--pressure-panel-scale-x: 1;--break-release-scale: 1;--break-panel-scale-x: 1;--pressure-wobble-x: 0px;--pressure-wobble-y: 0px;--pressure-wobble-angle: 0deg;--columns: 6;--rows: 12;width:fit-content;height:calc((var(--cell) * var(--rows)) + (var(--board-gap) * (var(--rows) - 1)) + (var(--board-padding) * 2) + 2px);padding:var(--board-padding);overflow:hidden;border:1px solid #3d473e;border-radius:6px;background:#101411}.board.under-pressure{border-color:#e8c76c;box-shadow:inset 0 12px 24px rgba(232,199,108,calc(var(--pressure) * .24))}.board.board-broken{border-color:#6a3b3b;background:#120f0f;box-shadow:inset 0 0 28px #1e0a0abf}.board-cells{--raise-offset: 0px;position:relative;display:grid;grid-template-columns:repeat(var(--columns),var(--cell));grid-auto-rows:var(--cell);gap:var(--board-gap);transform:translateY(calc(var(--raise-offset) * -1)) scaleY(var(--pressure-scale));transform-origin:top center;will-change:transform}.board-shake-layer{--impact-shake: 0px;position:relative;transform-origin:center}.board-shake-layer.impact-shake{animation:impact-shake .24s cubic-bezier(.16,.9,.25,1)}.board.board-breaking .board-shake-layer{animation:board-break .36s cubic-bezier(.18,.95,.28,1)}.board.board-breaking .board-cells{animation:board-break-release .42s cubic-bezier(.16,.9,.25,1) both}.cell{position:relative;width:var(--cell);height:var(--cell);border-radius:4px;background:#181c19;border:1px solid #202720;transform-origin:center;overflow:hidden}.cell.red{background:#d95f5f}.cell.blue{background:#3f7fbd}.cell.green{background:#6ec17f}.cell.yellow{background:#dfc85f}.cell.purple{background:#a875cf}.cell.cyan{background:#63c7c7}.cell.orange{background:#d58a4c}.cell.pink{background:#d77bb3}.cell.white{background:#d9ddd8}.cell.mirror{background:#9fd4d0}.cell.garbage{--garbage-base: #8b918d;--garbage-low: #737a75;--garbage-border: #bdc2be;background:var(--garbage-base);border-color:var(--garbage-border);border-radius:3px;box-shadow:0 0 0 calc(var(--board-gap) / 2) var(--garbage-base),inset 0 0 0 1px #fff3,inset 0 -8px 12px #22272333}.cell.garbage.garbage-unified{border-color:transparent;border-radius:0;box-shadow:0 0 0 calc(var(--board-gap) / 2) var(--garbage-base)}.cell.garbage-cement{--garbage-base: #7d7870;--garbage-low: #67625b;--garbage-border: #c6bda9}.cell.garbage-cement.garbage-unified{border-color:transparent;box-shadow:0 0 0 calc(var(--board-gap) / 2) var(--garbage-base)}.cell.garbage-mirror{--garbage-base: #8aa9a8;--garbage-low: #6d8b8a;--garbage-border: #cce6e3}.cell.garbage-mirror.garbage-unified{border-color:transparent;box-shadow:0 0 0 calc(var(--board-gap) / 2) var(--garbage-base)}.cell-symbol{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;display:grid;place-items:center;color:#101411db;pointer-events:none;filter:drop-shadow(0 1px 0 rgba(255,255,255,.24)) drop-shadow(0 -1px 0 rgba(0,0,0,.18))}.cell-symbol-mark{width:72%;height:72%;overflow:visible}.cell-symbol-stroke{fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.8}.cell-symbol-stroke.thin{stroke-width:1.2}.cell-symbol-fill{fill:currentColor}.cell-symbol-fill.soft{opacity:.24}.cell.preview .cell-symbol{opacity:.78}.cell.garbage .cell-symbol{color:#181c19d1}.cell.garbage:not(.garbage-cracked) .cell-symbol{display:none}.board.under-pressure .cell:not(.empty):not(.preview){filter:brightness(calc(1 - (var(--pressure) * .12))) saturate(calc(1 + (var(--pressure) * .2)))}.board.under-pressure .cell:not(.empty){scale:var(--pressure-panel-scale-x) 1}.board.under-pressure .cell:not(.empty):not(.preview):not(.match-blink):not(.pop):not(.falling):not(.swap-piece){animation:pressure-panel-wobble 1.8s ease-in-out infinite}.cell.cracked:not(.empty),.cell.garbage.garbage-cracked{filter:grayscale(.24) brightness(.74);border-color:#231616e6;box-shadow:inset 0 0 0 1px #ffffff1f,inset 0 -8px 10px #180a0a59}.cell.garbage.garbage-join-left,.garbage-block-cell.garbage-join-left{border-left-color:transparent;border-top-left-radius:0;border-bottom-left-radius:0}.cell.garbage.garbage-join-right,.garbage-block-cell.garbage-join-right{border-right-color:transparent;border-top-right-radius:0;border-bottom-right-radius:0}.cell.garbage.garbage-join-top,.garbage-block-cell.garbage-join-top{border-top-color:transparent;border-top-left-radius:0;border-top-right-radius:0}.cell.garbage.garbage-join-bottom,.garbage-block-cell.garbage-join-bottom{border-bottom-color:transparent;border-bottom-left-radius:0;border-bottom-right-radius:0}.board.board-breaking .cell.cracked:not(.empty){animation:panel-break-release .42s cubic-bezier(.16,.9,.25,1) both}.cell.cracked:not(.empty):before,.cell.cracked:not(.empty):after,.cell.garbage.garbage-cracked:before,.cell.garbage.garbage-cracked:after{content:"";position:absolute;top:2px;right:2px;bottom:2px;left:2px;pointer-events:none}.cell.cracked:not(.empty):before,.cell.garbage.garbage-cracked:before{z-index:2;background:linear-gradient(126deg,transparent 0 42%,rgba(24,18,18,.9) 43% 46%,rgba(255,255,255,.22) 47%,transparent 49%),linear-gradient(36deg,transparent 0 56%,rgba(24,18,18,.76) 57% 59%,transparent 60%),linear-gradient(88deg,transparent 0 48%,rgba(24,18,18,.62) 49% 50%,transparent 52%)}.cell.cracked:not(.empty):after,.cell.garbage.garbage-cracked:after{z-index:2;border-top:1px solid rgba(255,255,255,.2);border-left:1px solid rgba(20,12,12,.7);clip-path:polygon(8% 0,62% 0,42% 40%,88% 82%,46% 100%,28% 52%,0 72%,20% 34%)}.garbage-popup{position:absolute;z-index:6;min-width:calc(var(--cell) * 1.6);padding:2px 6px;border:1px solid rgba(255,244,199,.88);border-radius:999px;background:#18140bdb;color:#fff4c7;font-size:calc(var(--cell) * .44);font-weight:800;line-height:1;text-align:center;text-shadow:0 1px 2px rgba(0,0,0,.7);pointer-events:none;animation:garbage-popup-rise 1056ms cubic-bezier(.16,.9,.25,1) both;translate:-50% -50%}.cell.preview{filter:brightness(.48) saturate(.8);opacity:.82}.cell.cursor{z-index:4;outline:3px solid #f3f0e8;outline-offset:-2px}.cell.match-blink:not(.empty){z-index:2;animation:match-blink .12s steps(1,end) infinite}.cell.pop:not(.empty){z-index:3;animation:panel-pop var(--pop-duration, .18s) ease-in forwards}.cell.falling:not(.empty){z-index:1;animation:panel-fall .2s cubic-bezier(.2,.8,.2,1) both}.cell.swap-hidden,.cell.falling-origin-hidden{opacity:0}.cell.swap-piece{position:absolute;left:0;top:0;z-index:4;pointer-events:none;animation:panel-swap .14s cubic-bezier(.2,.82,.25,1) both;will-change:transform}.cell.falling-piece{position:absolute;left:0;top:0;z-index:1;pointer-events:none;will-change:transform}.garbage-block{--garbage-base: #8b918d;--garbage-low: #737a75;--garbage-border: #bdc2be;position:absolute;left:var(--garbage-block-x);top:var(--garbage-block-y);width:var(--garbage-block-width);height:var(--garbage-block-height);z-index:5;overflow:hidden;pointer-events:none;border:1px solid var(--garbage-border);border-radius:3px;background:radial-gradient(circle at 18% 22%,rgba(255,255,255,.22) 0 1px,transparent 1.8px),radial-gradient(circle at 68% 64%,rgba(21,25,22,.26) 0 1.1px,transparent 2px),radial-gradient(circle at 42% 78%,rgba(255,255,255,.12) 0 .9px,transparent 1.8px),linear-gradient(135deg,rgba(255,255,255,.18),transparent 36%),linear-gradient(180deg,var(--garbage-base),var(--garbage-low));background-size:21px 19px,25px 23px,17px 15px,100% 100%,100% 100%;box-shadow:inset 0 0 0 1px #ffffff2e,inset 0 -12px 16px #22272342,inset 0 10px 14px #ffffff14;animation:panel-fall .36s cubic-bezier(.2,.8,.2,1) both;will-change:transform}.garbage-block.garbage-cement{--garbage-base: #7d7870;--garbage-low: #67625b;--garbage-border: #c6bda9}.garbage-block.garbage-mirror{--garbage-base: #8aa9a8;--garbage-low: #6d8b8a;--garbage-border: #cce6e3}.garbage-block.active-garbage-block{animation:none}.garbage-block-cell{position:absolute;display:block;border:0;border-radius:0;background:transparent}.garbage-block-border{--garbage-base: #8b918d;--garbage-low: #737a75;--garbage-border: #bdc2be;position:absolute;left:var(--garbage-border-x);top:var(--garbage-border-y);width:var(--garbage-border-width);height:var(--garbage-border-height);z-index:1;pointer-events:none;overflow:hidden;border:1px solid var(--garbage-border);border-radius:3px;background:radial-gradient(circle at 18% 22%,rgba(255,255,255,.22) 0 1px,transparent 1.8px),radial-gradient(circle at 68% 64%,rgba(21,25,22,.26) 0 1.1px,transparent 2px),radial-gradient(circle at 42% 78%,rgba(255,255,255,.12) 0 .9px,transparent 1.8px),linear-gradient(135deg,rgba(255,255,255,.18),transparent 36%),linear-gradient(180deg,var(--garbage-base),var(--garbage-low));background-size:21px 19px,25px 23px,17px 15px,100% 100%,100% 100%;box-shadow:inset 0 0 0 1px #ffffff2e,inset 0 -12px 16px #22272342,inset 0 10px 14px #ffffff14}.garbage-block-border.garbage-cement{--garbage-base: #7d7870;--garbage-low: #67625b;--garbage-border: #c6bda9}.garbage-block-border.garbage-mirror{--garbage-base: #8aa9a8;--garbage-low: #6d8b8a;--garbage-border: #cce6e3}.cell.garbage-team-a,.cell.garbage-team-1,.garbage-block.garbage-team-a,.garbage-block.garbage-team-1,.garbage-block-border.garbage-team-a,.garbage-block-border.garbage-team-1{--garbage-base: #b85b5e;--garbage-low: #894548;--garbage-border: #f0a4a4}.cell.garbage-team-b,.cell.garbage-team-2,.garbage-block.garbage-team-b,.garbage-block.garbage-team-2,.garbage-block-border.garbage-team-b,.garbage-block-border.garbage-team-2{--garbage-base: #5f82bf;--garbage-low: #455f8f;--garbage-border: #a8c7ff}.cell.garbage-team-c,.cell.garbage-team-3,.garbage-block.garbage-team-c,.garbage-block.garbage-team-3,.garbage-block-border.garbage-team-c,.garbage-block-border.garbage-team-3{--garbage-base: #5f9d6b;--garbage-low: #47764f;--garbage-border: #a9e0b0}.cell.garbage-team-d,.cell.garbage-team-4,.garbage-block.garbage-team-d,.garbage-block.garbage-team-4,.garbage-block-border.garbage-team-d,.garbage-block-border.garbage-team-4{--garbage-base: #b49a4d;--garbage-low: #83713a;--garbage-border: #efd987}@keyframes match-blink{0%,to{filter:brightness(1.15);transform:scale(1);border-color:#ffffffb3}50%{filter:brightness(1.9);transform:scale(1.08);border-color:#fff;box-shadow:0 0 10px #ffffffbf}}@keyframes panel-pop{0%{opacity:1;transform:scale(1.08)}65%{opacity:1;transform:scale(1.2)}to{opacity:0;transform:scale(.18)}}@keyframes garbage-popup-rise{0%{opacity:0;scale:.72;translate:-50% -28%}12%{opacity:1;scale:1.14}48%{opacity:1;scale:1.06;translate:-50% -72%}76%{opacity:.72;scale:1;translate:-50% -128%}to{opacity:0;scale:.96;translate:-50% -160%}}@keyframes panel-fall{0%{transform:translateY(var(--fall-y))}to{transform:translateY(0)}}@keyframes panel-swap{0%{transform:translate(var(--swap-from-x),var(--swap-from-y)) scale(1)}50%{transform:translate(var(--swap-mid-x),var(--swap-mid-y)) scale(1.08)}to{transform:translate(var(--swap-to-x),var(--swap-to-y)) scale(1)}}@keyframes impact-shake{0%,to{transform:translate(0)}16%{transform:translate(calc(var(--impact-shake) * -1),calc(var(--impact-shake) * .28))}32%{transform:translate(calc(var(--impact-shake) * .75),calc(var(--impact-shake) * -.22))}48%{transform:translate(calc(var(--impact-shake) * -.52),calc(var(--impact-shake) * .16))}64%{transform:translate(calc(var(--impact-shake) * .34),calc(var(--impact-shake) * -.12))}80%{transform:translate(calc(var(--impact-shake) * -.16),calc(var(--impact-shake) * .08))}}@keyframes board-break{0%,to{transform:translate(0) rotate(0)}16%{transform:translate(-3px,2px) rotate(-.6deg)}32%{transform:translate(3px,-1px) rotate(.5deg)}48%{transform:translate(-2px,1px) rotate(-.35deg)}64%{transform:translate(1px,-1px) rotate(.2deg)}}@keyframes board-break-release{0%{transform:translateY(0) scaleY(var(--break-release-scale))}to{transform:translateY(calc(var(--raise-offset) * -1)) scaleY(var(--pressure-scale))}}@keyframes panel-break-release{0%{scale:var(--break-panel-scale-x) 1}to{scale:1 1}}@keyframes pressure-panel-wobble{0%,to{translate:0 0;rotate:0deg}33%{translate:calc(0px - var(--pressure-wobble-x)) var(--pressure-wobble-y);rotate:calc(0deg - var(--pressure-wobble-angle))}66%{translate:var(--pressure-wobble-x) 0;rotate:var(--pressure-wobble-angle)}}@media(max-width:820px){.app-shell:not(.game-focus){min-width:0}.key-binding-row,.controller-binding-row{grid-template-columns:1fr}.app-shell.game-focus .game-layout{grid-template-columns:1fr;grid-template-rows:minmax(0,1fr) auto;justify-items:center;align-items:center;gap:10px}.app-shell.game-focus .opponents{display:flex;width:100%;max-height:126px;overflow-x:auto;overflow-y:hidden;align-self:end}.app-shell.game-focus .opponents .board-panel{flex:0 0 auto}}@media(prefers-reduced-motion:reduce){.board-cells{transform:none}.board-shake-layer.impact-shake{animation:none}.board.board-breaking .board-shake-layer,.board.board-breaking .board-cells,.board.board-breaking .cell.cracked:not(.empty){animation:none}.board.under-pressure .cell:not(.empty):not(.preview){animation:none}.garbage-popup{animation-duration:1ms}.cell.match-blink:not(.empty),.cell.pop:not(.empty),.cell.swap-piece,.cell.falling:not(.empty){animation-duration:1ms;animation-iteration-count:1}}.empty-state{display:grid;place-items:center;min-height:220px;border:1px dashed #475048;border-radius:8px;color:#aeb8ae;background:#1b201c;padding:20px}
