.t2048-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:7px;width:100%;max-width:270px;touch-action:none;padding:8px;border-radius:18px;background:var(--panel)}
.t2048-cell{aspect-ratio:1;border-radius:10px;background:rgba(255,255,255,.04);display:flex;align-items:center;justify-content:center;font-weight:800;font-size:17px;color:var(--text)}
.t2048-cell.v0{color:transparent}
.t2048-controls{display:grid;grid-template-columns:repeat(3,48px);grid-template-rows:repeat(2,48px);gap:7px;margin-top:20px;justify-content:center}
.t2048-controls button{background:var(--panel-2);border:1px solid var(--border-str);border-radius:12px;color:var(--text);font-size:17px;cursor:pointer}
.ws-wrap{display:flex;gap:12px;flex-wrap:wrap;justify-content:center;max-width:360px;margin-top:14px;perspective:900px}
.ws-bottle{position:relative;width:52px;height:170px;cursor:pointer;background:none;border:none;padding:0;transform-style:preserve-3d;transition:transform .28s cubic-bezier(.3,1.5,.5,1),filter .2s ease;filter:drop-shadow(0 6px 10px rgba(0,0,0,.5))}
.ws-bottle:hover{transform:translateY(-4px)}
.ws-bottle.sel{transform:translateY(-14px) scale(1.05);filter:drop-shadow(0 10px 18px rgba(255,213,79,.55))}
.ws-bottle .neck{position:absolute;top:0;left:50%;transform:translateX(-50%);width:22px;height:18px;border-radius:5px 5px 0 0;background:linear-gradient(180deg,rgba(255,255,255,.35),rgba(255,255,255,.08) 70%,rgba(0,0,0,.15));border:2px solid rgba(255,255,255,.5);border-bottom:none;box-shadow:inset -4px 0 6px rgba(0,0,0,.4),inset 4px 0 6px rgba(255,255,255,.35);z-index:2}
.ws-bottle .neck::after{content:"";position:absolute;top:-3px;left:50%;transform:translateX(-50%);width:26px;height:5px;border-radius:3px;background:linear-gradient(180deg,rgba(255,255,255,.6),rgba(255,255,255,.15));box-shadow:0 1px 2px rgba(0,0,0,.5),inset 0 1px 0 rgba(255,255,255,.7)}
.ws-bottle .body{position:absolute;top:18px;left:0;right:0;bottom:0;border-radius:10px 10px 18px 18px / 6px 6px 26px 26px;background:linear-gradient(180deg,rgba(255,255,255,.12),rgba(255,255,255,.02) 40%,rgba(0,0,0,.15));border:2px solid rgba(255,255,255,.5);box-shadow:inset -8px 0 12px rgba(0,0,0,.5),inset 8px 0 12px rgba(255,255,255,.28),inset 0 -8px 14px rgba(0,0,0,.45),inset 0 2px 4px rgba(255,255,255,.35),0 6px 12px rgba(0,0,0,.4);display:flex;flex-direction:column-reverse;padding:5px;gap:2px;overflow:hidden}
.ws-bottle .body::before{content:"";position:absolute;top:8px;left:6px;width:8px;bottom:16px;border-radius:8px;background:linear-gradient(180deg,rgba(255,255,255,.55),rgba(255,255,255,.05) 60%,transparent);pointer-events:none;z-index:3}
.ws-bottle .liquid{flex:1;border-radius:5px;position:relative;box-shadow:inset 0 2px 4px rgba(255,255,255,.55),inset 0 -3px 5px rgba(0,0,0,.45),inset -2px 0 4px rgba(0,0,0,.25),inset 2px 0 4px rgba(255,255,255,.35)}
.ws-bottle .liquid::before{content:"";position:absolute;top:1px;left:2px;right:2px;height:35%;border-radius:4px 4px 60% 60% / 4px 4px 90% 90%;background:linear-gradient(180deg,rgba(255,255,255,.45),transparent);pointer-events:none}
.ws-bottle .liquid.empty{background:transparent !important;box-shadow:none}
.ws-bottle .liquid.empty::before{display:none}
.ws-bottle.sel .body{border-color:var(--gold);box-shadow:inset -8px 0 12px rgba(0,0,0,.5),inset 8px 0 12px rgba(255,255,255,.35),inset 0 -8px 14px rgba(0,0,0,.45),inset 0 2px 4px rgba(255,255,255,.4),0 0 26px rgba(255,213,79,.8),0 6px 12px rgba(0,0,0,.45)}
.ws-bottle.sel .neck{border-color:var(--gold);box-shadow:inset -4px 0 6px rgba(0,0,0,.4),inset 4px 0 6px rgba(255,255,255,.4),0 0 14px rgba(255,213,79,.7)}
